:root{color-scheme:light;--bg:#f4f6f8;--ink:#18212b;--muted:#667085;--line:#d7dde5;--panel:#fff;--brand:#146c63;--brand-strong:#0b4f48;--accent:#c58a2e;--danger:#b42318;--ok:#067647}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Aptos,Segoe UI,Arial,Helvetica,sans-serif;letter-spacing:0}a{color:inherit;text-decoration:none}button,input{font:inherit}.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh;position:relative}.sidebar{background:#12202a;color:#eef4f4;padding:24px 18px;transition:transform .2s ease}.brand{font-size:20px;font-weight:700;margin-bottom:28px}nav{display:grid;grid-gap:6px;gap:6px}nav button{background:transparent;border-radius:6px;color:#c8d4d7;font-weight:600;justify-content:start;padding:10px 12px;text-align:left}nav button.active,nav button:hover{background:#1f3440;color:#fff}.workspace{padding:28px}.topbar{align-items:center;display:flex;justify-content:space-between;gap:20px;margin-bottom:22px}.eyebrow{color:var(--brand);font-size:13px;font-weight:700;margin:0 0 4px;text-transform:uppercase}h1,h2{margin:0}h1{font-size:30px}h2{font-size:18px}.pill{border:1px solid var(--line);border-radius:999px;color:var(--muted);padding:8px 12px;white-space:nowrap}.empty-panel,.jobs,.publication-panel,.receipt-history-panel,.sequence-panel,.upload-band,.users-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px}.upload-band{align-items:end;display:grid;grid-template-columns:minmax(260px,1fr) minmax(140px,220px) minmax(220px,300px) auto minmax(120px,260px);grid-gap:16px;gap:16px;margin-bottom:18px;padding:18px}label{display:grid;grid-gap:8px;gap:8px}.field>span,label span{color:var(--muted);font-size:13px}.field{display:grid;grid-gap:8px;gap:8px}input[type=file]{border:1px solid var(--line);border-radius:6px;padding:9px;width:100%}input[type=password],input[type=text]{padding:9px;width:100%}.output-selector,input[type=password],input[type=text]{border:1px solid var(--line);border-radius:6px;min-height:38px}.output-selector{display:grid;grid-gap:6px;gap:6px;margin:0;padding:8px 10px}.output-selector legend{color:var(--muted);font-size:13px;padding:0 4px}.output-selector label{align-items:center;display:flex;gap:8px}.output-selector input{margin:0}.upload-toggle{align-items:center;display:flex;gap:10px;min-height:38px}.upload-toggle span{color:var(--muted);font-size:13px}.upload-toggle input{margin:0}button{background:var(--brand);border:0;border-radius:6px;color:#fff;cursor:pointer;font-weight:700;min-height:38px;padding:9px 14px}button:disabled{background:#9aa7ad;cursor:not-allowed}.login-shell{align-items:center;background:var(--bg);display:grid;min-height:100vh;padding:24px;place-items:center}.login-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:18px;gap:18px;max-width:380px;padding:24px;width:min(100%,380px)}.login-panel .brand{color:var(--brand-strong);margin-bottom:10px}.login-panel p{color:var(--muted);margin:0}.topbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.menu-button{background:transparent;border:1px solid var(--line);color:var(--brand-strong);display:none;flex-direction:column;gap:4px;justify-content:center;min-height:38px;min-width:38px;padding:8px 10px}.menu-button span{background:var(--brand-strong);border-radius:999px;display:block;height:2px;width:18px}.topbar-actions button{background:#eef4f4;color:var(--brand-strong)}.upload-band p{color:var(--muted);margin:0}.drop-zone{align-content:center;border:1px dashed var(--line);border-radius:8px;cursor:pointer;display:grid;grid-gap:2px;gap:2px;min-height:76px;padding:12px;position:relative}.drop-zone.dragging{background:#eef4f4;border-color:var(--brand)}.drop-zone input{height:1px;opacity:0;overflow:hidden;position:absolute;width:1px}.drop-zone strong{color:var(--brand-strong)}.drop-zone small{margin-top:0}.upload-list-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:18px;overflow:hidden}.upload-list{display:grid}.upload-item{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding:10px 18px}.upload-item:last-child{border-bottom:0}.upload-item button{background:#eef4f4;color:var(--brand-strong)}.upload-item.ok strong{color:var(--ok)}.upload-item.failed strong{color:var(--danger)}.receipt-history-panel,.sequence-panel{margin-bottom:18px;overflow:hidden}.sequence-form{grid-gap:16px;grid-template-columns:minmax(140px,180px) minmax(140px,180px) auto minmax(120px,260px)}.sequence-form,.user-form{align-items:end;border-bottom:1px solid var(--line);display:grid;gap:16px;padding:18px}.user-form{grid-gap:16px;grid-template-columns:minmax(160px,220px) minmax(180px,240px) auto minmax(120px,280px)}.sequence-form p,.sequence-list p,.user-form p{color:var(--muted);margin:0}.sequence-list{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));padding:14px 18px 18px}.sequence-item{border:1px solid var(--line);border-radius:6px;display:grid;grid-gap:4px;gap:4px;padding:10px 12px}.sequence-item span{color:var(--muted);font-size:13px}.receipt-history-list{display:grid}.receipt-history-list>p{color:var(--muted);margin:0;padding:18px}.receipt-history-item{align-items:center;border-bottom:1px solid var(--line);display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(120px,.7fr) minmax(130px,.7fr) minmax(140px,.8fr) minmax(160px,1fr);padding:12px 18px}.receipt-history-item:last-child{border-bottom:0}.users-panel{overflow:hidden}.users-list{display:grid}.users-list>p{color:var(--muted);margin:0;padding:18px}.user-item{align-items:center;border-bottom:1px solid var(--line);display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(160px,1fr) minmax(140px,.8fr) auto;padding:12px 18px}.user-item:last-child{border-bottom:0}.user-item button{background:#eef4f4;color:var(--brand-strong)}.empty-panel{display:grid;grid-gap:8px;gap:8px;padding:22px}.empty-panel p{color:var(--muted);margin:0}.jobs{overflow:hidden}.section-title{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:16px 18px}.section-title>div{display:grid;grid-gap:4px;gap:4px}.section-title>div small{color:var(--muted);font-size:13px;margin:0}.section-actions{align-items:center;display:flex;gap:12px}.section-actions span{color:var(--muted);font-size:13px}.section-title button{background:#eef4f4;color:var(--brand-strong)}.table{display:grid}.jobs-layout{align-items:start;display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1fr) minmax(280px,360px)}.job-search{align-items:end;border-bottom:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;padding:16px 18px}.job-search-actions{display:flex;flex-wrap:wrap;gap:8px}.job-pagination{align-items:center;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:14px 18px 18px}.job-pagination span{color:var(--muted);font-size:13px}.job-pagination-actions{display:flex;flex-wrap:wrap;gap:8px}.job-pagination-actions button{background:#eef4f4;color:var(--brand-strong)}.job-entry{border-bottom:1px solid var(--line)}.job-entry:last-child{border-bottom:0}.row{align-items:center;display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(180px,1.6fr) minmax(120px,.8fr) minmax(90px,.5fr) minmax(60px,.4fr) minmax(130px,.7fr) minmax(130px,.7fr) minmax(160px,1fr);min-height:56px;padding:10px 18px}.row.header{border-bottom:1px solid var(--line);background:#f8fafb;color:var(--muted);font-size:12px;font-weight:700;min-height:40px;text-transform:uppercase}.file-name{overflow-wrap:anywhere}.status{display:block;text-transform:capitalize}.status.completed{color:var(--ok)}.status.failed{color:var(--danger)}.status.processing,.status.queued{color:var(--accent)}small{color:var(--muted);display:block;margin-top:3px}.row a{color:var(--brand-strong);font-weight:700;overflow-wrap:anywhere;text-decoration:underline}.output-summary{display:grid;grid-gap:8px;gap:8px;justify-items:start}.output-actions{display:flex;flex-wrap:wrap;gap:8px}.output-actions button{background:#eef4f4;color:var(--brand-strong);min-height:32px;padding:6px 10px}.output-detail{background:#f8fafb;border-top:1px solid var(--line);display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));padding:14px 18px 18px}.output-detail a{background:#fff;border:1px solid var(--line);border-radius:6px;color:var(--brand-strong);display:grid;grid-gap:4px;gap:4px;min-width:0;padding:10px 12px}.output-detail a span{color:var(--muted);font-size:12px}.output-detail a strong{overflow-wrap:anywhere}.output-card{background:#fff;border:1px solid var(--line);border-radius:6px;color:var(--brand-strong);display:grid;grid-gap:4px;gap:4px;min-width:0;padding:10px 12px}.output-card span{color:var(--muted);font-size:12px}.output-card strong{overflow-wrap:anywhere}.output-card-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.output-card-actions a,.output-card-actions button{align-items:center;background:#eef4f4;color:var(--brand-strong);display:inline-flex;min-height:32px;padding:6px 10px}.output-card-actions a{border-radius:6px;font-weight:700}.pdf-modal{align-items:center;background:rgba(17,24,39,.72);display:grid;inset:0;justify-items:center;padding:20px;position:fixed;z-index:40}.pdf-modal-panel{background:#fff;border-radius:8px;display:grid;grid-gap:12px;gap:12px;height:min(90vh,920px);max-width:1200px;padding:14px;width:min(100%,1200px)}.pdf-modal-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.pdf-modal-header span{color:var(--muted);display:block;font-size:12px}.pdf-modal-header strong{display:block;overflow-wrap:anywhere}.pdf-modal-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.pdf-modal-actions a,.pdf-modal-actions button{background:#eef4f4;color:var(--brand-strong);min-height:32px;padding:6px 10px}.pdf-modal iframe{border:1px solid var(--line);border-radius:6px;height:100%;width:100%}.sidebar-overlay{display:none}.print-detail{background:#fff;border-top:1px solid var(--line);display:grid}.print-item{align-items:center;border-bottom:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(180px,1.2fr) minmax(120px,.6fr) minmax(140px,.8fr) auto;padding:10px 18px}.print-item:last-child{border-bottom:0}.print-item button{background:#eef4f4;color:var(--brand-strong)}.print-queue-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:14px;gap:14px;padding:18px;position:-webkit-sticky;position:sticky;top:18px}.print-queue-panel h3{font-size:15px;margin:0}.print-queue-panel p{color:var(--muted);margin:0}.queue-group{display:grid;grid-gap:10px;gap:10px}.queue-group-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.queue-group-title small{margin-top:0}.queue-item,.queue-list{display:grid;grid-gap:8px;gap:8px}.queue-item{border:1px solid var(--line);border-radius:6px;padding:10px 12px}.queue-item span{display:grid;grid-gap:2px;gap:2px}.queue-item strong{overflow-wrap:anywhere}.queue-item button{background:#eef4f4;color:var(--brand-strong);justify-self:start;min-height:32px;padding:6px 10px}@media (max-width:860px){.shell{grid-template-columns:1fr}.sidebar{height:100vh;left:0;max-width:290px;padding:18px;position:fixed;top:0;transform:translateX(-100%);width:min(86vw,290px);z-index:50}.sidebar.open{transform:translateX(0)}nav{grid-template-columns:1fr;gap:8px}nav button{padding:10px 12px;text-align:left}.workspace{padding:18px}.menu-button{display:inline-flex}.sidebar-overlay{background:rgba(17,24,39,.55);border:0;display:block;inset:0;padding:0;position:fixed;z-index:45}.job-search,.sequence-form,.topbar,.upload-band,.user-form{align-items:stretch;grid-template-columns:1fr}.topbar-actions{justify-content:flex-start}.pdf-modal{padding:10px}.pdf-modal-panel{height:92vh;padding:10px}.row{grid-template-columns:1fr}.print-item,.receipt-history-item,.user-item{align-items:stretch;grid-template-columns:1fr}.job-pagination{align-items:stretch}.job-pagination-actions{justify-content:flex-start}.jobs-layout{grid-template-columns:1fr}.print-queue-panel{position:static}.row.header{display:none}}