:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#15213a;background:#f5f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.muted{color:#7d8ba2;line-height:1.55}.eyebrow{color:#168f88;font-size:11px;font-weight:800;letter-spacing:.16em;margin:0 0 9px}.brand-mark{font-size:36px;font-weight:900;letter-spacing:-.09em;color:#fff;line-height:1}.brand-mark span{color:#35d0bd}.app{display:flex;min-height:100vh}.sidebar{width:252px;background:#101d34;color:#b7c4d8;padding:29px 17px 20px;display:flex;flex-direction:column;flex:none}.sidebar .brand-mark{padding-left:13px}.side-label{font-size:9px;font-weight:700;letter-spacing:.18em;color:#6b7d99;margin:10px 0 43px;padding-left:15px}.sidebar nav{display:grid;gap:5px}.nav-link{padding:12px 15px;border-radius:9px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:13px;transition:background .2s,color .2s}.nav-link span{font-size:19px;width:21px;text-align:center;font-weight:400}.nav-link:hover{background:#223450;color:#fff}.nav-link.active{background:#1e756f;color:#fff;box-shadow:inset 3px 0 #53dfc6}.nav-heading{font-size:10px;color:#667c99;letter-spacing:.13em;font-weight:800;padding:31px 15px 9px}.sidebar-bottom{margin-top:auto;border-top:1px solid #2a3850;padding:21px 6px 0;display:flex;align-items:center;gap:9px}.user-avatar{width:34px;height:34px;border-radius:10px;background:#217d76;color:#d9fff9;display:grid;place-items:center;font-weight:800}.user-meta{min-width:0;flex:1}.user-meta strong,.user-meta small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-meta strong{font-size:12px;color:#fff}.user-meta small{font-size:10px;color:#7d91ac;margin-top:2px}.logout{border:0;color:#90a5c0;background:none;font-size:20px}.main-area{min-width:0;flex:1}.topbar{height:102px;background:#fff;border-bottom:1px solid #e8edf4;display:flex;align-items:center;justify-content:space-between;padding:19px 35px}.topbar-kicker{font-size:10px;font-weight:800;color:#8b9ab0;letter-spacing:.14em}.topbar h1{font-size:25px;letter-spacing:-.04em;margin:4px 0 0}.topbar-right{display:flex;gap:20px;align-items:center;color:#7d8ba2;font-size:12px}.live{background:#e8f7f3;color:#188577;border-radius:50px;padding:9px 12px;font-size:10px;font-weight:800;letter-spacing:.06em}.live i{width:6px;height:6px;border-radius:50%;background:#25b597;display:inline-block;margin-right:5px}.content{max-width:1540px;margin:auto;padding:32px 35px 70px}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:41px}.stat{background:#fff;border:1px solid #e8edf4;border-radius:13px;padding:22px;display:flex;align-items:center;gap:15px;box-shadow:0 3px 13px #1a325008}.stat-icon{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;font-size:24px;font-weight:700;flex:none}.stat-icon.teal{background:#e6f5f3;color:#168b83}.stat-icon.green{background:#e8f8ef;color:#17a565}.stat-icon.red{background:#fff0ef;color:#e64845}.stat-icon.amber{background:#fff6e8;color:#df9a27}.stat small{display:block;color:#8c9bb0;font-size:10px;letter-spacing:.09em;font-weight:800;white-space:nowrap}.stat strong{display:block;font-size:27px;line-height:1.2;margin-top:5px;letter-spacing:-.04em}.stat strong.stat-time{font-size:21px}.section-intro{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:21px}.section-intro h2,.card h2{margin:0;font-size:22px;letter-spacing:-.04em}.section-intro .muted{font-size:13px;margin:7px 0 0}.section-intro.compact{align-items:center}.section-intro.compact h2{font-size:21px}.legend{display:flex;gap:22px;color:#7a889d;font-size:12px;margin:0 0 17px}.legend span{display:flex;align-items:center;gap:7px}.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.green-dot{background:#23b474}.red-dot{background:#ed5451}.gray-dot{background:#a8b2c1}.map-panel{border:1px solid #e5ebf3;background:#fff;border-radius:14px;padding:23px 25px 28px;margin-bottom:17px;box-shadow:0 5px 17px #1a325008}.sector-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf0f5;padding-bottom:18px;margin-bottom:20px}.sector-head>div{display:flex;align-items:center;gap:12px}.sector-index{background:#e8f3f2;color:#138078;font-size:11px;font-weight:800;padding:7px;border-radius:7px}.sector-head h3{margin:0;font-size:17px}.sector-count{font-size:11px;color:#8c9bb0;font-weight:700}.machine-grid{display:grid;gap:10px}.gramp-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-width:580px}.production-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.machine{position:relative;border:1px solid #c9efdf;background:#edfbf3;border-radius:9px;min-height:68px;color:#12744d;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;padding:9px 13px;transition:transform .16s,box-shadow .16s}.machine:hover{transform:translateY(-2px);box-shadow:0 6px 15px #1b445520}.machine:focus-visible{outline:3px solid #258f87;outline-offset:2px}.machine .machine-code{font-size:14px;font-weight:850}.machine .machine-status{font-size:10px;margin-top:3px;font-weight:600;opacity:.75}.machine.stopped{background:#fff0f0;border-color:#ffcccc;color:#c72d35}.machine.inactive{background:#f0f2f5;border-color:#e0e5eb;color:#8792a2}.machine.stopped:after{content:"";width:8px;height:8px;position:absolute;right:10px;top:10px;border-radius:50%;background:#ef5054;box-shadow:0 0 0 3px #fbd9dc}.recent-panel{margin-top:34px}.badge{background:#e7f3f2;color:#218a82;padding:8px 11px;border-radius:99px;font-size:11px;font-weight:800}.open-item{background:#fff;border:1px solid #e5ebf3;border-left:3px solid #e94d50;border-radius:10px;padding:14px 18px;display:flex;align-items:center;gap:17px;margin-top:9px}.open-code{background:#fff1f1;color:#d43d42;border-radius:8px;padding:11px;font-weight:850;font-size:13px}.open-info{flex:1}.open-info strong{display:block;font-size:13px}.open-info small{display:block;color:#8491a3;margin-top:4px}.open-time{font-size:12px;color:#9aa5b5}.empty{padding:25px;color:#8d9bae;text-align:center;background:#fff;border:1px dashed #d8e1ea;border-radius:10px;font-size:13px}.button{border:0;border-radius:8px;padding:12px 16px;font-weight:750;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:42px}.button.primary{background:#177e78;color:#fff}.button.primary:hover{background:#116a65}.button.ghost{background:#fff;color:#17817b;border:1px solid #bcdedb}.button.small{min-height:34px;padding:8px 11px;font-size:11px}.flash{padding:13px 17px;background:#e7f7ef;border:1px solid #b7e8ce;color:#247a4d;border-radius:9px;margin-bottom:22px;font-size:13px}.flash.error{background:#fff0f0;border-color:#f3c5c5;color:#b7363c}.card{background:#fff;border:1px solid #e5ebf3;border-radius:13px;padding:25px;box-shadow:0 4px 18px #18324d08}.card-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.card-heading h2{font-size:19px}.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px;align-items:start}.table-wrap{overflow-x:auto}.scroll-table{max-height:600px;overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:#8b98aa;font-size:10px;letter-spacing:.08em;padding:12px 10px;border-bottom:1px solid #e7ecf2;white-space:nowrap}td{padding:13px 10px;border-bottom:1px solid #eff2f5;vertical-align:top;line-height:1.45}td strong,td small{display:block}td small{color:#8997aa;margin-top:3px}.status{padding:5px 8px;border-radius:50px;white-space:nowrap;font-size:10px;font-weight:800}.status-red{background:#fff0f0;color:#d93b41}.status-green{background:#e9f8ee;color:#15925f}.status-gray{background:#f0f2f4;color:#818c99}.text-link{color:#168a83;font-weight:700;font-size:12px}.text-link:hover{text-decoration:underline}.form-card h2{font-size:19px}.form-card>.muted{font-size:12px;margin-top:5px}.stack{display:grid;gap:14px;margin-top:20px}.stack label{font-size:12px;font-weight:750;color:#4b5a70;display:grid;gap:6px}.stack input,.stack select,.stack textarea,.dialog-form textarea{width:100%;border:1px solid #dce4ed;border-radius:7px;padding:11px 12px;outline:none;background:#fff;color:#24334a;font-size:13px}.stack input:focus,.stack select:focus,.stack textarea:focus,.dialog-form textarea:focus{border-color:#1eaaa0;box-shadow:0 0 0 3px #1eaaa01a}.stack .check{display:flex;align-items:center;gap:8px}.check input{width:auto}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.settings-card{max-width:520px;padding:32px}.settings-icon{width:50px;height:50px;border-radius:13px;background:#e7f4f2;color:#16877f;display:grid;place-items:center;font-size:30px;margin-bottom:25px}.settings-card .muted{font-size:13px}.settings-card form{max-width:250px}.machine-dialog{border:0;border-radius:16px;box-shadow:0 25px 70px #0b1f3970;width:min(440px,calc(100% - 30px));padding:26px;color:#15213a}.machine-dialog::backdrop{background:#091e35a8}.dialog-top{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #e7edf4;padding-bottom:18px;margin-bottom:20px}.dialog-top h2{margin:0;font-size:25px}.dialog-x{border:0;background:#f0f3f6;border-radius:7px;font-size:22px;color:#7c899a;width:30px;height:30px}.dialog-status{font-weight:800;font-size:12px;padding:8px 10px;border-radius:7px;display:inline-block;margin-bottom:15px}.dialog-detail{font-size:13px;color:#59697f;line-height:1.6}.dialog-detail strong{color:#20314b}.dialog-form{display:grid;gap:10px;margin-top:20px}.dialog-form label{font-size:12px;font-weight:750}.dialog-form textarea{min-height:100px;resize:vertical}.dialog-form .button{width:100%}.toast-area{position:fixed;right:22px;bottom:20px;z-index:20;width:min(360px,calc(100vw - 44px))}.toast{background:#10223a;color:#fff;padding:15px 17px;border-left:4px solid #eb5256;border-radius:9px;box-shadow:0 10px 35px #0b203b50;margin-top:9px}.toast strong{font-size:13px}.toast p{font-size:12px;color:#c3d0df;margin:5px 0 0}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-card{padding:9vh max(35px,12vw);display:flex;flex-direction:column;justify-content:center;background:#fff}.login-card .brand-mark{color:#112238;margin-bottom:58px}.login-card h1{font-size:clamp(33px,4vw,55px);line-height:1.06;letter-spacing:-.06em;margin:0 0 14px;max-width:420px}.login-card>.muted{font-size:14px;max-width:350px}.login-card .stack{max-width:350px;margin-top:25px}.login-card .button{margin-top:6px}.login-side{background:radial-gradient(circle at 65% 43%,#245c66 0,#112c46 38%,#0d1e33 80%);color:#fff;padding:45px 55px;display:flex;flex-direction:column;justify-content:space-between}.side-top,.side-bottom{letter-spacing:.2em;color:#82a2b3;font-size:11px;font-weight:800}.side-content{padding:20px}.side-content p{color:#6fd7c6;font-size:15px}.side-content h2{font-size:clamp(43px,5vw,74px);line-height:1.04;letter-spacing:-.07em;margin:10px 0}.pulse-dot{width:55px;height:55px;background:#30d1b4;border-radius:50%;box-shadow:0 0 0 15px #30d1b425,0 0 0 35px #30d1b40c;margin-bottom:50px}@media(max-width:1100px){.summary{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:1fr}.production-grid{gap:6px}.machine{padding:8px;min-height:60px}.machine .machine-code{font-size:12px}.machine .machine-status{font-size:9px}}@media(max-width:760px){.app{display:block}.sidebar{width:100%;padding:15px;display:block}.sidebar .brand-mark{font-size:27px;padding:0}.side-label,.sidebar-bottom,.nav-heading{display:none}.sidebar nav{display:flex;overflow-x:auto;margin-top:14px}.nav-link{white-space:nowrap;font-size:11px;padding:9px}.nav-link span{display:none}.topbar{height:auto;padding:20px;align-items:flex-start}.topbar h1{font-size:21px}.topbar-right{display:none}.content{padding:20px 14px 45px}.summary{gap:8px;margin-bottom:27px}.stat{padding:12px;gap:9px}.stat-icon{width:30px;height:30px;font-size:17px}.stat small{font-size:8px;white-space:normal}.stat strong{font-size:21px}.stat strong.stat-time{font-size:15px}.section-intro{align-items:start;flex-direction:column}.section-intro h2{font-size:20px}.map-panel{padding:15px;overflow-x:auto}.gramp-grid{min-width:380px}.production-grid{min-width:660px}.login-wrap{grid-template-columns:1fr}.login-card{min-height:100vh;padding:35px}.login-side{display:none}}
