:root{--navy:#08214F;--navy-2:#0E3A8C;--slate:#4A5F82;--paper:#F5F9FF;--paper-2:#E8F0FC;--gold:#C9992F;--gold-2:#E3B955;--ink:#1B1F24;--line:#D5E2F5;--good:#2E6B3E;--warn:#A24A1F;--bad:#A32B2B;--white:#FFFFFF;--radius:3px;--serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,serif;--sans:"Segoe UI",Helvetica,Arial,sans-serif;--mono:"Courier New",monospace;--app-bg:#F5F9FF;--card-radius:14px;--tile-radius:12px;--card-shadow:0 1px 2px rgba(8,33,79,.05), 0 8px 24px rgba(8,33,79,.06);--card-shadow-hover:0 4px 10px rgba(8,33,79,.08), 0 14px 32px rgba(8,33,79,.1);--accent-blue:#2F6FED;--accent-blue-tint:#E7EFFE;--accent-green:#1F9D64;--accent-green-tint:#E4F6EC;--accent-gold-tint:#FBF3DC;--accent-purple:#7C5CBF;--accent-purple-tint:#F0EBFA}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}html,body{overflow-x:clip;max-width:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.5}#app,.app-root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4{font-family:var(--serif);font-weight:700;color:var(--navy);margin:0 0 8px}a{color:var(--navy-2)}.mono{font-family:var(--mono)}.topbar{background:var(--white);color:var(--ink);display:flex;align-items:center;gap:16px;justify-content:space-between;padding:10px 22px;border-bottom:1px solid var(--line)}.topbar .btn{white-space:nowrap}@media screen and (max-width:1000px){.tb-text{display:none}}.brand{display:flex;align-items:baseline;gap:10px}.brand .mark{font-family:var(--serif);font-weight:700;font-size:20px;letter-spacing:.5px;color:var(--navy)}.brand .mark span{color:var(--gold)}.brand .tag{font-size:11px;color:var(--slate);letter-spacing:.08em;text-transform:uppercase}.topbar-search{flex:1;max-width:420px;position:relative;display:flex;align-items:center}.topbar-search input{width:100%;padding:9px 14px 9px 34px;border-radius:20px;border:1px solid var(--line);background:var(--app-bg);font-size:13px;font-family:var(--sans);color:var(--ink)}.topbar-search input:focus{outline:none;border-color:var(--gold-2);background:var(--white)}.topbar-search .search-icon{position:absolute;left:12px;color:var(--slate);font-size:13px;pointer-events:none}.topbar-search .search-results{position:absolute;top:38px;left:0;right:0;background:var(--white);border:1px solid var(--line);border-radius:10px;box-shadow:var(--card-shadow-hover);z-index:60;overflow:hidden}.topbar-search .search-results button{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;background:none;border:none;padding:9px 14px;cursor:pointer;font-family:var(--sans);border-bottom:1px solid var(--paper-2)}.topbar-search .search-results button:last-child{border-bottom:none}.topbar-search .search-results button:hover{background:var(--app-bg)}.topbar-search .search-results .r-title{font-size:12.5px;color:var(--ink);font-weight:600}.topbar-search .search-results .r-sub{font-size:11px;color:var(--slate)}.profile-chip{display:flex;align-items:center;gap:10px;cursor:pointer;position:relative;background:none;border:none;color:inherit;flex-shrink:0}.avatar{width:34px;height:34px;border-radius:50%;background:var(--gold);color:var(--white);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;font-size:15px;flex-shrink:0}.profile-name{font-size:13px;color:var(--ink);text-align:left;line-height:1.3}.profile-name .role{display:block;font-size:10.5px;color:var(--slate);text-transform:uppercase;letter-spacing:.04em}.profile-menu{position:absolute;top:46px;right:0;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:10px;min-width:190px;box-shadow:var(--card-shadow-hover);z-index:50;overflow:hidden}.profile-menu button{display:block;width:100%;text-align:left;background:none;border:none;padding:10px 14px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--paper-2);font-family:var(--sans);color:var(--ink)}.profile-menu button:last-child{border-bottom:none}.profile-menu button:hover{background:var(--paper-2)}.shell{display:flex;flex:1;min-height:0}.sidenav{width:232px;background:var(--navy);color:var(--paper);padding:18px 12px;flex-shrink:0}.sidenav button,.sidenav a{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:none;border:none;color:#c5d6ee;padding:10px 12px;font-size:13.5px;cursor:pointer;font-family:var(--sans);border-radius:9px;text-decoration:none;box-sizing:border-box;margin-bottom:2px}.sidenav .nav-icon{font-size:15px;width:18px;text-align:center;flex-shrink:0}.sidenav button:hover,.sidenav a:hover{background:#ffffff12;color:var(--white)}.sidenav button.active,.sidenav a.active{background:var(--navy-2);color:var(--white);box-shadow:inset 3px 0 0 var(--gold)}.sidenav .navlabel{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#8fa7cb;padding:16px 12px 6px}.sidenav .logout{border-top:1px solid rgba(255,255,255,.12);margin-top:14px;padding-top:12px}.main{flex:1;padding:26px 32px;overflow-y:auto;min-width:0;background:var(--app-bg)}.nav-toggle{display:none;background:none;border:none;color:var(--gold);font-size:20px;cursor:pointer;padding:2px 6px;line-height:1}.nav-close,.nav-backdrop{display:none}.scan-video-box{position:relative;max-width:480px;background:#0c1620;border-radius:10px;overflow:hidden}.scan-video-box video{width:100%;display:block}.scan-live-status,.scan-live-bar{display:none}.scan-align-frame{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;pointer-events:none;z-index:1}.scan-align-corner{position:absolute;width:16%;height:11%;border-style:solid;border-width:0;border-color:var(--gold);transition:border-color .15s}.scan-align-tl{top:0;left:0;border-top-width:5px;border-left-width:5px}.scan-align-tr{top:0;right:0;border-top-width:5px;border-right-width:5px}.scan-align-bl{bottom:0;left:0;border-bottom-width:5px;border-left-width:5px}.scan-align-br{bottom:0;right:0;border-bottom-width:5px;border-right-width:5px}.scan-desktop-bar{display:flex}.scan-result-flash{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#0c16208c;text-align:center;padding:20px}.scan-result-flash-icon{font-size:88px;line-height:1;font-weight:700}.scan-result-flash-score{font-size:22px;font-weight:700;color:#fff}.scan-result-flash-title{font-size:20px;font-weight:700;color:#fff}.scan-result-flash-detail{font-size:14px;color:#ffffffd9;max-width:80%}.scan-result-flash-success .scan-result-flash-icon{color:var(--good)}.scan-result-flash-error .scan-result-flash-icon{color:var(--bad)}@media screen and (max-width:760px){.nav-toggle{display:inline-flex;align-items:center}.profile-name{display:none}.topbar{gap:6px 8px;padding:10px 14px;flex-wrap:wrap}.topbar .brand .mark{font-size:17px}.topbar-search{min-width:0;order:20;flex:1 1 150px;max-width:none}.topbar .year-switch{order:21}.tb-text{display:none}.shell{position:relative}.sidenav{position:fixed;top:0;left:0;bottom:0;width:260px;max-width:80vw;transform:translate(-100%);transition:transform .22s ease;z-index:120;box-shadow:0 12px 40px #08214f59;padding-top:50px;overflow-y:auto}.sidenav.nav-open{transform:translate(0)}.nav-close{display:block;position:absolute;top:8px;right:12px;background:none;border:none;color:var(--paper);font-size:24px;cursor:pointer;line-height:1;padding:4px 8px}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#13202d80;z-index:110}.scan-video-box.scan-live{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;max-width:none;border-radius:0;display:flex;flex-direction:column;background:#0c1620}.scan-video-box.scan-live video{flex:1;width:100%;height:100%;object-fit:cover}.scan-live-status{display:flex;position:absolute;top:0;left:0;right:0;z-index:1;padding:calc(10px + env(safe-area-inset-top)) 16px 0;flex-direction:column;align-items:center;gap:6px}.scan-live-bar{display:flex;position:relative;z-index:1;flex-shrink:0;padding:14px 16px calc(14px + env(safe-area-inset-bottom));background:#0c1620eb;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.scan-desktop-bar{display:none}}.container{max-width:1080px;margin:0 auto}.auth-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:30px;min-height:100vh;background-color:var(--paper);background-image:radial-gradient(circle at 12% 8%,rgba(201,153,47,.12),transparent 40%),radial-gradient(circle at 88% 92%,rgba(8,33,79,.09),transparent 45%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28'%3E%3Ccircle cx='14' cy='14' r='1.6' fill='%23132A45' fill-opacity='0.05'/%3E%3C/svg%3E");background-repeat:no-repeat,no-repeat,repeat;background-size:auto,auto,28px 28px}.auth-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:420px;padding:36px 34px;box-shadow:0 12px 40px #08214f1a;border-top:4px solid var(--gold)}.auth-brand{text-align:center;margin-bottom:22px}.auth-brand .mark{font-family:var(--serif);font-size:28px;font-weight:700;color:var(--navy)}.auth-brand .mark span{color:var(--gold)}.auth-brand .creator{font-size:12px;color:var(--slate);margin-top:2px;margin-bottom:2px;font-style:italic}.auth-brand .creator-logo{height:20px;width:auto;margin:4px 0}.auth-brand .tag{font-size:11px;color:var(--slate);text-transform:uppercase;letter-spacing:.1em;margin-top:4px}.auth-actions{display:flex;flex-direction:column;gap:10px;margin-top:18px}.auth-layout{position:relative;display:flex;min-height:100vh;overflow:hidden;background:linear-gradient(135deg,#e8f0fc,#f7faff 48%,#e6eefa)}.auth-scene{display:none;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.auth-scene-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.auth-scene-dots{position:absolute;width:150px;height:200px;opacity:.55;background-image:radial-gradient(circle,#3B6FD0 1.6px,transparent 1.8px);background-size:18px 18px;-webkit-mask-image:linear-gradient(135deg,transparent,#000 70%);mask-image:linear-gradient(135deg,transparent,#000 70%)}.auth-scene-dots-tr{top:3%;right:0}.auth-scene-dots-br{bottom:6%;right:0;height:150px}.auth-hero{display:none;position:absolute;left:31.5%;bottom:0;width:47%;height:auto}.auth-promo{display:none;position:relative;z-index:1}.auth-form-side{position:relative;z-index:2;flex:1;display:flex;align-items:center;justify-content:center;padding:30px}.auth-layout .auth-card{max-width:524px;padding:clamp(28px,2.4vw,44px) clamp(26px,2.4vw,42px) clamp(26px,2.1vw,38px);border:none;border-top:3px solid #C9992F;border-radius:2px;box-shadow:0 18px 50px #0c24542e,0 2px 6px #0c245414}@media screen and (min-width:920px){.auth-scene{display:block}.auth-promo{display:flex;flex-direction:column;justify-content:space-between;flex:0 0 43%;padding:clamp(22px,2.2vw,40px) 0 clamp(18px,1.8vw,32px) 5%;color:var(--white)}.auth-form-side{justify-content:flex-end;padding:30px 5.5% 30px 0}.auth-layout .auth-card{width:min(31vw,524px);min-width:380px}}@media screen and (min-width:1180px){.auth-hero{display:block}}.auth-promo-brand{display:flex;align-items:center;gap:clamp(10px,1.1vw,20px)}.auth-promo-logo{width:clamp(64px,7.7vw,134px);height:auto;display:block;filter:drop-shadow(0 6px 14px rgba(0,0,0,.35))}.auth-promo-mark{font-family:var(--serif);font-size:clamp(34px,3.6vw,64px);font-weight:700;color:var(--white);line-height:1;text-shadow:0 2px 10px rgba(0,0,0,.25)}.auth-promo-mark span{color:#e3b955}.auth-promo-main{max-width:38vw}.auth-promo-headline{font-family:var(--serif);font-size:clamp(30px,3.1vw,54px);line-height:1.08;font-weight:700;margin:0;color:var(--white);text-shadow:0 2px 12px rgba(0,0,0,.25)}.auth-promo-headline em{display:block;font-style:normal;color:#e3b955}.auth-promo-swoosh{display:block;width:clamp(150px,17.5vw,300px);height:clamp(6px,.7vw,12px);margin:.1vw 0 clamp(10px,1.05vw,18px) 1%}.auth-promo-sub{font-size:clamp(13px,1.2vw,20.5px);line-height:1.5;color:#f1f5fb;margin:0 0 clamp(12px,1.2vw,21px);max-width:34vw}.auth-promo-included{display:flex;align-items:center;margin-bottom:clamp(8px,.8vw,14px)}.auth-promo-pill{background:linear-gradient(180deg,#f1c45f,#d9a238);color:#2a1f08;font-weight:800;letter-spacing:.04em;font-size:clamp(11px,.98vw,17px);padding:.45em 1.35em;border-radius:999px;box-shadow:0 3px 10px #0003}.auth-promo-rule{flex:0 1 20vw;height:2px;margin-left:-1px;background:linear-gradient(90deg,#e3b955,#e3b95500)}.auth-promo-features{display:flex;flex-direction:column;gap:clamp(7px,.72vw,13px)}.auth-promo-feature{display:flex;gap:clamp(10px,1.1vw,20px);align-items:center}.auth-promo-feature-icon{width:clamp(38px,3.45vw,60px);height:clamp(38px,3.45vw,60px);border-radius:clamp(9px,.85vw,15px);flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#fff;box-shadow:0 0 0 2px #92bdff8c,0 6px 16px #00000038}.auth-promo-feature-title{font-weight:700;font-size:clamp(13px,1.07vw,18.5px);color:var(--white);line-height:1.25}.auth-promo-feature-desc{font-size:clamp(11px,.9vw,15.5px);color:#dce6f5;line-height:1.3;margin-top:1px;max-width:27vw}.auth-promo-foot{display:flex;align-items:center;gap:clamp(10px,1.2vw,22px);margin-top:clamp(12px,1.1vw,20px)}.auth-promo-foot-item{display:flex;align-items:center;gap:.7em;text-shadow:0 1px 6px rgba(0,0,0,.45);font-size:clamp(11px,.85vw,15px);font-weight:600;color:#f2f6fc;white-space:nowrap}.auth-promo-foot-item svg{width:clamp(24px,2vw,36px);height:auto;flex-shrink:0}.auth-promo-foot-div{width:1px;align-self:stretch;min-height:clamp(24px,2vw,36px);background:#ffffff59}.auth-brand-new{text-align:center;margin-bottom:clamp(14px,1.4vw,22px)}.auth-brand-logo{width:clamp(76px,6.3vw,106px);height:auto;display:block;margin:0 auto clamp(6px,.6vw,10px)}.auth-brand-mark{font-family:var(--serif);font-size:clamp(30px,2.5vw,42px);font-weight:700;color:#08214f;line-height:1.1}.auth-brand-mark span{color:#c9992f}.auth-brand-by{margin-top:6px;font-size:11.5px;font-weight:700;letter-spacing:.32em;color:#08214f;text-transform:uppercase}.auth-brand-by span{color:#c9992f;text-transform:none;letter-spacing:.2em;margin-right:.35em}.auth-brand-system{margin-top:clamp(14px,1.5vw,24px);font-size:12px;letter-spacing:.16em;color:#0e3a8c;text-transform:uppercase}.auth-layout .auth-card .msg.info{background:#eef5fe;border:1px solid #D5E2F5;color:#08214f;padding:14px;font-size:15px;margin-bottom:0}.auth-welcome-line{font-size:14px;color:#08214f;margin:18px 0 0;text-align:center}.auth-layout .auth-card .auth-actions{margin-top:20px;gap:14px}.auth-layout .auth-card .btn-primary{background:#0e3a8c}.auth-layout .auth-card .btn-primary:hover{background:#1450b5}.auth-layout .auth-card .btn-gold{background:#c9992f}.auth-layout .auth-card .btn-gold:hover{background:#d8ac45}.auth-layout .auth-card .auth-cta{padding:14px 16px;font-weight:700;font-size:15px;text-decoration:underline;border-radius:2px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:600;color:var(--navy-2);margin-bottom:5px;text-transform:uppercase;letter-spacing:.03em}.field input,.field select,.field textarea{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius);font-size:14px;font-family:var(--sans);background:var(--white);color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--gold-2);outline-offset:1px;border-color:var(--gold)}.field .hint{font-size:11px;color:var(--slate);margin-top:4px}.msg{padding:9px 12px;border-radius:var(--radius);font-size:12.5px;margin-bottom:14px}.msg.info{background:#eef5fe;color:var(--navy-2);border:1px solid #D5E2F5;text-align:center}.msg.error{background:#fbeaea;color:var(--bad);border:1px solid #F0C6C6}.msg.success{background:#e9f4eb;color:var(--good);border:1px solid #C6E3CB}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:var(--radius);border:1px solid transparent;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--sans);transition:filter .1s}.btn:active{filter:brightness(.94)}.btn-primary{background:var(--navy);color:var(--white)}.btn-primary:hover{background:var(--navy-2)}.btn-gold{background:var(--gold);color:var(--white)}.btn-gold:hover{background:var(--gold-2)}.btn-outline{background:var(--white);color:var(--navy);border-color:var(--navy)}.btn-outline:hover{background:var(--paper-2)}.btn-ghost{background:none;color:var(--navy-2);border-color:transparent}.btn-ghost:hover{background:var(--paper-2)}.dash-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.dash-actions .btn{text-decoration:none}@media screen and (max-width:760px){.dash-actions{flex-direction:column;width:100%}.dash-actions .btn{width:100%;padding:11px 16px}}.btn-danger{background:var(--white);color:var(--bad);border-color:var(--bad)}.btn-danger:hover{background:#fbeaea}.btn-danger-solid{background:var(--bad);color:var(--white)}.btn-danger-solid:hover{background:#8c2525}.btn-sm{padding:5px 10px;font-size:12px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-block{width:100%}.panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;margin-bottom:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}.panel-head h2{margin:0;font-size:17px}.panel-head .sub{font-size:12px;color:var(--slate);margin-top:2px}.grid{display:grid;gap:14px}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-split{grid-template-columns:340px 1fr}.grid-split-wide{grid-template-columns:380px 1fr}.grid-2-3{grid-template-columns:1.6fr 1fr}@media screen and (max-width:760px){.grid-2,.grid-3,.grid-4,.grid-split,.grid-split-wide,.grid-2-3{grid-template-columns:1fr}}.tile{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:18px;cursor:pointer;text-align:left;transition:box-shadow .12s,border-color .12s}.tile:hover{box-shadow:0 6px 18px #08214f1a;border-color:var(--gold-2)}.tile .icon{font-size:22px;margin-bottom:8px}.tile h3{font-size:14.5px;margin-bottom:3px}.tile p{font-size:12px;color:var(--slate);margin:0}.statcard{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--radius);padding:14px 16px}.statcard .num{font-family:var(--serif);font-size:24px;font-weight:700;color:var(--navy)}.statcard .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--slate)}.icon-badge{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0}.icon-badge.blue{background:var(--accent-blue-tint)}.icon-badge.green{background:var(--accent-green-tint)}.icon-badge.gold{background:var(--accent-gold-tint)}.icon-badge.purple{background:var(--accent-purple-tint)}.icon-badge.lg{width:64px;height:64px;border-radius:16px;font-size:28px}.method-tile{background:var(--white);border:1px solid var(--line);border-radius:var(--tile-radius);padding:26px 20px 20px;cursor:pointer;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;transition:box-shadow .12s,border-color .12s;font-family:var(--sans)}.method-tile:hover{box-shadow:var(--card-shadow-hover);border-color:var(--gold-2)}.method-tile .icon-badge{margin-bottom:8px}.method-tile h3{font-size:15px;margin:0;color:var(--ink)}.method-tile p{font-size:12.5px;color:var(--slate);margin:0;line-height:1.5}.method-tile .method-cta{margin-top:12px;padding-top:14px;border-top:1px solid var(--paper-2);width:100%;font-size:12.5px;font-weight:600;color:var(--accent-blue)}.tips-panel{background:var(--app-bg);border-radius:var(--tile-radius);padding:22px 24px;grid-column:span 2}@media screen and (max-width:760px){.tips-panel{grid-column:span 1}}.tips-panel .tips-head{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--accent-blue);font-size:14px;margin-bottom:12px}.tips-panel ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}.tips-panel li{font-size:12.5px;color:var(--ink);display:flex;gap:8px;align-items:flex-start}.step-head{display:flex;align-items:center;gap:10px;margin-bottom:16px}.step-badge{width:24px;height:24px;border-radius:50%;background:var(--accent-blue);color:var(--white);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--sans)}.step-head h2{font-family:var(--sans);font-size:15px;margin:0;color:var(--ink)}.report-type-card{background:var(--white);border:2px solid var(--line);border-radius:var(--tile-radius);padding:20px 16px;cursor:pointer;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;transition:border-color .12s,background .12s;font-family:var(--sans)}.report-type-card:hover{border-color:var(--gold-2)}.report-type-card.selected{border-color:var(--accent-blue);background:var(--accent-blue-tint)}.report-type-card h3{font-size:13.5px;margin:6px 0 4px;color:var(--ink)}.report-type-card p{font-size:11.5px;color:var(--slate);margin:0;line-height:1.4}.report-type-card .radio-dot{position:absolute;top:12px;right:12px;width:16px;height:16px;border-radius:50%;border:2px solid var(--line);background:var(--white);box-sizing:border-box}.report-type-card.selected .radio-dot{border-color:var(--accent-blue)}.report-type-card.selected .radio-dot:after{content:"";display:block;width:8px;height:8px;border-radius:50%;background:var(--accent-blue);margin:2px}.field-row{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px}.field-row .field{flex:1;margin-bottom:0;min-width:0}.field-row .info-caption{display:flex;gap:6px;align-items:flex-start;font-size:11.5px;color:var(--slate);max-width:190px;padding-top:27px;line-height:1.4}.field-row .info-caption .info-dot{width:16px;height:16px;border-radius:50%;background:var(--accent-blue-tint);color:var(--accent-blue);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}@media screen and (max-width:760px){.field-row{flex-direction:column;gap:4px}.field-row .info-caption{max-width:none;padding-top:0}}.check-list{border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;max-height:180px;overflow-y:auto}.check-list label{display:flex;align-items:center;gap:8px;font-weight:400;font-size:13px;padding:5px 2px}.check-list input{width:auto}.tip-box{background:var(--accent-blue-tint);border-radius:10px;padding:14px 16px;display:flex;gap:10px;margin-bottom:16px}.tip-box .info-dot{width:20px;height:20px;border-radius:50%;background:var(--accent-blue);color:var(--white);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tip-box strong{display:block;font-size:12.5px;color:var(--ink);margin-bottom:2px}.tip-box p{font-size:11.5px;color:var(--slate);margin:0;line-height:1.5}.tip-box a{color:var(--accent-blue);font-weight:600}.report-cover .rmeta div .v{font-weight:700;color:var(--ink);display:block;margin-top:1px}.result-tile{background:var(--white);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:20px 16px;text-align:center;display:flex;flex-direction:column;gap:6px;align-items:center}.result-tile .r-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--slate);font-weight:700}.result-tile .r-value{font-family:var(--sans);font-size:21px;font-weight:700;color:var(--ink)}.result-tile .r-sub{font-size:11px;color:var(--slate)}.dash-statcard{background:var(--white);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:18px 20px;display:flex;flex-direction:column;gap:14px}.dash-statcard .row{display:flex;align-items:center;gap:14px}.dash-statcard .num{font-family:var(--sans);font-size:26px;font-weight:700;color:var(--ink);line-height:1.1}.dash-statcard .lbl{font-size:12px;color:var(--slate);margin-top:2px}.dash-statcard .view-all{font-size:12px;font-weight:600;color:var(--accent-blue);background:none;border:none;cursor:pointer;padding:12px 0 0;display:flex;align-items:center;gap:4px;font-family:var(--sans);border-top:1px solid var(--paper-2)}.dash-statcard .view-all:hover{text-decoration:underline}.dash-tile{background:var(--white);border-radius:var(--tile-radius);box-shadow:var(--card-shadow);padding:16px 18px;cursor:pointer;text-align:left;display:flex;align-items:center;gap:14px;transition:box-shadow .12s,transform .12s;border:none;width:100%;font-family:var(--sans)}.dash-tile:hover{box-shadow:var(--card-shadow-hover);transform:translateY(-1px)}.dash-tile .body{flex:1;min-width:0}.dash-tile h3{font-family:var(--sans);font-size:13.5px;font-weight:700;color:var(--ink);margin:0 0 2px}.dash-tile p{font-size:11.5px;color:var(--slate);margin:0}.dash-tile .chev{color:var(--slate);font-size:16px;flex-shrink:0}.widget-panel{background:var(--white);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:20px 22px}.widget-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:10px;flex-wrap:wrap}.widget-head h2{font-family:var(--sans);font-size:15px;margin:0;color:var(--ink)}.widget-select{border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:12px;font-family:var(--sans);background:var(--white);color:var(--ink)}.dash-statcard-inline-num{font-family:var(--sans);font-size:22px;font-weight:700;color:var(--ink)}.activity-list{display:flex;flex-direction:column}.activity-row{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid var(--paper-2)}.activity-row:last-child{border-bottom:none;padding-bottom:0}.activity-row .icon-badge{width:34px;height:34px;border-radius:9px;font-size:14px}.activity-row .a-title{font-size:12.5px;color:var(--ink);font-weight:600}.activity-row .a-sub{font-size:11px;color:var(--slate);margin-top:1px}.activity-row .a-time{font-size:11px;color:var(--slate);white-space:nowrap;margin-left:auto;padding-left:8px}.donut-legend{display:flex;flex-direction:column;gap:8px;margin-top:14px}.donut-legend .item{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink)}.donut-legend .swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.donut-legend .count{margin-left:auto;color:var(--slate)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:8px 10px;border-bottom:1px solid var(--paper-2);text-align:left;vertical-align:middle}th{background:var(--paper-2);color:var(--navy-2);font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;text-align:center;vertical-align:middle}tr:hover td{background:#f5f9ff}td input,td select{padding:5px 7px;font-size:12.5px;border:1px solid var(--line);border-radius:2px;width:100%}.table-wrap{overflow-x:auto}td.col-center,th.col-center{text-align:center;vertical-align:middle}td.col-left{text-align:left;vertical-align:middle}.bubblegroup{display:inline-flex;gap:4px}.bubblebtn{width:24px;height:24px;border-radius:50%;border:1.4px solid var(--ink);background:var(--white);color:var(--ink);font-family:var(--mono);font-weight:700;font-size:11px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;line-height:1}.bubblebtn:hover{border-color:var(--gold)}.bubblebtn.sel{background:var(--navy);color:var(--white);border-color:var(--navy)}.bubblebtn.correct{box-shadow:0 0 0 2px #0f0}.answer-incorrect{color:var(--bad);font-weight:700}.pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600}.pill-good{background:#e9f4eb;color:var(--good)}.pill-warn{background:#fbf0e3;color:var(--warn)}.pill-bad{background:#fbeaea;color:var(--bad)}.pill-neutral{background:var(--paper-2);color:var(--slate)}.badge-code{font-family:var(--mono);background:var(--paper-2);padding:2px 7px;border-radius:2px;font-size:12px;letter-spacing:.05em}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.report-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:20px;box-shadow:var(--card-shadow)}.report-toolbar .rt-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.report-toolbar .rt-label{font-size:12.5px;color:var(--slate);font-weight:600;white-space:nowrap}.report-toolbar .rt-divider{width:1px;align-self:stretch;background:var(--line)}.report-toolbar .rt-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}@media screen and (max-width:760px){.report-toolbar .rt-divider{display:none}.report-toolbar .rt-actions{margin-left:0}}.spacer{flex:1}.empty{padding:34px 20px;text-align:center;color:var(--slate)}.empty .big{font-size:30px;margin-bottom:8px}.crumbs{font-size:12px;color:var(--slate);margin-bottom:12px}.crumbs button{background:none;border:none;color:var(--navy-2);cursor:pointer;font-size:12px;padding:0;text-decoration:underline}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#13202d8c;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.modal{background:var(--white);border-radius:var(--radius);max-width:640px;width:100%;max-height:88vh;overflow:auto;border-top:4px solid var(--gold)}.modal-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:20px}.modal-foot{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.modal-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--slate)}.flag-card{background:#fbf0e3;border:1px solid #E9CBA0;border-radius:3px;padding:12px 14px;margin-bottom:10px}.flag-card .flag-title{font-size:13px;color:var(--warn);margin-bottom:8px}.flag-card.bad{background:#fbeaea;border-color:#f0c6c6}.flag-card.bad .flag-title{color:var(--bad)}.report{background:var(--white)}.report-cover{border-bottom:3px solid var(--navy);padding-bottom:14px;margin-bottom:18px}.report-cover h1{font-size:21px}.report-cover .rmeta{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px 20px;font-size:12.5px;margin-top:10px}.report-cover .rmeta div span{color:var(--accent-blue);font-weight:700;display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em}.report-section{margin-bottom:24px}.report-section h2{font-size:14.5px;border-bottom:2px solid var(--gold);padding-bottom:6px;margin-bottom:12px;text-transform:uppercase;letter-spacing:.04em}.bar{background:var(--paper-2);border-radius:2px;height:10px;overflow:hidden}.bar>div{background:var(--gold);height:100%}.interp-block{border-left:3px solid var(--navy);background:var(--paper-2);padding:10px 14px;margin-bottom:8px;border-radius:2px;font-size:12.5px;white-space:pre-wrap}.print-only{display:none}@media print{html,body,#root{height:auto!important}#app,.app-root{min-height:0!important;height:auto!important;display:block!important}.shell{display:block!important;min-height:0!important;height:auto!important}.main{flex:none!important;overflow:visible!important;height:auto!important;padding:0}.no-print,.topbar,.sidenav{display:none!important}body{background:var(--white)}.sheet-page,.report{box-shadow:none;border:none;max-width:none}.page-break{page-break-before:always}.print-only{display:block}.grid-2{grid-template-columns:1fr 1fr!important}.grid-3{grid-template-columns:repeat(3,1fr)!important}.grid-4{grid-template-columns:repeat(4,1fr)!important}.class-detail-grid{display:block!important}.report-section,tr,.report-chart,img{page-break-inside:avoid}h1,h2,h3{page-break-after:avoid}.panel{padding:0;margin-bottom:10px;border:none}.panel-head{margin-bottom:6px}table{font-size:11.5px}th,td{padding:5px 7px}}.pdf-render-mode .no-print{display:none!important}.pdf-render-mode .print-only{display:block}.pdf-render-mode .grid-2{grid-template-columns:1fr 1fr!important}.pdf-render-mode .grid-3{grid-template-columns:repeat(3,1fr)!important}.pdf-render-mode .grid-4{grid-template-columns:repeat(4,1fr)!important}.pdf-render-mode .panel{padding:0;margin-bottom:10px;border:none}.pdf-render-mode .panel-head{margin-bottom:6px}.pdf-render-mode table{font-size:11.5px}.pdf-render-mode th,.pdf-render-mode td{padding:5px 7px}.footer-note{font-size:11px;color:var(--slate);text-align:center;padding:14px}::selection{background:var(--gold-2);color:var(--white)}.sheet-page{background:var(--white);width:100%;max-width:600px;margin:0 auto;padding:0;border:1px solid var(--line);box-shadow:0 4px 16px #0000000f}.sheet-print-pair{display:flex;flex-direction:row;flex-wrap:wrap;gap:16px;justify-content:center;align-items:flex-start}.sheet-print-pair .sheet-page{width:320px;max-width:46%}@page a5-landscape-pair{size:A4 landscape;margin:.5cm}@media print{.sheet-print-pair{page:a5-landscape-pair;gap:10px;flex-wrap:nowrap;justify-content:space-between}.sheet-print-pair .sheet-page{width:48%;max-width:48%}}.sheet-page-a4{background:var(--white);width:100%;max-width:700px;margin:0 auto;padding:0;border:1px solid var(--line);box-shadow:0 4px 16px #0000000f}@page a4-portrait-single{size:A4 portrait;margin:.5cm}@media print{.sheet-page-a4{page:a4-portrait-single;box-shadow:none;border:none;max-width:none}}.exam-page{max-width:760px;margin:0 auto;padding:0 14px}.exam-bar{position:sticky;top:0;z-index:5;background:var(--paper);display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.exam-timer{font-weight:700;font-size:18px;color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap}.exam-timer.low{color:var(--bad)}.exam-card{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:18px;margin-top:14px}.exam-qmeta{font-size:12px;color:var(--slate);margin-bottom:8px}.exam-question{font-size:16px;line-height:1.55;margin-bottom:16px;white-space:pre-wrap;color:var(--ink)}.exam-choice{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;background:var(--white);border:1.5px solid var(--line);border-radius:10px;padding:13px 14px;margin-bottom:10px;font-size:15px;font-family:var(--sans);color:var(--ink);cursor:pointer}.exam-choice:hover{border-color:var(--navy)}.exam-choice.selected{border-color:var(--navy);background:var(--accent-blue-tint)}.exam-choice-key{min-width:24px;height:24px;border-radius:50%;background:var(--paper-2);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--navy);flex-shrink:0}.exam-choice.selected .exam-choice-key{background:var(--navy);color:var(--white)}.exam-nav{display:flex;justify-content:space-between;gap:10px;margin-top:8px}.exam-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;justify-content:center}.exam-dot{width:38px;height:38px;border-radius:8px;border:1.5px solid var(--line);background:var(--white);font-weight:600;font-size:13px;color:var(--slate);cursor:pointer;font-family:var(--sans)}.exam-dot.answered{background:var(--accent-blue-tint);border-color:var(--navy);color:var(--navy)}.exam-dot.current{outline:2px solid var(--gold);outline-offset:1px}.exam-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.exam-dialog{background:var(--white);border-radius:12px;padding:20px;max-width:420px;width:100%}.exam-block{background:var(--paper-2);border-left:4px solid var(--gold);border-radius:8px;padding:12px 14px;margin-bottom:12px}.exam-block-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-2, var(--gold));margin-bottom:4px}.exam-block-text{font-size:14.5px;line-height:1.55;white-space:pre-wrap;color:var(--ink)}.exam-written{width:100%;min-height:110px;resize:none;overflow:hidden;box-sizing:border-box;border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;font-size:15px;line-height:1.5;font-family:var(--sans);color:var(--ink);background:var(--white)}.exam-written:focus{outline:none;border-color:var(--navy)}.exam-confirm{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);cursor:pointer;font-weight:400}.exam-confirm input{width:20px;height:20px;margin-top:2px;flex-shrink:0}.exam-confirm strong{display:block;font-size:14px;color:var(--ink)}.exam-confirm-note{display:block;font-size:12px;color:var(--slate);line-height:1.45;margin-top:2px}.exam-paper-note{display:flex;flex-direction:column;gap:4px;background:var(--paper-2);border:1.5px dashed var(--gold);border-radius:10px;padding:14px;font-size:14px;line-height:1.5;color:var(--ink)}.btn-stack,.btn-grid{display:flex;gap:8px;flex-wrap:wrap}@media screen and (max-width:760px){.btn-stack{flex-direction:column;width:100%}.btn-stack .btn{width:100%;padding:11px 16px}.btn-grid{display:grid;grid-template-columns:1fr 1fr}.btn-grid .btn{width:100%;padding:11px 12px}.btn-grid>:last-child:nth-child(odd){grid-column:1 / -1}.exam-nav .btn{flex:1 1 0;padding:12px 14px}}@media screen and (max-width:760px){.btn-mobile-full{width:100%;padding:11px 16px}}.tos-grid{grid-template-columns:29% 71%}.tos-grid>*{min-width:0}@media screen and (max-width:760px){.tos-grid{grid-template-columns:1fr}}.points-input{width:56px}.competency-input{border:none;background:transparent;width:100%;resize:none;overflow:hidden;font:inherit;color:inherit;padding:0;line-height:1.45}.competency-input:focus{outline:none}@media screen and (max-width:760px){.tos-table{table-layout:fixed;width:100%}.tos-table th,.tos-table td{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:3px;padding-right:3px}.tos-table select,.tos-table input{text-overflow:clip;padding-left:1px;padding-right:1px}.tos-table select{appearance:none;-webkit-appearance:none;-moz-appearance:none}.tos-table .points-input{width:100%}.tos-table td:first-child{text-overflow:clip}.tos-table col.col-item{width:10%}.tos-table col.col-key{width:8%}.tos-table col.col-domain{width:18%}.tos-table col.col-competency{width:30%}.tos-table col.col-itemtype{width:18%}.tos-table col.col-points{width:9%}.tos-table col.col-delete{width:7%}}.bell-wrap{position:relative;flex-shrink:0}.bell-btn{position:relative;background:none;border:none;cursor:pointer;font-size:19px;line-height:1;padding:6px 8px;border-radius:50%;color:inherit}.bell-btn:hover{background:var(--paper-2)}.bell-badge{position:absolute;top:0;right:0;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--bad);color:#fff;font-size:10.5px;font-weight:700;line-height:17px;text-align:center}.bell-panel{position:absolute;top:44px;right:0;width:min(390px,92vw);max-height:70vh;overflow-y:auto;background:var(--white);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #08214f2e;z-index:60}.bell-head{padding:12px 14px;font-weight:700;font-size:13px;color:var(--navy);border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--white)}.bell-empty{padding:22px 16px;font-size:12.5px;color:var(--slate);text-align:center}.bell-item{padding:11px 14px;border-bottom:1px solid var(--line);font-size:12.5px;line-height:1.45;text-align:left}.bell-item:last-child{border-bottom:none}.bell-item.unread{background:#f2f7ff}.bell-time{font-size:11px;color:var(--slate);margin-top:2px}.bell-accepted{margin-top:6px;font-size:12px;color:var(--good);font-weight:600;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.bell-link{background:none;border:none;padding:0;color:var(--navy-2);text-decoration:underline;cursor:pointer;font-size:12px;font-weight:600}@media screen and (max-width:640px){.bell-panel{position:fixed;top:60px;left:8px;right:8px;width:auto;max-height:calc(100vh - 76px)}.bell-item{font-size:13px;overflow-wrap:anywhere}}.bell-foot{display:block;width:100%;padding:11px 14px;background:var(--paper);border:none;border-top:1px solid var(--line);cursor:pointer;color:var(--navy-2);font-size:12.5px;font-weight:600;text-align:center}.bell-foot:hover{background:var(--paper-2)}.year-switch{display:flex;align-items:center;gap:7px;flex-shrink:0;position:relative}.year-switch-label{font-size:11px;font-weight:600;color:var(--slate)}.year-switch select{padding:7px 10px;border-radius:20px;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);font-size:12.5px;font-weight:600;cursor:pointer;max-width:200px}.year-switch select:focus{outline:2px solid var(--gold-2);outline-offset:1px}.year-switch-dot{width:8px;height:8px;border-radius:50%;background:var(--gold);position:absolute;top:-2px;right:-2px}.year-banner{background:#fff6de;border-bottom:1px solid #EBD28B;padding:8px 16px;font-size:12.5px;text-align:center}.year-banner button{background:none;border:none;padding:0;color:var(--navy-2);font-weight:700;cursor:pointer;text-decoration:underline}@media screen and (max-width:760px){.year-switch-label{display:none}.year-switch select{max-width:132px;padding:6px 8px;font-size:12px}}.ro-fieldset{border:0;padding:0;margin:0;min-width:0}.ro-fieldset:disabled input,.ro-fieldset:disabled select,.ro-fieldset:disabled textarea{opacity:.75;cursor:not-allowed}.class-rows{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}.class-row{display:grid;grid-template-columns:1.1fr 1.1fr .9fr .8fr auto;gap:12px;align-items:center;text-align:left;width:100%;box-sizing:border-box;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:10px 16px;font-size:13.5px;color:var(--ink);cursor:pointer}.class-row:not(.class-row-head):hover{border-color:var(--gold-2);background:var(--paper)}.class-row:focus-visible{outline:2px solid var(--gold-2);outline-offset:1px}.class-row-grade{font-weight:700;color:var(--navy)}.class-row-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:nowrap;min-width:300px;cursor:default}.class-row-head{background:transparent;border:none;padding:0 16px;font-size:11px;font-weight:700;color:var(--slate);text-transform:uppercase;letter-spacing:.04em;cursor:default}@media screen and (max-width:900px){.class-row{grid-template-columns:1fr 1fr 1fr 1fr;gap:8px;padding:11px 12px;font-size:12.5px}.class-row-actions{grid-column:1 / -1;justify-content:flex-start;flex-wrap:wrap;min-width:0}.class-row-head span:last-child{display:none}}.app-header{position:sticky;top:0;z-index:110;background:var(--white)}.btn-plus{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;margin-top:4px;border-radius:50%;border:none;background:var(--navy);color:var(--white);font-size:14px;line-height:1;font-weight:400;cursor:pointer;padding:0 0 1px}.btn-plus:hover{background:var(--navy-2)}.btn-plus:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}.view-as-banner{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;background:var(--navy);color:var(--white);padding:8px 16px;font-size:12.5px;text-align:center}
