/* Figma current backstage: 3279:1906 / BOOK 3280:9.
   Shared shell only; course editor behavior and brand stylesheet stay separate. */
.admin-workspace{--blue:#14181f;--blue-ink:#14181f;--blue-soft:#eef0f3;--ink:#14171c;--ink-2:#6b7280;--ink-3:#6b7280;--line:#e7e9ee;--bg:#f5f6f8;--surface:#fff;--head:'Noto Sans TC',sans-serif;--body:'Noto Sans TC',sans-serif;--r:20px;--accent:#dcf25e;--data:#ffefe5;font-size:14px;}
.admin-workspace #app.show{grid-template-columns:216px minmax(0,1fr);gap:24px;padding:24px;max-width:1600px;margin:auto;align-items:start;}
.admin-workspace .side{border:0;border-radius:12px;padding:16px;top:24px;height:auto;max-height:calc(100vh - 48px);gap:4px;}
.admin-workspace .side .brand{padding:4px 4px 12px;font-size:20px;line-height:1.5;}
.admin-workspace .brand-logo{display:block;width:160px;max-width:100%;height:auto;}
.workspace-label{font-size:12px;color:var(--ink-2);margin-bottom:8px;}
.admin-workspace .side .grp{padding:12px 0 0;font-size:12px;font-weight:400;letter-spacing:0;}
.admin-workspace .nav-i{width:100%;border:0;text-align:left;background:var(--bg);padding:8px 16px;border-radius:8px;font-size:14px;color:var(--ink);min-height:39px;}
.admin-workspace .nav-i:hover{background:#f0f7cc;}
.admin-workspace .nav-i.on{background:var(--accent);color:var(--ink);font-weight:700;}
.admin-workspace .nav-i .ic{display:none;}
.admin-workspace .main{padding:0;max-width:none;min-width:0;}
.admin-workspace .topbar{align-items:start;flex-wrap:wrap;margin-bottom:20px;gap:12px;}
.admin-workspace .topbar h1{font-size:32px;font-weight:700;line-height:1.5;}
.admin-workspace .card{border-radius:12px;box-shadow:none;border:1px solid var(--line);padding:24px;}
.admin-workspace .btn{border-radius:8px;background:var(--accent);color:var(--ink);border-color:transparent;box-shadow:none;}
.admin-workspace .btn.ghost,.admin-workspace .subtab{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:8px;}
.admin-workspace .subtab.on{background:var(--accent);color:var(--ink);border-color:#c6dc49;font-weight:700;}
.admin-workspace .scope-note{background:#f0f7cc;color:#394419;border-radius:12px;border:0;margin-bottom:20px;}
.admin-workspace .page-focus{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;background:#fff1e6;border-left:4px solid #ff772d;border-radius:12px;padding:14px 18px;margin-bottom:20px;color:#6c391a;}
.admin-workspace .page-focus strong{color:#85390c;font-size:13px;white-space:nowrap;}
.admin-workspace .page-focus p{font-size:14px;line-height:1.7;margin:0;}
.admin-workspace .sec{border-left:0;padding-left:0;}
.admin-workspace .p-warn{background:#ffeadb;color:#9b3f12;}
.admin-workspace .kpi.hero{background:var(--accent);border-color:#c6dc49;}
.admin-workspace .btn:not(.ghost):hover,.admin-workspace .login-card .go:hover{background:#cce548;}
.admin-workspace .subtab.on:focus-visible,.admin-workspace .nav-i.on:focus-visible{outline-color:#56640a;}
.admin-workspace .shell-menu{display:none;}
.admin-workspace #bk-table{overflow-x:auto;}
.admin-workspace #bk-table table{background:white;min-width:760px;}
.admin-workspace table th{background:#eef0f3;color:var(--ink-2);font-size:12px;font-weight:400;}
.admin-workspace table td{font-size:14px;}
.admin-workspace :focus-visible{outline:2px solid #56640a;outline-offset:3px;}
.admin-workspace .login-card .go{background:var(--accent);color:var(--ink);}
@media(max-width:760px){
 .admin-workspace #app.show{display:block;padding:16px;}
 .admin-workspace .shell-menu{display:inline-flex;}
 .admin-workspace .side{display:none;position:static;max-height:none;width:100%;margin-bottom:20px;}
 .admin-workspace.menu-open .side{display:flex;}
 .admin-workspace .main{padding:0;}
 .admin-workspace .topbar h1{font-size:26px;flex:1;}
 .admin-workspace .tb-right{width:100%;justify-content:flex-end;}
 .admin-workspace .card{padding:16px;}
}
/* 左欄六大區（2026-11-02）：可收合群組；介面一律清爽，不加左側色條與頁首提示條 */
.admin-workspace .page-focus,.admin-workspace .scope-note{display:none !important;}
.admin-workspace .ptabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.admin-workspace .ngrp{display:flex;flex-direction:column;gap:2px;margin-top:6px;}
.admin-workspace .ngrp-h{all:unset;box-sizing:border-box;cursor:pointer;display:block;width:100%;padding:10px 8px 6px 4px;font-size:13px;font-weight:700;color:var(--ink);position:relative;}
.admin-workspace .ngrp-h::after{content:"";position:absolute;right:8px;top:15px;width:7px;height:7px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg);transition:transform .15s;opacity:.6;}
.admin-workspace .ngrp.closed .ngrp-h::after{transform:rotate(-45deg);}
.admin-workspace .ngrp-h:focus-visible{outline:2px solid #66791d;border-radius:6px;}
.admin-workspace .ngrp.closed .ngrp-b{display:none;}
.admin-workspace .ngrp-b{display:flex;flex-direction:column;gap:2px;}
.admin-workspace .nsub{font-size:11.5px;color:var(--ink-3,#888);padding:8px 4px 2px 8px;}
.admin-workspace .nav-tch{margin-top:8px;}

/* ── 開放預約週曆（2026-11-02）── */
.sw-nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:10px;}
.sw-nav .subtab[disabled]{opacity:.4;cursor:default;}
.sw-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:10px;}
.sw{border-collapse:collapse;width:100%;min-width:560px;table-layout:fixed;font-size:12.5px;}
.sw th{font-weight:600;color:var(--ink-2);padding:6px 2px;background:#fafbfc;border-bottom:1px solid var(--line);line-height:1.4;}
.sw th.today{color:#2f6fb0;}
.sw th.h{width:52px;color:var(--ink-3);font-weight:500;text-align:right;padding-right:8px;background:#fff;border-bottom:0;}
.sw td{padding:2px;}
.sw .c{width:100%;height:32px;border:1px solid #e8ebee;border-radius:6px;background:#fff;font:inherit;font-size:11.5px;color:var(--ink-2);cursor:pointer;padding:0;}
.sw .c:hover{border-color:#2f6fb0;}
.sw .c.sel{background:#2f6fb0;border-color:#2f6fb0;color:#fff;font-weight:700;}
.sw .c.open{background:#e3f4e8;border-color:#a9d8b6;color:#256b3c;font-weight:600;}
.sw .c.open.warn{background:#fdf1ef;border-color:#f0c7c0;color:#a2402f;}
.sw .c.bk{background:#fdf0dc;border-color:#ecc98f;color:#8a5a12;cursor:default;}
.sw .c.busy{background:repeating-linear-gradient(45deg,#eef0f2,#eef0f2 4px,#e3e6e9 4px,#e3e6e9 8px);border-color:#e3e6e9;color:#8a9096;cursor:default;}
.sw .c.past{background:#f6f7f8;border-color:#f0f1f2;color:#b5b9bd;cursor:default;}
.sw-lg{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--ink-3);}
.sw-lg i{display:inline-block;width:14px;height:14px;border:1px solid #e3e6e9;border-radius:4px;vertical-align:-3px;margin-right:5px;}
.sw-lg i.busy-i{background:repeating-linear-gradient(45deg,#eef0f2,#eef0f2 3px,#e3e6e9 3px,#e3e6e9 6px);}
.sw-bar{position:sticky;bottom:0;background:#fff;display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px;padding:10px 0 2px;border-top:1px solid var(--line);}
.sw-bar .btn[disabled]{opacity:.45;cursor:default;}

/* ── 清爽列表（2026-11-03）：列表只放必要欄位，最右「詳細資料」展開或進內頁 ── */
.admin-workspace .list-filter{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px;}
.admin-workspace .list-filter input[type=search]{flex:1 1 220px;max-width:320px;}
/* 2026-11-04 篩選列的搜尋框、下拉選單統一成跟成效分析篩選列同一種樣子 */
.admin-workspace .list-filter input[type=search],.admin-workspace .list-filter select{font:inherit;font-size:13.5px;padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);min-height:36px;outline:none;}
.admin-workspace .list-filter input[type=search]:focus,.admin-workspace .list-filter select:focus{border-color:#66791d;box-shadow:0 0 0 3px rgba(102,121,29,.15);}
.admin-workspace .list-filter input[type=checkbox]{accent-color:#66791d;width:15px;height:15px;margin:0;}
.admin-workspace .list-filter label{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--ink-2);white-space:nowrap;}
.admin-workspace .list-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:12px;}
.admin-workspace table.list{width:100%;border-collapse:collapse;background:#fff;}
.admin-workspace table.list th{padding:11px 16px;text-align:left;white-space:nowrap;font-weight:500;border-bottom:1px solid var(--line);}
.admin-workspace table.list td{padding:13px 16px;vertical-align:middle;border-bottom:1px solid var(--line);line-height:1.5;}
.admin-workspace table.list td:not(.wrap){white-space:nowrap;}
.admin-workspace table.list tbody tr:last-child td{border-bottom:0;}
.admin-workspace table.list tbody tr:not(.detail-row):hover td{background:#fafbfc;}
.admin-workspace table.list .act{text-align:right;width:1%;}
.admin-workspace table.list .num{text-align:right;font-variant-numeric:tabular-nums;}
.admin-workspace .muted{color:var(--ink-3);font-size:12.5px;}
.admin-workspace table.list td.empty{text-align:center;color:var(--ink-3);padding:32px 16px;}
.admin-workspace table.list tr.row-alert td{background:#fdf2f0;}
.admin-workspace .detail-btn{padding:6px 14px;font-size:13px;white-space:nowrap;}
.admin-workspace table.list tr.detail-row>td{background:#f8f9fb;white-space:normal;padding:16px 20px 18px;}
.admin-workspace .dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px 24px;}
.admin-workspace .dl-i span{display:block;font-size:12px;color:var(--ink-3);margin-bottom:2px;}
.admin-workspace .dl-i div{font-size:13.5px;line-height:1.6;word-break:break-word;}
.admin-workspace .dl-act{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.admin-workspace .dl-edit{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);}
.admin-workspace .dl-sub{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;}
.admin-workspace .warn-t{color:#b5651d;}
.admin-workspace .ptab .cnt{font-size:12px;color:var(--ink-3);margin-left:2px;}
.admin-workspace .ptab.on .cnt{color:inherit;}
.admin-workspace .who{display:inline-flex;align-items:center;gap:10px;}
.admin-workspace .ava{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:none;background:#e8eff5;display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:var(--ink-2);}

/* 2026-11-04 師資定價區塊：醒目框＋ⓘ 說明 */
.admin-workspace .tch-price{margin:14px 0 0;padding:14px 16px;border:1.5px solid #c9d49a;background:#f6f8ec;border-radius:12px;max-width:520px;}
.admin-workspace .tch-price-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.admin-workspace .tch-price-h b{font-size:15px;color:var(--ink);}
.admin-workspace .tch-price-h>span{font-size:12.5px;color:var(--ink-3);}
.admin-workspace .tch-price-i{flex-basis:100%;order:3;}
.admin-workspace .tch-price-i summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#66791d;color:#fff;font:italic 700 12px/1 Georgia,serif;position:absolute;top:0;right:0;}
.admin-workspace .tch-price-i summary::-webkit-details-marker{display:none;}
.admin-workspace .tch-price-h{position:relative;padding-right:28px;}
.admin-workspace .tch-price-i p{margin:10px 0 2px;padding:10px 12px;background:#fff;border-radius:8px;font-size:13px;line-height:1.7;color:var(--ink-2,#444);}
.admin-workspace .tch-price-row{display:flex;align-items:center;gap:8px;margin-top:10px;}
.admin-workspace .tch-price-cur{font-weight:800;color:#66791d;}
.admin-workspace .tch-price-row input{font:inherit;font-size:20px;font-weight:700;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;width:180px;}
.admin-workspace .tch-price-net{font-size:12.5px;color:#66791d;margin-top:6px;min-height:1em;}
