/* Plane reference: color identifies work and state; actions remain label-only. */
:root {
 --work-blue:#356cba;--work-blue-bg:#edf3fc;--work-blue-line:#d6e3f8;
 --work-purple:#7752b9;--work-purple-bg:#f3eefb;--work-purple-line:#e4d9f5;
 --work-teal:#237b68;--work-teal-bg:#eaf6f1;--work-teal-line:#cfe8dd;
 --work-amber:#96610c;--work-amber-bg:#fff5df;--work-amber-line:#f1dfb4;
 --work-rose:#b44368;--work-rose-bg:#fceef3;--work-rose-line:#f1d5df;
 --work-neutral:#666b72;--work-neutral-bg:#f4f5f6;--work-neutral-line:#dedfe2;
}
:root.dark {
 --work-blue:#9abff2;--work-blue-bg:#202f44;--work-blue-line:#354a66;
 --work-purple:#c5acf2;--work-purple-bg:#30263f;--work-purple-line:#4f3e65;
 --work-teal:#8ad6bd;--work-teal-bg:#1d352c;--work-teal-line:#355447;
 --work-amber:#edc578;--work-amber-bg:#382e1e;--work-amber-line:#58482e;
 --work-rose:#efa5bf;--work-rose-bg:#3c2630;--work-rose-line:#61404c;
 --work-neutral:#b7b9bd;--work-neutral-bg:#242628;--work-neutral-line:#414448;
}

/* One button scale for headings, empty states, forms, tables and dialogs. */
:root .btn,:root .plane-page .btn,:root .plane-route-header .btn {
 min-height:28px;padding:3px 10px;border-radius:5px;font-size:13px;line-height:20px;
 font-weight:500;gap:0;box-shadow:0 1px 2px #0000000a;
}
:root .btn.primary {background:var(--template-primary);border-color:var(--template-primary);color:#fff;box-shadow:none;}
:root .btn.primary:not(:disabled):hover {background:var(--brand-hover);border-color:var(--brand-hover);box-shadow:none;}
:root .btn.quiet {background:transparent;border-color:transparent;color:var(--plane-secondary);box-shadow:none;}
:root .btn.quiet:not(:disabled):hover {background:var(--ui-hover);border-color:transparent;color:var(--text);}
:root .btn:disabled {box-shadow:none;}
.btn.is-working::before {margin-right:7px;}
.empty .btn+.btn {margin-left:12px;}
.dialog-footer {gap:8px;}
/* Keep utility buttons (history/search) compact and preserve their icons. */
:root .btn.hx-sidebar-search {width:32px;min-width:32px;padding:3px;}
@media(max-width:700px){:root .plane-page .btn,:root .plane-route-header .btn {min-height:32px;}}

/* The same state vocabulary applies to kanban, tables, drafts and receipts. */
[data-status],.state-dot {--state-ink:var(--work-neutral);--state-bg:var(--work-neutral-bg);--state-line:var(--work-neutral-line);}
:is([data-status=doing],[data-status=publishing],[data-status=partial],.state-dot.doing) {--state-ink:var(--work-amber);--state-bg:var(--work-amber-bg);--state-line:var(--work-amber-line);}
:is([data-status=review],[data-status=pending],[data-status=rejected],[data-status=lost],.state-dot.review) {--state-ink:var(--work-rose);--state-bg:var(--work-rose-bg);--state-line:var(--work-rose-line);}
:is([data-status=done],[data-status=approved],[data-status=completed],[data-status=live],[data-status=qualified],[data-status=won],.state-dot.done) {--state-ink:var(--work-teal);--state-bg:var(--work-teal-bg);--state-line:var(--work-teal-line);}
:is([data-status=active],[data-status=new],[data-status=contacted],[data-status=queued],[data-status=accepted]) {--state-ink:var(--work-blue);--state-bg:var(--work-blue-bg);--state-line:var(--work-blue-line);}
:root .plane-page .badge[data-status] {color:var(--state-ink);background:var(--state-bg);border-color:var(--state-line);gap:6px;}
:root .badge[data-status].dot::before,.state-dot {
 content:'';display:inline-block;flex:none;width:11px;height:11px;box-sizing:border-box;
 border:1.5px solid var(--state-ink);border-radius:50%;background:transparent;
}
:root .badge:is([data-status=doing],[data-status=publishing]).dot::before,.state-dot.doing {background:var(--state-ink);box-shadow:inset 0 0 0 2px var(--state-bg);}
:root .badge:is([data-status=review],[data-status=pending]).dot::before,.state-dot.review {background:transparent;border-radius:3px;transform:rotate(45deg);width:9px;height:9px;}
:root .badge:is([data-status=done],[data-status=approved],[data-status=completed],[data-status=live]).dot::before,.state-dot.done {background:var(--state-ink);}
.kanban-heading h2>span {background:var(--state-bg);color:var(--state-ink);border:1px solid var(--state-line);border-radius:4px;padding:0 6px;line-height:20px;}
.task-card .task-id>span {display:inline-flex;align-items:center;gap:7px;}
.task-type-icon {display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;color:var(--work-blue);background:var(--work-blue-bg);}
.task-type-icon[data-tone=purple] {color:var(--work-purple);background:var(--work-purple-bg);}
.task-type-icon>.icon {width:14px;height:14px;}
.task-card-details {justify-content:flex-start;gap:7px;}
:root .plane-page .task-card-details .badge {padding:2px 6px;line-height:18px;}
.priority-tag {display:inline-flex;align-items:center;gap:5px;padding:2px 6px;border:1px solid var(--line);border-radius:4px;font-size:12px;line-height:18px;white-space:nowrap;color:var(--plane-secondary);}
.priority-tag>i {display:flex;align-items:flex-end;gap:2px;height:11px;color:var(--work-neutral);}
.priority-tag b {width:2px;border-radius:1px;background:currentColor;opacity:.3;}
.priority-tag b:nth-child(1) {height:4px;opacity:1;}.priority-tag b:nth-child(2) {height:7px;}.priority-tag b:nth-child(3) {height:10px;}
.priority-tag[data-priority=高]>i {color:var(--work-rose);}.priority-tag[data-priority=高] b {opacity:1;}
.priority-tag[data-priority=中]>i {color:var(--work-amber);}.priority-tag[data-priority=中] b:nth-child(2) {opacity:1;}
.task-card .task-due {padding:2px 6px;border:1px solid var(--line);border-radius:4px;line-height:18px;}
.task-card .task-due.is-overdue {color:var(--work-rose);border-color:var(--work-rose-line);background:var(--work-rose-bg);}

/* Stable feature colors, shared by navigation, panel headings and shortcuts. */
:is(.plane-nav-item,.brand-panel h2,.plane-integration-icon,.hx-quicklinks button>span,.plane-draft-info) {--feature-ink:var(--work-blue);--feature-bg:var(--work-blue-bg);}
:is(.plane-nav-item,.brand-panel h2,.plane-integration-icon,.hx-quicklinks button>span,.plane-draft-info):has(>.icon:is([data-icon=database],[data-icon=file-check],[data-icon=shield-check])) {--feature-ink:var(--work-teal);--feature-bg:var(--work-teal-bg);}
:is(.plane-nav-item,.brand-panel h2,.plane-integration-icon,.hx-quicklinks button>span):has(>.icon:is([data-icon=file-pencil],[data-icon=files],[data-icon=plug],[data-icon=report-analytics],[data-icon=sparkles])) {--feature-ink:var(--work-purple);--feature-bg:var(--work-purple-bg);}
:is(.plane-nav-item,.brand-panel h2,.plane-integration-icon,.hx-quicklinks button>span):has(>.icon:is([data-icon=list-check],[data-icon=send],[data-icon=receipt])) {--feature-ink:var(--work-amber);--feature-bg:var(--work-amber-bg);}
.plane-nav-item>.icon {width:24px;height:24px;padding:4px;border-radius:5px;color:var(--feature-ink);background:var(--feature-bg);}
.plane-nav-item.selected>.icon {color:var(--feature-ink);}
.brand-panel h2>.icon {color:var(--feature-ink);}
.plane-integration-icon:has(>.icon),.hx-quicklinks button>span:has(>.icon) {background:var(--feature-bg);color:var(--feature-ink);border-radius:5px;}
.plane-integration-icon:has(>.icon) {width:30px;height:30px;}
.plane-integration-icon>.icon {width:19px;height:19px;color:var(--feature-ink);}
.hx-quicklinks button>span>.icon {color:var(--feature-ink);}
.plane-draft-info>.icon {color:var(--feature-ink);}
.brand-kpi.tone-0 .brand-color-icon {color:var(--work-blue);background:var(--work-blue-bg);}
.brand-kpi.tone-1 .brand-color-icon,.brand-color-icon.tone-1 {color:var(--work-teal);background:var(--work-teal-bg);}
.brand-kpi.tone-2 .brand-color-icon,.brand-color-icon.tone-2 {color:var(--work-purple);background:var(--work-purple-bg);}
.brand-kpi.tone-3 .brand-color-icon {color:var(--work-amber);background:var(--work-amber-bg);}
.brand-content-status .review {background:var(--work-rose);}.brand-content-status .approved {background:var(--work-teal);}

/* No extra focus rectangles: use the existing control surface and border instead. */
:root :is(button,a,input,textarea,select,summary,[tabindex]):focus-visible,
:root .plane-shell :is(button,a,input,textarea,select,summary,[tabindex]):focus-visible,
:root dialog :is(button,a,input,textarea,select,summary,[tabindex]):focus-visible {outline:none;outline-offset:0;}
:root .input-search input:focus,:root .input-search input:focus-visible {outline:none;box-shadow:none;}
.input-search:focus-within {border-color:var(--muted);}
.plane-shell .field :is(input,textarea):focus-visible,.plane-select-trigger:focus-visible {border-color:var(--muted);}
.plane-shell :is(.btn:not(.primary),.icon-button,.plane-nav-item,.plane-popover-item,.segmented>button,.tabs>button,summary):focus-visible {background:var(--ui-hover);}
.plane-shell .btn.primary:focus-visible {background:var(--brand-hover);border-color:var(--brand-hover);}
.plane-shell a:focus-visible,dialog a:focus-visible {text-decoration:underline;}
