@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700;800;900&display=swap');
:root{color-scheme:dark;--bg:#101318;--panel:#1b2028;--line:#343b47;--text:#f5f3ed;--muted:#aeb7c5;--lime:#dcfa88;--orange:#ffae83}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 85% 10%,#28362a88,transparent 45%),var(--bg);color:var(--text);font-family:'Noto Sans TC','Microsoft JhengHei',sans-serif;line-height:1.7}header{max-width:1240px;margin:auto;padding:25px 30px;display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line)}a{color:inherit;text-decoration:none}a:hover{color:var(--lime)}.brand{display:flex;align-items:center;gap:12px;font-size:30px;color:var(--lime);font-weight:900}.brand span{font-size:20px;color:var(--text)}small{display:block;font-size:9px;letter-spacing:3px;color:var(--muted)}nav{display:flex;gap:24px;margin-left:auto;font-size:14px}#account{font-size:12px;color:var(--muted)}main{max-width:1180px;margin:54px auto;padding:0 24px}.eyebrow{letter-spacing:3px;font-size:11px;color:var(--lime);font-weight:700}h1{font-size:clamp(32px,4vw,56px);letter-spacing:-1px;line-height:1.3;margin:16px 0}h1 span{color:var(--lime)}h2{font-size:20px;margin:0 0 15px}p.lead{font-size:16px;color:var(--muted);margin-bottom:36px}.layout{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;align-items:start}.panel{border:1px solid var(--line);background:var(--panel);border-radius:22px;padding:28px;margin-bottom:22px;box-shadow:0 12px 30px #0002}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.section-head h2{margin:0}.tag{font-size:11px;padding:5px 10px;border-radius:99px;background:#303a2c;color:var(--lime);white-space:nowrap}label{display:block;font-size:14px;font-weight:600;margin:18px 0}input,textarea,select{display:block;width:100%;margin-top:8px;background:#11151b;border:1px solid #454e5e;border-radius:10px;color:var(--text);padding:13px 14px;font:inherit;resize:vertical}input:focus,textarea:focus,select:focus{outline:2px solid var(--lime);outline-offset:2px}.muted{font-size:12px;color:var(--muted);font-weight:400}.check{display:flex;align-items:center;gap:12px}.check input{width:18px;margin:0}button{font:600 14px 'Noto Sans TC',sans-serif;padding:12px 18px;border:1px solid #586477;background:#303a49;color:var(--text);border-radius:10px;cursor:pointer;margin:4px 8px 4px 0}button:hover{filter:brightness(1.12)}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--lime);border-color:var(--lime);color:#172016;width:100%;font-weight:800}.danger{color:#ffb5af;border-color:#9d645f}.item{padding:18px 0;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:flex-start}.avatar{border-radius:50%;width:38px;height:38px;object-fit:cover;background:#52603e;flex-shrink:0}.item-body{min-width:0;flex:1}.item-title{font-weight:700;overflow-wrap:anywhere}.item-sub{font-size:12px;color:var(--muted)}.item-message{margin:8px 0;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}.empty{padding:45px 10px;text-align:center;color:var(--muted)}.empty b{display:block;font-size:40px;color:var(--lime);margin-bottom:12px}#notice{color:var(--orange);white-space:pre-wrap}.image-preview{width:160px;max-height:120px;object-fit:contain}footer{color:var(--muted);font-size:12px;display:flex;justify-content:space-between;margin:35px 0}#login{margin-bottom:20px}#overlay-url{font-size:11px} [hidden]{display:none!important}@media(max-width:740px){header{padding:20px;gap:12px;flex-wrap:wrap}nav{gap:12px}#account{width:100%}main{margin-top:30px;padding:0 16px}.layout{grid-template-columns:1fr}.panel{padding:22px}.section-head{flex-wrap:wrap}h1 span{display:block}}
/* Compact violet workspace. Overflow stays inside the selected task. */
:root{--bg:#100d1b;--panel:#201a30;--line:#403351;--text:#faf7ff;--muted:#b9afce;--lime:#c4a0ff;--orange:#ffc9db}
body{background:radial-gradient(ellipse at 85% 0%,#7045b033,transparent 55%),var(--bg)}
.tag{background:#36264d}.primary{background:linear-gradient(120deg,#b38aff,#d1b4ff);color:#241139;border-color:#b38aff}.avatar{background:#57416c}button{background:#352844;border-color:#59436d}input,textarea,select{background:#151020;border-color:#514260}
.compact{height:100dvh;display:flex;flex-direction:column;overflow:hidden}
.compact header{width:100%;padding:12px 24px;gap:18px;flex-shrink:0}.compact .brand span{font-size:17px}.compact header button{padding:6px 10px}.compact main{width:100%;max-width:1180px;margin:0 auto;padding:16px 24px 8px;min-height:0;flex:1;display:flex;flex-direction:column}
.compact h1{font-size:28px;margin:4px 0 8px}.compact h1 span{display:inline}.compact .eyebrow{font-size:10px;letter-spacing:2px}.compact .lead{margin:0 0 10px;font-size:13px}.compact footer{order:5;margin:5px 0;font-size:11px;flex-shrink:0}.compact #notice:empty{display:none}.compact #notice{margin:4px 0;font-size:13px}.compact #admin-content{display:flex;flex-direction:column;min-height:0;flex:1}
.workspace-tabs{display:flex;gap:6px;flex-shrink:0;margin:6px 0 14px;border-bottom:1px solid var(--line);padding-bottom:10px}.workspace-tabs button{margin:0;border-radius:12px;background:transparent;border-color:transparent;white-space:nowrap;padding:10px 16px}.workspace-tabs button[aria-selected=true]{background:#ba91ff;color:#211432;box-shadow:0 4px 20px #aa6aff22;font-weight:800}
.workspace-pane{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#765696 transparent}.compact .panel{padding:18px 22px;margin:0;border-radius:18px;box-shadow:none}.compact h2{font-size:18px;margin-bottom:10px}.compact label{margin:10px 0;font-size:13px}.compact input,.compact select,.compact textarea{margin-top:5px;padding:9px 12px;font-size:16px}.compact textarea{height:76px;min-height:60px}.compact p{margin:8px 0}.compact .empty{padding:25px 10px}.compact .empty b{font-size:30px;margin:0}.compact .section-head{margin-bottom:10px}.compact #login{margin-bottom:8px}.compact .item{padding:12px 0}
#pane-queue,#pane-obs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:14px;align-content:start}#pane-settings .panel,#pane-coins .panel{max-width:840px;margin:auto}#settings-form{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}#settings-form>p{font-size:12px;color:var(--muted)}#settings-form .primary{grid-column:1/-1}#pane-request>.panel{max-width:800px;margin:auto}.connection-status{padding:10px;border:1px solid #795ca0;border-radius:10px;color:#dcc6ff}
@media(max-width:740px){.compact header{padding:9px 14px;gap:8px;flex-wrap:wrap}.compact .brand span{font-size:15px}.compact small{display:none}.compact nav{gap:10px;font-size:12px}.compact #account{width:auto;margin-left:auto;font-size:11px}.compact main{padding:10px 12px 4px}.compact h1{font-size:23px}.compact .eyebrow,.compact .lead{display:none}.workspace-tabs{gap:2px;margin:4px 0 10px;justify-content:space-between}.workspace-tabs button{font-size:12px;padding:10px 6px;flex:1}.compact .panel{padding:14px}.compact label{margin:8px 0}.compact .muted{font-size:11px}.compact footer{font-size:10px}#pane-queue,#pane-obs{grid-template-columns:1fr;gap:10px}#settings-form{grid-template-columns:1fr 1fr;gap:0 10px}#settings-form .check{font-size:12px}.compact .empty{padding:14px 8px}.compact .empty b{font-size:24px}}

.compact #now .empty{padding:8px;font-size:13px}.compact #now .empty b{display:none}.compact #pane-queue .panel:first-child{padding:14px}.compact #pane-queue .panel:first-child h2{display:inline-block;margin-right:12px}.compact #pane-queue .panel:first-child .tag{display:inline-block}.compact #pane-queue #skip{padding:8px 12px}

/* The request form fits as one task; queue/history may scroll independently. */
.fan main{max-width:1000px;padding-top:8px}.fan .workspace-tabs{margin:0 0 8px;padding-bottom:6px}
.fan #pane-request{overflow:visible;flex:0 0 auto}.fan #pane-request>.panel{max-width:760px;padding:14px 20px}
.fan #request-form{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}
.fan #request-form label{margin:0}.fan #request-form label:nth-child(3),.fan #submit{grid-column:1/-1}
.fan #request-form textarea{height:70px;min-height:48px;resize:none}.fan #submit{margin:0;padding:10px}
.fan #login-note{font-size:11px;margin:4px 0}.fan footer{margin-top:auto;justify-content:flex-end}
.fan #account{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.fan #account button{margin:0;font-size:11px}
@media(max-width:740px){.fan header{padding:7px 12px}.fan .brand{font-size:20px}.fan nav{margin-left:auto}.fan #account{width:100%;justify-content:flex-end}.fan #pane-request>.panel{padding:12px}.fan #request-form{grid-template-columns:1fr;gap:7px}.fan #request-form label:nth-child(3),.fan #submit{grid-column:auto}.fan #request-form input{padding:8px 10px}.fan #request-form textarea{height:62px}.fan .workspace-tabs button{padding:8px 6px}}
@media(max-height:620px){.fan .section-head{display:none}.fan #request-form{gap:5px 12px}.fan #request-form textarea{height:48px}.fan #pane-request>.panel{padding:10px 14px}.fan .brand small{display:none}.fan #login-note{display:none}.fan header{padding-top:6px;padding-bottom:6px}.fan footer{margin:3px 0}}
@media(max-height:440px){.fan{overflow:auto}.fan #pane-request{flex-shrink:0}}

.login-link{display:inline-block;padding:9px 15px;border:1px solid #c4a0ff;border-radius:10px;color:#f5efff;background:#38274e;font-weight:700}

@media(max-width:740px){.control .workspace-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.control .workspace-tabs button{min-width:0}.fan header nav{gap:8px;font-size:11px;flex-wrap:wrap}.fan header .brand{flex-shrink:0}.fan header nav a[href="/"]{display:none}}

