:root{--ink: #1f2933;--muted: #6b7280;--accent: #1d4ed8;--line: #d1d5db;--bg: #f8fafc;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}.page{max-width:1080px;margin:0 auto;padding:0 16px;min-height:100vh;display:flex;flex-direction:column}main{flex:1;padding:24px 0}.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px}.brand{font-weight:700;font-size:1.2rem;color:var(--ink);text-decoration:none}.brand-block{display:flex;flex-direction:column;gap:2px}.brand-sub{font-size:.78rem;color:var(--muted)}nav{display:flex;gap:16px;align-items:center}nav a{color:var(--ink);text-decoration:none}nav a.active{color:var(--accent);font-weight:600}button,.button{background:var(--accent);color:#fff;border:0;border-radius:6px;padding:9px 16px;font-size:1rem;cursor:pointer;text-decoration:none;display:inline-block;margin:4px 4px 4px 0}button:disabled{opacity:.5;cursor:not-allowed}button.link{background:none;color:var(--accent);padding:0;margin:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}.tabs{display:flex;gap:2px;margin:0;border-bottom:2px solid var(--accent);padding:0 8px}.tabs button[role=tab]{background:#e9eef5;color:var(--muted);border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;padding:10px 22px;margin:0;font-size:1.05rem;position:relative;top:2px}.tabs button[role=tab].active{background:#fff;color:var(--accent);font-weight:700;border-color:var(--accent);border-bottom:2px solid #fff}.tabs button[role=tab]:hover:not(.active){background:#f3f6fa}.workspace{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:20px;background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;padding:20px}@media (max-width: 820px){.workspace{grid-template-columns:1fr}}.search{text-align:left}.input-row{display:flex;gap:10px;align-items:stretch}.input-row input#person{flex:1;min-width:0;font-size:1.3rem;padding:12px 14px;border:2px solid var(--line);border-radius:8px}.input-row textarea{flex:1;min-width:0;font-size:1.05rem;line-height:1.5;padding:10px 14px;border:2px solid var(--line);border-radius:8px;font-family:inherit}.input-row button{white-space:nowrap;font-size:1.1rem;padding:0 22px;margin:0}.job-panel{border-left:1px solid var(--line);padding-left:20px}@media (max-width: 820px){.job-panel{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:12px}}.job-panel h2{margin:0 0 10px;font-size:1.05rem}.job-panel ul{list-style:none;padding:0;margin:0}.job-row{border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:10px;background:#fafbfc}.job-row.status-completed,.job-row.status-partial{border-color:#86efac}.job-row.status-failed{border-color:#fca5a5}.job-title{display:flex;justify-content:space-between;gap:8px}.job-title span{color:var(--muted);font-size:.85rem}.job-state{font-size:.9rem;margin:4px 0}.job-stage{color:var(--muted)}.job-error{color:#991b1b;font-size:.85rem}.job-actions{margin-top:6px}button.small,.button.small{padding:5px 10px;font-size:.85rem}.features{border:0;text-align:left;margin:16px 0;padding:0}.features legend{font-weight:600;margin-bottom:8px}.features label{display:block;padding:8px;border-bottom:1px solid #eef2f7}.features label.disabled{color:var(--muted)}.features small{display:block;color:var(--muted);margin-left:24px}.badge{font-size:.75rem;background:#fef3c7;color:#92400e;border-radius:4px;padding:1px 6px;margin-left:6px}.badge.muted{background:#e5e7eb;color:var(--muted)}.quota,.hint{color:var(--muted);font-size:.9rem}.alert{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:6px;padding:10px;margin:10px 0}.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:16px}.bar{height:10px;background:#e5e7eb;border-radius:5px;overflow:hidden}.bar div{height:100%;background:var(--accent);transition:width .5s}.good-citizen{font-size:2rem;color:#166534;font-weight:700}.person{border-top:1px solid #eef2f7;padding-top:8px}table{width:100%;border-collapse:collapse;margin:8px 0}th,td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}th{background:#f1f5f9}.pricing td:first-child{font-weight:600}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center}.modal{background:#fff;padding:24px;border-radius:8px;min-width:280px;text-align:center}.config-row{display:flex;justify-content:space-between;gap:8px;padding:4px 0}.config-row input{width:220px}.inline{margin-right:8px;white-space:nowrap}.audit{font-size:.85rem;word-break:break-all}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}footer{color:var(--muted);font-size:.8rem;border-top:1px solid var(--line);padding:12px 0}.beta-banner{background:#fffbeb;border:1px solid #fcd34d;color:#78350f;border-radius:6px;padding:8px 12px;margin:12px 0 0;font-size:.9rem}.nl-confirm{margin-top:14px}.nl-confirm h3{margin:0 0 8px}.candidates{list-style:none;padding:0;margin:8px 0}.candidates li{padding:6px 0;border-bottom:1px solid #eef2f7}.candidates label{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.badge.ok{background:#dcfce7;color:#166534}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}.examples-block{margin:10px 0 6px;font-size:.88rem;text-align:left}.examples-label{color:var(--muted);font-weight:600;display:block;margin-bottom:4px}.examples-list{margin:2px 0 0;padding-left:22px}.examples-list li{margin:4px 0}.examples-list button.example{color:var(--accent);font-size:.9rem;text-align:left;padding:0;line-height:1.4}.examples-list button.example:hover{text-decoration:underline}button.link.example{margin-right:10px;font-size:.9rem}fieldset.dirty{border-color:#f59e0b}.config-row.changed{background:#fffbeb}.config-row small{color:#92400e;margin-left:6px}.modal.confirm{text-align:left;min-width:420px;max-width:90vw}.modal.confirm table{margin:10px 0}a.jid{color:var(--accent);text-decoration:underline dotted;font-family:ui-monospace,Menlo,monospace;font-size:.92em}
