:root{--bg:#fff;--surface:#f2f2f2;--text:#111;--muted:#4a4a4a;--border:#8a8a8a;--divider:#d6d6d6;--accent:#c2410c;--accent-dark:#9a3412;--on-accent:#fff;--danger:#b91c1c;--danger-bg:#fee2e2;--warning-bg:#fef3c7;--warning-text:#78350f;--focus:#1d4ed8;--radius:6px;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:var(--text)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}h1{margin:0 0 .25rem;font-size:1.75rem}h2{margin:1.5rem 0 .5rem;font-size:1.25rem}p{margin:.25rem 0}.app{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--divider);flex-direction:column;gap:2px;padding:1rem 0;display:flex}.sidebar .brand{padding:0 1rem 1rem;font-size:1.15rem;font-weight:800}.sidebar a{border-left:4px solid #0000;padding:.6rem 1rem;font-weight:600;text-decoration:none;display:block}.sidebar a:hover{background:var(--surface)}.sidebar a[aria-current=page]{border-left-color:var(--accent);background:var(--surface)}.sidebar .who{color:var(--muted);gap:.5rem;margin-top:auto;padding:1rem;font-size:.9rem;display:grid}main{max-width:1200px;padding:1.5rem 2rem 3rem}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.muted{color:var(--muted)}.btn{border-radius:var(--radius);border:2px solid var(--text);background:var(--bg);min-height:40px;color:var(--text);font:inherit;cursor:pointer;align-items:center;gap:.4rem;padding:0 1rem;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.small{min-height:32px;padding:0 .6rem;font-size:.9rem}.btn:disabled{opacity:.5;cursor:not-allowed}.row{flex-wrap:wrap;align-items:end;gap:.5rem;display:flex}.field{gap:.25rem;display:grid}.field label{font-weight:600}.field input,.field select,.field textarea{font:inherit;border:2px solid var(--border);border-radius:var(--radius);background:var(--bg);min-height:40px;color:var(--text);padding:.4rem .6rem}.field textarea{min-height:80px}.field .error{color:var(--danger);font-size:.9rem;font-weight:600}.field .hint{color:var(--muted);font-size:.9rem}.form{gap:1rem;max-width:640px;display:grid}.form .two{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.filters{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));align-items:end;gap:.75rem;margin-bottom:1rem;display:grid}.check{align-items:center;gap:.5rem;min-height:40px;font-weight:600;display:flex}.check input{width:20px;height:20px}table.data{border-collapse:collapse;width:100%}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--divider);vertical-align:top;padding:.55rem .6rem}table.data th{border-bottom:2px solid var(--text);white-space:nowrap;font-size:.9rem}table.data th button{font:inherit;cursor:pointer;color:var(--text);background:0 0;border:0;padding:0;font-weight:700}table.data tbody tr:hover{background:var(--surface)}.pager{align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.badge{white-space:nowrap;border:1.5px solid;border-radius:4px;padding:1px 8px;font-size:.85rem;font-weight:700;display:inline-block}.badge.AVAILABLE{color:#14532d;background:#dcfce7;border-color:#166534}.badge.CHECKED_OUT{color:#1e3a8a;background:#dbeafe;border-color:#1e40af}.badge.MAINTENANCE{color:#78350f;background:#fef3c7;border-color:#92400e}.badge.RETIRED{color:#262626;background:#e5e5e5;border-color:#525252}.badge.OVERDUE,.badge.FLAGGED{color:#7f1d1d;background:#fee2e2;border-color:#b91c1c}.badge.plain{background:var(--surface);color:var(--text);border-color:var(--border)}.notice{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:.75rem 0;padding:.75rem 1rem}.notice.error{border-color:var(--danger);background:var(--danger-bg);color:var(--danger);font-weight:600}.notice.warning{border-color:var(--warning-text);background:var(--warning-bg);color:var(--warning-text)}.stats{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;display:grid}.stat{border:2px solid var(--divider);border-radius:var(--radius);padding:.75rem 1rem}.stat .n{font-size:2rem;font-weight:800}.dialog{background:#00000073;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog>div{background:var(--bg);border-radius:var(--radius);width:100%;max-width:640px;max-height:90vh;padding:1.5rem;overflow:auto}.login{max-width:420px;margin:10vh auto;padding:0 1rem}dl.details{grid-template-columns:max-content 1fr;gap:.35rem 1.25rem;display:grid}dl.details dt{font-weight:700}dl.details dd{margin:0}.calendar{border-top:1px solid var(--divider);border-left:1px solid var(--divider);grid-template-columns:repeat(7,1fr);display:grid}.calendar>div{border-right:1px solid var(--divider);border-bottom:1px solid var(--divider);min-height:84px;padding:4px;font-size:.85rem}.calendar .dow{background:var(--surface);min-height:0;font-weight:700}.calendar .out{color:var(--muted);background:#fafafa}.calendar .res{border-left:3px solid var(--accent);background:var(--surface);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;padding:1px 4px;display:block;overflow:hidden}.calendar .res.DRAFT{border-left-color:var(--border)}@media (width<=800px){.app{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--divider);flex-flow:wrap}.form .two{grid-template-columns:1fr}}.label-sheets{margin-top:1.5rem}.sheet{width:8.5in;min-height:11in;padding:var(--margin-top) 0 0 var(--margin-left);grid-template-columns:repeat(var(--cols), var(--label-w));grid-auto-rows:var(--label-h);column-gap:var(--gap-x);row-gap:var(--gap-y);border:1px solid var(--divider);background:#fff;align-content:start;margin-bottom:1rem;display:grid}.label{outline:1px dashed #c8c8c8;align-items:center;gap:.08in;padding:.06in .1in;display:flex;overflow:hidden}.label.empty{outline-style:dotted}.label .qr{width:var(--qr);height:var(--qr);flex:none}.label .qr svg{width:100%;height:100%;display:block}.label .text{min-width:0;line-height:1.15}.label .tag{letter-spacing:.02em;font-size:13pt;font-weight:800}.label .name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:8.5pt;display:-webkit-box;overflow:hidden}.label .company{color:#333;font-size:7pt}.stock-avery-5163 .label .tag{font-size:20pt}.stock-avery-5163 .label .name{font-size:12pt}.stock-avery-5163 .label .company{font-size:10pt}.stock-plain .label{text-align:center;outline:1px solid #999;flex-direction:column;justify-content:center}.stock-plain .label .tag{font-size:16pt}.stock-plain .label .name{font-size:10pt}@media print{@page{size:letter;margin:0}body{background:#fff}.app{display:block}.sidebar,.no-print{display:none!important}main{max-width:none;padding:0}.label-sheets{margin:0}.sheet{break-after:page;border:0;margin:0}.sheet:last-child{break-after:auto}.stock-avery-5160 .label,.stock-avery-5163 .label{outline:none}}.privacy{max-width:720px;margin:2rem auto;padding:0 1rem;line-height:1.55}.privacy li{margin-bottom:.5rem}mark.fill-in{color:#000;background:#fde68a;padding:0 .2em;font-weight:700}
