:root{--color-primary:#004434;--color-primary-hover:#003226;--color-primary-soft:#e6f0ed;--color-text:#1c2421;--color-muted:#62706b;--color-border:#d7e0dd;--color-surface:#fff;--color-bg:#f6f8f7;--color-danger:#b02020;--color-danger-soft:#fcecec;--radius:8px;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:40px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*,:before,:after{box-sizing:border-box}body{font-family:var(--font);color:var(--color-text);background:var(--color-bg);margin:0;line-height:1.5}h1{margin:0 0 var(--space-3);font-size:1.5rem}a{color:var(--color-primary)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.shell-header{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-primary);color:#fff;display:flex}.shell-brand{letter-spacing:.01em;font-weight:700}.shell-nav{gap:var(--space-1);flex:1;display:flex}.shell-nav a{color:#d7ebe5;padding:var(--space-1) var(--space-3);border-radius:var(--radius);text-decoration:none}.shell-nav a:hover{background:#ffffff1f}.shell-nav a.is-active{color:var(--color-primary);background:#fff;font-weight:600}.shell-user{align-items:center;gap:var(--space-3);font-size:.9rem;display:flex}.shell-user .btn-secondary{color:#fff;background:0 0;border-color:#ffffff80}.shell-main,.page{max-width:1040px;padding:var(--space-4);margin:0 auto}.shell-main .page{padding:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4)}.toolbar{align-items:end;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.toolbar .field{margin-bottom:0}.checkbox{align-items:center;gap:var(--space-2);padding-bottom:var(--space-2);display:flex}.btn{font:inherit;padding:var(--space-2) var(--space-3);border-radius:var(--radius);border:1px solid var(--color-primary);cursor:pointer}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #78beaa}.field{gap:var(--space-1);margin-bottom:var(--space-3);flex-direction:column;display:flex}.field label{font-size:.9rem;font-weight:600}.field input,.field select{font:inherit;padding:var(--space-2) 12px;border:1px solid var(--color-border);border-radius:var(--radius);background:#fff}.field input[aria-invalid=true]{border-color:var(--color-danger)}.field-error{color:var(--color-danger);margin:0;font-size:.85rem}.field-hint{color:var(--color-muted);margin:0;font-size:.85rem}.table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;padding:12px var(--space-3);border-bottom:1px solid var(--color-border)}.table th{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);background:var(--color-bg);font-size:.8rem}.table tr:last-child td{border-bottom:0}.empty{color:var(--color-muted);padding:var(--space-4);text-align:center;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius)}.alert{padding:12px var(--space-3);border-radius:var(--radius);margin-bottom:var(--space-3)}.alert-error{background:var(--color-danger-soft);color:var(--color-danger);border:1px solid var(--color-danger)}.alert-info{background:var(--color-primary-soft);color:var(--color-primary)}.pager{align-items:center;gap:var(--space-3);margin-top:var(--space-3);color:var(--color-muted);display:flex}.badge{background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;padding:2px 10px;font-size:.8rem;display:inline-block}.badge-full{background:var(--color-danger-soft);color:var(--color-danger)}.login{max-width:420px;margin:var(--space-5) auto}.user-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.user-list .btn{text-align:left;flex-direction:column;width:100%;display:flex}.user-list small{opacity:.75}.summary{gap:var(--space-4);margin-bottom:var(--space-3);display:flex}.summary strong{font-size:1.4rem;display:block}
