:root { color-scheme:light; --blue:#174e8c; --blue-dark:#103965; --accent-text:#174e8c; --gold:#c7963f; --ink:#10213a; --muted:#63758d; --line:#d6e0eb; --surface:#fff; --page:#edf2f7; --surface-subtle:#f8fafc; --surface-hover:#f2f6fb; --surface-accent:#eef4fb; --shadow:rgba(24,48,78,.12); font-family:Arial,Helvetica,sans-serif; }
:root[data-theme="dark"] { color-scheme:dark; --blue:#5865f2; --blue-dark:#4752c4; --accent-text:#aeb7ff; --gold:#f0b232; --ink:#f2f3f5; --muted:#b5bac1; --line:#3f4147; --surface:#2b2d31; --page:#1e1f22; --surface-subtle:#232428; --surface-hover:#35373c; --surface-accent:#313338; --shadow:rgba(0,0,0,.34); }
:root { --red:#b42318; --danger-text:#b42318; --green:#187546; --success-text:#187546; }
:root[data-theme="dark"] { --red:#ff8a8c; --danger-text:#ff8a8c; --green:#57d68d; --success-text:#57d68d; }
* { box-sizing:border-box; }
html { min-height:100%; background:var(--page); }
body { min-height:100vh; margin:0; color:var(--ink); background:var(--page); display:flex; flex-direction:column; }
a { color:inherit; }
.public-main { width:min(1180px,calc(100% - 40px)); margin:0 auto; padding:42px 0 64px; flex:1; }
.public-home-body { background:var(--page); }
.public-home { display:grid; place-items:center; padding-top:84px; padding-bottom:92px; }
.public-card { border:1px solid var(--line); border-radius:8px; background:var(--surface); box-shadow:0 14px 36px rgba(24,48,78,.08); }
.public-card[hidden] { display:none; }
.public-hero { width:min(860px,100%); overflow:hidden; position:relative; }
.public-hero::before { content:""; display:block; height:6px; background:linear-gradient(90deg,var(--blue) 0 78%,var(--gold) 78%); }
.public-hero-top { min-height:92px; padding:20px 46px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:24px; }
.public-brand { display:flex; align-items:center; color:var(--accent-text); text-decoration:none; }
.public-hero-logo { display:block; width:137px; height:auto; }
.public-staff-button { position:fixed; z-index:5; top:24px; right:clamp(24px,5vw,72px); border-color:var(--blue); background:var(--blue); color:#fff; box-shadow:0 5px 16px rgba(23,78,140,.16); }
.public-staff-button:hover { background:var(--blue-dark); }
.public-hero-copy { padding:48px 46px 42px; max-width:720px; }
.public-kicker { margin:0 0 9px; color:var(--accent-text); font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
h1 { margin:0; font-size:clamp(36px,5vw,54px); line-height:1.05; letter-spacing:-.035em; }
.public-hero-copy>p:last-child { max-width:610px; margin:18px 0 0; color:var(--muted); font-size:18px; line-height:1.5; }
.public-home-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line); background:var(--surface-subtle); }
.public-home-links>a { min-height:108px; padding:24px 28px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:17px; text-decoration:none; border-right:1px solid var(--line); transition:background .15s,color .15s; }
.public-home-links>a:last-child { border-right:0; }
.public-home-links>a:hover { background:var(--surface-hover); color:var(--accent-text); }
.public-home-links span { display:grid; gap:5px; }
.public-home-links strong { font-size:16px; }
.public-home-links small { color:var(--muted); line-height:1.35; }
.public-hero-footer { position:fixed; z-index:3; left:clamp(22px,5vw,72px); right:clamp(22px,5vw,72px); bottom:22px; color:var(--muted); font-size:10px; display:flex; align-items:center; justify-content:space-between; gap:20px; pointer-events:none; }
.public-hero-footer span:last-child { display:flex; gap:16px; }
.public-hero-footer a { pointer-events:auto; }
.public-actions { display:flex; gap:10px; margin:0; }
.public-button { min-height:38px; padding:9px 15px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--ink); font:inherit; font-size:14px; font-weight:700; text-decoration:none; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.public-button.primary { border-color:var(--blue); background:var(--blue); color:#fff; }
.public-button.primary:hover { background:var(--blue-dark); }
.public-button:disabled { opacity:.6; cursor:wait; }
.public-wide { width:min(1250px,calc(100% - 40px)); }
.public-page-heading { margin-bottom:24px; }
.public-page-bar { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.public-page-bar>div:first-child { display:grid; gap:10px; }
.public-page-bar .public-kicker { margin-top:18px; margin-bottom:-3px; }
.public-page-bar h1 { font-size:40px; }
.public-wordmark img { display:block; width:140px; height:auto; }
.public-register-toolbar { margin-bottom:14px; padding:14px; display:grid; grid-template-columns:minmax(220px,1fr) 220px auto; gap:12px; align-items:end; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.public-register-toolbar label { display:grid; gap:6px; color:var(--ink); font-size:12px; font-weight:700; }
.public-register-toolbar input,.public-register-toolbar select { width:100%; min-height:39px; padding:8px 11px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--ink); font:inherit; font-size:14px; }
.public-register-counts { min-height:39px; display:flex; align-items:center; justify-content:flex-end; gap:15px; color:var(--muted); font-size:12px; }
.public-register-counts strong { color:var(--ink); font-size:17px; }
.public-register { display:grid; gap:14px; }
.public-register-section { overflow:hidden; }
.public-register-section[hidden] { display:none; }
.public-register-section>header { min-height:56px; padding:0 17px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; }
.public-register-section h2 { margin:0; font-size:19px; }
.public-register-section>header span { min-width:25px; height:25px; padding:0 7px; border:1px solid var(--line); border-radius:6px; display:grid; place-items:center; font-size:12px; font-weight:800; }
.public-table-wrap { overflow-x:auto; }
.public-table { width:100%; border-collapse:collapse; font-size:14px; }
.public-table th { padding:10px 16px; background:var(--surface-subtle); color:var(--muted); font-size:11px; text-align:left; text-transform:uppercase; }
.public-table td { padding:15px 16px; border-top:1px solid var(--line); }
.public-table tbody tr:hover { background:var(--surface-hover); }
.public-status { font-weight:700; }
.public-status.open { color:var(--green); }
.public-status.closed { color:var(--muted); }
.public-empty,.public-loading { margin:0; padding:20px 17px; color:var(--muted); font-size:14px; }
.public-document-page { width:min(900px,calc(100% - 40px)); padding-top:30px; }
.public-document { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:var(--surface); box-shadow:0 14px 34px rgba(23,48,77,.1); }
.public-document-header { padding:34px 42px 28px; border-top:7px solid var(--blue); border-bottom:1px solid var(--line); }
.public-document-header h1 { font-size:36px; }
.public-document-header>p:last-child { margin:12px 0 0; color:var(--muted); line-height:1.5; }
.public-document-fields { display:grid; gap:14px; padding:18px; background:var(--page); counter-reset:public-question; }
.public-document-question { padding:24px 50px 24px 32px; border:1px solid var(--line); border-left:4px solid transparent; border-radius:6px; background:var(--surface); display:grid; gap:12px; position:relative; color:var(--ink); font-size:14px; font-weight:700; transition:border-color .15s,box-shadow .15s; counter-increment:public-question; }
.public-document-question::after { content:counter(public-question); position:absolute; top:18px; right:18px; width:24px; height:24px; border-radius:50%; background:var(--surface-accent); color:var(--muted); display:grid; place-items:center; font-size:11px; font-weight:800; }
.public-document-question:focus-within { border-left-color:var(--blue); box-shadow:0 4px 14px rgba(23,78,140,.08); }
.public-document-question b { color:var(--red); }
.public-document input,.public-document textarea,.public-document select { width:100%; border:0; border-bottom:1px solid var(--line); border-radius:0; background:var(--surface); padding:10px 2px; color:var(--ink); font:inherit; font-size:14px; line-height:1.5; }
.public-document textarea { min-height:110px; resize:vertical; }
.public-document input:focus,.public-document textarea:focus,.public-document select:focus { outline:0; border-color:var(--blue); box-shadow:0 1px 0 var(--blue); }
.public-employee-results { position:absolute; z-index:4; left:32px; right:32px; top:91px; max-height:230px; overflow:auto; border:1px solid var(--line); border-radius:6px; background:var(--surface); box-shadow:0 10px 24px rgba(20,43,70,.14); }
.public-employee-results[hidden] { display:none; }
.public-employee-results button { width:100%; padding:11px 13px; border:0; border-bottom:1px solid var(--line); background:var(--surface); display:flex; justify-content:space-between; gap:14px; color:var(--ink); text-align:left; cursor:pointer; }
.public-employee-results button:hover { background:var(--surface-hover); }
.public-employee-results small { color:var(--muted); }
.public-selected-employee { color:var(--accent-text); font-size:12px; }
.public-repeatable { display:grid; gap:10px; }
.public-repeatable-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; }
.public-repeatable-remove,.public-add-another { min-height:34px; padding:7px 11px; border:1px solid var(--line); border-radius:5px; background:var(--surface); color:var(--ink); font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.public-repeatable-remove { color:var(--red); border-color:var(--red); }
.public-repeatable-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.public-repeatable-footer small { color:var(--muted); font-weight:500; }
.public-file-control { padding:14px; border:1px dashed var(--line); border-radius:6px; background:var(--surface-subtle); }
.public-file-control input { border:0; padding:0; background:transparent; }
.public-submit-panel { margin:0; padding:26px 42px 30px; border-top:1px solid var(--line); background:var(--surface-subtle); }
.public-check { margin:0; padding:15px 17px; border:1px solid var(--line); border-radius:7px; background:var(--surface); display:grid; grid-template-columns:auto 1fr; gap:11px; align-items:start; color:var(--ink); font-size:13px; cursor:pointer; }
.public-check input { width:17px; height:17px; margin:1px 0 0; accent-color:var(--blue); }
.public-check span { display:grid; gap:3px; }
.public-check small { color:var(--muted); font-weight:400; line-height:1.4; }
.public-form-actions { padding:18px 0 0; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.public-form-actions>span { color:var(--muted); font-size:12px; }
.public-honeypot { position:absolute!important; left:-10000px; width:1px; height:1px; overflow:hidden; }
.public-message { margin:18px 48px 0; padding:10px 12px; border-radius:6px; font-size:14px; }
.public-message.error { border:1px solid #efb5b5; background:#fff1f1; color:var(--red); }
.public-receipt { padding:40px; display:flex; gap:20px; align-items:flex-start; }
.public-receipt-mark { width:46px; height:46px; border-radius:50%; background:#def6e7; color:var(--green); font-size:24px; font-weight:800; display:grid; place-items:center; }
.public-receipt h2 { margin:0 0 8px; font-size:27px; }
.public-receipt p:not(.public-kicker) { margin:0 0 20px; color:var(--muted); }
.public-receipt-kicker { font-family:Georgia,'Times New Roman',serif; font-size:14px; font-style:italic; font-weight:700; letter-spacing:.06em; text-transform:none; }
.public-report-tracker { margin-top:18px; overflow:hidden; }
.public-report-tracker>header { padding:25px 30px 19px; border-bottom:1px solid var(--line); }
.public-report-tracker h2 { margin:0; font-size:22px; }
.public-report-tracker header>p:last-child { margin:8px 0 0; color:var(--muted); font-size:14px; }
.public-tracker-form { padding:18px 30px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:12px; }
.public-tracker-form label { display:grid; gap:6px; color:var(--ink); font-size:12px; font-weight:700; }
.public-tracker-form input { min-height:39px; padding:8px 11px; border:1px solid var(--line); border-radius:6px; color:var(--ink); font:inherit; text-transform:uppercase; }
#publicReportTrackerResult { padding:0 30px 22px; }
.public-tracker-result { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--line); border-radius:7px; overflow:hidden; }
.public-tracker-result>div { padding:12px 14px; border-right:1px solid var(--line); display:grid; gap:4px; }
.public-tracker-result>div:last-child { border-right:0; }
.public-tracker-result span { color:var(--muted); font-size:11px; font-weight:700; text-transform:uppercase; }
#publicReportTrackerResult>p:not(.public-message) { margin:12px 0 0; color:var(--muted); font-size:13px; }
.public-footer { min-height:66px; padding:18px clamp(22px,5vw,72px); color:var(--muted); font-size:10px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.public-footer span:last-child { display:flex; gap:16px; }
.theme-toggle { display:inline-grid; place-items:center; width:38px; height:38px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--ink); cursor:pointer; box-shadow:0 5px 16px var(--shadow); }
.theme-toggle:hover,.theme-toggle:focus-visible { border-color:var(--blue); background:var(--surface-hover); color:var(--accent-text); }
.theme-toggle svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.theme-toggle-floating { position:fixed; z-index:20; right:20px; bottom:20px; }
:root[data-theme="dark"] .public-message.error { border-color:var(--red); background:#3f1d25; color:var(--danger-text); }
:root[data-theme="dark"] .public-receipt-mark { background:#21452f; color:var(--success-text); }
:root[data-theme="dark"] .public-status.open { color:var(--success-text); }
:root[data-theme="dark"] .public-status.closed { color:var(--muted); }
@media(max-width:700px) { .public-main,.public-wide,.public-document-page{width:calc(100% - 24px);padding:24px 0 44px}.public-home{padding-top:78px;padding-bottom:110px}.public-hero-top{padding:18px 24px}.public-hero-copy{padding:38px 24px 32px}.public-home-links{grid-template-columns:1fr}.public-home-links>a{border-right:0;border-bottom:1px solid var(--line)}.public-home-links>a:last-child{border-bottom:0}.public-hero-footer{align-items:flex-start;flex-direction:column;bottom:14px}.public-staff-button{top:18px;right:18px}.public-page-bar{align-items:center}.public-register-toolbar{grid-template-columns:1fr}.public-register-counts{justify-content:flex-start}.public-document-header{padding-left:24px;padding-right:24px}.public-document-question{padding:21px 44px 21px 20px}.public-employee-results{left:20px;right:20px;top:87px}.public-submit-panel{padding-left:24px;padding-right:24px}.public-form-actions{align-items:stretch;flex-direction:column}.public-tracker-form{grid-template-columns:1fr}.public-tracker-result{grid-template-columns:1fr 1fr}.public-tracker-result>div:nth-child(2){border-right:0}.public-tracker-result>div{border-bottom:1px solid var(--line)}.public-tracker-result>div:nth-last-child(-n+2){border-bottom:0}.public-footer{align-items:flex-start;flex-direction:column}.public-table{min-width:560px} }
@media(max-width:480px) { .public-actions{align-items:stretch;flex-direction:column}.public-hero-top{align-items:center}.public-hero-logo{width:122px}.public-staff-button{padding-left:11px;padding-right:11px}.public-repeatable-row{grid-template-columns:1fr}.public-repeatable-footer{align-items:flex-start;flex-direction:column} }
