/* Signed-in app shell: dark sidebar + top line + page (v0.8.0 design). Loaded after site.css. */
:root{--side:#0f1b2d;--side-2:#16263d;--side-ink:#c9d4e3;--side-dim:#7f8ea5;--accent:#1d4ed8;--accent-2:#2563eb;--accent-soft:#e8efff;--page:#f5f7fb;--card:#fff;--line2:#e3e8ef}
body.app{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh;min-height:100svh;background:linear-gradient(to right,var(--side) 260px,var(--page) 260px)}
.icon{width:18px;height:18px;flex:0 0 auto}

.sidebar{position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;gap:14px;padding:18px 14px;background:var(--side);color:var(--side-ink);overflow-y:auto}
.side-brand{display:flex;align-items:center;gap:10px;padding:4px 2px 14px;border-bottom:1px solid rgba(255,255,255,.08);color:#fff;text-decoration:none}
.side-brand img{width:68px;height:52px;object-fit:contain;background:#fff;border-radius:11px;padding:3px}
.side-brand strong{white-space:nowrap}
.side-brand strong,.side-brand small{display:block}.side-brand strong{font-size:18.5px;letter-spacing:.2px;line-height:1.2}.side-brand small{color:var(--side-dim);font-size:13px}
.side-vendor{display:grid;gap:6px;padding:10px;border-radius:10px;background:var(--side-2)}
.side-vendor small{color:var(--side-dim);font-size:10px;text-transform:uppercase;letter-spacing:1px;font-weight:700}
.side-vendor img{display:block;max-width:100%;height:40px;object-fit:contain;background:#fff;border-radius:7px;padding:4px}
.side-nav{display:grid;gap:3px;flex:1;align-content:start}
.side-label{margin:12px 8px 6px;color:var(--side-dim);font-size:10.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase}
.side-link{display:flex;align-items:center;gap:11px;min-height:40px;padding:8px 11px;border-radius:9px;color:var(--side-ink);text-decoration:none;font-weight:600}
.side-link:hover{background:var(--side-2);color:#fff}
.side-link.active{background:var(--accent);color:#fff;box-shadow:0 6px 16px rgba(29,78,216,.38)}
.side-user{display:grid;gap:10px;padding:12px;border-radius:12px;background:var(--side-2)}
.side-user-row{display:flex;align-items:center;gap:10px;min-width:0}
.side-user-row>span:last-child{min-width:0}
.side-user strong,.side-user small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-user strong{color:#fff;font-size:13px}.side-user small{color:var(--side-dim);font-size:11.5px}
.side-user .avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);font-size:13px;letter-spacing:.5px}
.side-user form{margin:0}
.signout{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:36px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:transparent;color:var(--side-ink);font-weight:650;cursor:pointer}
.signout:hover{background:rgba(255,255,255,.07);color:#fff}

.main{display:flex;flex-direction:column;min-width:0;min-height:100vh;min-height:100svh}
.topline{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 32px;background:#fff;border-bottom:1px solid var(--line2)}
.crumbs{color:var(--muted)}.crumbs strong{color:var(--ink)}
.session-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:99px;background:#eef2f7;color:#475569;font-size:12px;font-weight:650}
.session-pill .icon{width:14px;height:14px}
.page{flex:1;width:100%;max-width:1180px;padding:28px 32px}
.app-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 32px;border-top:1px solid var(--line2);color:var(--muted);font-size:11.5px}
.app-footer a{color:var(--accent);text-decoration:none;font-weight:650}

/* Shared look inside the app */
body.app .panel,body.app .table-wrap{border-color:var(--line2);border-radius:14px;box-shadow:0 1px 2px rgba(15,27,45,.04),0 8px 24px rgba(15,27,45,.05)}
body.app .primary,body.app a.button.primary{background:var(--accent)}
body.app .view,body.app .back,body.app .link-button{color:var(--accent)}
body.app h1{color:var(--side);letter-spacing:-.6px}
body.app input:focus,body.app select:focus{outline-color:rgba(29,78,216,.18);border-color:var(--accent)}
body.app .pill{background:var(--accent-soft);color:var(--accent)!important}

body.app .page a:not(.button):not(.browse):not(.side-link){color:var(--accent);text-decoration:none;font-weight:650}
body.app .page a:not(.button):not(.browse):hover{text-decoration:underline}
body.app .page .panel+.panel:not(.verify-card),body.app .page .table-wrap+.panel{margin-top:18px}

/* Home */
.home-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.home-head h1{margin:0}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:12px}
.home-sub{margin:4px 0 22px;color:var(--muted);font-size:14px}
.home-cards{gap:22px;margin-top:0}
.verify-card{display:flex;flex-direction:column;gap:16px;padding:24px}
.verify-top{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px}
.icon-box{display:grid;place-items:center;flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:var(--accent-soft);color:var(--accent)}
.icon-box .icon{width:22px;height:22px}
.verify-top h2{margin:2px 0 3px;font-size:17px}.verify-top p{margin:0;color:var(--muted)}
.verify-title{flex:1 1 200px;min-width:0}
.browse{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:7px 12px;border:1px solid var(--line2);border-radius:9px;color:var(--ink);text-decoration:none;font-weight:650;font-size:12.5px;white-space:nowrap}
.browse:hover{border-color:var(--accent);color:var(--accent)}.browse .icon{width:14px;height:14px}
.verify-form label{display:block;margin-bottom:6px;font-weight:700;font-size:12.5px}
.verify-form .search{margin:0}
.verify-card.disabled{opacity:.55}.verify-card.disabled .icon-box{background:#eef2f7;color:var(--muted)}
.locked-note{margin:0;padding:12px;border-radius:9px;background:#f4f6fa;color:var(--muted)}

@media(max-width:900px){
 body.app{display:block;background:var(--page)}
 .sidebar{position:static;height:auto;padding:12px;gap:10px}
 .side-brand{padding-bottom:10px}
 .side-nav{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-inline:-12px;padding-inline:12px}
 .side-link{flex:0 0 auto;white-space:nowrap}
 .side-label{display:none}
 .side-link{min-height:36px;padding:6px 10px;font-size:13px}
 .side-vendor{grid-template-columns:auto 1fr;align-items:center}.side-vendor img{height:32px;justify-self:start}
 .side-user{grid-template-columns:1fr auto;align-items:center;padding:8px 10px}
 .signout{width:auto;padding-inline:12px}
 .main{min-height:0}
 .topline,.page,.app-footer{padding-inline:16px}
 .page{padding-block:20px}
}
@media(max-width:520px){
 .side-link span{font-size:12.5px}
 .verify-top{flex-wrap:wrap}
 .session-pill{font-size:11px}
}

/* Sign-in page (v0.9.0): brand panel with outline artwork + social links on the left, form on the right */
body.split{display:grid;grid-template-columns:minmax(380px,46%) 1fr;min-height:100vh;min-height:100svh;background:var(--page);font-size:14px}
.brand-panel{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:stretch;--m:clamp(24px,4vh,44px);padding:var(--m);color:#dbe5f5;
 background:radial-gradient(120% 80% at 100% 0%,rgba(29,78,216,.55) 0%,rgba(29,78,216,0) 60%),linear-gradient(160deg,#0f1b2d 0%,#12244a 55%,#1d4ed8 140%)}
/* Blue panel as an inset rounded card with equal space on all four sides (desktop) */
@media(min-width:901px){
 body.split{--outer:clamp(14px,2.8vh,30px)}
 .brand-panel{margin:var(--outer) 0 var(--outer) var(--outer);height:calc(100vh - 2*var(--outer));height:calc(100svh - 2*var(--outer));border-radius:28px;box-shadow:0 18px 48px rgba(15,27,45,.22)}
 .login-side{height:100vh;height:100svh;padding:var(--outer) 24px}
}
.brand-art{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.brand-art .art-ring,.brand-art .art-line{fill:none;stroke:rgba(147,180,255,.28);stroke-width:1.6}
.brand-art .thin{stroke:rgba(147,180,255,.16);stroke-width:1.2}
.brand-art .art-line{stroke:rgba(147,180,255,.22);stroke-dasharray:4 7}
.brand-art pattern circle{fill:rgba(147,180,255,.3)}
.brand-top{display:flex;align-items:center;gap:20px}
.brand-mark{display:grid;place-items:center;flex:0 0 auto;width:146px;height:112px;padding:5px;border-radius:24px;background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.08),0 12px 30px rgba(0,0,0,.25)}
.brand-mark img{width:100%;height:100%;object-fit:contain}
.brand-name strong,.brand-name small{display:block}.brand-name strong{color:#fff;font-size:34px;line-height:1.1;letter-spacing:-.3px}.brand-name small{margin-top:4px;color:#9fb2d4;font-size:19px}
.brand-inner{display:flex;flex-direction:column;gap:clamp(12px,2.2vh,22px);width:100%}
.brand-copy{max-width:none}
.login-inner{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:440px}
.brand-kicker{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid rgba(147,180,255,.35);border-radius:99px;color:#c7d6f5;font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}
.brand-kicker .icon{width:16px;height:16px}
.brand-copy h2{margin:16px 0 10px;color:#fff;font-size:clamp(26px,2.6vw,36px);line-height:1.15;letter-spacing:-.6px}
.brand-copy p{margin:0 0 22px;color:#b9c8e3;font-size:15px;line-height:1.6}
.brand-points{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.brand-points li{display:flex;align-items:center;gap:12px;color:#dbe5f5}
.brand-points .icon{width:34px;height:34px;padding:8px;border-radius:10px;background:rgba(147,180,255,.12);color:#9cc0ff}
.brand-foot{display:grid;gap:12px}
.social-title{color:#8fa3c7;font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase}
.social{display:flex;flex-wrap:wrap;gap:10px}
.social a{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(147,180,255,.3);border-radius:12px;color:#dbe5f5;transition:background .15s,border-color .15s,transform .15s}
.social a:hover,.social a:focus-visible{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-2px)}
.brand-contact a{display:inline-flex;align-items:center;gap:8px;color:#b9c8e3;text-decoration:none;font-size:13px}.brand-contact a:hover{color:#fff}
.brand-contact .icon{width:16px;height:16px}

.login-side{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:clamp(16px,3vh,32px) 24px}
body.split .login-card{width:100%;max-width:440px;margin:0;padding:30px 32px;border:1px solid var(--line2);border-radius:18px;box-shadow:0 1px 2px rgba(15,27,45,.04),0 18px 48px rgba(15,27,45,.08)}
body.split .eyebrow{color:var(--accent)}
body.split .login-card h1{margin:6px 0 8px;color:var(--side);font-size:28px}
body.split .login-card .muted{margin:0 0 6px}
body.split .form-stack{gap:6px;margin-top:14px}
body.split input,body.split select{min-height:44px;border-color:#cdd6e3;border-radius:10px}
body.split input:focus,body.split select:focus{outline:3px solid rgba(29,78,216,.18);border-color:var(--accent)}
body.split .portal-option{align-items:center;gap:10px!important;padding:10px;border-color:var(--line2);border-radius:12px}
body.split .portal-option:has(input:checked){border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}
body.split .portal-option input{accent-color:var(--accent);margin:0}
body.split .portal-option strong{font-size:12.5px}body.split .portal-option small{font-size:11px}
.opt-icon{display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;border-radius:9px;background:#eef2f7;color:var(--muted)}
.portal-option:has(input:checked) .opt-icon{background:var(--accent);color:#fff}
.signin{display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px!important;margin-top:12px!important;border-radius:12px!important;background:var(--accent)!important;font-size:15px;box-shadow:0 10px 24px rgba(29,78,216,.28);transition:background .15s,transform .15s}
.signin:hover{background:#1e40af!important;transform:translateY(-1px)}
.signin .icon{width:17px;height:17px}
.login-note{display:flex;align-items:center;justify-content:center;gap:7px;margin:16px 0 0;color:var(--muted);font-size:12px}
.login-note .icon{width:15px;height:15px;color:var(--accent)}
.login-footer{margin-top:8px;padding-top:12px;border-top:1px solid var(--line2);color:var(--muted);font-size:12px;text-align:center}.login-footer a{color:var(--accent);text-decoration:none;font-weight:650}
.social-label{display:flex;align-items:center;gap:8px}

@media(max-width:900px){
 body.split{display:block}
 .brand-panel{padding:22px 18px;gap:16px}
 .brand-copy h2{font-size:22px;margin:12px 0 8px}
 .brand-copy p,.brand-points{display:none}
 .brand-mark{width:94px;height:72px;padding:4px;border-radius:16px}
 .brand-name strong{font-size:24px}.brand-name small{font-size:15px}
 .social a{width:38px;height:38px}
 .login-side{padding:20px 12px 24px}
 body.split .login-card{padding:22px 18px}
 body.split .login-card input:not([type=radio]),body.split select{font-size:16px}
}
@media(max-width:900px){body.split .portal-choice{grid-template-columns:1fr}}

/* Record profile card with CMS photo (v0.10.0) */
.profile-card{display:flex;align-items:flex-start;gap:24px;padding:24px}
.profile-photo{display:block;flex:0 0 auto;width:120px;height:120px;border-radius:18px;object-fit:cover;background:#eef2f7;box-shadow:0 0 0 4px #fff,0 0 0 5px var(--line2)}
.profile-photo.initials{display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-size:38px;font-weight:800;letter-spacing:1px}
.profile-main{flex:1;min-width:0}
.profile-name{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}.profile-name h2{margin:0;font-size:22px;color:var(--side)}
.profile-name .status{margin-left:0}
.profile-card dl{grid-template-columns:150px minmax(0,1fr)}
@media(max-width:600px){.profile-card{flex-direction:column;align-items:center;text-align:center}.profile-name{justify-content:center}.profile-card dl{text-align:left;width:100%}}

/* D7: same full layout on every screen. js/fit.js scales each side to fill the available height (left panel may grow
   to remove empty space); these steps are the fallback when scripts are off. Nothing is hidden. */
@media(min-width:901px) and (max-height:900px){.brand-inner,.login-inner{zoom:.92}}
@media(min-width:901px) and (max-height:820px){.brand-inner,.login-inner{zoom:.84}}
@media(min-width:901px) and (max-height:740px){.brand-inner,.login-inner{zoom:.77}}
@media(min-width:901px) and (max-height:670px){.brand-inner,.login-inner{zoom:.71}}
@media(min-width:901px) and (max-height:600px){.brand-inner,.login-inner{zoom:.64}}

/* Desktop: wider sign-in card, portal choices side by side (lets the card grow to the blue panel's height) */
@media(min-width:901px){.login-inner{max-width:600px}body.split .login-card{max-width:600px;padding:34px 38px}body.split .portal-choice{grid-template-columns:1fr 1fr}}

/* v0.10.5: larger text and logo, less empty space (both sides are auto-sized to the screen height) */
.cred-row{display:grid;gap:3px}.cred-row .field{display:grid;gap:5px;min-width:0}
@media(min-width:901px){
 .brand-mark{width:200px;height:156px;padding:6px 7px;border-radius:30px}
 .brand-top{gap:26px}
 .brand-name strong{font-size:46px}.brand-name small{font-size:25px;margin-top:6px}
 .brand-kicker{font-size:14px;padding:7px 14px}
 .brand-copy h2{font-size:40px;margin:14px 0 10px}
 .brand-copy p{font-size:18px;line-height:1.5;margin-bottom:16px}
 .brand-points{gap:10px}.brand-points li{font-size:17px}
 .social-title{font-size:13px}
 .social a{width:46px;height:46px}.social .icon{width:20px;height:20px}
 .brand-contact a{font-size:15px}
 body.split .login-card{padding:28px 34px}
 body.split .login-card .eyebrow{font-size:12px}
 body.split .login-card h1{font-size:34px;margin:4px 0 6px}
 body.split .login-card>.muted{font-size:15.5px;margin-bottom:2px}
 body.split .form-stack{gap:5px;margin-top:10px}
 body.split .form-stack label,body.split .portal-choice legend{font-size:15px}
 body.split .portal-option strong{font-size:15px}body.split .portal-option small{font-size:12.5px}
 body.split input,body.split select{font-size:16px;min-height:48px}
 .cred-row{grid-template-columns:1fr 1fr;gap:14px;margin-top:2px}
 .signin{font-size:17px;min-height:52px!important}
 .login-note{font-size:13px;margin-top:12px}
 .login-footer{font-size:13px;margin-top:6px;padding-top:10px}
}

/* ---------- Reporting module (v0.11.0) ---------- */
.req{color:#b42318;font-weight:800}
.back-link{font-weight:700;text-decoration:none;white-space:nowrap}
body.app .button.ghost{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line2);color:var(--ink,#172433);padding:8px 13px;font-weight:700}
body.app .button.ghost:hover{border-color:var(--accent);color:var(--accent)}
.head-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.record-visit{display:inline-flex!important;align-items:center;gap:8px;align-self:flex-start;margin-left:auto;white-space:nowrap}
.profile-card{position:relative}
body.app textarea{width:100%;border:1px solid #bdcbd5;border-radius:8px;padding:8px 10px;font:inherit;resize:vertical}
body.app textarea:focus{outline:3px solid rgba(14,90,120,.15);border-color:var(--accent)}
.auto-fields h2 .muted{font-size:13px;font-weight:500}
.auto-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 18px}
.auto-grid div{display:grid;grid-template-columns:110px minmax(0,1fr)}
.visit-form form{display:grid;gap:16px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.field{display:grid;gap:5px;align-content:start;min-width:0}
.field label,.field .flabel{font-weight:700}
.field small{margin:0}
.field.wide{grid-column:1/-1}
fieldset.who,fieldset.amounts{border:1px solid var(--line2);border-radius:12px;padding:12px 14px;margin:0}
fieldset.who legend,fieldset.amounts legend{font-weight:800;padding:0 6px}
fieldset.amounts{display:grid;gap:8px}
fieldset.who{display:flex;flex-wrap:wrap;gap:10px}
.who-option{display:flex;align-items:center;gap:10px;min-width:210px;padding:10px 12px;border:1px solid var(--line2);border-radius:10px;cursor:pointer;background:#fff}
.who-option:has(input:checked){border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px rgba(29,78,216,.12)}
.who-option input{width:16px;height:16px;min-height:0;margin:0;accent-color:var(--accent)}
.who-option strong,.who-option small{display:block}.who-option small{color:#667483}
.visits-table td span{display:block;color:#667483;font-size:12px}
.table-wrap.flat{border-radius:10px;box-shadow:none!important}
tr.cancelled td{color:#9aa5b1}tr.cancelled td:not(:last-child){text-decoration:line-through}
td.num,th.num{text-align:right;white-space:nowrap}
td.wrap{white-space:normal;min-width:260px}
.visit-detail{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:6px}
.visit-detail .panel+.panel{margin-top:0!important}
body.app .page .visit-detail+.panel{margin-top:18px}
.change-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.cancel-form{display:flex;gap:8px;flex:1;min-width:280px}
.danger{min-height:39px;border:1px solid #f1b8b4;border-radius:8px;padding:8px 14px;background:#fff5f4;color:#b42318;font-weight:750;cursor:pointer;white-space:nowrap}
.danger:hover{background:#fdecec}
.inline{display:inline;margin:0}
.inline-edit{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inline-edit input[name=name]{flex:1;min-width:200px}
fieldset.choice.stack{display:grid;gap:6px}
/* Reports */
.report-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:14px 0 18px}
.report-card{display:flex;gap:14px;align-items:flex-start;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}
.report-card:hover{border-color:var(--accent);box-shadow:0 10px 26px rgba(29,78,216,.14)}
.report-card strong{display:block;font-size:16px;margin-bottom:4px;color:#0f1b2d}.report-card small{display:block;color:#667483;font-size:13px}
.report-card .go{margin-left:auto;color:var(--accent)}
.quick-links{display:flex;flex-wrap:wrap;gap:8px}
.quick-links a{padding:7px 12px;border-radius:99px;background:var(--accent-soft);font-weight:650;text-decoration:none!important}
.report-head h1{margin-bottom:4px}
.report-filters{display:grid;gap:14px;margin-top:14px}
.period-row{display:flex;flex-wrap:wrap;gap:6px}
.seg{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:inline-block;padding:7px 13px;border:1px solid var(--line2);border-radius:99px;font-weight:650;background:#fff}
.seg input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}
.seg input:focus-visible+span{outline:3px solid rgba(29,78,216,.3)}
.custom-dates{display:none;gap:12px;flex-wrap:wrap}.custom-on .custom-dates{display:flex}
.custom-dates label{display:flex;align-items:center;gap:8px;font-weight:700}.custom-dates input{width:auto}
.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 16px}
.pair{display:flex;gap:6px}
details.multi{position:relative}
details.multi summary{list-style:none;min-height:39px;border:1px solid #bdcbd5;border-radius:8px;padding:8px 30px 8px 10px;background:#fff;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}
details.multi summary::-webkit-details-marker{display:none}
details.multi summary:after{content:"";position:absolute;right:12px;top:15px;border:5px solid transparent;border-top-color:#667483}
details.multi[open] summary{border-color:var(--accent)}
.multi-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);display:grid;gap:4px;max-height:260px;overflow:auto;padding:10px 12px;background:#fff;border:1px solid var(--line2);border-radius:10px;box-shadow:0 14px 30px rgba(15,27,45,.16)}
.multi-list .check{font-weight:550}
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:18px 0 8px}
.stat{background:#fff;border:1px solid var(--line2);border-radius:12px;padding:12px 14px;box-shadow:0 6px 16px rgba(12,39,66,.05)}
.stat small{display:block;color:#667483;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px}
.stat strong{display:block;font-size:24px;line-height:1.2;color:#0f1b2d;margin-top:2px}
.filter-note{margin:4px 0 14px}
body.app .page .chart-panel{margin:0 0 18px}
.bars{display:flex;align-items:stretch;gap:6px;height:250px;overflow-x:auto;overflow-y:hidden;padding-top:4px}
.bar{flex:1 1 0;min-width:28px;max-width:110px;display:flex;flex-direction:column;text-decoration:none!important}
.bar-track{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;border-bottom:1px solid var(--line2);min-height:0}
.bar-fill{display:block;width:100%;min-height:2px;border-radius:6px 6px 0 0;background:var(--accent);transition:background .15s;flex:0 0 auto}
.bar:hover .bar-fill{background:#1e40af}
.bar-val{font-size:11px;font-weight:700;color:#334;margin-bottom:3px;white-space:nowrap}
.bar-label{display:block;height:34px;padding-top:6px;font-size:11px;line-height:1.25;color:#667483;text-align:center;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.bars.many{height:300px}.bars.many .bar{min-width:20px}.bars.many .bar-val{font-size:9.5px}
.bars.many .bar-label{height:74px;writing-mode:vertical-rl;transform:rotate(180deg);text-align:left;display:block;white-space:nowrap;align-self:center;padding:0 0 6px}
.report-table th{white-space:nowrap}.report-table td{white-space:nowrap}
.report-table tr.total td{font-weight:800;background:#f6f8fc;border-top:2px solid #c9d4e3}
.report-table tr.sub td:first-child{padding-left:38px;color:#445}
.report-table tr:not(.total):hover td{background:#fafcff}
.report-table td.empty{text-align:center;padding:26px}
.save-form{display:flex;gap:10px;flex-wrap:wrap}.save-form input{flex:1;min-width:220px}
.saved-list{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}
.saved-list .chip{text-decoration:none!important}
body.app .page>.table-wrap+.panel,body.app .page>.panel.save-panel{margin-top:18px}
@media(max-width:1200px){.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.auto-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.report-cards{grid-template-columns:1fr}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.visit-detail{grid-template-columns:1fr}}
@media(max-width:600px){.filter-grid,.form-grid,.form-grid.four,.auto-grid{grid-template-columns:1fr}.record-visit{margin-left:0}.who-option{min-width:0;width:100%}.cancel-form{flex-direction:column;min-width:0}.head-actions .button{flex:1;justify-content:center}}
body.app.wide-page .page{max-width:1640px}
table.history th,table.history td:not(.wrap){white-space:nowrap}
@media(max-width:720px){.report-table th,.report-table td,.visits-table th,.visits-table td,table.history th,table.history td{display:table-cell}.report-head .head-actions{width:100%}}
