/* Generated from lib/ui/*.css and palette.json. Run npm run ui:generate. */
:root{
  --bl-navy:#08172f;--bl-navy-2:#0d213f;--bl-panel:#112746;--bl-panel-2:#152d4f;
  --bl-line:#294564;--bl-line-soft:#1d3857;--bl-yellow:#ffc44d;--bl-yellow-2:#f2ae2e;
  --bl-text:#f7f9fc;--bl-muted:#93afd0;--bl-green:#16b889;--bl-red:#ef5b67;
  --bl-shadow:0 24px 70px rgba(0,8,24,.28);--bl-radius:22px;--bl-radius-sm:14px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:#f2f5f8}
html[data-theme="dark"]{background:#08172f}
@view-transition{navigation:auto}
body{font-family:Inter,Pretendard,"Noto Sans KR",system-ui,-apple-system,"Segoe UI",sans-serif!important;letter-spacing:-.01em}
a,button,input,select,textarea{font:inherit}
button,a{transition:transform .16s ease,background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}
button:not(:disabled):active,.btn:active{transform:translateY(1px)}
:focus-visible{outline:3px solid rgba(255,196,77,.36)!important;outline-offset:2px}

.brand-logo{display:block;width:150px;height:72px;object-fit:contain;object-position:left center;margin:-12px 0}
.brand-logo.compact{width:128px;height:60px}

/* Landing */
body.landing-page{margin:0;background:var(--bl-navy);color:var(--bl-text);overflow-x:hidden}
.landing-page:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 76% 17%,rgba(31,86,140,.25),transparent 34%),radial-gradient(circle at 12% 78%,rgba(255,196,77,.06),transparent 26%)}
.landing-page .wrap{width:min(1180px,calc(100% - 44px));margin:auto;position:relative}
.landing-page .nav{height:92px;border-bottom:1px solid rgba(147,175,208,.14);display:flex;align-items:center;justify-content:space-between}
.landing-page .brand{padding:0;text-decoration:none}
.landing-page .navActions{display:flex;gap:10px}
.landing-page .btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 19px;border:1px solid var(--bl-line);border-radius:14px;color:var(--bl-text);text-decoration:none;font-size:14px;font-weight:850;background:rgba(17,39,70,.58)}
.landing-page .btn:hover{border-color:#426487;background:var(--bl-panel-2);transform:translateY(-1px)}
.landing-page .btn.primary{background:var(--bl-yellow);border-color:var(--bl-yellow);color:#071831;box-shadow:0 10px 28px rgba(255,196,77,.16)}
.landing-page .hero{min-height:650px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:72px;padding:78px 0 104px}
.landing-page .eyebrow{display:inline-flex;padding:8px 12px;border:1px solid rgba(255,196,77,.22);border-radius:999px;background:rgba(255,196,77,.08);color:var(--bl-yellow);font-size:12px;font-weight:900;letter-spacing:.12em}
.landing-page .hero h1{font-size:clamp(50px,6vw,78px);line-height:1.05;letter-spacing:-.065em;margin:20px 0 22px}
.landing-page .hero h1 span{color:var(--bl-yellow)}
.landing-page .heroText{font-size:18px;line-height:1.8;color:var(--bl-muted);max-width:590px;margin:0}
.landing-page .heroActions{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}
.landing-page .heroActions .btn{min-height:52px;padding:0 24px}
.landing-page .preview{border:1px solid var(--bl-line);background:linear-gradient(145deg,var(--bl-panel-2),#0b1b35);border-radius:28px;padding:22px;box-shadow:var(--bl-shadow);transform:none;position:relative}
.landing-page .preview:after{content:"";position:absolute;inset:10px;border:1px solid rgba(255,255,255,.025);border-radius:20px;pointer-events:none}
.landing-page .previewTop{display:flex;justify-content:space-between;align-items:center;color:var(--bl-muted);font-size:12px;margin-bottom:18px}
.landing-page .previewTop strong{color:var(--bl-yellow);letter-spacing:.12em}
.landing-page .dots{display:flex;gap:6px}.landing-page .dots i{width:7px;height:7px;border-radius:50%;background:#486584}
.landing-page .previewCard{background:rgba(7,24,49,.72);border:1px solid var(--bl-line-soft);border-radius:17px;padding:19px;margin-top:12px}
.landing-page .previewCard small{color:var(--bl-muted)}.landing-page .previewCard b{display:block;font-size:25px;margin-top:7px}
.landing-page .progress{height:8px;background:#203c5c;border-radius:99px;margin-top:17px;overflow:hidden}.landing-page .progress i{display:block;width:68%;height:100%;background:linear-gradient(90deg,var(--bl-yellow-2),var(--bl-yellow));border-radius:99px}
.landing-page .chips{display:flex;gap:7px;margin-top:15px;flex-wrap:wrap}.landing-page .chips span{font-size:11px;padding:6px 9px;background:#1a385a;border:1px solid #284b6f;border-radius:999px;color:#c5d8ed}
.landing-page .section{padding:94px 0;border-top:1px solid rgba(147,175,208,.12)}
.landing-page .sectionTitle{font-size:36px;letter-spacing:-.045em;margin:0 0 11px}.landing-page .sectionSub{color:var(--bl-muted);margin:0 0 38px;line-height:1.7}
.landing-page .features{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.landing-page .feature{background:rgba(17,39,70,.78);border:1px solid var(--bl-line);border-radius:20px;padding:26px;box-shadow:0 12px 30px rgba(0,8,24,.12)}
.landing-page .featureIcon{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:rgba(255,196,77,.1);border:1px solid rgba(255,196,77,.2);color:var(--bl-yellow);font-size:20px}.landing-page .feature h3{margin:17px 0 8px}.landing-page .feature p{margin:0;color:var(--bl-muted);font-size:14px;line-height:1.7}
.landing-page .cta{margin:20px auto 94px;background:linear-gradient(135deg,#fff7dc,#ffe6a6);color:#0b1b35;border-radius:26px;padding:48px;display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:var(--bl-shadow)}
.landing-page .cta h2{font-size:32px;margin:0 0 8px}.landing-page .cta p{margin:0;color:#56657a}.landing-page .cta .btn.primary{background:#0b1b35;border-color:#0b1b35;color:#fff}
.landing-page .footer{padding:30px 0 44px;color:#708eae;font-size:13px;display:flex;justify-content:space-between;border-top:1px solid rgba(147,175,208,.12)}

/* Account pages */
body.auth-page,body:has(#current){margin:0;min-height:100vh;background:var(--bl-navy)!important;color:var(--bl-text)!important;padding:32px 16px!important;display:grid;place-items:center;position:relative;overflow-x:hidden}
body:has(#current) .mark{display:none!important}
body.auth-page:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 12% 15%,rgba(33,86,140,.24),transparent 34%),radial-gradient(circle at 86% 84%,rgba(255,196,77,.07),transparent 28%);pointer-events:none}
.auth-page .card{position:relative;width:min(480px,100%)!important;background:rgba(13,33,63,.96)!important;border:1px solid var(--bl-line)!important;border-radius:26px!important;padding:34px!important;box-shadow:var(--bl-shadow)!important;color:var(--bl-text)!important}
.auth-page.signup-page .card{width:min(720px,100%)!important}
.auth-page .brand{display:flex!important;align-items:center!important;gap:14px!important;margin:0 0 10px!important}.auth-page .brand h1,.auth-page .brand h2{font-size:26px!important;margin:0!important;letter-spacing:-.04em}
.auth-page .brandMark,.auth-page .mark{display:none!important}.auth-page .sub{margin:4px 0 24px!important;color:var(--bl-muted)!important;letter-spacing:0!important;font-size:13px!important}
.auth-page .desc{color:var(--bl-muted)!important;line-height:1.7!important}.auth-page .notice{padding:15px 16px!important;border:1px solid rgba(255,196,77,.26)!important;background:rgba(255,196,77,.08)!important;color:#ffe9b5!important;border-radius:15px!important;line-height:1.65!important}
.auth-page label{color:#dbe8f6!important;font-weight:800!important}.auth-page input:not([type=checkbox]):not([type=radio]),.auth-page select,.auth-page textarea{width:100%;border:1px solid var(--bl-line)!important;border-radius:13px!important;padding:12px 14px!important;background:#091d38!important;color:var(--bl-text)!important;min-height:46px}.auth-page input::placeholder,.auth-page textarea::placeholder{color:#6785a5}.auth-page input:not([type=checkbox]):not([type=radio]):focus,.auth-page select:focus,.auth-page textarea:focus{border-color:var(--bl-yellow)!important;box-shadow:0 0 0 3px rgba(255,196,77,.1);outline:0!important}
.auth-page input[type=checkbox],.auth-page input[type=radio]{
  width:18px!important;height:18px!important;min-width:18px!important;max-width:18px!important;min-height:18px!important;max-height:18px!important;
  margin:2px 0 0!important;padding:0!important;border:1px solid #5b7a9c!important;border-radius:4px!important;
  background:#091d38!important;accent-color:var(--bl-yellow)!important;flex:0 0 18px!important;cursor:pointer;box-shadow:none!important;
  appearance:auto;-webkit-appearance:checkbox
}
.auth-page .agree{display:flex!important;align-items:flex-start!important;gap:12px!important;margin-top:18px!important;line-height:1.55!important}
.auth-page .agree span{flex:1;min-width:0;padding-top:1px}
.signup-page #collectionNotice a{color:#a8d4ff;text-decoration:underline;text-underline-offset:3px}
.signup-page #collectionNotice summary{cursor:pointer;min-height:32px}
.auth-page button,.auth-page .submit{border:0!important;border-radius:13px!important;min-height:48px!important;background:var(--bl-yellow)!important;color:#071831!important;font-weight:900!important;cursor:pointer}.auth-page .back{border:1px solid var(--bl-line)!important;background:#102746!important;color:#dbe8f6!important;border-radius:13px!important;display:flex!important;align-items:center;justify-content:center}.auth-page .links{margin-top:17px!important}.auth-page .signupLink,.auth-page .back{color:#abc1da!important}.auth-page .sep{color:#4b6786!important}.auth-page .hint{color:#7897b7!important}.auth-page .agree{color:#b8cce1}.auth-page .msg{color:#ff8d95!important}.auth-page .msg.ok{color:#50d4a6!important}.auth-page .req{color:#ff8892!important}

/* Viewer */
body.viewer-page{margin:0;background:var(--bl-navy)!important;color:var(--bl-text)!important;min-height:100vh}
.viewer-page .wrap{max-width:920px!important;padding:34px 22px 70px!important}.viewer-page .viewer-brand{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:24px;border-bottom:1px solid var(--bl-line-soft)}
.viewer-page .viewer-heading h1{font-size:31px!important;letter-spacing:-.045em;margin:0 0 7px!important}.viewer-page .muted,.viewer-page .status,.viewer-page .comment-public,.viewer-page .empty{color:var(--bl-muted)!important}
.viewer-page .badge{background:rgba(255,196,77,.1)!important;border:1px solid rgba(255,196,77,.24);color:var(--bl-yellow)!important}
.viewer-page .panel,.viewer-page .fan{background:var(--bl-panel)!important;border:1px solid var(--bl-line)!important;border-radius:18px!important}.viewer-page .panel{padding:18px!important;margin-top:18px!important}.viewer-page .search{padding:13px 15px!important;border-radius:13px!important;border:1px solid var(--bl-line)!important;background:#091d38!important;color:var(--bl-text)!important}.viewer-page .search:focus{border-color:var(--bl-yellow)!important;box-shadow:0 0 0 3px rgba(255,196,77,.1)}
.viewer-page .fan{box-shadow:0 10px 26px rgba(0,8,24,.12)}.viewer-page .fan-name{padding:17px 18px!important}.viewer-page .fan-name:hover{background:var(--bl-panel-2)!important}.viewer-page .fan-content{padding:0 18px 18px!important;border-color:var(--bl-line-soft)!important}.viewer-page .fan-summary,.viewer-page .remain{color:var(--bl-yellow)!important}.viewer-page .event{background:#0c213f!important;border-color:var(--bl-line)!important;border-radius:12px!important;padding:11px 13px!important}.viewer-page .type{color:#f6f9fc!important}

/* Admin dashboard visual system */
body.admin-page[data-theme="dark"]{--surface:#112746;--surface-soft:#0d213f;--surface-strong:#173150;--border:#294564;--text:#f7f9fc;--muted:#93afd0;background:var(--bl-navy)!important;color:var(--bl-text)!important}
.admin-page .wrap{width:min(calc(100% - 32px),2160px)!important;max-width:none!important;padding:24px!important}.admin-page .top.brandBanner{background:var(--bl-panel)!important;border:1px solid var(--bl-line)!important;border-radius:22px!important;padding:16px 18px!important;box-shadow:0 12px 34px rgba(0,8,24,.16)}
.admin-page .brandMark,.admin-page .brandWords{display:none!important}.admin-page .brandLink{min-width:148px;height:62px;background:url('/assets/byeollog_logo_dark.png') left center/145px auto no-repeat!important;padding:0!important;margin:0!important}
.admin-page .connectionDot{background:var(--bl-green)!important;box-shadow:0 0 0 5px rgba(22,184,137,.12)}.admin-page .status,.admin-page .muted{color:var(--bl-muted)!important}
.admin-page button{border:1px solid var(--bl-line)!important;background:#132b4b!important;color:#e9f1fa!important;border-radius:12px!important;min-height:40px;padding:9px 13px!important;font-weight:800}.admin-page button:hover{background:#193657!important;border-color:#3b5d7d!important}.admin-page button.primary{background:var(--bl-yellow)!important;border-color:var(--bl-yellow)!important;color:#071831!important}.admin-page button.danger{background:rgba(239,91,103,.09)!important;border-color:rgba(239,91,103,.36)!important;color:#ff8e97!important}.admin-page .themeToggleBtn{border-radius:12px!important}
.admin-page input,.admin-page select,.admin-page textarea{background:#091d38!important;border:1px solid var(--bl-line)!important;color:var(--bl-text)!important;border-radius:12px!important;padding:10px 12px!important}.admin-page input:focus,.admin-page select:focus,.admin-page textarea:focus{border-color:var(--bl-yellow)!important;outline:0;box-shadow:0 0 0 3px rgba(255,196,77,.09)}
.admin-page .stats{gap:12px!important;margin:18px 0!important}.admin-page .stat,.admin-page .settings,.admin-page .collectorBox,.admin-page .donationStatsBox,.admin-page .userBox,.admin-page .batchBox{background:var(--bl-panel)!important;border:1px solid var(--bl-line)!important;border-radius:18px!important;padding:16px!important}.admin-page .stat span{color:var(--bl-muted)!important}.admin-page .stat b{font-size:25px!important;color:var(--bl-text)!important;margin-top:4px}.admin-page .stat:nth-child(4) b{color:var(--bl-yellow)!important}
.admin-page .toolbarMain{padding:2px 0 10px!important}.admin-page .viewTabs{padding:6px;background:#0a1d38;border:1px solid var(--bl-line-soft);border-radius:16px;gap:5px!important}.admin-page .viewTab.active,.admin-page .pendingSortControls button.active,.admin-page .collectorViewTab.active{background:var(--bl-yellow)!important;border-color:var(--bl-yellow)!important;color:#071831!important}.admin-page .pendingSortControls{background:transparent!important;border-color:var(--bl-line)!important}.admin-page .viewSearch{min-height:42px!important}
.admin-page .fanCard{background:var(--bl-panel)!important;border:1px solid var(--bl-line)!important;border-radius:18px!important;box-shadow:0 10px 25px rgba(0,8,24,.12)}.admin-page .fanCard:not(.collapsed){border-color:#436587!important;box-shadow:0 0 0 1px rgba(67,101,135,.25)}.admin-page .fanHead{background:var(--bl-panel-2)!important}.admin-page .fanCard:not(.collapsed) .fanHead{background:#173454!important}.admin-page .eventBlock{border-color:var(--bl-line-soft)!important}.admin-page th{color:var(--bl-muted)!important}.admin-page th,.admin-page td{border-color:var(--bl-line-soft)!important}.admin-page .doneRow{background:rgba(255,255,255,.04)!important}
.admin-page .doneRow td{color:rgba(199,214,232,.78)!important}
.admin-page .doneRow .pill.donePill,
.admin-page .doneRow .pill{background:rgba(16,185,129,.14)!important;color:#6ee7b7!important;border:1px solid rgba(110,231,183,.28)!important;font-weight:800}
.admin-page .doneRow:hover{background:rgba(255,196,77,.06)!important}
body.admin-page[data-theme="light"] .doneRow{background:#f8fafc!important}
body.admin-page[data-theme="light"] .doneRow td{color:#64748b!important}
body.admin-page[data-theme="light"] .doneRow .pill.donePill,
body.admin-page[data-theme="light"] .doneRow .pill{background:#ecfdf3!important;color:#067647!important;border:1px solid #a7f3d0!important}
body.admin-page[data-theme="light"] .doneRow:hover{background:#f1f5f9!important}
.admin-page .modal{background:rgba(0,8,24,.72)!important;backdrop-filter:blur(8px)}.admin-page .dialog{background:var(--bl-panel)!important;border:1px solid var(--bl-line)!important;border-radius:22px!important;box-shadow:var(--bl-shadow)}.admin-page .managementHead,.admin-page .managementDetailHead,.admin-page .recentCollectorHead{border-color:var(--bl-line)!important}.admin-page .managementCard{background:#0d213f!important;border:1px solid var(--bl-line)!important;border-radius:16px!important}.admin-page .managementCard:hover{background:#163252!important;transform:translateY(-1px)}.admin-page .managementIcon{background:rgba(255,196,77,.1)!important;color:var(--bl-yellow)!important;border:1px solid rgba(255,196,77,.2)}
.admin-page .rouletteRecordRow,.admin-page .backupRow,.admin-page .legacyRow,.admin-page .fanMasterRow,.admin-page .collectorUnknownItem,.admin-page .collectorRuleRow,.admin-page .collectorClassRow{background:var(--bl-panel-2)!important;border-color:var(--bl-line)!important}.admin-page .pill,.admin-page .batchSummary span,.admin-page .collectorSummary span{background:#1a385a!important;color:#d5e4f3!important}.admin-page .previewTableWrap,.admin-page .statsTableWrap,.admin-page .recentCollectorTableWrap{border-color:var(--bl-line)!important;background:#0b1d37!important}.admin-page .previewTable th,.admin-page .statsTable th{background:#132b4b!important}.admin-page a{color:#8ec5ff}

body.admin-page[data-theme="light"]{--surface:#fff;--surface-soft:#f6f8fb;--surface-strong:#edf2f7;--border:#d8e1eb;--text:#10213b;--muted:#647990;background:#f2f5f8!important;color:#10213b!important}
body.admin-page[data-theme="light"] .top.brandBanner,body.admin-page[data-theme="light"] .stat,body.admin-page[data-theme="light"] .settings,body.admin-page[data-theme="light"] .collectorBox,body.admin-page[data-theme="light"] .donationStatsBox,body.admin-page[data-theme="light"] .userBox,body.admin-page[data-theme="light"] .batchBox,body.admin-page[data-theme="light"] .fanCard,body.admin-page[data-theme="light"] .dialog{background:#fff!important;border-color:#d8e1eb!important;color:#10213b!important}
body.admin-page[data-theme="light"] .brandLink{background-image:url('/assets/byeollog_logo_light.png')!important}
body.admin-page[data-theme="light"] button{background:#f7f9fb!important;border-color:#d6e0ea!important;color:#243953!important}
body.admin-page[data-theme="light"] button:hover{background:#eef3f7!important;border-color:#bdcad7!important}
body.admin-page[data-theme="light"] button.primary,body.admin-page[data-theme="light"] .viewTab.active,body.admin-page[data-theme="light"] .pendingSortControls button.active,body.admin-page[data-theme="light"] .collectorViewTab.active{background:var(--bl-yellow)!important;border-color:var(--bl-yellow)!important;color:#071831!important}
body.admin-page[data-theme="light"] button.danger{background:#fff5f5!important;border-color:#f3c5c9!important;color:#bd3440!important}
body.admin-page[data-theme="light"] input,body.admin-page[data-theme="light"] select,body.admin-page[data-theme="light"] textarea{background:#fff!important;border-color:#d6e0ea!important;color:#10213b!important}
body.admin-page[data-theme="light"] .viewTabs{background:#eaf0f5!important;border-color:#d6e0ea!important}
body.admin-page[data-theme="light"] .fanHead,body.admin-page[data-theme="light"] .managementCard,body.admin-page[data-theme="light"] .rouletteRecordRow,body.admin-page[data-theme="light"] .backupRow,body.admin-page[data-theme="light"] .legacyRow,body.admin-page[data-theme="light"] .fanMasterRow,body.admin-page[data-theme="light"] .collectorUnknownItem,body.admin-page[data-theme="light"] .collectorRuleRow,body.admin-page[data-theme="light"] .collectorClassRow{background:#f7f9fb!important;border-color:#d8e1eb!important;color:#10213b!important}
body.admin-page[data-theme="light"] .fanCard:not(.collapsed) .fanHead{background:#eef3f7!important}
body.admin-page[data-theme="light"] .previewTableWrap,body.admin-page[data-theme="light"] .statsTableWrap,body.admin-page[data-theme="light"] .recentCollectorTableWrap{background:#fff!important;border-color:#d8e1eb!important}
body.admin-page[data-theme="light"] .previewTable th,body.admin-page[data-theme="light"] .statsTable th{background:#edf2f7!important}
body.admin-page[data-theme="light"] .pill,body.admin-page[data-theme="light"] .batchSummary span,body.admin-page[data-theme="light"] .collectorSummary span{background:#edf3f8!important;color:#3c536c!important}
body.admin-page[data-theme="light"] .status,body.admin-page[data-theme="light"] .muted,body.admin-page[data-theme="light"] th{color:#647990!important}
body.admin-page[data-theme="light"] .stat b{color:#10213b!important}body.admin-page[data-theme="light"] .stat:nth-child(4) b{color:#b67b00!important}
body.admin-page[data-theme="light"] a{color:#2563a8}

@media(max-width:820px){
  .landing-page .wrap{width:min(100% - 28px,1180px)}.landing-page .nav{height:76px}.landing-page .brand-logo{width:126px}.landing-page .hero{grid-template-columns:1fr;min-height:auto;padding:64px 0 78px;gap:46px}.landing-page .hero h1{font-size:48px}.landing-page .preview{max-width:560px}.landing-page .features{grid-template-columns:1fr}.landing-page .cta{align-items:flex-start;flex-direction:column;padding:32px}.landing-page .navActions .btn:first-child{display:none}.landing-page .footer{flex-direction:column;gap:7px}
  .admin-page .wrap{padding:12px!important}.admin-page .top.brandBanner{align-items:flex-start!important}.admin-page .topActions{justify-content:flex-end!important}.admin-page .stats{grid-template-columns:1fr 1fr!important}.admin-page .viewTabs{align-items:stretch!important}.admin-page .viewSearch{flex:1 1 100%!important}.admin-page .brandLink{min-width:118px;background-size:116px auto!important}
}
@media(max-width:540px){.auth-page .card{padding:24px 20px!important;border-radius:20px!important}.auth-page .actions{flex-direction:column}.viewer-page .viewer-brand{align-items:flex-start;flex-direction:column}.viewer-page .brand-logo{width:128px}.admin-page .stats{grid-template-columns:1fr!important}.admin-page .topActions{gap:6px!important}.admin-page .logoutBtn{font-size:12px!important;padding:7px 9px!important}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Shared dashboard chrome: Upbo, Roulette and Actions use this exact header/navigation. */
body.dashboard-page[data-theme="light"]{--dashboard-bg:#f2f5f8;--dashboard-panel:#fff;--dashboard-line:#d8e1eb;--dashboard-text:#10213b;--dashboard-muted:#647990;background:var(--dashboard-bg)!important;color:var(--dashboard-text)!important}
body.dashboard-page[data-theme="dark"]{--dashboard-bg:#08172f;--dashboard-panel:#112746;--dashboard-line:#294564;--dashboard-text:#f7f9fc;--dashboard-muted:#93afd0;background:var(--dashboard-bg)!important;color:var(--dashboard-text)!important}
.dashboard-page .dashboardHeader{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;flex-wrap:wrap!important;background:var(--dashboard-panel)!important;border:1px solid var(--dashboard-line)!important;border-radius:22px!important;padding:16px 18px!important;box-shadow:0 12px 34px rgba(0,8,24,.16)!important;margin-bottom:14px!important}
.dashboard-page .dashboardBrand{display:block!important;flex:0 0 148px!important;min-width:148px!important;width:148px!important;height:62px!important;background:url('/assets/byeollog_logo_light.png') left center/145px auto no-repeat!important;padding:0!important;margin:0!important;color:transparent!important;text-decoration:none!important}
.dashboard-page[data-theme="dark"] .dashboardBrand{background-image:url('/assets/byeollog_logo_dark.png')!important}
.dashboard-page .dashboardBrand .brandMark,.dashboard-page .dashboardBrand .brandWords{display:none!important}
.dashboard-page .dashboardHeaderActions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;flex-wrap:wrap!important}
.dashboard-page .dashboardConnectionDot{display:inline-block!important;width:9px!important;height:9px!important;border-radius:999px!important;background:#16b889!important;box-shadow:0 0 0 5px rgba(22,184,137,.12)!important}
.dashboard-page .dashboardConnectionState{color:var(--dashboard-muted)!important;font-size:13px!important;font-weight:800!important}
.dashboard-page .dashboardHeaderButton{display:inline-grid!important;place-items:center!important;min-height:40px!important;padding:9px 13px!important;border:1px solid var(--dashboard-line)!important;border-radius:12px!important;background:color-mix(in srgb,var(--dashboard-panel) 88%,var(--dashboard-bg))!important;color:var(--dashboard-text)!important;font-weight:800!important;cursor:pointer!important;text-decoration:none!important}
.dashboard-page .dashboardHeaderButton:hover{border-color:#9babbc!important;transform:translateY(-1px)}
.dashboard-page .dashboardHeaderButton.dashboardSoopConnect{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:12px!important;min-height:44px!important;padding:11px 16px!important;white-space:nowrap!important;background:linear-gradient(135deg,#ffc44d,#ffda7b)!important;border-color:#e9a91f!important;color:#102746!important;box-shadow:0 7px 18px rgba(233,169,31,.18)!important}
.dashboard-page .dashboardSoopConnect::after{content:"";width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);flex-shrink:0}
.dashboard-page .dashboardSoopConnect:focus-visible{outline:3px solid var(--dashboard-text)!important;outline-offset:3px!important}
.dashboard-page .dashboardHeaderButton.dashboardSoopConnect:hover{border-color:#cf8c08!important;box-shadow:0 9px 22px rgba(233,169,31,.25)!important}
.dashboard-page .dashboardHeaderButton.hidden{display:none!important}
@media(max-width:540px){.dashboard-page .dashboardHeaderButton.dashboardSoopConnect{order:-1;flex:1 0 100%!important;box-sizing:border-box!important;font-size:14px!important;margin-bottom:6px!important}}
.dashboard-page .dashboardThemeButton{width:40px!important;padding:0!important;font-size:17px!important}
.dashboard-page .dashboardNav{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;margin:14px 0 22px!important}
.dashboard-page .dashboardNav a{display:flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;min-height:58px!important;padding:13px!important;border:1px solid var(--dashboard-line)!important;border-radius:14px!important;background:var(--dashboard-panel)!important;color:#526176!important;text-decoration:none!important;font-weight:900!important}
.dashboard-page .dashboardNav a:hover{border-color:#aebdcb!important;transform:translateY(-1px)}
.dashboard-page .dashboardNav a.active{background:#102746!important;border-color:#102746!important;color:#ffc44d!important;box-shadow:0 8px 20px rgba(16,39,70,.12)!important}
.dashboard-page[data-theme="dark"] .dashboardNav a{background:#111a2c!important;border-color:#26354f!important;color:#c5cfdd!important}
.dashboard-page[data-theme="dark"] .dashboardNav a.active{background:#26344f!important;border-color:#354866!important;color:#ffd66f!important}
@media(max-width:820px){.dashboard-page .dashboardHeader{align-items:flex-start!important}.dashboard-page .dashboardBrand{flex-basis:118px!important;min-width:118px!important;width:118px!important;background-size:116px auto!important}.dashboard-page .dashboardHeaderActions{flex:1 1 100%!important}.dashboard-page .dashboardNav{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dashboard-page .dashboardNav a{min-height:50px!important;padding:11px 8px!important}}
@media(max-width:540px){.dashboard-page .dashboardHeaderActions{gap:6px!important}.dashboard-page .dashboardConnectionState{flex:1 1 auto!important;font-size:12px!important}.dashboard-page .dashboardHeaderButton{font-size:12px!important;padding:7px 9px!important}.dashboard-page .dashboardNav{gap:6px!important}.dashboard-page .dashboardNav a{font-size:12px!important}}

/* Shared site copyright. Excludes broadcast overlays and Agent-local documents. */
.byeollogSiteFooter{width:100%;margin:30px auto 0;padding:22px 16px;border-top:1px solid #d8e1eb;color:#718096;font-size:12px;font-weight:700;letter-spacing:.02em;text-align:center}
html[data-theme="dark"] .byeollogSiteFooter,.viewer-page .byeollogSiteFooter{border-top-color:rgba(147,175,208,.14);color:#718eac}
.dashboard-page .byeollogSiteFooter{margin-top:34px}
body.auth-page{padding-bottom:76px!important}
body.auth-page .byeollogSiteFooter,.byeollogSiteFooter.footerFixed{position:fixed;left:0;bottom:0;z-index:2;margin:0;border-top-color:rgba(147,175,208,.14);background:linear-gradient(180deg,transparent,rgba(7,23,46,.82));color:#718eac;pointer-events:none}
/* The long signup form must never scroll underneath its copyright line. */
body.auth-page.signup-page{grid-template-rows:1fr auto;gap:24px;padding-bottom:16px!important}
body.auth-page.signup-page .byeollogSiteFooter{position:static;background:none}

/* Signup: connection status and referral controls share the dark form palette. */
.auth-page.signup-page .card{width:min(780px,100%)!important;padding:40px!important}
.signup-page .signupHeader{display:flex;align-items:center;gap:24px;padding-bottom:26px;border-bottom:1px solid var(--bl-line-soft)}
.signup-page .signupBrand{display:block;flex:0 0 auto;border-radius:12px;line-height:0}
.signup-page .signupBrand .brand-logo{width:132px;height:64px;margin:0}
.signup-page .signupTitle{min-width:0}
.signup-page .signupTitle h1{margin:0;font-size:30px;line-height:1.25;letter-spacing:-.045em}
.signup-page .signupTitle .sub{margin:7px 0 0!important;font-size:14px!important;line-height:1.6}
.signup-page .signupIntro{display:flex;align-items:flex-start;gap:14px;margin:22px 0 0;padding:16px 18px;border:1px solid rgba(147,175,208,.2);border-radius:16px;background:rgba(9,29,56,.58)}
.signup-page .signupIntroBadge{flex:0 0 auto;display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;background:rgba(255,196,77,.14);color:var(--bl-yellow);font-size:12px;font-weight:900}
.signup-page .signupIntro p{margin:1px 0 0;color:#c3d3e5;font-size:14px;line-height:1.7;word-break:keep-all}
.signup-page .signupSection{padding:28px 0;border-bottom:1px solid var(--bl-line-soft)}
.signup-page .signupSectionHeading{display:flex;align-items:flex-start;gap:13px;margin-bottom:18px}
.signup-page .signupStep{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:10px;background:var(--bl-yellow);color:#071831;font-size:14px;font-weight:950}
.signup-page .signupSectionHeading h2{margin:1px 0 3px;font-size:19px;line-height:1.4;letter-spacing:-.025em}
.signup-page .signupSectionHeading p{margin:0;color:var(--bl-muted);font-size:13px;line-height:1.6}
.signup-page .soopConnect{background:#112c4b;border-color:#456685;color:#f7f9fc;gap:18px}
.signup-page .soopConnect{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;margin:0;padding:18px;border-radius:16px}
.signup-page .soopConnectText{display:grid;gap:4px;min-width:0}
.signup-page .soopConnectText b{font-size:15px;line-height:1.5;color:#f7f9fc}
.signup-page .soopConnectText span{font-size:13px;line-height:1.65;color:#b8cce1;overflow-wrap:anywhere}
.signup-page .soopButton{min-width:188px;padding-inline:18px!important;white-space:nowrap}
.signup-page .soopConnect.connected{background:#103a36;border-color:#46bda3}
.signup-page .soopConnect.connected b{color:#8befd1}
.signup-page .soopConnect.connectionError{background:#392b3d;border-color:#eb8f9c}
.signup-page .soopConnect.connectionError b{color:#ffb6bf}
.signup-page .soopExistingLogin{display:inline-flex;width:max-content;margin-top:5px;color:#ffd36b;font-size:13px;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.signup-page .soopExistingLogin[hidden]{display:none}
.signup-page .signupSection.signupBlocked{opacity:.48}
.signup-page .signupSection.signupBlocked input,.signup-page .signupSection.signupBlocked button{cursor:not-allowed}
.signup-page .signupFields{gap:18px 16px}
.signup-page .signupFields .field{display:flex;min-width:0;flex-direction:column}
.signup-page .signupFields label{min-height:24px;margin-bottom:7px;font-size:14px}
.signup-page .signupOptional{display:inline-flex;margin-left:5px;padding:2px 7px;border:1px solid var(--bl-line);border-radius:999px;color:var(--bl-muted);font-size:11px;font-weight:800;vertical-align:2px}
.signup-page .hint{font-size:13px!important;line-height:1.65;color:#adc2d9!important;margin-top:7px;word-break:keep-all;overflow-wrap:anywhere}
.signup-page .signupConsentList{display:grid;gap:10px;margin-top:0}
.signup-page .agree{margin:0!important;padding:14px 15px;border:1px solid var(--bl-line-soft);border-radius:14px;background:rgba(9,29,56,.46);font-size:14px;line-height:1.65!important}
.signup-page .agree:has(input:checked){border-color:rgba(255,196,77,.56);background:rgba(255,196,77,.07)}
.signup-page .agree a.policyLink{color:#9bcaff;text-underline-offset:3px}
.signup-page .agree a.policyLink:hover{color:#d0e6ff}
.signup-page .signupCollectionNotice{margin:2px 0!important;padding:0!important;overflow:hidden;background:rgba(255,196,77,.055)!important}
.signup-page .signupCollectionNotice summary{display:flex;align-items:center;min-height:48px;padding:12px 15px;font-size:14px;font-weight:850;list-style:none}
.signup-page .signupCollectionNotice summary::-webkit-details-marker{display:none}
.signup-page .signupCollectionNotice summary::before{content:'+';display:grid;place-items:center;width:22px;height:22px;margin-right:10px;border-radius:7px;background:rgba(255,196,77,.13);color:var(--bl-yellow);font-size:17px;line-height:1}
.signup-page .signupCollectionNotice[open] summary::before{content:'−'}
.signup-page .signupCollectionNotice p{margin:0;padding:0 15px 12px 47px;color:#c7d6e6;font-size:13px;line-height:1.7}
.signup-page .signupSubmitArea{display:grid;gap:12px;padding-top:26px;text-align:center}
.signup-page .signupNextStep{min-height:22px;margin:0;padding:0 6px;color:#b8cce1;font-size:13px;line-height:1.65}
.signup-page .signupSubmitArea .submit{width:100%;min-height:54px!important;font-size:16px}
.signup-page .signupBackLink{display:inline-flex;justify-self:center;padding:6px;color:#abc1da;font-size:13px;font-weight:750;text-decoration:none}
.signup-page .signupBackLink:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.signup-page .actions{margin-top:10px}
.signup-page button:disabled{opacity:.55;cursor:not-allowed!important}
.signup-page .referralResults{background:#112c4b;border-color:#456685;max-height:240px;overflow-y:auto}
.signup-page button.referralResult{background:#112c4b!important;color:#f7f9fc!important;border-radius:0!important;border-bottom:1px solid #456685!important;font-weight:600!important}
.signup-page button.referralResult:hover,.signup-page button.referralResult[aria-selected=true]{background:#24486a!important;box-shadow:inset 3px 0 #ffc44d}
.signup-page .referralResult small,.signup-page .referralEmpty{color:#b8cce1}
.signup-page .referralSelected{background:#103a36;border-color:#46bda3;color:#f7f9fc}
.signup-page .referralSelected b{color:#8befd1}
.signup-page button.referralClear{background:transparent!important;color:#c0eadd!important;padding:8px}
.signup-page .referralStatus:empty{display:none}
.signup-page .msg{font-size:14px;line-height:1.65;scroll-margin-block:24px}
.signup-page input[aria-invalid=true]{border-color:#ff8d95!important}
.signup-page :focus-visible{outline:3px solid #ffc44d!important;outline-offset:3px}
.signup-page .done{width:min(560px,100%);margin:0 auto;padding:4px 0 2px!important;text-align:center!important}
.signup-page .doneLogo{display:block;width:124px;height:60px;margin:0 auto 28px!important;object-fit:contain}
.signup-page .doneStatus{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 18px;border:1px solid rgba(80,212,166,.42);border-radius:18px;background:rgba(16,185,129,.14);box-shadow:0 10px 28px rgba(0,0,0,.14)}
.signup-page .doneStatus span{display:grid;place-items:center;width:29px;height:29px;border-radius:999px;background:#50d4a6;color:#071831;font-size:18px;font-weight:950}
.signup-page .doneBrand{display:block!important;text-align:center}
.signup-page .doneEyebrow{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;background:rgba(255,196,77,.12);color:var(--bl-yellow);font-size:12px;font-weight:900;letter-spacing:.02em}
.signup-page .done h2{margin:12px 0 0!important;color:#f7f9fc;font-size:29px;line-height:1.32;letter-spacing:-.04em}
.signup-page .doneDescription{margin:14px 0 0!important;color:#b8cce1!important;font-size:15px;line-height:1.75!important;word-break:keep-all}
.signup-page .doneEmailCard{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;margin-top:24px;padding:15px 17px;border:1px solid var(--bl-line);border-radius:14px;background:#102746;text-align:left}
.signup-page .doneEmailCard span{color:#8eaac7;font-size:12px;font-weight:800}
.signup-page .doneEmailCard strong{min-width:0;color:#f7f9fc;font-size:14px;font-weight:850;text-align:right;overflow-wrap:anywhere}
.signup-page .doneGuide{margin-top:12px;padding:15px 17px;border:1px solid rgba(147,175,208,.18);border-radius:14px;background:rgba(9,29,56,.5);text-align:left}
.signup-page .doneGuide strong{display:block;color:#e7eef7;font-size:13px}
.signup-page .doneGuide p{margin:4px 0 0!important;color:#91abc6!important;font-size:12px;line-height:1.6!important}
.signup-page .doneLinks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.signup-page .doneLinks a{display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 14px;border:1px solid var(--bl-line);border-radius:12px;background:#102746;color:#c9d8e8;font-size:13px;font-weight:800;text-decoration:none}
.signup-page .doneLinks a:hover{border-color:#587a9d;background:#163252;color:#fff}
.signup-page .donePrimary{display:flex!important;align-items:center;justify-content:center;width:100%;min-height:54px!important;margin-top:18px;text-decoration:none;font-size:16px}
.reset-page .back{width:100%;min-height:48px;margin-top:18px!important;padding:11px 16px;border-color:#3b5b7c!important;background:#132d4d!important;color:#d9e6f3!important;font-size:14px!important;font-weight:850!important;text-decoration:none;box-shadow:0 7px 18px rgba(0,0,0,.1)}
.reset-page .back:hover{border-color:#6485a8!important;background:#1a395d!important;color:#fff!important}
.reset-page.resetComplete .msg.ok{margin-top:20px;padding:15px 16px;border:1px solid rgba(80,212,166,.32);border-radius:13px;background:rgba(16,185,129,.1);font-size:14px;line-height:1.6;text-align:center}
.reset-page .resetLogin{display:flex!important;align-items:center;justify-content:center;width:100%;min-height:52px!important;margin-top:14px!important;padding:11px 16px;border:0!important;border-radius:13px!important;background:#ffc44d!important;color:#071831!important;text-decoration:none;font-size:15px!important;font-weight:900!important;box-shadow:0 8px 22px rgba(255,196,77,.12)}
@media(max-width:620px){.auth-page.signup-page .card{padding:24px 20px!important}.signup-page .signupHeader{align-items:flex-start;gap:14px;padding-bottom:20px}.signup-page .signupBrand .brand-logo{width:108px;height:54px}.signup-page .signupTitle h1{font-size:23px}.signup-page .signupTitle .sub{font-size:12px!important}.signup-page .signupIntro{display:grid;gap:9px;margin-top:18px;padding:14px}.signup-page .signupSection{padding:23px 0}.signup-page .soopConnect{grid-template-columns:1fr;padding:16px}.signup-page .soopButton{width:100%;min-width:0;white-space:normal}.signup-page .signupCollectionNotice p{padding-left:15px}.signup-page .card{padding:22px!important}.signup-page .doneLogo{width:110px;height:54px;margin-bottom:22px!important}.signup-page .done h2{font-size:24px}.signup-page .doneDescription{font-size:14px}.signup-page .doneEmailCard{grid-template-columns:1fr;gap:5px}.signup-page .doneEmailCard strong{text-align:left}.signup-page .doneLinks{grid-template-columns:1fr}}
@media(max-width:400px){.signup-page .signupHeader{display:block}.signup-page .signupTitle{margin-top:12px}.signup-page .signupSectionHeading{gap:10px}.signup-page .agree{padding:12px}.signup-page .signupIntro p{font-size:13px}}

/* Shared component contract: page-local button rules must not change the header. */
.dashboard-page .dashboardHeaderButton{font-family:inherit!important;font-size:14px!important;line-height:20px!important;font-weight:750!important;min-height:44px!important;padding:11px 14px!important;letter-spacing:0!important;white-space:nowrap!important}
.dashboard-page .dashboardIcon{display:block;width:24px!important;height:24px!important;min-width:24px;flex:none;pointer-events:none}
.dashboard-page .dashboardNav a{font-size:15px!important;line-height:22px!important}
.dashboard-page .dashboardThemeButton{width:44px!important;padding:10px!important;font-size:0!important}
.dashboard-page .dashboardThemeButton::before{content:'';width:22px;height:22px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg%20class%3D%22dashboardIcon%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20d%3D%22M20.8%2013A9%209%200%200%201%2011%203.2%209%209%200%201%200%2020.8%2013Z%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat}
.dashboard-page[data-theme="dark"] .dashboardThemeButton::before{mask-image:url("data:image/svg+xml,%3Csvg%20class%3D%22dashboardIcon%22%20viewBox%3D%220%200%2024%2024%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20aria-hidden%3D%22true%22%20focusable%3D%22false%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M12%202v2M12%2020v2M2%2012h2M20%2012h2M5%205l1.5%201.5M17.5%2017.5%2019%2019M5%2019l1.5-1.5M17.5%206.5%2019%205%22%2F%3E%3C%2Fsvg%3E")}
.admin-page .managementCard{display:flex!important;align-items:center!important;gap:16px!important;min-height:100px;padding:20px!important;text-align:left}
.admin-page .managementCard>span:last-child{min-width:0}
.admin-page .managementIcon{display:grid!important;place-items:center!important;flex:0 0 48px!important;width:48px!important;height:48px!important;padding:0!important;line-height:1;border-radius:14px!important}
.admin-page .managementIcon .dashboardIcon{width:26px!important;height:26px!important}
.admin-page .managementCard b{display:block;font-size:18px!important;line-height:1.4!important;margin-bottom:5px}
.admin-page .managementCard span span{display:block;font-size:14px!important;line-height:1.55!important;overflow-wrap:anywhere}
.notificationCount{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:6px;padding:0 6px;border-radius:999px;background:#c92a41;color:white;font-size:12px;font-weight:800;line-height:1;vertical-align:middle}
.notificationCount[hidden]{display:none!important}
#roulettePendingPanel{margin:12px 0 18px;padding:20px;background:var(--dashboard-panel);border:1px solid var(--dashboard-line);border-radius:16px}
#roulettePendingPanel h2{margin-top:0;font-size:18px}#roulettePendingPanel details{margin-top:16px}#roulettePendingPanel summary{cursor:pointer;padding:8px 0}
#roulettePendingPanel .exceptionRow{padding:14px 0;border-top:1px solid var(--dashboard-line)}
.dashboard-page :focus-visible{outline:3px solid #d69924!important;outline-offset:3px}
@media(max-width:680px){
 .dashboard-page .wrap,.dashboard-page .shell{width:100%!important;padding:14px 14px 40px!important}
 .dashboard-page .dashboardHeader{gap:14px!important;padding:4px 0 14px!important}
 .dashboard-page .dashboardHeaderActions{display:flex!important;gap:8px!important;flex-wrap:wrap!important;min-width:0}
 .dashboard-page .dashboardConnectionState{flex:1 1 calc(100% - 24px)!important;font-size:13px!important}
 .dashboard-page .dashboardHeaderButton{flex:1 1 auto;font-size:13px!important;min-height:44px!important;padding:10px 12px!important}
 .dashboard-page .dashboardThemeButton{flex:0 0 44px;font-size:0!important}
 .dashboard-page .dashboardNav{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;margin:8px 0 18px!important}
 .dashboard-page .dashboardNav a{flex-direction:column;gap:6px!important;padding:12px 4px!important;font-size:12px!important;line-height:18px!important;min-height:78px!important;text-align:center}
 .admin-page .managementModal,.admin-page .managementDetailModal{padding:0!important}
 .admin-page .managementDialog,.admin-page .managementDetailDialog{width:100%!important;max-width:none!important;max-height:100dvh!important;height:100dvh;border-radius:0!important;display:flex;flex-direction:column}
 .admin-page .managementHead,.admin-page .managementDetailHead{flex:none;padding:18px!important;gap:12px;align-items:center}
 .admin-page .managementHead h2,.admin-page .managementDetailHead h2{font-size:23px!important;line-height:1.3}
 .admin-page .managementHead p{font-size:14px!important;line-height:1.5}
 .admin-page .managementBody,.admin-page .managementDetailBody{padding:16px!important;overflow:auto;min-height:0;overscroll-behavior:contain}
 .admin-page .managementGrid{grid-template-columns:minmax(0,1fr)!important;gap:10px!important}
 .admin-page .managementCard{padding:16px!important;gap:14px!important;min-height:96px}
 .admin-page .managementCard b{font-size:17px!important}
 .admin-page .managementIcon{flex-basis:44px!important;width:44px!important;height:44px!important}
 .dashboard-page button,.dashboard-page .button{min-height:44px}
 .dashboard-page input:not([type=checkbox]):not([type=radio]),.dashboard-page select,.dashboard-page textarea{font-size:16px!important;max-width:100%}
 .admin-page .toolbarMain{display:grid;grid-template-columns:1fr 1fr;gap:8px}
 .admin-page .toolbarMain .toolbarSpacer{display:none}
 .admin-page .toolbarMain button{padding:10px 8px;white-space:normal;line-height:1.45}
 .admin-page .viewTabs{gap:8px}.admin-page .viewTabs .viewSearch{flex:1 1 100%;min-width:0!important;width:100%}
 .admin-page .pendingSortControls{width:100%;justify-content:space-between}.admin-page .pendingSortControls button{flex:1}
 .admin-page .stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
 .admin-page .fanHead{flex-wrap:wrap;gap:12px;padding:16px}.admin-page .fanActions{width:100%;justify-content:flex-end}
 .admin-page .dialog{width:100%!important;max-height:calc(100dvh - 24px);overflow:auto;padding:18px!important}
 .admin-page .dialog .grid,.admin-page .fanMasterRow,.admin-page .legacyRow{grid-template-columns:minmax(0,1fr)!important}
 .admin-page .userActions{grid-column:auto!important}
 .admin-page .collectorUnknownItem{display:flex;flex-direction:column;align-items:stretch;gap:12px}
 .admin-page .collectorUnknownActions{display:flex;gap:8px}.admin-page .collectorUnknownActions button{flex:1}
 .classificationPage .classificationTabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .classificationPage .classificationTabs button{width:100%;white-space:normal;padding:12px 8px}
 .classificationPage .classificationGrid,.classificationPage .mappingForm,.classificationPage .fixedForm,.classificationPage .specialForm{grid-template-columns:minmax(0,1fr)!important}
 .classificationPage .mappingRule,.classificationPage .fixedRule{grid-template-columns:minmax(0,1fr)!important;gap:8px;padding:16px}
 .classificationPage .ruleActions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}
 .classificationPage .hero{margin:12px 0 18px}.classificationPage .hero h1{font-size:26px}
 .classificationPage .card{padding:18px!important}.classificationPage .importForm{display:flex;flex-direction:column;gap:10px}
 .classificationPage .importForm input{width:100%;min-width:0}
 .product-page .hero{align-items:stretch;flex-direction:column}.product-page .heroDownload{text-align:center}
 .product-page .upload-grid.series-enabled{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){.dashboard-page *{scroll-behavior:auto!important;transition:none!important}}

/* Hidden feature and permission gates always win over card layout. */
.dashboard-page .managementCard.hidden,.dashboard-page .managementCard[data-hidden-feature]{display:none!important}
.dashboard-page .dashboardUtilities{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dashboard-page .dashboardMenuToggle{display:none!important}
.dashboard-page .dashboardThemeButton{display:flex!important;align-items:center!important;justify-content:center!important;height:44px!important;min-height:44px!important;line-height:1!important}
.dashboard-page .dashboardThemeButton::before{display:none!important}
@media(max-width:680px){
 .dashboard-page .dashboardHeader{display:grid!important;grid-template-columns:1fr auto!important;gap:10px!important;padding:14px!important}
 .dashboard-page .dashboardBrand{width:110px!important;min-width:110px!important;height:54px!important;min-height:54px!important;background-size:106px auto!important}
 .dashboard-page .dashboardHeaderActions{display:contents!important}
 .dashboard-page .dashboardConnectionDot{display:none!important}
 .dashboard-page .dashboardConnectionState{grid-column:1/-1;grid-row:2;font-size:12px!important;line-height:18px!important}
 .dashboard-page .dashboardMenuToggle{display:inline-grid!important;grid-column:2;grid-row:1;min-width:64px}
 .dashboard-page .dashboardUtilities{display:none;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:10px;border-top:1px solid var(--dashboard-line)}
 .dashboard-page .dashboardUtilities.menuOpen{display:grid}
 .dashboard-page .dashboardUtilities .dashboardThemeButton{width:100%!important}
 .admin-page #managementModal,.admin-page #managementDetailModal{padding:0!important}
 .admin-page .managementDialog,.admin-page .managementDetailDialog{padding:0!important;max-height:100dvh!important}
 .admin-page .managementHead,.admin-page .managementDetailHead{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start}
 .admin-page .managementHead button,.admin-page .managementDetailHead button{grid-column:2;grid-row:1}
}

@media(max-width:680px){.dashboard-page .card-head{align-items:stretch!important;flex-direction:column!important;gap:12px!important}.dashboard-page .card-head>button{width:100%;min-height:44px;white-space:nowrap}.dashboard-page .card-head>div{width:100%;min-width:0}}

/* Shared layout review, 2026-09-13. Keep presentation rules in one place. */
body.admin-page[data-theme="light"]{--bl-muted:#526780;--bl-line:#d8e1eb;--bl-line-soft:#e1e8f0;--bl-text:#10213b;--bl-panel:#fff;--bl-panel-2:#f4f7fa;--bl-shadow:0 16px 44px rgba(20,40,66,.12)}
.dashboard-page{--ui-muted:#526780;--ui-line:#d8e1eb;--ui-surface:#fff;--ui-soft:#f4f7fa;--ui-text:#10213b;--ui-warning-surface:#fff8e8;--ui-warning-line:#d7b25b;--ui-warning-text:#92400e;--ui-accent:#ffc44d;--ui-accent-text:#071831;--ui-success:#067647}
.dashboard-page[data-theme="dark"]{--ui-muted:#a7bbd2;--ui-line:#294564;--ui-surface:#112746;--ui-soft:#0d213f;--ui-text:#f7f9fc;--ui-warning-surface:#182e47;--ui-warning-line:#806c3b;--ui-warning-text:#ffd16e;--ui-accent:#ffc44d;--ui-accent-text:#071831;--ui-success:#53dfb0}
.dashboard-page :is(.muted,.managementSub,.managementDetailSub,.recentCollectorSub,.fanIdLine,.rouletteRecordMeta,.backupSub){color:var(--ui-muted)!important;line-height:1.6}
.dashboard-page input::placeholder,.dashboard-page textarea::placeholder{color:#677c93;opacity:1}
.dashboard-page[data-theme="dark"] input::placeholder,.dashboard-page[data-theme="dark"] textarea::placeholder{color:#a0b2c9}
.dashboard-page :is(input,select,textarea){min-width:0;max-width:100%}
.dashboard-page :is(h1,h2,h3,h4,p,.rule-title,.mappingRule,.fixedRule,.exceptionResult,.fanName,.backupName){overflow-wrap:anywhere}
.dashboard-page :is(.dashboardHeader,.fanCard){box-shadow:0 4px 18px rgba(15,35,60,.06)!important}
.dashboard-page .dashboardNav a.active{box-shadow:none!important}
.dashboard-page .dashboardHeaderButton{font-size:13px!important;min-height:44px!important;line-height:20px!important}
.dashboard-page .dashboardConnectionState{max-width:26ch;overflow-wrap:anywhere;white-space:normal!important}
.dashboard-page .managementIcon{color:#8a610d!important;background:#fff5db!important;border-color:#ead7a6!important}
.dashboard-page[data-theme="dark"] .managementIcon{color:#ffd16e!important;background:#2c2b28!important;border-color:#625334!important}
.dashboard-page .managementIcon .dashboardIcon{width:26px;height:26px;display:block;flex:none}
.admin-page .managementDetailActions{align-self:start;width:auto;flex-wrap:wrap;justify-content:flex-end}
.admin-page .managementDetailBody{min-height:0;overscroll-behavior:contain;scrollbar-gutter:stable}
.admin-page .managementDetailBody>:is(.userBox,.collectorBox,.donationStatsBox,.settings){border:0!important;padding:0!important;background:transparent!important;border-radius:0!important}
.admin-page .managementHead,.admin-page .managementDetailHead,.admin-page .recentCollectorHead{border-color:var(--ui-line)!important}
.admin-page .managementBody,.admin-page .managementDetailBody{padding:20px!important}
.admin-page .managementGrid{gap:12px!important}
.admin-page .managementCard{padding:16px!important;gap:14px!important;box-shadow:none!important;text-align:left;align-items:center!important}
.admin-page .managementCard b{font-size:16px!important;line-height:1.4!important}
.admin-page .managementCard>span:last-child>span{font-size:13px!important;line-height:1.6!important;font-weight:500!important;color:var(--ui-muted)!important;margin-top:4px;display:block}
.admin-page .managementDetailBody .previewTableWrap{max-height:none!important;overflow:visible}
.admin-page .previewTable :is(th,td){white-space:normal;overflow-wrap:anywhere;max-width:none;text-overflow:clip;overflow:visible}
.admin-page .previewTable th:last-child,.admin-page .previewTable td:last-child{position:static!important;box-shadow:none!important}
.admin-page .previewTable td button{white-space:normal!important;min-height:44px}
.admin-page .eventTaskTable :is(th,td){white-space:normal;overflow-wrap:anywhere}
.admin-page .eventTaskTable td:nth-child(7) button{margin:3px 2px!important;min-height:40px;white-space:normal}
.admin-page .fileDropZone{min-width:0!important;max-width:100%;white-space:normal!important}
.admin-page #modal>.dialog{display:flex;flex-direction:column;max-height:calc(100dvh - 32px);overflow:hidden;padding:0!important}
.admin-page .taskDialogHead{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--ui-line);flex-shrink:0}
.admin-page .taskDialogHead h3{font-size:20px;margin:0}
.admin-page #modal .grid{padding:18px 20px;overflow:auto;min-height:0;overscroll-behavior:contain}
.admin-page #modal .actions{padding:12px 20px;margin:0;border-top:1px solid var(--ui-line);flex-shrink:0;background:var(--ui-surface)}
.admin-page #modal .field label{font-size:13px;font-weight:700;line-height:1.5}
.admin-page #modal textarea{resize:vertical;min-height:76px}
.dashboard-page .accountDialog{max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
.dashboard-page .accountDialogHead>button{flex:0 0 auto;min-width:60px;white-space:nowrap;align-self:flex-start}
.dashboard-page .accountDialogHead>div{min-width:0}
.dashboard-page .accountDialogHead h2{font-size:20px;line-height:1.45;word-break:keep-all;margin:0}
body:has(.modal.open),body:has(.accountModal:not(.hidden)),html:has(.modal.open),html:has(.accountModal:not(.hidden)){overflow:hidden}
.dashboard-page .classificationTabs{gap:8px}
.dashboard-page .classificationTabs button{font-size:14px;line-height:1.4;min-height:44px}
.classificationPage .hero .eyebrow{display:none}
.classificationPage .hero{margin:14px 0 18px}
.classificationPage .hero h1{font-size:28px}
.classificationPage .card>h2{margin-bottom:10px}
.classificationPage .mappingForm,.classificationPage .fixedForm{gap:12px}
.classificationPage .mappingForm :is(input,select),.classificationPage .fixedForm :is(input,select){min-height:44px}
.classificationPage .fixedRule{row-gap:10px}
.classificationPage .rf-intro{align-items:start;gap:12px}
.classificationPage .rf-private{color:var(--ui-muted);border-color:var(--ui-line);white-space:normal}
.product-page .notice{line-height:1.7}
.dashboard-page button:focus-visible,.dashboard-page a:focus-visible{outline:2px solid #a16b00!important;outline-offset:3px}
.dashboard-page[data-theme="dark"] :focus-visible{outline-color:#ffd16e!important}
@media(max-width:900px){
 .admin-page .readableTable{display:block!important;min-width:0!important;width:100%!important;table-layout:auto!important}
 .admin-page .readableTable thead{display:none}
 .admin-page .readableTable tbody{display:grid;gap:12px;width:100%}
 .admin-page .readableTable tr{display:block;min-width:0;border:1px solid var(--ui-line);border-radius:12px;background:var(--ui-surface);padding:12px}
 .admin-page .readableTable td,.admin-page #nonBangselPreview .readableTable td:last-child{display:block!important;position:static!important;width:100%!important;min-width:0!important;max-width:none!important;white-space:normal!important;overflow-wrap:anywhere!important;text-align:left!important;padding:8px 0!important;border:0!important;box-shadow:none!important;background:transparent!important}
 .admin-page .readableTable td[data-label]::before{content:attr(data-label);display:block;font-size:11px;font-weight:700;line-height:1.5;color:var(--ui-muted);margin-bottom:4px}
 .admin-page .readableTable td:first-child{padding-top:0!important;font-size:15px;font-weight:750}
 .admin-page .readableTable td:last-child{padding-bottom:0!important}
 .admin-page .readableTable td button{min-height:44px;margin:2px 4px 2px 0!important;max-width:100%;font-size:13px}
 .admin-page .readableTable .inlineNoteBtn.hasValue{-webkit-line-clamp:unset;max-height:none;display:block}
 .admin-page .eventBlock{padding:12px!important;overflow:visible!important}
 .admin-page .previewTableWrap,.admin-page .statsTableWrap,.admin-page #nonBangselPreview{overflow:visible!important;max-height:none!important;border:0!important}
}
@media(max-width:680px){
 .dashboard-page .dashboardHeader{padding:10px 12px!important;gap:4px 10px!important;border-radius:16px!important}
 .dashboard-page .dashboardBrand{height:44px!important;min-height:44px!important;background-size:98px auto!important}
 .dashboard-page .dashboardConnectionState{max-width:none;font-size:11px!important}
 .dashboard-page .dashboardNav{gap:6px!important;margin:10px 0 14px!important}
 .dashboard-page .dashboardNav a{min-height:64px!important;padding:9px 3px!important;font-size:12px!important;gap:5px!important;border-radius:12px!important}
 .dashboard-page .dashboardNav .dashboardIcon{width:22px!important;height:22px!important}
 .admin-page .stats{gap:8px!important;margin:12px 0!important}
 .admin-page .stat{padding:10px 12px!important;border-radius:12px!important}
 .admin-page .stat span{font-size:12px!important;font-weight:600}
 .admin-page .stat b{font-size:22px!important;margin-top:2px!important}
 .admin-page .toolbarMain{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;padding:0!important;margin:14px 0!important;align-items:stretch!important}
 .admin-page .toolbarMain>button{margin:0!important;min-width:0;min-height:48px;padding:9px 8px!important;line-height:1.4!important;font-size:12px!important;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:nowrap}
 .admin-page .toolbarMain>button:last-child{grid-column:1/-1}
 .admin-page .toolbarMain .uxPendingBadge{flex-shrink:0;margin:0!important}
 .admin-page .viewTabs{padding:6px!important;margin-top:12px;gap:5px!important}
 .admin-page .viewTabs>.viewTab{flex:1;min-width:0;font-size:12px!important;padding:8px 4px!important}
 .admin-page .pendingSortControls{width:100%;border:0!important;gap:4px;padding:0!important}
 .admin-page .pendingSortControls button{font-size:12px!important}
 .admin-page .fanHead{padding:12px!important;gap:8px}
 .admin-page .managementHead,.admin-page .managementDetailHead,.admin-page .recentCollectorHead{padding:14px 16px!important;gap:10px!important}
 .admin-page .managementTitle,.admin-page .managementDetailTitle{font-size:20px!important}
 .admin-page .managementDetailHead{grid-template-columns:minmax(0,1fr)!important}
 .admin-page .managementDetailActions{width:100%;justify-content:flex-end;grid-column:1!important;grid-row:auto!important}
 .admin-page .managementBody,.admin-page .managementDetailBody{padding:16px!important}
 .admin-page .managementCard{padding:14px!important;gap:12px!important;border-radius:14px!important}
 .admin-page .managementIcon{width:44px!important;height:44px!important;min-width:44px!important;border-radius:12px!important}
 .admin-page #modal{padding:10px!important}
 .admin-page #modal>.dialog{max-height:calc(100dvh - 20px);border-radius:16px!important}
 .admin-page #modal .grid{padding:14px;gap:12px}
 .admin-page #modal .taskDialogHead,.admin-page #modal .actions{padding:12px 14px}
 .admin-page #modal .actions button{flex:1;font-size:14px}
 .dashboard-page .classificationTabs{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important}
 .dashboard-page .classificationTabs button{padding:10px 3px!important;font-size:12px!important;min-height:44px}
 .classificationPage .hero h1{font-size:24px!important}.classificationPage .hero{margin:12px 0!important}
 .classificationPage .hero .muted{font-size:12px;line-height:1.65}
 .classificationPage .rf-intro{margin:16px 0;display:flex;flex-direction:column;gap:8px}
 .classificationPage .rf-intro h2{font-size:21px;margin:0 0 4px}.classificationPage .rf-intro p{margin:0}
 .classificationPage .rf-private{padding:5px 9px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation-duration:.01ms!important}}

@media(max-width:900px){
 .admin-page .readableTable tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px}
 .admin-page .readableTable td{grid-column:1/-1;min-width:0}
 .admin-page .readableTable td[data-compact="true"]{grid-column:auto}
 .admin-page .readableTable td:first-child,.admin-page .readableTable td:last-child{grid-column:1/-1}
}
@media(min-width:360px) and (max-width:680px){
 .admin-page .stats{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important}
 .admin-page .stat{padding:10px 8px!important}.admin-page .stat b{font-size:18px!important;overflow-wrap:anywhere}
 .admin-page .stat span{font-size:11px!important}
}
@media(max-width:900px){
 .legal-page .table-wrap{overflow:visible}
 .legal-page .readableTable{display:block;min-width:0;width:100%;border:0}
 .legal-page .readableTable thead{display:none}
 .legal-page .readableTable tbody{display:grid;gap:12px}
 .legal-page .readableTable tr{display:block;border:1px solid #d8e1eb;border-radius:12px;padding:12px;background:#f8fafc}
 .legal-page .readableTable td{display:block;width:100%;padding:7px 0;border:0;overflow-wrap:anywhere;font-size:13px}
 .legal-page .readableTable td::before{content:attr(data-label);display:block;font-size:11px;font-weight:750;color:#526780;margin-bottom:3px}
 .legal-page .toc a{min-height:40px;display:flex;align-items:center;padding:9px 12px}
}

/* Keep filters compact enough to reach the history on a phone. */
.admin-page .dialog.recentCollectorDialog{min-width:0;padding:0!important;overflow:hidden}
.admin-page .dialog .recentCollectorBody{box-sizing:border-box;width:100%;min-width:0;max-width:100%;overflow-x:hidden;overflow-y:auto}
.admin-page .recentCollectorBody>*,.admin-page .recentCollectorTools>*{min-width:0;max-width:100%}
.admin-page .recentCollectorDateTools input[type=date]{box-sizing:border-box;min-inline-size:0;max-inline-size:100%}
@media(max-width:800px){
 .admin-page .recentCollectorHead{flex-direction:column;align-items:stretch}
 .admin-page .recentCollectorHead>div{min-width:0;max-width:100%}
}
@media(max-width:680px){
 .admin-page #recentCollectorModal{padding:0!important}
 .admin-page .recentCollectorDialog{max-height:100dvh!important;border-radius:0!important}
 .admin-page .recentCollectorDateTools{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
 .admin-page .recentCollectorDateTools label{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:12px}
 .admin-page .recentCollectorDateTools input{width:100%;min-width:0;flex:none;padding:10px 12px;font-size:16px}
 .admin-page .recentCollectorDateTools input[type=date]{appearance:none;-webkit-appearance:none;display:block;min-height:48px}
 .admin-page .recentCollectorDateTools input[type=date]::-webkit-date-and-time-value{min-width:0;text-align:left}
 .admin-page .recentCollectorDateTools button{font-size:12px;min-height:44px;padding:8px;white-space:normal;overflow-wrap:anywhere}
 .admin-page .recentCollectorBody>p.muted{font-size:12px;line-height:1.55;margin:10px 0}
 .admin-page .recentCollectorCard{padding:8px 10px}
 .admin-page .recentCollectorCard b{font-size:16px}
 .admin-page #signupApplicationList [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important;gap:5px!important}
 .admin-page #signupApplicationList [style*="grid-template-columns"]>b:not(:first-child){margin-top:8px}
 .admin-page #collectorDeviceList>div{grid-template-columns:minmax(0,1fr)!important}
}
@media(max-width:480px){
 .admin-page .recentCollectorDateTools{grid-template-columns:minmax(0,1fr)!important}
 .admin-page .recentCollectorDateTools label,.admin-page .recentCollectorDateTools button{width:100%}
}
.admin-page :is(#signupApplicationList,#inquiryAdminList,#collectorDeviceList){overflow-wrap:anywhere}
.admin-page :is(#signupApplicationList,#inquiryAdminList,#collectorDeviceList) :is(div,span,a){min-width:0}

/* First-seen roulette results: panel, metadata and actions share the theme. */
body.dashboard-page .ui-notice{background:var(--ui-warning-surface)!important;border:1px solid var(--ui-warning-line)!important;color:var(--ui-text)!important;border-radius:12px;padding:12px;line-height:1.65}
.admin-page[data-theme] .collectorUnknownHead .muted,.admin-page[data-theme] .collectorUnknownMeta{color:var(--ui-muted)!important}
.admin-page .collectorUnknownActions button.include{background:var(--ui-accent)!important;border-color:var(--ui-accent)!important;color:var(--ui-accent-text)!important}
.admin-page .collectorUnknownActions button.include:hover{background:#ffd779!important;border-color:#ffd779!important}

.admin-page[data-theme="dark"] .collectorWarn{color:var(--ui-warning-text)}
.admin-page[data-theme="dark"] .collectorOk{color:var(--ui-success)}

/* Native mobile focus stays at the same zoom; range fields remain equal width. */
@media(max-width:680px){
 .dashboard-page :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=hidden]),select,textarea){font-size:16px!important}
}

/* Detailed collection status, shared semantic palette in both themes. */
.historyDiagnosticSteps{list-style:none;padding:0;display:grid;gap:12px}.historyDiagnosticSteps li{padding:16px;border:1px solid var(--ui-line);border-radius:14px;background:var(--ui-surface)}.historyDiagnosticSteps h3{font-size:15px;margin:0 0 10px}.historyDiagnosticSteps p{font-size:14px;line-height:1.7;color:var(--ui-muted);overflow-wrap:anywhere}.historyDiagnosticSteps button{max-width:100%;white-space:normal;min-height:44px}.historyDiagnosticBadge{font-weight:800;font-size:14px;color:var(--ui-text)}.historyDiagnosticBadge[data-ok=true]{color:var(--ui-success)}

#historyDiagnostic{background:var(--ui-soft);color:var(--ui-text);border:1px solid var(--ui-line);box-shadow:0 20px 70px rgba(0,0,0,.3)}#historyDiagnostic::backdrop{background:rgba(0,8,24,.55)}.rf-draft-notice:not(:empty){padding:14px;border:1px solid var(--ui-line);border-radius:12px;margin-top:12px;color:var(--ui-text);font-size:14px;line-height:1.7}.rf-draft-notice button{margin:4px 8px 4px 0;max-width:100%;white-space:normal;min-height:44px}.rf-draft-notice p{margin:0 0 10px}
/* Dashboard review menus share one position, shell and control rhythm. */
#dashboardReviewPanels{min-width:0}
#dashboardReviewPanels>.reviewPanel{margin:18px 0;padding:0;border:1px solid var(--ui-line);border-radius:20px;background:var(--ui-surface);color:var(--ui-text);overflow:clip;box-shadow:0 8px 28px rgba(0,0,0,.035);--line:var(--ui-line);--soft:var(--ui-soft)}
#dashboardReviewPanels .reviewHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:24px;border-bottom:1px solid var(--ui-line);background:var(--ui-surface)}
#dashboardReviewPanels .reviewHeading{display:flex;align-items:flex-start;gap:14px;min-width:0}
#dashboardReviewPanels .reviewHeading>div{min-width:0}
#dashboardReviewPanels .reviewIcon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid var(--ui-line);border-radius:14px;background:var(--ui-soft);color:var(--ui-text)}
#dashboardReviewPanels .reviewIcon svg{width:24px;height:24px}
#dashboardReviewPanels .reviewHeader h2{font-size:20px;line-height:1.4;letter-spacing:-.4px;margin:0;font-weight:800;color:var(--ui-text)}
#dashboardReviewPanels .reviewHeader p{font-size:14px;line-height:1.7;margin:6px 0 0;color:var(--ui-muted);overflow-wrap:anywhere}
#dashboardReviewPanels .reviewHeaderActions{display:flex;flex-shrink:0;gap:8px}
#dashboardReviewPanels button{min-height:44px;font-size:14px;line-height:1.4;padding:10px 15px;white-space:normal;max-width:100%;border-radius:12px}
#dashboardReviewPanels .reviewHeaderActions button{white-space:nowrap}
#dashboardReviewPanels .reviewBody{padding:22px 24px;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;min-width:0;font-size:14px;line-height:1.7}
#dashboardReviewPanels .reviewBody>.muted{font-size:14px;line-height:1.75}
#dashboardReviewPanels .reviewAuxActions{display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px}
#dashboardReviewPanels .reviewNotice{margin:0 0 18px;padding:14px 16px;background:var(--ui-soft);border:1px solid var(--ui-line);border-radius:12px;color:var(--ui-muted);font-size:14px;line-height:1.8;overflow-wrap:anywhere}
#dashboardReviewPanels .reviewNotice b{color:var(--ui-text)}
#dashboardReviewPanels .reviewBody>details{border:1px solid var(--ui-line);background:var(--ui-soft);border-radius:12px;padding:0 16px;margin:12px 0}
#dashboardReviewPanels .reviewBody>details>summary{padding:14px 0;min-height:44px;cursor:pointer;font-weight:700;font-size:14px;color:var(--ui-text)}
#dashboardReviewPanels .reviewBody>details>p{margin:0 0 16px;font-size:14px;line-height:1.8}
#dashboardReviewPanels .reviewBody>details .saved{margin-bottom:16px}
#dashboardReviewPanels .exceptionToolbar{gap:10px;margin:16px 0}
#dashboardReviewPanels .reviewFilterGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}
#dashboardReviewPanels .reviewFilterGrid label{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;font-size:13px;font-weight:700;color:var(--ui-muted)}
#dashboardReviewPanels .reviewFilterGrid :is(input,select){box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:44px;font-size:14px;color:var(--ui-text)}
#dashboardReviewPanels .reviewBulkActions{padding-top:16px;border-top:1px solid var(--ui-line);display:flex;flex-wrap:wrap}
#dashboardReviewPanels .reviewEmpty,#dashboardReviewPanels #collectorPreview>.muted{padding:24px!important;margin:0;border:1px dashed var(--ui-line);border-radius:12px;text-align:center;background:var(--ui-soft);color:var(--ui-muted);font-size:14px}
#dashboardReviewPanels #collectorPreview:has(>.muted){border:0;background:transparent}
#dashboardReviewPanels #collectorPendingActions{gap:12px!important;margin:16px 0!important}
#dashboardReviewPanels .collectorSummary{gap:8px;margin:12px 0}
#dashboardReviewPanels .collectorSummary>span{font-size:12px;padding:6px 10px}
#dashboardReviewPanels #exceptionStatus:empty{display:none}
#dashboardReviewPanels #exceptionList{margin-top:18px}
#dashboardReviewPanels #uxStatusMessage{padding:12px 0;margin:0 0 12px;font-weight:600}
@media(max-width:1000px){
 #dashboardReviewPanels .reviewHeader{flex-wrap:wrap;gap:16px}
 #dashboardReviewPanels .reviewHeaderActions{margin-left:58px}
 #dashboardReviewPanels .reviewFilterGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 #dashboardReviewPanels>.reviewPanel{margin:14px 0;border-radius:16px}
 #dashboardReviewPanels .reviewHeader{padding:18px 16px;gap:14px}
 #dashboardReviewPanels .reviewHeading{gap:12px}
 #dashboardReviewPanels .reviewIcon{width:40px;height:40px;flex-basis:40px;border-radius:12px}
 #dashboardReviewPanels .reviewHeader h2{font-size:18px}
 #dashboardReviewPanels .reviewHeader p{font-size:13px}
 #dashboardReviewPanels .reviewHeaderActions{margin-left:0;width:100%;display:grid;grid-template-columns:1fr 1fr}
 #dashboardReviewPanels .reviewBody{padding:16px}
 #dashboardReviewPanels .reviewAuxActions{justify-content:stretch}
 #dashboardReviewPanels .reviewAuxActions button{width:100%}
 #dashboardReviewPanels .reviewNotice{padding:12px;font-size:13px}
 #dashboardReviewPanels .reviewBulkActions{display:grid;grid-template-columns:minmax(0,1fr)}
 #dashboardReviewPanels .reviewFilterGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
 #dashboardReviewPanels #collectorPendingActions .primary{width:100%}
 #dashboardReviewPanels .reviewEmpty,#dashboardReviewPanels #collectorPreview>.muted{padding:20px 12px!important}
}
@media(max-width:359px){#dashboardReviewPanels .reviewFilterGrid{grid-template-columns:minmax(0,1fr)}}

#dashboardReviewPanels .reviewMeta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}#dashboardReviewPanels .reviewMeta .reviewAuxActions{margin:0}#dashboardReviewPanels .reviewFilterGrid :is(input,select){height:48px}#dashboardReviewPanels .exceptionRow>label{display:inline-flex;align-items:center;gap:6px;margin-right:10px}#dashboardReviewPanels .exceptionRow>label input{margin-right:0}
@media(max-width:600px){#dashboardReviewPanels .reviewMeta{align-items:stretch}#dashboardReviewPanels .reviewMeta .reviewAuxActions{width:100%;order:1}}
/* Notification counts must not move a menu or the panel below it. */
.dashboard-page .toolbarMain>button:has(.notificationCount){position:relative}
.dashboard-page .toolbarMain .notificationCount{position:absolute;top:-7px;right:-5px;margin:0;pointer-events:none}
#dashboardReviewPanels .reviewHeader p{min-height:3.4em}

/* Compact completion controls keep dense task rows readable. */
.admin-page .completionControl{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;box-sizing:border-box;min-width:124px;padding:3px 8px;border:1px solid var(--ui-line);border-radius:10px;background:var(--ui-surface)}
.admin-page .completionNumbers{min-width:0;font-variant-numeric:tabular-nums}
.admin-page .completionNumbers strong{font-size:13px;line-height:20px;white-space:nowrap}
.admin-page .completionNumbers strong span{color:var(--ui-muted);font-size:12px}
.admin-page .completionArrows{display:flex;flex-direction:column;gap:2px;flex:none}
.admin-page .eventTaskTable .completionStep{display:grid;place-items:center;width:28px;height:24px;min-width:28px!important;min-height:24px!important;margin:0!important;padding:0!important;border-radius:6px;touch-action:manipulation}
.admin-page .completionStep svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.admin-page .completionStep:disabled{opacity:.35;cursor:default}
@media(max-width:700px){.admin-page .eventTaskTable .completionCell{grid-column:1/-1!important}.admin-page .completionControl{min-width:132px;max-width:100%}.admin-page .eventTaskTable .completionStep{width:32px;height:28px;min-width:32px!important;min-height:28px!important}}

@media(min-width:981px){.admin-page .eventTaskTable:not(.typeQueueTable) :is(th,td):nth-child(3){width:14%}.admin-page .eventTaskTable:not(.typeQueueTable) :is(th,td):nth-child(4){width:15%}.admin-page .eventTaskTable:not(.typeQueueTable) :is(th,td):nth-child(5){width:16%}}
/* Review buttons share the selected yellow used by task filters, in both themes. */
body.admin-page .toolbarMain .toggleBtn[aria-expanded="true"],body.admin-page[data-theme="light"] .toolbarMain .toggleBtn[aria-expanded="true"]{background:var(--ui-accent)!important;border-color:var(--ui-accent)!important;color:var(--ui-accent-text)!important;box-shadow:inset 0 -2px 0 #00000012}
body.admin-page .toolbarMain .toggleBtn[aria-expanded="true"]:hover{background:#ffd779!important;border-color:#ffd779!important;color:#071831!important}
body.admin-page .typeQueueCard .typeQueueHead{border:0!important;border-radius:0!important;padding:14px 16px!important;background:var(--ui-soft)!important;color:var(--ui-text)!important}
body.admin-page .typeQueueCard .typeQueueHead:hover{background:var(--ui-surface)!important}
.completionHistoryDialog{width:min(760px,calc(100vw - 32px));max-width:760px!important;max-height:90dvh;overflow:auto}
.completionHistoryHead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--ui-line)}
.completionHistoryHead h2{font-size:20px;margin:0}.completionHistoryHead p{margin:8px 0 0;font-size:13px;line-height:1.6}
.completionHistoryActions{display:flex;gap:8px;flex-shrink:0}.completionHistoryActions button{white-space:nowrap}
.completionHistoryContent{padding-top:12px;min-width:0}.completionHistoryContent>p{font-size:13px;line-height:1.6}
.completionHistoryList{display:grid;gap:10px;margin:12px 0}.completionHistoryRow{padding:16px;border:1px solid var(--ui-line);background:var(--ui-soft);border-radius:12px;overflow-wrap:anywhere}
.completionHistoryRowHead{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.completionHistoryRow time{font-size:12px;color:var(--ui-muted)}
.completionHistoryRow h3{font-size:16px;margin:12px 0 6px}.completionHistoryRow p{font-size:13px;margin:5px 0}
.completionHistoryBadge{padding:5px 9px;border-radius:8px;background:var(--ui-surface);color:var(--ui-text);font-size:12px;font-weight:800}.completionHistoryBadge[data-kind="completion"]{background:#d9f6e9;color:#075f44}.completionHistoryBadge[data-kind="undo"]{background:#fff0ce;color:#805000}
@media(max-width:600px){.completionHistoryHead{flex-direction:column;gap:12px}.completionHistoryActions{align-self:flex-end}.completionHistoryDialog{width:calc(100vw - 20px)}body.admin-page .typeQueueCard .typeQueueHead{padding:12px!important}}
