:root { --paper:#f5f4ef; --panel:#fefdf9; --ink:#17231f; --muted:#657069; --divider:#d7d8d1; --rail:#17231f; --rail-text:#e8ece5; --lime:#c9e66b; --info:#356f8c; --attention:#b06b14; --failure:#b74a3d; --confirmed:#3f783d; --shadow:0 10px 30px rgba(23,35,31,.07); --radius:8px; }
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#17231f,#314238)}.login-card{width:min(440px,100%);padding:38px;background:var(--panel);border-radius:12px;box-shadow:0 20px 70px rgba(0,0,0,.3)}.login-card .brand-mark{margin-bottom:28px}.login-card h1{font-size:32px}.login-card>p:not(.eyebrow){color:var(--muted)}.login-form{display:grid;gap:14px;margin:24px 0}.login-form label{display:grid;gap:6px;font-size:12px;font-weight:800;color:var(--muted)}.login-form input{border:1px solid var(--divider);border-radius:6px;padding:11px;color:var(--ink);background:white}.login-error{margin:0;color:var(--failure);font-size:12px}.login-note{font-size:11px;line-height:1.6}.app-shell{display:none}body.authenticated .login-screen{display:none}body.authenticated .app-shell{display:grid}.header-actions{display:flex;align-items:center;gap:10px}
.guide-link,.guide-back{color:var(--info);font-size:12px;font-weight:800;text-decoration:none}.guide-wrap{width:min(900px,100%);margin:0 auto;padding:48px 24px 72px}.guide-wrap h1{font-size:42px;margin:8px 0 16px}.guide-lead{max-width:720px;color:var(--muted);font-size:16px}.guide-section{margin-top:34px;background:var(--panel);border:1px solid var(--divider);border-radius:var(--radius);padding:26px}.guide-steps{padding-left:22px;margin:16px 0 0}.guide-steps li{padding:7px 0}.check-grid{display:grid;gap:8px;margin-top:18px}.check-row{border-left:4px solid var(--divider);padding:12px 14px;background:#fafaf6}.check-row.done{border-color:var(--confirmed)}.check-row.pending{border-color:var(--attention)}.check-row span{float:right;font-size:12px;font-weight:800;color:var(--muted)}.check-row p{margin:4px 0 0;color:var(--muted);font-size:13px}.guide-warning{margin-top:24px;padding:16px 18px;background:#fff5e5;border:1px solid #e0bd86;border-radius:var(--radius);color:#70440b}@media(max-width:760px){.guide-wrap{padding:28px 16px 48px}.guide-wrap h1{font-size:32px}.guide-section{padding:20px}.check-row span{float:none;display:block;margin-top:3px}}
*{box-sizing:border-box} body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;font-size:14px;line-height:1.5}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}button,select{font:inherit}button{cursor:pointer}.rail{background:var(--rail);color:var(--rail-text);padding:28px 18px;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0}.brand{color:inherit;text-decoration:none;display:flex;align-items:center;gap:10px;line-height:1.05;font-size:13px}.brand strong{font-size:23px;letter-spacing:-.05em}.brand-mark{display:grid;place-items:center;width:36px;height:36px;background:var(--lime);color:var(--rail);font-weight:900;border-radius:50%}.demo-label,.rail-label,.eyebrow{font-size:10px;font-weight:800;letter-spacing:.12em}.demo-label{color:var(--lime);margin:34px 0 24px}.rail-label{color:#9ea9a2;margin:0 8px 8px}.group-rail{display:grid;gap:4px}.group-item{width:100%;border:0;background:transparent;color:#b8c1bb;text-align:left;padding:12px 10px;border-radius:6px;display:grid;gap:3px}.group-item small{font-family:ui-monospace,monospace;color:#7f8d84}.group-item.active{background:#27362f;color:white;box-shadow:inset 3px 0 var(--lime)}.group-badges{display:flex;gap:6px;font-size:11px;color:#dbe3b4}.rail-note{margin-top:auto;border-top:1px solid #35443c;padding:20px 8px 0}.rail-note strong,.rail-note span{display:block}.rail-note strong{margin:4px 0}.rail-note span{font-size:12px;color:#a9b3ac}.workspace{width:min(1540px,100%);padding:34px clamp(22px,4vw,56px) 68px;margin:0 auto}.page-header,.context-bar,.panel-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.page-header{margin-bottom:26px}.eyebrow{color:var(--muted);margin:0 0 5px}h1,h2{margin:0;letter-spacing:-.035em}h1{font-size:clamp(30px,4vw,45px)}h2{font-size:20px}.header-meta,.context-meta{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:8px}.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--confirmed);box-shadow:0 0 0 4px rgba(63,120,61,.13)}.failure-notice{display:flex;gap:12px;align-items:center;background:#f9eae7;border:1px solid #e2aea6;color:#832f25;padding:12px 14px;border-radius:var(--radius);margin:0 0 16px}.context-bar{padding:18px 0;border-top:1px solid var(--divider);border-bottom:1px solid var(--divider);margin-bottom:18px}.context-title h2{font-size:25px}.context-meta{margin-right:auto}.context-meta code,.identity code,#drawerHandle{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.button{border:1px solid transparent;border-radius:6px;min-height:38px;padding:0 13px;font-weight:800;font-size:13px}.button.primary{background:var(--ink);color:white}.button.primary:hover{background:#2b4037}.button.secondary{background:#ecece6;border-color:var(--divider);color:var(--ink)}.priority-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.priority-card{min-height:115px;border:1px solid var(--divider);background:var(--panel);text-align:left;padding:15px;border-radius:var(--radius);display:grid;align-content:start;gap:5px;color:var(--ink)}button.priority-card:hover{border-color:#929b93;transform:translateY(-1px)}.priority-card span,.priority-card small{color:var(--muted);font-size:12px}.priority-card strong{font-size:31px;line-height:1;color:var(--ink)}.priority-card.attention strong{color:var(--attention)}.priority-card.failure strong{color:var(--failure)}.priority-card.neutral{box-shadow:none}.roster-panel,.panel{background:var(--panel);border:1px solid var(--divider);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-header{padding:19px 22px}.panel-header.compact{padding-bottom:10px}.filters{display:flex;flex-wrap:wrap;gap:5px}.filter,.text-button{border:0;background:transparent;color:var(--muted);font-size:12px;padding:7px 9px;border-radius:5px}.filter.active,.filter:hover{background:var(--ink);color:white}.text-button:hover{text-decoration:underline;color:var(--ink)}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:900px}th{color:var(--muted);font-size:10px;letter-spacing:.1em;text-align:left;padding:11px 22px;border-top:1px solid var(--divider);border-bottom:1px solid var(--divider)}td{padding:14px 22px;border-bottom:1px solid #e9e9e2;vertical-align:middle}tbody tr{cursor:pointer}tbody tr:hover{background:#fafaf5}.identity{display:grid;gap:2px}.identity strong{font-size:13px}.identity code{color:var(--muted);font-size:11px}.status{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:12px;white-space:nowrap}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.confirmed,.active{color:var(--confirmed)}.pending,.expiring{color:var(--attention)}.error,.expired{color:var(--failure)}.date-cell{display:grid;gap:2px}.date-cell small{font-size:11px;color:var(--muted)}.row-action{border:1px solid var(--divider);background:var(--panel);font-size:12px;font-weight:800;border-radius:5px;padding:6px 9px;white-space:nowrap}.row-action:hover{border-color:var(--ink)}.secondary-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr);gap:18px;margin-top:18px}.mapping-panel>p{margin:0 22px 16px;color:var(--muted);font-size:13px}.tag{color:var(--muted);background:#eff0ea;padding:5px 7px;border-radius:99px;font-size:10px;font-weight:800}.mapping-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:0 22px 16px}.mapping-fields label{color:var(--muted);font-size:11px;font-weight:800;display:grid;gap:5px}.mapping-fields select{background:white;border:1px solid var(--divider);border-radius:5px;padding:8px;color:var(--ink)}.mapping-panel>.button{margin:0 22px 14px}.mapping-result{margin:0 22px 21px;padding:11px;background:#f0f3e8;color:#4d5a51;border-radius:5px;font-size:12px}.activity-list{padding:0 22px 18px;margin:0;list-style:none;max-height:280px;overflow:auto}.activity-list li{display:grid;grid-template-columns:8px 1fr auto;gap:9px;padding:11px 0;border-bottom:1px solid #e9e9e2;font-size:12px}.activity-list li:last-child{border-bottom:0}.activity-list i{width:7px;height:7px;background:var(--info);border-radius:50%;margin-top:5px}.activity-list time{font-family:ui-monospace,monospace;font-size:10px;color:var(--muted)}.member-drawer{position:fixed;inset:0 0 0 auto;width:min(410px,100vw);background:var(--panel);border-left:1px solid var(--divider);box-shadow:-20px 0 60px rgba(23,35,31,.14);padding:32px;transform:translateX(105%);transition:transform .2s ease;z-index:3}.member-drawer.open{transform:translateX(0)}.drawer-close{position:absolute;right:18px;top:17px;border:0;background:transparent;font-size:29px;color:var(--muted)}.member-drawer h2{font-size:27px;margin:6px 0 3px}.member-drawer code{color:var(--muted)}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:25px 0}.detail-list div{padding:12px 0;border-bottom:1px solid var(--divider)}.detail-list dt{font-size:11px;color:var(--muted);font-weight:800}.detail-list dd{margin:3px 0 0;font-weight:800}.drawer-actions{display:grid;gap:8px}.drawer-disclosure{color:var(--muted);font-size:11px;margin-top:18px}.empty-row{text-align:center;color:var(--muted);padding:36px}@media(max-width:1050px){.priority-strip{grid-template-columns:repeat(2,1fr)}.secondary-grid{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{display:block}.rail{position:relative;min-height:auto;padding:18px}.group-rail{display:flex;overflow:auto}.group-item{min-width:155px}.rail-note{display:none}.demo-label{position:absolute;right:16px;top:4px}.workspace{padding:25px 16px 48px}.page-header,.context-bar,.panel-header{align-items:flex-start;flex-direction:column}.context-meta{margin:0}.priority-strip{grid-template-columns:1fr 1fr}.mapping-fields{grid-template-columns:1fr}.member-drawer{width:100%}}
