:root{color-scheme:dark;--admin-bg:var(--c-navy-950);--admin-panel:var(--c-navy-900);--admin-raised:var(--c-navy-800);--admin-line:var(--c-line-soft);--admin-muted:var(--c-ink-2);--admin-accent:var(--c-sky-ink);--admin-focus:var(--c-sky-hi)}
*{box-sizing:border-box}body{margin:0;background:var(--admin-bg);color:var(--text);font:16px/1.65 -apple-system,BlinkMacSystemFont,"PingFang TC","Noto Sans TC",sans-serif}main{max-width:1360px;margin:auto;padding:44px 40px 24px}h1,h2,h3,p{margin:0}h1{font-size:clamp(34px,4vw,48px);line-height:1.2;letter-spacing:-.04em}h2{font-size:22px;line-height:1.4}h3{font-size:17px}button,input,textarea{font:inherit}button{white-space:nowrap;min-height:44px;padding:9px 18px;border:1px solid transparent;border-radius:10px;background:var(--action);color:white;cursor:pointer;font-weight:600}button:hover{background:var(--action-hover)}button:disabled{opacity:.45;cursor:wait}button.quiet{background:transparent;border-color:var(--c-line);color:var(--text)}button.quiet:hover{background:var(--c-navy-700)}input,textarea{width:100%;min-width:0;min-height:46px;padding:10px 13px;border:1px solid var(--c-line);border-radius:10px;background:var(--admin-bg);color:var(--text)}input::placeholder,textarea::placeholder{color:var(--admin-muted)}:focus-visible{outline:2px solid var(--admin-focus);outline-offset:4px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip{position:absolute;left:12px;top:-80px;color:white;background:var(--action);padding:10px;z-index:5}.skip:focus{top:12px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-bottom:32px;border-bottom:1px solid var(--admin-line)}.eyebrow{font-size:12px;letter-spacing:.13em;color:var(--admin-accent);margin-bottom:10px}.sub{color:var(--admin-muted);margin-top:12px}.muted{color:var(--admin-muted);font-size:14px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;overflow-wrap:anywhere}.login-panel{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center;padding:32px;margin-top:32px;background:var(--admin-panel);border:1px solid var(--admin-line);border-radius:16px}.login-panel label,.link-box label{display:block;font-size:13px;color:var(--admin-muted);margin-bottom:8px}.login-controls{display:flex;gap:10px}.login-controls button{flex:none}.message{min-height:26px;color:var(--c-danger);margin:16px 0}.message.ok{color:var(--c-success)}.workspace-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.tabs{display:flex;gap:8px}.tabs button{background:transparent;color:var(--admin-muted);border-radius:6px}.tabs [aria-selected=true]{background:var(--admin-raised);color:var(--text)}.tracking-note{padding:16px 20px;margin-bottom:24px;border:1px solid var(--admin-line);border-radius:12px;display:flex;gap:12px;flex-wrap:wrap;font-size:14px;color:var(--admin-muted)}.tracking-note strong{color:var(--text)}.ledger-layout{display:grid;grid-template-columns:minmax(290px,.8fr) minmax(0,1.5fr);gap:24px;align-items:start}.people-panel,.detail-panel,#ticketWorkspace{background:var(--admin-panel);border:1px solid var(--admin-line);border-radius:16px;min-width:0}.people-panel{padding:24px 16px}.panel-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:18px}.people-panel .panel-title{padding:0 8px}.panel-title h2{font-size:19px}.search-form{display:flex;gap:8px;margin:0 8px 20px}.search-form button{padding:8px 12px;flex:none}.people-list,.friend-list,.serials{list-style:none;padding:0;margin:0}.people-list>li+li{margin-top:6px}.person{display:block;min-height:86px;width:100%;background:transparent;border:1px solid transparent;border-radius:10px;color:var(--text);text-align:left;padding:14px 12px}.person:hover{background:var(--admin-raised)}.person[aria-pressed=true]{background:var(--c-navy-700);border-color:var(--c-line)}.person-line{display:flex;justify-content:space-between;align-items:center;gap:10px}.person-name{font-size:17px;font-weight:650;overflow-wrap:anywhere}.person-progress{color:var(--admin-accent);font-variant-numeric:tabular-nums;white-space:nowrap}.person-meta{display:block;color:var(--admin-muted);font-size:12px;font-weight:400;margin-top:5px;overflow-wrap:anywhere}.detail-panel{padding:30px}.detail-placeholder{min-height:480px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:var(--admin-muted)}.placeholder-mark{font-size:64px;font-weight:200;color:var(--c-navy-600);line-height:1.4}.detail-placeholder h2{color:var(--text);margin:12px 0}.detail-top{display:flex;gap:16px;justify-content:space-between;align-items:start}.detail-top h2{font-size:28px;overflow-wrap:anywhere}.badge{border:1px solid var(--c-line);background:var(--admin-raised);border-radius:7px;padding:4px 9px;white-space:nowrap;font-size:12px;color:var(--admin-accent)}.badge.closed{color:var(--c-gold)}.progress-summary{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:28px}.progress-number{line-height:1.3;font-variant-numeric:tabular-nums}.progress-number b{font-size:62px;font-weight:400;letter-spacing:-.06em}.progress-number span{font-size:17px;color:var(--admin-muted)}.progress-caption{text-align:right;font-size:14px}.progress-caption p+p{margin-top:8px;color:var(--admin-muted)}.progress-track{height:5px;background:var(--admin-raised);border-radius:10px;overflow:hidden;margin-top:16px}.progress-track i{display:block;height:100%;background:var(--c-sky);transform-origin:left;transform:scaleX(0);transition:transform .4s ease}.detail-metrics{display:grid;grid-template-columns:repeat(3,1fr);margin:24px 0;border-bottom:1px solid var(--admin-line);padding-bottom:24px;gap:14px}.detail-metrics div{display:flex;flex-direction:column;gap:5px}.detail-metrics span{font-size:12px;color:var(--admin-muted)}.detail-metrics b{font-size:23px;font-weight:500}.link-box{background:var(--admin-bg);padding:18px;border:1px solid var(--admin-line);border-radius:12px}.link-box>div{display:flex;gap:10px}.link-box textarea{resize:none;overflow-wrap:anywhere;border:0;background:transparent;font:12px/1.6 ui-monospace,monospace;padding:6px 0}.link-box button{padding:8px 12px;flex:none}.link-box p{font-size:12px;margin-top:8px}.section-caption{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:28px 0 14px}.friend-item{padding:18px 0;border-bottom:1px solid var(--admin-line)}.friend-head{display:flex;align-items:center;gap:12px;justify-content:space-between}.friend-name{font-size:16px;font-weight:600}.status-label{font-size:12px;white-space:nowrap}.status-label.success{color:var(--c-success)}.status-label.pending{color:var(--c-gold)}.status-label.excluded{color:var(--c-danger)}.friend-detail{display:flex;gap:5px 16px;flex-wrap:wrap;margin-top:7px;color:var(--admin-muted);font-size:12px}.friend-reason{margin-top:7px;font-size:13px;color:var(--admin-muted)}.bonus-box{margin-top:26px}.serials{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}.serials li{padding:5px 9px;background:var(--admin-raised);border-radius:5px;font:13px/1.5 ui-monospace,monospace;color:var(--admin-accent)}.bonus-box>p{margin-top:10px}.empty{padding:24px 8px;text-align:center;color:var(--admin-muted);font-size:14px}.load-more{display:block;margin:18px auto 0}.data-issues{margin-top:16px;color:var(--c-danger);font-size:13px}.table-wrap{overflow:auto}#ticketWorkspace{padding:26px}table{border-collapse:collapse;font-size:13px;width:100%;white-space:nowrap}th,td{padding:12px 14px;border-bottom:1px solid var(--admin-line);text-align:left}th{color:var(--admin-muted);font-weight:500}tbody tr:hover{background:var(--admin-raised)}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--admin-line);margin-top:36px;padding-top:20px;color:var(--admin-muted);font-size:12px}body[data-locked=true] #workspace{display:none}.pending-read{opacity:.6;pointer-events:none}
@media(max-width:850px){main{padding:26px 22px}.ledger-layout{grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);gap:16px}.detail-panel{padding:22px}.login-panel{grid-template-columns:1fr;gap:24px}.detail-metrics{gap:8px}.progress-number b{font-size:52px}}
@media(max-width:650px){main{padding:25px 16px}.page-head{gap:12px;align-items:flex-start}.page-head h1{font-size:36px}.page-head .sub{font-size:14px;max-width:230px}.page-head button{font-size:12px;padding:8px 10px;min-width:78px}.login-panel{padding:23px 20px}.login-controls{flex-direction:column}.workspace-toolbar{gap:10px}.workspace-toolbar>button{font-size:13px;padding:8px 10px}.tabs{gap:0}.tabs button{padding:9px 12px;font-size:14px}.tracking-note{padding:15px;gap:4px}.ledger-layout{grid-template-columns:1fr}.people-panel{padding:22px 12px}.people-list{max-height:320px;overflow:auto}.detail-panel{padding:22px 18px}.detail-placeholder{min-height:240px}.detail-top h2{font-size:26px}.progress-number b{font-size:58px}.detail-metrics span{font-size:11px}.link-box{padding:14px}.section-caption .muted{font-size:12px}footer{flex-direction:column;gap:7px}#ticketWorkspace{padding:20px 14px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.owner-login{display:grid;gap:16px;min-width:0}.owner-login>button{justify-self:start;min-width:180px}.owner-login label{font-weight:500;color:var(--text)}.field-help{font-size:12px;color:var(--admin-muted);margin-top:6px}.owner-login #ownerCode{max-width:220px;font:20px/1.4 ui-monospace,monospace;letter-spacing:.2em}.login-panel .sub{line-height:1.9}.owner-login button:disabled{cursor:wait}@media(max-width:650px){.owner-login>button{width:100%}.login-panel h2{font-size:24px}}
