@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_6c5b95d1-module__DpEtSa__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_6c5b95d1-module__DpEtSa__variable{--font-sans:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
:root{--bg:#eef2f7;--paper:#fff;--ink:#0b1220;--ink-2:#1e293b;--muted:#475569;--line:#cbd5e1;--line-soft:#e2e8f0;--primary:#1d4ed8;--primary-hover:#1943ba;--primary-ink:#1c4acd;--primary-line:#1d4ed8;--primary-soft:#e4eafa;--on-primary:#fff;--secondary:#0f766e;--secondary-soft:#e2efee;--secondary-ink:#0c5e58;--on-secondary:#fff;--banner:#1e3a8a;--banner-2:#1e43ad;--on-banner:#fff;--on-banner-muted:#ced4e5;--animation:#38bdf8;--animation-soft:#afe5fc;--logo:#1d4ed8;--on-logo:#fff;--primary-glow:color-mix(in srgb, var(--primary) 45%, transparent);--animation-glow:color-mix(in srgb, var(--animation) 40%, transparent);--focus-glow:color-mix(in srgb, var(--animation) 40%, transparent);--blob-1:color-mix(in srgb, var(--banner) 15%, transparent);--blob-2:color-mix(in srgb, var(--secondary) 14%, transparent);--blob-3:color-mix(in srgb, var(--animation) 15%, transparent);--canvas:radial-gradient(70vmax 55vmax at 100% 0%, var(--blob-1), transparent 62%), radial-gradient(60vmax 50vmax at 0% 100%, var(--blob-2), transparent 60%), radial-gradient(40vmax 36vmax at 60% 40%, var(--blob-3), transparent 65%);--glass-filter:blur(24px) saturate(180%);--glass-bar:#ffffffb8;--glass-thick:#ffffffe6;--glass-card:#ffffffbd;--glass-drawer:#ffffffdb;--surface-strong:#fffffff0;--glass-border:#ffffffbf;--glass-edge:#0f172a14;--glass-rim:inset 0 1px 0 #ffffffe6, inset 0 -1px 0 #0f172a0a;--glass-sheen:linear-gradient(180deg, #ffffff80, #fff0 42%);--elev-1:0 1px 2px #0f172a0f, 0 6px 16px -6px #0f172a1f;--elev-2:0 2px 6px #0f172a0f, 0 16px 40px -12px #0f172a38;--elev-3:0 24px 64px -16px #0b122061;--radius-bar:22px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-page:cubic-bezier(.4, 0, .2, 1);--page-duration:.42s;--success:#15803d;--success-ink:#14532d;--success-soft:#dcfce7;--warning:#b45309;--warning-ink:#78350f;--warning-soft:#fef3c7;--danger:#b91c1c;--danger-ink:#7f1d1d;--danger-soft:#fee2e2;--focus:var(--primary-ink);--radius:20px;--radius-sm:12px;--shadow:0 1px 2px #0f172a14, 0 4px 16px #0f172a0f;--font:var(--font-sans), "Segoe UI", Roboto, Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55}h1,h2,h3,p{margin:0}h1{letter-spacing:-.02em;font-size:28px;font-weight:800;line-height:1.25}h2{letter-spacing:-.01em;font-size:19px;font-weight:750;line-height:1.3}h3{font-size:17px;font-weight:700}p{color:var(--ink-2)}a{color:inherit;text-decoration:none}small{font-size:14px}svg{flex-shrink:0}button,input,select,textarea{font:inherit;color:inherit}button,select{cursor:pointer}button{background:0 0;border:0}button:disabled,select:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}:is(.button,.tile,.nav-item,.tab-item,.role-card,.feed-card,.icon-button):focus-visible{box-shadow:0 0 0 7px var(--focus-glow)}::selection{background:var(--primary-soft);color:var(--ink)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--muted)}.full-width{grid-column:1/-1}.wrap{flex-wrap:wrap}.kicker,.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:800;display:block}.button{border-radius:var(--radius-sm);white-space:nowrap;border:2px solid #0000;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:12px 20px;font-size:16px;font-weight:700;line-height:1.2;transition:background-color .15s,border-color .15s;display:inline-flex}.button.block{width:100%}.button.large{min-height:56px;font-size:17px}.primary{background:var(--primary);color:var(--on-primary);box-shadow:inset 0 1px 0 #ffffff40, 0 6px 16px -8px var(--primary-glow)}.primary:hover:not(:disabled){background:var(--primary-hover)}.secondary{background:var(--paper);color:var(--ink);border-color:var(--line)}.secondary:hover:not(:disabled){border-color:var(--ink-2)}.selected-button{border-color:var(--primary-line);color:var(--primary-ink);background:var(--primary-soft)}.danger{background:var(--danger);color:#fff}.danger-outline{background:var(--paper);color:var(--danger);border-color:var(--danger)}.small-button{min-height:40px;padding:8px 14px;font-size:15px}.icon-button{border-radius:var(--radius-sm);width:44px;height:44px;color:var(--ink);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover:not(:disabled){background:var(--line-soft)}.text-link,.text-button{color:var(--primary-ink);text-underline-offset:3px;align-items:center;gap:6px;padding:4px 0;font-size:15px;font-weight:700;text-decoration:underline;display:inline-flex}input,textarea,select{border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);width:100%;min-height:48px;color:var(--ink);padding:11px 14px;font-size:16px}input::placeholder,textarea::placeholder{color:#64748b}input:focus,textarea:focus,select:focus{border-color:var(--primary-line);outline:3px solid color-mix(in srgb, var(--primary-line) 28%, transparent);outline-offset:0}textarea{resize:vertical}input[type=checkbox]{width:22px;height:22px;min-height:22px;accent-color:var(--primary);flex:none;padding:0}input[type=file]{padding:10px;font-size:15px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.field{color:var(--ink);flex-direction:column;gap:8px;font-size:15px;font-weight:700;display:flex}.field-hint{color:var(--muted);font-weight:500}.field-error{color:var(--danger);font-weight:600}.required{color:var(--danger)}.check-field{grid-column:1/-1;align-items:flex-start;gap:12px;font-size:15px;font-weight:600;display:flex}.check-field small{color:var(--muted);font-weight:500;display:block}.danger-confirm{border:2px solid var(--danger);border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger-ink);padding:14px}.nested-field{border:2px solid var(--line-soft);border-radius:var(--radius-sm);flex-direction:column;grid-column:1/-1;gap:14px;margin:0;padding:16px;display:flex}.nested-field legend{padding:0 6px;font-weight:800}.array-entry{align-items:flex-start;gap:10px;display:flex}.array-entry>div{flex:1}.lookup{flex-direction:column;gap:8px;display:flex}.password-input{display:block;position:relative}.password-input input{padding-right:52px}.password-input button{width:44px;height:44px;color:var(--ink-2);place-items:center;display:grid;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.file-picker{border:2px dashed var(--line);border-radius:var(--radius-sm);align-items:center;gap:14px;padding:16px;font-weight:700;display:flex;position:relative}.file-picker small{color:var(--muted);font-weight:500;display:block}.file-picker input{opacity:0;cursor:pointer;position:absolute;inset:0}.weekday-picker{flex-wrap:wrap;gap:10px;display:flex}.weekday-picker label{border:2px solid var(--line);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:8px 12px;font-weight:600;display:flex}.info-message,.error-message,.success-message,.warning-message{border-radius:var(--radius-sm);border-left:5px solid;flex-wrap:wrap;align-items:flex-start;gap:10px;padding:14px 16px;font-size:15px;font-weight:600;line-height:1.5;display:flex}.info-message{background:var(--primary-soft);color:var(--primary-ink);border-color:var(--primary-line)}.error-message{background:var(--danger-soft);color:var(--danger-ink);border-color:var(--danger)}.success-message{background:var(--success-soft);color:var(--success-ink);border-color:var(--success)}.warning-message{background:var(--warning-soft);color:var(--warning-ink);border-color:var(--warning)}.success-text{color:var(--success);font-weight:700}.status{white-space:nowrap;border:1.5px solid;border-radius:999px;align-items:center;gap:7px;padding:4px 10px;font-size:14px;font-weight:700;display:inline-flex}.status i{background:currentColor;border-radius:50%;width:8px;height:8px}.status.green{color:var(--success-ink);background:var(--success-soft);border-color:#86efac}.status.red{color:var(--danger-ink);background:var(--danger-soft);border-color:#fca5a5}.status.amber{color:var(--warning-ink);background:var(--warning-soft);border-color:#fcd34d}.status.neutral{color:var(--ink-2);background:var(--line-soft);border-color:var(--line)}.pill{background:var(--line-soft);color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:14px;font-weight:700;display:inline-flex}.count-badge{background:var(--danger);color:#fff;text-align:center;border-radius:999px;min-width:26px;margin-left:auto;padding:2px 8px;font-size:13px}.skeleton{background:linear-gradient(90deg, var(--line-soft), #f8fafc, var(--line-soft));background-size:200% 100%;border-radius:8px;height:20px;margin:12px 0;animation:1.2s infinite shimmer}.loader{border:4px solid var(--line);border-top-color:var(--primary);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes shimmer{to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (max-width:640px){h1{font-size:24px}.form-grid{grid-template-columns:1fr}}
.brand{letter-spacing:-.02em;white-space:nowrap;color:var(--ink);align-items:center;gap:10px;font-size:21px;font-weight:800;display:inline-flex}.brand-mark{background:var(--logo);width:38px;height:38px;color:var(--on-logo);box-shadow:inset 0 1px 0 #ffffff59, 0 4px 12px -4px color-mix(in srgb, var(--logo) 60%, transparent);border-radius:11px;place-items:center;display:inline-grid}.avatar{background:var(--secondary);width:42px;height:42px;color:var(--on-secondary);border-radius:50%;flex-shrink:0;place-items:center;font-size:15px;font-weight:800;display:inline-grid}.avatar.small{width:40px;height:40px;font-size:14px}.avatar.light{color:var(--primary-ink);background:#ffffffeb}.standalone{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100dvh;padding:24px;display:flex}.login-page{background:var(--paper);grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100dvh;display:grid}.login-story{isolation:isolate;background:linear-gradient(150deg, var(--banner), var(--banner-2));color:var(--on-banner);border-radius:28px;flex-direction:column;justify-content:space-between;margin:12px;padding:40px 48px;display:flex;position:relative;overflow:hidden}.login-story .brand{color:var(--on-banner)}.login-story{--focus:var(--on-banner)}.login-story .brand-mark{box-shadow:0 0 0 2px #ffffff8c,inset 0 1px #ffffff59}.login-story h1{max-width:14ch;color:var(--on-banner);font-size:clamp(34px,4vw,52px)}.login-story p{color:var(--on-banner-muted);margin-top:16px;font-size:18px}.login-form-side{justify-content:center;align-items:center;padding:32px 20px;display:flex}.login-box{flex-direction:column;gap:14px;width:100%;max-width:420px;display:flex}.login-box form{flex-direction:column;gap:16px;margin-top:8px;display:flex}.login-box h2{font-size:30px;font-weight:800}.login-box>p{color:var(--muted)}.login-brand{margin-bottom:8px;display:none}.login-help{color:var(--muted);text-align:center;font-size:15px}.app-shell{grid-template-columns:272px minmax(0,1fr);min-height:100dvh;display:grid}.sidebar{flex-direction:column;gap:16px;padding:20px 14px;display:flex;position:sticky;overflow-y:auto}.brand-link{padding:4px 8px}.school-switch{border-radius:var(--radius-sm);background:var(--bg);align-items:center;gap:12px;padding:12px;display:flex}.school-switch strong{font-size:15px;line-height:1.3;display:block}.school-switch small{color:var(--muted);font-weight:600}.school-icon{background:var(--logo);width:38px;height:38px;color:var(--on-logo);border-radius:11px;place-items:center;display:grid;box-shadow:inset 0 1px #ffffff59}.sidebar nav{flex-direction:column;flex:1;gap:4px;display:flex}.nav-group{flex-direction:column;gap:4px;margin-top:12px;display:flex}.nav-label{letter-spacing:.08em;color:var(--muted);padding:0 12px 4px;font-size:12px;font-weight:800}.nav-item{border-radius:var(--radius-sm);min-height:46px;color:var(--ink-2);align-items:center;gap:12px;padding:10px 12px;font-size:16px;font-weight:600;display:flex}.nav-item:hover{background:var(--bg);color:var(--ink)}.nav-item.active{background:var(--primary);color:var(--on-primary);box-shadow:inset 0 1px 0 #ffffff4d, 0 8px 18px -10px var(--primary-glow)}.nav-item.active .count-badge{color:var(--danger);background:#fff}.account-button{border-radius:var(--radius-sm);border:2px solid var(--line-soft);text-align:left;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.account-button:hover{border-color:var(--line)}.account-button>span:nth-child(2){flex:1;min-width:0}.account-button strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;display:block;overflow:hidden}.account-button small{color:var(--muted);font-weight:600}.sidebar-overlay{display:none}.main-shell{flex-direction:column;min-width:0;display:flex}.topbar{z-index:20;align-items:center;gap:12px;min-height:68px;padding:10px 28px;display:flex;position:sticky}.topbar-title{font-size:18px;font-weight:800}.topbar-tools{align-items:center;gap:8px;margin-left:auto;display:flex}.notification-button{position:relative}.notification-button i{background:var(--danger);border:2px solid var(--paper);border-radius:50%;width:10px;height:10px;position:absolute;top:9px;right:10px}.mobile-menu{display:none}.page-content{flex-direction:column;flex:1;gap:20px;width:100%;max-width:1240px;margin:0 auto;padding:28px 28px 48px;display:flex}.demo-banner{color:var(--warning-ink);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;font-weight:700;display:flex}.demo-banner span{align-items:center;gap:8px;display:inline-flex}.demo-banner select{width:auto;min-height:42px;margin-left:auto}.demo-banner .text-button{color:var(--warning-ink)}.scope-select{flex-direction:column;gap:8px;max-width:420px;font-weight:700;display:flex}.toast{z-index:100;color:#fff;max-width:calc(100vw - 32px);padding:14px 20px;font-weight:600;position:fixed;left:50%;transform:translate(-50%)}@media (max-width:960px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:60;visibility:hidden;width:min(300px,86vw);position:fixed}.sidebar.open{visibility:visible;transform:none}.sidebar-overlay{z-index:50;display:block;position:fixed;inset:0}.mobile-menu{display:inline-flex}.page-content{gap:16px;padding:16px 16px 40px}}@media (max-width:760px){.login-page{grid-template-columns:minmax(0,1fr)}.login-story{display:none}.login-brand{display:block}}.demo-picker{border-top:2px solid var(--line-soft);flex-direction:column;gap:10px;margin-top:8px;padding-top:18px;display:flex}.demo-picker h3{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px;font-size:16px;display:flex}.demo-picker h3 small{color:var(--muted);font-size:13px;font-weight:600}.demo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.demo-persona{border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);text-align:left;align-items:center;gap:10px;min-height:60px;padding:10px 12px;display:flex}.demo-persona:hover{border-color:var(--primary-line);background:color-mix(in srgb, var(--primary) 5%, #fff)}.demo-persona strong{font-size:15px;line-height:1.25;display:block}.demo-persona small{color:var(--muted);font-size:13px;font-weight:600;line-height:1.3;display:block}.demo-icon{background:var(--primary-soft);width:36px;height:36px;color:var(--primary-ink);border-radius:9px;flex-shrink:0;place-items:center;display:grid}
.page-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-heading p{color:var(--ink-2);margin-top:6px;font-size:16px}.heading-actions{flex-wrap:wrap;gap:10px;display:flex}.action-select,.view-select{width:auto;min-width:200px;font-weight:600}.panel{background:var(--paper);border:2px solid var(--line-soft);border-radius:var(--radius);flex-direction:column;gap:16px;min-width:0;padding:20px;display:flex}.panel-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.panel-heading p{color:var(--muted);margin-top:4px}.section-label{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.empty-line{color:var(--muted);align-items:center;gap:10px;padding:8px 0;font-weight:600;display:flex}.dashboard{flex-direction:column;gap:20px;display:flex}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.stat-card{background:var(--paper);border:2px solid var(--line-soft);border-radius:var(--radius);flex-direction:column;gap:8px;padding:18px;display:flex}.stat-card>div{color:var(--ink-2);justify-content:space-between;align-items:center;gap:8px;font-weight:700;display:flex}.stat-card strong{letter-spacing:-.02em;white-space:nowrap;font-size:clamp(22px,1.8vw,28px);font-weight:800;line-height:1.15}.stat-card small{color:var(--muted);font-weight:600}.stat-icon{background:var(--primary-soft);width:42px;height:42px;color:var(--primary-ink);border-radius:10px;flex-shrink:0;place-items:center;display:inline-grid}.dashboard-columns{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;display:grid}.attendance-visual{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.attendance-donut{border-radius:50%;flex-shrink:0;place-items:center;width:184px;height:184px;display:grid}.attendance-donut>div{background:var(--paper);text-align:center;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:136px;height:136px;padding:8px;display:flex}.attendance-donut strong{font-size:30px;font-weight:800}.attendance-donut small{font-size:14px}.attendance-donut span{color:var(--muted);font-size:13px;font-weight:600;line-height:1.3}.chart-legend{flex-direction:column;flex:1;gap:10px;min-width:200px;display:flex}.chart-legend>div{align-items:center;gap:10px;font-weight:600;display:flex}.chart-legend strong{margin-left:auto}.legend-dot{border-radius:4px;flex-shrink:0;width:14px;height:14px}.task-list{flex-direction:column;display:flex}.task-list a{border-bottom:2px solid var(--line-soft);align-items:center;gap:14px;padding:14px 4px;display:flex}.task-list a:last-child{border-bottom:0}.task-list a>span:nth-child(2){flex:1}.task-list strong{font-size:16px;display:block}.task-list small{color:var(--muted)}.task-list b{background:var(--ink);color:#fff;text-align:center;border-radius:999px;min-width:40px;padding:4px 10px}.role-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.role-card{background:var(--paper);border:2px solid var(--line-soft);border-radius:var(--radius);flex-direction:column;gap:10px;padding:20px;display:flex}.role-card:hover{border-color:var(--primary-line)}.role-card p{color:var(--muted)}.news-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.news-list a{border-bottom:2px solid var(--line-soft);flex-direction:column;gap:2px;padding:14px 4px;display:flex}.news-list li:last-child a{border-bottom:0}.news-list strong{font-size:16px}.news-list small{color:var(--muted);font-weight:600}.workspace-page{flex-direction:column;gap:20px;display:flex}.data-panel{gap:0;padding:0;overflow:hidden}.data-panel-top{border-bottom:2px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;display:flex}.view-title{align-items:center;gap:12px;display:flex}.view-title small{color:var(--muted);font-weight:600}.module-icon{background:var(--primary-soft);width:42px;height:42px;color:var(--primary-ink);border-radius:10px;place-items:center;display:grid}.table-toolbar{border-bottom:2px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:12px;padding:14px 20px;display:flex}.table-search{flex:1;min-width:220px;position:relative}.table-search svg{color:var(--muted);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.table-search input{padding-left:44px}.toolbar-actions{gap:8px;display:flex}.filter-panel{background:var(--bg);border-bottom:2px solid var(--line-soft);flex-direction:column;gap:12px;padding:16px 20px;display:flex}.table-loading{padding:12px 20px}.table-scroll{width:100%;position:relative;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:15px}th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);background:var(--bg);border-bottom:2px solid var(--line);white-space:nowrap;padding:12px 16px;font-size:13px;font-weight:800}td{border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:14px 16px}tbody tr:hover{background:color-mix(in srgb, var(--primary) 4%, #fff)}.person-cell{align-items:center;gap:12px;display:flex}.person-cell strong{display:block}.person-cell small{color:var(--muted)}.table-avatar{width:36px;height:36px;font-size:13px}.attendance-cell{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.cell-text{color:var(--ink)}.table-detail{border:2px solid var(--line);width:40px;height:40px;color:var(--ink);border-radius:10px;place-items:center;display:grid}.table-detail:hover{border-color:var(--primary-line);color:var(--primary-ink)}.pagination{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;font-weight:600;display:flex}.pagination div{gap:8px;display:flex}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:48px 20px;display:flex}.empty-state p{color:var(--muted);max-width:44ch}.empty-icon{background:var(--bg);width:64px;height:64px;color:var(--ink-2);border-radius:50%;place-items:center;display:grid}.object-content{padding:20px}.details-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;display:grid}.detail-field{flex-direction:column;gap:4px;min-width:0;display:flex}.detail-label{color:var(--muted);font-size:14px;font-weight:700}.detail-value,.detail-text{color:var(--ink);overflow-wrap:anywhere;font-size:16px;font-weight:700}.sensitive-field .detail-value{background:var(--warning-soft);color:var(--warning-ink);border-radius:8px;padding:8px 12px;font-family:ui-monospace,monospace}.tag-list{flex-wrap:wrap;gap:8px;display:flex}.security-intro{background:var(--paper);border:2px solid var(--line-soft);border-radius:var(--radius);align-items:center;gap:16px;padding:18px 20px;display:flex}.security-intro p{color:var(--muted)}.quick-icon{background:var(--primary-soft);width:48px;height:48px;color:var(--primary-ink);border-radius:12px;flex-shrink:0;place-items:center;display:inline-grid}.action-dialog{border-radius:var(--radius);background:var(--paper);width:min(720px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--ink);border:0;padding:0;box-shadow:0 24px 64px #0b122059}.action-dialog::backdrop{background:#0b122099}.action-dialog form{display:contents}.dialog-heading{z-index:1;background:var(--paper);border-bottom:2px solid var(--line-soft);justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 16px;display:flex;position:sticky;top:0}.dialog-body{flex-direction:column;gap:16px;padding:20px;display:flex}.dialog-footer{background:var(--paper);border-top:2px solid var(--line-soft);justify-content:flex-end;gap:10px;padding:16px 20px;display:flex;position:sticky;bottom:0}.feed-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:20px;display:grid}.feed-card{text-align:left;border:2px solid var(--line-soft);border-radius:var(--radius);background:var(--paper);flex-direction:column;gap:10px;padding:18px;display:flex}.feed-card:hover{border-color:var(--primary-line)}.feed-card p{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.feed-top,.feed-bottom{justify-content:space-between;align-items:center;gap:10px;display:flex}.feed-bottom small{color:var(--muted);font-weight:600}.feed-bottom span{color:var(--primary-ink);align-items:center;gap:6px;font-weight:700;display:inline-flex}.calendar-view{flex-direction:column;gap:14px;padding:20px;display:flex}.calendar-heading{justify-content:space-between;align-items:center;display:flex}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.calendar-weekday{text-align:center;color:var(--ink-2);padding:6px;font-size:14px;font-weight:800}.calendar-cell{border:2px solid var(--line-soft);border-radius:10px;flex-direction:column;gap:4px;min-width:0;min-height:84px;padding:8px;display:flex}.calendar-cell.blank{border-color:#0000}.calendar-cell.holiday{background:var(--danger-soft);color:var(--danger-ink);border-color:#fca5a5}.calendar-cell.today{border-color:var(--primary-line);box-shadow:inset 0 0 0 1px var(--primary-line)}.calendar-cell button{text-align:left;color:var(--danger-ink);overflow-wrap:anywhere;font-size:13px;font-weight:700;text-decoration:underline}.calendar-cell small{overflow-wrap:anywhere;font-size:13px;font-weight:600}.calendar-note{color:var(--muted);align-items:center;gap:8px;font-weight:600;display:flex}.grade-sheet{flex-direction:column;gap:16px;padding:20px;display:flex}.grade-heading,.grade-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.grade-heading p,.grade-footer span{color:var(--muted);font-weight:600}.grade-sheet td input{max-width:120px}@media (max-width:1100px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-columns,.role-card-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:640px){.stat-card strong{font-size:28px}.stat-grid,.details-grid{grid-template-columns:minmax(0,1fr)}.heading-actions,.heading-actions>*{width:100%}.dialog-footer{flex-direction:column-reverse}.dialog-footer .button{width:100%}.calendar-cell{min-height:56px;padding:4px}.calendar-cell button,.calendar-cell small{display:none}.panel,.data-panel-top,.table-toolbar{padding-left:16px;padding-right:16px}}.theme-layout{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.preset-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.preset-card{border:2px solid var(--line-soft);background:var(--paper);text-align:left;transition:border-color .15s, transform .15s var(--ease-out);border-radius:16px;flex-direction:column;gap:10px;padding:12px;font-size:15px;display:flex}.preset-card:hover:not(:disabled){border-color:var(--line);transform:translateY(-1px)}.preset-card.selected{border-color:var(--primary-line);box-shadow:0 0 0 3px var(--primary-soft)}.preset-swatches{border-radius:10px;height:28px;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #0f172a1a}.preset-swatches i{flex:1}.color-fields{flex-direction:column;gap:16px;display:flex}.color-field{align-items:flex-start;gap:14px;display:flex}.color-swatch{border-radius:16px;flex:none;width:56px;height:56px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #0f172a26,inset 0 1px #fff6}.color-swatch input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;min-height:0;padding:0;position:absolute;inset:0}.color-swatch:focus-within{outline:3px solid var(--focus);outline-offset:2px}.color-text{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.color-text label strong{font-size:16px;display:block}.color-text label small{color:var(--muted);font-weight:600;display:block}.color-text input{max-width:180px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.color-note{color:var(--warning-ink);font-weight:600}.theme-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.theme-preview{gap:14px}.preview-banner{background:linear-gradient(145deg, var(--banner), var(--banner-2));color:var(--on-banner);border-radius:20px;align-items:center;gap:12px;padding:16px;display:flex}.preview-banner div{flex-direction:column;flex:1;min-width:0;display:flex}.preview-banner small{color:var(--on-banner-muted);letter-spacing:.06em;font-size:12px;font-weight:800}.preview-banner span{color:var(--on-banner-muted);font-size:14px;font-weight:600}.preview-banner b{font-variant-numeric:tabular-nums;font-size:28px;font-weight:800}.preview-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.preview-row .nav-item{min-height:40px}.preview-row .loader{width:30px;height:30px}.report-doc{color:var(--ink);flex-direction:column;gap:16px;display:flex}.report-kop{border-bottom:3px solid var(--banner);align-items:center;gap:14px;padding-bottom:14px;display:flex}.report-kop .brand-mark{border-radius:14px;width:48px;height:48px}.report-kop div{flex-direction:column;flex:1;display:flex}.report-kop strong{font-size:20px;line-height:1.25}.report-kop span{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:800}.report-draft{border:2px solid var(--warning);color:var(--warning-ink);letter-spacing:.1em;border-radius:8px;padding:4px 10px;font-size:13px}.report-identity{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px;margin:0;display:grid}.report-identity div{flex-direction:column;gap:2px;display:flex}.report-identity dt{color:var(--muted);font-size:13px;font-weight:700}.report-identity dd{margin:0;font-weight:800}.report-grades th,.report-grades td{padding:10px 12px}.report-grades td:first-child,.report-grades td:nth-child(3),.report-grades td:nth-child(4),.report-grades td:nth-child(5){text-align:center;white-space:nowrap}.report-grades td:nth-child(6){min-width:240px;color:var(--ink-2);font-size:14px}.report-grades .below-kkm{color:var(--danger);font-weight:800}.report-grades tfoot th,.report-grades tfoot td{background:var(--primary-soft);color:var(--primary-ink);border-top:2px solid var(--line);font-weight:800}.report-grades tfoot td{text-align:center}.report-bottom{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:start;gap:20px;display:grid}.report-absence caption{text-align:left;padding-bottom:6px;font-weight:800}.report-absence th{letter-spacing:0;text-transform:none;font-size:14px}.report-signs{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.report-signs p{text-align:right;color:var(--muted);grid-column:1/-1;font-weight:600}.report-signs div{text-align:center;flex-direction:column;align-items:center;gap:56px;font-size:14px;font-weight:700;display:flex}.report-signs i{border-bottom:1.5px solid var(--ink-2);width:100%;display:block}.report-doc.is-draft .report-grades tbody{background-image:repeating-linear-gradient(-45deg,#0000 0 22px,#b453090d 22px 44px)}@media (max-width:900px){.theme-layout{grid-template-columns:minmax(0,1fr)}}@media (max-width:640px){.theme-actions,.theme-actions .button{width:100%}.report-identity,.report-bottom{grid-template-columns:minmax(0,1fr)}.report-signs{gap:8px}}.action-dialog:has(.report-doc){width:min(940px,100vw - 24px)}
.student-home{flex-direction:column;gap:20px;width:100%;max-width:640px;margin:0 auto;display:flex}.id-card{isolation:isolate;background:linear-gradient(145deg, var(--banner), var(--banner-2));color:var(--on-banner);box-shadow:inset 0 1px 0 #ffffff40, 0 18px 40px -18px color-mix(in srgb, var(--banner) 70%, transparent);--focus:var(--on-banner);border-radius:26px;flex-direction:column;gap:18px;padding:22px;display:flex;position:relative;overflow:hidden}.id-top{align-items:center;gap:14px;display:flex}.id-card .kicker{color:var(--on-banner-muted)}.id-card h1{color:var(--on-banner);font-size:24px}.id-card p{color:var(--on-banner-muted);font-weight:600}.clock{border-top:1px solid color-mix(in srgb, var(--on-banner) 25%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;padding-top:16px;display:flex}.clock strong{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:52px;font-weight:800;line-height:1}.clock-seconds{color:var(--on-banner-muted);font-variant-numeric:tabular-nums;margin-left:4px;font-size:22px;font-weight:700}.clock small{color:var(--on-banner-muted);margin-top:6px;font-weight:600;display:block}.date-chip{color:var(--primary-ink);white-space:nowrap;background:#ffffffeb;border-radius:999px;padding:8px 14px;font-weight:800}.id-card .id-status{color:var(--ink);background:#ffffffeb;border-radius:16px;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.id-status svg{color:var(--primary-ink);margin-top:3px}.id-status strong{display:block}.id-status small{color:var(--ink-2);font-weight:600}.id-status.tone-action{box-shadow:inset 5px 0 0 var(--warning)}.id-status.tone-success{box-shadow:inset 5px 0 0 var(--success)}.id-status.tone-warning{box-shadow:inset 5px 0 0 var(--warning)}.id-status.tone-neutral{box-shadow:inset 5px 0 0 var(--muted)}.tile-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.tile{background:var(--paper);border:2px solid var(--line-soft);text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:116px;padding:16px 8px;font-size:16px;display:flex}.tile:hover{border-color:var(--ink-2)}.tile-icon{width:52px;height:52px;color:var(--tile-ink,#fff);background:var(--tile,var(--primary));border-radius:16px;place-items:center;display:grid}.tile.tone-blue{--tile:var(--primary);--tile-ink:var(--on-primary);border-color:color-mix(in srgb, var(--primary) 35%, transparent);background:color-mix(in srgb, var(--primary) 9%, var(--glass-card))}.tile.tone-violet{--tile:var(--secondary);--tile-ink:var(--on-secondary)}.tile.tone-orange{--tile:#c2410c}.tile.tone-green{--tile:#15803d}.tile.tone-teal{--tile:#0f766e}.tile.tone-rose{--tile:#be123c}.news-panel{padding:8px 18px}.attendance-page{width:100%;max-width:760px;margin:0 auto}.today-card{border-radius:var(--radius);background:var(--paper);border:2px solid var(--line-soft);border-left-width:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px;display:flex}.today-card h2{margin-top:4px;font-size:22px}.today-card p{margin-top:6px}.today-card.tone-action{border-left-color:var(--warning)}.today-card.tone-success{border-left-color:var(--success)}.today-card.tone-warning{border-left-color:var(--warning)}.today-card.tone-neutral{border-left-color:var(--muted)}.today-leave{color:var(--warning-ink);font-weight:600}.month-nav{gap:4px;display:flex}.summary-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;display:grid}.summary-strip div{border-radius:var(--radius-sm);background:var(--bg);text-align:center;padding:12px}.summary-strip dt{color:var(--muted);font-size:14px;font-weight:700}.summary-strip dd{margin:2px 0 0;font-size:26px;font-weight:800}.history-list{margin:0;padding:0;list-style:none}.history-list li{border-bottom:2px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;padding:14px 2px;display:flex}.history-list li:last-child{border-bottom:0}.history-list strong{display:block}.history-list small{color:var(--muted);font-weight:600}.checkin-screen{z-index:80;background:var(--bg);width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);border:0;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:0;overflow-y:auto}.checkin-screen:not([open]){display:none}.checkin-screen::backdrop{background:var(--bg)}.checkin-header{z-index:2;background:var(--paper);border-bottom:2px solid var(--line-soft);grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;padding:8px 12px;display:grid;position:sticky;top:0}.checkin-header h1{text-align:center;font-size:19px}.checkin-header h1:focus{outline:none}.step-count{color:var(--muted);text-align:right;font-weight:800}.step-bar{grid-template-columns:repeat(3,1fr);align-self:center;gap:6px;width:100%;max-width:560px;margin:0;padding:10px 16px 0;list-style:none;display:grid}.step-bar li{background:var(--line);border-radius:999px;height:6px}.step-bar li.on{background:var(--primary-line)}.checkin-content{flex-direction:column;gap:16px;width:100%;max-width:560px;margin:0 auto;padding:16px 16px 32px;display:flex}.checkin-step-body{flex-direction:column;gap:16px;display:flex}.step-intro p{margin-top:6px}.step-actions{flex-direction:column;gap:10px;display:flex}.access-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.access-row{border-radius:var(--radius);background:var(--paper);border:2px solid var(--line-soft);align-items:center;gap:14px;padding:14px;display:flex}.access-row>span:nth-child(2){flex:1}.access-row strong{font-size:17px;display:block}.access-row small{color:var(--ink-2);font-weight:600}.access-row b{background:var(--line-soft);color:var(--ink-2);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:14px}.access-icon{background:var(--line-soft);width:48px;height:48px;color:var(--ink);border-radius:12px;place-items:center;display:grid}.access-row.granted{border-color:#86efac}.access-row.granted .access-icon{background:var(--success);color:#fff}.access-row.granted b{background:var(--success-soft);color:var(--success-ink)}.access-row.blocked{border-color:#fca5a5}.access-row.blocked .access-icon{background:var(--danger);color:#fff}.access-row.blocked b{background:var(--danger-soft);color:var(--danger-ink)}.help-box{border-radius:var(--radius);background:var(--paper);border:2px solid var(--warning);padding:16px}.help-box ol{flex-direction:column;gap:8px;margin:10px 0 0;padding-left:22px;display:flex}.attendance-map{flex-direction:column;gap:8px;margin:0;display:flex}.map-canvas{border-radius:var(--radius);border:2px solid var(--line);background:var(--line-soft);z-index:0;height:min(46vh,420px);min-height:260px;overflow:hidden}.map-canvas.placeholder{color:var(--muted);place-items:center;font-weight:700;display:grid}.attendance-map figcaption{gap:18px;font-size:15px;font-weight:700;display:flex}.attendance-map figcaption span{align-items:center;gap:8px;display:inline-flex}.legend{width:14px;height:14px;box-shadow:0 0 0 1px var(--line);border:3px solid #fff;border-radius:50%}.legend.school{background:#1d4ed8}.legend.student{background:#c2410c}.location-facts{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:0;display:grid}.location-facts div{border-radius:var(--radius-sm);background:var(--paper);border:2px solid var(--line-soft);padding:12px}.location-facts dt{color:var(--muted);font-size:14px;font-weight:700}.location-facts dd{margin:2px 0 0;font-size:22px;font-weight:800}.location-facts dd.bad{color:var(--danger)}.face-camera{flex-direction:column;gap:12px;display:flex}.camera-frame{aspect-ratio:3/4;border:4px solid var(--line);background:#000;border-radius:20px;width:100%;max-height:62vh;position:relative;overflow:hidden}.camera-frame.ok{border-color:var(--success)}.camera-frame video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.face-guide{border:4px dashed #ffffffd9;border-radius:50%;width:62%;height:64%;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 999px #0000004d}.camera-frame.ok .face-guide{border-style:solid;border-color:#4ade80}.camera-hint{border-radius:var(--radius-sm);background:var(--paper);border:2px solid var(--line);text-align:center;padding:12px 14px;font-weight:700}.camera-hint.ok{border-color:var(--success);color:var(--success-ink);background:var(--success-soft)}.selfie-preview{object-fit:cover;border:4px solid var(--line);border-radius:20px;width:100%;max-height:52vh}.done-step{text-align:center;align-items:center;padding-top:24px}.done-icon{background:var(--success);color:#fff;border-radius:50%;place-items:center;width:96px;height:96px;display:grid}.done-icon.late{background:var(--warning)}.done-time{color:var(--ink);font-size:32px;font-weight:800}@media (max-width:420px){.clock strong{font-size:44px}.tile-grid,.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.today-card .button{width:100%}}
:root{--chart-surface:var(--paper);--chart-grid:#e5e8ee;--chart-axis:#c3c8d2;--chart-text:#5b6477;--att-hadir:#12805a;--att-hadir-soft:#dcf2e9;--att-hadir-ink:#0b5a3f;--att-terlambat:#a86400;--att-terlambat-soft:#fbefd8;--att-terlambat-ink:#6b4000;--att-izin:#2a78d6;--att-izin-soft:#e0ecfb;--att-izin-ink:#1b4f91;--att-sakit:#4a3aa7;--att-sakit-soft:#e9e6f7;--att-sakit-ink:#33287a;--att-alpha:#c62d2d;--att-alpha-soft:#fbe3e3;--att-alpha-ink:#8a1f1f;--att-belum:#7a7f8c;--att-belum-soft:#eef0f3;--att-belum-ink:#444955}.chart{flex-direction:column;gap:10px;min-width:0;margin:0;display:flex;position:relative}.chart.is-loading .chart-canvas{opacity:.45;transition:opacity .2s}.chart-canvas{width:100%;min-width:0;position:relative}.chart-canvas svg{display:block;overflow:visible}.chart-grid line{stroke:var(--chart-grid);stroke-width:1px;shape-rendering:crispedges}.chart-grid line.baseline{stroke:var(--chart-axis)}.chart-grid text,.chart-x text{fill:var(--chart-text);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.chart-columns g{transition:opacity .15s}.chart-columns g.dim{opacity:.45}.chart-crosshair line{stroke:var(--ink-2);stroke-width:1px;stroke-opacity:.55}.chart-crosshair circle{stroke:var(--chart-surface);stroke-width:2px}.chart-pointer{cursor:crosshair;touch-action:pan-y;border-radius:8px;position:absolute}.chart-pointer:focus-visible{outline:2px solid var(--focus);outline-offset:4px}.chart-empty{color:var(--muted);pointer-events:none;place-items:center;margin:0;font-weight:700;display:grid;position:absolute;inset:0}.chart-empty.static{padding:18px 0;position:static}.chart-tooltip{z-index:5;background:var(--surface-strong);border:1px solid var(--glass-edge);min-width:150px;max-width:240px;box-shadow:var(--elev-2);pointer-events:none;border-radius:14px;padding:10px 12px;position:absolute;top:4px}.chart-tooltip-title{color:var(--ink-2);margin-bottom:6px;font-size:13px;display:block}.chart-tooltip ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.chart-tooltip li{grid-template-columns:12px auto 1fr;align-items:center;gap:8px;font-size:13px;display:grid}.chart-tooltip li i{border-radius:2px;width:12px;height:3px}.chart-tooltip li b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:15px}.chart-tooltip li span{color:var(--muted);font-weight:600}.chart-tooltip-foot{border-top:1px solid var(--line-soft);color:var(--ink-2);margin-top:8px;padding-top:6px;font-size:13px;font-weight:700}.chart-legend-row{flex-wrap:wrap;gap:6px 8px;margin:0;padding:0;list-style:none;display:flex}.chart-legend-row button,.chart-legend-row .legend-static{border:1px solid var(--line-soft);background:var(--glass-card);min-height:36px;color:var(--ink-2);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 10px;font-size:14px;font-weight:700;display:inline-flex}.chart-legend-row .legend-static{cursor:default}.chart-legend-row button.off{opacity:.5;text-decoration:line-through}.chart-legend-row button:hover{border-color:var(--line)}.chart-legend-row b{color:var(--ink);font-variant-numeric:tabular-nums}.key{flex:none;display:inline-block}.key.box{border-radius:4px;width:12px;height:12px}.key.line{border-radius:2px;width:16px;height:3px}.chart-table summary{cursor:pointer;width:fit-content;color:var(--primary-ink);font-size:14px;font-weight:700}.chart-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:8px;font-size:14px}.chart-table th,.chart-table td{text-align:right;border-bottom:1px solid var(--line-soft);white-space:nowrap;padding:6px 10px}.chart-table th[scope=row],.chart-table thead th:first-child{text-align:left}.bar-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.bar-row{width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:default;background:0 0;border:0;border-radius:12px;grid-template-columns:minmax(84px,32%) minmax(0,1fr) auto;align-items:center;gap:12px;padding:6px 8px;display:grid;position:relative}button.bar-row{cursor:pointer}.bar-row:hover,.bar-row:focus-visible{background:color-mix(in srgb, var(--primary) 6%, transparent)}.bar-label{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.bar-track{background:color-mix(in srgb, var(--chart-grid) 70%, transparent);border-radius:0 4px 4px 0;height:14px;overflow:hidden}.bar-fill{background:var(--primary);min-width:2px;height:100%;transition:width .5s var(--ease-out);border-radius:0 4px 4px 0;display:block}.bar-badge{background:var(--warning-soft);color:var(--warning-ink);border-radius:999px;margin-left:6px;padding:1px 7px;font-size:12px;font-style:normal;font-weight:800}.bar-value{text-align:right;font-variant-numeric:tabular-nums;min-width:52px;color:var(--ink)}.bar-tip{z-index:4;background:var(--surface-strong);border:1px solid var(--glass-edge);box-shadow:var(--elev-1);color:var(--ink-2);white-space:nowrap;opacity:0;pointer-events:none;border-radius:10px;padding:6px 10px;font-size:13px;font-weight:600;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% - 4px);right:8px;transform:translateY(4px)}.bar-row:hover .bar-tip,.bar-row:focus-visible .bar-tip{opacity:1;transform:none}.donut{flex-wrap:wrap;align-items:center;gap:22px;display:flex}.donut-figure{flex:none;position:relative}.donut-figure path{stroke:var(--chart-surface);stroke-width:2px;cursor:pointer;transition:opacity .15s}.donut-figure path.dim{opacity:.3}.donut-center{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;padding:0 30px;display:flex;position:absolute;inset:0}.donut-center strong{letter-spacing:-.02em;font-size:30px;line-height:1.1}.donut-center span{color:var(--muted);font-size:13px;font-weight:700}.donut-legend{flex-direction:column;flex:1;gap:2px;min-width:200px;margin:0;padding:0;list-style:none;display:flex}.donut-legend button{width:100%;min-height:40px;color:var(--ink-2);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;grid-template-columns:12px 1fr auto 52px;align-items:center;gap:10px;padding:6px 10px;font-weight:600;display:grid}.donut-legend button:hover,.donut-legend button.on{background:color-mix(in srgb, var(--primary) 7%, transparent)}.donut-legend button[aria-pressed=true]{box-shadow:inset 0 0 0 1.5px var(--primary-line)}.donut-legend i{border-radius:4px;width:12px;height:12px}.donut-legend b{color:var(--ink);font-variant-numeric:tabular-nums}.donut-legend small{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;font-weight:700}.stat-tile .delta{flex-wrap:wrap;align-items:center;gap:4px;font-weight:700;display:inline-flex}.stat-tile .delta.good{color:var(--success-ink)}.stat-tile .delta.bad{color:var(--danger-ink)}.stat-tile .delta.flat{color:var(--muted)}.stat-tile .delta span{color:var(--muted);font-weight:600}.stat-note{color:var(--muted)}.sparkline{margin-top:6px;display:block}.sparkline path{stroke:var(--chart-axis)}.sparkline circle{fill:var(--primary);stroke:var(--chart-surface);stroke-width:2px}.segmented{background:color-mix(in srgb, var(--ink) 6%, transparent);scrollbar-width:none;border-radius:999px;gap:4px;max-width:100%;padding:4px;display:inline-flex;overflow-x:auto}.segmented button{min-height:38px;color:var(--ink-2);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;flex:none;padding:6px 16px;font-size:15px;font-weight:700}.segmented button.on{background:var(--paper);color:var(--ink);box-shadow:var(--elev-1)}@media (prefers-reduced-motion:reduce){.bar-fill,.chart-columns g,.donut-figure path,.bar-tip{transition:none}}@media (max-width:640px){.bar-row{grid-template-columns:minmax(72px,36%) minmax(0,1fr) auto;gap:8px}.donut{justify-content:center}}
.partner-slot{flex-direction:column;gap:10px;min-width:0;display:flex}.partner-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.partner-head h2{letter-spacing:.01em;color:var(--muted);font-size:14px;font-weight:700}.partner-info{min-height:36px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:700;display:inline-flex}.partner-info:hover{color:var(--ink-2);background:color-mix(in srgb, var(--ink) 5%, transparent)}.partner-about{background:var(--glass-card);border:1px solid var(--line-soft);color:var(--ink-2);border-radius:14px;margin:0;padding:12px 14px;font-size:14px}.partner-track{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:22px;gap:12px;min-width:0;display:flex;overflow-x:auto}.partner-track::-webkit-scrollbar{display:none}.partner-slide{scroll-snap-align:start;flex:0 0 100%;min-width:0}.partner-track.many .partner-slide{flex-basis:calc(100% - 36px)}.partner-card{height:100%}.partner-card-body{border:1px solid var(--glass-border);background:var(--glass-card);width:100%;height:100%;box-shadow:var(--elev-1);color:inherit;font:inherit;text-align:left;transition:box-shadow .2s var(--ease-out), transform .2s var(--ease-out);border-radius:22px;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"media media""meta cta";align-items:center;gap:10px 12px;padding:10px 10px 12px;display:grid}button.partner-card-body{cursor:pointer}button.partner-card-body:hover{box-shadow:var(--elev-2)}button.partner-card-body:active{transform:scale(.985)}button.partner-card-body:disabled{cursor:progress}.partner-media{aspect-ratio:2;background:var(--line-soft);border-radius:14px;grid-area:media;display:block;position:relative;overflow:hidden}.partner-media img{object-fit:cover;width:100%;height:100%;display:block}.partner-media-fallback{width:100%;height:100%;color:var(--on-primary);background:linear-gradient(135deg, var(--primary), var(--secondary));place-items:center;font-size:32px;font-weight:800;display:grid}.partner-badge{color:#fff;letter-spacing:.06em;text-transform:uppercase;background:#0f172a94;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:800;position:absolute;top:8px;right:8px}.partner-meta{flex-direction:column;grid-area:meta;gap:2px;min-width:0;padding-left:4px;display:flex}.partner-name{min-width:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex;overflow:hidden}.partner-avatar{background:var(--primary-soft);width:20px;height:20px;color:var(--primary-ink);border-radius:6px;flex:none;place-items:center;font-size:11px;font-weight:800;display:grid}.partner-headline{color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:16px;line-height:1.3;display:-webkit-box;overflow:hidden}.partner-action{background:var(--primary-soft);color:var(--primary-ink);white-space:nowrap;border-radius:999px;grid-area:cta;align-items:center;gap:4px;padding:8px 12px;font-size:14px;font-weight:800;display:inline-flex}.partner-dots{justify-content:center;gap:2px;margin-top:-2px;display:flex}.partner-dots button{cursor:pointer;background:0 0;border:0;place-items:center;width:24px;height:24px;padding:0;display:grid}.partner-dots button:before{content:"";background:var(--line);width:6px;height:6px;transition:width .25s var(--ease-out), background .25s;border-radius:999px}.partner-dots button.on:before{background:var(--ink-2);width:18px}.placement-preview{flex-direction:column;align-items:center;gap:14px;margin:0;display:flex}.phone{width:252px;box-shadow:var(--elev-3);background:#0f172a;border-radius:38px;padding:9px}.phone-screen{background:var(--bg);background-image:var(--canvas);border-radius:30px;flex-direction:column;gap:8px;height:500px;padding:10px;display:flex;overflow:hidden}.pp-bar{background:var(--glass-bar);border-radius:12px;align-items:center;gap:6px;padding:7px 8px;display:flex}.pp-logo{background:var(--primary);border-radius:5px;width:16px;height:16px}.pp-dot{background:var(--secondary);border-radius:50%;width:16px;height:16px;margin-left:auto}.pp-line{background:var(--line);border-radius:3px;height:6px;display:block}.pp-line.light{background:#ffffff8c}.pp-line.w30{width:30%}.pp-line.w40{width:40%}.pp-line.w50{width:50%}.pp-line.w60{width:60%}.pp-idcard{background:linear-gradient(145deg, var(--banner), var(--banner-2));border-radius:16px;flex-direction:column;gap:6px;min-height:86px;padding:12px;display:flex}.pp-clock{background:#ffffffd9;border-radius:6px;width:46%;height:18px;margin-top:auto}.pp-tiles{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.pp-tile{border:1px solid var(--line-soft);background:var(--paper);border-radius:10px;height:36px}.pp-tile.t0{background:color-mix(in srgb, var(--primary) 14%, var(--paper))}.pp-slot{outline:2px dashed var(--primary);outline-offset:1px;background:color-mix(in srgb, var(--primary) 7%, transparent);border-radius:18px;flex-direction:column;gap:4px;margin:2px -4px;padding:6px;display:flex}.pp-slot-label{color:var(--muted);padding-left:2px;font-size:9px;font-weight:700}.phone .partner-card-body{border-radius:12px;gap:5px 6px;padding:5px 5px 6px}.phone .partner-media{border-radius:8px}.phone .partner-badge{padding:1px 5px;font-size:7px;top:4px;right:4px}.phone .partner-name{gap:4px;font-size:8px}.phone .partner-avatar{border-radius:4px;width:12px;height:12px;font-size:7px}.phone .partner-headline{font-size:10px}.phone .partner-action{padding:4px 7px;font-size:9px}.phone .partner-action svg{width:10px;height:10px}.pp-news{background:var(--paper);border-radius:14px;flex-direction:column;gap:6px;padding:10px;display:flex}.placement-preview figcaption{max-width:320px;color:var(--ink-2);text-align:center;font-size:14px}@media (prefers-reduced-motion:reduce){.partner-track{scroll-behavior:auto}.partner-card-body,.partner-dots button:before{transition:none}}
.brand-home,.brand-analytics{gap:20px}.account-notice{align-items:flex-start}.account-notice svg{margin-top:3px}.account-notice span{flex:1;min-width:0}.brand-hero{isolation:isolate;background:linear-gradient(145deg, var(--banner), var(--banner-2));color:var(--on-banner);box-shadow:inset 0 1px 0 #ffffff40, 0 18px 40px -18px color-mix(in srgb, var(--banner) 70%, transparent);--focus:var(--on-banner);border-radius:26px;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main actions""notes notes";align-items:center;gap:16px 20px;padding:24px;display:grid;position:relative;overflow:hidden}.brand-hero:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(50% 70% at 100% 100%, color-mix(in srgb, var(--animation) 28%, transparent), transparent 70%);position:absolute;inset:0}.hero-main{flex-direction:column;grid-area:main;gap:4px;min-width:0;display:flex}.hero-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--on-banner-muted);align-items:center;gap:8px;font-size:13px;font-weight:800;display:inline-flex}.hero-value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:42px;font-weight:800;line-height:1.1}.hero-sub{color:var(--on-banner-muted);font-weight:600}.hero-skeleton{background:#ffffff38;border-radius:8px;width:40%;height:16px;margin:6px 0;display:block}.hero-skeleton.wide{width:60%;height:42px}.hero-actions{flex-wrap:wrap;grid-area:actions;justify-content:flex-end;gap:10px;display:flex}.hero-button{min-height:46px;color:var(--primary-ink);background:#fffffff0;padding:10px 18px;box-shadow:0 6px 16px -10px #0b122073}.hero-button:hover{background:#fff}.hero-button.ghost{color:var(--on-banner);box-shadow:none;background:#ffffff1f;border-color:#ffffff61}.hero-button.ghost:hover{background:#fff3}.hero-notes{border-top:1px solid color-mix(in srgb, var(--on-banner) 22%, transparent);flex-wrap:wrap;grid-area:notes;gap:8px;margin:0;padding:14px 0 0;list-style:none;display:flex}.hero-note{background:#ffffff21;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:14px;font-weight:700;line-height:1.35;display:inline-flex}.hero-note.alert{color:var(--warning-ink);background:#fffffff0}.hero-note.alert svg{color:var(--warning)}.insight-block{flex-direction:column;gap:12px;min-width:0;display:flex}.insight-block-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.insight-block-head>div{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.insight-block-head span{color:var(--muted);font-size:14px;font-weight:700}.insight-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;transition:opacity .2s;display:grid}.insight-kpis.cols-6{grid-template-columns:repeat(3,minmax(0,1fr))}.insight-kpis .stat-tile{min-width:0}.insight-kpis .sparkline{max-width:100%}.kpi-skeleton .skeleton{width:55%;height:14px;margin:4px 0;display:block}.kpi-skeleton .skeleton.wide{width:75%;height:28px}.insight-footnote{color:var(--muted);margin:0;font-size:14px;font-weight:600}.insight-kpis.is-loading,.perf-scroll.is-loading,.insight-panel .is-loading{opacity:.55}.insight-panel{gap:14px}.insight-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.insight-heading>div:first-child{min-width:0}.insight-heading p{color:var(--muted);margin-top:4px;font-size:15px}.chart-skeleton{flex-direction:column;gap:4px;display:flex}.chart-skeleton .skeleton{margin:6px 0}.chart-skeleton .skeleton.block{border-radius:14px;height:180px}.trend-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;display:grid}.trend-facts>div{background:color-mix(in srgb, var(--primary) 5%, transparent);border-radius:14px;flex-direction:column;gap:2px;min-width:0;padding:10px 12px;display:flex}.trend-facts dt{color:var(--muted);font-size:13px;font-weight:700}.trend-facts dd{color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0;font-size:18px;font-weight:800}.trend-facts dd small{color:var(--muted);font-size:13px;font-weight:600;display:block}.brand-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.brand-columns.trend-row{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:stretch}.live-list{flex-direction:column;gap:2px;margin:0 -8px;padding:0;list-style:none;display:flex}.live-item{min-height:64px;color:var(--ink-2);transition:background-color .15s var(--ease-out);border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px;display:grid}.live-item:hover{background:color-mix(in srgb, var(--primary) 6%, transparent)}.live-item>svg{color:var(--muted)}.live-body{flex-direction:column;gap:2px;min-width:0;display:flex}.live-body strong{color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;line-height:1.35;display:-webkit-box;overflow:hidden}.live-stats{color:var(--muted);flex-wrap:wrap;gap:2px 12px;font-size:14px;font-weight:600;display:flex}.live-stats b{color:var(--ink);font-variant-numeric:tabular-nums}.live-empty{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.live-empty p{color:var(--muted);font-weight:600}.campaign-thumb{aspect-ratio:2;background:var(--line-soft);width:88px;color:var(--muted);box-shadow:inset 0 0 0 1px var(--glass-edge);border-radius:10px;flex:none;place-items:center;display:grid;overflow:hidden}.campaign-thumb img{object-fit:cover;width:100%;height:100%;display:block}.placement-body{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:20px 40px;display:grid}.placement-points{flex-direction:column;gap:14px;max-width:62ch;margin:0;padding:0;list-style:none;display:flex}.placement-points li{color:var(--ink-2);grid-template-columns:36px minmax(0,1fr);align-items:start;gap:12px;font-size:15px;line-height:1.5;display:grid}.point-icon{background:var(--primary-soft);width:36px;height:36px;color:var(--primary-ink);border-radius:11px;place-items:center;display:grid}.placement-points li span:last-child{padding-top:6px}.placement-copy{flex-direction:column;gap:20px;min-width:0;max-width:64ch;display:flex}.placement-tips{background:color-mix(in srgb, var(--primary) 6%, transparent);border:1px solid color-mix(in srgb, var(--primary) 14%, transparent);border-radius:16px;padding:14px 16px}.placement-tips h3{color:var(--ink);font-size:15px}.placement-tips ul{color:var(--ink-2);flex-direction:column;gap:4px;margin:6px 0 0;padding-left:20px;font-size:14px;display:flex}.trend-canvas{min-width:0}.insight-filters{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.insight-filters .segmented{flex:none}.insight-select{flex:0 340px;min-width:0}.insight-select select{text-overflow:ellipsis;background-color:var(--surface-strong);border-radius:999px;min-height:46px;padding-top:8px;padding-bottom:8px;font-weight:700}.insight-range{color:var(--muted);align-items:center;gap:8px;margin-left:auto;font-size:14px;font-weight:700;display:inline-flex}.insight-empty{padding:40px 20px}.perf-table{font-variant-numeric:tabular-nums;font-size:15px}.perf-table thead th{text-align:right;background:0 0}.perf-table thead th:first-child{text-align:left}.perf-table thead th.sorted{color:var(--primary-ink)}.perf-table tbody th{border-bottom:1px solid var(--line-soft);font:inherit;letter-spacing:0;text-transform:none;white-space:normal;color:inherit;background:0 0;padding:8px 12px 8px 0}.perf-table td{text-align:right;color:var(--ink);white-space:nowrap;font-weight:700}.perf-table tbody tr{cursor:pointer}.perf-table tbody tr.on{background:color-mix(in srgb, var(--primary) 9%, transparent)}.perf-table tbody tr.on .perf-ad strong{color:var(--primary-ink)}.perf-ad{text-align:left;border-radius:12px;align-items:center;gap:12px;width:100%;min-height:48px;padding:4px;display:flex}.perf-ad>span:last-child{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;display:flex}.perf-ad strong{color:var(--ink);font-size:15px;line-height:1.35}.perf-ad .status{padding:2px 8px;font-size:13px}@media (prefers-reduced-motion:reduce){.insight-kpis,.live-item{transition:none}}@media (max-width:1100px){.insight-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.insight-kpis.cols-6{grid-template-columns:repeat(3,minmax(0,1fr))}.brand-columns,.brand-columns.trend-row{grid-template-columns:minmax(0,1fr)}}@media (max-width:760px){.insight-kpis.cols-6{grid-template-columns:repeat(2,minmax(0,1fr))}.placement-body{grid-template-columns:minmax(0,1fr);justify-items:center}}@media (max-width:640px){.brand-hero{grid-template-columns:minmax(0,1fr);grid-template-areas:"main""notes""actions";gap:14px;padding:20px}.hero-value{font-size:34px}.hero-actions{grid-template-columns:1fr 1fr;display:grid}.hero-button{gap:8px;padding:10px 12px;font-size:15px}.insight-kpis{gap:10px}.insight-kpis .stat-card{gap:6px;padding:14px}.insight-kpis .stat-card strong{font-size:20px}.insight-kpis .stat-icon{width:32px;height:32px}.insight-kpis .stat-icon svg{width:17px;height:17px}.insight-kpis .stat-tile .delta{font-size:13px}.insight-heading .segmented button{padding:6px 12px}.trend-facts{gap:6px}.trend-facts>div{padding:8px 10px}.trend-facts dd{font-size:15px}.insight-select{flex:1 1 0}.insight-range{flex-basis:100%;margin-left:0}.campaign-thumb{width:72px}.placement-points li{font-size:14px}.perf-table thead{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.perf-table,.perf-table tbody{display:block}.perf-table tbody tr{border-bottom:1px solid var(--line-soft);border-radius:14px;grid-template-columns:minmax(0,1.1fr) minmax(0,.7fr) minmax(0,.7fr) minmax(0,1.5fr);gap:8px 6px;padding:10px 8px 12px;display:grid}.perf-table tbody th{border:0;grid-column:1/-1;padding:0}.perf-table td{text-align:left;border:0;flex-direction:column;min-width:0;padding:0 0 0 4px;font-size:14px;display:flex}.perf-table td:before{content:attr(data-label);color:var(--muted);font-size:12px;font-weight:700}}
:root{--monitor-map-height:clamp(420px, 62vh, 620px)}.s-hadir{--att:var(--att-hadir);--att-soft:var(--att-hadir-soft);--att-ink:var(--att-hadir-ink)}.s-terlambat{--att:var(--att-terlambat);--att-soft:var(--att-terlambat-soft);--att-ink:var(--att-terlambat-ink)}.s-izin{--att:var(--att-izin);--att-soft:var(--att-izin-soft);--att-ink:var(--att-izin-ink)}.s-sakit{--att:var(--att-sakit);--att-soft:var(--att-sakit-soft);--att-ink:var(--att-sakit-ink)}.s-alpha{--att:var(--att-alpha);--att-soft:var(--att-alpha-soft);--att-ink:var(--att-alpha-ink)}.s-belum{--att:var(--att-belum);--att-soft:var(--att-belum-soft);--att-ink:var(--att-belum-ink)}.monitor-page{gap:16px}.monitor-tabs{border:1px solid var(--glass-border);background:var(--glass-sheen), var(--glass-card);max-width:100%;box-shadow:var(--glass-rim), 0 0 0 1px var(--glass-edge), var(--elev-1);border-radius:999px;align-self:flex-start;gap:4px;padding:4px;display:inline-flex}.monitor-tab{min-height:44px;color:var(--ink-2);white-space:nowrap;transition:background-color .2s var(--ease-out), color .2s var(--ease-out), box-shadow .2s var(--ease-out);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:8px 18px;font-size:15px;font-weight:700;display:inline-flex}.monitor-tab:hover:not([aria-selected=true]){background:#fff9}.monitor-tab[aria-selected=true]{background:var(--paper);color:var(--primary-ink);box-shadow:inset 0 1px 0 #ffffffe6, 0 1px 2px #0f172a1a, 0 6px 14px -8px var(--primary-glow)}.monitor-tabpanel,.monitor-view{flex-direction:column;gap:16px;min-width:0;display:flex}.monitor-toolbar{border-radius:var(--radius);border:1px solid var(--glass-border);background:var(--glass-sheen), var(--glass-card);min-width:0;box-shadow:var(--glass-rim), 0 0 0 1px var(--glass-edge), var(--elev-1);flex-direction:column;gap:12px;padding:14px;display:flex}.monitor-filter-row{flex-wrap:wrap;gap:10px;display:flex}.monitor-control{flex:0 210px;align-items:center;min-width:0;display:flex;position:relative}.monitor-control>svg{color:var(--muted);pointer-events:none;position:absolute;left:14px}.monitor-control :is(input,select){background:var(--paper);min-height:46px;padding-left:42px;font-weight:600}.monitor-control.is-search{flex:260px}.monitor-chips{flex-wrap:wrap;gap:8px;min-width:0;display:flex}.att-chip{border:1.5px solid var(--line);background:var(--paper);min-height:44px;color:var(--ink-2);white-space:nowrap;transition:background-color .15s var(--ease-out), border-color .15s var(--ease-out), color .15s var(--ease-out), transform .15s var(--ease-out);border-radius:999px;align-items:center;gap:8px;padding:6px 7px;font-size:15px;font-weight:700;display:inline-flex}.att-chip:hover{border-color:var(--att,var(--ink-2))}.att-chip:active{transform:scale(.97)}.att-chip.is-all{padding-left:16px}.att-chip i{background:var(--att);color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:12px;font-style:normal;font-weight:800;display:inline-grid}.att-chip b{background:var(--line-soft);min-width:30px;color:var(--ink);font-variant-numeric:tabular-nums;text-align:center;border-radius:999px;padding:2px 9px;font-size:13px}.att-chip[aria-pressed=true]{border-color:var(--att,var(--primary-line));background:var(--att-soft,var(--primary-soft));color:var(--att-ink,var(--primary-ink));box-shadow:inset 0 0 0 1px var(--att,var(--primary-line))}.att-chip[aria-pressed=true] b{background:var(--att,var(--primary));color:#fff}.monitor-layout{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);align-items:stretch;gap:16px;display:grid}.monitor-map-panel,.monitor-list-panel{gap:12px;padding:16px}.monitor-panel-head{align-items:center;gap:12px;min-height:44px;display:flex}.monitor-panel-head>div{flex:1;min-width:0}.monitor-panel-head small{color:var(--muted);font-weight:600;display:block}.monitor-loading{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:700;display:inline-flex}.monitor-loading .loader{width:16px;height:16px}.monitor-map-box{isolation:isolate;border:1px solid var(--line-soft);background:var(--line-soft);border-radius:16px;scroll-margin-top:84px;position:relative;overflow:hidden;container:monitor-map/inline-size}.monitor-canvas{height:var(--monitor-map-height)}.monitor-map-empty{z-index:800;background:var(--glass-thick);max-width:calc(100% - 32px);box-shadow:var(--glass-rim), 0 0 0 1px var(--glass-edge), var(--elev-1);color:var(--ink-2);text-align:center;pointer-events:none;border-radius:999px;margin:0;padding:8px 16px;font-size:14px;font-weight:700;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.monitor-map-error{z-index:900;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:absolute;inset:0}.monitor-map-error p{max-width:34ch;color:var(--ink-2);margin:0;font-weight:700}.monitor-skeleton-map{height:var(--monitor-map-height);border-radius:16px;margin:0}.monitor-skeleton-row{border-radius:14px;height:52px;margin:6px 0}.monitor-map-box .leaflet-container{font-family:var(--font);background:#e6ecf3}.monitor-map-box .leaflet-container .leaflet-bar{border:1px solid var(--glass-border);box-shadow:var(--glass-rim), 0 0 0 1px var(--glass-edge), var(--elev-1);border-radius:14px;overflow:hidden}.monitor-map-box .leaflet-container .leaflet-bar a{background:var(--glass-thick);width:40px;height:40px;color:var(--ink);font-size:20px;line-height:40px}.monitor-map-box .leaflet-container .leaflet-bar a:hover{background:var(--paper)}.monitor-map-box .leaflet-container .leaflet-bar a.leaflet-disabled{color:var(--line);background:var(--glass-thick)}.monitor-map-box .leaflet-control-attribution{background:#fffc;border-radius:8px 0 0;font-size:11px}.monitor-geofence{stroke:var(--primary);stroke-width:2px;stroke-dasharray:7 6;fill:var(--primary);fill-opacity:.07}.monitor-map-box .leaflet-marker-icon:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:50%}.att-pin-icon,.att-cluster-icon,.att-school-icon{background:0 0;border:0;border-radius:50%}.att-school{background:var(--primary);width:34px;height:34px;color:var(--on-primary);border:2.5px solid #fff;border-radius:12px;place-items:center;display:grid;box-shadow:0 3px 10px #0f172a59}.leaflet-tooltip.att-tooltip{border:1px solid var(--glass-border);background:var(--glass-thick);color:var(--ink);box-shadow:var(--elev-1);font:700 13px/1.35 var(--font);border-radius:10px;padding:4px 10px}.att-pin{background:var(--att);color:#fff;width:32px;height:32px;transition:transform .15s var(--ease-out), box-shadow .15s var(--ease-out);border:2.5px solid #fff;border-radius:50%;place-items:center;font-size:13px;font-weight:800;line-height:1;display:grid;position:relative;box-shadow:0 2px 6px #0f172a59,0 0 0 1px #0f172a1f}.att-pin.is-outside{outline:2px dashed var(--danger);outline-offset:2px}.att-pin-flag{background:var(--danger);color:#fff;border:1.5px solid #fff;border-radius:50%;place-items:center;width:17px;height:17px;font-size:11px;font-style:normal;font-weight:900;display:grid;position:absolute;top:-7px;right:-7px}.att-pin-icon:hover .att-pin,.att-pin-icon:focus-visible .att-pin{transform:scale(1.12)}.att-pin-icon.is-selected{z-index:3000!important}.att-pin-icon.is-selected .att-pin{box-shadow:0 0 0 4px color-mix(in srgb, var(--att) 40%, transparent), 0 0 0 7px #ffffffd9, 0 6px 14px #0f172a59;transform:scale(1.2)}.att-cluster{background:var(--ring);width:100%;height:100%;transition:transform .18s var(--ease-out), opacity .2s var(--ease-out);border-radius:50%;padding:5px;display:grid;box-shadow:0 0 0 2px #fff,0 6px 16px -4px #0f172a73}.att-cluster b{background:var(--paper);color:var(--ink);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-size:14px;font-weight:800;display:grid;box-shadow:inset 0 0 0 1px #0f172a14}.att-cluster-icon:hover .att-cluster,.att-cluster-icon:focus-visible .att-cluster{transform:scale(1.08)}.att-cluster-icon.is-spidered .att-cluster{opacity:.92;transform:scale(.8)}.spider-leg{stroke:#0f172a8c;stroke-width:1.5px;fill:none;animation:monitor-leg-in .28s var(--ease-out) both}.is-spider-anim .spider-pin{transition:transform .28s var(--ease-out), opacity .28s var(--ease-out)}.spider-pin.is-leaving{opacity:0}.has-spider .leaflet-marker-icon:not(.spider-pin,.is-spidered,.att-school-icon){opacity:.28}@keyframes monitor-leg-in{0%{opacity:0}to{opacity:1}}.monitor-popup .leaflet-popup-content-wrapper{background:var(--glass-thick);box-shadow:var(--glass-rim), 0 0 0 1px var(--glass-edge), var(--elev-2);-webkit-backdrop-filter:var(--glass-filter);backdrop-filter:var(--glass-filter);border-radius:20px;padding:0}.monitor-popup .leaflet-popup-tip{background:var(--glass-thick)}.monitor-popup .leaflet-popup-content{color:var(--ink);font:15px/1.45 var(--font);margin:14px 16px 16px}.monitor-popup.leaflet-popup a.leaflet-popup-close-button{width:40px;height:40px;font:400 24px/38px var(--font);color:var(--muted);border-radius:12px;top:6px;right:6px}.monitor-popup.leaflet-popup a.leaflet-popup-close-button:hover{background:var(--line-soft);color:var(--ink)}.pin-card{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.pin-card-head{align-items:center;gap:10px;padding-right:30px;display:flex}.pin-card-head strong{font-size:16px;line-height:1.3;display:block}.pin-card-head small{color:var(--muted);font-size:13px;font-weight:600;display:block}.pin-card-facts{grid-template-columns:auto 1fr;gap:4px 14px;width:100%;margin:0;font-size:14px;display:grid}.pin-card-facts>div{display:contents}.pin-card-facts dt{color:var(--muted);font-weight:600}.pin-card-facts dd{text-align:right;margin:0;font-weight:700}.pin-card-facts .is-warning dd{color:var(--danger-ink)}.pin-card-flags{background:var(--line-soft);width:100%;color:var(--ink-2);border-radius:12px;margin:0;padding:8px 10px 8px 26px;font-size:13px;font-weight:600}.pin-card-flags.is-anomaly{background:var(--danger-soft);color:var(--danger-ink)}.pin-card-detail{width:100%}.monitor-popup .leaflet-popup-scrolled .pin-card-detail{box-shadow:0 -10px 12px -2px var(--glass-thick);position:sticky;bottom:0}@container monitor-map (max-width:419px){.monitor-popup .leaflet-popup-content{margin:12px 14px 14px}.pin-card{gap:8px}.pin-card-head .att-avatar{display:none}.pin-card-facts{font-size:13px}}.att-pill{border:1.5px solid color-mix(in srgb, var(--att) 45%, transparent);background:var(--att-soft);color:var(--att-ink);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:13px;font-weight:700;display:inline-flex}.att-pill i{background:var(--att);border-radius:50%;width:8px;height:8px}.att-avatar{background:var(--att-soft);width:40px;height:40px;color:var(--att-ink);box-shadow:inset 0 0 0 2px var(--att);border-radius:50%;flex-shrink:0;place-items:center;font-size:14px;font-weight:800;display:inline-grid}.att-swatch{background:var(--att);color:#fff;border:2px solid #fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:11px;font-weight:800;display:inline-grid;box-shadow:0 0 0 1px #0f172a2e}.att-swatch.is-outside{background:var(--paper);border:2px dashed var(--danger);box-shadow:none}.att-swatch.is-flag{background:var(--danger);border-width:1.5px;width:18px;height:18px;font-size:11px;font-weight:900}.monitor-legend{color:var(--ink-2);flex-wrap:wrap;gap:8px 16px;margin:0;padding:4px 2px 0;font-size:14px;font-weight:600;list-style:none;display:flex}.monitor-legend li{align-items:center;gap:7px;display:inline-flex}.monitor-legend b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:800}.monitor-legend .is-extra{color:var(--ink);font-weight:700}.monitor-list-panel{contain:size;flex-direction:column;min-height:0;display:flex}.monitor-list-scroll{overscroll-behavior:contain;flex:1;min-height:0;margin:0 -8px;padding:0 8px 8px;overflow-y:auto}.monitor-list-label{z-index:1;background:var(--paper);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;margin:0;padding:12px 4px 6px;font-size:13px;font-weight:800;display:flex;position:sticky;top:0}.monitor-list-label b{background:var(--line-soft);color:var(--ink-2);letter-spacing:0;border-radius:999px;padding:0 8px;font-size:12px}.monitor-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.monitor-list>li{content-visibility:auto;contain-intrinsic-size:auto 60px}.monitor-list .monitor-row:focus-visible{outline-offset:-3px}.monitor-list-empty{color:var(--muted);padding:8px 4px;font-size:14px;font-weight:600}.monitor-row{text-align:left;width:100%;min-height:60px;transition:background-color .15s var(--ease-out), box-shadow .15s var(--ease-out);border-radius:14px;align-items:center;gap:12px;padding:8px 10px;display:flex}.monitor-list-scroll .monitor-row{scroll-margin:44px 0 8px}button.monitor-row:hover{background:color-mix(in srgb, var(--primary) 6%, transparent)}.monitor-row.is-selected{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary-line)}.monitor-row-main{flex-direction:column;flex:1;min-width:0;display:flex}.monitor-row-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;line-height:1.3;overflow:hidden}.monitor-row-main small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.monitor-row-tags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.row-tag{border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-flex}.row-tag.is-warning{background:var(--warning-soft);color:var(--warning-ink)}.row-tag.is-danger{background:var(--danger-soft);color:var(--danger-ink)}.monitor-row-side{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.monitor-row-side time{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.monitor-detail-grid{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:20px;display:grid}.monitor-selfie{flex-direction:column;align-items:center;gap:8px;margin:0;display:flex}.monitor-selfie img,.monitor-selfie-initials{aspect-ratio:3/4;background:var(--line-soft);object-fit:cover;border-radius:16px;width:100%}.monitor-selfie-initials{background:linear-gradient(160deg, var(--primary-soft), var(--animation-soft));color:var(--primary-ink);place-items:center;font-size:44px;font-weight:800;display:grid}.monitor-selfie.is-empty{aspect-ratio:3/4;border:2px dashed var(--line);width:100%;color:var(--muted);border-radius:16px;justify-content:center}.monitor-selfie figcaption{color:var(--muted);text-align:center;font-size:13px;font-weight:600}.monitor-detail-main{flex-direction:column;gap:14px;min-width:0;display:flex}.monitor-detail-status{flex-wrap:wrap;align-items:center;gap:10px;font-weight:600;display:flex}.monitor-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:0;display:grid}.monitor-facts dt{color:var(--muted);font-size:13px;font-weight:700}.monitor-facts dd{overflow-wrap:anywhere;margin:0;font-weight:700}.monitor-subhead{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;font-size:13px;font-weight:800}.monitor-flags,.monitor-rejects{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.monitor-flags li{background:var(--line-soft);border-radius:12px;align-items:flex-start;gap:10px;padding:8px 12px;font-size:14px;font-weight:600;display:flex}.monitor-flags .sev{background:var(--paper);border-radius:999px;flex-shrink:0;padding:1px 8px;font-size:12px;font-weight:800}.monitor-flags .sev-high .sev{background:var(--danger-soft);color:var(--danger-ink)}.monitor-flags .sev-medium .sev{background:var(--warning-soft);color:var(--warning-ink)}.monitor-rejects li{font-size:14px}@media (max-width:1080px){.monitor-layout{grid-template-columns:minmax(0,1fr)}.monitor-list-panel{contain:none}.monitor-list-scroll{overflow:visible}.monitor-list-label{position:static}}@media (max-width:759px){:root{--monitor-map-height:46vh}.monitor-canvas,.monitor-skeleton-map{min-height:280px}.monitor-tabs{align-self:stretch}.monitor-tab{flex:1;padding:8px 12px}.monitor-toolbar{padding:12px}.monitor-control{flex:calc(50% - 5px)}.monitor-control.is-search{flex-basis:100%}.monitor-control:not(.is-search)>svg{display:none}.monitor-control:not(.is-search) :is(input,select){padding-left:12px;padding-right:8px}.monitor-chips{scrollbar-width:none;flex-wrap:nowrap;margin:0 -12px;padding:2px 12px 4px;scroll-padding-inline:12px;overflow-x:auto}.monitor-chips::-webkit-scrollbar{display:none}.att-chip{flex-shrink:0;font-size:14px}.monitor-map-panel,.monitor-list-panel{padding:12px}.monitor-legend{gap:8px 12px;font-size:13px}}@media (max-width:640px){.monitor-detail-grid{grid-template-columns:minmax(0,1fr)}.monitor-selfie{width:min(220px,70%);margin:0 auto}}@media (forced-colors:active){.att-pin,.att-swatch,.att-chip i,.att-cluster{forced-color-adjust:none}.monitor-tab[aria-selected=true]{outline-offset:-2px;outline:2px solid highlight}}.has-spider .leaflet-tooltip.cluster-tip{display:none}
.campaign-chips{flex-wrap:wrap;gap:8px;min-width:0;display:flex}.camp-chip{border:1.5px solid var(--line);background:var(--paper);min-height:44px;color:var(--ink-2);white-space:nowrap;transition:background-color .15s var(--ease-out), border-color .15s var(--ease-out), color .15s var(--ease-out), transform .15s var(--ease-out);border-radius:999px;align-items:center;gap:8px;padding:6px 7px 6px 16px;font-size:15px;font-weight:700;display:inline-flex}.camp-chip:hover{border-color:var(--ink-2)}.camp-chip:active{transform:scale(.97)}.camp-chip b{background:var(--line-soft);min-width:30px;color:var(--ink);font-variant-numeric:tabular-nums;text-align:center;border-radius:999px;padding:2px 9px;font-size:13px}.camp-chip[aria-pressed=true]{border-color:var(--primary-line);background:var(--primary-soft);color:var(--primary-ink);box-shadow:inset 0 0 0 1px var(--primary-line)}.camp-chip[aria-pressed=true] b{background:var(--primary);color:var(--on-primary)}.campaign-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.campaign-item{border:1px solid var(--glass-border);background:var(--glass-card);min-width:0;box-shadow:0 0 0 1px var(--glass-edge), var(--elev-1);transition:box-shadow .2s var(--ease-out), transform .2s var(--ease-out);border-radius:22px;flex-direction:column;display:flex;overflow:hidden}.campaign-item:hover{box-shadow:0 0 0 1px var(--glass-edge), var(--elev-2)}.campaign-item:has(.campaign-card:active){transform:scale(.99)}.campaign-card{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:12px;padding:10px 10px 14px;display:flex;position:relative}.campaign-card:focus-visible{outline-offset:-3px;border-radius:22px}.campaign-thumb{aspect-ratio:2;background:var(--line-soft);border-radius:14px;display:block;position:relative;overflow:hidden}.campaign-thumb img{object-fit:cover;width:100%;height:100%;display:block}.thumb-fallback{width:100%;height:100%;color:var(--on-primary);background:linear-gradient(135deg, var(--primary), var(--secondary));place-items:center;font-size:30px;font-weight:800;display:grid}.campaign-body{flex-direction:column;align-items:flex-start;gap:6px;min-width:0;padding:0 6px;display:flex}.campaign-title{color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:17px;line-height:1.3;display:-webkit-box;overflow:hidden}.campaign-meta{color:var(--muted);flex-direction:column;gap:2px;font-size:14px;font-weight:600;display:flex}.campaign-meta>span{align-items:center;gap:7px;min-width:0;display:inline-flex}.campaign-perf{border-top:1px solid var(--line-soft);width:100%;color:var(--ink-2);flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:4px;padding-top:8px;font-size:14px;display:flex}.campaign-perf b{color:var(--ink);font-variant-numeric:tabular-nums}.campaign-perf small{color:var(--muted);margin-left:auto;font-size:13px;font-weight:600}.campaign-head{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.campaign-open{color:var(--muted);place-items:center;display:grid}.campaign-note{background:var(--warning-soft);color:var(--warning-ink);border-radius:12px;margin:-4px 12px 12px;padding:10px 12px;font-size:14px;line-height:1.45}.status.blue{color:var(--primary-ink);background:var(--primary-soft);border-color:color-mix(in srgb, var(--primary-line) 40%, transparent)}.campaign-skeleton{background:var(--glass-card);border:1px solid var(--glass-border);border-radius:22px;flex-direction:column;gap:4px;padding:12px;display:flex}.campaign-skeleton .skeleton.thumb{aspect-ratio:2;border-radius:14px;height:auto;margin:0 0 8px}.campaign-skeleton .skeleton.short{width:60%}.campaign-empty{text-align:center;align-items:center;padding:36px 20px}.campaign-empty p{max-width:52ch;color:var(--ink-2)}.campaign-empty .empty-icon{background:var(--primary-soft);color:var(--primary-ink)}.empty-state.compact{padding:32px 16px}.campaign-more{flex-direction:column;align-items:center;gap:10px;display:flex}:is(.campaigns-page,.balance-page,.campaign-detail,.campaign-editor) .text-button{min-height:44px}.danger-text{color:var(--danger)}.campaign-detail{width:min(980px,100vw - 24px);max-width:none}.campaign-editor{width:min(1140px,100vw - 32px);max-width:none}.detail-footer,.editor-footer{flex-direction:column;align-items:stretch;gap:10px}.footer-buttons{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.footer-note{color:var(--muted);text-align:right;margin:0;font-size:14px;font-weight:600}.footer-note.is-error{color:var(--danger)}:is(.campaign-editor,.campaign-detail) :is(.dialog-heading,.dialog-footer){background:var(--paper)}:is(.campaign-editor,.campaign-detail) :is(input,select,textarea,fieldset){scroll-margin:110px 0 130px}.detail-layout{grid-template:"preview facts""preview week""preview danger"1fr/290px minmax(0,1fr);align-items:start;gap:18px 28px;display:grid}.detail-preview{background:color-mix(in srgb, var(--primary) 5%, transparent);border-radius:22px;grid-area:preview;justify-content:center;padding:18px 0;display:flex}.detail-danger{grid-area:danger;min-width:0}.detail-danger:empty{display:none}.detail-facts{flex-direction:column;grid-area:facts;gap:14px;min-width:0;display:flex}.detail-status{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.detail-status p{color:var(--ink-2);font-weight:600}.fact-list{gap:10px;margin:0;display:grid}.fact{grid-template-columns:150px minmax(0,1fr);align-items:baseline;gap:4px 12px;display:grid}.fact dt{color:var(--muted);align-items:center;gap:8px;font-size:14px;font-weight:700;display:inline-flex}.fact dt svg{align-self:center}.fact dd{min-width:0;color:var(--ink);overflow-wrap:anywhere;margin:0;font-weight:600}.target-chips{flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.target-chip{background:var(--primary-soft);min-height:36px;color:var(--primary-ink);border-radius:999px;align-items:center;gap:2px;padding:2px 2px 2px 12px;font-size:14px;font-weight:700;display:inline-flex}.target-chips.static .target-chip{min-height:30px;padding:3px 12px}.target-chip button{width:32px;height:32px;color:inherit;border-radius:50%;place-items:center;display:grid}.target-chip button:hover{background:color-mix(in srgb, var(--primary) 14%, transparent)}.campaign-week{border-top:1px solid var(--line-soft);flex-direction:column;grid-area:week;gap:12px;min-width:0;padding-top:16px;display:flex}.campaign-week h3{font-size:16px}.week-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.week-tiles .stat-card{padding:14px}.week-tiles .stat-card strong{font-size:22px}.week-tiles .delta{font-size:13px}.week-chart{flex-direction:column;gap:8px;display:flex}.week-chart-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;display:flex}.danger-row{border-top:1px solid var(--line-soft);flex-wrap:wrap;gap:4px 20px;padding-top:8px;display:flex}.confirm-buttons{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.danger-confirm p{color:inherit;margin-top:4px}.editor-heading-actions{align-items:center;gap:4px;display:flex}.preview-jump{display:none}.editor-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:28px;display:grid}.editor-form{flex-direction:column;gap:20px;min-width:0;display:flex}.editor-preview{background:color-mix(in srgb, var(--primary) 6%, transparent);border-radius:24px;flex-direction:column;align-items:center;gap:12px;padding:16px 10px 18px;display:flex;position:sticky;top:96px}.editor-section{border-bottom:1px solid var(--line-soft);flex-direction:column;gap:12px;min-width:0;padding-bottom:20px;display:flex}.editor-section:last-child{border-bottom:0;padding-bottom:0}.section-head{align-items:flex-start;gap:12px;display:flex}.section-head h3{font-size:17px}.section-head p{color:var(--muted);font-size:14px}.step{background:var(--primary-soft);width:28px;height:28px;color:var(--primary-ink);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:800;display:grid}.field-label{color:var(--ink);font-size:15px;font-weight:700}.field-foot{justify-content:space-between;gap:12px;display:flex}.counter{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-weight:600}.field .segmented{align-self:flex-start}.banner-picker{flex-direction:column;gap:10px;display:flex}.banner-frame{aspect-ratio:2;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:16px;max-width:520px;position:relative;overflow:hidden}.banner-frame img{object-fit:cover;width:100%;height:100%;display:block}.banner-busy{color:var(--ink);background:#ffffffd1;justify-content:center;align-items:center;gap:10px;font-weight:700;display:flex;position:absolute;inset:0}.banner-busy .loader{width:24px;height:24px}.banner-actions{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.file-button{cursor:pointer;position:relative;overflow:hidden}.file-button input{opacity:0;cursor:pointer;width:100%;min-height:0;padding:0;position:absolute;inset:0}.file-button:focus-within{outline:3px solid var(--focus);outline-offset:2px}.banner-note{background:var(--primary-soft);color:var(--primary-ink);border-radius:12px;margin:0;padding:8px 12px;font-size:14px;font-weight:600}.scope-options{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0;margin:0;padding:0;display:grid}.scope-options:focus-visible{outline:3px solid var(--focus);outline-offset:4px;border-radius:14px}.scope-option{border:1.5px solid var(--line);background:var(--paper);cursor:pointer;border-radius:14px;align-items:flex-start;gap:10px;min-height:44px;padding:12px;transition:border-color .15s,background-color .15s;display:flex}.scope-option:hover{border-color:var(--ink-2)}.scope-option.on{border-color:var(--primary-line);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary-line)}.scope-option input{width:20px;height:20px;min-height:20px;accent-color:var(--primary);flex:none;margin:2px 0 0;padding:0}.scope-option strong{color:var(--ink);font-size:15px;display:block}.scope-option small{color:var(--muted);font-size:13px;font-weight:500;line-height:1.4;display:block}.sub-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.field.sub-field{gap:4px}.school-search{flex-direction:column;gap:6px;display:flex}.school-results{border:1px solid var(--line-soft);background:var(--paper);border-radius:14px;flex-direction:column;gap:2px;max-height:232px;margin:0;padding:4px;list-style:none;display:flex;overflow-y:auto}.school-results button{text-align:left;width:100%;min-height:48px;color:var(--primary-ink);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.school-results button:hover:not(:disabled){background:var(--primary-soft)}.school-results strong{color:var(--ink);font-size:15px;display:block}.school-results small{color:var(--muted);font-size:13px;display:block}.school-empty{padding:10px 12px;font-size:14px}.chip-block{flex-direction:column;gap:6px;display:flex}.chip-block .target-chips{margin:0}.schedule-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.duration-chips,.quick-amounts,.ledger-types{flex-wrap:wrap;gap:8px;display:flex}.mini-chip{border:1.5px solid var(--line);background:var(--paper);min-height:44px;color:var(--ink-2);font-variant-numeric:tabular-nums;border-radius:999px;padding:6px 16px;font-size:15px;font-weight:700}.mini-chip:hover:not(:disabled){border-color:var(--ink-2)}.mini-chip[aria-pressed=true]{border-color:var(--primary-line);background:var(--primary-soft);color:var(--primary-ink)}.cost-note{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--secondary) 6%, var(--paper));border-radius:16px;gap:12px;padding:14px 16px;display:flex}.cost-note p{margin-top:4px;font-size:14px}.cost-icon{background:var(--secondary-soft);width:40px;height:40px;color:var(--secondary-ink);border-radius:12px;flex:none;place-items:center;display:grid}.balance-hero{isolation:isolate;background:linear-gradient(145deg, var(--banner), var(--banner-2));color:var(--on-banner);--focus:var(--on-banner);box-shadow:inset 0 1px 0 #ffffff40, 0 18px 40px -18px color-mix(in srgb, var(--banner) 70%, transparent);border-radius:26px;flex-direction:column;gap:10px;padding:24px;display:flex;position:relative;overflow:hidden}.balance-hero:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(50% 70% at 100% 0%, color-mix(in srgb, var(--animation) 30%, transparent), transparent 70%);position:absolute;inset:0}.balance-hero .kicker{color:var(--on-banner-muted)}.hero-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.hero-chip{background:#ffffff29;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:13px;font-weight:700;display:inline-flex}.hero-amount{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:clamp(34px,5vw,46px);font-weight:800;line-height:1.1}.hero-sub,.hero-runway{color:var(--on-banner-muted);font-size:15px;font-weight:600}.hero-meter{background:#fff3;border-radius:999px;height:8px;margin:4px 0;overflow:hidden}.hero-meter span{border-radius:inherit;background:var(--on-banner);height:100%;display:block}.hero-figures{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:6px 0 0;display:grid}.hero-figures div{background:#ffffff1f;border-radius:14px;min-width:0;padding:10px 12px}.hero-figures dt{color:var(--on-banner-muted);font-size:13px;font-weight:700}.hero-figures dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:17px;font-weight:800}.balance-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.balance-side{flex-direction:column;gap:20px;min-width:0;display:flex}.account-card{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--primary) 5%, var(--paper));border-radius:18px;flex-direction:column;gap:2px;padding:16px;display:flex}.account-bank{color:var(--ink-2);font-weight:700}.account-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;display:flex}.account-number{letter-spacing:.04em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:24px;font-weight:800}.account-holder{color:var(--muted);font-size:14px;font-weight:600}.account-card.is-empty{background:var(--warning-soft);color:var(--warning-ink);border-color:color-mix(in srgb, var(--warning) 35%, transparent);flex-direction:row;align-items:flex-start;gap:12px}.account-card.is-empty p{color:inherit;font-size:14px}.account-icon{background:#fff9;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}.topup-fields{border:0;min-width:0;margin:0;padding:0}.money-input{align-items:center;display:flex;position:relative}.money-input span{color:var(--muted);pointer-events:none;font-weight:800;position:absolute;left:16px}.money-input input{font-variant-numeric:tabular-nums;padding-left:46px;font-size:20px;font-weight:800}.proof-drop{min-height:76px}.proof-chosen{border:1.5px solid var(--line);background:var(--paper);border-radius:14px;grid-template-columns:60px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px;display:grid}.proof-chosen img{object-fit:cover;background:var(--line-soft);border-radius:10px;width:60px;height:60px}.proof-name{flex-direction:column;min-width:0;display:flex}.proof-name strong{white-space:nowrap;text-overflow:ellipsis;font-size:15px;overflow:hidden}.proof-name small{color:var(--muted);font-size:13px}.topup-list,.ledger-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.topup-row{border-top:1px solid var(--line-soft);grid-template-columns:56px minmax(0,1fr);gap:12px;padding:12px 0;display:grid}.topup-row:first-child{border-top:0;padding-top:0}.proof-thumb{border:1px solid var(--line-soft);background:var(--line-soft);border-radius:12px;width:56px;height:56px;display:block;overflow:hidden}.proof-thumb img{object-fit:cover;width:100%;height:100%;display:block}.topup-info{flex-direction:column;align-items:flex-start;gap:3px;min-width:0;display:flex}.topup-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;width:100%;display:flex}.topup-top strong{font-variant-numeric:tabular-nums;font-size:17px}.topup-info .muted,.topup-note{overflow-wrap:anywhere;font-size:14px}.topup-review{background:var(--danger-soft);color:var(--danger-ink);border-radius:10px;margin:4px 0 0;padding:8px 10px;font-size:14px}.confirm-inline{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;font-size:14px;font-weight:700;display:flex}.ledger-day h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:6px 0 2px;font-size:13px;font-weight:800}.ledger-row{border-bottom:1px solid var(--line-soft);grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;display:grid}.ledger-icon{background:var(--line-soft);width:36px;height:36px;color:var(--ink-2);border-radius:10px;place-items:center;display:grid}.ledger-row.type-topup .ledger-icon{background:var(--success-soft);color:var(--success-ink)}.ledger-row.type-adjustment .ledger-icon{background:var(--primary-soft);color:var(--primary-ink)}.ledger-main{flex-direction:column;min-width:0;display:flex}.ledger-main strong{font-size:15px}.ledger-main small{color:var(--muted);overflow-wrap:anywhere;font-size:13px}.ledger-amount{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.ledger-amount b{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px}.ledger-amount b.plus{color:var(--success-ink)}.ledger-amount b.minus{color:var(--ink)}.ledger-amount small{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px}@media (max-width:960px){.balance-grid,.editor-layout{grid-template-columns:minmax(0,1fr)}.detail-layout{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-template-areas:"facts""preview""week""danger"}.editor-preview{position:static}.preview-jump{min-height:44px;padding:0 10px;text-decoration:none;display:inline-flex}}@media (max-width:640px){.campaign-chips{scrollbar-width:none;flex-wrap:nowrap;margin:0 -16px;padding:2px 16px 4px;scroll-padding-inline:16px;overflow-x:auto}.campaign-chips::-webkit-scrollbar{display:none}.camp-chip{flex-shrink:0;font-size:14px}.campaign-grid{grid-template-columns:minmax(0,1fr)}.action-dialog:is(.campaign-detail,.campaign-editor){border:0;border-radius:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0}.detail-footer,.editor-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom));flex-direction:column}.footer-buttons{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px;display:grid}.footer-buttons .button{white-space:normal;text-align:center;width:100%;min-width:0;padding:10px 12px}.footer-close{display:none}.footer-buttons .footer-close:only-child{display:inline-flex}.footer-note{text-align:left}.detail-layout{gap:18px}.fact,.sub-grid{grid-template-columns:minmax(0,1fr)}.scope-option{padding:10px}.balance-hero{padding:20px}.hero-figures{grid-template-columns:minmax(0,1fr);gap:6px}.hero-figures div{justify-content:space-between;align-items:baseline;gap:10px;padding:8px 12px;display:flex}.account-number{font-size:21px}.proof-chosen{grid-template-columns:52px minmax(0,1fr) auto}.proof-chosen img{width:52px;height:52px}.proof-chosen .file-button{grid-column:2;justify-self:start}.proof-chosen .icon-button{grid-area:1/3}}@media (prefers-reduced-motion:reduce){.camp-chip,.campaign-item,.scope-option{transition:none}.camp-chip:active{transform:none}.campaign-item:has(.campaign-card:active){transform:none}}@media (forced-colors:active){.camp-chip[aria-pressed=true],.scope-option.on,.mini-chip[aria-pressed=true]{outline:2px solid highlight}.hero-meter span{background:canvastext}}
.review-page{gap:16px}.review-toolbar{min-width:0;display:flex}.review-layout{grid-template-columns:minmax(0,1fr);gap:20px;min-width:0;display:grid}.review-layout.split{grid-template-columns:minmax(300px,360px) minmax(0,1fr);align-items:start}.review-list-panel{gap:10px;padding:14px}.review-list-panel:focus:not(:focus-visible){outline:none}.review-summary{color:var(--muted);margin:2px 6px 0;font-size:14px;font-weight:700}.review-search{flex:none;min-width:0}.review-search input{width:100%;min-height:44px}.review-more{color:var(--muted);flex-direction:column;align-items:stretch;gap:8px;margin:4px 6px 2px;font-size:14px;display:flex}.review-more p{text-align:center;margin:0;font-weight:600}.review-more .button{min-height:44px}.review-queue{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.review-item{width:100%;min-height:72px;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color .15s var(--ease-out), border-color .15s var(--ease-out);background:0 0;border:1px solid #0000;border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;display:grid}.review-item:hover{background:color-mix(in srgb, var(--ink) 4%, transparent)}.review-item[aria-current=true]{background:var(--primary-soft);border-color:var(--primary-line)}.review-item:focus-visible{outline:3px solid var(--primary-line);outline-offset:2px}.review-thumb{aspect-ratio:2;background:var(--line-soft);width:96px;box-shadow:0 0 0 1px var(--line-soft);border-radius:10px;flex:none;display:block;overflow:hidden}.review-thumb img{object-fit:cover;width:100%;height:100%;display:block}.review-thumb.proof{aspect-ratio:3/4;width:46px}.review-item-text{flex-direction:column;gap:1px;min-width:0;display:flex}.review-item-text strong{color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;line-height:1.3;display:-webkit-box;overflow:hidden}.review-item-text>span{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.review-item-text small{color:var(--muted);font-size:13px}.review-item-text strong.review-item-amount{font-variant-numeric:tabular-nums;font-size:17px}.review-item-go{color:var(--muted);display:grid}.review-layout.split .review-item-go{opacity:0;transition:opacity .15s var(--ease-out)}.review-layout.split .review-item:hover .review-item-go,.review-layout.split .review-item[aria-current=true] .review-item-go{opacity:1}.review-flag{background:var(--warning-soft);color:var(--warning-ink);border-radius:999px;align-self:flex-start;align-items:center;gap:6px;margin-top:4px;padding:2px 8px;font-size:12px;font-weight:800;display:inline-flex}.review-flag:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.review-skeleton{border-radius:14px;height:64px}.review-empty{padding:36px 16px}.review-empty h2{font-size:18px}.review-empty-icon{background:var(--primary-soft);width:52px;height:52px;color:var(--primary-ink);border-radius:16px;place-items:center;display:grid}.review-detail-panel{overscroll-behavior:contain;gap:0;max-height:calc(100dvh - 116px);padding:0;position:sticky;top:96px;overflow:auto}.review-detail{flex-direction:column;min-width:0;display:flex;container-type:inline-size}.review-detail-head{flex-direction:column;gap:6px;padding:20px 22px 0;display:flex}.review-detail-head h2{overflow-wrap:anywhere;font-size:22px;line-height:1.25}.review-detail-head p{color:var(--ink-2);margin:0}.review-detail-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:14px;font-weight:600;display:flex}.review-detail-head h2.review-amount{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:34px;font-weight:800;line-height:1.1}.review-detail-body{flex-direction:column;gap:18px;padding:16px 22px 22px;display:flex}.review-banner,.review-proof{flex-direction:column;gap:8px;margin:0;display:flex}.review-banner img{aspect-ratio:2;object-fit:cover;background:var(--line-soft);width:100%;box-shadow:0 0 0 1px var(--line-soft), var(--elev-1);border-radius:16px;display:block}.review-banner figcaption,.review-proof figcaption{color:var(--muted);font-size:13px}.review-detail-grid{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:20px 24px;display:grid}.review-detail-grid.proof{grid-template-columns:minmax(0,.9fr) minmax(0,1fr)}@container (max-width:620px){.review-detail-grid,.review-detail-grid.proof{grid-template-columns:minmax(0,1fr)}}.review-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;margin:0;display:grid}.review-fact{flex-direction:column;gap:3px;min-width:0;display:flex}.review-fact.wide{grid-column:1/-1}.review-fact dt{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:800}.review-fact dd{color:var(--ink);overflow-wrap:anywhere;flex-direction:column;align-items:flex-start;gap:4px;margin:0;font-size:15px;font-weight:700;display:flex}.review-fact dd small{color:var(--muted);font-size:13px;font-weight:500}.review-sponsor{flex-wrap:wrap;align-items:center;gap:6px 10px;display:inline-flex}.review-host{letter-spacing:-.01em;color:var(--ink);font-size:19px;font-weight:800}.review-url{color:var(--muted);word-break:break-all;font-size:13px;font-weight:500}.review-inline-warn{margin:4px 0;font-size:14px}.review-tags{flex-wrap:wrap;gap:6px;display:flex}.review-fact dd small.review-bad,.review-bad{color:var(--danger-ink);font-weight:700}.review-good{color:var(--success-ink)}.review-checklist{border:1px dashed var(--line);border-radius:16px;flex-direction:column;gap:12px;margin:0;padding:14px 16px 16px;display:flex}.review-checklist legend{padding:0 6px;font-weight:800}.review-checklist p{color:var(--muted);margin:0;font-size:14px}.review-checklist p strong{color:var(--ink-2)}.review-checklist .check-field{cursor:pointer;min-height:44px}.review-note{background:var(--line-soft);border-radius:14px;flex-direction:column;gap:2px;padding:14px 16px;display:flex}.review-note p{margin:2px 0;font-weight:600}.review-note small{color:var(--muted)}.review-proof a{background:var(--line-soft);box-shadow:0 0 0 1px var(--line-soft), var(--elev-1);border-radius:16px;display:block;position:relative;overflow:hidden}.review-proof a:focus-visible{outline:3px solid var(--primary-line);outline-offset:3px}.review-proof img{object-fit:contain;width:100%;max-height:560px;display:block}.review-proof-hint{color:#fff;background:#0f172ab8;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:700;display:inline-flex;position:absolute;bottom:10px;right:10px}.review-side{flex-direction:column;gap:16px;min-width:0;display:flex}.review-balance{background:color-mix(in srgb, var(--primary) 6%, var(--paper));border:1px solid var(--line-soft);border-radius:16px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.review-balance-flow{flex-wrap:wrap;align-items:center;gap:6px 14px;display:flex}.review-balance-flow>span:not(.review-balance-arrow){flex-direction:column;display:flex}.review-balance-flow small{color:var(--muted);font-size:12px;font-weight:700}.review-balance-flow strong{font-variant-numeric:tabular-nums;font-size:18px}.review-balance-arrow{color:var(--muted);display:grid}.review-actions{z-index:1;border-top:1px solid var(--line-soft);background:var(--paper);flex-direction:column;gap:12px;margin-top:auto;padding:14px 22px;display:flex;position:sticky;bottom:0}.review-blocker{color:var(--ink-2);align-items:flex-start;gap:8px;margin:0;font-size:14px;display:flex}.review-blocker svg{flex:none;margin-top:3px}.review-sync{align-items:center}.review-sync .text-button{min-height:44px}.review-spinner{border:2px solid var(--line);border-top-color:var(--primary);border-radius:50%;flex:none;width:16px;height:16px;animation:.8s linear infinite review-spin}@keyframes review-spin{to{transform:rotate(360deg)}}.review-buttons{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.review-confirm{background:var(--primary-soft);cursor:pointer;border-radius:14px;min-height:44px;padding:12px 14px}.review-decision{width:min(560px,100vw - 24px)}.review-decision .dialog-body>p{margin:0}.review-reason{flex-direction:column;gap:10px;display:flex}.review-chips{flex-wrap:wrap;gap:8px;display:flex}.review-chip{border:1px solid var(--line);background:var(--paper);min-height:44px;color:var(--ink-2);font:inherit;text-align:left;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:700;display:inline-flex}.review-chip:hover{border-color:var(--ink-2)}.review-chip[aria-pressed=true]{border-color:var(--primary-line);background:var(--primary-soft);color:var(--primary-ink)}.review-chip:focus-visible{outline:3px solid var(--primary-line);outline-offset:2px}.review-reason-meta{justify-content:space-between;gap:12px;font-size:14px;display:flex}.review-sheet{width:min(760px,100vw - 24px)}.review-sheet-bar{z-index:2;border-bottom:1px solid var(--line-soft);background:var(--paper);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px 8px 22px;display:flex;position:sticky;top:0}.review-grabber{display:none}@media (max-width:640px){.review-toolbar .segmented button{padding:6px 11px;font-size:14px}.review-sheet{width:100%;max-width:100%;max-height:92dvh;animation:review-sheet-up .28s var(--ease-out);border-bottom:0;border-radius:26px 26px 0 0;margin:auto 0 0}.review-sheet-bar{padding:14px 8px 6px 16px}.review-grabber{background:var(--line);border-radius:99px;width:40px;height:5px;margin-left:-20px;display:block;position:absolute;top:6px;left:50%}.review-detail-head{padding:16px 16px 0}.review-detail-body{padding:14px 16px 18px}.review-actions{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.review-buttons .button{flex:1 1 0}.review-thumb{width:80px}.review-detail-head h2.review-amount{font-size:30px}}@keyframes review-sheet-up{0%{opacity:0;transform:translateY(32px)}}@media (prefers-reduced-motion:reduce){.review-sheet{animation:none}.review-item,.review-item-go{transition:none}.review-spinner{border-top-color:var(--line);animation:none}}
.school-charts{grid-template-columns:minmax(0,1fr) minmax(0,1.75fr);grid-template-areas:"today main""classes classes";gap:16px;display:grid}.sc-today{grid-area:today}.sc-col-main{flex-direction:column;grid-area:main;gap:16px;min-width:0;display:flex;container-type:inline-size}.sc-classes{grid-area:classes}.sc-panel .panel-heading{flex-wrap:wrap;align-items:flex-start}.sc-panel .panel-heading>div:first-child{flex:220px;min-width:0}.sc-today .donut{flex:1 0 auto;place-content:center}.sc-today .donut-legend{max-width:440px}.sc-link{align-self:flex-start;min-height:44px;margin-top:auto}.sc-month>.stat-card.stat-tile{box-shadow:none;background:0 0;border:0;border-radius:0;justify-content:flex-start;align-items:stretch;padding:0}.sc-month-mix{border-top:1px solid var(--line-soft);grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;margin:4px 0 0;padding-top:12px;display:grid}@container (min-width:560px){.sc-month{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;column-gap:24px;display:grid}.sc-month-mix{border-top:0;border-left:1px solid var(--line-soft);grid-template-columns:minmax(0,1fr);gap:6px;margin:0;padding:4px 0 4px 22px}}.sc-month-mix>div{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.sc-month-mix dt{min-width:0;color:var(--ink-2);align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.sc-month-mix dd{color:var(--ink);font-variant-numeric:tabular-nums;margin:0;font-size:14px;font-weight:800}.sc-controls{flex-wrap:wrap;gap:8px;display:flex}.sc-chart{min-width:0}.sc-highlights{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.sc-highlights>div{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--ink) 4%, transparent);min-width:0;padding:10px 12px}.sc-highlights dt{color:var(--muted);font-size:13px;font-weight:700}.sc-highlights dd{letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:19px;font-weight:800}.sc-highlights dd small{letter-spacing:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;display:block;overflow:hidden}.sc-hint{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.sc-hint b{color:var(--ink-2)}.sc-group{flex-direction:column;gap:2px;padding:0 4px;display:flex}.sc-group-title{color:var(--muted);align-items:center;gap:6px;margin:0 0 2px;padding:0 8px;font-size:13px;font-weight:800;display:flex}.sc-group-attention{background:var(--warning-soft);border-radius:14px;padding:10px 4px 4px}.sc-group-attention .sc-group-title{color:var(--warning-ink)}.sc-all-good{color:var(--success-ink);align-items:center;gap:6px;margin:0;font-weight:700;display:flex}.sc-classes .bar-track{position:relative}.sc-classes .bar-track:after{content:"";background:var(--ink);opacity:.4;width:2px;position:absolute;top:0;bottom:0;left:calc(90% - 1px)}.sc-classes-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;display:flex}.sc-threshold-key{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.sc-threshold-key i{background:var(--ink);opacity:.4;width:2px;height:14px}.sc-more{min-height:44px}.sc-skeleton{flex-direction:column;display:flex}.sc-skeleton .skeleton{margin:8px 0}.skeleton.sc-skeleton-block{border-radius:var(--radius-sm);height:184px}.sc-month .skeleton.sc-skeleton-value{width:45%;height:30px;margin:4px 0}.sc-empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:20px 12px;display:flex}.sc-empty p{max-width:40ch;color:var(--muted);margin:0}.sc-error{align-items:center}@media (min-width:1181px){.sc-classes .bar-row{grid-template-columns:minmax(96px,180px) minmax(0,1fr) 64px}}@media (max-width:1180px){.school-charts{grid-template-columns:minmax(0,1fr);grid-template-areas:"today""main""classes"}}@media (max-width:640px){.sc-highlights{gap:6px}.sc-highlights>div{padding:8px 10px}.sc-highlights dd{font-size:16px}.sc-controls{width:100%}.sc-controls .segmented{flex:100%}.sc-controls .segmented button{flex:1}}
