:root{--gold:#dfa000;--dark:#111;--blue:#1e4e79;--green:#23864b;--red:#b83b35;--bg:#f3f4f5;--card:#fff;--line:#e0e3e6;--muted:#6d747a}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:#17191b;background:var(--bg)}.topbar{height:64px;background:#101010;color:#fff;border-bottom:4px solid var(--gold);display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:30}.brand{font-size:22px;font-weight:900;color:#fff;text-decoration:none}.brand span{color:var(--gold)}.topuser{font-size:13px}.topuser a{color:#fff}.appframe{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 64px)}.sidebar{background:#191919;padding:12px 9px;position:sticky;top:64px;height:calc(100vh - 64px);overflow:auto}.sidebar a{display:block;color:#eee;text-decoration:none;padding:9px 11px;border-radius:8px;font-size:13px}.sidebar a:hover{background:#ffffff12;color:#fff}.sidehead{color:var(--gold);font-weight:900;font-size:10px;letter-spacing:.12em;padding:14px 11px 5px}.page{padding:20px;max-width:1500px;width:100%;overflow:hidden}.page.solo{margin:auto;max-width:1000px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.eyebrow{font-size:10px;letter-spacing:.13em;font-weight:900;color:var(--gold)}h1{margin:3px 0;font-size:28px}.muted{color:var(--muted)}.panel{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:15px;box-shadow:0 2px 8px #00000008;margin-bottom:14px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;margin-bottom:14px}.metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px}.metric b{display:block;font-size:29px;color:var(--blue)}.metric span{font-size:12px;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:11px}.machine-card{border-left:5px solid var(--green)}.row{display:flex;justify-content:space-between;gap:10px}.item{font-weight:800;margin-top:8px}.detail{font-size:13px;margin-top:8px}.tiny{font-size:11px;color:var(--muted);margin-top:6px}.status{font-size:10px;font-weight:900;padding:4px 7px;border-radius:12px}.run{background:#dff4e6;color:#176a37}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:11px 13px}.form-grid label{font-size:12px;font-weight:700}.form-grid input,.form-grid select,.search input,.login-card input{width:100%;padding:10px;border:1px solid #cfd4d8;border-radius:8px;background:#fff;font-size:14px;margin-top:5px}.span2{grid-column:span 2}.checkline{display:flex!important;gap:8px;align-items:center;padding-top:24px}.checkline input{width:auto!important;margin:0!important}.btn{border:0;border-radius:8px;padding:10px 14px;text-decoration:none;font-weight:800;cursor:pointer;display:inline-block}.btn.primary{background:var(--gold);color:#111}.btn.secondary{background:var(--blue);color:#fff}.btn.danger{background:var(--red);color:#fff}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{font-size:12px;text-align:left;padding:9px;border-bottom:1px solid var(--line)}th{background:#f4f5f6;font-weight:800;position:sticky;top:0}tr.selected{background:#fff3d0}.split{display:grid;grid-template-columns:1.3fr 1fr;gap:14px}.stage{display:flex;justify-content:space-between;padding:9px;border-bottom:1px solid var(--line)}.stage:last-child{border:0}.kv{display:grid;grid-template-columns:100px 1fr;gap:5px 10px;font-size:12px;margin-top:10px}.kv span{color:var(--muted)}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs a{padding:7px 10px;border:1px solid var(--line);background:#fff;border-radius:7px;text-decoration:none;color:#222;font-size:12px}.flash{padding:10px 12px;border-radius:8px;margin-bottom:12px}.flash.error{background:#ffe7e4;color:#8a2722}.flash.success{background:#e2f5e8;color:#176b37}.empty{text-align:center;color:var(--muted);padding:25px}.login-wrap{min-height:75vh;display:grid;place-items:center}.login-card{width:min(420px,94vw);padding:26px}.login-card label{display:block;font-size:13px;font-weight:700;margin-top:10px}.login-card .btn{width:100%;margin-top:16px}.section-title{font-weight:900;margin-bottom:10px}.search{display:flex;gap:6px}.search input{min-width:250px;margin:0}@media(max-width:900px){.appframe{grid-template-columns:1fr}.sidebar{position:static;height:auto;display:flex;overflow:auto;gap:3px;padding:7px}.sidebar .sidehead{display:none}.sidebar a{white-space:nowrap}.metrics{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.page{padding:12px}}@media(max-width:520px){.topbar{padding:0 11px}.brand{font-size:18px}.topuser{font-size:11px}.form-grid{grid-template-columns:1fr}.span2{grid-column:span 1}.metrics{grid-template-columns:repeat(2,1fr)}h1{font-size:23px}.page-head{align-items:flex-start;flex-direction:column}.search{width:100%}.search input{min-width:0}.sidebar{font-size:11px}}
/* Process master: machine multi-select */
.span4{grid-column:1 / -1}.machine-picker-wrap{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fafafa}.machine-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.field-title{font-size:12px;font-weight:900}.field-help{font-size:11px;color:var(--muted);margin-top:2px}.picker-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.btn.mini{padding:6px 9px;font-size:11px}.btn.light{background:#fff;border:1px solid var(--line);color:#222}.selected-count{font-size:11px;font-weight:800;color:var(--blue);padding-left:4px}.machine-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;max-height:230px;overflow:auto;padding:2px}.machine-choice{display:flex!important;align-items:center;gap:9px;padding:10px!important;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;font-weight:600!important}.machine-choice:hover{border-color:#d5a000;background:#fffaf0}.machine-choice:has(input:checked){border-color:var(--gold);background:#fff4d6}.machine-choice input{width:auto!important;margin:0!important;accent-color:var(--gold)}.machine-choice span{display:flex;flex-direction:column;gap:2px}.machine-choice b{font-size:12px}.machine-choice small{font-size:10px;color:var(--muted);font-weight:500}.empty-picker{padding:15px;text-align:center;color:var(--muted);background:#fff;border-radius:8px;border:1px dashed var(--line)}@media(max-width:700px){.machine-picker-head{align-items:flex-start;flex-direction:column}.span4{grid-column:1 / -1}}
.field-note{display:block;font-size:10px;color:var(--muted);font-weight:500;margin-top:4px}

/* Component master: V7.16-style process sequence picker */
.process-sequence-wrap{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fafafa}.process-sequence-grid{display:grid;grid-template-columns:minmax(250px,1fr) 120px minmax(280px,1fr);gap:12px;align-items:stretch}.process-column{min-width:0}.sequence-title{font-size:12px;font-weight:900;margin-bottom:7px}.process-choice-list,.sequence-list{min-height:190px;max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:9px;background:#fff;padding:7px}.process-choice{display:flex!important;align-items:center;gap:9px;padding:9px!important;border-bottom:1px solid #eee;cursor:pointer;font-weight:600!important}.process-choice:last-child{border-bottom:0}.process-choice:hover{background:#fffaf0}.process-choice input{width:auto!important;margin:0!important;accent-color:var(--gold)}.process-choice span{display:flex;flex-direction:column;gap:1px}.process-choice b{font-size:12px}.process-choice small{font-size:10px;color:var(--muted);font-weight:500}.sequence-controls{display:flex;flex-direction:column;justify-content:center;gap:7px}.sequence-controls .btn{width:100%}.control-gap{height:12px}.sequence-item{display:block;width:100%;text-align:left;border:1px solid transparent;background:#fff;padding:9px 10px;border-radius:7px;margin-bottom:5px;cursor:pointer;font:inherit;font-size:12px}.sequence-item:hover{background:#fffaf0;border-color:#ead39b}.sequence-item.selected{background:#fff3cd;border-color:var(--gold);font-weight:800}.sequence-list:empty:before{content:'No processes selected';display:block;text-align:center;color:var(--muted);padding:70px 10px;font-size:12px}@media(max-width:820px){.process-sequence-grid{grid-template-columns:1fr}.sequence-controls{flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.sequence-controls .btn{width:auto}.control-gap{display:none}}

/* Phase 3 - V7.15 source port */
.brand-with-logo{display:flex;align-items:center;gap:8px}.brand-with-logo img{height:42px;width:auto;border-radius:4px}.brand-text{font-size:20px;font-weight:850}.badge{display:inline-block;min-width:20px;padding:2px 6px;border-radius:999px;background:#d99a00;color:#111;font-size:11px;text-align:center;font-weight:900}.notice{padding:12px 14px;border-radius:10px;margin-bottom:14px;border:1px solid var(--line)}.notice.warning{background:#fff4d6;border-color:#e7bd58}.notice.success{background:#e4f5e9;border-color:#8bc69d}.approval-card{margin-bottom:14px}.approval-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.approval-meta{color:var(--muted);font-size:12px;margin-top:4px}.approval-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px}.approval-compare pre{white-space:pre-wrap;word-break:break-word;background:#f6f7f8;padding:10px;border-radius:8px;border:1px solid var(--line);font-size:11px}.approval-actions{display:flex;gap:12px;flex-wrap:wrap}.approval-actions form{display:flex;gap:8px;align-items:center;flex:1}.approval-actions input{flex:1;min-width:180px;padding:9px;border:1px solid #ccd2d6;border-radius:8px}.status.pending{background:#fff0b8;color:#725100;padding:4px 8px;border-radius:12px;font-size:11px;font-weight:900}.inline-delete{display:inline-flex;gap:5px;align-items:center;margin-left:4px}.inline-delete input{width:115px;padding:5px;border:1px solid #d2d5d8;border-radius:6px;font-size:11px}.inline-pay{display:grid;grid-template-columns:90px 80px 90px auto;gap:4px;align-items:center}.inline-pay input,.inline-pay select{min-width:0;padding:5px;border:1px solid #d2d5d8;border-radius:6px;font-size:11px}.readout{padding:10px;background:#f6f7f8;border:1px solid #d1d4d7;border-radius:8px;color:var(--muted);min-height:39px}.flow-note{padding:9px 11px;background:#f6f7f8;border-radius:8px;color:var(--muted);font-size:12px}.form-grid .span3{grid-column:1/-1}.second{margin-top:22px}
@media(max-width:760px){.brand-with-logo img{height:34px}.brand-text{font-size:16px}.approval-compare{grid-template-columns:1fr}.approval-actions{display:block}.approval-actions form{margin-top:8px}.inline-delete{display:flex;margin:4px 0}.inline-pay{grid-template-columns:1fr 1fr}.inline-pay input,.inline-pay select{width:100%}}
.login-split{min-height:78vh;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(340px,.6fr);gap:20px;align-items:center}.login-visual{border-radius:16px;overflow:hidden;box-shadow:0 10px 32px #0002}.login-visual img{display:block;width:100%;height:auto}.login-split .login-card{width:100%}@media(max-width:900px){.login-split{grid-template-columns:1fr}.login-visual{display:none}}

/* Phase 4 - PC control room + owner mobile dashboard */
.status.idle{background:#eef1f3;color:#55616a}.qty-link{color:var(--blue);text-decoration:none}.qty-link:hover{text-decoration:underline}.stock-readout{font-weight:900;color:var(--blue);background:#f6f7f8!important}.short-cleared{color:#188038;font-weight:800}.assignment-summary{grid-column:1/-1;padding:10px 12px;border:1px solid #d8dde1;border-radius:8px;background:#f6f7f8;font-size:12px}.control-table table{min-width:980px}.control-table th,.control-table td{padding:7px 9px;white-space:nowrap}.machine-row{cursor:pointer}.machine-row:hover{background:#fff7df}.machine-running{border-left:4px solid var(--green)}.machine-idle{border-left:4px solid #adb5bd}
.dashboard-actions{display:grid;grid-template-columns:repeat(4,minmax(145px,1fr));gap:10px;margin-bottom:12px}.dash-card{border:1px solid var(--line);background:#fff;border-radius:13px;padding:14px;text-align:left;cursor:pointer;font:inherit;box-shadow:0 2px 8px #00000008}.dash-card b{display:block;font-size:28px;color:var(--blue)}.dash-card span{display:block;font-weight:850;margin-top:3px}.dash-card small{display:block;color:var(--muted);margin-top:4px}.dash-card.active,.dash-card:hover{border-color:var(--gold);background:#fffaf0}.dash-panel{display:none;background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px}.dash-panel.active{display:block}.mobile-list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 5px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}.mobile-list-row:last-child{border-bottom:0}.mobile-list-row>div:first-child{min-width:0}.mobile-list-row b{display:block}.mobile-list-row span,.mobile-list-row small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.mobile-list-row .right{text-align:right;flex:0 0 auto}.mobile-list-row:hover{background:#fffaf0}.employee-group{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden}.employee-name{background:#f5f6f7;padding:8px 10px;font-weight:900}.employee-name span{float:right;font-size:11px;color:var(--muted)}.report-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px}.report-card{display:block;background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px;text-decoration:none;color:inherit;box-shadow:0 2px 8px #00000008}.report-card:hover{border-color:var(--gold);background:#fffaf0}.report-card b{display:block;font-size:30px;color:var(--blue)}.report-card span{display:block;font-weight:850;margin-top:5px}.report-detail table{min-width:max-content}
@media(max-width:900px){.dashboard-actions{grid-template-columns:repeat(2,1fr)}.report-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.mobile-dashboard .page-head{margin-bottom:10px}.dashboard-actions{grid-template-columns:repeat(2,1fr);gap:8px}.dash-card{padding:11px}.dash-card b{font-size:23px}.dash-card span{font-size:12px}.dash-card small{font-size:10px}.dash-panel{padding:9px}.mobile-list-row{padding:10px 3px}.report-grid{grid-template-columns:1fr 1fr}.report-card{padding:13px}.report-card b{font-size:24px}}

/* Phase 4.2 - collapsible sidebar navigation */
.side-link{display:flex!important;align-items:center;gap:7px;color:#eee;text-decoration:none;padding:9px 11px;border-radius:8px;font-size:13px;margin:2px 0}.side-link:hover{background:#ffffff12;color:#fff}.side-link.active{background:#2b2b2b;color:#fff;box-shadow:inset 3px 0 0 var(--gold)}
.sidegroup{margin:3px 0}.sidegroup-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;background:transparent;color:#eee;border-radius:8px;padding:10px 11px;cursor:pointer;font:inherit;font-size:13px;font-weight:800;text-align:left}.sidegroup-toggle:hover{background:#ffffff12}.sidegroup.open>.sidegroup-toggle{background:#232323;color:var(--gold)}.sidegroup-label{min-width:0}.sidegroup-chevron{font-size:22px;line-height:14px;transition:transform .18s ease;color:#999}.sidegroup.open .sidegroup-chevron{transform:rotate(90deg);color:var(--gold)}.sidegroup-menu{display:none;padding:3px 0 5px 13px}.sidegroup.open .sidegroup-menu{display:block}.side-link.sub{font-size:12px;padding:8px 10px 8px 18px;color:#d9d9d9;position:relative}.side-link.sub:before{content:'';position:absolute;left:6px;top:50%;width:5px;height:1px;background:#777}.side-link.sub.active:before{background:var(--gold);width:7px}.sidebar>.sidehead{display:none}

/* Phase 4.2 - full screen login */
.auth-body{background:#050505;overflow:hidden}.auth-main{width:100%;min-height:100vh}.auth-main>.flash{position:fixed;z-index:20;top:18px;left:50%;transform:translateX(-50%);width:min(520px,calc(100vw - 30px));box-shadow:0 10px 30px #0008}.login-full{position:relative;min-height:100vh;width:100%;overflow:hidden;background:#050505;display:flex;align-items:center;justify-content:flex-end;padding:clamp(24px,5vw,80px)}.login-bg-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 28%;transform:scale(1.16);filter:saturate(.93) contrast(1.04)}.login-bg-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.10) 0%,rgba(0,0,0,.16) 44%,rgba(0,0,0,.66) 70%,rgba(0,0,0,.88) 100%),linear-gradient(180deg,rgba(0,0,0,.06) 0%,rgba(0,0,0,.08) 55%,rgba(3,3,3,.94) 72%,#050505 100%)}.login-corner-brand{position:absolute;z-index:3;left:clamp(22px,4vw,64px);top:clamp(20px,4vw,48px);display:flex;align-items:center;gap:12px;color:#fff;text-shadow:0 2px 12px #000}.login-corner-brand img{width:58px;height:58px;object-fit:contain;border-radius:9px;background:#fff}.login-corner-brand strong{display:block;font-size:22px;letter-spacing:-.02em}.login-corner-brand strong span{color:var(--gold)}.login-corner-brand small{display:block;color:#ddd;font-size:10px;letter-spacing:.18em;margin-top:4px}.login-glass-card{position:relative;z-index:4;width:min(430px,100%);padding:34px 34px 28px;background:rgba(8,8,8,.78);border:1px solid rgba(223,160,0,.62);border-radius:18px;box-shadow:0 24px 80px #000c,inset 0 1px 0 #ffffff12;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff}.login-kicker{font-size:10px;letter-spacing:.20em;font-weight:900;color:var(--gold);margin-bottom:8px}.login-glass-card h1{font-size:34px;margin:0 0 7px;color:#fff}.login-glass-card p{margin:0 0 22px;color:#c9c9c9;font-size:14px}.login-glass-card label{display:block;font-size:12px;font-weight:800;color:#f1f1f1;margin:13px 0 6px}.login-glass-card input{width:100%;height:48px;border-radius:10px;border:1px solid #ffffff2c;background:#ffffff10;color:#fff;padding:0 13px;font-size:14px;outline:none}.login-glass-card input::placeholder{color:#aaa}.login-glass-card input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(223,160,0,.15);background:#ffffff16}.login-submit{width:100%;height:48px;margin-top:21px;border:0;border-radius:10px;background:linear-gradient(180deg,#f3b600,#d89400);color:#111;font-weight:900;font-size:15px;cursor:pointer;box-shadow:0 8px 24px rgba(223,160,0,.22)}.login-submit:hover{filter:brightness(1.06)}.login-security{text-align:center;color:#aaa;font-size:10px;margin-top:16px;letter-spacing:.03em}.login-footer-brand{position:absolute;z-index:3;left:clamp(22px,4vw,64px);bottom:clamp(22px,4vw,48px);color:#d7a72b;font-size:11px;letter-spacing:.28em;font-weight:800}.login-split{display:none!important}

@media(max-width:900px){.sidebar{display:block;position:static;height:auto;max-height:none;overflow:visible;padding:8px}.sidegroup-menu{padding-left:9px}.login-full{justify-content:center;padding:24px}.login-bg-image{transform:scale(1.28);object-position:42% 22%}.login-bg-shade{background:linear-gradient(180deg,rgba(0,0,0,.28) 0%,rgba(0,0,0,.50) 43%,rgba(3,3,3,.95) 70%,#050505 100%)}.login-corner-brand{left:20px;top:20px}.login-footer-brand{left:50%;transform:translateX(-50%);bottom:18px;white-space:nowrap}.login-glass-card{margin-top:120px;width:min(430px,100%);padding:28px 24px}.login-corner-brand strong{font-size:18px}.login-corner-brand img{width:48px;height:48px}}
@media(max-width:520px){.login-full{padding:16px}.login-glass-card{margin-top:112px;padding:25px 20px 23px;border-radius:15px}.login-glass-card h1{font-size:28px}.login-footer-brand{font-size:9px;letter-spacing:.18em}.login-bg-image{transform:scale(1.42);object-position:40% 12%}}

/* Phase 4.3 - user & role administration */
.admin-actions,.row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.row-actions form{margin:0}.btn[disabled]{opacity:.42;cursor:not-allowed;filter:grayscale(.4)}.form-card{max-width:820px}.form-card>label{display:block;font-size:12px;font-weight:800;margin:12px 0 5px}.form-card>input{width:100%;padding:11px 12px;border:1px solid #cfd4d8;border-radius:8px;background:#fff;font-size:14px}.checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin:7px 0 18px}.check{display:flex;align-items:center;gap:8px;background:#fafafa;border:1px solid var(--line);border-radius:8px;padding:9px 10px;font-size:12px;font-weight:700}.check input{accent-color:var(--gold)}.role-permission-title{margin-top:18px}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:8px;margin:8px 0 18px;max-height:460px;overflow:auto;padding:2px}.permission-choice{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--line);border-radius:9px;padding:10px;background:#fafafa;cursor:pointer}.permission-choice:hover{border-color:#d4ad45;background:#fffaf0}.permission-choice input{margin-top:3px;accent-color:var(--gold)}.permission-choice span{display:flex;flex-direction:column;gap:2px}.permission-choice b{font-size:11px}.permission-choice small{font-size:10px;color:var(--muted);font-weight:500}
