:root{--green-950: #0a2418;--green-900: #0d3323;--green-800: #11482f;--green-700: #14603e;--green-600: #17784c;--green-500: #1a9059;--green-100: #d9efe3;--green-50: #ecf7f1;--canvas: #f6f7f7;--surface: #ffffff;--line: #e6eae8;--line-strong: #d5dcd8;--text: #17251e;--text-2: #5b6d64;--text-3: #8ba095;--red-600: #cf3f2c;--red-50: #fdefec;--amber-600: #b97c14;--amber-50: #fdf5e3;--blue-600: #2a6bb5;--blue-50: #eaf2fb;--r-sm: 7px;--r-md: 10px;--r-lg: 14px;--shadow-sm: 0 1px 2px rgba(18, 38, 28, .06);--shadow-md: 0 2px 6px rgba(18, 38, 28, .07), 0 12px 32px rgba(18, 38, 28, .07);--shadow-lg: 0 8px 24px rgba(18, 38, 28, .14), 0 24px 64px rgba(18, 38, 28, .18);--font: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{margin:0;font-family:var(--font);background:var(--canvas);color:var(--text);font-size:13.5px;line-height:1.45}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}.app{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:linear-gradient(180deg,var(--green-950) 0%,var(--green-900) 100%);color:#cfe4d8;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .brand{display:flex;align-items:center;gap:11px;padding:20px 18px 18px}.brand-mark{width:34px;height:34px;border-radius:9px;flex-shrink:0;background:linear-gradient(135deg,var(--green-500),var(--green-700));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:15px;box-shadow:inset 0 1px #ffffff40}.brand-name{font-size:14.5px;font-weight:700;color:#fff;letter-spacing:-.01em}.brand-sub{font-size:11px;color:#7fa892;margin-top:1px}.side-section{padding:16px 18px 6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.4px;color:#5f8471}.side-link{display:flex;align-items:center;gap:10px;background:none;border:0;color:#b9d4c5;text-align:left;padding:8px 12px;margin:1px 10px;border-radius:8px;width:calc(100% - 20px);font-size:13px;font-weight:500;transition:background .12s,color .12s}.side-link svg{width:16px;height:16px;flex-shrink:0;opacity:.75}.side-link:hover{background:#ffffff12;color:#fff}.side-link.active{background:#ffffff21;color:#fff;font-weight:600;box-shadow:inset 0 1px #ffffff0f}.side-link.active svg{opacity:1}.side-link .grow{flex:1}.pill{font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 7px;background:var(--red-600);color:#fff}.side-footer{margin-top:auto;padding:14px 18px 16px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;display:flex;align-items:center;gap:10px}.avatar{width:32px;height:32px;border-radius:999px;flex-shrink:0;background:var(--green-600);color:#fff;font-weight:700;font-size:12.5px;display:flex;align-items:center;justify-content:center}.side-footer .who{color:#fff;font-weight:600;line-height:1.25}.side-footer .role{color:#7fa892;text-transform:capitalize;font-size:11px}.icon-btn{background:none;border:0;color:#9dbfac;padding:6px;border-radius:7px;display:flex;margin-left:auto}.icon-btn:hover{background:#ffffff1a;color:#fff}.icon-btn svg{width:16px;height:16px}.main{flex:1;min-width:0;padding:20px 28px 40px}.page-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.page-head h1{font-size:19px;font-weight:700;letter-spacing:-.015em;margin:0}.page-head .spacer{flex:1}.meta-stat{color:var(--text-2);font-size:13px}.meta-stat b{color:var(--text);font-weight:650}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--surface);padding:10px 12px;border-radius:var(--r-md);border:1px solid var(--line);box-shadow:var(--shadow-sm);margin-bottom:12px}.toolbar input[type=text],.toolbar select{border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:6.5px 10px;background:#fff;font-size:13px;min-width:0}.toolbar input[type=text]{width:250px}.toolbar input:focus,.toolbar select:focus,.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(26,144,89,.28);outline-offset:0;border-color:var(--green-500)}.toolbar label.chk{display:flex;gap:6px;align-items:center;color:var(--text-2);font-size:12.5px;padding:0 4px;-webkit-user-select:none;user-select:none}.toolbar .sep{width:1px;height:22px;background:var(--line);margin:0 2px}.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--r-sm);overflow:hidden}.seg button{border:0;background:#fff;padding:6px 13px;font-size:12.5px;font-weight:600;color:var(--text-2)}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--green-50);color:var(--green-700)}.btn{border:1px solid var(--line-strong);background:#fff;border-radius:var(--r-sm);padding:6.5px 14px;font-weight:600;font-size:13px;color:var(--text);display:inline-flex;align-items:center;gap:7px;transition:background .12s,border-color .12s}.btn svg{width:14px;height:14px}.btn:hover{background:#f3f6f4;border-color:#c4cec8}.btn.primary{background:var(--green-600);border-color:var(--green-600);color:#fff;box-shadow:inset 0 1px #ffffff2e,var(--shadow-sm)}.btn.primary:hover{background:var(--green-700);border-color:var(--green-700)}.btn.danger{color:var(--red-600)}.btn.danger:hover{background:var(--red-50);border-color:#e8c6c0}.btn.ghost{border-color:transparent;background:transparent;color:var(--text-2)}.btn.ghost:hover{background:#eef1ef;color:var(--text)}.btn.sm{padding:4px 10px;font-size:12px;border-radius:6px}.btn:disabled{opacity:.5;cursor:not-allowed}.table-wrap{background:var(--surface);border-radius:var(--r-md);border:1px solid var(--line);box-shadow:var(--shadow-sm);overflow:auto;max-height:calc(100vh - 210px)}table.grid{border-collapse:separate;border-spacing:0;width:100%;min-width:1240px}.grid th{text-align:left;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-3);padding:9px 10px;border-bottom:1px solid var(--line-strong);position:sticky;top:0;background:#fbfcfb;z-index:2;white-space:nowrap}.grid td{padding:6px 10px;border-bottom:1px solid var(--line);white-space:nowrap;font-size:13px;height:38px}.grid tbody tr.row{transition:background .1s}.grid tbody tr.row:hover{background:#f6faf7}.grid tbody tr.row:hover .cell-edit{box-shadow:inset 0 0 0 1px var(--line-strong)}.grid td.link-cell{cursor:pointer;font-weight:600;color:var(--green-700)}.grid td.link-cell:hover{text-decoration:underline}.grid td.desc{max-width:320px;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.grid td.desc:hover{color:var(--green-700)}.grid tr.group-row{cursor:pointer;-webkit-user-select:none;user-select:none}.group-caret{display:inline-block;margin-right:7px;font-size:10px;transition:transform .12s;color:var(--green-700)}.group-caret.closed{transform:rotate(-90deg)}.grid tr.group-row td{background:linear-gradient(180deg,#f0f6f2,#e9f3ed);color:var(--green-800);font-weight:700;font-size:12px;padding:6px 10px;border-bottom:1px solid var(--line-strong);position:sticky;top:33px;z-index:1}.grid tr.placeholder-row td{color:var(--text-3)}.grid tr.placeholder-row td.desc{font-style:italic}.num{text-align:right;font-variant-numeric:tabular-nums}.grid td.num{font-weight:550}.cap-wrap{display:inline-flex;align-items:center;gap:8px;margin-left:14px;font-weight:600;font-size:11.5px}.cap-track{width:130px;height:7px;border-radius:99px;background:#d9e5dd;overflow:hidden}.cap-fill{height:100%;border-radius:99px;background:var(--green-500)}.cap-fill.over{background:var(--red-600)}.cap-label{color:var(--text-2);font-weight:600}.cap-label.over{color:var(--red-600)}.cell-edit{display:inline-block;min-width:66px;padding:3px 7px;border-radius:6px;cursor:text;min-height:22px;transition:box-shadow .1s}.cell-edit.empty{color:var(--text-3)}.cell-edit:hover{box-shadow:inset 0 0 0 1px var(--green-500)!important;background:#fff}.cell-input{border:1px solid var(--green-500);border-radius:6px;padding:2px 6px;font-size:12.5px;width:118px;outline:2px solid rgba(26,144,89,.22);background:#fff}select.cell-input{width:auto;max-width:190px}.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:650;line-height:1.5;letter-spacing:.01em}.chip:before{content:"";width:6px;height:6px;border-radius:99px;background:currentColor;opacity:.7}.chip.plain:before{display:none}.chip.sim{background:var(--green-50);color:var(--green-700)}.chip.nao{background:var(--red-50);color:var(--red-600)}.chip.aguardar{background:var(--amber-50);color:var(--amber-600)}.chip.empty{background:#f0f2f1;color:var(--text-3)}.chip.status-a{background:var(--blue-50);color:var(--blue-600)}.chip.status-d,.chip.kpi-ok{background:var(--green-50);color:var(--green-700)}.chip.kpi-late{background:var(--red-50);color:var(--red-600)}.chip.wd-ok{background:var(--amber-50);color:var(--amber-600)}.dropzone{border:2px dashed var(--line-strong);border-radius:var(--r-md);padding:20px;text-align:center;color:var(--text-2);font-size:13px;cursor:pointer;margin-bottom:14px;transition:border-color .12s,background .12s}.dropzone:hover,.dropzone.over{border-color:var(--green-500);background:var(--green-50)}.file-row{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:var(--r-md);padding:10px 14px;margin-bottom:8px;background:#fdfefd}.file-ico{font-size:20px}.file-info{flex:1;min-width:0}.file-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-meta{font-size:12px;color:var(--text-2)}.file-row a.btn{text-decoration:none}.modal.preview-modal{width:min(1100px,94vw);height:94vh;max-height:94vh;z-index:80}.preview-body{flex:1;overflow:auto;background:#f0f2f1;display:flex}.preview-body iframe{border:0;width:100%;height:100%}.preview-body img{max-width:100%;max-height:100%;margin:auto;display:block}.cal-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:12px 16px 14px;display:flex;flex-direction:column;height:calc(100vh - 118px);min-height:480px}.cal-head{display:flex;align-items:center;gap:14px;margin-bottom:10px;flex-wrap:wrap}.cal-head h2{margin:0;font-size:16px;font-weight:700;letter-spacing:-.01em;min-width:170px}.cal-legend{display:flex;gap:6px}.cal-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:auto repeat(var(--cal-rows, 5),minmax(0,1fr));gap:4px}.cal-dow{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-3);padding:2px 6px}.cal-cell{border:1px solid var(--line);border-radius:8px;padding:4px 5px;background:#fff;display:flex;flex-direction:column;min-height:0;overflow:hidden}.cal-cell.weekend{background:#f7f9f8}.cal-cell.out{opacity:.42}.cal-cell.today{border-color:var(--green-500);box-shadow:inset 0 0 0 1px var(--green-500)}.cal-date{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:700;color:var(--text-2);padding:0 3px 3px}.cal-cell.today .cal-date{color:var(--green-700)}.cal-count{background:var(--green-600);color:#fff;border-radius:999px;font-size:10px;font-weight:700;padding:0 6px}.cal-items{display:flex;flex-direction:column;gap:2px;min-height:0;overflow:hidden}.cal-more{border:0;background:none;color:var(--green-700);font-size:10.5px;font-weight:700;text-align:left;padding:1px 6px;cursor:pointer}.cal-more:hover{text-decoration:underline}.cal-day-modal{width:min(680px,94vw);max-height:80vh}.cal-day-list{display:flex;flex-direction:column;gap:6px}.plan-PET{--plan-c: #1a9059;--plan-bg: #e7f5ee}.plan-VET{--plan-c: #2a6bb5;--plan-bg: #e9f1fa}.plan-JOINERY{--plan-c: #b97c14;--plan-bg: #fbf3e1}.plan-RPP{--plan-c: #7c4dbb;--plan-bg: #f1eafa}.cal-plan-chip{border:1px solid var(--plan-c, var(--line-strong));border-radius:999px;padding:2.5px 12px;font-size:11.5px;font-weight:700;background:var(--plan-bg, #fff);color:var(--plan-c, var(--text-2));margin-left:5px;transition:opacity .12s}.cal-plan-chip.off{opacity:.32;background:#fff;text-decoration:line-through}.cal-plan-chip:hover{opacity:.85}.cal-item{display:flex;align-items:baseline;gap:5px;width:100%;border:0;border-left:3px solid var(--plan-c, var(--text-3));border-radius:5px;background:var(--plan-bg, #f0f2f1);padding:2px 6px;text-align:left;cursor:pointer;transition:filter .1s;overflow:hidden;white-space:nowrap;flex-shrink:0}.cal-item:hover{filter:brightness(.94)}.cal-item.shipped{opacity:.55}.cal-item-ref{font-size:10.5px;font-weight:700;color:var(--text);flex-shrink:0}.cal-item-plan{color:var(--plan-c, var(--text-2));font-size:9px;font-weight:800;letter-spacing:.5px;flex-shrink:0}.cal-item-desc{font-size:10.5px;color:var(--text-2);min-width:0;overflow:hidden;text-overflow:ellipsis}.cal-item.big{padding:8px 12px;white-space:normal}.cal-item.big .cal-item-ref,.cal-item.big .cal-item-desc{font-size:13px}.cal-item.big .cal-item-plan{font-size:10.5px}.bulk-bar{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:var(--green-950);color:#e7f4ec;z-index:35;display:flex;align-items:center;gap:12px;padding:10px 18px;border-radius:999px;box-shadow:var(--shadow-lg);font-size:13px;animation:toastIn .18s cubic-bezier(.2,.8,.3,1)}.bulk-bar .btn{border-color:transparent}.bulk-bar .btn:not(.primary){background:#ffffff1f;color:#fff}.bulk-bar .btn:not(.primary):hover{background:#ffffff38}.bulk-bar .btn.ghost{background:transparent;color:#9dbfac}tr.selected-row td{background:#eef7f1!important}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(880px,94vw);max-height:84vh;overflow:hidden;background:var(--surface);z-index:60;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:fadeIn .15s ease}.modal-body{padding:14px 22px 20px;overflow-y:auto}.modal .grid{min-width:720px}.product-cell{cursor:pointer;font-weight:600;color:var(--blue-600)}.product-cell:hover{text-decoration:underline}.clip{display:inline-flex;align-items:center;gap:2px;margin-left:6px;font-size:10.5px;font-weight:700;color:var(--text-3);vertical-align:-1px}.clip svg{width:12px;height:12px}.sage-dot{display:inline-block;width:7px;height:7px;border-radius:99px;background:var(--green-500);margin-right:6px;vertical-align:1px;box-shadow:0 0 0 2.5px var(--green-50)}.prep-cell{display:flex;gap:3px}.prep-dot{width:19px;height:19px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;border:1px solid var(--line-strong);background:#f4f6f5;color:#a9b8b0;cursor:pointer;transition:transform .08s}.prep-dot:hover{transform:scale(1.12)}.prep-dot.sim{background:var(--green-600);border-color:var(--green-600);color:#fff}.prep-dot.nao{background:var(--red-600);border-color:var(--red-600);color:#fff}.prep-dot.aguardar{background:var(--amber-600);border-color:var(--amber-600);color:#fff}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a191273;z-index:40;animation:fadeIn .15s ease}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(700px,96vw);background:var(--surface);z-index:50;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slideIn .18s cubic-bezier(.2,.8,.3,1)}@keyframes slideIn{0%{transform:translate(40px);opacity:.4}to{transform:none;opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.drawer-head{padding:16px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.drawer-head h2{margin:0;font-size:15.5px;font-weight:700;letter-spacing:-.01em;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-tabs{display:flex;gap:4px;padding:0 20px;border-bottom:1px solid var(--line)}.drawer-tabs button{background:none;border:0;padding:10px 13px;color:var(--text-2);font-weight:600;font-size:13px;border-bottom:2px solid transparent;margin-bottom:-1px}.drawer-tabs button:hover{color:var(--text)}.drawer-tabs button.active{color:var(--green-700);border-bottom-color:var(--green-600)}.drawer-body{flex:1;overflow-y:auto;padding:18px 24px}.drawer-foot{padding:13px 24px;border-top:1px solid var(--line);display:flex;gap:10px;background:#fbfcfb}.fgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 16px}.fgrid .full{grid-column:1 / -1}.field label{display:block;font-size:10.5px;font-weight:700;color:var(--text-3);margin-bottom:4px;text-transform:uppercase;letter-spacing:.7px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:7px 10px;background:#fff;font-size:13px}.field input:disabled,.field select:disabled,.field textarea:disabled{background:#f6f8f7;color:var(--text-2)}.field textarea{min-height:64px;resize:vertical}.field .with-btn{display:flex;gap:6px}.field .with-btn input{flex:1}fieldset.section{border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px 16px;margin:0 0 16px;background:#fdfefd}fieldset.section legend{font-size:11px;font-weight:700;color:var(--green-700);padding:0 7px;text-transform:uppercase;letter-spacing:.8px}.hint{font-size:12px;color:var(--text-2);margin-top:6px}.error-box{background:var(--red-50);color:var(--red-600);border:1px solid #f3d1cb;padding:9px 13px;border-radius:var(--r-sm);margin-bottom:12px;font-size:12.5px}.ok-box{background:var(--green-50);color:var(--green-700);border:1px solid #c9e7d6;padding:9px 13px;border-radius:var(--r-sm);margin-bottom:12px;font-size:12.5px}.toasts{position:fixed;bottom:20px;right:20px;z-index:100;display:flex;flex-direction:column;gap:8px}.toast{background:var(--green-950);color:#e7f4ec;padding:10px 16px;border-radius:var(--r-md);box-shadow:var(--shadow-md);font-size:12.5px;font-weight:550;max-width:380px;animation:toastIn .2s cubic-bezier(.2,.8,.3,1);display:flex;gap:9px;align-items:center}.toast.err{background:#47140c;color:#ffd9d2}.toast:before{content:"";width:7px;height:7px;border-radius:99px;background:var(--green-500);flex-shrink:0}.toast.err:before{background:#ff7a63}@keyframes toastIn{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}.comment{border:1px solid var(--line);border-radius:var(--r-md);padding:11px 14px;margin-bottom:10px;background:#fdfefd}.comment .meta{font-size:12px;color:var(--text-2);margin-bottom:5px;display:flex;gap:8px;align-items:center}.comment .meta b{color:var(--text)}.audit{font-size:12.5px;border-left:3px solid var(--line-strong);padding:5px 14px;margin-bottom:12px}.audit .meta{color:var(--text-2);font-size:12px}.audit .meta b{color:var(--text);text-transform:capitalize}.audit .diff{margin:5px 0 0;padding-left:16px}.audit .diff li{margin:2px 0}.audit code{background:#eef2ef;padding:1px 6px;border-radius:4px;font-size:11.5px;font-family:ui-monospace,SF Mono,Menlo,monospace}.login-page{min-height:100vh;display:flex;align-items:stretch}.login-hero{flex:1.1;background:radial-gradient(1000px 600px at 20% 0%,rgba(26,144,89,.35),transparent 55%),linear-gradient(160deg,var(--green-950),var(--green-800));color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:56px}.login-hero h2{font-size:30px;font-weight:800;letter-spacing:-.03em;margin:0 0 12px;max-width:480px;line-height:1.15}.login-hero p{color:#a9cbb8;max-width:440px;font-size:14.5px;margin:0}.login-panel{width:460px;background:var(--surface);display:flex;align-items:center;justify-content:center;padding:40px}.login-card{width:320px}.login-card .brand-mark{width:44px;height:44px;font-size:19px;border-radius:12px;margin-bottom:20px}.login-card h1{margin:0 0 4px;font-size:21px;font-weight:750;letter-spacing:-.02em}.login-card p.sub{margin:0 0 26px;color:var(--text-2);font-size:13px}.login-card .field{margin-bottom:14px}.login-card .btn{width:100%;padding:10px;justify-content:center;font-size:14px;margin-top:6px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin-bottom:18px}.card{background:var(--surface);border-radius:var(--r-md);border:1px solid var(--line);box-shadow:var(--shadow-sm);padding:15px 17px}.card .label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-3)}.card .value{font-size:23px;font-weight:750;letter-spacing:-.02em;margin-top:7px;font-variant-numeric:tabular-nums}.card .value.green{color:var(--green-700)}.card .value.red{color:var(--red-600)}.bars{background:var(--surface);border-radius:var(--r-md);border:1px solid var(--line);box-shadow:var(--shadow-sm);padding:18px 20px}.bars h3{margin:0 0 16px;font-size:13.5px;font-weight:700}.bar-row{display:grid;grid-template-columns:110px 1fr 150px;gap:12px;align-items:center;margin-bottom:9px;font-size:12.5px}.bar-track{background:#eef2ef;border-radius:6px;height:18px;overflow:hidden}.bar-fill{background:linear-gradient(90deg,var(--green-600),var(--green-500));height:100%;border-radius:6px;min-width:2px}.bar-val{color:var(--text-2);font-variant-numeric:tabular-nums}.kpi-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:14px}.kpi-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:14px 17px 13px}.kpi-card.alert{background:#fdf3f1;border-color:#f0d3cd}.kpi-card.alert .kpi-value{color:var(--red-600)}.kpi-card.focus{border-color:var(--green-500);box-shadow:0 0 0 1px var(--green-500),var(--shadow-sm)}.kpi-card .kpi-value{font-size:27px;margin-top:5px}.kpi-card .kpi-sub{margin-top:3px}.cockpit-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:14px;margin-bottom:14px}@media (max-width: 1050px){.cockpit-grid{grid-template-columns:1fr}}.panel-lite{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:16px 20px 14px}.panel-lite-head{display:flex;align-items:baseline;gap:14px;margin-bottom:14px}.panel-lite-head h3{margin:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-3);flex:1}.cap-tick{display:inline-block;width:16px;border-top:2px dashed var(--red-600);vertical-align:middle}.wl-chart{display:flex;gap:14px;align-items:flex-end;padding:0 4px}.wl-col{flex:1;min-width:0;text-align:center}.wl-plot{position:relative;display:flex;align-items:flex-end;justify-content:center}.wl-stack{width:min(58px,80%);display:flex;flex-direction:column-reverse;gap:2px}.wl-stack>div{border-radius:3px}.wl-stack>div:last-child{border-radius:5px 5px 3px 3px}.wl-cap{position:absolute;left:6%;right:6%;border-top:2px dashed var(--red-600);opacity:.65;pointer-events:none}.wl-value{position:absolute;left:0;right:0;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-2)}.wl-value.red{color:var(--red-600)}.wl-label{margin-top:8px;font-size:11px;color:var(--text-3);line-height:1.35}.wl-label b{display:block;color:var(--text-2);font-size:12px}.wl-label.now b{color:var(--green-700)}.pipe{display:flex;flex-direction:column;gap:16px;padding-top:4px}.pipe-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}.pipe-label{font-size:12.5px;font-weight:650}.pipe-count{font-size:17px;font-weight:750;font-variant-numeric:tabular-nums}.pipe-track{background:#eef2ef;border-radius:5px;height:10px}.pipe-fill{height:100%;border-radius:5px}.pipe-sub{font-size:11px;color:var(--text-3);margin-top:4px;min-height:14px}.ship-next{width:100%;border-collapse:collapse}.ship-next td{padding:8px 10px;border-top:1px solid var(--line);font-size:13px;white-space:nowrap}.ship-next tr{cursor:pointer;transition:background .1s}.ship-next tr:hover{background:#f6faf7}.sn-date{font-weight:700;font-variant-numeric:tabular-nums;width:74px}.sn-plan{font-size:10.5px;font-weight:800;letter-spacing:.5px}.sn-ref{font-weight:600;color:var(--green-700)}.sn-desc{max-width:380px;overflow:hidden;text-overflow:ellipsis;color:var(--text-2)}.sn-dest{color:var(--text-2);width:50px}.sn-val{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.prep-mini{display:inline-block;width:64px;height:7px;border-radius:99px;background:#e8edea;overflow:hidden;vertical-align:middle}.prep-mini>span{display:block;height:100%;border-radius:99px}.prep-mini.ok>span{background:var(--green-600)}.prep-mini.mid>span{background:var(--amber-600)}.prep-mini.low>span{background:var(--red-600)}.dash-sheet{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:26px 30px 22px;max-width:1240px}.dash-divider{height:1px;background:var(--line);margin:22px -30px}.dash-vline{width:1px;background:var(--line);margin:0 26px;align-self:stretch}.dash-cols{display:flex}.dash-cols .dash-section{flex:1;min-width:0}@media (max-width: 1000px){.dash-cols{flex-direction:column;gap:20px}.dash-vline{display:none}}.dash-section-head{display:flex;align-items:baseline;gap:14px;margin-bottom:10px}.dash-section-head h3{margin:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-3);flex:1}.kpi-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.kpi{padding:2px 20px 2px 0}.kpi+.kpi{border-left:1px solid var(--line);padding-left:20px}.kpi-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.9px;color:var(--text-3)}.kpi-value{font-size:26px;font-weight:750;letter-spacing:-.025em;margin-top:6px;font-variant-numeric:tabular-nums;line-height:1.1;color:var(--text)}.kpi-value.green{color:var(--green-700)}.kpi-value.red{color:var(--red-600)}.kpi-sub{font-size:11.5px;color:var(--text-3);margin-top:5px}.split-bar{display:flex;gap:2px;height:18px;border-radius:6px;overflow:hidden;margin:8px 0 16px}.split-seg{min-width:4px}.split-seg:first-child{border-radius:6px 0 0 6px}.split-seg:last-child{border-radius:0 6px 6px 0}.split-legend{display:flex;flex-direction:column;gap:9px}.split-row{display:flex;align-items:baseline;gap:8px;font-size:13px}.split-code{font-weight:700;width:68px}.split-val{font-weight:650;font-variant-numeric:tabular-nums}.split-pct{color:var(--text-3);font-size:12px}.grid-base{stroke:var(--line-strong);stroke-width:1}.chart-empty{text-align:center;color:var(--text-3);padding:44px 0;font-size:13px}.ontime-summary{display:flex;align-items:center;gap:28px;padding:22px 8px 26px}.ontime-big{text-align:center;padding:0 12px}.ontime-big .value{font-size:40px;font-weight:800;letter-spacing:-.03em;line-height:1}.ontime-big .value.green{color:var(--green-700)}.ontime-big .value.red{color:var(--red-600)}.ontime-big .label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-3);margin-top:6px}.ontime-split{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-2)}.ontime-split b{color:var(--text);font-size:15px}.ontime-split b.red{color:var(--red-600)}.ontime-split .hint{margin-top:4px}.chart-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:14px 18px 10px;margin-bottom:14px}.chart-panel-head{display:flex;align-items:center;gap:14px;margin-bottom:6px}.chart-panel-head h3{margin:0;font-size:13px;font-weight:700;flex:1}.chart-legend{display:flex;gap:12px}.legend-item{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--text-2)}.chart-grid-2{display:grid;grid-template-columns:1.2fr 1fr;gap:14px}@media (max-width: 1100px){.chart-grid-2{grid-template-columns:1fr}}.chart-box{position:relative}.chart-svg{width:100%;height:auto;display:block}.grid-line{stroke:var(--line);stroke-width:1}.axis-text{font-size:10px;fill:var(--text-3);font-family:var(--font)}.axis-text.bold{font-weight:700;fill:var(--text-2);font-size:10.5px}.chart-tip{position:absolute;z-index:10;pointer-events:none;background:var(--green-950);color:#e7f4ec;border-radius:8px;padding:8px 12px;font-size:12px;box-shadow:var(--shadow-md);white-space:nowrap;line-height:1.5}.chart-tip b{display:block;margin-bottom:2px}.tip-row{display:flex;align-items:center;gap:6px}.tip-dot{display:inline-block;width:8px;height:8px;border-radius:99px;flex-shrink:0}.plan-bars{padding:10px 0 14px}.plan-bar-row{display:grid;grid-template-columns:80px 1fr 132px;gap:14px;align-items:center;margin-bottom:16px}.plan-bar-label{display:flex;align-items:center;gap:7px;font-weight:700;font-size:12.5px}.plan-bar-track{background:#eef2ef;border-radius:6px;height:14px}.plan-bar-fill{height:100%;border-radius:4px 6px 6px 4px;min-width:3px}.plan-bar-val{display:flex;flex-direction:column;font-size:12px;line-height:1.35;font-variant-numeric:tabular-nums}.plan-bar-val b{color:var(--text);font-size:12.5px}.plan-bar-val span{color:var(--text-3)}.audit-feed{max-width:1100px}.audit-entry{display:flex;gap:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:12px 16px;margin-bottom:8px}.audit-when{width:132px;flex-shrink:0;font-size:12px;color:var(--text-2)}.audit-when .chip{margin-top:5px}.audit-body{flex:1;min-width:0;font-size:13px}.audit-line{line-height:1.55}.audit-sync{color:var(--green-700)}.audit-ref{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--green-700);cursor:pointer}.audit-ref:hover{text-decoration:underline}.audit-desc{color:var(--text-2)}.audit-body .diff{margin:6px 0 0;padding-left:18px}.audit-body .diff li{margin:2px 0;font-size:12.5px}.audit-body code{background:#eef2ef;padding:1px 6px;border-radius:4px;font-size:11.5px;font-family:ui-monospace,SF Mono,Menlo,monospace}.alert-row{display:flex;gap:13px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:12px 16px;margin-bottom:9px;cursor:pointer;transition:border-color .12s}.alert-row:hover{border-color:var(--green-500)}.alert-dot{width:9px;height:9px;border-radius:99px;margin-top:6px;flex-shrink:0}.alert-dot.late{background:var(--red-600);box-shadow:0 0 0 3px var(--red-50)}.alert-dot.warning{background:var(--amber-600);box-shadow:0 0 0 3px var(--amber-50)}.alert-dot.info{background:var(--blue-600);box-shadow:0 0 0 3px var(--blue-50)}.alert-row .ref{font-weight:700;font-size:13px}.alert-row .desc{color:var(--text-2);font-size:12.5px;margin-left:8px}.alert-row .msg{font-size:12.5px;margin-top:2px;color:var(--text-2)}.user-table td,.user-table th{white-space:normal}.perm-grid{display:flex;flex-direction:column;gap:5px}.perm-line{display:flex;gap:12px;align-items:center;font-size:12.5px}.perm-line b{width:72px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:16px 18px;margin-bottom:14px}.panel h3{margin:0 0 12px;font-size:13.5px;font-weight:700}.cap-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:13px}.cap-row b{width:80px}.cap-row input{width:130px;border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:6px 9px}.empty-state{text-align:center;color:var(--text-3);padding:56px 0;font-size:13px}.spin{text-align:center;color:var(--text-3);padding:40px 0}.badge-count{display:inline-flex;align-items:center;justify-content:center;background:var(--blue-50);color:var(--blue-600);border-radius:999px;font-size:10.5px;font-weight:700;padding:1px 7px}@media (max-width: 900px){.sidebar{display:none}.fgrid{grid-template-columns:1fr}.login-hero{display:none}.login-panel{width:100%}}
