:root{--surface:#f6f7f9;--panel:#fff;--subtle:#f1f4f6;--border:#dde2e7;--border-strong:#c8d0d8;--heading:#17212b;--text:#334155;--muted:#697586;--action:#b45309;--action-soft:#fff3d6;--focus:#2b83c6;--mono:ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;color:var(--text);background:var(--surface);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}#root{min-height:100vh}.app-shell{background:var(--surface);min-height:100vh;color:var(--text)}.admin-header{border-bottom:1px solid var(--border);color:#fff;background:#070b0f;position:relative}.brand-bar{background:#030609f5;border-bottom:1px solid #ffffff14;grid-template-columns:auto 1fr;align-items:center;gap:28px;min-height:58px;padding:0 28px;display:grid}.brand-lockup{align-items:center;gap:10px;min-width:0;display:inline-flex}.brand-mark{width:34px;height:34px;color:var(--action);background:#fff;border-radius:50%;place-items:center;display:inline-grid;position:relative;box-shadow:0 8px 18px #1118272e}.brand-mark:before{content:"";border:5px solid;border-radius:50%;position:absolute;inset:8px;box-shadow:0 -10px 0 -6px,0 10px 0 -6px,10px 0 0 -6px,-10px 0 0 -6px,7px 7px 0 -6px,-7px 7px 0 -6px,7px -7px 0 -6px,-7px -7px 0 -6px}.brand-mark span{z-index:1;background:#fff;border-radius:50%;width:7px;height:7px;position:relative}.brand-name{color:#fff;text-transform:uppercase;font-size:17px;font-weight:900;line-height:1}.brand-actions{justify-content:flex-end;align-items:center;gap:12px;min-width:0;display:flex}.topbar{background:linear-gradient(90deg,#060a0ee6,#060a0e85),url(/assets/construction-machines-topbar-D_NBbATI.png) 50% 48%/cover;justify-content:space-between;align-items:flex-end;gap:24px;min-height:132px;padding:28px 34px 18px;display:flex;position:relative;overflow:hidden}.topbar:before{content:"";background:linear-gradient(#00000052,#00000024);position:absolute;inset:0}.topbar>*,.brand-bar>*{z-index:1;position:relative}.eyebrow{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:700}h1,h2{color:var(--heading);letter-spacing:0;margin:0;font-weight:700}.page-heading{min-width:180px}.topbar .eyebrow,.topbar h1{color:#fff;text-shadow:0 1px 2px #0006}.topbar .eyebrow{color:#ffffffc7}h1{font-size:32px;line-height:1.15}h2{font-size:20px;line-height:1.2}.summary-strip{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.view-tabs{background:#ffffff24;border:1px solid #ffffff47;border-radius:6px;grid-auto-columns:minmax(110px,1fr);grid-auto-flow:column;align-self:end;display:inline-grid;overflow:hidden}.view-tabs button{color:#ffffffc7;background:0 0;border:0;border-right:1px solid #ffffff38;border-radius:0;min-height:38px;padding:8px 18px}.view-tabs button:last-child{border-right:0}.view-tabs .selected{color:#17212b;background:#ffffffeb}.locale-field{color:#fff;grid-template-columns:auto minmax(104px,120px);grid-auto-flow:column;align-items:center;gap:8px;min-width:0;font-size:12px;font-weight:800;display:flex}.locale-field select{color:#17212b;width:100%;height:38px;font:inherit;letter-spacing:0;background:#ffffffeb;border:1px solid #ffffff47;border-radius:6px;padding:7px 10px;font-size:14px}.user-menu-button,.logout-button{border-radius:6px;justify-content:center;align-items:center;min-height:38px;display:inline-flex}.user-menu-button{color:#fff;background:#ffffff1f;border-color:#ffffff2e;gap:8px;padding:0 10px}.user-menu-button span:first-child{place-items:center;min-width:24px;display:inline-grid}.menu-caret{opacity:.8;border-bottom:1.5px solid;border-right:1.5px solid;width:7px;height:7px;transform:rotate(45deg)translateY(-2px)}.logout-button{background:var(--action);color:#fff;border-color:#0000;gap:6px;padding:8px 16px}.logout-button span{font-size:18px;line-height:1}.summary-strip span{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;background:#ffffff29;border:1px solid #ffffff47;border-radius:6px;min-width:92px;padding:8px 12px;font-size:14px;font-weight:650}.workspace,.user-workspace{grid-template-columns:minmax(320px,390px) minmax(0,1fr);min-height:calc(100vh - 190px);display:grid}.admin-workspace{grid-template-columns:minmax(0,1fr) minmax(320px,390px);align-content:start;align-items:start;gap:18px;min-height:calc(100vh - 190px);padding:24px;transition:grid-template-columns .18s;display:grid}.admin-workspace.without-detail{grid-template-columns:minmax(0,1fr)}.user-admin-workspace{row-gap:8px}.single-panel,.user-workspace.single-panel{grid-template-columns:1fr}.editor-panel,.machine-form-section,.machine-list-section{padding:24px}.editor-panel,.machine-form-section{border-right:1px solid var(--border);background:var(--panel)}.panel-heading,.list-toolbar,.form-actions{justify-content:space-between;align-items:center;gap:16px;display:flex}.machine-form{gap:16px;margin-top:24px;display:grid}label{color:var(--heading);gap:6px;font-size:14px;font-weight:650;display:grid}input,textarea,select{box-sizing:border-box;border:1px solid var(--border-strong);width:100%;color:var(--heading);font:inherit;letter-spacing:0;background:#fff;border-radius:6px;font-size:15px}input{height:40px;padding:8px 10px}select{min-height:40px;padding:8px 10px}textarea{resize:vertical;min-height:84px;padding:10px}input:focus,textarea:focus,select:focus,button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.switch-row{align-items:center;gap:10px;min-height:40px;display:flex}.switch-row input{width:18px;height:18px}.machine-image-editor{gap:10px;display:grid}.machine-image-editor-heading{color:var(--heading);gap:3px;font-size:14px;font-weight:650;display:grid}.machine-image-editor-heading small{color:var(--muted);font-size:12px;font-weight:500}.machine-image-preview{border:1px solid var(--border);background:linear-gradient(135deg,#edf2ed,#f8efe1);border-radius:8px;min-height:190px;overflow:hidden}.machine-image-preview img,.machine-image-placeholder{width:100%;min-height:190px}.machine-image-preview img{object-fit:cover;height:100%;display:block}.machine-image-placeholder{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;place-items:center;font-size:13px;font-weight:800;display:grid}.machine-image-actions{flex-wrap:wrap;gap:8px;display:flex}.file-button{cursor:pointer;place-items:center;width:auto;min-height:38px;display:inline-grid}.file-button input{display:none}button{cursor:pointer;min-height:38px;font:inherit;letter-spacing:0;border:1px solid #0000;border-radius:6px;font-size:14px;font-weight:700}button:disabled{cursor:not-allowed;opacity:.65}.primary-button{background:var(--action);color:#fff;padding:8px 14px}.secondary-button,.table-action{border-color:var(--border-strong);color:var(--heading);background:#fff;padding:8px 12px}.selected-secondary{border-color:var(--action);background:var(--action-soft);color:var(--action)}.danger-button{color:#9b1c1c;background:#fff4f4;border-color:#efb8b8;padding:8px 12px}.primary-button:hover,.secondary-button:hover,.table-action:hover,.danger-button:hover,.logout-button:hover,.user-menu-button:hover,.segmented-control button:hover{filter:brightness(.97)}.field-error,.form-message,.state-line{color:var(--muted);font-size:13px;font-weight:500}.field-error,.error{color:#a31717}.list-toolbar{margin-bottom:18px}.admin-list-toolbar{grid-column:1/-1;justify-content:flex-end;margin-bottom:0}.admin-workspace .machine-list-section{padding:0}.work-log-list-section .list-toolbar{justify-content:flex-end}.toolbar-controls{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:12px;display:flex}.machine-toolbar-controls{flex-wrap:nowrap;justify-content:space-between;align-items:center;width:100%;padding-bottom:2px;overflow-x:auto}.machine-toolbar-group{flex-wrap:nowrap;flex:none;align-items:center;gap:12px;display:flex}.machine-toolbar-left{justify-content:flex-start}.machine-toolbar-right{justify-content:flex-end;margin-left:auto}.machine-toolbar-controls label{white-space:nowrap;align-items:center;gap:8px;display:flex}.machine-toolbar-controls .search-field{flex:0 0 300px}.machine-search-field{position:relative}.machine-search-field .search-icon{border:2px solid var(--muted);pointer-events:none;border-radius:50%;width:13px;height:13px;position:absolute;left:12px}.machine-search-field .search-icon:after{content:"";background:var(--muted);transform-origin:0;border-radius:999px;width:7px;height:2px;position:absolute;bottom:-4px;right:-6px;transform:rotate(45deg)}.machine-search-field input{padding-left:36px}.machine-toolbar-controls .category-select-field,.machine-toolbar-controls .machine-status-select-field,.machine-toolbar-controls .card-sort-field{flex:0 0 250px}.machine-toolbar-controls .segmented-control,.machine-toolbar-controls button{flex:none}.machine-toolbar-controls .segmented-control{width:auto}.search-field{width:min(360px,100%)}.category-select-field,.machine-status-select-field,.card-sort-field{width:min(260px,100%)}.active-filter-bar{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;font-size:13px;font-weight:600;display:flex}.machine-active-filter-bar{grid-column:1/-1;padding:0}.filter-chip{border-color:var(--action);background:var(--action-soft);min-height:32px;color:var(--action);align-items:center;gap:8px;padding:0 12px;display:inline-flex}.link-button{min-height:32px;color:var(--action);background:0 0;border:0;padding:0;font-weight:700}.segmented-control{border:1px solid var(--border-strong);background:#fff;border-radius:6px;grid-template-columns:repeat(3,minmax(76px,1fr));display:inline-grid;overflow:hidden}.segmented-control button{border:0;border-right:1px solid var(--border);min-height:38px;color:var(--muted);background:#fff;border-radius:0}.segmented-control button:last-child{border-right:0}.segmented-control .selected{background:var(--action-soft);color:var(--action)}.view-mode-control{grid-template-columns:repeat(2,42px)}.view-mode-control button{place-items:center;display:grid}.view-mode-icon{color:currentColor;width:18px;height:18px;display:block}.table-icon{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.table-icon span{border:1px solid;border-radius:1px}.table-icon span:nth-child(-n+3){background:currentColor}.cards-icon{background:linear-gradient(currentColor,currentColor) 0 0/8px 8px no-repeat,linear-gradient(currentColor,currentColor) 10px 0/8px 8px no-repeat,linear-gradient(currentColor,currentColor) 0 10px/8px 8px no-repeat,linear-gradient(currentColor,currentColor) 10px 10px/8px 8px no-repeat;border-radius:3px}.subsection-heading{border:1px solid var(--border);background:linear-gradient(135deg,#e7f0ebeb,#fffffff5);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;padding:20px;display:flex}.subsection-heading p:last-child{max-width:620px;color:var(--muted);margin:6px 0 0;font-size:14px;line-height:1.45}.category-filter-bar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px;display:flex}.category-table-wrap{max-height:min(62vh,680px)}.category-table{min-width:920px}.category-table td:nth-child(3){max-width:420px;line-height:1.45}.category-modal-panel{width:min(520px,100%)}.machine-category-value{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.field-note{color:var(--muted);margin:-6px 0 0;font-size:12px;line-height:1.4}.field-note.warning{color:#8a5b00}.radio-fieldset{border:0;flex-wrap:wrap;gap:12px 18px;margin:0;padding:0;display:flex}.radio-fieldset legend{color:var(--heading);flex:0 0 100%;margin-bottom:-4px;font-size:14px;font-weight:650}.radio-row{grid-template-columns:auto;align-items:center;gap:8px;min-height:32px;display:inline-flex}.radio-row input{width:18px;height:18px}.table-wrap{border:1px solid var(--border);background:var(--panel);border-radius:8px;max-height:min(68vh,760px);overflow:auto}table{border-collapse:separate;border-spacing:0;text-align:left;width:100%;min-width:1180px}th,td{border-bottom:1px solid var(--border);vertical-align:middle;padding:14px 16px}th{z-index:1;background:var(--panel);color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:800;position:sticky;top:0}.sort-header-button{min-height:24px;color:inherit;font:inherit;letter-spacing:inherit;text-align:left;text-transform:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}.sort-header-button:hover,.sort-header-button.active{color:var(--action)}.sort-indicator{color:currentColor;justify-content:center;width:10px;display:inline-flex}td{color:var(--heading);font-size:14px}tbody tr:last-child td{border-bottom:0}.interactive-row{cursor:pointer}.interactive-row:hover td,.interactive-row:focus-visible td{background:#f6faf8}.inactive-machine-row td{color:#6b737b;background:#f3f4f5}.inactive-machine-row code,.inactive-machine-row .status{opacity:.78}.interactive-row:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.machine-card-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px;display:grid}.machine-card{border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:8px;grid-template-columns:minmax(132px,.42fr) minmax(0,1fr);min-height:208px;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 24px #121b240f}.machine-card-alert{z-index:2;color:#fff;border:2px solid #ffffffe0;border-radius:999px;place-items:center;width:22px;height:22px;font-size:13px;font-weight:900;line-height:1;display:inline-grid;position:absolute;top:10px;right:10px;box-shadow:0 5px 12px #121b242e}.machine-card-alert.warning{background:#c46f12}.machine-card-alert.danger{background:#b3261e}.machine-card.inactive-machine-card{box-shadow:none;filter:grayscale(.35);background:#f1f2f3;border-color:#d6dadd}.machine-card.inactive-machine-card .machine-card-visual,.machine-card.inactive-machine-card .machine-card-body{opacity:.68}.interactive-card:hover,.interactive-card:focus-visible,.selected-card{background:#fbfdfc;border-color:#b8d0c2}.interactive-card:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.machine-card-visual{background:#f3f5f6;place-items:center;min-height:100%;margin:0;display:grid;position:relative;overflow:hidden}.machine-card-visual.custom-image img{object-fit:cover;width:100%;height:100%;min-height:208px}.machine-card-body{align-content:start;gap:14px;min-width:0;padding:18px;display:grid}.machine-card-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.machine-card-heading .status{text-align:center;flex:0 auto;max-width:150px}.machine-card-heading h3{color:var(--heading);margin:0;font-size:18px;line-height:1.25}.machine-card-heading p{color:var(--muted);margin:4px 0 0;font-size:13px;font-weight:700}.machine-card-metrics{border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding-top:14px}.machine-card-metrics div{grid-template-columns:1fr;align-content:start;gap:4px;display:grid}.machine-card-metrics dt{font-size:11px}.machine-card-metrics dd{font-size:13px;font-weight:750}.service-usage-section{background:linear-gradient(135deg,#f7fbf8,#f2f6f4);border:1px solid #dce6df;border-radius:8px;gap:8px;padding:12px;display:grid}.service-usage-section.low-resource{background:linear-gradient(135deg,#fff0ed,#f7d8d2);border-color:#dc8f84}.service-usage-section.warning-resource{background:linear-gradient(135deg,#fff8eb,#f8e5c4);border-color:#e5b56f}.service-usage-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.service-usage-heading h4{color:var(--heading);margin:0;font-size:13px}.service-usage-heading span{color:#24527a;font-size:12px;font-weight:800}.service-usage-progress{background:#dfe8e3;border-radius:999px;height:9px;position:relative;overflow:hidden}.service-usage-progress span{border-radius:inherit;height:100%;transition:width .16s,background-color .16s;display:block}.service-usage-cycle,.service-usage-remaining,.service-usage-fallback{margin:0;font-size:12px;font-weight:700}.service-usage-cycle{color:var(--heading)}.service-usage-remaining,.service-usage-fallback{color:var(--muted)}.service-prediction{border-top:1px solid #dce6df;gap:3px;padding-top:6px;display:grid}.service-prediction p,.service-prediction small{margin:0}.service-prediction p{color:var(--heading);gap:2px;font-size:12px;font-weight:500;display:grid}.service-prediction p span{color:#24527a;font-weight:800}.service-prediction p strong{color:var(--heading);font-weight:500}.service-prediction small{color:var(--muted);font-size:11px;font-weight:700}.machine-illustration{--machine-accent:#d99418;--machine-dark:#2a3035;--machine-line:#8d969f;min-height:208px}.machine-illustration:before{content:"";filter:blur(18px);background:#ffffff9e;border-radius:999px;width:72%;height:42%;position:absolute}.machine-illustration-body,.machine-illustration-cab,.machine-illustration-arm,.machine-illustration-tool,.machine-illustration-track{display:block;position:absolute}.machine-illustration-body{background:var(--machine-accent);border-radius:7px 11px 6px 6px;width:72px;height:36px;transform:translate(-4px,14px);box-shadow:inset 0 -8px #00000014}.machine-illustration-cab{background:#26323b;border-radius:7px 9px 4px 4px;width:34px;height:34px;transform:translate(24px,-14px)}.machine-illustration-cab:after{content:"";background:#bcd0d8;border-radius:3px;position:absolute;inset:6px 6px 10px}.machine-illustration-track{background:var(--machine-dark);border-radius:999px;width:100px;height:20px;transform:translate(-1px,42px)}.machine-illustration-track:before,.machine-illustration-track:after{content:"";background:#6f7a82;border-radius:50%;width:10px;height:10px;position:absolute;top:5px}.machine-illustration-track:before{left:18px}.machine-illustration-track:after{right:18px}.machine-illustration-arm{background:var(--machine-accent);transform-origin:100%;border-radius:999px;width:76px;height:11px;transform:translate(-52px,-28px)rotate(-28deg)}.machine-illustration-arm:after{content:"";background:var(--machine-accent);transform-origin:100%;border-radius:999px;width:50px;height:10px;position:absolute;top:0;left:-42px;transform:rotate(-34deg)}.machine-illustration-tool{border:5px solid var(--machine-dark);border-top:0;border-radius:0 0 14px 14px;width:22px;height:18px;transform:translate(-97px,-42px)rotate(14deg)}.machine-illustration.bulldozer .machine-illustration-arm{background:linear-gradient(#e0a028,#c58512);border-radius:0 0 18px 18px;width:92px;height:46px;transform:translate(-54px,18px)rotate(0)}.machine-illustration.bulldozer .machine-illustration-tool,.machine-illustration.bulldozer .machine-illustration-arm:after{display:none}.machine-illustration.loader .machine-illustration-arm{width:62px;transform:translate(-48px,-4px)rotate(-16deg)}.machine-illustration.loader .machine-illustration-tool{border-radius:3px 3px 12px 12px;width:34px;height:16px;transform:translate(-88px,8px)rotate(-8deg)}.machine-illustration.truck .machine-illustration-body{border-radius:5px;width:92px;transform:translate(-8px,9px)}.machine-illustration.truck .machine-illustration-cab{transform:translate(46px,-7px)}.machine-illustration.truck .machine-illustration-arm,.machine-illustration.truck .machine-illustration-tool{display:none}.machine-illustration.roller .machine-illustration-track{background:#6f7a82;border-radius:999px;width:92px;height:30px;transform:translate(-3px,36px)}.machine-illustration.roller .machine-illustration-arm,.machine-illustration.roller .machine-illustration-tool{display:none}.machine-illustration.crane .machine-illustration-arm{width:112px;transform:translate(-42px,-34px)rotate(-34deg)}.machine-illustration.crane .machine-illustration-tool{border:0;border-left:3px solid var(--machine-dark);border-radius:0;width:12px;height:28px;transform:translate(-112px,-64px)}.machine-illustration.generic{--machine-accent:#c3c9cf}.machine-illustration.generic .machine-illustration-body,.machine-illustration.generic .machine-illustration-cab,.machine-illustration.generic .machine-illustration-arm,.machine-illustration.generic .machine-illustration-tool,.machine-illustration.generic .machine-illustration-track{opacity:.45}.machine-illustration-label{color:#fff;background:#3d4650;border-radius:5px;padding:5px 7px;font-size:11px;font-weight:800;position:absolute;bottom:14px;left:14px}code{overflow-wrap:anywhere;background:var(--subtle);max-width:220px;color:var(--heading);font:13px/1.35 var(--mono);border-radius:5px;padding:4px 6px;display:inline-flex}.status{border-radius:999px;justify-content:center;align-items:center;min-width:68px;padding:4px 8px;font-size:12px;font-weight:800;display:inline-flex}.status.active{color:#17633a;background:#e8f5ed}.status.inactive{color:#5c6670;background:#f0f1f3}.status.pending{color:#7a4b00;background:#fff3d8}.status.registered{color:#17633a;background:#e8f5ed}.status.rejected{color:#9b1c1c;background:#fde8e8}.status.service-upcoming{color:#24527a;background:#e7f0fb}.status.service-ok{color:#17633a;background:#e8f5ed}.status.service-due{color:#7a4b00;background:#fff3d8}.status.service-overdue{color:#9b1c1c;background:#fde8e8}.service-value.muted{color:var(--muted);font-weight:650}.table-action{min-width:64px}.icon-action{place-items:center;width:38px;min-width:38px;padding:0;display:inline-grid}.qr-code-icon{color:currentColor;fill:currentColor;stroke:none;width:18px;height:18px}.qr-code-icon-cutout{fill:#fff}.qr-code-icon-corners{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.work-logs-icon{color:currentColor;fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.qr-workspace{gap:18px;min-height:calc(100vh - 190px);padding:24px;display:grid}.qr-toolbar{justify-content:space-between;gap:12px;display:flex}.qr-print-page{border:1px solid var(--border);background:var(--panel);border-radius:8px;place-items:start center;min-height:720px;padding:32px;display:grid}.qr-label{border:1px solid var(--border-strong);background:#fff;border-radius:8px;gap:24px;width:min(460px,100%);padding:28px;display:grid}.qr-label-heading{text-align:center;gap:4px;display:grid}.qr-machine-details{gap:12px}.qr-machine-details div{grid-template-columns:minmax(110px,.6fr) minmax(0,1fr)}.empty-value{color:#a31717;font-size:14px;font-weight:650}.qr-code-frame{border:1px solid var(--border);background:var(--subtle);border-radius:8px;place-items:center;min-height:372px;padding:16px;display:grid}.qr-code-frame img{background:#fff;width:min(360px,100%);height:auto}.state-line{padding:18px}.review-workspace{grid-template-columns:minmax(320px,390px) minmax(0,1fr);min-height:calc(100vh - 190px);display:grid}.review-panel{flex-direction:column;gap:24px;display:flex}.filter-form{gap:16px;display:grid}.review-summary{gap:8px;display:flex}.review-summary span{border:1px solid var(--border);background:var(--subtle);color:var(--heading);border-radius:6px;padding:8px 10px;font-size:14px;font-weight:700}.time-filter-group{border:1px solid var(--border-strong);background:#fff;border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.time-filter-group button{border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-height:38px;color:var(--muted);background:#fff;border-radius:0}.time-filter-group button:nth-child(2n){border-right:0}.time-filter-group button:nth-last-child(-n+2){border-bottom:0}.time-filter-group .selected{background:var(--action-soft);color:var(--action)}.work-log-list-section{padding:24px}.review-grid{grid-template-columns:minmax(0,1fr) minmax(300px,380px);align-items:start;gap:18px;transition:grid-template-columns .18s;display:grid}.review-grid.without-detail{grid-template-columns:minmax(0,1fr)}.pagination-bar{grid-column:1;justify-content:space-between;align-items:center;gap:12px;display:flex}.pagination-bar span{color:var(--heading);font-size:14px;font-weight:700}.selected-row td{background:#f1f7f4}.work-description-cell{overflow-wrap:anywhere;min-width:240px;max-width:360px;line-height:1.45}.detail-panel{border:1px solid var(--border);background:var(--panel);transform-origin:100% 0;border-radius:8px;grid-area:1/2/span 2;min-height:320px;animation:.18s both details-panel-enter}.detail-panel.closing{animation:.18s both details-panel-exit}.admin-detail-panel{grid-area:auto;position:sticky;top:24px}.detail-content{gap:18px;padding:18px;display:grid}.detail-content>.panel-heading{align-items:flex-start}.detail-header-actions{white-space:nowrap;flex:none;align-items:flex-start;gap:8px;display:flex}.detail-content h3{color:var(--heading);margin:0 0 8px;font-size:14px}dl{gap:10px;margin:0;display:grid}dl div{grid-template-columns:minmax(120px,.7fr) minmax(0,1fr);gap:10px;display:grid}dt{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:800}dd{min-width:0;color:var(--heading);overflow-wrap:anywhere;margin:0;font-size:14px}.service-forecast-details{background:linear-gradient(135deg,#f8fbf5,#eef5f2);border:1px solid #dce6df;border-radius:10px;gap:12px;padding:14px;display:grid}.service-forecast-details h3{margin:0}.service-forecast-details dl{gap:9px}.service-forecast-details dt{color:#416554}.detail-actions,.detail-form{gap:12px;display:grid}.detail-actions{grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}.modal-backdrop{z-index:20;background:#0c121873;place-items:start center;padding:48px 18px;display:grid;position:fixed;inset:0;overflow:auto}.modal-panel{border:1px solid var(--border);background:var(--panel);border-radius:8px;width:min(560px,100%);padding:24px;box-shadow:0 24px 80px #0000003d}@keyframes details-panel-enter{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes details-panel-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(18px)}}@media (prefers-reduced-motion:reduce){.admin-workspace,.review-grid{transition:none}.detail-panel,.detail-panel.closing{animation:none}}.description-text{color:var(--heading);white-space:pre-wrap;margin:0;font-size:14px;line-height:1.5}.photo-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.photo-list li{border:1px solid var(--border);background:#fbfaf5;border-radius:6px;gap:8px;display:grid;overflow:hidden}.photo-preview{min-height:140px;color:var(--muted);text-align:center;background:linear-gradient(135deg,#e9efe7,#f7efe0);place-items:center;font-size:13px;font-weight:700;display:grid}.photo-preview a{width:100%;height:100%;display:block}.photo-preview img{object-fit:cover;width:100%;height:180px;display:block}.photo-download-link{text-align:center;margin:12px}.photo-meta{gap:2px;padding:0 10px 10px;display:grid}.photo-meta span{color:var(--heading);overflow-wrap:anywhere;font-size:14px}.photo-meta small{color:var(--muted);font-size:12px}@media (width<=900px){.brand-bar{grid-template-columns:1fr;gap:12px;min-height:auto;padding:14px 18px}.brand-actions{justify-content:stretch}.topbar{flex-direction:column;align-items:flex-start;min-height:160px;padding:22px 18px 18px}.summary-strip{justify-content:stretch;width:100%}.locale-field{flex:180px;grid-template-columns:auto minmax(104px,1fr)}.view-tabs{width:100%}.view-tabs button{padding-left:10px;padding-right:10px}.summary-strip span{flex:1 1 0}.workspace,.admin-workspace{grid-template-columns:1fr}.admin-workspace{gap:16px;padding:18px}.user-workspace,.review-workspace,.review-grid{grid-template-columns:1fr}.detail-panel,.pagination-bar{grid-area:auto}.admin-detail-panel{position:static}.editor-panel{border-right:0;border-bottom:1px solid var(--border)}.editor-panel,.machine-form-section,.machine-list-section,.qr-workspace,.work-log-list-section{padding:18px}.admin-workspace .machine-list-section{padding:0}.editor-panel,.machine-form-section{border-right:0;border-bottom:1px solid var(--border)}.list-toolbar,.subsection-heading,.category-filter-bar,.form-actions,.toolbar-controls:not(.machine-toolbar-controls){flex-direction:column;align-items:stretch}.segmented-control,.view-mode-control,.category-select-field,.machine-status-select-field,.card-sort-field,.search-field{width:100%}.machine-card-grid{grid-template-columns:1fr}}@media (width<=560px){.brand-actions{flex-wrap:wrap}.locale-field{flex-basis:100%}.user-menu-button,.logout-button{flex:1 1 0}.view-tabs{grid-template-columns:1fr;grid-auto-columns:auto;grid-auto-flow:row}.view-tabs button{border-bottom:1px solid #ffffff38;border-right:0}.view-tabs button:last-child{border-bottom:0}.form-grid,.machine-card{grid-template-columns:1fr}.machine-card-visual,.machine-illustration,.machine-card-visual.custom-image img{min-height:170px}.machine-card-metrics{grid-template-columns:1fr;gap:10px}h1{font-size:28px}}@media print{body{background:#fff}.topbar,.print-hidden{display:none!important}.app-shell,.qr-workspace{background:#fff;min-height:auto}.qr-workspace{padding:0;display:block}.qr-print-page{border:0;border-radius:0;min-height:auto;padding:0}.qr-label{page-break-inside:avoid;border:1px solid #000;border-radius:0;gap:8mm;width:96mm;padding:8mm}.qr-label h2,.qr-label dt,.qr-label dd,.qr-label code,.qr-label .eyebrow{color:#000}.qr-code-frame{background:#fff;border:1px solid #000;min-height:86mm;padding:4mm}}
