:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#233040;background:#f3f5f7;font-size:14px;font-synthesis:none;--muted:#728091;--line:#e3e8ee;--accent:#087e8b;--dark:#152936}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}a{color:var(--accent)}[hidden]{display:none!important}h1,h2,h3,h4,p{margin:0}h1{font-size:32px;letter-spacing:-1px;margin:6px 0 9px}h2{font-size:23px;letter-spacing:-.5px}button{border:0;border-radius:9px;padding:10px 15px;font-weight:600;transition:background .15s}button:focus-visible,a:focus-visible{outline:3px solid #59c7d8;outline-offset:3px}.primary{background:var(--accent);color:white}.primary:hover{background:#066974}.secondary{background:white;color:#33475a;border:1px solid #cfd8e2}.secondary:hover{background:#eef5f7}.quiet{background:transparent;color:#5b6e81;padding:7px 10px}.quiet:hover{background:#e9eef3}.danger{background:#fce8e7;color:#a82e29}.muted{color:var(--muted);line-height:1.6}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.6px;color:#64788a}.topbar{min-height:76px;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--line);padding:12px 34px;gap:18px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:17px;font-weight:800;color:var(--dark);letter-spacing:1px}.brand b{display:block;letter-spacing:0;font-size:12px;color:#6f8090;margin-top:3px;font-weight:500}.brand-mark{display:inline-flex;align-items:center;justify-content:center;background:var(--dark);color:white;border-radius:12px;font-size:38px;font-weight:900;letter-spacing:-3px;width:94px;height:72px;gap:5px}.brand-mark span{writing-mode:vertical-rl;font-size:9px;letter-spacing:1px;color:#57d4d2}.brand-mark.compact{font-size:30px;width:43px;height:43px;border-radius:10px}.session-info{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:12px}.session-info a{font-weight:600}.connection{color:var(--muted);font-size:11px}.connection.online{color:#25816c}.connection.offline{color:#b24b2f}.workspace{max-width:1580px;margin:auto;padding:32px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:26px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:26px}.stat{background:white;border:1px solid var(--line);border-radius:12px;padding:17px 22px;display:flex;justify-content:space-between;align-items:center;text-align:left;border-left:4px solid #e8b655}.stat strong{font-size:29px;font-weight:750}.stat span{color:#6b7d8d;font-size:12px}.stat.printing{border-left-color:#3098c4}.stat.held{border-left-color:#db8059}.stat.completed{border-left-color:#4baf92}.queue-layout{display:grid;grid-template-columns:minmax(290px,360px) minmax(0,1fr);gap:22px;align-items:start}.queue-panel,.detail-panel{border:1px solid var(--line);background:white;border-radius:14px;overflow:hidden}.filters{padding:18px;background:#fbfcfd;border-bottom:1px solid var(--line)}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #d7dfe7;border-radius:8px;background:white;color:#26394b;outline:none}input:focus,select:focus,textarea:focus{border-color:#36a7b2;box-shadow:0 0 0 3px #0c899315}textarea{resize:vertical;min-height:75px}.filter-row{display:flex;gap:9px;margin-top:10px}.filter-row select{font-size:12px;padding:9px 8px}.queue-caption{display:flex;justify-content:space-between;gap:10px;padding:14px 18px;font-size:11px;border-bottom:1px solid var(--line)}.queue-caption span{color:#8b97a4}.queue{max-height:740px;overflow:auto}.job-card{display:block;position:relative;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:17px 20px;background:white}.job-card:hover{background:#f7fbfc}.job-card.selected{background:#edf8f9;box-shadow:inset 4px 0 var(--accent)}.job-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:10px}.job-number{font-size:11px;color:#8291a0;font-weight:700}.badge{display:inline-flex;align-items:center;border-radius:5px;padding:5px 8px;font-size:10px;font-weight:700;white-space:nowrap;line-height:1}.badge.waiting{background:#fff4d8;color:#9c6e17}.badge.printing{background:#e6f3fc;color:#2479a2}.badge.held{background:#fff0e6;color:#bc633b}.badge.completed{background:#e7f6ef;color:#27785d}.badge.cancelled{background:#eeeef1;color:#7b7b85}.job-card h3{font-size:15px;font-weight:650;margin-bottom:8px;overflow-wrap:anywhere}.job-meta{display:flex;gap:9px;align-items:center;font-size:11px;color:#738393}.type-tag{font-size:9px;letter-spacing:.6px;border:1px solid #d6e0e9;padding:3px 5px;border-radius:4px;color:#62788b}.job-time,.job-operator{font-size:10px;color:#8b99a7;font-weight:400;margin-top:10px}.job-operator{color:#4e7b81;margin-top:6px}.pagination{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:10px;font-size:11px}.pagination button{font-size:11px}.detail-panel{padding:27px;min-height:610px}.detail-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding-bottom:22px}.detail-heading h2{margin-top:8px;overflow-wrap:anywhere}.metadata{display:grid;grid-template-columns:110px 1fr 110px 1fr;gap:10px 12px;font-size:12px;margin:23px 0}.metadata dt{color:#8b98a5}.metadata dd{margin:0;overflow-wrap:anywhere;font-weight:500}.instruction,.operator-message{border-left:3px solid #3eaaa9;border-radius:5px;background:#eff8f7;padding:14px 17px;font-size:12px;line-height:1.6;margin-bottom:20px;white-space:pre-wrap;overflow-wrap:anywhere}.instruction strong,.operator-message strong{display:block;margin-bottom:4px}.operator-message{background:#fff5eb;border-left-color:#d99158;margin-top:20px}.section-title{font-size:12px;letter-spacing:.2px;margin:24px 0 15px}.items{border:1px solid var(--line);border-radius:9px;overflow:hidden}.print-item{display:flex;justify-content:space-between;gap:18px;padding:18px;border-bottom:1px solid var(--line)}.print-item:last-child{border:0}.item-info{min-width:0;flex:1}.item-info h4{font-size:13px;line-height:1.6;overflow-wrap:anywhere}.size-qty{margin:7px 0 12px;font-weight:700;font-size:12px;color:#16808b}.lan-file small{display:block;font-size:8px;color:#8b9aa7;letter-spacing:1px;margin-bottom:5px}.lan-file code{display:block;overflow-wrap:anywhere;font-size:11px;line-height:1.6;color:#667887;user-select:all}.lan-file button{font-size:10px;padding:6px 0;color:#1c8792}.preview-button{background:#f3f5f7;border:1px solid var(--line);border-radius:7px;width:140px;min-height:90px;flex-shrink:0;padding:7px}.preview-button img{max-width:100%;max-height:130px;object-fit:contain;display:block;margin:auto}.no-preview{width:110px;align-self:center;font-size:10px;line-height:1.6;color:#9ca7b2;text-align:center}.action-area{margin-top:24px;background:#f8fafb;border:1px solid var(--line);border-radius:10px;padding:18px}.action-area label{font-size:12px;font-weight:600;display:block}.action-area textarea{margin-top:9px;font-size:12px;font-weight:400}.action-buttons{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.action-buttons button{font-size:12px}.history{margin:0;padding-left:19px;color:#6f8193;line-height:1.6;font-size:11px}.history li{padding:0 0 14px 7px}.history strong{color:#566b7d;font-size:11px}.history small{display:block;font-size:10px;color:#96a1ad}.history p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:4px}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:240px;text-align:center;padding:32px;color:#8b99a6;line-height:1.7}.detail-panel>.empty{min-height:500px}.empty h2{font-size:18px;color:#536b7f}.empty p{font-size:12px}.empty-icon{font-size:42px;margin-bottom:13px;color:#9fbfc6}.footnote{text-align:center;font-size:11px;color:#8e9ca9;margin:24px 0 2px}.notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;background:#163e43;color:white;padding:14px 23px;border-radius:11px;box-shadow:0 6px 28px #192c3533;z-index:100;line-height:1.6}.notice.is-error{background:#a44234}.login-view{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at top,#e4f1f3 0,transparent 60%),#f3f5f7}.login-card{width:100%;max-width:410px;padding:36px;background:white;border:1px solid var(--line);border-radius:19px;box-shadow:0 15px 60px #173a4810}.login-card .brand-mark{margin-bottom:25px}.login-card h1{font-size:26px}.login-card>.muted{font-size:12px;margin-bottom:25px}.login-card label{display:block;font-size:12px;font-weight:600;margin-top:16px}.login-card input{margin-top:7px}.login-card .primary{width:100%;margin-top:15px}.login-card small{display:block;text-align:center;margin-top:18px;color:#94a0ac;font-size:10px}.error{color:#ad443a;line-height:1.6;font-size:12px;margin-top:12px}.preview-dialog{border:0;border-radius:12px;max-width:90vw;max-height:90vh;padding:22px}.preview-dialog::backdrop{background:#142630bb}.preview-dialog>img{display:block;max-width:75vw;max-height:65vh;margin:15px auto;image-rendering:auto}.preview-dialog p{font-size:12px;overflow-wrap:anywhere}.admin-card{padding:25px;background:white;border:1px solid var(--line);border-radius:12px;margin:24px 0}.admin-card label{display:block;margin:15px 0}.admin-card table{border-collapse:collapse;width:100%;font-size:12px}.admin-card th,.admin-card td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}.admin-card form.inline{display:inline-flex;gap:8px;align-items:center}.admin-card form.inline input{width:170px}.admin-links{display:flex;gap:18px;flex-wrap:wrap;margin:15px 0}.admin-form{max-width:450px}.success{color:#27785d;padding:14px;background:#e7f6ef;border-radius:8px}.table-scroll{overflow:auto}@media(min-width:1500px){.queue{max-height:850px}}@media(max-width:1050px){.metadata{grid-template-columns:100px 1fr}.session-info{gap:10px}.connection{display:none}.queue-layout{grid-template-columns:300px minmax(0,1fr)}.detail-panel{padding:20px}.print-item{flex-direction:column}.preview-button{width:100%;max-height:180px}.preview-button img{max-height:160px}}@media(max-width:760px){.topbar{padding:14px 18px}.brand{font-size:14px}.session-info{font-size:11px}.session-info>a{display:none}.workspace{padding:23px 15px}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:14px 16px}.stat strong{font-size:25px}.queue-layout{grid-template-columns:1fr}.queue{max-height:480px}.detail-panel{min-height:300px}.detail-panel>.empty{min-height:240px}h1{font-size:27px}.page-heading .muted{font-size:12px}.detail-heading h2{font-size:20px}.metadata{grid-template-columns:100px 1fr}.print-item{flex-direction:row}.preview-button{width:110px}.topbar .brand-mark{display:none}.login-card{padding:28px}.footnote{line-height:1.7}}@media(max-width:420px){.print-item{flex-direction:column}.preview-button{width:100%}.session-info #actor-name{display:none}.metadata{font-size:11px;grid-template-columns:90px 1fr}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Black Gasink artwork is displayed intact against the white page. */
.login-logo { display:block; width:100%; height:auto; max-height:110px; object-fit:contain; margin-bottom:25px; }
.brand-logo { display:block; width:160px; height:54px; object-fit:contain; }
.page-heading { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:24px; margin-bottom:25px; }
.page-heading h1 { margin:0; white-space:nowrap; }
.page-heading .stats { min-width:0; margin:0; gap:12px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.page-heading .stat { min-height:70px; padding:13px 15px; gap:10px; }
.page-heading .stat span { font-size:11px; }
.page-heading .stat strong { font-size:27px; }
.stat.is-active { box-shadow:0 0 0 2px #087e8b; }
.job-card.new-arrival { background:#e9f8f3; }
@media(max-width:1050px) {
    .page-heading { grid-template-columns:1fr auto; gap:18px; }
    .page-heading .stats { grid-column:1 / -1; grid-row:2; }
    .page-heading #refresh { grid-column:2; grid-row:1; }
}
@media(max-width:760px) {
    .brand { gap:10px; letter-spacing:0; }
    .brand-logo { width:125px; height:45px; }
    .brand>span { font-size:12px; }
    .page-heading .stats { gap:9px; }
    .page-heading .stat { padding:11px 9px; gap:6px; }
}
@media(max-width:560px) {
    .page-heading .stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
