:root{--bg:#f4f6f8;--surface:#fff;--text:#1c2733;--muted:#5b6b7b;--border:#d5dde5;--accent:#1d5fa8;--accent-strong:#164a84;--error:#b42318;--focus:#1d5fa8;--radius:10px;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}*,:before,:after{box-sizing:border-box}body{background:var(--bg);margin:0}.shell{flex-direction:column;min-height:100vh;display:flex}.shell__header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem max(1rem,50vw - 32rem);display:flex}.shell__header h1{margin:0;font-size:1.2rem;font-weight:650}.shell__main{flex:1;width:100%;max-width:64rem;margin:0 auto;padding:1.25rem 1rem 2rem}.shell__footer{text-align:center;color:var(--muted);padding:1rem;font-size:.8rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;padding:1.25rem}.card h2{margin:0 0 1rem;font-size:1.05rem}.step{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;margin-right:.4rem;font-size:.8rem;font-weight:650;display:inline-block}.notice,.login{max-width:28rem;margin:2rem auto}.hint,.notice-text,.version{color:var(--muted);font-size:.9rem}.version{margin-bottom:0;font-size:.75rem}.field{border:0;flex-direction:column;gap:.3rem;min-width:0;margin:0 0 .9rem;padding:0;display:flex}.field-label{padding:0;font-size:.85rem;font-weight:600}input[type=text],input[type=email],input[type=password],input[type=date],select{width:100%;min-width:0;font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:.55rem .65rem}input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--error)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.field-error{color:var(--error);font-size:.8rem}.setup-grid,.assignment-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 1rem;display:grid}.assignment-grid{margin-top:1.25rem}.segmented{gap:.5rem;display:flex}.segment{border:1px solid var(--border);cursor:pointer;border-radius:6px;flex:1;align-items:center;gap:.4rem;padding:.5rem .65rem;display:flex}.lines{border-collapse:collapse;width:100%}.lines th,.lines td{text-align:left;vertical-align:top;padding:.35rem .4rem}.lines thead th{color:var(--muted);border-bottom:1px solid var(--border);font-size:.8rem}.lines tbody th{white-space:nowrap;padding-top:.85rem;font-weight:500}.lines tbody tr+tr{border-top:1px solid #edf1f5}.actions{gap:.75rem;margin-top:.5rem;display:flex}.button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:.6rem 1.2rem;font-weight:600}.button:disabled{opacity:.6;cursor:not-allowed}.button--primary{background:var(--accent);border-color:var(--accent);color:#fff}.button--primary:hover:not(:disabled){background:var(--accent-strong)}.button--quiet{padding:.4rem .8rem;font-weight:500}.login .button{width:100%}.share{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0;display:grid}.share-item{background:#f0f5fb;border-radius:8px;padding:1rem}.share dt{color:var(--muted);font-size:.85rem}.share dd{font-variant-numeric:tabular-nums;margin:.25rem 0 0;font-size:1.6rem;font-weight:700}.result-message{font-weight:600}@media (width<=720px){.setup-grid,.assignment-grid,.share{grid-template-columns:minmax(0,1fr)}.lines thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.lines,.lines tbody,.lines tr,.lines th,.lines td{width:100%;display:block}.lines tbody tr{grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem .75rem;padding:.75rem 0;display:grid}.lines tbody th{grid-column:1/-1;padding:0;font-weight:650}.lines td{padding:0}.lines td:before{content:attr(data-label);color:var(--muted);margin-bottom:.15rem;font-size:.75rem;display:block}.actions .button{flex:1}}.shell__nav{gap:.25rem;margin-right:auto;display:flex}.shell__nav a{color:var(--muted);border-radius:6px;padding:.35rem .75rem;font-weight:500;text-decoration:none}.shell__nav a[aria-current=page]{color:var(--accent-strong);background:#e8f0fa}.shell__main--wide{max-width:84rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.log-filters{grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr)) auto;align-items:end;gap:.75rem;display:grid}.log-filters__actions{margin:0 0 .9rem}.log{border-collapse:collapse;width:100%;font-size:.85rem}.log th,.log td{text-align:left;vertical-align:top;padding:.45rem .4rem}.log thead th{color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;font-size:.75rem}.log tbody tr+tr{border-top:1px solid #edf1f5}.log .num{text-align:right;white-space:nowrap}.log__row--flagged{background:#fff8e6}.log__detail td{background:#f8fafc;padding:.75rem}.badge{white-space:nowrap;color:var(--text);background:#edf1f5;border-radius:999px;padding:.05rem .45rem;font-size:.75rem;font-weight:600;display:inline-block}.badge--ok{color:#1d6b36;background:#e3f4e8}.badge--flag{color:#7a4b00;background:#fdecc8;margin:0 .25rem .25rem 0}.quote-detail{justify-items:start;gap:.75rem;display:grid}.detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem 1.25rem;width:100%;margin:0;display:grid}.detail-grid dt{color:var(--muted);font-size:.75rem}.detail-grid dd{overflow-wrap:anywhere;margin:0}.detail-lines{border-collapse:collapse;font-size:.85rem}.detail-lines caption{text-align:left;padding-bottom:.25rem;font-weight:600}.detail-lines th,.detail-lines td{text-align:left;padding:.25rem .75rem .25rem 0}.detail-lines thead th{color:var(--muted);font-size:.75rem}.flag-help{margin:0;padding-left:1.1rem}@media (width<=900px){.log-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.log thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.log,.log tbody,.log tr,.log td{width:100%;display:block}.log tbody tr{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem .75rem;padding:.75rem 0;display:grid}.log td{padding:0}.log td[data-label]:before{content:attr(data-label);color:var(--muted);font-size:.7rem;display:block}.log .num{text-align:left}.log__detail td{grid-column:1/-1}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.shell__header{flex-wrap:wrap}.shell__nav{order:3;width:100%}.log-filters,.detail-grid{grid-template-columns:minmax(0,1fr)}}
