:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#172b46;background:#f5f8fc;font-synthesis:none;text-rendering:optimizeLegibility;font-weight:400}*{box-sizing:border-box}body{margin:0;min-height:100vh}.auth-shell{width:min(100% - 32px,480px);margin:7vh auto}.brand{display:block;color:#174a91;font-size:1.15rem;font-weight:750;text-decoration:none;margin:0 0 24px}.brand span{font-weight:500;color:#63758a}.panel{background:#fff;border:1px solid #dce5ef;border-radius:10px;padding:clamp(22px,5vw,34px)}.auth-panel h1{font-size:1.8rem;line-height:1.15;margin:.25rem 0 .65rem}.eyebrow{margin:0;color:#174a91;font-size:.76rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.muted{color:#63758a;line-height:1.5}.stack{display:grid;gap:18px;margin:26px 0 20px}label{display:grid;gap:7px;font-weight:650;font-size:.92rem}input{width:100%;min-height:46px;border:1px solid #bccbdc;border-radius:6px;padding:10px 12px;font:inherit;color:#172b46}input:focus{outline:3px solid #b8d2f2;border-color:#174a91}small{color:#63758a;font-weight:400}.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 18px;border-radius:6px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}.primary{color:#fff;background:#174a91;border:1px solid #174a91}.primary:hover{background:#123b73}.notice{border-radius:6px;background:#eff5fc;padding:12px;color:#123b73;line-height:1.45}.notice.success{background:#eef7f1;color:#225b38}a{color:#174a91}@media(max-width:480px){.auth-shell{margin:28px auto}}
.topbar{min-height:64px;background:#fff;border-bottom:1px solid #dce5ef;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100% - 1050px)/2));gap:16px}.topbar .brand{margin:0}.topbar form{margin:0}.topbar nav{display:flex;align-items:center;gap:18px}.link-button{background:none;border:0;color:#174a91;font:inherit;font-weight:650;min-height:44px;cursor:pointer}.page{width:min(100% - 32px,1000px);margin:38px auto}.page.narrow{max-width:760px}.page h1{font-size:clamp(1.8rem,5vw,2.4rem);margin:.3rem 0}.summary-line{margin:22px 0 14px;color:#63758a}.room-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.room-card{padding:20px}.room-heading{display:flex;justify-content:space-between;align-items:center}.room-heading h2{font-size:1.8rem;margin:2px 0}.status{display:inline-flex;border:1px solid #dce5ef;border-radius:99px;padding:6px 11px;font-size:.82rem;font-weight:700;color:#63758a}.status.done{background:#eef7f1;color:#225b38;border-color:#d0e7d8}.status.issue{background:#fff3e9;color:#794318;border-color:#f2d9c1}.fine-print{font-size:.82rem;color:#63758a;margin-top:24px}.stack{gap:14px}.checklist-item legend{font-weight:700;padding:0 5px;line-height:1.4}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.choices label{display:flex;align-items:center;gap:6px;min-height:44px;border:1px solid #dce5ef;border-radius:6px;padding:8px;font-weight:550;font-size:.86rem}.choices input{width:18px;min-height:18px;accent-color:#174a91}.note-label{font-size:.85rem;font-weight:550;color:#63758a}textarea{resize:vertical;border:1px solid #bccbdc;border-radius:6px;padding:10px;font:inherit;color:#172b46}textarea:focus{outline:3px solid #b8d2f2;border-color:#174a91}.cancel{justify-self:center;padding:8px}.section{margin-top:34px}.section>h2{font-size:1.3rem}.issue-card{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:12px 0}.issue-card p{margin:.4rem 0}.issue-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.issue-form select,.filters select{min-height:44px;padding:8px;border:1px solid #bccbdc;border-radius:6px;background:white;font:inherit}.issue-form input{width:190px}.filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:22px 0}.filters label{min-width:130px}.filters input{min-height:44px}.filters .check-filter{display:flex;align-items:center;gap:8px;min-height:44px}.check-filter input{width:20px;min-height:20px}.table-wrap{overflow-x:auto;background:white;border:1px solid #dce5ef;border-radius:8px}table{border-collapse:collapse;width:100%;min-width:640px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid #e7edf4}th{background:#eff5fc;color:#123b73;font-size:.82rem}td{font-size:.9rem}.qr-print{text-align:center;margin:22px auto;max-width:480px}.qr-image{width:min(100%,320px);height:auto}.qr-print p{line-height:1.6}.activation{max-width:480px;margin:18px auto}@media(max-width:650px){.topbar{padding:0 16px}.topbar nav{gap:10px;font-size:.9rem}.page{margin:25px auto}.choices{grid-template-columns:1fr}.choices label{min-height:46px}.issue-card{align-items:stretch;flex-direction:column}.issue-form>*{flex:1}.issue-form input{width:100%}.filters>*{flex:1 1 140px}}@media print{body{background:white}.topbar,.activation,.notice,.page>.eyebrow,.page>p,.button{display:none!important}.page{margin:0;width:100%}.qr-print{border:0;max-width:100%}.qr-image{width:75mm}}
.report-heading{display:flex;align-items:end;justify-content:space-between;gap:18px}.report-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.report-stats article{display:grid;gap:6px;padding:18px}.report-stats strong{font-size:1.45rem;color:#174a91}.report-stats span{color:#63758a;font-size:.9rem}.answer-list article{padding:14px 0;border-bottom:1px solid #e7edf4}.answer-list article:last-of-type{border-bottom:0}.answer-list h2{font-size:1rem}.answer-list p{margin:.4rem 0}@media(max-width:650px){.report-heading{align-items:flex-start;flex-direction:column}.report-stats{grid-template-columns:1fr}}@media print{@page{size:letter portrait;margin:12mm}.no-print{display:none!important}.report-stats{break-inside:avoid}.table-wrap{overflow:visible;border:0}table{min-width:0;font-size:8pt}th,td{padding:5px 6px}.page{width:100%;margin:0}.topbar{display:none!important}}
.topbar{min-height:64px;background:#fff;border-bottom:1px solid #dce5ef;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100% - 1050px)/2));gap:16px}.topbar .brand{margin:0}.topbar form{margin:0}.link-button{background:none;border:0;color:#174a91;font:inherit;font-weight:650;min-height:44px;cursor:pointer}.page{width:min(100% - 32px,1000px);margin:38px auto}.page.narrow{max-width:760px}.page h1{font-size:clamp(1.8rem,5vw,2.4rem);margin:.3rem 0}.summary-line{margin:22px 0 14px;color:#63758a}.room-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.room-card{padding:20px}.room-heading{display:flex;justify-content:space-between;align-items:center}.room-heading h2{font-size:1.8rem;margin:2px 0}.status{display:inline-flex;border:1px solid #dce5ef;border-radius:99px;padding:6px 11px;font-size:.82rem;font-weight:700;color:#63758a}.status.done{background:#eef7f1;color:#225b38;border-color:#d0e7d8}.status.issue{background:#fff3e9;color:#794318;border-color:#f2d9c1}.fine-print{font-size:.82rem;color:#63758a;margin-top:24px}.stack{gap:14px}.checklist-item legend{font-weight:700;padding:0 5px;line-height:1.4}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.choices label{display:flex;align-items:center;gap:6px;min-height:44px;border:1px solid #dce5ef;border-radius:6px;padding:8px;font-weight:550;font-size:.86rem}.choices input{width:18px;min-height:18px;accent-color:#174a91}.note-label{font-size:.85rem;font-weight:550;color:#63758a}textarea{resize:vertical;border:1px solid #bccbdc;border-radius:6px;padding:10px;font:inherit;color:#172b46}textarea:focus{outline:3px solid #b8d2f2;border-color:#174a91}.cancel{justify-self:center;padding:8px}@media(max-width:520px){.topbar{padding:0 16px}.page{margin:25px auto}.choices{grid-template-columns:1fr}.choices label{min-height:46px}}

@media print{@page{size:letter portrait;margin:0}html,body{width:8.5in;min-height:11in;margin:0!important;background:#d7ebff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.page{width:8.5in!important;max-width:none!important;min-height:11in;margin:0!important;padding:18mm 14mm;display:flex;flex-direction:column;align-items:center;justify-content:center;background-image:url('/images/qr-wave-background.png')!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}.page>h1{display:none!important}.qr-print{width:100%;max-width:125mm;margin:0;padding:12mm 10mm;background:rgba(255,255,255,.94)!important;border:1px solid #b8d2f2!important;border-radius:8px}.qr-image{width:75mm!important;padding:4mm;background:#fff!important}.qr-print p{color:#172b46!important}.qr-print .button{display:none!important}.topbar,.activation,.notice,.page>.eyebrow,.page>p{display:none!important}}

.topbar .brand{display:flex;align-items:center;flex:0 0 auto;overflow:hidden}.brand-logo{display:block;width:260px;height:64px;max-width:42vw;object-fit:cover;object-position:center} @media(max-width:650px){.brand-logo{width:190px;height:52px;max-width:38vw}.topbar{gap:10px}}

.room-create{max-width:560px;margin:22px 0}.room-create h2{margin:.1rem 0}.room-create-form{display:flex;align-items:end;gap:14px;margin-top:18px}.room-create-form label{flex:1}.room-create-form .button{flex:0 0 auto}@media(max-width:520px){.room-create-form{align-items:stretch;flex-direction:column}.room-create-form .button{width:100%}}

.qr-activate{border-radius:99px;min-height:40px;padding:7px 15px}


/* Calm visual refresh */
:root{--blue:#174a91;--blue-dark:#123b73;--ink:#172b46;--muted:#63758a;--line:#dce5ef;--surface:#fff;--soft:#eff5fc;--lift:0 5px 18px rgba(23,54,91,.055)}
body{color:var(--ink);background:#f4f7fb}
.page{margin-top:42px;margin-bottom:52px}
.page h1{font-weight:720;letter-spacing:-.035em;line-height:1.12;margin:.35rem 0 .65rem}
.page>p.muted{margin:.45rem 0 22px;font-size:1.02rem}
.panel{background:var(--surface);border-color:var(--line);border-radius:14px;box-shadow:var(--lift)}
.room-list{gap:18px}
.room-card{padding:22px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.room-card:hover{border-color:#c6d5e6;box-shadow:0 8px 22px rgba(23,54,91,.085);transform:translateY(-1px)}
.room-heading{gap:14px}
.room-heading h2{font-weight:680;letter-spacing:-.025em}
.room-card>.stack{margin:22px 0 0}
.button{min-height:44px;border:1px solid #cbd8e6;border-radius:8px;background:#fff;color:#274767;padding:10px 17px;font-size:.94rem;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}
.button:hover{background:#f5f8fc;border-color:#afc2d8}
.button:active{transform:translateY(1px)}
.button.primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 2px 5px rgba(23,74,145,.12)}
.button.primary:hover{background:var(--blue-dark);border-color:var(--blue-dark);box-shadow:0 4px 10px rgba(18,59,115,.16)}
.button:focus-visible,.link-button:focus-visible,.topbar nav a:focus-visible,.cancel:focus-visible{outline:3px solid #b8d2f2;outline-offset:2px}
.button:disabled{cursor:not-allowed;background:#edf1f5;border-color:#e0e6ed;color:#8290a0;box-shadow:none}
.qr-activate{min-height:40px;padding:7px 15px}
.status{background:#f5f7fa;border-color:#e2e8ef;color:#63758a;padding:7px 12px}
.status.done{background:#eef7f1;color:#225b38;border-color:#d0e7d8}
.status.issue{background:#fff5ed;color:#794318;border-color:#f2d9c1}
.topbar{background:rgba(255,255,255,.96);border-bottom-color:#e5ebf2;box-shadow:0 2px 10px rgba(23,54,91,.035)}
.topbar nav a{padding:8px 10px;border-radius:7px;color:#526982;text-decoration:none;font-size:.92rem;font-weight:600;transition:background-color .16s ease,color .16s ease}
.topbar nav a:hover{background:#eff5fc;color:var(--blue)}
.link-button{border-radius:7px;padding:7px 10px;transition:background-color .16s ease}
.link-button:hover{background:#eff5fc}
.section{margin-top:28px}
section.section{padding:22px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--lift)}
.section>h2{font-size:1.12rem;letter-spacing:-.01em;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid #e9eef4}
.notice{border:1px solid #dbe7f4;border-radius:9px;background:#f0f6fd;color:#294e78;padding:13px 15px}
.notice.success{background:#f0f7f2;border-color:#dcebe0;color:#315e3e}
input,textarea,.issue-form select,.filters select{border-radius:8px;border-color:#cbd6e2;background:#fff}
input:focus,textarea:focus,.issue-form select:focus,.filters select:focus{outline:3px solid #d6e6f8;border-color:#7fa5d2}
.table-wrap{border-color:#e1e8f0;border-radius:10px;box-shadow:0 2px 10px rgba(23,54,91,.035)}
th{background:#f2f6fb;color:#3c5c7b;font-weight:700}
th,td{padding:13px 15px}
@media(max-width:650px){.page{margin-top:28px}.room-list{gap:14px}.room-card{padding:18px}section.section{padding:18px}.topbar nav a{padding:7px 6px}}
