body{font-size:16px}label,th{font-size:14px}footer{font-size:12px}table{font-size:14px}.role-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.role-tabs .active{background:#2163dd;color:white}.toolbar label{margin:0}.toolbar label input,.toolbar label select{min-width:170px}.card p{white-space:pre-wrap}#importError{color:#a82929;white-space:pre-wrap}#importPreview{margin:20px 0;max-height:55vh;overflow:auto}#importPreview select{max-width:340px}#modal input[type=file]{font-size:14px}.act{padding:24px;background:white;color:#111}.act h1{text-align:center;font-size:22px}.act th,.act td{border:1px solid #aaa}.act figure{break-inside:avoid}.act img{max-width:100%;max-height:600px}.signatures{display:flex;justify-content:space-between;gap:20px;margin-top:32px;break-inside:avoid}#modal:has(.act){max-width:900px}.act p{line-height:1.8}@page{size:A4;margin:16mm}@media print{body.printing-act{background:white}body.printing-act #app,body.printing-act #notice,body.printing-act #modal>header,body.printing-act #printAct{display:none!important}body.printing-act #modal{display:block;position:static;width:100%;max-width:none;max-height:none;overflow:visible;margin:0;padding:0;box-shadow:none}body.printing-act .act{padding:0}body.printing-act dialog::backdrop{display:none}}
/* STGCRM: shared presentation for the server-backed workspaces. */
:root{font-family:Manrope,"Segoe UI",Arial,sans-serif;color:#1c3038;background:#f2f5f5;--accent:#14756d;--muted:#667981}
body{background:#f2f5f5;font-size:16px;line-height:1.5}
button{background:linear-gradient(135deg,#1b8277,#11665f);box-shadow:inset 0 1px #ffffff20;border-radius:10px;transition:background .15s,box-shadow .15s}
button.secondary{background:#edf3f2;color:#315c59;border:1px solid #dce8e4;box-shadow:none}
button:focus-visible,a:focus-visible{outline:3px solid #c6a461;outline-offset:3px}
input,select,textarea{background:#fcfdfd;border-color:#d7e2df;border-radius:9px;color:#1c3038;min-height:44px}
input:focus,select:focus,textarea:focus{outline:2px solid #4b948640;border-color:#4b9486}
input[type=checkbox]{min-height:0;accent-color:#14756d}
label,th{color:#667981;font-size:14px}a{color:#14756d}.muted{color:#667981;font-size:14px}
.app-shell{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;inset:auto;top:0;width:auto;height:100vh;overflow-y:auto;padding:34px 20px 24px;gap:26px;background:radial-gradient(ellipse at 0 0,#24514e 0,transparent 65%),linear-gradient(165deg,#152e35,#0c2028);border-right:1px solid #24424a}
.brand{display:flex;align-items:center;gap:12px;font-size:27px;font-weight:750;letter-spacing:1px;color:#fff}
.brand-mark{display:grid;place-items:center;width:39px;height:41px;border-radius:12px;background:linear-gradient(135deg,#d5ba7e,#b48e4f);color:#18362f;font-size:25px;box-shadow:0 4px 14px #0002}
.brand .accent{color:#c8b184}
.role-card{background:#ffffff07;border:1px solid #ffffff17;border-radius:14px;padding:18px}
.role-card .identity{display:block;color:white;font-size:20px;font-weight:600;letter-spacing:0;overflow-wrap:anywhere}
.role-card .exit{font-size:12px;margin-top:12px;padding:0;background:none;border:0;color:#b9ceca;text-align:left;box-shadow:none}
.navigation .nav-button{display:flex;align-items:center;gap:12px;margin:4px 0;padding:12px 14px;background:transparent;border:1px solid transparent;border-radius:10px;color:#c8d8d6;box-shadow:none;font-size:14px}
.navigation .nav-button>span{font-size:20px;min-width:22px;text-align:center;color:#a5c3bb}
.navigation .nav-button.active{background:linear-gradient(110deg,#28605b,#204644);border-color:#70a19836;box-shadow:inset 3px 0 #ccb27d;color:white}
.navigation .nav-button:hover{background:#ffffff0d}
.sidebar-footer{display:block;margin-top:auto;color:#a8bfba;font-size:12px;line-height:1.8}
.online-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#67ba8e;margin-right:8px;box-shadow:0 0 0 3px #67ba8e12}
.author-line{margin-top:12px;color:#91aaa5}
.main-content{margin-left:0;max-width:none;min-width:0;padding:34px 40px 56px;background:radial-gradient(ellipse at 100% 0,#e9f1ec90,transparent 48%)}
.topbar{margin-bottom:26px;padding-bottom:24px;border-bottom:1px solid #d9e3e2;gap:20px;flex-wrap:wrap}
.topbar h1{margin:0;font-size:30px;font-weight:650;letter-spacing:-.6px}
.eyebrow{text-transform:uppercase;letter-spacing:1.8px;font-size:12px;font-weight:700;color:#748b82;margin-bottom:7px}
.top-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.presence-badge{color:#55736a;font-size:14px;white-space:nowrap;background:transparent;border:1px solid transparent;padding:6px 10px;cursor:pointer;border-radius:8px}
.presence-badge:hover,.presence-badge:focus-visible{border-color:currentColor;background:rgba(82,155,255,.08)}
.camera-upload-button{display:none}
@media(pointer:coarse),(max-width:800px){.camera-upload-button{display:inline-flex;align-items:center;margin:8px 0;min-height:44px}}
.inspection-bar{padding:0 0 12px;max-width:460px}.inspection-bar label{margin-top:0}
.inspection-bar>button{display:block;margin-top:10px}
.workspace-management{position:sticky;top:0;z-index:20;padding:14px 18px;border:1px solid #e9d9b4;border-radius:9px;margin:12px 0;line-height:1.5}
.card{border:1px solid #e0e8e6;border-radius:17px;padding:24px;box-shadow:0 5px 24px #193f3005;background:white}
.metric{border-top:3px solid #81a69b}.metric strong{font-size:26px;letter-spacing:-.5px;color:#183f38}
.grid{gap:18px}.grid .card{margin:0 0 14px}
.toolbar{background:#fff;border:1px solid #dfe8e5;border-radius:13px;padding:16px 18px;gap:12px}
.toolbar input,.toolbar select{flex:1;min-width:150px;max-width:300px}
th{background:#f3f7f5;color:#657d77;font-weight:600;font-size:14px}
th,td{padding:16px 12px;border-bottom-color:#e9eeeb}
tbody tr[data-job]:hover{background:#f9fbfa}
td small{font-size:13px;color:#70827b}.badge{font-size:13px;background:#efedf6;color:#64628a;font-weight:600;white-space:normal}
.status-open{background:#e8f3ef;color:#276f67}.status-work{background:#faf1de;color:#8c6325}.status-done{background:#e8f3ea;color:#2f7453}.status-late{background:#faeaf0;color:#ac4655}
.empty{color:#748b82;padding:50px 20px}.role-tabs .active{background:#14756d;color:white}
dialog{border:1px solid #dce5e0;border-radius:20px;color:#1c3038;box-shadow:0 24px 100px #0c292f38;padding:30px}
dialog::backdrop{background:#0b242b99;backdrop-filter:blur(4px)}
.modal-heading{padding-bottom:18px;border-bottom:1px solid #e0e8e6}.modal-heading h2{margin:0}
.icon-close{font-size:24px;line-height:1;padding:8px 12px}
dialog .card{background:#f6f9f7;border-color:#e0e8e3}
.photos img{border-radius:10px;border:1px solid #dce5df}
.part-options{max-height:220px;overflow:auto;border:1px solid #ccd5d4;border-radius:8px;background:#fff;margin-top:-8px}
.picker-overlay-anchor{display:block;min-width:0;width:100%}
.picker-overlay-anchor>input{width:100%;box-sizing:border-box}
.picker-overlay-menu[hidden]{display:none!important}
.part-options [role=option]{padding:10px 12px;cursor:pointer;border-bottom:1px solid #edf1f0}
.part-options button[role=option]{display:block;width:100%;margin:0;text-align:left;border-radius:0;border-left:0;border-right:0;border-top:0;background:transparent;color:inherit;font-weight:normal;white-space:normal}
.part-options [role=option]:hover,.part-options [role=option]:focus{background:#e8f3f1;outline:2px solid #367c73;outline-offset:-2px}
.required-warning{color:#a71919;background:#fff0f0;border:1px solid #df7777;border-radius:9px;padding:12px;margin-bottom:14px}
.card.missing-required-photo{border:2px solid #c52828;background:#fff7f7}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border:2px solid #c52828;background:#fff7f7}
.draft-photo{position:relative;margin:0;width:125px;height:95px}
.draft-photo a,.draft-photo img{display:block}
.draft-photo .draft-photo-remove{position:absolute;top:4px;right:4px;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:50%;background:#fff;color:#a32323;font-size:24px;line-height:1;box-shadow:0 1px 5px #0004;z-index:1}
.draft-photo .draft-photo-remove:hover{background:#ffe5e5}
.draft-photo .photo-download{position:absolute;bottom:4px;left:4px;right:4px;padding:4px 6px;border-radius:5px;background:#ffffffed;color:#175950;font-size:12px;text-align:center;text-decoration:none;box-shadow:0 1px 4px #0003}
.draft-photo .photo-download:hover{background:#dff2ed}
.draft-photo .draft-photo-remove:focus-visible{outline:3px solid #2163dd;outline-offset:2px}
.warning{background:#faf1de;border-color:#e9d9b4;color:#856027;font-size:14px}
.switch input{min-height:0}.switch input:checked{background:#14756d}
#notice{background:#173b35;box-shadow:0 8px 30px #122f2433}
.auth-screen{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:50px;min-height:100vh;padding:64px max(6vw,28px);background:radial-gradient(ellipse at 8% 10%,#315d5660,transparent 50%),linear-gradient(135deg,#0f252d,#153731)}
.auth-intro{color:#eef5f1;max-width:670px}.auth-wordmark{font-size:32px;font-weight:750;letter-spacing:2px;margin-bottom:60px}.auth-wordmark span{color:#c8b184}
.auth-kicker{color:#b9a577;font-size:13px;letter-spacing:2.5px;font-weight:600}
.auth-intro h2{font-size:clamp(40px,4.4vw,68px);line-height:1.1;letter-spacing:-2px;font-weight:600;margin:24px 0}
.auth-description{max-width:470px;font-size:18px;color:#b4c9c1;line-height:1.8}
.auth-process{display:flex;gap:22px;flex-wrap:wrap;margin-top:38px;color:#d5dfd8;font-size:14px}
.auth-company{margin-top:64px;font-size:13px;letter-spacing:1.5px;color:#cbb98d}.auth-company span{display:block;margin-top:7px;font-size:12px;letter-spacing:0;color:#8daaa0}
.auth-panel{width:100%;max-width:445px;justify-self:end;background:#fcfdfb;border:1px solid #fff8;border-radius:22px;padding:38px;box-shadow:0 24px 80px #0002}
.auth-panel h1{font-size:27px;letter-spacing:-.6px;margin-bottom:10px}.auth-panel button{width:100%;margin-top:18px;padding:13px}.auth-panel label{margin-top:20px}.form-note{font-size:12px;color:#819088;margin:22px 0 0}
@media(max-width:1100px){.app-shell{grid-template-columns:235px minmax(0,1fr)}.main-content{padding:28px 24px}.sidebar{padding:28px 16px}.top-actions{gap:12px}.auth-screen{gap:30px;padding:40px 28px}}
@media(max-width:800px){.app-shell{display:block}.sidebar{position:static;height:auto;padding:18px;gap:16px}.role-card{padding:12px}.navigation{display:flex;flex-wrap:wrap;gap:5px}.navigation .nav-button{width:auto;margin:0}.sidebar-footer{display:none}.main-content{padding:22px 16px}.topbar{gap:14px;padding-bottom:18px}.topbar h1{font-size:26px}.grid{grid-template-columns:1fr}.toolbar{padding:12px}.auth-screen{grid-template-columns:1fr;gap:28px}.auth-intro{max-width:none}.auth-wordmark{margin-bottom:24px}.auth-intro h2{font-size:40px}.auth-process,.auth-company{display:none}.auth-panel{justify-self:start;max-width:none;padding:26px}dialog{padding:20px}.photo-title{gap:12px;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){button{transition:none}}
/* Shared alignment for filter bars and grouped form controls. */
@media screen{
 .toolbar{align-items:flex-end}
 .toolbar>label:not([hidden]){display:flex;flex-direction:column;gap:5px;margin:0;min-width:0;flex:0 1 260px}
 .toolbar>label>input,.toolbar>label>select{margin:0;width:100%;max-width:100%}
 .toolbar input:not([type=checkbox]):not([type=radio]):not([type=file]),.toolbar select:not([multiple]),.toolbar>button,.toolbar>.row>button{height:42px;min-height:42px;box-sizing:border-box;line-height:1.4}
 .toolbar>button{margin:0;white-space:nowrap;flex-shrink:0}
 .toolbar>.row:not(.job-extra-filters){align-items:flex-end}
 .toolbar>.row>label{margin:0}
 .photo-title>h3{margin:0}
 .photo-title{margin-bottom:12px}
 .photo-title>label:not([hidden]){display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0;min-width:0}
 .photo-title>label>input{margin:0;min-width:0}
 form>.grid{align-items:end}
 form>.grid>label{min-width:0}
 .toolbar [hidden]{display:none!important}
 @media(max-width:600px){
  .toolbar>label:not([hidden]){flex:1 1 180px}
  .toolbar>button{white-space:normal;height:auto;min-height:42px;max-width:100%}
  .photo-title>label>input{max-width:100%}
 }
}
/* Compact working surface: keep amounts intact and give content more room. */
button.secondary.object-edit{background:#e9ecef;color:#4b5563;border-color:#d4d9de;box-shadow:none}
.catalog-price-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.catalog-price-values{min-width:0}
.catalog-price-row>button{flex-shrink:0;white-space:nowrap}
#metricPeriod{align-items:flex-end}
#metricPeriod label{margin:0}
#metricPeriod input,#metricPeriod>button{height:42px;min-height:42px;box-sizing:border-box}
#metricPeriod>button{margin:0;white-space:nowrap}
.job-filters{align-items:center}
.job-extra-filters{display:contents}
.job-filters input,.job-filters select,.job-filters>button{height:42px;min-height:42px;margin-top:0;margin-bottom:0;box-sizing:border-box}
.job-filters select[name=extraType]{flex:1 1 220px;max-width:300px}
@media print{body.printing-act .act-upload{display:none!important}}
@media screen{
 .app-shell{grid-template-columns:230px minmax(0,1fr)}
 .sidebar{padding:24px 16px 18px;gap:20px}
 .brand{font-size:24px}.brand-mark{width:34px;height:36px;font-size:22px}
 .role-card{padding:14px}.role-card .identity{font-size:18px}
 .navigation .nav-button{padding:9px 10px;gap:9px;line-height:1.35}
 .main-content{padding:24px 26px 36px}
 .topbar{padding-bottom:16px;margin-bottom:18px;gap:14px}
 .topbar h1{font-size:26px}.top-actions{gap:12px}
 .card{padding:16px;border-radius:13px;margin:12px 0}
 .grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px}
 .grid>*{min-width:0}.grid .card{margin:0 0 10px}
 .metric strong{font-size:22px;letter-spacing:0;white-space:nowrap;font-variant-numeric:tabular-nums}
 .toolbar{padding:12px;margin:14px 0;gap:10px}
 button{padding:8px 12px;font-size:14px}
 input,select,textarea{padding:8px 10px;min-height:38px;font-size:14px;min-width:0;max-width:100%}
 .switch input{min-height:0}.switch input:before{top:3px}
 label{margin:9px 0}h2{font-size:20px}h3{font-size:16px}
 th,td{padding:10px 8px;line-height:1.4;overflow-wrap:normal;word-break:normal}
 td{font-variant-numeric:tabular-nums}
 td a{overflow-wrap:anywhere}
 .badge{font-size:14px;padding:4px 8px;line-height:1.35;word-break:normal}
 .card:has(>table){overflow-x:auto}
 dialog{width:min(1200px,96vw);padding:22px;max-height:94vh}
 .modal-heading{gap:12px;padding-bottom:14px}.modal-heading h2{min-width:0;overflow-wrap:anywhere}.icon-close{flex-shrink:0}
 dialog table{font-size:14px}dialog .card{padding:14px}
 .row>*{min-width:0}.photo-title{gap:12px;flex-wrap:wrap}
 @media(max-width:800px){
  .app-shell{display:block}.sidebar{padding:16px;gap:12px}.main-content{padding:18px 14px}
  .topbar h1{font-size:24px}.top-actions{width:100%;flex-wrap:wrap}
  .presence-badge{white-space:normal}.toolbar input,.toolbar select,.toolbar label{max-width:100%;min-width:0}
  .toolbar label{flex:1 1 180px}.toolbar label input,.toolbar label select{min-width:0}
  .grid{grid-template-columns:1fr}.card{padding:12px}dialog{padding:16px}
 }
}
 .warehouse-labels{display:flex;flex-wrap:wrap;align-items:flex-start;gap:3mm;padding:0}.warehouse-label{box-sizing:content-box;border:1px dashed #aaa;padding:2mm;break-inside:avoid;page-break-inside:avoid;text-align:center;background:#fff;color:#000;font:12px Arial,sans-serif;overflow-wrap:anywhere}.warehouse-label strong{display:block;font-size:14px;margin-bottom:2mm}.warehouse-label svg{display:block;margin:2mm auto 1mm;max-width:none}.warehouse-label .label-code{font:12px monospace;letter-spacing:0}.warehouse-label div{margin:1mm 0}
 .label-picker{max-height:260px;overflow:auto;margin-top:12px}.label-picker input[type=number]{width:90px}.label-picker input[type=checkbox]{width:20px;height:20px}.warehouse-labels{display:block!important}.label-page{width:75mm;height:120mm;display:grid;grid-template-columns:repeat(2,37.5mm);grid-template-rows:repeat(3,40mm);background:#fff;margin:10px auto;box-sizing:border-box}.label-page .warehouse-label{box-sizing:border-box;width:37.5mm;height:40mm;padding:2mm 1.5mm;border:0.15mm dashed #999;overflow:hidden;font:7pt Arial,sans-serif;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1mm}.label-page .warehouse-label strong{font-size:8pt;line-height:1.1;margin:0;max-height:10mm;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.label-page .label-location{line-height:1.1;max-height:7mm;overflow:hidden;margin:0}.label-page .warehouse-label svg{flex-shrink:0;max-width:33mm;margin:0}.label-page .label-code{font:7pt monospace;line-height:1.05;margin:0;max-height:6mm;overflow:hidden}.label-page .label-blank{border-color:#ddd}
 @page stg-label-sheet{size:75mm 120mm;margin:0}
 @media print{body.printing-labels{margin:0!important;padding:0!important}body.printing-labels #modal,body.printing-labels #modal>section,body.printing-labels #modal>div{margin:0!important;padding:0!important;border:0!important;width:75mm!important;max-width:75mm!important;overflow:visible!important}body.printing-labels .warehouse-labels{padding:0!important;margin:0!important}body.printing-labels .label-page{page:stg-label-sheet;margin:0;break-after:page;break-inside:avoid}body.printing-labels .label-page:last-child{break-after:auto}body.printing-labels #modal .act-upload{display:none!important}}
 @media print{body.printing-labels #modal{page:stg-label-sheet}body.printing-labels .label-page{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
.tool-transfer-act .signatures{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.tool-transfer-act table{width:100%;table-layout:auto}.tool-transfer-act td,.tool-transfer-act th{overflow-wrap:anywhere}.tool-transfer-act thead{display:table-header-group}
@media print{.tool-transfer-act{font:11pt 'Times New Roman',serif!important;color:#000!important}.tool-transfer-act h1{font-size:16pt!important;text-align:center}.tool-transfer-act table{font-size:9pt!important}.tool-transfer-act tr,.tool-transfer-act .signatures{break-inside:avoid}.tool-transfer-act td,.tool-transfer-act th{padding:5px!important;border:1px solid #999!important;color:#000!important;background:#fff!important}}
dialog.crm-photo-viewer {
 position:fixed;inset:0;margin:auto;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;
 box-sizing:border-box;padding:72px 24px 48px;border:0;border-radius:0;background:rgba(15,25,40,.94);
 color:#edf3fa;overflow:hidden;
}
dialog.crm-photo-viewer[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;}
dialog.crm-photo-viewer::backdrop{background:rgba(15,25,40,.75);}
dialog.crm-photo-viewer>img{display:block;max-width:100%;max-height:calc(100dvh - 150px);width:auto;height:auto;object-fit:contain;min-height:0;}
dialog.crm-photo-viewer>p{margin:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;}
dialog.crm-photo-viewer>.crm-photo-viewer-close{position:absolute;top:max(12px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));width:48px;height:48px;padding:0;border:1px solid #8da8c0;border-radius:12px;background:#30445d;color:white;font-size:34px;line-height:1;cursor:pointer;}
/* Non-modal maintenance notice: keep forms and uploads usable. */
.system-announcement{position:fixed;z-index:10000;inset:12px auto auto 50%;margin:0;transform:translateX(-50%);width:min(560px,calc(100vw - 24px));box-sizing:border-box;background:#fff7df;color:#17232f;border:1px solid #d8b661;border-radius:12px;padding:16px;box-shadow:0 8px 30px #0003;max-height:50vh;overflow:auto}
.system-announcement p{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0}

.system-announcement::backdrop{background:transparent}
/* SBIS UI: external styles compatible with style-src self. */
#sbisSettingsPanel .sbis-customer-options{max-height:220px;overflow:auto}
#sbisSettingsPanel .sbis-customer-options>label{display:block}
#sbisSettingsPanel .sbis-customer-options>label[hidden],.sbis-connection-panel[hidden]{display:none!important}
.sbis-status-badge{margin-left:8px;font-size:12px}

