:root{--bg:#f4f6f8;--panel:#fff;--panel2:#f8fafb;--text:#17202a;--muted:#6d7783;--line:#e3e7eb;--brand:#173f3a;--brand2:#245f57;--accent:#d7b46a;--danger:#b93c44;--warning:#b57a18;--success:#26785e;--shadow:0 14px 40px rgba(25,39,45,.10);--radius:14px}
[data-theme="dark"]{--bg:#101515;--panel:#171e1e;--panel2:#1c2424;--text:#eef3f2;--muted:#9ba7a5;--line:#2c3635;--brand:#68a99f;--brand2:#82beb5;--accent:#d7b46a;--shadow:0 18px 45px rgba(0,0,0,.28)}
.signature-box{display:grid;gap:9px;margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.signature-box>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.signature-box span{font-size:12px;color:var(--muted)}.signature-box canvas{width:100%;height:130px;touch-action:none;cursor:crosshair;border:1px dashed var(--brand2);border-radius:9px;background:var(--panel)}.signature-box .btn{justify-self:start}@media(max-width:760px){.signature-box>div{display:grid;gap:3px}}
.automatic-consumption-preview{display:block;grid-column:1/-1;color:var(--muted);font-size:12px;line-height:1.45}.production-corrections p{margin:8px 0 0}.production-record-filters{margin-bottom:16px}
@media(max-width:760px){.production-record-filters,.stock-only-filters{display:grid;grid-template-columns:1fr 1fr}.production-record-filters input,.stock-only-filters input{grid-column:1/-1}.production-record-filters .btn,.stock-only-filters .btn{width:100%}.production-document-summary{grid-template-columns:1fr 1fr}.production-document-labor{grid-template-columns:1fr 1fr}.production-document-labor>div:nth-child(n+3){margin-top:8px}.stock-section-head{align-items:flex-start;gap:10px;flex-direction:column}.stock-section-head select{width:100%}}
@media(max-width:460px){.production-record-filters,.stock-only-filters{grid-template-columns:1fr}.production-document-summary,.production-document-labor{grid-template-columns:1fr}.production-document-labor>div{margin-top:8px}.data-table{min-width:640px}}
@media(max-width:900px){.app,.app.compact{display:block}.sidebar,.app.compact .sidebar{width:278px!important;transform:translateX(-110%)!important;visibility:hidden;pointer-events:none;transition:transform .22s ease,visibility .22s ease}.sidebar.open,.app.compact .sidebar.open{transform:translateX(0)!important;visibility:visible;pointer-events:auto;box-shadow:14px 0 36px rgba(0,0,0,.28)}.workspace,.app.compact .workspace{margin-left:0!important}.mobile-only{display:grid!important}.collapse-btn{display:none!important}.topbar{padding-left:16px;padding-right:16px}.page-head,.content{padding-left:18px;padding-right:18px}}
.annual-actual{display:grid!important;grid-template-columns:minmax(170px,.72fr) minmax(0,1.8fr)!important;align-items:stretch!important;gap:18px!important;margin:12px 0 0!important;padding:16px 18px!important;background:linear-gradient(100deg,rgba(31,165,200,.12),rgba(31,165,200,.045))!important}.annual-actual-heading{display:grid;align-content:center;gap:5px}.annual-actual-heading>span{color:var(--brand2)!important;font-size:10px!important;font-weight:800;letter-spacing:.08em}.annual-actual-heading>b{font-size:15px!important}.annual-actual-heading small{color:var(--muted)!important;font-size:11px!important}.annual-actual-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.annual-actual-metrics>div{display:grid;align-content:center;gap:4px;padding:5px 0 5px 14px;border-left:1px solid var(--line)}.annual-actual-metrics span,.annual-actual-metrics small{font-size:11px!important;color:var(--muted)!important}.annual-actual-metrics b{font-size:17px!important}.annual-actual-metrics .positive b{color:var(--success)}.annual-actual-metrics .negative b{color:var(--danger)}@media(max-width:760px){.annual-actual{grid-template-columns:1fr!important;gap:12px!important}.annual-actual-metrics{grid-template-columns:1fr}.annual-actual-metrics>div{padding:10px 0 0;border-left:0;border-top:1px solid var(--line)}}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.logo{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--accent);color:#17352f;font-weight:900;font-size:21px}.logo.large{width:60px;height:60px;border-radius:16px;font-size:30px;position:absolute;top:54px}.logo.mobile{display:none}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--brand2)}.field label{font-size:12px;font-weight:700;color:var(--muted);display:grid;gap:8px;margin-bottom:18px}.field input,.field select,.field textarea,.toolbar input,.toolbar select{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;padding:12px 13px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand2);box-shadow:0 0 0 3px rgba(36,95,87,.12)}.form-error{min-height:22px;color:var(--danger);font-size:13px}.app{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:#133a35;color:white;padding:22px 16px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 26px}.brand strong{display:block;font-size:18px}.brand span{display:block;font-size:11px;color:#a9c6c1;margin-top:2px}.module-label{font-size:10px;letter-spacing:.14em;color:#90b1ab;margin:0 9px 8px;font-weight:800}.module-selector{width:100%;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);color:white;padding:13px;border-radius:10px;text-align:left;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.module-dropdown{position:absolute;top:128px;left:16px;width:228px;background:var(--panel);color:var(--text);border-radius:12px;padding:7px;box-shadow:var(--shadow);z-index:30}.module-option{width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:11px;border-radius:8px;cursor:pointer;display:flex;gap:9px}.module-option:hover{background:var(--panel2)}.side-nav{display:grid;gap:5px;margin-top:20px}.nav-item{border:0;background:transparent;color:#bfd3d0;padding:11px 12px;border-radius:9px;text-align:left;display:flex;align-items:center;gap:11px;cursor:pointer;font-size:14px}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.10);color:white}.nav-item.active{box-shadow:inset 3px 0 var(--accent)}.sidebar-bottom{margin-top:auto;display:grid;gap:6px}.side-action{border:0;background:transparent;color:#bfd3d0;border-radius:9px;padding:11px 12px;text-align:left;display:flex;gap:10px;align-items:center;cursor:pointer}.side-action:hover{background:rgba(255,255,255,.08);color:white}.side-action.danger:hover{color:#ffd8da}.workspace{margin-left:260px;min-width:0}.topbar{height:72px;padding:0 30px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:var(--panel);position:sticky;top:0;z-index:10}.search-wrap{width:min(470px,55vw);display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:9px 12px}.search-wrap input{border:0;outline:0;background:transparent;color:var(--text);flex:1}.search-wrap kbd{font-size:10px;padding:3px 6px;border:1px solid var(--line);border-radius:5px;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:12px}.icon-btn{border:1px solid var(--line);background:var(--panel);color:var(--text);width:38px;height:38px;border-radius:10px;display:grid;place-items:center;cursor:pointer}.badge-wrap{position:relative}.badge-wrap i{position:absolute;right:-4px;top:-4px;background:var(--danger);color:white;width:17px;height:17px;border-radius:50%;font-size:10px;display:grid;place-items:center;font-style:normal}.user-chip{display:flex;align-items:center;gap:9px}.avatar{width:36px;height:36px;border-radius:10px;background:#dce9e6;color:#19453e;display:grid;place-items:center;font-weight:800}.user-chip strong,.user-chip span{display:block}.user-chip strong{font-size:13px}.user-chip span{font-size:11px;color:var(--muted);margin-top:2px}.page-head{padding:28px 32px 18px;display:flex;align-items:flex-end;justify-content:space-between}.page-head h1{margin:7px 0 5px;font-size:27px}.page-head p{margin:0;color:var(--muted)}.breadcrumbs{font-size:11px;color:var(--muted)}.content{padding:0 32px 40px}.grid{display:grid;gap:16px}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.kpi{display:flex;justify-content:space-between;align-items:flex-start}.kpi .value{font-size:29px;font-weight:800;margin:13px 0 5px}.kpi .label{font-size:12px;color:var(--muted)}.icon-tile{width:42px;height:42px;border-radius:11px;background:var(--panel2);display:grid;place-items:center;color:var(--brand2)}.two-col{grid-template-columns:1.4fr .8fr;margin-top:16px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-head h3{margin:0;font-size:16px}.card-head span{font-size:12px;color:var(--muted)}.empty{padding:48px 20px;text-align:center;color:var(--muted)}.btn{border:1px solid var(--line);background:var(--panel);color:var(--text);padding:10px 14px;border-radius:9px;font-weight:700;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--brand);color:white;border-color:var(--brand)}.btn.danger{background:var(--danger);color:white;border-color:var(--danger)}.btn.ghost-danger{color:var(--danger)}.btn.full{width:100%;padding:13px}.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap}.toolbar-left,.toolbar-right{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.data-table{width:100%;border-collapse:collapse;min-width:760px;background:var(--panel)}.data-table th{text-align:left;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--panel2);padding:12px 14px;border-bottom:1px solid var(--line)}.data-table td{padding:13px 14px;border-bottom:1px solid var(--line);font-size:13px}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:var(--panel2)}.status{font-size:11px;font-weight:800;padding:5px 8px;border-radius:20px;display:inline-flex}.status.active,.status.approved,.status.closed{background:#e1f2eb;color:#21664f}.status.inactive,.status.rejected{background:#f9e3e5;color:#9d3037}.status.draft{background:#eef0f3;color:#59636f}.status.submitted{background:#fff1d9;color:#98640f}.actions{display:flex;gap:6px}.action-icon{width:30px;height:30px;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:7px;display:grid;place-items:center;cursor:pointer}.action-icon:hover{color:var(--brand2);border-color:var(--brand2)}.action-icon.delete:hover{color:var(--danger);border-color:var(--danger)}.modal{position:fixed;inset:0;background:rgba(9,18,18,.58);display:grid;place-items:center;padding:20px;z-index:100}.modal-panel{width:min(780px,100%);max-height:90vh;overflow:auto;background:var(--panel);border-radius:18px;box-shadow:var(--shadow);padding:24px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.modal-head h2{margin:7px 0 0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field.full{grid-column:1/-1}.field label{margin:0}.field textarea{min-height:90px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.line-builder{border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:12px}.line-row{display:grid;grid-template-columns:2fr .7fr .8fr 38px;gap:8px;margin-bottom:8px}.line-row input,.line-row select{min-width:0;width:100%;border:1px solid var(--line);background:var(--panel);color:var(--text);padding:9px;border-radius:8px}.toast-stack{position:fixed;right:22px;bottom:22px;display:grid;gap:8px;z-index:200}.toast{background:#183f3a;color:white;padding:12px 15px;border-radius:10px;box-shadow:var(--shadow);font-size:13px}.activity{display:grid;gap:14px}.activity-item{display:grid;grid-template-columns:36px 1fr;gap:11px}.activity-item p{margin:0;font-size:13px}.activity-item small{color:var(--muted)}.bar-chart{height:210px;display:flex;align-items:end;gap:12px;padding-top:20px}.bar{flex:1;background:linear-gradient(180deg,var(--brand2),var(--brand));border-radius:6px 6px 2px 2px;min-height:10px;position:relative}.bar span{position:absolute;bottom:-22px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--muted)}.placeholder{border:1px dashed var(--line);border-radius:14px;padding:70px 20px;text-align:center;background:var(--panel)}.placeholder h3{margin:12px 0 6px}.placeholder p{color:var(--muted);max-width:520px;margin:auto}.mobile-only{display:none}
@media(max-width:1050px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.user-chip div:last-child{display:none}}
@media(max-width:760px){.logo.mobile{display:grid;margin-bottom:35px}.app{display:block}.sidebar{transform:translateX(-105%);transition:.2s}.sidebar.open{transform:none}.workspace{margin-left:0}.mobile-only{display:grid}.topbar{padding:0 16px}.search-wrap{width:auto;flex:1;margin:0 10px}.search-wrap kbd{display:none}.page-head,.content{padding-left:18px;padding-right:18px}.kpi-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.line-row{grid-template-columns:1fr 1fr}.line-row>*:first-child{grid-column:1/-1}.page-head{align-items:flex-start;gap:14px;flex-direction:column}}

/* Winter premium workspace layer */
.brand{position:relative}.collapse-btn{margin-left:auto;width:30px;height:30px;border:0;border-radius:8px;color:#bfd3d0;background:transparent;cursor:pointer;display:grid;place-items:center}.collapse-btn:hover{background:rgba(255,255,255,.1);color:white}.collapse-btn::before{content:'‹';font-size:25px;line-height:1}.app.compact{grid-template-columns:76px 1fr}.app.compact .sidebar{width:76px;padding:22px 12px}.app.compact .workspace{margin-left:76px}.app.compact .brand{padding:0 5px 26px;justify-content:center}.app.compact .brand-copy,.app.compact .module-label,.app.compact .module-selector span:first-child,.app.compact .nav-item span,.app.compact .side-action span{display:none}.app.compact .collapse-btn{position:absolute;right:-7px;bottom:20px;background:#23564f;color:white;box-shadow:0 5px 14px rgba(0,0,0,.2)}.app.compact .collapse-btn::before{content:'›'}.app.compact .module-selector{justify-content:center;padding:13px 5px}.app.compact .module-dropdown{left:76px;top:102px}.app.compact .nav-item,.app.compact .side-action{justify-content:center;padding:12px}.app.compact .side-action{font-size:0}.app.compact .sidebar-bottom{align-items:stretch}.app.compact .logo{width:38px;height:38px}.sidebar,.workspace{transition:width .22s ease,margin-left .22s ease}.content{animation:content-in .24s ease}@keyframes content-in{from{opacity:.45;transform:translateY(5px)}to{opacity:1;transform:none}}
.page-head{padding-top:32px}.page-head h1{font-size:30px;letter-spacing:-.03em}.page-actions-summary{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.live-dot{width:8px;height:8px;border-radius:999px;background:#38a176;box-shadow:0 0 0 4px rgba(56,161,118,.12)}.kpi{min-height:145px;position:relative;overflow:hidden}.kpi::after{content:'';position:absolute;width:130px;height:130px;border-radius:50%;right:-70px;bottom:-70px;background:var(--panel2);opacity:.85}.kpi .value{letter-spacing:-.04em}.kpi-trend{display:inline-flex;align-items:center;gap:4px;margin-top:5px;font-size:11px;font-weight:800;color:#26785e}.kpi-trend.down{color:var(--danger)}.kpi-trend.neutral{color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);gap:16px;margin-top:16px}.chart-card{min-height:316px}.chart-toolbar{display:flex;gap:5px;background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:3px}.chart-filter{border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:700;padding:6px 9px;border-radius:6px;cursor:pointer}.chart-filter.active,.chart-filter:hover{color:var(--text);background:var(--panel);box-shadow:0 1px 3px rgba(0,0,0,.06)}.production-chart{height:218px;display:flex;align-items:end;gap:10px;padding:22px 4px 24px}.production-bar{height:100%;flex:1;display:flex;align-items:end;position:relative}.production-bar i{display:block;width:100%;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,#5f9b91,var(--brand));transition:height .35s ease}.production-bar i:hover{filter:brightness(1.12)}.production-bar span{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--muted)}.insight-list{display:grid;gap:14px}.insight{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.insight:last-child{border-bottom:0}.insight b{display:block;font-size:13px}.insight small{color:var(--muted);font-size:11px}.insight strong{font-size:12px}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.quick-action{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:12px 10px;color:var(--text);text-align:left;cursor:pointer}.quick-action:hover{border-color:var(--brand2);background:var(--panel2)}.quick-action span{display:block;font-size:11px;font-weight:800;margin-top:8px}.activity-feed{display:grid;gap:0}.activity-feed .activity-item{padding:11px 0;border-bottom:1px solid var(--line)}.activity-feed .activity-item:last-child{border-bottom:0}.dashboard-empty{padding:26px 0;color:var(--muted);font-size:13px;text-align:center}
.command-palette{position:fixed;inset:0;background:rgba(10,22,21,.48);padding:12vh 20px 20px;z-index:150;display:grid;place-items:start center}.command-panel{width:min(680px,100%);background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 65px rgba(0,0,0,.28);overflow:hidden}.command-search{display:flex;align-items:center;gap:12px;padding:15px 16px;border-bottom:1px solid var(--line);color:var(--muted)}.command-search input{border:0;outline:0;background:transparent;color:var(--text);font-size:15px;flex:1}.command-search kbd,.command-hint{color:var(--muted);font-size:11px}.command-search kbd{border:1px solid var(--line);border-radius:5px;padding:3px 5px}.command-results{max-height:360px;overflow:auto;padding:8px}.command-group-title{padding:10px 10px 6px;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.1em}.command-result{width:100%;border:0;background:transparent;color:var(--text);border-radius:9px;padding:11px;display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:10px;text-align:left;cursor:pointer}.command-result:hover,.command-result.selected{background:var(--panel2)}.command-result .result-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:var(--panel);color:var(--brand2);border:1px solid var(--line)}.command-result strong,.command-result small{display:block}.command-result strong{font-size:13px}.command-result small{font-size:11px;color:var(--muted);margin-top:2px}.command-result em{font-style:normal;font-size:11px;color:var(--muted)}.command-hint{margin:0;padding:10px 16px;border-top:1px solid var(--line)}
@media(max-width:760px){.collapse-btn{display:none}.app.compact{display:block}.app.compact .sidebar{width:260px;padding:22px 16px}.app.compact .workspace{margin-left:0}.app.compact .brand-copy,.app.compact .module-label,.app.compact .module-selector span:first-child,.app.compact .nav-item span,.app.compact .side-action span{display:initial}.app.compact .brand{padding:0 8px 26px}.app.compact .module-selector{justify-content:space-between;padding:13px}.dashboard-grid{grid-template-columns:1fr}.quick-actions{grid-template-columns:1fr}.command-palette{padding:70px 12px 12px}}

/* The content area, not the complete window, determines dashboard breakpoints. */
.content{container-type:inline-size;min-width:0}.grid,.dashboard-grid,.card,.kpi,.kpi>div{min-width:0}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr)}
@container (max-width:760px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:minmax(0,1fr)}.page-actions-summary{display:none}}
@container (max-width:470px){.kpi-grid{grid-template-columns:minmax(0,1fr)}.kpi{min-height:120px}.page-head{padding-top:24px}.content{padding-left:20px;padding-right:20px}}

/* Winterplateau brand system */
:root{--bg:#f3f7fa;--panel:#fff;--panel2:#f6f9fb;--text:#111820;--muted:#667784;--line:#dce6eb;--brand:#087eae;--brand2:#0aa3dc;--accent:#55c5ef;--danger:#d54853;--warning:#c9871a;--success:#168467;--shadow:0 16px 42px rgba(13,42,58,.12)}
[data-theme="dark"]{--bg:#091218;--panel:#111b22;--panel2:#15232c;--text:#f4f9fb;--muted:#9cafba;--line:#263843;--brand:#0a9cd5;--brand2:#5ac8ee;--accent:#6ed0f0;--shadow:0 18px 46px rgba(0,0,0,.32)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#0aa3dc;box-shadow:0 0 0 3px rgba(10,163,220,.14)}.btn.primary{background:linear-gradient(135deg,#087eae,#0aa3dc);border-color:#087eae}.btn.primary:hover{filter:brightness(1.04)}
.sidebar{background:linear-gradient(180deg,#071b29,#073f58)}.brand{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;padding:3px 8px 25px}.brand-logo{display:block;width:146px;height:66px;object-fit:contain;object-position:left top;grid-column:1/-1}.brand-copy strong{font-size:17px;letter-spacing:-.02em}.brand-copy span{color:#9fd4e8}.collapse-btn{grid-column:2;grid-row:2}.module-label{color:#8fc9df}.module-selector{border-color:rgba(122,210,241,.24);background:rgba(113,205,237,.09)}.nav-item{color:#bedce7}.nav-item:hover,.nav-item.active{background:rgba(84,195,235,.14)}.nav-item.active{box-shadow:inset 3px 0 #55c5ef}.side-action{color:#bedce7}.app.compact .brand{display:flex;min-height:70px;padding:0 5px 25px}.app.compact .brand-logo{display:none}.app.compact .brand::before{content:'W';display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#0aa3dc,#66d2f1);color:#062033;font-weight:900;font-size:20px}.app.compact .collapse-btn{right:-8px;bottom:21px;background:#0a8fbd}.topbar{background:rgba(255,255,255,.88);backdrop-filter:blur(12px)}[data-theme="dark"] .topbar{background:rgba(17,27,34,.88)}.avatar{background:#d7f0f8;color:#076188}.icon-tile{background:#edf7fa;color:#087eae}[data-theme="dark"] .icon-tile{background:#152c37;color:#5ac8ee}.production-bar i{background:linear-gradient(180deg,#5fd1f2,#087eae)}.live-dot{background:#0aa3dc;box-shadow:0 0 0 4px rgba(10,163,220,.14)}.command-result .result-icon{color:#087eae}
@media(max-width:760px){.brand-logo{display:block;width:138px}.brand{display:grid}.app.compact .brand-logo{display:block}.app.compact .brand::before{display:none}}

.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.settings-card{padding:22px}.settings-card h3{margin:0 0 6px}.settings-card>p{margin:0 0 20px;color:var(--muted);font-size:13px;line-height:1.55}.theme-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.theme-option{border:1px solid var(--line);border-radius:12px;background:var(--panel2);padding:14px;text-align:left;color:var(--text);cursor:pointer}.theme-option:hover,.theme-option.active{border-color:var(--brand2);box-shadow:0 0 0 2px rgba(10,163,220,.12)}.theme-option strong,.theme-option small{display:block}.theme-option strong{font-size:13px;margin:8px 0 3px}.theme-option small{font-size:11px;color:var(--muted)}.setting-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.setting-row:last-child{border-bottom:0}.setting-row strong,.setting-row small{display:block}.setting-row strong{font-size:13px}.setting-row small{font-size:11px;color:var(--muted);margin-top:3px}@media(max-width:760px){.settings-grid{grid-template-columns:1fr}}

.timesheet-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.month-control{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:4px;background:var(--panel2)}.month-control strong{min-width:132px;text-align:center;font-size:13px}.month-control .icon-btn{width:30px;height:30px;border:0;background:transparent}.timesheet-summary{display:flex;gap:20px;align-items:center}.timesheet-summary strong,.timesheet-summary small{display:block}.timesheet-summary strong{font-size:20px}.timesheet-summary small{font-size:11px;color:var(--muted)}.timesheet-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendar-weekday{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:5px 7px}.calendar-day{min-height:106px;border:1px solid var(--line);border-radius:11px;padding:9px;background:var(--panel);display:flex;flex-direction:column;gap:7px}.calendar-day.empty{border-color:transparent;background:transparent}.calendar-day.today{border-color:var(--brand2);box-shadow:0 0 0 2px rgba(10,163,220,.10)}.calendar-day.weekend{background:var(--panel2)}.calendar-day-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:800}.calendar-day input{width:100%;border:1px solid var(--line);border-radius:7px;background:var(--panel2);color:var(--text);padding:7px;font-weight:800;outline:0}.calendar-day input:focus{border-color:var(--brand2)}.calendar-day small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-day.has-hours input{color:var(--brand);border-color:var(--brand2)}.timesheet-empty{padding:55px 20px;text-align:center;color:var(--muted)}@media(max-width:900px){.timesheet-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-weekday{display:none}.calendar-day.empty{display:none}}@media(max-width:520px){.timesheet-calendar{grid-template-columns:1fr}.timesheet-summary{width:100%;justify-content:space-between}.month-control strong{min-width:112px}}
.timesheet-tools #timesheetEmployee{height:40px;padding-top:0;padding-bottom:0}.timesheet-edit-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.timesheet-calendar .calendar-day.readonly{cursor:pointer}.timesheet-calendar .calendar-day.editable{border-color:var(--brand2)}
.sales-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.sales-insight-card{min-height:390px}.dashboard-switch{display:flex;padding:3px;border:1px solid var(--line);background:var(--panel2);border-radius:9px;gap:2px}.dashboard-switch button{border:0;background:transparent;color:var(--muted);padding:6px 9px;border-radius:6px;font-size:12px;font-weight:700;cursor:pointer}.dashboard-switch button.active{color:var(--text);background:var(--panel);box-shadow:0 1px 3px rgba(0,0,0,.12)}.sales-ranking{display:flex;flex-direction:column;gap:5px}.sales-ranking-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;border:0;border-radius:10px;background:transparent;color:var(--text);padding:9px 6px;text-align:left;cursor:pointer}.sales-ranking-row:hover{background:var(--panel2)}.rank-number{color:var(--muted);font-weight:800;text-align:center}.rank-main{min-width:0}.rank-main b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.rank-main i{display:block;height:5px;background:var(--panel2);border-radius:99px;overflow:hidden;margin-top:7px}.rank-main em{display:block;height:100%;background:var(--brand2);border-radius:99px}.rank-value{text-align:right;font-size:13px;font-weight:800;white-space:nowrap}.rank-value small{display:block;font-size:10px;font-weight:600;color:var(--muted);margin-top:3px}.sales-trend{height:205px;display:flex;gap:9px;align-items:end;padding:16px 6px 0}.sales-trend>div{height:100%;display:flex;flex:1;min-width:18px;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px}.sales-trend i{display:block;width:100%;max-width:42px;background:linear-gradient(180deg,var(--brand2),var(--brand));border-radius:7px 7px 2px 2px}.sales-trend span{font-size:10px;color:var(--muted);font-weight:700}@media(max-width:900px){.sales-dashboard-grid{grid-template-columns:1fr}}@media(max-width:520px){.sales-ranking-row{grid-template-columns:24px minmax(0,1fr)}.rank-value{grid-column:2;text-align:left}.sales-trend{gap:4px}}

.labor-row{display:grid;grid-template-columns:1.25fr .55fr 1.25fr 1.25fr 38px;gap:8px;margin-bottom:8px}.labor-row input,.labor-row select{min-width:0;width:100%;border:1px solid var(--line);background:var(--panel);color:var(--text);padding:9px;border-radius:8px}@media(max-width:760px){.labor-row{grid-template-columns:1fr 1fr}.labor-row select:first-child{grid-column:1/-1}.labor-row select:nth-child(3),.labor-row select:nth-child(4){grid-column:1/-1}}

/* Sistema visual Winter: superfícies calmas, hierarquia clara e melhor leitura em ecrãs de trabalho. */
:root{--bg:#f5f7f8;--panel:#ffffff;--panel2:#f1f5f7;--text:#15232a;--muted:#697a85;--line:#dce5e9;--brand:#0a5264;--brand2:#0089a8;--accent:#d3ad62;--shadow:0 8px 24px rgba(16,39,49,.07);--radius:18px}
[data-theme="dark"]{--bg:#0d161b;--panel:#142128;--panel2:#1a2a32;--text:#edf5f7;--muted:#a4b3ba;--line:#2a3c45;--brand:#22a3c3;--brand2:#63cae1;--shadow:0 12px 32px rgba(0,0,0,.24)}
body{font-family:"Segoe UI Variable","Aptos",Inter,"Segoe UI",sans-serif;letter-spacing:.002em}
.app{grid-template-columns:278px 1fr}.sidebar{width:278px;padding:26px 17px;background:linear-gradient(165deg,#09242d 0%,#0b3e4e 58%,#07546a 100%);box-shadow:8px 0 30px rgba(8,34,42,.12)}.workspace{margin-left:278px}.brand{padding:2px 10px 30px}.brand-copy strong{font-size:18px;letter-spacing:-.035em}.module-selector{min-height:48px;border-radius:13px;border-color:rgba(151,224,239,.22);background:rgba(255,255,255,.075)}.side-nav{gap:6px;margin-top:22px}.nav-item{padding:12px 13px;border-radius:11px;font-size:13px;font-weight:600}.nav-item:hover{background:rgba(255,255,255,.09)}.nav-item.active{background:linear-gradient(90deg,rgba(60,190,218,.23),rgba(255,255,255,.08));box-shadow:inset 3px 0 #72d5e9}.side-action{border-radius:11px;font-weight:600}
.topbar{height:78px;padding:0 38px;background:color-mix(in srgb,var(--panel) 94%,transparent);border-bottom-color:color-mix(in srgb,var(--line) 82%,transparent)}.search-wrap{height:42px;border-radius:12px;background:var(--panel2);border-color:transparent;padding:9px 14px}.search-wrap:focus-within{background:var(--panel);border-color:var(--brand2);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand2) 12%,transparent)}.icon-btn{border-radius:12px;border-color:transparent;background:var(--panel2)}.icon-btn:hover{color:var(--brand);background:color-mix(in srgb,var(--brand2) 12%,var(--panel2))}.avatar{border-radius:12px}
.page-head{padding:36px 40px 22px}.page-head h1{font-size:31px;line-height:1.1;letter-spacing:-.045em;margin:8px 0 7px}.page-head p{font-size:14px;line-height:1.5}.content{padding:0 40px 48px}.grid{gap:20px}.kpi-grid{gap:20px}.card{border:1px solid color-mix(in srgb,var(--line) 88%,transparent);border-radius:18px;padding:24px;box-shadow:var(--shadow)}.kpi{min-height:156px;padding:24px}.kpi::after{width:170px;height:170px;right:-88px;bottom:-92px;background:linear-gradient(135deg,color-mix(in srgb,var(--brand2) 10%,transparent),transparent)}.kpi .value{font-size:30px;line-height:1.1;font-weight:750;margin:16px 0 7px}.kpi .label{font-size:11px;letter-spacing:.035em;text-transform:uppercase;font-weight:700}.icon-tile{width:46px;height:46px;border-radius:14px}.card-head{margin-bottom:20px}.card-head h3{font-size:16px;letter-spacing:-.02em}.card-head span{font-size:12px;line-height:1.45}.btn{min-height:40px;border-radius:11px;padding:10px 15px;font-weight:700}.btn.primary{background:linear-gradient(135deg,#0a6278,#0089a8);border-color:transparent;box-shadow:0 7px 16px rgba(0,137,168,.2)}.btn.primary:hover{box-shadow:0 10px 20px rgba(0,137,168,.28)}.table-wrap{border-radius:14px}.data-table th{padding:13px 16px;background:color-mix(in srgb,var(--panel2) 76%,var(--panel));font-size:10px}.data-table td{padding:15px 16px;font-size:13px}.data-table tbody tr{transition:background .15s ease}.data-table tbody tr:hover{background:color-mix(in srgb,var(--brand2) 5%,var(--panel))}
.dashboard-grid,.sales-dashboard-grid{gap:20px;margin-top:20px}.sales-insight-card{min-height:0}.dashboard-switch{padding:4px;border:0;border-radius:11px;background:var(--panel2)}.dashboard-switch button{padding:7px 11px;border-radius:8px;font-weight:700}.dashboard-switch button.active{color:var(--brand);box-shadow:0 2px 8px rgba(18,44,55,.12)}.sales-ranking{gap:2px}.sales-ranking-row{grid-template-columns:32px minmax(0,1fr) auto;padding:12px 9px;border-radius:12px}.sales-ranking-row:hover{background:color-mix(in srgb,var(--brand2) 7%,var(--panel2))}.rank-number{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--panel2);font-size:11px}.rank-main b{font-size:13px;font-weight:700}.rank-main i{height:6px;margin-top:8px;background:color-mix(in srgb,var(--brand2) 10%,var(--panel2))}.rank-main em{background:linear-gradient(90deg,var(--brand),var(--brand2))}.rank-value{font-size:13px}.rank-value small{font-size:10px;line-height:1.35}.sales-trend{height:230px;padding:18px 10px 2px;gap:11px}.sales-trend i{background:linear-gradient(180deg,#4fc7df,var(--brand));border-radius:8px 8px 3px 3px}
@media(max-width:1320px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{padding:0 30px}.page-head{padding:32px 32px 20px}.content{padding:0 32px 42px}}@media(max-width:1050px){.app{grid-template-columns:250px 1fr}.sidebar{width:250px}.workspace{margin-left:250px}.sales-dashboard-grid{grid-template-columns:1fr}.topbar{padding:0 24px}.page-head{padding-left:24px;padding-right:24px}.content{padding-left:24px;padding-right:24px}}@media(max-width:680px){.kpi-grid{grid-template-columns:1fr}.page-head{align-items:flex-start;gap:16px;flex-direction:column}.content{padding-left:16px;padding-right:16px}}

/* Densidade de trabalho: dashboard feito para analisar, não para ocupar o ecrã. */
.topbar{height:64px;padding:0 28px}.search-wrap{height:36px;width:min(380px,48vw);font-size:12px}.top-actions{gap:8px}.icon-btn{width:34px;height:34px}.avatar{width:34px;height:34px}.user-chip strong{font-size:12px}.user-chip span{font-size:10px}
.page-head{padding:22px 30px 14px}.page-head h1{font-size:26px;margin:4px 0}.page-head p{font-size:12px}.breadcrumbs{font-size:10px}.content{padding:0 30px 30px}.grid,.kpi-grid,.dashboard-grid,.sales-dashboard-grid{gap:14px}.card{border-radius:14px;padding:17px;box-shadow:0 5px 16px rgba(16,39,49,.045)}.kpi{min-height:108px;padding:17px}.kpi::after{width:112px;height:112px;right:-58px;bottom:-62px}.kpi .value{font-size:23px;margin:10px 0 4px}.kpi .label{font-size:9px;letter-spacing:.045em}.icon-tile{width:36px;height:36px;border-radius:11px}.icon-tile svg{width:17px;height:17px}.btn{min-height:34px;padding:7px 11px;border-radius:9px;font-size:12px}.btn.primary{box-shadow:0 4px 10px rgba(0,137,168,.18)}
.card-head{margin-bottom:11px}.card-head h3{font-size:14px}.card-head span{font-size:10px}.dashboard-switch{padding:2px;border-radius:8px}.dashboard-switch button{padding:5px 8px;border-radius:6px;font-size:10px}.sales-insight-card{padding:17px}.sales-ranking{gap:0}.sales-ranking-row{grid-template-columns:25px minmax(0,1fr) auto;gap:8px;padding:6px 5px;border-radius:8px}.rank-number{width:20px;height:20px;border-radius:6px;font-size:9px}.rank-main b{font-size:11px;font-weight:650}.rank-main i{height:4px;margin-top:4px}.rank-value{font-size:11px;font-weight:750}.rank-value small{font-size:9px;margin-top:1px}.sales-trend{height:150px;padding:8px 5px 0;gap:7px}.sales-trend>div{gap:4px}.sales-trend span{font-size:9px}
.table-wrap{border-radius:10px}.data-table th{padding:9px 12px;font-size:9px}.data-table td{padding:10px 12px;font-size:12px}.sidebar{padding-top:20px}.brand{padding-bottom:21px}.side-nav{margin-top:15px}.nav-item{padding:9px 11px;font-size:12px}.module-selector{min-height:40px;padding:10px;font-size:12px}.module-label{margin-bottom:6px}.side-action{padding:9px 11px;font-size:12px}
@media(max-width:1320px){.topbar{padding:0 24px}.page-head{padding:20px 24px 12px}.content{padding:0 24px 26px}}@media(max-width:1050px){.topbar{padding:0 18px}.page-head{padding-left:18px;padding-right:18px}.content{padding-left:18px;padding-right:18px}}

/* Cabeçalho lateral reduzido: marca e seletor de módulo, sem texto redundante. */
.sidebar .brand{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:1px 4px 18px}.sidebar .brand-logo{width:148px;height:54px;object-position:left center;flex:1;grid-column:auto}.sidebar .collapse-btn{grid-column:auto;grid-row:auto;margin:2px 0 0}.module-label{display:none}.module-dropdown{top:auto;max-height:calc(100vh - 190px);overflow-y:auto}
.app.compact .brand{display:flex;min-height:52px;padding:0 2px 18px}.app.compact .collapse-btn{right:-8px;bottom:14px}.app.compact .module-dropdown{top:auto}

/* Barra recolhida: monograma simples, controlo separado e navegação equilibrada. */
.app.compact .sidebar{width:72px;padding:16px 10px}.app.compact .workspace{margin-left:72px;width:calc(100% - 72px)}.app.compact .brand{position:relative;display:flex;align-items:center;justify-content:center;min-height:46px;padding:0 0 14px}.app.compact .brand-logo{display:none}.app.compact .brand::before{content:'W';width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#2ec2df,#0a83b5);color:#062536;box-shadow:0 6px 14px rgba(0,0,0,.18);font-size:19px}.app.compact .collapse-btn{position:absolute;top:8px;right:-21px;bottom:auto;width:24px;height:24px;border:1px solid rgba(183,233,244,.26);border-radius:50%;background:#0a607d;color:#fff;box-shadow:0 4px 10px rgba(0,0,0,.22);z-index:4}.app.compact .collapse-btn::before{font-size:19px}.app.compact .module-selector{width:40px;min-height:40px;height:40px;margin:0 auto 12px;padding:0;border-radius:11px;justify-content:center;background:rgba(255,255,255,.09)}.app.compact .module-selector span:last-child{display:grid;place-items:center}.app.compact .side-nav{margin-top:4px;gap:8px}.app.compact .nav-item{width:40px;height:40px;margin:0 auto;padding:0;border-radius:11px}.app.compact .sidebar-bottom{padding-top:10px}.app.compact .side-action{width:40px;height:40px;margin:0 auto;padding:0;border-radius:11px}.app.compact .module-dropdown{left:72px;width:244px}.app.compact .module-dropdown .module-option{justify-content:flex-start}@media(max-width:760px){.app.compact .sidebar{width:280px;padding:20px 18px}.app.compact .workspace{margin-left:0;width:100%}.app.compact .brand-logo{display:block}.app.compact .brand::before{display:none}.app.compact .collapse-btn{position:static;width:30px;height:30px;border:0;border-radius:8px;background:transparent;box-shadow:none}.app.compact .module-selector{width:100%;height:auto;margin:0;padding:10px;justify-content:space-between}.app.compact .module-selector span:first-child{display:inline}.app.compact .nav-item,.app.compact .side-action{width:100%;height:auto;margin:0;padding:10px 12px;justify-content:flex-start}.app.compact .side-nav{margin-top:15px}.app.compact .module-dropdown{left:18px;width:244px}}

.calendar-day.clickable{cursor:pointer;transition:transform .16s ease,border-color .16s ease}.calendar-day.clickable:hover{transform:translateY(-2px);border-color:var(--brand2)}.calendar-hours{font-size:18px;font-weight:900;color:var(--brand)}.calendar-allocation{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.allocation-source{font-size:10px;font-weight:800;padding:3px 6px;border-radius:999px;background:var(--panel2);color:var(--muted)}.allocation-source.production{background:#e3f4fb;color:#087eae}.allocation-list{display:grid;gap:10px}.allocation-row{border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.allocation-row p{margin:4px 0 0;font-size:12px;color:var(--muted)}

/* Sidebar hierarchy and room for full module names. */
.sidebar{width:280px;padding-left:18px;padding-right:18px;border-right:1px solid rgba(116,209,239,.16)}.workspace{margin-left:280px;width:calc(100% - 280px)}.app.compact .sidebar{width:76px;padding-left:12px;padding-right:12px}.app.compact .workspace{margin-left:76px;width:calc(100% - 76px)}.module-selector{font-size:13px;font-weight:700;white-space:nowrap}.module-dropdown{left:18px;width:244px}.module-option{align-items:center;white-space:nowrap;font-size:13px}.module-option span{overflow:hidden;text-overflow:ellipsis}.side-nav{margin-top:23px;gap:6px}.nav-item{padding:12px 13px;font-weight:600;white-space:nowrap}.nav-item svg{flex:0 0 auto}.sidebar-bottom{padding-top:14px;border-top:1px solid rgba(156,221,242,.13)}.app.compact .module-dropdown{left:76px}.app.compact .nav-item{padding:12px}.app.compact .sidebar-bottom{padding-top:10px}@media(max-width:760px){.sidebar,.app.compact .sidebar{width:280px;padding-left:18px;padding-right:18px}.module-dropdown,.app.compact .module-dropdown{left:18px;width:244px}.workspace,.app.compact .workspace{margin-left:0;width:100%}}

/* Fixed sidebar layout: reserve its width once, never both as grid and margin. */
.app{display:block}.workspace{margin-left:260px;width:calc(100% - 260px);min-width:0}.app.compact .workspace{margin-left:76px;width:calc(100% - 76px)}
@media(max-width:760px){.workspace,.app.compact .workspace{margin-left:0;width:100%}.app.compact .sidebar{width:260px}}

.vacation-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.vacation-legend span{display:flex;align-items:center;gap:6px}.vacation-swatch,.absence-swatch{width:12px;height:12px;border-radius:4px;display:inline-block;background:#1a9bdd}.absence-swatch{background:#f2ad4b}.annual-calendar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.annual-month{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel)}.annual-month h3{margin:0 0 9px;font-size:14px}.annual-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.annual-weekday{font-size:9px;font-weight:800;text-align:center;color:var(--muted);padding:3px 0}.annual-day{border:0;border-radius:5px;aspect-ratio:1;background:transparent;color:var(--text);font-size:11px;padding:0;cursor:default}.annual-day:disabled{opacity:1}.annual-day.blank{visibility:hidden}.annual-day.vacation{background:#1a9bdd;color:#fff;font-weight:800}.annual-day.absence{background:#fce7c2;color:#86510d;font-weight:800}.annual-day.today{box-shadow:inset 0 0 0 1px var(--brand2)}.annual-day.editable{cursor:pointer}.annual-day.editable:hover{box-shadow:inset 0 0 0 2px var(--brand2)}@media(max-width:1100px){.annual-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.annual-calendar{grid-template-columns:1fr}}
.top-actions #logoutBtn{color:var(--danger)}.top-actions #logoutBtn:hover{border-color:var(--danger);background:rgba(185,60,68,.08)}

/* O controlo de custos usa o mesmo ícone vetorial e a mesma métrica dos restantes botões. */
#costVisibilityBtn{font-size:0;line-height:1}#costVisibilityBtn svg{display:block;width:18px;height:18px;stroke-width:1.8}

/* Identidade visual da aplicação: logótipo completo aberto, símbolo reduzido recolhido. */
.sidebar .brand-logo{width:158px;height:62px;object-fit:contain;object-position:left center;border-radius:0;background:transparent}.app.compact .brand::before{content:'';background:#0b91bf url('icon-app.png') center/26px no-repeat;color:transparent;font-size:0}

/* Autenticação: contraste independente do tema escolhido na sessão. */



/* Cockpit: paleta própria, discreta e legível para análise executiva. */
.kpi:has(#cockpitSales){background:linear-gradient(135deg,#f7fbfd,#edf8fc);border-color:#cde7ee}.kpi:has(#cockpitSales) .icon-tile{background:#dff4f8;color:#0781a1}.kpi:has(#cockpitPurchases){background:linear-gradient(135deg,#fbfaf6,#f7f1df);border-color:#eadcb9}.kpi:has(#cockpitPurchases) .icon-tile{background:#f6e9c7;color:#9a6b14}.kpi:has(#cockpitMargin){background:linear-gradient(135deg,#f6fbf8,#eaf7ef);border-color:#cce9d7}.kpi:has(#cockpitMargin) .icon-tile{background:#d9f1e3;color:#287a51}.kpi:has(#cockpitLabor){background:linear-gradient(135deg,#faf8fc,#f1ebf8);border-color:#dfd3ee}.kpi:has(#cockpitLabor) .icon-tile{background:#e8dcf5;color:#73509e}.cockpit-rank{width:100%;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer;border-radius:10px}.cockpit-rank:hover{background:color-mix(in srgb,var(--brand2) 7%,var(--panel2))}.cockpit-rank .icon-tile{width:28px;height:28px;border-radius:8px;font-size:11px;font-weight:800}.cockpit-rank small{margin-top:3px}.chart-card:has(#cockpitTrend){background:linear-gradient(155deg,var(--panel),color-mix(in srgb,var(--brand2) 4%,var(--panel)))}#cockpitSignals .insight{align-items:start;padding:12px 0}#cockpitSignals .icon-tile{flex:0 0 auto}#cockpitTrend .sales-trend{height:180px}.kpi:has(#cockpitMargin) .value{color:#1d6e48}
[data-theme="dark"] .kpi:has(#cockpitSales),[data-theme="dark"] .kpi:has(#cockpitPurchases),[data-theme="dark"] .kpi:has(#cockpitMargin),[data-theme="dark"] .kpi:has(#cockpitLabor){background:var(--panel);border-color:var(--line)}

/* Cockpit: blocos equivalentes e dados comparáveis em cada ranking. */
.cockpit-ranking-grid,.cockpit-profitability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.cockpit-ranking-card{min-width:0}.cockpit-rank-list{display:grid;gap:2px}.cockpit-rank{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;border:0;border-radius:10px;background:transparent;color:var(--text);padding:10px 6px;text-align:left;cursor:pointer}.cockpit-rank:hover{background:color-mix(in srgb,var(--brand2) 7%,var(--panel2))}.cockpit-rank .rank-number{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:var(--panel2);font-size:11px}.cockpit-rank-main{min-width:0}.cockpit-rank-main b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.cockpit-rank-main small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.cockpit-rank strong{white-space:nowrap;font-size:12px}.cockpit-profitability{margin-top:14px}.cockpit-profitability-grid{margin-top:4px}.cockpit-profitability-grid section{min-width:0}.cockpit-profitability-grid h4{margin:2px 0 10px;font-size:12px;color:var(--muted)}.cockpit-profitability .data-table{font-size:11px}.cockpit-profitability .data-table th,.cockpit-profitability .data-table td{padding:8px 7px}@media(max-width:920px){.cockpit-ranking-grid,.cockpit-profitability-grid{grid-template-columns:1fr}}@media(max-width:520px){.cockpit-rank{grid-template-columns:28px minmax(0,1fr)}.cockpit-rank strong{grid-column:2;font-size:11px}}
.cockpit-profitability-grid{grid-template-columns:1fr;gap:16px;margin-top:16px}.profitability-panel{border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,var(--panel),var(--panel2));padding:16px;min-width:0}.profitability-panel-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:13px}.profitability-panel .label{display:block;margin-bottom:5px;font-size:9px;color:var(--brand)}.profitability-panel h4{margin:0;color:var(--text);font-size:15px}.profitability-panel p{margin:5px 0 0;color:var(--muted);font-size:11px}.profitability-list{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}.profitability-list-head,.profitability-row{display:grid;grid-template-columns:minmax(160px,1.35fr) repeat(3,minmax(105px,1fr)) 78px;gap:12px;align-items:center}.profitability-list-head{padding:9px 12px;background:var(--panel2);color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.profitability-list-head span:not(:first-child),.profitability-row>:not(:first-child){text-align:right}.profitability-row{padding:11px 12px;border-top:1px solid var(--line);font-size:12px}.profitability-row:hover{background:color-mix(in srgb,var(--brand2) 4%,var(--panel))}.profitability-reference{min-width:0}.profitability-reference b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.profitability-reference i{display:block;height:4px;margin-top:7px;border-radius:99px;background:var(--panel2);overflow:hidden}.profitability-reference em{display:block;height:100%;border-radius:99px;background:#38a176}.profitability-reference em.negative{background:var(--danger)}.profitability-value{color:var(--muted);white-space:nowrap;font-weight:600}.profitability-margin{white-space:nowrap;color:#237754}.profitability-margin.negative{color:var(--danger)}.profitability-rate{justify-self:end;min-width:54px;padding:4px 6px;border-radius:999px;background:rgba(56,161,118,.12);color:#237754;font-size:10px;font-weight:800;text-align:center}.profitability-rate.negative{background:rgba(185,60,68,.12);color:var(--danger)}@media(max-width:760px){.profitability-list-head{display:none}.profitability-row{grid-template-columns:minmax(0,1fr) auto;gap:7px 12px}.profitability-reference{grid-row:span 2}.profitability-value:nth-child(2)::before{content:'Vendas · ';color:var(--muted);font-weight:600}.profitability-value:nth-child(3)::before{content:'Compras · ';color:var(--muted);font-weight:600}.profitability-margin{grid-column:2}.profitability-rate{grid-column:2}}
.cockpit-reference{display:inline-flex;align-items:center;gap:7px;padding:4px 6px 4px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.cockpit-reference span{font-size:10px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.cockpit-reference strong{min-width:36px;text-align:center;font-size:13px}.cockpit-reference .icon-only{width:28px;min-width:28px;height:28px;padding:0;border-radius:7px;font-size:18px;line-height:1}@media(max-width:700px){.cockpit-reference span{display:none}.cockpit-reference{gap:4px;padding-left:5px}}

/* RH: mapa mensal de equipa e calendário individual compacto. */
.teams-settings-card{margin-top:16px}.team-list{display:grid;gap:5px}.team-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.team-row:last-child{border-bottom:0}.team-row .icon-tile{width:34px;height:34px}.team-row b,.team-row small{display:block}.team-row small{color:var(--muted);font-size:11px;margin-top:2px}.vacation-toolbar{gap:12px}.team-map-scroll{overflow:auto;padding-bottom:5px}.team-map{min-width:calc(210px + var(--day-count)*30px)}.team-map-head,.team-map-row{display:grid;grid-template-columns:210px repeat(var(--day-count),30px);align-items:center}.team-map-head{position:sticky;top:0;z-index:1;background:var(--panel2);border:1px solid var(--line);border-radius:10px 10px 0 0;color:var(--muted);font-size:10px;font-weight:800}.team-map-head>span:first-child{padding-left:12px}.team-map-day-label{text-align:center;padding:9px 0}.team-map-row{border:1px solid var(--line);border-top:0;background:var(--panel)}.team-map-person{padding:8px 12px;min-width:0}.team-map-person b,.team-map-person small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-map-person b{font-size:12px}.team-map-person small{color:var(--muted);font-size:10px;margin-top:2px}.team-map-day{border:0;border-left:1px solid var(--line);height:34px;background:transparent;color:var(--muted);font-size:10px}.team-map-day.vacation{background:#178cc2;color:#fff;font-weight:800}.team-map-day.absence{box-shadow:inset 0 0 0 2px #e69623;color:#c2700a;cursor:pointer}.employee-annual{margin-top:16px}.employee-annual-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.employee-annual-grid section{border:1px solid var(--line);border-radius:10px;padding:9px;background:var(--panel2)}.employee-annual-grid h4{margin:0 0 7px;font-size:12px}.mini-month{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.mini-month>span{font-size:8px;color:var(--muted);text-align:center;padding:2px 0}.mini-month .annual-day{height:23px;min-width:0;padding:0;border-radius:5px;font-size:9px}.event-list{display:grid;gap:2px}.event-row{width:100%;display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:10px 4px;color:var(--text);cursor:pointer}.event-row:hover{background:var(--panel2)}.event-row b,.event-row small{display:block}.event-row small{color:var(--muted);font-size:11px;margin-top:3px}.event-row>span:last-child{font-size:11px;color:var(--muted)}.event-dot{width:8px;height:8px;border-radius:50%;background:#e69623}.event-dot.vacation{background:#178cc2}@media(max-width:760px){.team-row{grid-template-columns:34px minmax(0,1fr) auto}.team-row .actions{grid-column:2/-1;justify-self:end}.employee-annual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vacation-toolbar{align-items:flex-start;flex-direction:column}.event-row{grid-template-columns:10px minmax(0,1fr)}.event-row>span:last-child{grid-column:2}}

/* Dashboards PHC: leitura de tendência em linha, com variação mensal explícita. */
.commerce-month-navigator{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin:-3px 0 11px}.commerce-month-navigator strong{min-width:145px;text-align:center;font-size:12px}.commerce-month-navigator .icon-btn{width:30px;height:30px}.commerce-month-navigator .icon-btn:disabled{opacity:.35;cursor:not-allowed}.commerce-trend-card{overflow:hidden}.commerce-line-wrap{padding:8px 8px 0}.commerce-line{display:block;width:100%;height:210px;overflow:visible}.commerce-line-path{fill:none;stroke:var(--brand);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 5px rgba(0,119,151,.16))}.commerce-line-dot{fill:var(--panel);stroke:var(--brand2);stroke-width:3}.commerce-line-dot:hover{fill:var(--brand2)}.commerce-line-labels,.commerce-deltas{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3px}.commerce-line-labels{border-top:1px solid var(--line);padding:8px 0 0}.commerce-line-labels span{text-align:center;color:var(--muted);font-size:10px;font-weight:800}.commerce-deltas{margin-top:9px}.commerce-deltas span{min-width:0;border-radius:8px;background:var(--panel2);padding:6px 4px;text-align:center}.commerce-deltas b,.commerce-deltas small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.commerce-deltas b{font-size:10px}.commerce-deltas small{font-size:8px;color:var(--muted);margin-top:2px}.commerce-deltas .positive b{color:#237754}.commerce-deltas .negative b{color:var(--danger)}.commerce-deltas .neutral b{color:var(--muted)}@media(max-width:700px){.commerce-line{height:170px}.commerce-line-labels span{font-size:8px}.commerce-deltas{overflow:auto;grid-template-columns:repeat(12,66px);padding-bottom:4px}.commerce-month-navigator{justify-content:flex-start}.commerce-month-navigator strong{min-width:128px}}

/* Ficha de utilizador: permissões simples e explícitas por página. */
.permission-grid{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.permission-grid h3{margin:0;font-size:15px}.permission-grid>p{margin:5px 0 14px;color:var(--muted);font-size:12px}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.permission-grid>h3,.permission-grid>p{grid-column:1/-1}.permission-group{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--panel2)}.permission-group>b{display:block;margin-bottom:8px;font-size:12px}.permission-group>div{display:grid;gap:7px}.permission-option{display:flex;align-items:center;gap:7px;margin:0!important;color:var(--text)!important;font-size:12px!important;font-weight:600}.permission-option input{width:15px;height:15px;accent-color:var(--brand)}@media(max-width:650px){.permission-grid{grid-template-columns:1fr}}

/* Classificação de custos: leitura rápida e imputação opcional no Cockpit. */
.form-hint{margin:14px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.cockpit-indirect-card{background:linear-gradient(135deg,#fff9f4,#fff0e3);border-color:#f1d2b4}.cockpit-indirect-card .icon-tile{background:#ffe5cf;color:#b7671a}.cockpit-profitability .card-head{align-items:flex-start;gap:16px}.allocation-toggle{margin-left:auto;display:flex;align-items:center;gap:10px;cursor:pointer;max-width:330px}.allocation-toggle input{position:absolute;opacity:0;pointer-events:none}.allocation-toggle>i{width:38px;height:22px;border-radius:999px;background:var(--line);position:relative;flex:0 0 auto;transition:background .18s ease}.allocation-toggle>i::after{content:'';position:absolute;width:16px;height:16px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.22);transition:transform .18s ease}.allocation-toggle input:checked+i{background:var(--brand2)}.allocation-toggle input:checked+i::after{transform:translateX(16px)}.allocation-toggle span{display:grid;gap:2px}.allocation-toggle b{font-size:12px;line-height:1.2}.allocation-toggle small{font-size:10px;color:var(--muted);line-height:1.35}.profitability-kind{display:block;margin-top:3px;font-size:9px;font-weight:800;color:var(--muted)}.profitability-kind.direct{color:#237754}.profitability-kind.indirect{color:#a65b18}.profitability-kind.unclassified{color:#8a6b20}@media(max-width:760px){.cockpit-profitability .card-head{display:grid}.allocation-toggle{margin:0;max-width:none}}
/* Escala única para campos, filtros e controlos de navegação. */
:root{--control-height:44px;--control-font-size:12px}
.search-wrap,.module-selector,.field input:not([type="checkbox"]):not([type="radio"]),.field select,.toolbar input:not([type="checkbox"]):not([type="radio"]),.toolbar select,.timesheet-tools select,.timesheet-tools input:not([type="checkbox"]):not([type="radio"]),.line-row input,.line-row select,.labor-row input,.labor-row select,.command-search{box-sizing:border-box;min-height:var(--control-height);height:var(--control-height);font-size:var(--control-font-size);line-height:1.2}
.field input:not([type="checkbox"]):not([type="radio"]),.field select,.toolbar input:not([type="checkbox"]):not([type="radio"]),.toolbar select,.timesheet-tools select,.timesheet-tools input:not([type="checkbox"]):not([type="radio"]),.line-row input,.line-row select,.labor-row input,.labor-row select{padding-top:0;padding-bottom:0}
.field textarea{min-height:108px;font-size:var(--control-font-size);line-height:1.45}
.search-wrap{padding:0 13px;gap:9px}.search-wrap input{min-width:0;height:auto;min-height:0;font-size:var(--control-font-size);line-height:1.2}.search-wrap kbd{font-size:9px}
.module-selector{display:flex;align-items:center;padding-top:0;padding-bottom:0;font-size:var(--control-font-size)}
.toolbar,.timesheet-tools{align-items:center}.toolbar .btn,.timesheet-tools>.btn,.toolbar .icon-btn{min-height:var(--control-height)}
.month-control,.commerce-month-navigator{box-sizing:border-box;min-height:var(--control-height)}.month-control{padding:4px}.month-control .icon-btn,.commerce-month-navigator .icon-btn{width:34px;height:34px;min-height:34px}.month-control strong,.commerce-month-navigator strong{font-size:var(--control-font-size)}
.dashboard-switch{box-sizing:border-box;min-height:var(--control-height);align-items:center;padding:4px}.dashboard-switch button{min-height:34px;padding:0 11px;font-size:11px}
.commerce-month-navigator{margin:-3px 0 11px;gap:7px}.commerce-month-navigator strong{min-width:150px}
@media(max-width:700px){:root{--control-height:40px}.toolbar .btn,.timesheet-tools>.btn,.toolbar .icon-btn{min-height:40px}.month-control .icon-btn,.commerce-month-navigator .icon-btn{width:32px;height:32px;min-height:32px}.commerce-month-navigator strong{min-width:132px}.dashboard-switch button{min-height:30px}}

/* Cockpit: vendas e custos numa única leitura, com variação mensal visível. */
.cockpit-commercial-card{overflow:hidden}.cockpit-commercial-trend{padding:4px 4px 0}.cockpit-trend-legend{display:flex;align-items:center;gap:14px;padding:0 8px 9px;color:var(--muted);font-size:11px;font-weight:700}.cockpit-trend-legend span{display:inline-flex;align-items:center;gap:6px}.cockpit-trend-legend i,.cockpit-trend-deltas i{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle}.cockpit-trend-legend .sales,.cockpit-trend-deltas .sales{background:#078da8}.cockpit-trend-legend .costs,.cockpit-trend-deltas .costs{background:#d48636}.cockpit-trend-legend small{margin-left:auto;font-size:10px;font-weight:600}.cockpit-line-inner{min-width:560px}.cockpit-line-chart{display:block;width:100%;height:205px;overflow:visible}.cockpit-line-axis{stroke:var(--line);stroke-width:2}.cockpit-line-sales,.cockpit-line-costs{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.cockpit-line-sales{stroke:#078da8;filter:drop-shadow(0 4px 5px rgba(7,141,168,.18))}.cockpit-line-costs{stroke:#d48636;filter:drop-shadow(0 4px 5px rgba(212,134,54,.16))}.cockpit-dot{stroke:var(--panel);stroke-width:3}.cockpit-dot.sales{fill:#078da8}.cockpit-dot.costs{fill:#d48636}.cockpit-trend-months,.cockpit-trend-deltas{display:grid;grid-template-columns:repeat(var(--trend-columns),minmax(0,1fr));gap:4px}.cockpit-trend-months{border-top:1px solid var(--line);padding:8px 0 0}.cockpit-trend-months span{text-align:center;color:var(--muted);font-size:10px;font-weight:800}.cockpit-trend-deltas{margin-top:9px}.cockpit-trend-deltas>span{min-width:0;padding:6px 3px;border-radius:8px;background:var(--panel2);text-align:center}.cockpit-trend-deltas b,.cockpit-trend-deltas small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cockpit-trend-deltas b{font-size:10px}.cockpit-trend-deltas small{margin-top:3px;font-size:9px;color:var(--muted)}.cockpit-trend-deltas i{width:6px;height:6px;margin-right:3px}.cockpit-trend-deltas .positive{color:#237754}.cockpit-trend-deltas .negative{color:var(--danger)}.cockpit-trend-deltas .neutral{color:var(--muted)}@media(max-width:760px){.cockpit-line-scroll{overflow:auto;padding-bottom:5px}.cockpit-trend-legend{flex-wrap:wrap}.cockpit-trend-legend small{width:100%;margin-left:0}.cockpit-line-inner{min-width:680px}}
.article-code-link{border:0;background:transparent;color:var(--brand);font:inherit;font-weight:800;padding:2px 0;cursor:pointer;text-align:left}.article-code-link:hover{text-decoration:underline;color:var(--brand2)}.article-code-link:focus-visible{outline:2px solid var(--brand2);outline-offset:3px;border-radius:3px}
[data-theme="dark"] .cockpit-indirect-card{background:linear-gradient(135deg,#15232c,#1b2730);border-color:#76502b;box-shadow:inset 0 1px 0 rgba(236,166,91,.08)}[data-theme="dark"] .cockpit-indirect-card .icon-tile{background:#3a2a1d;color:#f0ad63}[data-theme="dark"] .cockpit-indirect-card .label{color:#bac8d0}

/* Navegação global no topo; lateral dedicada apenas às páginas do módulo. */
.sidebar .brand{min-height:50px;align-items:center;padding:0 4px 18px}.sidebar-app-icon{display:block;width:42px;height:42px;border-radius:12px;object-fit:cover;box-shadow:0 7px 16px rgba(0,0,0,.2)}.sidebar .brand-logo{display:none}.topbar-start{display:flex;align-items:center;gap:12px;min-width:0}.module-control{position:relative;flex:0 0 auto}.topbar .module-selector{width:218px;height:var(--control-height);min-height:var(--control-height);padding:0 13px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);color:var(--text);font-weight:700}.topbar .module-selector:hover{border-color:var(--brand2);background:var(--panel)}.topbar .module-dropdown{position:absolute;top:calc(100% + 8px);left:0;width:252px;max-height:calc(100vh - 92px);overflow:auto;border:1px solid var(--line);background:var(--panel);color:var(--text);z-index:40}.topbar .module-option{padding:11px 12px}.topbar .module-option svg{color:var(--brand)}.topbar .search-wrap{width:min(380px,32vw)}.app.compact .sidebar .brand{min-height:46px;padding:0 0 14px}.app.compact .sidebar-app-icon{display:block;width:38px;height:38px}.app.compact .brand::before{display:none}@media(max-width:900px){.topbar .module-selector{width:190px}.topbar .search-wrap{width:min(300px,30vw)}}@media(max-width:760px){.sidebar .brand{padding-bottom:18px}.topbar-start{gap:8px;flex:1}.topbar .module-selector{width:154px}.topbar .search-wrap{width:auto;flex:1;margin:0}.topbar .module-selector span:first-child{overflow:hidden;text-overflow:ellipsis}.topbar .module-dropdown{width:230px}.app.compact .sidebar-app-icon{display:block}}
.sidebar-app-icon{object-fit:contain;border-radius:0;background:transparent;box-shadow:none}.app.compact .topbar .module-selector{width:218px;height:var(--control-height);min-height:var(--control-height);margin:0;padding:0 13px;justify-content:space-between;background:var(--panel2);border:1px solid var(--line)}.app.compact .topbar .module-selector span:first-child{display:block}.app.compact .topbar .module-selector span:last-child{display:block}.app.compact .topbar .module-dropdown{top:calc(100% + 8px);left:0;width:252px}@media(max-width:900px){.app.compact .topbar .module-selector{width:190px}}@media(max-width:760px){.app.compact .topbar .module-selector{width:154px}.app.compact .topbar .module-dropdown{width:230px}}
.app.compact .nav-item{position:relative}.app.compact .nav-item::after{content:attr(data-tooltip);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%) translateX(-4px);z-index:60;pointer-events:none;opacity:0;visibility:hidden;white-space:nowrap;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);box-shadow:var(--shadow);padding:7px 10px;font-size:12px;font-weight:700;transition:opacity .14s ease,transform .14s ease,visibility .14s ease}.app.compact .nav-item:hover::after,.app.compact .nav-item:focus-visible::after{opacity:1;visibility:visible;transform:translateY(-50%) translateX(0)}@media(max-width:760px){.app.compact .nav-item::after{display:none}}

/* Entrada Winter: ecrã inteiro, sem cartão, com a identidade da aplicação. */


.budget-intro{display:flex;align-items:center;justify-content:space-between;gap:20px}.budget-intro h3{margin:7px 0 5px;font-size:20px}.budget-intro p{margin:0;color:var(--muted);font-size:13px}.budget-year-control{height:44px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--panel2);border-radius:11px;padding:0 7px}.budget-year-control strong{min-width:58px;text-align:center}.budget-table-wrap{max-height:560px}.budget-table{min-width:900px}.budget-table th,.budget-table td{text-align:right}.budget-table th:first-child,.budget-table td:first-child{text-align:left}.budget-table td:last-child{min-width:150px;color:var(--muted);line-height:1.55}.budget-input{width:108px;min-height:34px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:7px 8px;text-align:right;font:inherit;font-size:12px}.budget-input:focus{outline:none;border-color:var(--brand2);box-shadow:0 0 0 3px rgba(36,175,210,.15)}.budget-actual-summary{margin:0 0 12px;padding:11px 13px;border-radius:10px;background:var(--panel2);color:var(--muted);font-size:12px}.budget-actual-summary b{color:var(--text)}@media(max-width:760px){.budget-intro{align-items:flex-start;flex-direction:column}.budget-year-control{width:100%;justify-content:space-between}}
.annual-budget-hero{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;padding:6px 0 20px}.annual-budget-hero h2{margin:8px 0;font-size:28px;letter-spacing:-.035em}.annual-budget-hero p{margin:0;max-width:680px;color:var(--muted)}.annual-budget-card{padding:20px}.annual-budget-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:18px;margin-top:16px}.annual-budget-layout>section,.annual-budget-layout>aside{border:1px solid var(--line);border-radius:14px;padding:20px;background:var(--panel2)}.annual-budget-layout>aside h3{margin:7px 0 18px}.annual-goal-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.annual-goal{display:flex;min-height:112px;flex-direction:column;justify-content:center;gap:4px;border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--panel)}.annual-goal>span{font-size:13px;font-weight:800}.annual-goal small{font-size:11px;color:var(--muted)}.annual-goal.money input{margin-top:8px;border:0;background:transparent;color:var(--text);font-size:22px;font-weight:800;outline:0;padding:0;width:100%}.annual-goal.range>div{display:flex;align-items:center;gap:10px;margin-top:9px}.annual-goal.range input{accent-color:var(--brand2);width:100%}.annual-goal.range b{min-width:46px;text-align:right;color:var(--brand2)}.annual-goal.inherited{background:linear-gradient(135deg,var(--panel),rgba(31,165,200,.12))}.annual-goal.inherited>b{font-size:24px;color:var(--brand2);margin-top:7px}.annual-computed{display:grid;gap:10px}.annual-computed>div{display:flex;flex-direction:column;gap:3px;padding:13px;border-radius:11px;background:var(--panel);border:1px solid var(--line)}.annual-computed span,.annual-computed small{color:var(--muted);font-size:11px}.annual-computed b{font-size:18px}.annual-computed .positive b{color:#24845d}.annual-computed .negative b{color:var(--danger)}.annual-actual{display:flex;align-items:center;gap:12px;margin:8px 0 0;padding:12px 14px;border-radius:11px;background:rgba(31,165,200,.09);border:1px solid rgba(31,165,200,.2)}.annual-actual span,.annual-actual small{color:var(--muted);font-size:11px}.annual-actual b{font-size:17px}.annual-actual small{margin-left:auto;text-align:right}@media(max-width:900px){.annual-budget-layout{grid-template-columns:1fr}.annual-budget-hero{align-items:flex-start;flex-direction:column}}@media(max-width:600px){.annual-goal-controls{grid-template-columns:1fr}.annual-actual{align-items:flex-start;flex-direction:column;gap:4px}.annual-actual small{margin-left:0;text-align:left}}
.cockpit-plan-card{margin:16px 0}.plan-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.plan-metric{display:flex;min-height:104px;flex-direction:column;justify-content:center;gap:6px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.plan-metric span{font-size:11px;color:var(--muted);font-weight:700}.plan-metric b{font-size:20px}.plan-metric small{font-size:11px;color:var(--muted)}.plan-metric em{font-style:normal;font-weight:800}.plan-metric em.positive,.plan-state.positive{color:#24845d}.plan-metric em.warning,.plan-state.warning{color:#c47c20}.plan-metric em.negative,.plan-state.negative{color:var(--danger)}.plan-metric em.neutral,.plan-state.neutral{color:var(--muted)}.plan-metric.margin b{color:#2b9b70}.plan-centers{margin-top:18px}.plan-centers>div:first-child{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}.plan-centers h4{margin:0}.plan-centers span{font-size:12px;color:var(--muted)}.plan-centers td small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.plan-state{font-size:11px;font-weight:800;white-space:nowrap}@media(max-width:1200px){.plan-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.plan-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-centers>div:first-child{display:block}.plan-centers span{display:block;margin-top:5px}}
.cockpit-pending{margin:16px 0}.pending-action{appearance:none;width:100%;text-align:left;cursor:pointer;color:var(--text);font:inherit;transition:border-color .16s ease,transform .16s ease}.pending-action:hover{border-color:var(--brand);transform:translateY(-1px)}.pending-action b{color:var(--brand2)}
.supplier-summary-strip{display:flex;gap:18px;align-items:center;margin:0 0 12px;color:var(--muted);font-size:12px}.supplier-summary-strip span+span{padding-left:18px;border-left:1px solid var(--line)}.suppliers-table td small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.supplier-form-grid .supplier-name-field{grid-column:span 2}@media(max-width:700px){.supplier-summary-strip{display:grid;gap:4px}.supplier-summary-strip span+span{padding:0;border:0}.supplier-form-grid .supplier-name-field{grid-column:auto}}
.stock-reorder-card{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:14px 0;padding:14px 16px;border:1px solid color-mix(in srgb,var(--brand) 30%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--brand) 6%,var(--panel2))}.stock-reorder-card h3{margin:0 0 4px;font-size:14px}.stock-reorder-card>div>span{font-size:12px;color:var(--muted)}.stock-reorder-items{display:grid;gap:7px;min-width:min(670px,100%)}.stock-reorder-item{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;align-items:center;gap:14px;padding:8px 0;border-top:1px solid var(--line)}.stock-reorder-item:first-child{border-top:0}.stock-reorder-item>span{font-size:12px;color:var(--muted);white-space:nowrap}.stock-reorder-item>span b{color:var(--danger)}.stock-reorder-ok{font-size:12px;color:var(--success)}@media(max-width:900px){.stock-reorder-card{display:grid}.stock-reorder-items{min-width:0;width:100%}}@media(max-width:560px){.stock-reorder-item{grid-template-columns:1fr;gap:5px}.stock-reorder-item .btn{justify-self:start}}
.rh-capacity-estimate strong.positive{color:var(--success)}.rh-capacity-estimate strong.warning{color:#c47c20}.rh-capacity-estimate strong.negative{color:var(--danger)}.rh-capacity-estimate strong.neutral{color:var(--muted)}
.plan-forecast{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}.plan-forecast>div{display:grid;gap:4px;padding:12px 14px;border-radius:11px;border:1px solid var(--line);background:linear-gradient(135deg,var(--panel2),var(--panel))}.plan-forecast span,.plan-forecast small{font-size:11px;color:var(--muted)}.plan-forecast b{font-size:18px}.plan-forecast b.positive{color:#24845d}.plan-forecast b.negative{color:var(--danger)}.plan-forecast b.neutral{color:var(--muted)}.plan-drill{border:0;padding:0;background:transparent;color:var(--text);font:inherit;font-weight:800;text-align:left;cursor:pointer}.plan-drill:hover{color:var(--brand2);text-decoration:underline}.annual-plan-actions{display:flex;gap:9px;margin-left:auto}.annual-plan-actions select{min-height:var(--control-height);border:1px solid var(--line);border-radius:10px;padding:0 10px;background:var(--panel2);color:var(--text);font:inherit;font-size:12px}.project-goal-list{display:grid;gap:10px;max-height:58vh;overflow:auto}.project-goal-row{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(100px,1fr));gap:9px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.project-goal-row strong{font-size:12px}.project-goal-row label{display:grid;gap:5px;font-size:10px;color:var(--muted);font-weight:800}.project-goal-row input{height:36px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:0 8px;font:inherit;font-size:12px}@media(max-width:1100px){.plan-forecast{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:850px){.plan-forecast{grid-template-columns:1fr}.annual-plan-actions{margin-left:0}.project-goal-row{grid-template-columns:1fr 1fr}.project-goal-row strong{grid-column:1/-1}}@media(max-width:550px){.annual-plan-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.project-goal-row{grid-template-columns:1fr}}
.plan-view-switch{display:inline-flex;margin:12px 0}.plan-centers-view{margin-top:4px}

/* Formulários operacionais: campos e secções densos, para leitura rápida no tablet. */
.modal-panel .form-grid.production-meta-grid{grid-template-columns:minmax(220px,1.25fr) minmax(150px,.85fr) minmax(130px,.7fr);gap:10px;margin-bottom:10px}.modal-panel .production-meta-grid .field label{gap:6px;font-size:11px}.modal-panel .production-lines-card{padding:11px 13px;margin-top:10px;border-radius:11px}.modal-panel .production-lines-card .card-head{margin-bottom:5px}.modal-panel .production-lines-card .card-head h3{font-size:14px}.modal-panel .production-lines-card .btn{min-height:34px;padding:7px 10px;font-size:12px}.modal-panel .line-builder>.empty,.modal-panel .production-lines-card .empty{padding:18px 10px;font-size:12px}.modal-panel .line-builder{margin-top:10px}.modal-panel .line-builder .card-head{margin-bottom:9px}.modal-panel .line-builder .card-head h3{font-size:14px}.modal-panel .line-builder .card-head span{font-size:11px}.modal-panel .line-row,.modal-panel .labor-row{margin-bottom:6px}.modal-panel .field textarea{min-height:76px}@media(max-width:700px){.modal-panel .form-grid.production-meta-grid{grid-template-columns:1fr}.modal-panel .production-lines-card{padding:10px 11px}.modal-panel .line-builder>.empty,.modal-panel .production-lines-card .empty{padding:16px 8px}}
#receiptItems .line-row{grid-template-columns:minmax(96px,.65fr) minmax(190px,1.55fr) minmax(105px,.7fr) 52px 34px;gap:8px;align-items:center}#receiptItems .action-icon{width:34px;height:34px}.modal-panel .form-grid.terminal-receipt-meta{grid-template-columns:126px minmax(0,1fr) minmax(0,1.2fr);gap:10px;margin-bottom:10px}.modal-panel .terminal-receipt-meta .field label{gap:6px;margin:0;font-size:11px}.modal-panel .terminal-receipt-meta input,.modal-panel .terminal-receipt-meta select{width:100%;min-width:0}.terminal-receipt-form .line-builder{padding:13px;background:var(--panel2);border:1px solid var(--line);border-radius:14px}.terminal-receipt-form .signature-box{margin-top:12px}.terminal-receipt-form .line-builder .card-head{margin-bottom:10px}@media(max-width:700px){#receiptItems .line-row{grid-template-columns:minmax(90px,.7fr) minmax(130px,1.25fr) minmax(82px,.6fr) 48px 34px;gap:6px}.modal-panel .form-grid.terminal-receipt-meta{grid-template-columns:1fr}.terminal-receipt-form .line-builder{padding:11px}}
.terminal-shell{max-width:1080px;margin:0 auto}.terminal-welcome{text-align:center;padding:12px 10px 24px}.terminal-welcome h2{margin:8px 0;font-size:30px}.terminal-welcome p{margin:0;color:var(--muted)}.terminal-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.terminal-action{min-height:210px;border:1px solid var(--line);border-radius:18px;padding:28px;background:var(--panel);color:var(--text);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;cursor:pointer;box-shadow:var(--shadow);transition:transform .15s ease,border-color .15s ease}.terminal-action:hover{transform:translateY(-3px);border-color:var(--brand2)}.terminal-action svg{color:var(--brand2)}.terminal-action b{font-size:20px}.terminal-action span{font-size:13px;color:var(--muted)}.terminal-recent{margin-top:24px;border:1px solid var(--line);border-radius:16px;padding:20px;background:var(--panel2)}.terminal-history{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.terminal-history>div{padding:11px;border-radius:10px;background:var(--panel);border:1px solid var(--line)}.terminal-history b,.terminal-history span{display:block}.terminal-history b{font-size:12px}.terminal-history span{margin-top:4px;font-size:11px;color:var(--muted)}.terminal-line{display:grid;grid-template-columns:120px minmax(160px,1fr) 88px 62px 34px;gap:8px;margin-bottom:8px}.terminal-line input{height:40px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);padding:0 9px;font-size:12px}.terminal-form h3{font-size:15px;margin:18px 0 10px}@media(max-width:760px){.terminal-actions{grid-template-columns:1fr}.terminal-action{min-height:160px}.terminal-history{grid-template-columns:1fr}.terminal-line{grid-template-columns:1fr 82px 58px 34px}.terminal-line input:nth-child(2){grid-column:1/-1;grid-row:1}.terminal-line input:first-child{grid-column:1;grid-row:2}}
.production-document-lines{display:grid;gap:8px;margin:10px 0 20px}.production-document-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}.production-document-line>div{min-width:0}.production-document-line small{display:block;margin-bottom:4px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.production-document-line strong{display:block;overflow-wrap:anywhere;font-size:13px}.production-document-quantity{text-align:right;white-space:nowrap}.production-document-quantity b{font-size:15px}.production-document-labor{grid-template-columns:minmax(0,1fr) 78px minmax(0,.9fr) minmax(0,.75fr)}.production-document-labor .production-document-quantity{text-align:left}@media(max-width:640px){.production-document-labor{grid-template-columns:minmax(0,1fr) auto}.production-document-labor>div:nth-child(3),.production-document-labor>div:nth-child(4){grid-column:span 1}.production-document-line{gap:10px;padding:11px 12px}}

/* Cabeçalho compacto do documento de produção. */
.modal-panel .form-grid.production-meta-grid{grid-template-columns:180px 210px 160px;justify-content:start;align-items:end}.modal-panel .production-meta-grid .field{min-width:0;align-self:end}.modal-panel .production-meta-grid .field label{margin:0}.modal-panel .production-meta-grid input{width:100%;min-width:0}.modal-panel .production-meta-grid .field:first-child input{font-size:12px}@media(max-width:700px){.modal-panel .form-grid.production-meta-grid{grid-template-columns:1fr}}

/* Escala única para controlos de edição em linha: campo, seletor e ação. */
.modal-panel .line-row .action-icon,.modal-panel .labor-row .action-icon,.modal-panel #receiptItems .action-icon{width:var(--control-height);height:var(--control-height);min-width:var(--control-height);min-height:var(--control-height);padding:0;border-radius:8px;align-self:stretch}.modal-panel .line-row,.modal-panel .labor-row{align-items:stretch}.modal-panel .line-row input,.modal-panel .line-row select,.modal-panel .labor-row input,.modal-panel .labor-row select{height:var(--control-height);min-height:var(--control-height)}

/* Conta de utilizador: a ficha de funcionário é a fonte de nome e email. */
.user-access-form .field{margin-bottom:0}.user-access-fields{grid-template-columns:minmax(0,1.2fr) minmax(125px,.7fr) minmax(180px,1fr);gap:12px;margin:4px 0 14px}.user-admin-toggle{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:11px 13px;margin:0 0 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);font-size:13px;font-weight:800}.user-admin-toggle small{width:100%;margin-left:24px;color:var(--muted);font-size:11px;font-weight:400}.user-link-warning{display:block;margin-top:3px;color:var(--warning);font-size:10px;font-weight:800}@media(max-width:700px){.user-access-fields{grid-template-columns:1fr}}
.users-directory-card{padding-top:18px}.users-directory-card .toolbar{margin-bottom:14px}.user-profile-link{display:block;max-width:100%;padding:0;border:0;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.user-profile-link strong{display:block}.user-profile-link:hover strong{color:var(--brand2);text-decoration:underline}

/* Página de ausências: filtros claros e indicadores do período. */
.absence-filters{display:grid;grid-template-columns:minmax(190px,1.45fr) minmax(165px,1fr) minmax(145px,.8fr) 142px 142px auto auto;gap:9px;align-items:end;margin-bottom:16px}.absence-filters label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:800}.absence-filters input,.absence-filters select{height:var(--control-height);min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);padding:0 11px;font:inherit;font-size:var(--control-font-size)}.absence-filters .btn{min-height:var(--control-height);white-space:nowrap}.absence-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 22px}.absence-summary>div{display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.absence-summary span,.absence-summary small{font-size:11px;color:var(--muted)}.absence-summary b{font-size:22px}@media(max-width:1100px){.absence-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.absence-filters .btn{min-height:40px}}@media(max-width:700px){.absence-filters,.absence-summary{grid-template-columns:1fr}.absence-filters .btn{width:100%}}

/* Modal de ausência: tipo e período lidos como um único bloco. */
#absenceForm .form-grid{grid-template-columns:minmax(0,1.25fr) minmax(145px,.85fr) minmax(145px,.85fr);gap:12px}#absenceForm #absenceOtherField{grid-column:1/-1}@media(max-width:700px){#absenceForm .form-grid{grid-template-columns:1fr}}

/* Consulta operacional de Entradas e Stock. */
.stock-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-bottom:16px}.stock-summary-card{display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);min-width:0}.stock-summary-card span,.stock-summary-card small{font-size:11px;color:var(--muted)}.stock-summary-card b{font-size:22px}.stock-summary-card.alert b,.stock-warning{color:var(--danger);font-weight:800}.stock-filters{display:grid;grid-template-columns:minmax(210px,1.5fr) minmax(155px,.8fr) minmax(155px,.8fr) auto;gap:9px;align-items:center;margin:0 0 20px}.stock-filters input,.stock-filters select{height:var(--control-height);min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);padding:0 11px;font:inherit;font-size:var(--control-font-size)}.stock-filters .btn{min-height:var(--control-height);white-space:nowrap}.stock-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 10px}.stock-section-head h3{margin:0 0 4px;font-size:16px}.stock-section-head span{font-size:12px;color:var(--muted)}.stock-history-head{margin-top:26px}.stock-article-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:20px}.stock-article-kpis>div{display:grid;gap:5px;padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}.stock-article-kpis span{font-size:11px;color:var(--muted)}.stock-article-kpis b{font-size:17px}@media(max-width:950px){.stock-filters{grid-template-columns:minmax(180px,1fr) 1fr 1fr}.stock-filters .btn{grid-column:1/-1}}@media(max-width:620px){.stock-summary,.stock-article-kpis,.stock-filters{grid-template-columns:1fr}.stock-section-head{align-items:flex-start;flex-direction:column}.stock-filters .btn{grid-column:auto}}

/* Receção de material: composição própria, confortável em tablet e sem grelhas partidas. */
#modal:has(#terminalReceiptForm) .modal-panel{width:min(930px,calc(100vw - 32px))}
#terminalReceiptForm{min-width:0}
#terminalReceiptForm>.form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(130px,.7fr);gap:12px;margin:0 0 12px}
#terminalReceiptForm>.form-grid .field{min-width:0}
#terminalReceiptForm>.form-grid .field label{margin:0;gap:6px;font-size:11px}
#terminalReceiptForm .production-lines-card{margin:14px 0 12px;padding:15px 16px;background:var(--panel2);border-radius:14px}
#terminalReceiptForm .production-lines-card .card-head{gap:12px;margin-bottom:12px}
#terminalReceiptForm .production-lines-card .card-head h3{font-size:15px}
#terminalReceiptForm .production-lines-card .card-head span{font-size:11px}
#terminalReceiptForm .receipt-material-row{display:grid;grid-template-columns:minmax(145px,.8fr) minmax(220px,1.45fr) minmax(118px,.65fr) 24px var(--control-height);gap:8px;align-items:center;margin:0}
#terminalReceiptForm .receipt-material-row select,#terminalReceiptForm .receipt-material-row input{min-width:0;width:100%;height:var(--control-height);min-height:var(--control-height)}
#terminalReceiptForm .receipt-material-row .receipt-unit{align-self:center;font-size:12px;font-weight:800;color:var(--muted);white-space:nowrap}
#terminalReceiptForm .receipt-material-row .action-icon{width:var(--control-height);height:var(--control-height);min-width:var(--control-height);min-height:var(--control-height);padding:0;align-self:center}
#terminalReceiptForm .signature-box{margin-top:12px}
#terminalReceiptForm .signature-box canvas{display:block;width:100%;height:150px;max-width:100%}
@media(max-width:760px){#modal:has(#terminalReceiptForm) .modal-panel{width:min(100%,calc(100vw - 18px));padding:18px}#terminalReceiptForm>.form-grid{grid-template-columns:1fr 1fr}#terminalReceiptForm>.form-grid .field:nth-child(3){grid-column:1/-1}#terminalReceiptForm .receipt-material-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 78px var(--control-height)}#terminalReceiptForm .receipt-material-row select:first-child{grid-column:1/-1}#terminalReceiptForm .receipt-material-row .receipt-unit{display:none}#terminalReceiptForm .receipt-material-row .action-icon{grid-column:4}#terminalReceiptForm .production-lines-card{padding:12px}.terminal-form .signature-box canvas{height:125px}}
@media(max-width:440px){#terminalReceiptForm>.form-grid{grid-template-columns:1fr}#terminalReceiptForm>.form-grid .field:nth-child(3){grid-column:auto}#terminalReceiptForm .receipt-material-row{grid-template-columns:minmax(0,1fr) 72px var(--control-height)}#terminalReceiptForm .receipt-material-row select:first-child{grid-column:1/-1}#terminalReceiptForm .receipt-material-row select:nth-child(2){grid-column:1/-1}#terminalReceiptForm .receipt-material-row .action-icon{grid-column:3}}

/* Entrada e Produção usam a mesma linguagem de formulário operacional. */
#modal:has(.operation-form) .modal-panel{width:min(940px,calc(100vw - 32px));padding:22px 24px}
.operation-form{display:grid;gap:12px;min-width:0}.operation-meta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 150px;gap:10px}.operation-meta .field label{margin:0;gap:6px;font-size:11px}.operation-form .operation-lines{margin:0;padding:13px 14px;border-radius:13px;background:var(--panel2)}.operation-form .operation-lines .card-head{margin-bottom:10px;gap:12px}.operation-form .operation-lines .card-head h3{font-size:15px}.operation-form .operation-lines .card-head span{font-size:11px}.operation-source-grid{display:grid;grid-template-columns:minmax(0,1fr) 150px minmax(220px,1.2fr);gap:8px}.operation-source-grid select,.operation-output-row select,.operation-output-row input,.operation-form .receipt-material-row select,.operation-form .receipt-material-row input{width:100%;min-width:0;height:var(--control-height);min-height:var(--control-height);border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:0 10px;font:inherit;font-size:12px}.operation-form .receipt-material-row{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(105px,.55fr) 28px var(--control-height);gap:8px;align-items:center;margin:0}.operation-form .receipt-material-row.profile-row{grid-template-columns:minmax(0,1.35fr) minmax(118px,.6fr) 28px}.operation-form .receipt-material-row.profile-row select:first-child{display:none}.operation-form .receipt-material-row .action-icon{width:var(--control-height);height:var(--control-height);min-width:var(--control-height);padding:0}.operation-form .receipt-unit{font-size:12px;font-weight:800;color:var(--muted);white-space:nowrap}.operation-output-row{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(125px,.55fr) 28px;gap:8px;align-items:center}.lot-balance{display:grid;grid-template-columns:auto auto minmax(150px,220px);align-items:center;gap:10px;margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.lot-balance span{font-size:11px;color:var(--muted)}.lot-balance b{font-size:16px;color:var(--brand2)}.lot-balance label{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:11px;font-weight:800;color:var(--muted)}.lot-balance input{width:100px;height:var(--control-height);border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);padding:0 9px;font:inherit}.operation-form .signature-box{margin:0}.operation-form .signature-box canvas{display:block;width:100%;height:150px;max-width:100%}@media(max-width:760px){#modal:has(.operation-form) .modal-panel{width:min(100%,calc(100vw - 18px));padding:18px}.operation-meta{grid-template-columns:1fr 1fr}.operation-meta .field:nth-child(3){grid-column:1/-1}.operation-source-grid{grid-template-columns:1fr 1fr}.operation-source-grid select:last-child{grid-column:1/-1}.operation-form .receipt-material-row.profile-row{grid-template-columns:minmax(0,1fr) 90px 28px}.operation-form .receipt-material-row.profile-row select:first-child{display:none}.operation-form .receipt-material-row{grid-template-columns:minmax(0,1fr) 90px 28px var(--control-height)}.operation-output-row{grid-template-columns:minmax(0,1fr) 100px 28px}.lot-balance{grid-template-columns:1fr auto}.lot-balance label{grid-column:1/-1;justify-content:flex-start}.operation-form .signature-box canvas{height:125px}}@media(max-width:440px){.operation-meta{grid-template-columns:1fr}.operation-meta .field:nth-child(3){grid-column:auto}.operation-source-grid{grid-template-columns:1fr}.operation-source-grid select:last-child{grid-column:auto}.operation-form .receipt-material-row,.operation-form .receipt-material-row.profile-row{grid-template-columns:minmax(0,1fr) 78px var(--control-height)}.operation-form .receipt-material-row select{grid-column:1/-1}.operation-form .receipt-material-row.profile-row select:first-child{display:none}.operation-form .receipt-material-row .receipt-unit{display:none}.operation-form .receipt-material-row .action-icon{grid-column:3}.operation-output-row{grid-template-columns:1fr 84px}.operation-output-row .receipt-unit{display:none}}
.operation-form{display:grid;gap:12px;min-width:0}.operation-form>*,.operation-form .field,.operation-meta,.operation-source-grid,.operation-output-row,.operation-form .receipt-material-row{min-width:0}.operation-meta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 150px;gap:10px;align-items:end}.operation-meta .field label{margin:0;gap:6px;font-size:11px}.operation-meta .field input,.operation-meta .field select,.operation-form textarea{width:100%;min-width:0}.operation-form .operation-lines{margin:0;padding:13px 14px;border-radius:13px;background:var(--panel2)}.operation-form .operation-lines .card-head{margin-bottom:10px;gap:12px}.operation-form .operation-lines .card-head h3{font-size:15px}.operation-form .operation-lines .card-head span{font-size:11px}.operation-source-grid{display:grid;grid-template-columns:minmax(0,1fr) 150px minmax(0,1.2fr);gap:8px}.operation-source-grid select,.operation-output-row select,.operation-output-row input,.operation-form .receipt-material-row select,.operation-form .receipt-material-row input{width:100%;min-width:0;height:var(--control-height);min-height:var(--control-height);border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:0 10px;font:inherit;font-size:12px}.operation-source-grid select,.operation-output-row select,.operation-form .receipt-material-row select{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.operation-form .receipt-material-row{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(105px,.55fr) 28px var(--control-height);gap:8px;align-items:center;margin:0}.operation-form .receipt-material-row.profile-row{grid-template-columns:minmax(0,1.35fr) minmax(118px,.6fr) 28px}.operation-form .receipt-material-row.profile-row select:first-child{display:none}.operation-form .receipt-material-row .action-icon{width:var(--control-height);height:var(--control-height);min-width:var(--control-height);padding:0}.operation-form .receipt-unit{font-size:12px;font-weight:800;color:var(--muted);white-space:nowrap}.operation-output-row{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(125px,.55fr) 28px;gap:8px;align-items:center}.lot-balance{display:grid;grid-template-columns:auto auto minmax(150px,220px);align-items:center;gap:10px;margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.lot-balance span{font-size:11px;color:var(--muted)}.lot-balance b{font-size:16px;color:var(--brand2)}.lot-balance label{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:11px;font-weight:800;color:var(--muted)}.lot-balance input{width:100px;height:var(--control-height);border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--text);padding:0 9px;font:inherit}.operation-form .signature-box{margin:0}.operation-form .signature-box canvas{display:block;width:100%;height:150px;max-width:100%}@media(max-width:760px){#modal:has(.operation-form) .modal-panel{width:min(100%,calc(100vw - 18px));padding:18px}.operation-meta{grid-template-columns:1fr 1fr}.operation-meta .field:nth-child(3){grid-column:1/-1}.operation-source-grid{grid-template-columns:1fr 1fr}.operation-source-grid select:last-child{grid-column:1/-1}.operation-form .receipt-material-row.profile-row{grid-template-columns:minmax(0,1fr) 90px 28px}.operation-form .receipt-material-row.profile-row select:first-child{display:none}.operation-form .receipt-material-row{grid-template-columns:minmax(0,1fr) 90px 28px var(--control-height)}.operation-output-row{grid-template-columns:minmax(0,1fr) 100px 28px}.lot-balance{grid-template-columns:1fr auto}.lot-balance label{grid-column:1/-1;justify-content:flex-start}.operation-form .signature-box canvas{height:125px}}@media(max-width:440px){.operation-meta{grid-template-columns:1fr}.operation-meta .field:nth-child(3){grid-column:auto}.operation-source-grid{grid-template-columns:1fr}.operation-source-grid select:last-child{grid-column:auto}.operation-form .receipt-material-row,.operation-form .receipt-material-row.profile-row{grid-template-columns:minmax(0,1fr) 78px var(--control-height)}.operation-form .receipt-material-row select{grid-column:1/-1}.operation-form .receipt-material-row.profile-row select:first-child{display:none}.operation-form .receipt-material-row .receipt-unit{display:none}.operation-form .receipt-material-row .action-icon{grid-column:3}.operation-output-row{grid-template-columns:1fr 84px}.operation-output-row .receipt-unit{display:none}}
.lot-balance .winter-hidden-consumption{display:none}.winter-theoretical-consumption{display:grid;grid-template-columns:auto auto;align-items:baseline;justify-content:end;gap:4px 9px}.winter-theoretical-consumption span,.winter-theoretical-consumption small{font-size:11px;color:var(--muted)}.winter-theoretical-consumption b{font-size:15px;color:var(--brand2)}.winter-theoretical-consumption small{grid-column:1/-1;text-align:right}
.operation-form .lot-balance label{display:none!important}.recipe-component-grid{display:grid;grid-template-columns:120px minmax(100px,.7fr) minmax(160px,1.6fr) 105px 80px var(--control-height);gap:8px;align-items:center;margin-top:8px}.recipe-component-grid input,.recipe-component-grid select{min-width:0;height:var(--control-height);padding:0 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font:inherit;font-size:12px}.recipe-component-grid .action-icon{width:var(--control-height);height:var(--control-height);padding:0}.recipe-component-head{margin-top:0;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}@media(max-width:720px){.recipe-component-grid{grid-template-columns:1fr 1fr 90px var(--control-height)}.recipe-component-grid select,.recipe-component-grid input[data-r="code"],.recipe-component-grid input[data-r="description"]{grid-column:span 2}.recipe-component-head{display:none}}
.lot-check-summary{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.lot-check-summary span{font-size:12px;color:var(--muted)}.lot-check-summary b{font-size:14px;color:var(--brand2)}.form-help{margin:0;color:var(--muted);font-size:12px}

/* Etapas simples para os registos de Entrada e Produção. */
.operation-wizard-header{display:grid;gap:9px;padding:2px 0 4px}.operation-wizard-steps{display:flex;gap:6px;overflow:auto;padding-bottom:2px}.operation-wizard-steps span{display:flex;align-items:center;gap:6px;white-space:nowrap;padding:7px 9px;border-radius:9px;color:var(--muted);font-size:11px;font-weight:700}.operation-wizard-steps span b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--panel2);font-size:11px}.operation-wizard-steps span.active{color:var(--brand2);background:color-mix(in srgb,var(--brand) 11%,transparent)}.operation-wizard-steps span.active b{background:var(--brand);color:#fff}.operation-wizard-steps span.available{cursor:pointer}.operation-wizard-steps span.available:hover{color:var(--text);background:var(--panel2)}.operation-wizard-summary{min-height:17px;padding:7px 10px;border-left:2px solid var(--brand);background:var(--panel2);border-radius:0 8px 8px 0;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.operation-wizard-nav{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.operation-wizard-nav .btn.primary{margin-left:auto}.operation-wizard-final{display:grid;gap:12px}.operation-form>[hidden]{display:none!important}@media(max-width:600px){.operation-wizard-steps span{font-size:0;padding:7px}.operation-wizard-steps span b{font-size:11px}.operation-wizard-summary{white-space:normal;line-height:1.35}}
/* Histórico operacional por lote: mantém os filtros compactos e os saldos legíveis. */
.stock-lot-status{white-space:nowrap}.stock-history-toolbar{grid-template-columns:minmax(190px,1.5fr) minmax(150px,.8fr) minmax(140px,.7fr) minmax(130px,.65fr) minmax(130px,.65fr) auto}.stock-lot-subline{display:block;font-size:11px;color:var(--muted);margin-top:3px}.stock-lot-number{font-variant-numeric:tabular-nums;white-space:nowrap}.stock-lot-actions{width:42px;text-align:right}@media(max-width:1100px){.stock-history-toolbar{grid-template-columns:1fr 1fr 1fr}.stock-history-toolbar .btn{grid-column:1/-1}}@media(max-width:620px){.stock-history-toolbar{grid-template-columns:1fr}.stock-history-toolbar .btn{grid-column:auto}}
.stock-lot-number strong{color:var(--text)}#stockLotHistory td:nth-child(4),#stockLotHistory td:nth-child(5){background:color-mix(in srgb,var(--brand2) 7%,transparent)}
.stock-lot-row{cursor:pointer}.stock-lot-row:hover td{background-color:color-mix(in srgb,var(--brand2) 8%,transparent)}
.variance-card{margin-top:14px}.variance-filters{grid-template-columns:minmax(230px,1.5fr) minmax(160px,.8fr) minmax(160px,.8fr) auto}.variance.good strong{color:var(--success)}.variance.bad strong{color:var(--danger)}.variance.neutral strong{color:var(--muted)}@media(max-width:900px){.variance-filters{grid-template-columns:1fr 1fr}.variance-filters .btn{grid-column:1/-1}}@media(max-width:620px){.variance-filters{grid-template-columns:1fr}.variance-filters .btn{grid-column:auto}}

/* A assinatura é uma imagem de canvas: nunca pode alargar o detalhe do documento. */
.receipt-signature-preview{display:block;box-sizing:border-box;width:100%;max-width:520px;height:auto;max-height:180px;object-fit:contain;margin:12px auto 0;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}

/* Destino de uma bobine: análise compacta, sem tabela maior do que o modal. */
#modal:has(.stock-lot-destination) .modal-panel{width:min(1120px,calc(100vw - 32px));overflow-x:hidden}.stock-lot-destination{min-width:0}.stock-lot-destination .form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stock-lot-destination .card{padding:17px}.stock-lot-output-summary{margin-top:16px}.stock-lot-destination-table{min-width:0;table-layout:fixed}.stock-lot-destination-table th,.stock-lot-destination-table td{overflow-wrap:anywhere}.stock-lot-destination-table th:nth-child(1){width:13%}.stock-lot-destination-table th:nth-child(2){width:14%}.stock-lot-destination-table th:nth-child(3){width:30%}.stock-lot-destination-table th:nth-child(4){width:14%}.stock-lot-destination-table th:nth-child(5){width:20%}.variance-good strong{color:var(--success)}.variance-bad strong{color:var(--danger)}@media(max-width:760px){#modal:has(.stock-lot-destination) .modal-panel{width:min(100%,calc(100vw - 18px));padding:18px}.stock-lot-destination .form-grid{grid-template-columns:1fr 1fr}.stock-lot-destination-table th,.stock-lot-destination-table td{padding:10px 8px;font-size:11px}.stock-lot-destination-table th:nth-child(5),.stock-lot-destination-table td:nth-child(5){display:none}}

/* Stock separado da operação de entrada: tabelas e cartões mantêm-se legíveis. */
.stock-only-filters{grid-template-columns:minmax(240px,1fr) minmax(160px,.45fr) auto}.analysis-trace-card{margin-bottom:16px}.analysis-trace-table{min-width:0;table-layout:fixed}.analysis-trace-table td,.analysis-trace-table th{overflow-wrap:anywhere}@media(max-width:680px){.stock-only-filters{grid-template-columns:1fr}.analysis-trace-table th:nth-child(2),.analysis-trace-table td:nth-child(2){display:none}}

/* Resultado e destino da bobine: o produto é a informação principal. */
.stock-lot-output-summary .stock-lot-destination-table th:nth-child(1){width:38%}
.stock-lot-output-summary .stock-lot-destination-table th:nth-child(2),
.stock-lot-output-summary .stock-lot-destination-table th:nth-child(3){width:20%}
.stock-lot-output-summary .stock-lot-destination-table th:nth-child(4){width:22%}
.stock-lot-destination>.table-wrap .stock-lot-destination-table th:nth-child(1){width:10%}
.stock-lot-destination>.table-wrap .stock-lot-destination-table th:nth-child(2){width:14%}
.stock-lot-destination>.table-wrap .stock-lot-destination-table th:nth-child(3){width:32%}
.stock-lot-destination>.table-wrap .stock-lot-destination-table th:nth-child(4){width:12%}
.stock-lot-destination>.table-wrap .stock-lot-destination-table th:nth-child(5){width:22%}
.stock-lot-destination>.table-wrap .stock-lot-destination-table th:nth-child(6){width:10%}
.stock-lot-destination-table .status{white-space:nowrap}

/* Sistema visual comum aos modais: compacto, alinhado e sem largura excedente. */
.modal-panel{width:min(860px,calc(100vw - 32px));padding:22px;overflow-x:hidden}
.modal-head{margin-bottom:18px}.modal-head h2{font-size:24px;line-height:1.15}
.modal-panel .form-grid{gap:12px}.modal-panel .form-grid>.card{padding:14px;border-radius:12px}
.modal-panel .form-grid>.card b{font-size:13px}.modal-panel .form-grid>.card p{margin:8px 0 0;font-size:13px}
.modal-panel .field label{gap:6px;margin-bottom:12px}.modal-panel .table-wrap{max-width:100%}
.modal-panel .modal-actions{margin-top:18px;padding-top:14px}
@media(max-width:700px){.modal-panel{width:min(100%,calc(100vw - 18px));padding:18px}.modal-head h2{font-size:21px}}

/* Documento de Produção: resumo curto, assinatura discreta e listas sem scroll. */
.production-document-view{display:grid;gap:18px;min-width:0}
.production-document-view section{min-width:0}.production-document-view section>h3{margin:0 0 9px;font-size:16px}
.production-document-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.production-document-summary>div{display:grid;gap:5px;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}
.production-document-summary span,.production-document-submission span,.production-document-notes span{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.production-document-summary b{overflow-wrap:anywhere;font-size:13px;line-height:1.35}.production-document-summary .status{width:max-content}
.production-document-submission{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.9fr);gap:15px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.production-document-submission>div{display:grid;gap:5px}.production-document-submission b{font-size:13px}.production-document-submission small{font-size:11px;color:var(--muted)}
.production-document-submission .receipt-signature-preview{width:100%;max-width:none;height:86px;max-height:86px;margin:0;object-fit:contain}
.production-document-view .production-document-lines{margin:0}.production-document-view .production-document-line{background:var(--panel);padding:10px 12px}
.production-document-empty{padding:13px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:12px}
.production-document-notes{padding:12px 14px;border-left:3px solid var(--brand);border-radius:0 10px 10px 0;background:var(--panel2)}.production-document-notes p{margin:7px 0 0;font-size:13px;line-height:1.5;white-space:pre-wrap}
@media(max-width:700px){.production-document-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.production-document-submission{grid-template-columns:1fr}.production-document-submission .receipt-signature-preview{height:76px;max-width:360px}}

/* Filtros documentais: período e setor substituem o intervalo de datas. */
.stock-entry-toolbar{grid-template-columns:minmax(220px,1.45fr) minmax(155px,.78fr) minmax(175px,.9fr) minmax(170px,.95fr) minmax(145px,.7fr) auto}
@media(max-width:1180px){.stock-entry-toolbar{grid-template-columns:1fr 1fr 1fr}.stock-entry-toolbar .btn{grid-column:1/-1}}
@media(max-width:620px){.stock-entry-toolbar{grid-template-columns:1fr}.stock-entry-toolbar .btn{grid-column:auto}}
.production-record-summary{margin-bottom:16px}.production-record-filters{grid-template-columns:minmax(260px,1.45fr) minmax(150px,.75fr) minmax(180px,.9fr) minmax(165px,.8fr) auto;margin-bottom:20px}.production-record-filters .btn{grid-column:auto;width:auto}@media(max-width:1180px){.production-record-filters{grid-template-columns:1fr 1fr}.production-record-filters input{grid-column:1/-1}.production-record-filters .btn{grid-column:1/-1;justify-self:start;width:auto}}@media(max-width:620px){.production-record-filters{grid-template-columns:1fr}.production-record-filters input,.production-record-filters .btn{grid-column:auto;width:100%}}
.production-terminal-header{display:none}.terminal-user-home{min-height:calc(100vh - 170px);display:grid;place-items:center}.terminal-user-home .terminal-actions{width:min(900px,100%)}body.terminal-production-user #appView{display:block;min-height:100vh}body.terminal-production-user .sidebar,body.terminal-production-user .topbar,body.terminal-production-user .page-head{display:none}body.terminal-production-user .workspace{margin-left:0;width:100%;min-height:100vh}body.terminal-production-user .content{max-width:1080px;margin:0 auto;padding:112px 32px 48px}body.terminal-production-user .terminal-actions{grid-template-columns:repeat(2,minmax(260px,1fr));gap:26px}body.terminal-production-user .terminal-action{min-height:300px;border-radius:24px;font-size:18px}body.terminal-production-user .terminal-action svg{width:44px;height:44px}body.terminal-production-user .terminal-action b{font-size:22px}.production-terminal-header{position:fixed;z-index:90;inset:0 0 auto;align-items:center;justify-content:space-between;padding:22px 32px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(12px)}body.terminal-production-user .production-terminal-header{display:flex}.production-terminal-header img{width:42px;height:42px;object-fit:contain}@media(max-width:700px){body.terminal-production-user .content{padding:96px 18px 28px}body.terminal-production-user .terminal-actions{grid-template-columns:1fr;gap:16px}body.terminal-production-user .terminal-action{min-height:210px}.production-terminal-header{padding:16px 18px}.terminal-user-home{min-height:calc(100vh - 124px)}}

/* Terminal reduzido às duas operações do pavilhão. */
.terminal-actions-compact{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px;margin-inline:auto}
@media(max-width:760px){.terminal-actions-compact{grid-template-columns:1fr}}

/* Dashboard de Produção: leitura diária compacta, com análise no mesmo painel. */
.production-dashboard-shell{display:grid;gap:16px;min-width:0}.production-dashboard-filter{display:flex;align-items:end;justify-content:space-between;gap:14px;padding:14px 16px}.production-dashboard-filter-fields{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.production-dashboard-filter label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:800}.production-dashboard-filter select{min-width:185px;height:var(--control-height);border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--text);padding:0 10px;font:inherit}.production-dashboard-filter small{color:var(--muted);font-size:11px;text-align:right}.production-dashboard-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.production-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr);gap:16px;min-width:0}.production-dashboard-details{grid-template-columns:repeat(2,minmax(0,1fr))}.production-dashboard-alerts .insight-list{display:grid;gap:0}.production-dashboard-alert{border:0;border-top:1px solid var(--line);background:transparent;color:inherit;width:100%;padding:12px 0;text-align:left;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;cursor:pointer}.production-dashboard-alert:first-child{border-top:0;padding-top:0}.production-dashboard-alert .icon-tile{width:34px;height:34px}.production-dashboard-alert span:nth-child(2){display:grid;gap:3px;min-width:0}.production-dashboard-alert small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.production-dashboard-alert>span:last-child{font-size:11px;font-weight:800;color:var(--brand2)}.production-material-summary,.production-variance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:13px}.production-material-summary>div,.production-variance-summary>div{display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}.production-material-summary span,.production-variance-summary span{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.production-material-summary b,.production-variance-summary b{font-size:17px}.production-variance-summary .bad b{color:var(--danger)}.production-variance-summary .good b{color:var(--success)}.production-dashboard-lots{display:grid;gap:7px}.production-dashboard-lots button{display:flex;justify-content:space-between;gap:12px;width:100%;padding:9px 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);text-align:left;cursor:pointer}.production-dashboard-lots button b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.production-dashboard-lots button span{white-space:nowrap;color:var(--brand2);font-size:12px;font-weight:800}.production-dashboard-ranking{display:grid;gap:6px}.production-dashboard-ranking>div{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}.production-dashboard-ranking>div:first-child{border-top:0;padding-top:0}.production-dashboard-ranking span{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:var(--panel2);font-size:11px;font-weight:800;color:var(--muted)}.production-dashboard-ranking b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.production-dashboard-ranking strong{white-space:nowrap;color:var(--brand2);font-size:13px}.production-dashboard-variance-table td:nth-child(3){max-width:280px}.production-dashboard-document{cursor:pointer}.production-dashboard-document:hover td{background:color-mix(in srgb,var(--brand) 8%,transparent)}
@media(max-width:1280px){.production-dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.production-dashboard-filter{align-items:start;flex-direction:column}.production-dashboard-filter small{text-align:left}}@media(max-width:850px){.production-dashboard-grid,.production-dashboard-details{grid-template-columns:1fr}.production-dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.production-dashboard-filter-fields{display:grid;grid-template-columns:1fr 1fr;width:100%}.production-dashboard-filter label,.production-dashboard-filter select,.production-dashboard-filter .btn{min-width:0;width:100%}}@media(max-width:520px){.production-dashboard-kpis{grid-template-columns:1fr}.production-dashboard-filter-fields{grid-template-columns:1fr}.production-material-summary,.production-variance-summary{grid-template-columns:1fr}.production-dashboard-alert small{white-space:normal}.production-dashboard-variance-table th:nth-child(2),.production-dashboard-variance-table td:nth-child(2){display:none}}

/* A navegação deixa de ocupar espaço na última fase do assistente. */
.operation-wizard-nav[hidden]{display:none!important}

/* Cabeçalho próprio do Terminal de Produção. */
body.terminal-production-user .production-terminal-header:not(.hidden){display:flex}
body.terminal-production-user .terminal-recent{display:none}
.terminal-header-brand,.terminal-header-actions{display:flex;align-items:center;gap:12px}
.terminal-header-brand img{width:38px;height:38px;object-fit:contain}
.terminal-header-brand strong{font-size:18px;letter-spacing:-.02em}
.terminal-header-actions .user-chip{padding:0 4px}
.terminal-header-actions .avatar{width:36px;height:36px}
.terminal-header-actions .icon-btn{width:40px;height:40px}
.terminal-header-actions .btn{min-height:40px}
@media(max-width:700px){.terminal-header-brand strong,.terminal-user-chip>div:last-child{display:none}.production-terminal-header{padding:12px 18px}body.terminal-production-user .content{padding:88px 18px 28px}}
/* Quantidades operacionais: teclado numérico sem controlos de incremento. */
.operation-output-row input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}
.operation-output-row input[type="number"]::-webkit-inner-spin-button,
.operation-output-row input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* O seletor de setor do Stock segue a mesma escala dos restantes filtros. */
.stock-section-head > select {
  box-sizing: border-box;
  min-width: 260px;
  height: var(--control-height);
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
  color: var(--text);
  padding: 0 34px 0 11px;
  font: inherit;
  font-size: var(--control-font-size);
  line-height: 1.2;
}
.stock-section-head > select:focus {
  outline: 0;
  border-color: var(--brand2);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand2) 16%, transparent);
}
@media (max-width:620px) {
  .stock-section-head > select { min-width: 0; width: 100%; }
}

/* Filtro único do Cockpit: o contexto temporal é explícito, sem ocupar a página. */
.cockpit-period-control{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cockpit-period-control>select{box-sizing:border-box;height:var(--control-height);min-width:154px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);padding:0 30px 0 11px;font:inherit;font-size:var(--control-font-size)}.cockpit-period-control>select:focus{outline:0;border-color:var(--brand2);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand2) 16%,transparent)}.cockpit-period-control .commerce-month-navigator{margin:0}.cockpit-period-control .commerce-month-navigator strong{min-width:138px}@media(max-width:760px){.cockpit-period-control{width:100%}.cockpit-period-control>.cockpit-reference,.cockpit-period-control>select,.cockpit-period-control .commerce-month-navigator{flex:1}.cockpit-period-control .commerce-month-navigator strong{min-width:0}.page-head .cockpit-period-control+.btn{width:100%}}

/* Proteção visual de custos de pessoal: controlada pelo botão € do topo. */
body.costs-hidden #personnelCostTotal,
body.costs-hidden #personnelCostsTable td:last-child strong,
body.costs-hidden #cockpitLabor{position:relative;display:inline-block;color:transparent!important;user-select:none}
body.costs-hidden #personnelCostTotal::after,
body.costs-hidden #personnelCostsTable td:last-child strong::after,
body.costs-hidden #cockpitLabor::after{content:'••••';position:absolute;inset:0;color:var(--text);font:inherit;letter-spacing:.08em}
body.costs-hidden input[name="costRate"]{-webkit-text-security:disc}
body.costs-hidden #exportPersonnelCosts{display:none}
body.costs-hidden .cockpit-plan-card .plan-company-view .plan-metric:nth-child(4) b{position:relative;display:inline-block;color:transparent!important;user-select:none}
body.costs-hidden .cockpit-plan-card .plan-company-view .plan-metric:nth-child(4) b::after{content:'••••';position:absolute;inset:0;color:var(--text);font:inherit;letter-spacing:.08em}

/* --------------------------------------------------------------------------
   Sistema Visual Winter
   Camada final partilhada por todos os módulos. Esta escala substitui as
   variações históricas de densidade e mantém os fluxos operacionais compactos.
   -------------------------------------------------------------------------- */
:root{
  --font-ui:"Segoe UI Variable","Aptos",Inter,"Segoe UI",Arial,sans-serif;
  --font-size-xs:11px;
  --font-size-sm:12px;
  --font-size-base:13px;
  --font-size-title:26px;
  --space-1:6px;
  --space-2:10px;
  --space-3:14px;
  --space-4:18px;
  --space-5:24px;
  --radius-control:10px;
  --radius-card:14px;
  --control-sm:32px;
  --control-md:40px;
  --control-lg:44px;
  --control-height:var(--control-lg);
  --control-font-size:var(--font-size-sm);
  --status-success-bg:#def2ea;
  --status-success-fg:#14674f;
  --status-warning-bg:#fff0d5;
  --status-warning-fg:#8b590c;
  --status-danger-bg:#fbe4e6;
  --status-danger-fg:#a3353e;
  --status-neutral-bg:#edf2f4;
  --status-neutral-fg:#566872;
}
[data-theme="dark"]{
  --status-success-bg:rgba(42,177,127,.18);
  --status-success-fg:#8ee0b7;
  --status-warning-bg:rgba(227,159,41,.18);
  --status-warning-fg:#ffd38a;
  --status-danger-bg:rgba(218,87,98,.18);
  --status-danger-fg:#ffabb1;
  --status-neutral-bg:rgba(169,188,197,.14);
  --status-neutral-fg:#c1d0d5;
}

body{font-family:var(--font-ui);font-size:var(--font-size-base);line-height:1.45}
button,input,select,textarea{font-family:inherit}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--brand2) 28%,transparent);outline-offset:2px}

/* Campos: mesma altura, leitura e foco em filtros, formulários e barras. */
:where(.field input:not([type="checkbox"]):not([type="radio"]),.field select,.toolbar input:not([type="checkbox"]):not([type="radio"]),.toolbar select,.timesheet-tools select,.timesheet-tools input:not([type="checkbox"]):not([type="radio"]),.search-wrap,.module-selector,.cockpit-period-control>select,.stock-section-head>select,.absence-filters input,.absence-filters select,.stock-filters input,.stock-filters select){
  min-height:var(--control-lg);
  height:var(--control-lg);
  border-radius:var(--radius-control);
  font-size:var(--font-size-sm);
  line-height:1.2;
}
:where(.field input,.field select,.toolbar input,.toolbar select,.timesheet-tools select,.timesheet-tools input,.cockpit-period-control>select,.stock-section-head>select,.absence-filters input,.absence-filters select,.stock-filters input,.stock-filters select){
  border-color:var(--line);
  background-color:var(--panel);
}
:where(.field input,.field select,.field textarea,.toolbar input,.toolbar select,.timesheet-tools select,.timesheet-tools input,.cockpit-period-control>select,.stock-section-head>select,.absence-filters input,.absence-filters select,.stock-filters input,.stock-filters select):focus{
  outline:0;
  border-color:var(--brand2);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--brand2) 16%,transparent);
}
.field textarea{min-height:104px;border-radius:var(--radius-control);font-size:var(--font-size-sm);line-height:1.5}
.field label,.operation-meta .field label,.production-dashboard-filter label{font-size:var(--font-size-xs);letter-spacing:.01em}

/* Ações: o mesmo ritmo horizontal e a mesma área de toque. */
.btn{min-height:var(--control-md);padding:8px 13px;border-radius:var(--radius-control);font-size:var(--font-size-sm);line-height:1.15;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}
.btn.primary{box-shadow:0 5px 13px color-mix(in srgb,var(--brand2) 23%,transparent)}
.btn:hover{transform:translateY(-1px)}
.icon-btn,.action-icon{flex:0 0 auto}
.icon-btn{width:var(--control-md);height:var(--control-md);border-radius:var(--radius-control)}
.action-icon{width:var(--control-sm);height:var(--control-sm);border-radius:8px}
.actions{align-items:center;gap:7px;white-space:nowrap}

/* Superfícies e hierarquia de página. */
.page-head{padding-top:24px;padding-bottom:15px}
.page-head h1{font-size:var(--font-size-title);line-height:1.12;letter-spacing:-.035em}
.page-head p{font-size:var(--font-size-sm);line-height:1.45}
.breadcrumbs{font-size:var(--font-size-xs)}
.grid,.kpi-grid,.dashboard-grid,.sales-dashboard-grid{gap:var(--space-3)}
.card{padding:var(--space-4);border-radius:var(--radius-card);box-shadow:0 5px 16px rgba(16,39,49,.045)}
.kpi{min-height:112px;padding:var(--space-4)}
.kpi .value{font-size:24px;line-height:1.08;margin:9px 0 4px;font-variant-numeric:tabular-nums}
.kpi .label{font-size:10px;letter-spacing:.04em}
.icon-tile{width:38px;height:38px;border-radius:11px}
.card-head{gap:var(--space-2);margin-bottom:12px}
.card-head h3{font-size:15px;line-height:1.25}
.card-head span{font-size:var(--font-size-xs);line-height:1.4}
.empty{padding:36px 18px;font-size:var(--font-size-sm)}

/* Tabelas: dados compactos, mas nunca abaixo de uma leitura confortável. */
.table-wrap{border-radius:12px}
.data-table th{padding:10px 13px;font-size:10px;line-height:1.25;letter-spacing:.07em}
.data-table td{padding:12px 13px;font-size:var(--font-size-sm);line-height:1.35}
.data-table td small,.data-table td .stock-lot-subline{font-size:var(--font-size-xs);line-height:1.35}
.data-table tbody tr:hover{background:color-mix(in srgb,var(--brand2) 6%,var(--panel))}
.status{font-size:10px;line-height:1.2;padding:5px 8px;white-space:nowrap}
.status.active,.status.approved,.status.closed{background:var(--status-success-bg);color:var(--status-success-fg)}
.status.inactive,.status.rejected{background:var(--status-danger-bg);color:var(--status-danger-fg)}
.status.submitted{background:var(--status-warning-bg);color:var(--status-warning-fg)}
.status.draft{background:var(--status-neutral-bg);color:var(--status-neutral-fg)}

/* Diálogos: cabeçalho, informação e rodapé seguem a mesma composição. */
.modal{padding:18px}
.modal-panel{width:min(880px,calc(100vw - 32px));max-height:min(88vh,900px);padding:20px 22px;border-radius:18px;overflow-x:hidden}
.modal-head{gap:14px;margin-bottom:17px}
.modal-head h2{font-size:23px;line-height:1.15;letter-spacing:-.025em}
.modal-panel .form-grid{gap:12px}
.modal-panel .field label{gap:6px;margin-bottom:10px}
.modal-actions{position:sticky;bottom:-20px;margin:18px -22px -20px;padding:14px 22px;background:color-mix(in srgb,var(--panel) 96%,transparent);backdrop-filter:blur(8px);z-index:2}
.line-builder,.operation-form .operation-lines,.modal-panel .production-lines-card{padding:12px 13px;border-radius:12px}
.line-builder>.empty,.modal-panel .production-lines-card .empty{padding:16px 10px;font-size:var(--font-size-sm)}
.signature-box{padding:13px;border-radius:12px}
.signature-box canvas{height:132px}

/* Dashboards e filtros não devem parecer uma coleção de componentes diferentes. */
.toolbar{gap:9px;margin-bottom:14px}
.toolbar-left,.toolbar-right,.timesheet-tools{gap:8px}
.dashboard-switch,.chart-toolbar{min-height:var(--control-md);border-radius:var(--radius-control)}
.dashboard-switch button,.chart-filter{min-height:32px;font-size:11px}
.month-control,.commerce-month-navigator{min-height:var(--control-lg);border-radius:var(--radius-control)}
.month-control strong,.commerce-month-navigator strong{font-size:var(--font-size-sm)}
.plan-metric,.plan-forecast>div,.stock-summary-card,.absence-summary>div,.stock-article-kpis>div{border-radius:12px}

/* O design deve reduzir densidade com bom senso nos ecrãs pequenos. */
@media(max-width:760px){
  :root{--control-height:40px;--control-lg:40px;--font-size-title:24px}
  .topbar{height:60px}.content{padding-bottom:28px}.page-head{padding-top:20px}
  .page-head h1{font-size:24px}.card{padding:15px}.kpi{min-height:104px;padding:15px}
  .kpi .value{font-size:22px}.card-head h3{font-size:14px}
  .modal{padding:9px}.modal-panel{width:calc(100vw - 18px);max-height:92vh;padding:18px}
  .modal-head h2{font-size:21px}.modal-actions{bottom:-18px;margin:16px -18px -18px;padding:12px 18px;flex-wrap:wrap}
  .modal-actions .btn{flex:1}.data-table th{font-size:10px}.data-table td{font-size:12px}
  .signature-box canvas{height:118px}.page-head .page-actions,.page-head>.btn{width:100%}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
