:root{font-family:Aptos,Segoe UI,Arial,sans-serif;color:#10233f;background:#f4f2ed;--navy:#102e56;--blue:#174f96;--line:#d3dbe3;--muted:#536477}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;border:1px solid transparent;border-radius:8px;padding:10px 15px;font-weight:600;background:#fff;color:#10233f;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}button:hover,.button:hover{filter:brightness(.95)}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e89346;outline-offset:3px}.primary{background:var(--blue);color:#fff}.outline{border-color:#b7c5d3}.text-button{color:var(--blue);background:transparent;padding:8px}.muted{color:var(--muted)}.small,small{font-size:.82rem}h1,h2,h3{letter-spacing:-.025em;text-wrap:balance;margin-top:0}h1{font-size:2rem;line-height:1.2}h2{font-size:1.15rem;margin-bottom:20px}p{line-height:1.55;text-wrap:pretty}label{display:flex;flex-direction:column;gap:8px;font-size:.88rem;font-weight:600}label small{font-weight:400;color:var(--muted);line-height:1.5}input,select,textarea{width:100%;border:1px solid #b7c5d3;border-radius:6px;background:#fff;color:#10233f;padding:10px 12px;min-height:42px}input::placeholder,textarea::placeholder{color:#536477}textarea{resize:vertical;line-height:1.6}code{font-family:Cascadia Mono,Consolas,monospace;font-size:.76rem;overflow-wrap:anywhere}.logo{width:172px;object-fit:contain}.skip{position:fixed;top:-100px;left:10px;background:#fff;padding:12px;z-index:20}.skip:focus{top:10px}.boot{padding:80px}.login{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-brand{background:var(--navy);color:#fff;padding:54px 9%;display:flex;flex-direction:column;justify-content:space-between;gap:80px}.login-brand .logo,.shell aside .logo{filter:brightness(0) invert(1)}.login-brand h1{font-size:3rem;line-height:1.15;margin:22px 0}.brand-caption{color:#f0ab6c;font-size:.9rem}.login-brand p{max-width:40ch;color:#d1dce9}.login-form{display:flex;align-items:center;justify-content:center;padding:48px 32px}.login-form form{width:100%;max-width:390px;display:flex;flex-direction:column;gap:20px}.login-form h2{font-size:1.8rem;margin:0}.login-form p{margin:0}.shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}.shell aside{background:var(--navy);color:#fff;position:sticky;top:0;height:100vh;padding:32px 20px;display:flex;flex-direction:column}.app-name{font-size:.88rem;color:#d1dce9;margin:25px 10px 40px}nav{display:flex;flex-direction:column;gap:8px}nav button{justify-content:space-between;background:transparent;color:#dce7f3;text-align:left}nav button.active{background:#244971;color:#fff}nav small{font-size:.65rem}.identity{margin-top:auto;padding:22px 10px 0;display:flex;flex-direction:column;gap:9px;border-top:1px solid #486381;font-size:.9rem}.identity span{color:#c4d2e3}.logout{padding-left:0;justify-content:flex-start;background:transparent;color:#fff;font-size:.85rem}.workspace{padding:0 36px 48px;min-width:0;max-width:1800px;width:100%;margin:auto}header{display:flex;justify-content:space-between;gap:16px;align-items:center;min-height:76px;border-bottom:1px solid var(--line);font-size:.82rem;color:var(--muted);margin-bottom:34px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}.page-heading h1{margin-bottom:10px}.page-heading p{margin:0}.page-heading>button{flex-shrink:0}.filters,.registry,.report-form,.detail,.profile-form,.chart{background:#fff;border:1px solid var(--line);border-radius:10px}.filters{padding:20px 22px;margin-bottom:24px}.filter-heading,.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.search{grid-column:span 2}.apply{align-self:end}.range{font-size:.8rem;color:var(--muted);margin:16px 0 0}.registry{padding:24px}.section-heading h2{margin:0}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.86rem;text-align:left}th{font-size:.75rem;color:var(--muted);font-weight:600;background:#f5f7f9}th,td{padding:15px 12px;border-bottom:1px solid #e0e6eb;vertical-align:top}td small{display:block;color:var(--muted);margin-top:7px}td code{display:block;min-width:140px;max-width:210px}.description{min-width:220px;max-width:380px;white-space:pre-wrap;overflow-wrap:anywhere}.tag{display:inline-block;background:#eaf0f8;color:#174f96;font-size:.75rem;border-radius:4px;padding:5px 7px;margin:2px 5px 2px 0}.empty{padding:54px 15px;text-align:center}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:20px;margin-top:24px;font-size:.8rem}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:24px}.metrics>div{padding:24px;border-bottom:1px solid var(--line)}.metrics span{color:var(--muted);font-size:.85rem}.metrics strong{display:block;font-size:2rem;margin-top:12px}.charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-bottom:24px}.chart{padding:24px}.bar-row{margin:18px 0}.bar-row>div:first-child{display:flex;justify-content:space-between;gap:15px;font-size:.82rem;margin-bottom:8px}.bar-track{height:10px;background:#edf1f5;border-radius:3px;overflow:hidden}.bar{height:100%;background:#174f96}.footnote{font-size:.82rem;color:var(--muted);max-width:95ch}.report-form{max-width:1000px}.report-form section,.detail section{padding:28px 32px;border-bottom:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.wide{grid-column:1/-1}fieldset{border:0;padding:0;margin:24px 0}legend{font-size:.88rem;font-weight:600;margin-bottom:14px}legend span{font-weight:400;font-size:.8rem;margin-left:8px}.checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.checks label{flex-direction:row;align-items:center;font-weight:400}.checks input{width:18px;min-height:18px;margin:0;accent-color:var(--blue)}.report-form section>label+label{margin-top:24px}.upload{border:1px dashed #a7b7c8;border-radius:8px;padding:20px;background:#f7f9fc}.upload input{border:0;background:transparent;padding:4px}.files{list-style:none;padding:0;margin:16px 0}.files li{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:12px 0;overflow-wrap:anywhere}.files small{display:block;color:var(--muted);margin-top:5px}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:24px 32px}.form-footer p{font-size:.82rem;max-width:65ch;color:var(--muted);margin:0}.form-footer button{flex-shrink:0}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding:32px}.detail-grid span{display:block;font-size:.8rem;color:var(--muted);margin-bottom:8px}.detail strong{overflow-wrap:anywhere}.preserve{white-space:pre-wrap;overflow-wrap:anywhere;max-width:75ch}.profile-form{padding:32px;max-width:560px;display:flex;flex-direction:column;gap:24px}.error{color:#a32925}.alert{padding:14px 18px;border:1px solid currentColor;border-radius:6px;background:#fff}.success{color:#166344}.loading{padding:32px;border-radius:8px;background:#e7edf4;color:var(--navy);margin-bottom:24px}button{transition:background-color .15s ease-out,color .15s ease-out}@media(max-width:1100px){.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace{padding:0 24px 32px}.checks{grid-template-columns:repeat(2,minmax(0,1fr))}.shell{grid-template-columns:210px minmax(0,1fr)}}@media(max-width:800px){.shell{display:block}.shell aside{height:auto;position:static;padding:20px}.shell aside .logo{width:135px}.app-name{margin:15px 0}nav{flex-direction:row;flex-wrap:wrap}nav button{font-size:.8rem}.identity{margin-top:20px;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:14px 0 0}.logout{min-height:32px}.page-heading{align-items:flex-start}.page-heading h1{font-size:1.6rem}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.charts{grid-template-columns:1fr}.login-brand{padding:40px 30px}.login-brand h1{font-size:2.5rem}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:540px){.login{display:block}.login-brand{gap:28px}.login-brand h1{font-size:2rem}.login-brand small{display:none}.login-form{padding:32px 24px}.workspace{padding:0 16px 32px}.page-heading{flex-direction:column}.filter-grid,.form-grid,.checks,.detail-grid{grid-template-columns:1fr}.search,.wide{grid-column:auto}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics>div{padding:18px}.filters,.registry,.chart{padding:18px}.report-form section,.detail section,.detail-grid{padding:22px}.form-footer{flex-direction:column;align-items:stretch;padding:22px}.files li{align-items:flex-start}.pagination{gap:12px}.profile-form{padding:22px}.page-heading code{word-break:break-all}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.login-stack{width:100%;max-width:390px}.microsoft-access{margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--line)}.microsoft-access button{width:100%}.microsoft-access p{margin-bottom:0}.access-note{color:var(--muted);font-size:.88rem;max-width:85ch;margin-bottom:24px}.user-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}.user-workspace.has-editor{grid-template-columns:minmax(0,1fr) 340px}.user-workspace>.registry{min-width:0}.user-editor{width:100%;padding:24px;gap:18px}.user-editor h2{margin:0}.user-search{margin-bottom:20px;max-width:450px}.permission-check{flex-direction:row;align-items:center;gap:10px}.permission-check input{width:18px;min-height:18px;margin:0;accent-color:var(--blue)}.tag.inactive{background:#f7e8e6;color:#92342a}.audit-panel{margin-top:24px}@media(max-width:1100px){.user-workspace.has-editor{grid-template-columns:minmax(0,1fr)}.user-editor{max-width:none;order:-1}}.skip:not(:focus){clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap;padding:0}
