@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{--navy:#0b1f35;--navy2:#102a47;--orange:#f07d18;--bg:#f3f6f9;--text:#142438;--muted:#647386;--line:#e2e8ef;--white:#fff;--green:#20a875;--red:#df4d55;--blue:#287ec1}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:DM Sans,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.login{grid-template-columns:1.15fr .85fr;min-height:100vh;display:grid}.login-art{background:var(--navy);color:#fff;flex-direction:column;padding:54px 7vw;display:flex;position:relative;overflow:hidden}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--orange);color:#fff;border-radius:10px;place-items:center;width:44px;height:44px;font-family:Manrope;font-size:25px;font-weight:800;display:grid}.brand div{flex-direction:column;line-height:1;display:flex}.brand b{letter-spacing:1.5px;font:800 18px Manrope}.brand small{letter-spacing:4px;margin-top:6px;font-size:9px}.hero-copy{z-index:2;margin:auto 0;position:relative}.hero-copy>span,.eyebrow{color:var(--orange);letter-spacing:1.8px;font-size:12px;font-weight:700}.hero-copy h1{margin:18px 0;font:800 clamp(42px,5vw,72px)/1.06 Manrope}.hero-copy h1 em{color:var(--orange);font-style:normal}.hero-copy p{color:#b9c7d7;max-width:540px;font-size:17px;line-height:1.7}.steel-lines{border:1px solid #ffffff12;border-radius:50%;width:500px;height:500px;position:absolute;bottom:-190px;right:-180px;box-shadow:0 0 0 70px #ffffff08,0 0 0 140px #ffffff05}.login-panel{background:#fff;place-items:center;padding:40px;display:grid}.login-panel form{width:min(420px,100%)}.login-panel h2{margin:12px 0 8px;font:800 34px Manrope}.login-panel p{color:var(--muted);margin-bottom:32px}.login label,.form-grid label{flex-direction:column;gap:8px;margin-bottom:18px;font-size:13px;font-weight:600;display:flex}.login input,.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--line);background:#fff;border-radius:9px;outline:none;padding:13px 14px}.login input:focus,.form-grid input:focus{border-color:var(--orange);box-shadow:0 0 0 3px #f07d1818}.primary{background:var(--orange);color:#fff;border:0;border-radius:9px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px 18px;font-weight:700;display:flex}.primary:hover{background:#d96a0e}.primary:disabled{opacity:.65}.demo-note{text-align:center;color:#8a96a5;margin-top:18px;display:block}.mobile-brand{display:none}.error,.demo-banner{color:#b52e38;background:#fff0f0;border-radius:8px;align-items:center;gap:9px;margin-bottom:18px;padding:12px;font-size:13px;display:flex}.shell{min-height:100vh}.shell aside{background:var(--navy);color:#fff;z-index:30;flex-direction:column;width:250px;padding:24px 18px;display:flex;position:fixed;inset:0 auto 0 0}.shell aside .brand{padding:0 9px 26px}.shell aside nav{border-top:1px solid #ffffff12;padding-top:22px}.shell aside nav>span{color:#75879a;letter-spacing:1.5px;padding:0 12px 9px;font-size:9px;font-weight:700;display:block}.shell aside nav button{color:#9fb0c1;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;width:100%;margin:2px 0;padding:11px 12px;font-size:13px;font-weight:600;display:flex}.shell aside nav button svg{width:18px}.shell aside nav button.active,.shell aside nav button:hover{color:#fff;background:#ffffff10}.shell aside nav button.active{box-shadow:inset 3px 0 var(--orange)}.shell aside nav button i{background:var(--red);border-radius:20px;place-items:center;width:19px;height:19px;margin-left:auto;font-size:10px;font-style:normal;display:grid}.aside-foot{border-top:1px solid #ffffff12;margin-top:auto;padding:18px 8px 0}.aside-foot>div{color:#91a4b7;align-items:center;gap:8px;margin-bottom:13px;display:flex}.pulse{background:#38d795;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #38d79520}.aside-foot button{color:#9fb0c1;background:0 0;border:0;align-items:center;gap:9px;padding:8px 0;display:flex}.aside-foot button svg{width:17px}.app{margin-left:250px}.app>header{border-bottom:1px solid var(--line);z-index:20;background:#fff;align-items:center;height:76px;padding:0 34px;display:flex;position:sticky;top:0}.crumb{color:var(--muted);font-size:11px;display:none}.app>header h1{margin:0;font:800 19px Manrope}.head-actions{align-items:center;gap:11px;margin-left:auto;display:flex}.icon{color:inherit;background:0 0;border:0;place-items:center;padding:7px;display:grid}.icon svg{width:19px}.head-actions>.icon{color:var(--muted);border-right:1px solid var(--line);padding-right:18px}.avatar{background:var(--navy);color:#fff;border-radius:9px;place-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:grid}.user-meta{flex-direction:column;font-size:12px;display:flex}.user-meta span{text-transform:capitalize;color:var(--muted);font-size:10px}.content{max-width:1600px;margin:auto;padding:28px 34px 50px;transition:all .2s}.content.loading{opacity:.6;pointer-events:none}.demo-banner{color:#9b6615;background:#fff8e8;border:1px solid #f1d99e;margin:18px 34px 0}.welcome,.section-title{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.welcome h2,.section-title h2{margin:7px 0;font:800 28px Manrope}.welcome p,.section-title p{color:var(--muted);margin:0}.outline{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:7px;padding:11px 15px;font-weight:600;display:flex}.outline svg{width:17px}.metrics{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}.metric{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:14px;padding:18px;display:flex}.metric-icon{width:45px;height:45px;color:var(--blue);background:#edf6fd;border-radius:10px;place-items:center;display:grid}.metric-icon svg{width:21px}.metric-icon.green{color:var(--green);background:#eaf9f3}.metric-icon.orange{color:var(--orange);background:#fff3e7}.metric-icon.red{color:var(--red);background:#fff0f0}.metric>div:last-child{flex-direction:column;display:flex}.metric span,.metric small{color:var(--muted);font-size:11px}.metric strong{margin:2px 0;font:800 22px Manrope}.dashboard-grid{grid-template-columns:2fr 1fr;gap:20px;display:grid}.card,.table-card,.work-card{border:1px solid var(--line);background:#fff;border-radius:12px}.card{padding:21px}.card-head{justify-content:space-between;align-items:center;display:flex}.card-head h3{margin:0;font:700 16px Manrope}.card-head p{color:var(--muted);margin:4px 0 0;font-size:11px}.text-btn{color:var(--blue);background:0 0;border:0;align-items:center;font-size:12px;font-weight:600;display:flex}.text-btn svg{width:15px}.work-row{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:17px 0;display:flex}.work-row:last-child{border:0;padding-bottom:0}.work-code{background:var(--navy);color:#fff;border-radius:7px;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.grow{flex:1}.row-title{justify-content:space-between;margin-bottom:8px;font-size:12px;display:flex}.row-title span{color:var(--muted)}.progress-wrap{align-items:center;gap:10px;display:flex}.progress{background:#e9eef3;border-radius:5px;flex:1;height:6px;overflow:hidden}.progress i{background:linear-gradient(90deg, var(--orange), #ffab55);border-radius:5px;height:100%;display:block}.progress-wrap>b{min-width:31px;font-size:11px}.work-numbers{text-align:right;flex-direction:column;min-width:60px;display:flex}.work-numbers span{color:var(--muted);font-size:10px}.alerts button{text-align:left;border:0;border-bottom:1px solid var(--line);background:0 0;align-items:center;gap:11px;width:100%;padding:14px 0;display:flex}.alerts button:last-child{border:0}.alerts button>svg{color:#9aa6b3;width:16px;margin-left:auto}.alerts button div{flex-direction:column;display:flex}.alerts button small{color:var(--muted)}.alert-icon{border-radius:8px;place-items:center;width:38px;height:38px;display:grid}.alert-icon svg{width:18px}.alert-icon.red{color:var(--red);background:#fff0f0}.alert-icon.orange{color:var(--orange);background:#fff3e7}.alert-icon.blue{color:var(--blue);background:#edf6fd}.live{color:#197f5a;background:#eaf9f3;border-radius:20px;align-items:center;gap:7px;padding:7px 10px;font-size:11px;font-weight:600;display:flex}.live i{background:var(--green);border-radius:50%;width:6px;height:6px}.toolbar{justify-content:space-between;gap:15px;margin-bottom:16px;display:flex}.search{width:min(400px,100%);position:relative}.search svg{color:#8a96a5;width:17px;position:absolute;top:11px;left:13px}.search input{border:1px solid var(--line);background:#fff;border-radius:8px;outline:none;width:100%;padding:11px 12px 11px 39px}.compact{width:auto;padding:10px 15px}.compact svg{width:17px}.cards-grid{grid-template-columns:repeat(3,1fr);gap:17px;display:grid}.work-card{padding:19px}.tag{color:#405166;background:#eef3f7;border-radius:5px;padding:5px 8px;font-size:10px;font-weight:700}.status{white-space:nowrap;color:#596a7c;background:#eef2f5;border-radius:20px;padding:5px 8px;font-size:10px;font-weight:700;display:inline-block}.s-active,.s-confirmed,.s-finished{color:#16805a;background:#e8f8f1}.s-in_progress,.s-review{color:#2375ae;background:#eaf4fc}.s-nonconforming,.s-open{color:#c03943;background:#fff0f0}.s-pending,.s-scheduled{color:#b76718;background:#fff4e8}.work-card h3{margin:17px 0 5px;font:700 16px Manrope}.work-card>p{color:var(--muted);margin:0 0 20px;font-size:12px}.mini-stats{border-top:1px solid var(--line);color:var(--muted);gap:20px;margin-top:17px;padding-top:14px;font-size:11px;display:flex}.mini-stats span{align-items:center;gap:6px;display:flex}.mini-stats svg{width:15px}.table-card{overflow:auto}.table-card table{border-collapse:collapse;width:100%;min-width:760px}.table-card th{text-align:left;color:#708092;text-transform:uppercase;letter-spacing:.7px;background:#f8fafc;padding:12px 17px;font-size:10px}.table-card td{border-top:1px solid var(--line);padding:14px 17px;font-size:12px}.table-card td>div:not(.table-actions){flex-direction:column;display:flex}.table-card td small{color:var(--muted);margin-top:3px}.low,.ok{align-items:center;gap:5px;font-size:11px;font-weight:600;display:inline-flex}.muted{color:var(--muted);font-size:11px}.low{color:var(--red)}.ok{color:var(--green)}.low svg,.ok svg{width:14px}.table-actions{gap:5px;display:flex}.table-actions button{border:1px solid var(--line);color:var(--green);background:#fff;border-radius:6px;padding:5px}.table-actions button:last-child{color:var(--red)}.table-actions svg{width:15px}.inline-actions,.phase-actions{align-items:center;gap:9px;display:flex}.phase-actions{justify-content:flex-end;margin:-8px 0 16px}.mini-button{border:1px solid var(--line);color:var(--blue);background:#fff;border-radius:6px;align-items:center;gap:5px;padding:6px;display:inline-flex}.mini-button svg{width:14px;height:14px}.mini-button.labeled{white-space:nowrap;font-size:10px;font-weight:700}.mini-button:disabled{opacity:.4;cursor:not-allowed}.table-actions.wide button{width:auto;color:var(--blue);align-items:center;gap:5px;font-size:10px;font-weight:700;display:flex}.file-button{position:relative;overflow:hidden}.file-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.text-link{color:var(--blue);padding:10px;font-size:12px;font-weight:600;text-decoration:none}.primary svg,.outline svg{width:17px;height:17px}.empty{text-align:center;color:var(--muted);padding:30px}.empty svg{width:32px}.kanban{grid-template-columns:repeat(7,minmax(220px,1fr));gap:12px;padding-bottom:15px;display:grid;overflow:auto}.column{background:#e9eef3;border-radius:10px;min-height:500px;padding:10px}.column-head{justify-content:space-between;align-items:center;padding:6px 4px 14px;font-size:12px;display:flex}.column-head span{background:#fff;border-radius:20px;place-items:center;width:23px;height:23px;display:grid}.piece{border:1px solid #dde4eb;border-top:3px solid var(--blue);background:#fff;border-radius:8px;margin-bottom:9px;padding:12px}.piece.blocked{border-top-color:var(--red)}.piece>div{justify-content:space-between;align-items:center;display:flex}.piece h4{margin:12px 0 4px;font-size:12px}.piece>span{color:var(--muted);font-size:10px}.piece>small{color:var(--muted);align-items:center;gap:4px;margin:10px 0;display:flex}.piece>small svg{width:13px}.piece footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding-top:8px;display:flex}.piece footer button{background:#eef3f7;border:0;border-radius:5px}.piece footer b{font-size:10px}.report-actions{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.report-actions span{color:var(--muted);font-size:12px}.report-filter{grid-template-columns:repeat(4,minmax(130px,1fr));align-items:end;gap:12px;margin-bottom:18px;padding:16px;display:grid}.report-filter label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;flex-direction:column;gap:6px;font-size:10px;font-weight:700;display:flex}.report-filter input,.report-filter select{border:1px solid var(--line);color:var(--text);text-transform:none;background:#fff;border-radius:7px;padding:10px}.export-buttons{grid-column:span 2;justify-content:flex-end;gap:7px;display:flex}.settings-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.settings-card{padding:21px}.settings-card h3{align-items:center;gap:8px;display:flex}.settings-card h3 svg{width:18px;color:var(--orange)}.settings-form{margin-top:20px}.full-card{grid-column:1/-1}.notice{color:#197f5a;background:#eaf9f3;border:1px solid #bfead9;border-radius:9px;align-items:center;gap:8px;margin-bottom:16px;padding:12px 14px;font-size:12px;display:flex}.notice svg{width:17px}.import-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px;display:grid}.import-grid article{border:1px solid var(--line);border-radius:9px;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:14px;display:grid}.import-grid article>svg{color:var(--green)}.import-grid article div{flex-direction:column;display:flex}.import-grid article a{color:var(--blue);margin-top:3px;font-size:10px}.import-grid article .file-button{grid-column:1/-1;justify-content:center;font-size:11px}.backup-list{max-height:300px;margin-top:15px;overflow:auto}.backup-list>button{border:0;border-top:1px solid var(--line);text-align:left;width:100%;color:var(--text);background:0 0;justify-content:space-between;padding:12px 2px;display:flex}.backup-list>button div{flex-direction:column;display:flex}.backup-list small{color:var(--muted);margin-top:4px}.backup-list svg{width:17px;color:var(--blue)}.cron-box{gap:8px;margin:18px 0;display:flex}.cron-box code{white-space:nowrap;background:#eef2f6;border-radius:7px;flex:1;padding:11px;font-size:10px;overflow:auto}.check-list{color:var(--muted);padding-left:20px;font-size:12px;line-height:1.9}.chart{max-width:900px}.bar-row{grid-template-columns:110px 1fr 90px;align-items:center;gap:12px;padding:13px 0;font-size:11px;display:grid}.bar-row>div{background:#edf1f5;border-radius:3px;height:13px;overflow:hidden}.bar-row i{background:linear-gradient(90deg, var(--navy2), var(--blue));border-radius:3px;height:100%;display:block}.bar-row b{text-align:right}.modal-back{z-index:100;background:#07111f99;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:min(620px,100%);max-height:90vh;padding:22px;overflow:auto;box-shadow:0 30px 80px #0005}.modal-head{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-head h3{margin:0;font:800 20px Manrope}.form-grid{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.form-grid .full{grid-column:1/-1}.form-grid textarea{resize:vertical;min-height:80px}.mobile{display:none}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1100px){.metrics,.cards-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.login{grid-template-columns:1fr 1fr}.hero-copy h1{font-size:45px}.report-filter{grid-template-columns:1fr 1fr}.export-buttons{grid-column:1/-1}.import-grid{grid-template-columns:1fr 1fr}}@media (width<=760px){.login{background:#fff;display:block}.login-art{display:none}.login-panel{min-height:100vh;padding:28px}.mobile-brand{align-items:center;gap:10px;margin-bottom:50px;display:flex}.shell aside{transition:all .25s;transform:translate(-100%)}.shell aside.open{transform:none}.app{margin-left:0}.mobile{display:grid}.shell aside .mobile{color:#fff;margin-left:auto}.scrim{z-index:25;background:#0007;position:fixed;inset:0}.app>header{gap:7px;height:65px;padding:0 15px}.user-meta,.head-actions>.icon{display:none}.content{padding:20px 14px 40px}.demo-banner{margin:12px 14px 0}.welcome,.section-title{align-items:flex-start}.welcome .outline{display:none}.welcome h2,.section-title h2{font-size:22px}.section-title .live{display:none}.metrics{grid-template-columns:1fr 1fr;gap:10px}.metric{gap:10px;padding:13px}.metric-icon{width:38px;height:38px}.metric strong{font-size:17px}.dashboard-grid{gap:12px}.card{padding:15px}.work-row{gap:9px}.work-numbers{display:none}.row-title{flex-direction:column}.cards-grid{grid-template-columns:1fr}.toolbar{align-items:stretch}.toolbar .primary{font-size:0}.toolbar .primary svg{margin:0}.phase-actions{flex-wrap:wrap;justify-content:flex-start;margin-top:0}.phase-actions .outline{padding:9px;font-size:11px}.text-link{font-size:11px}.kanban{margin-right:-14px}.form-grid{grid-template-columns:1fr}.form-grid label{grid-column:1}.report-actions{align-items:flex-start;gap:10px}.report-actions span{display:none}.bar-row{grid-template-columns:80px 1fr 75px}.settings-grid{grid-template-columns:1fr}.full-card{grid-column:auto}.import-grid,.report-filter{grid-template-columns:1fr}.export-buttons{grid-column:auto}.cron-box{flex-direction:column}.settings-card{padding:15px}.login-panel h2{font-size:28px}}@media (width<=430px){.metrics{grid-template-columns:1fr}.metric{min-height:78px}.head-actions{gap:6px}.toolbar .search{flex:1}}.scope-filters{flex-wrap:wrap;align-items:end;gap:16px;margin:14px 0 20px;display:flex}.scope-filters label{gap:7px;min-width:220px;font-size:12px;font-weight:600;display:grid}.scope-filters select{color:#25354c;background:#fff;border:1px solid #d6dfe9;border-radius:8px;max-width:390px;padding:10px 12px}.scope-filters p{color:#607086;margin:0;padding:10px 0;font-size:13px}.form-error{color:#b42318;background:#fff1f0;border:1px solid #fecaca;border-radius:8px;grid-column:1/-1;padding:12px}.import-result{background:#f3f7fb;border:1px solid #d6dfe9;border-radius:8px;margin:12px 0;padding:14px;font-size:13px}.import-result ul{max-height:180px;padding-left:20px;overflow:auto}.stage-summary{margin-top:22px;padding:22px}.stage-summary-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;margin:18px 0;display:grid}.stage-summary-grid div{background:#f4f7fb;border-radius:8px;gap:7px;padding:16px;display:grid}.stage-summary-grid b{font-size:25px}.stage-summary-grid span,.stage-summary-grid small{color:#607086;font-size:12px}.weight-total{color:#176449;background:#edf7f2;border-radius:8px;gap:6px;padding:14px;display:grid}.weight-total small{font-size:12px}.gate-status{gap:4px;padding-top:8px;display:grid}.approval{font-size:11px}.gate-notice{color:#93610a;background:#fff5df;border-radius:6px;padding:8px;font-size:11px}.production-actions{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.production-actions button{color:#254369;background:#f3f7fb;border:1px solid #ccd8e4;border-radius:6px;align-items:center;gap:5px;padding:7px;font-size:11px;display:flex}.mark-group{background:#edf2f7;border:1px solid #d7e0ea;border-radius:9px;margin-bottom:12px;padding:10px}.mark-group summary{cursor:pointer;font-size:13px}.mark-group summary small{color:#607086;margin-top:7px;display:block}.mark-group .piece{margin-top:12px}.table-actions.wide{flex-wrap:wrap}@media (width<=600px){.scope-filters label{min-width:100%}.scope-filters select{max-width:100%}}.filter-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:20px 0;display:grid}.filter-grid label{flex-direction:column;gap:6px;font-weight:600;display:flex}.filter-grid input,.filter-grid select{background:#fff;border:1px solid #dce3eb;border-radius:8px;width:100%;padding:10px}.form-grid fieldset{border:0;margin:0;padding:0}.filter-grid~.phase-actions{flex-wrap:wrap}
