/* Aham UI 8.1.0. Generated by scripts/build.mjs from tokens.json and src/. Do not edit this file. */
/* Inter Variable 4.1, SIL Open Font License 1.1, see assets/fonts/LICENSE.txt. */
@font-face{font-family:'Inter Variable';font-style:normal;font-weight:100 900;font-display:swap;src:url('../js/assets/fonts/InterVariable.woff2') format('woff2');}
@font-face{font-family:'Inter Variable';font-style:italic;font-weight:100 900;font-display:swap;src:url('../js/assets/fonts/InterVariable-Italic.woff2') format('woff2');}
.aham-workbench {
  color-scheme: light;
  --wb-font: 'Inter Variable', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', 'Noto Sans SC', system-ui, sans-serif;
  --wb-mono: 'JetBrains Mono', 'SF Mono', ui-monospace, Menlo, Consolas, monospace;
  --wb-font-features: 'cv01', 'ss03';
  --wb-text-xs: 12px;
  --wb-text-sm: 13px;
  --wb-body: 13px;
  --wb-text-base: 14px;
  --wb-title: 20px;
  --wb-detail-title: 24px;
  --wb-total: 24px;
  --wb-touch-input: 16px;
  --wb-s0: 0;
  --wb-s1: 4px;
  --wb-s2: 8px;
  --wb-s3: 12px;
  --wb-s4: 16px;
  --wb-s5: 24px;
  --wb-s6: 32px;
  --wb-s7: 48px;
  --wb-s8: 64px;
  --wb-s9: 96px;
  --wb-radius-sm: 4px;
  --wb-radius: 8px;
  --wb-radius-lg: 12px;
  --wb-shell-radius: 10px;
  --wb-radius-pill: 999px;
  --wb-shadow-pop: 0 0 0 1px rgba(20,20,20,0.08), 0 2px 6px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.10);
  --wb-shadow-float: 0 0 0 1px rgba(20,20,20,0.08), 0 4px 8px rgba(0,0,0,0.06), 0 12px 28px rgba(0,0,0,0.10);
  --wb-row: 36px;
  --wb-row-compact: 32px;
  --wb-row-double: 48px;
  --wb-control: 32px;
  --wb-header-control: 28px;
  --wb-field: 28px;
  --wb-hit: 32px;
  --wb-touch: 44px;
  --wb-header-row: 40px;
  --wb-nav-item: 32px;
  --wb-dot: 6px;
  --wb-kbd: 20px;
  --wb-activity-icon: 20px;
  --wb-avatar: 24px;
  --wb-command-input: 36px;
  --wb-palette-input: 48px;
  --wb-palette-item: 40px;
  --wb-check-col: 32px;
  --wb-icon: 16px;
  --wb-hairline: 1px;
  --wb-rail: 52px;
  --wb-nav: 240px;
  --wb-rail-labeled: 72px;
  --wb-gutter: 8px;
  --wb-page-gutter: 32px;
  --wb-page-gutter-wide: 48px;
  --wb-panel-narrow: 240px;
  --wb-panel-wide: 400px;
  --wb-detail-width: 720px;
  --wb-form-max: 960px;
  --wb-label: 72px;
  --wb-table-min: 680px;
  --wb-search-width: 240px;
  --wb-pop-min: 200px;
  --wb-pop-max: 360px;
  --wb-pop-form: 320px;
  --wb-menu-width: 256px;
  --wb-toast-width: 360px;
  --wb-dialog-width: 400px;
  --wb-dialog-form: 560px;
  --wb-dialog-wide: 880px;
  --wb-overlay-width: 640px;
  --wb-palette-top: 22vh;
  --wb-create-top: 16vh;
  --wb-bp-mobile: 640px;
  --wb-bp-context: 1024px;
  --wb-bp-form: 720px;
  --wb-bp-wide: 1600px;
  --wb-z-pop: 200;
  --wb-z-scrim: 300;
  --wb-z-nav: 400;
  --wb-z-toast: 500;
  --wb-instant: 0.06s;
  --wb-fast: 0.12s;
  --wb-base: 0.2s;
  --wb-slow: 0.3s;
  --wb-ease: cubic-bezier(.165,.84,.44,1);
  --wb-bg: #FFFFFF;
  --wb-canvas: #F9F9F7;
  --wb-fill: #F3F3F0;
  --wb-hover: #F3F3F0;
  --wb-selected: #EDECE8;
  --wb-line: #EAE9E4;
  --wb-line-strong: #8C8880;
  --wb-pop-bg: #FFFFFF;
  --wb-ink: #151515;
  --wb-ink-2: #52514E;
  --wb-muted: #6D6B67;
  --wb-faint: #898781;
  --wb-blue: #171513;
  --wb-blue-bg: #FFFFFF;
  --wb-action: #171513;
  --wb-action-hover: #3D372C;
  --wb-on: #FFFFFF;
  --wb-success: #1F7A4D;
  --wb-success-bg: #EAF4EE;
  --wb-warning: #A15C07;
  --wb-warning-bg: #FBF2E4;
  --wb-warning-mark: #F5E4C6;
  --wb-danger: #B42318;
  --wb-danger-bg: #FBEBE9;
  --wb-info: #171513;
  --wb-info-bg: #FFFFFF;
  --wb-cat-1: #171513;
  --wb-cat-2: #0F7B7B;
  --wb-cat-3: #3B7D35;
  --wb-cat-4: #B25E09;
  --wb-cat-5: #C4421A;
  --wb-cat-6: #6E56CF;
  --wb-scrim: rgba(38,37,34,0.28);
}
.aham-workbench[data-theme="dark"] {
  color-scheme: dark;
  --wb-bg: #151515;
  --wb-canvas: #0B0B0B;
  --wb-fill: #20201F;
  --wb-hover: #20201F;
  --wb-selected: #2C2C2A;
  --wb-line: #2A2A28;
  --wb-line-strong: #6E6C66;
  --wb-pop-bg: #1A1A19;
  --wb-ink: #F5F5F3;
  --wb-ink-2: #C3C2B7;
  --wb-muted: #A5A49A;
  --wb-faint: #7B7974;
  --wb-blue: #FFB18F;
  --wb-blue-bg: #3A2419;
  --wb-action: #FF5A1F;
  --wb-action-hover: #FF7A4D;
  --wb-on: #FFFFFF;
  --wb-success: #6DBE8F;
  --wb-success-bg: #1C2A22;
  --wb-warning: #E0A84A;
  --wb-warning-bg: #2E2617;
  --wb-warning-mark: #4A3B1F;
  --wb-danger: #F08A7E;
  --wb-danger-bg: #33201D;
  --wb-info: #FFB18F;
  --wb-info-bg: #3A2419;
  --wb-cat-1: #FFB18F;
  --wb-cat-2: #4FB8B8;
  --wb-cat-3: #7DBB75;
  --wb-cat-4: #E0A84A;
  --wb-cat-5: #F08A6A;
  --wb-cat-6: #A797F0;
  --wb-scrim: rgba(0,0,0,0.5);
}
@media (prefers-color-scheme: dark) {
.aham-workbench:not([data-theme="light"]) {
  color-scheme: dark;
  --wb-bg: #151515;
  --wb-canvas: #0B0B0B;
  --wb-fill: #20201F;
  --wb-hover: #20201F;
  --wb-selected: #2C2C2A;
  --wb-line: #2A2A28;
  --wb-line-strong: #6E6C66;
  --wb-pop-bg: #1A1A19;
  --wb-ink: #F5F5F3;
  --wb-ink-2: #C3C2B7;
  --wb-muted: #A5A49A;
  --wb-faint: #7B7974;
  --wb-blue: #FFB18F;
  --wb-blue-bg: #3A2419;
  --wb-action: #FF5A1F;
  --wb-action-hover: #FF7A4D;
  --wb-on: #FFFFFF;
  --wb-success: #6DBE8F;
  --wb-success-bg: #1C2A22;
  --wb-warning: #E0A84A;
  --wb-warning-bg: #2E2617;
  --wb-warning-mark: #4A3B1F;
  --wb-danger: #F08A7E;
  --wb-danger-bg: #33201D;
  --wb-info: #FFB18F;
  --wb-info-bg: #3A2419;
  --wb-cat-1: #FFB18F;
  --wb-cat-2: #4FB8B8;
  --wb-cat-3: #7DBB75;
  --wb-cat-4: #E0A84A;
  --wb-cat-5: #F08A6A;
  --wb-cat-6: #A797F0;
  --wb-scrim: rgba(0,0,0,0.5);
}
}
@media print {
.aham-workbench:is([data-theme], :not([data-theme])) {
  color-scheme: light;
  --wb-bg: #FFFFFF;
  --wb-canvas: #F9F9F7;
  --wb-fill: #F3F3F0;
  --wb-hover: #F3F3F0;
  --wb-selected: #EDECE8;
  --wb-line: #EAE9E4;
  --wb-line-strong: #8C8880;
  --wb-pop-bg: #FFFFFF;
  --wb-ink: #151515;
  --wb-ink-2: #52514E;
  --wb-muted: #6D6B67;
  --wb-faint: #898781;
  --wb-blue: #171513;
  --wb-blue-bg: #FFFFFF;
  --wb-action: #171513;
  --wb-action-hover: #3D372C;
  --wb-on: #FFFFFF;
  --wb-success: #1F7A4D;
  --wb-success-bg: #EAF4EE;
  --wb-warning: #A15C07;
  --wb-warning-bg: #FBF2E4;
  --wb-warning-mark: #F5E4C6;
  --wb-danger: #B42318;
  --wb-danger-bg: #FBEBE9;
  --wb-info: #171513;
  --wb-info-bg: #FFFFFF;
  --wb-cat-1: #171513;
  --wb-cat-2: #0F7B7B;
  --wb-cat-3: #3B7D35;
  --wb-cat-4: #B25E09;
  --wb-cat-5: #C4421A;
  --wb-cat-6: #6E56CF;
  --wb-scrim: rgba(38,37,34,0.28);
}
}
/* ---- src/base.css ---- */
/* Opt-in profile. Existing .btn/.table/.track-web styles are untouched.
   Generic workbench classes use the wb- prefix; page-specific styles live next to each example. */
:where(.aham-workbench){display:grid;grid-template-columns:var(--wb-rail) minmax(0,1fr);height:100vh;height:100dvh;overflow:hidden;background:var(--wb-canvas);color:var(--wb-ink);font:var(--wb-body)/1.55 var(--wb-font);font-feature-settings:var(--wb-font-features);text-align:start;color-scheme:light}
:where(.aham-workbench) *{box-sizing:border-box}
:where(.aham-workbench) [hidden]{display:none!important}
:where(.aham-workbench) :is(h1,h2,h3,p){margin:0}
:where(.aham-workbench) :is(button,input,textarea,select){font:inherit;color:inherit}
:where(.aham-workbench) button{cursor:pointer}
:where(.aham-workbench) :focus-visible{outline:2px solid var(--wb-blue);outline-offset:2px}
:where(.aham-workbench) [aria-invalid=true]{outline:2px solid var(--wb-danger);outline-offset:-2px}
:where(.aham-workbench) svg{width:var(--wb-icon);height:var(--wb-icon);flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
:where(.aham-workbench) dl{margin:var(--wb-s3) 0 0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--wb-s2) var(--wb-s3)}
:where(.aham-workbench) dt{color:var(--wb-muted)}
:where(.aham-workbench) dd{margin:0}
:where(.aham-workbench) textarea{display:block;resize:vertical;min-height:var(--wb-s8);width:100%;border:0;background:var(--wb-fill);border-radius:var(--wb-radius);padding:var(--wb-s2);margin-block-start:var(--wb-s2);line-height:1.75}
:where(.aham-workbench) small{font-size:inherit;color:var(--wb-muted)}
/* Utilities */
:where(.aham-workbench).wb-bare{display:block;height:auto;overflow:visible;background:var(--wb-bg)}
:where(.aham-workbench) .wb-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* ---- src/shell.css ---- */
/* Shell: navigation sits on the panel tier; the content card is the white tier. No border, no resting shadow. */
:where(.aham-workbench) .wb-rail{display:flex;flex-direction:column;align-items:center;gap:var(--wb-s5);min-height:0;overflow-y:auto;padding:var(--wb-s4) var(--wb-s2);background:var(--wb-canvas)}
:where(.aham-workbench) .wb-brand{display:grid;place-items:center;width:var(--wb-s6);height:var(--wb-s6);font-size:var(--wb-title);font-weight:600;color:var(--wb-blue)}
:where(.aham-workbench) .wb-nav-item{display:flex;align-items:center;justify-content:center;gap:var(--wb-s2);background:transparent;border:0;border-radius:var(--wb-radius);width:var(--wb-nav-item);height:var(--wb-nav-item);color:var(--wb-muted)}
:where(.aham-workbench) a.wb-nav-item{text-decoration:none}
:where(.aham-workbench) .wb-crumbs a{color:inherit;text-decoration:none}
:where(.aham-workbench) .wb-crumbs a:hover{color:var(--wb-ink);text-decoration:underline;text-underline-offset:3px}
:where(.aham-workbench) .wb-nav-item[aria-current=page]{background:var(--wb-selected);color:var(--wb-ink)}
:where(.aham-workbench) .wb-nav-item span{display:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:where(.aham-workbench) .wb-nav-group{display:grid;gap:var(--wb-s1)}
:where(.aham-workbench) .wb-nav-foot{margin-block-start:auto;padding-block-start:var(--wb-s5)}
:where(.aham-workbench).expanded{grid-template-columns:var(--wb-nav) minmax(0,1fr)}
:where(.aham-workbench).expanded .wb-rail{align-items:stretch}
:where(.aham-workbench).expanded .wb-nav-item{justify-content:start;width:100%;padding-inline:var(--wb-s2)}
:where(.aham-workbench).expanded .wb-nav-item span{display:inline}
:where(.aham-workbench) .wb-main{grid-column:2;display:flex;flex-direction:column;min-width:0;min-height:0;margin:var(--wb-gutter) var(--wb-gutter) var(--wb-gutter) 0;border-radius:var(--wb-shell-radius);background:var(--wb-bg);overflow:hidden}
:where(.aham-workbench) .wb-scrim{position:fixed;inset:0;z-index:var(--wb-z-scrim);background:var(--wb-scrim)}
/* Header: one or two 40px rows. Row 1 = where am I; row 2 = count, filter, panel toggles, display options. */
:where(.aham-workbench) .wb-header{flex:none}
:where(.aham-workbench) .wb-header-row{display:flex;align-items:center;justify-content:space-between;gap:var(--wb-s3);height:var(--wb-header-row);padding:0 var(--wb-s4);border-bottom:var(--wb-hairline) solid var(--wb-line);color:var(--wb-muted)}
:where(.aham-workbench) :is(.wb-header-lead,.wb-header-trail){display:flex;align-items:center;gap:var(--wb-s2);min-width:0}
:where(.aham-workbench) .wb-header-lead{flex:1}
:where(.aham-workbench) .wb-crumbs{display:flex;align-items:center;gap:var(--wb-s3);min-width:0;overflow:hidden;white-space:nowrap}
:where(.aham-workbench) .wb-crumbs strong{font-weight:400;font-family:var(--wb-mono);font-feature-settings:normal}
:where(.aham-workbench) .wb-crumbs [aria-current=page]{color:var(--wb-ink)}
:where(.aham-workbench) .wb-count{color:var(--wb-muted);font-variant-numeric:tabular-nums}
:where(.aham-workbench) .wb-page-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--wb-s3);padding:var(--wb-s4);border-bottom:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) :is(.wb-page-head-lead,.wb-page-head-trail){display:flex;align-items:center;gap:var(--wb-s3);flex-wrap:wrap}
:where(.aham-workbench) h1{font-size:var(--wb-title);font-weight:500}
:where(.aham-workbench) :is(h2,h3){font-size:var(--wb-body);font-weight:600}
/* ---- src/controls.css ---- */
:where(.aham-workbench) .wb-icon-btn{display:inline-grid;place-items:center;flex:none;width:var(--wb-header-control);height:var(--wb-header-control);padding:0;border:0;border-radius:var(--wb-radius);background:transparent;color:var(--wb-muted)}
:where(.aham-workbench) .wb-icon-btn:hover{background:var(--wb-hover);color:var(--wb-ink)}
:where(.aham-workbench) .wb-icon-btn[aria-pressed=true]{background:var(--wb-selected);color:var(--wb-ink)}
:where(.aham-workbench) .wb-status{display:inline-flex;align-items:center;gap:var(--wb-dot);color:var(--wb-ink);white-space:nowrap}
:where(.aham-workbench) .wb-status b{width:var(--wb-dot);height:var(--wb-dot);border-radius:50%;background:var(--wb-muted)}
/* Risk: a value or a line in a status colour, with an icon and words that say what is wrong (rules/2-视觉.md 2.2).
   On panel surfaces the words turn ink and only the icon keeps the colour (ai.css). */
:where(.aham-workbench) .wb-risk{display:inline-flex;align-items:center;gap:var(--wb-s1);color:var(--wb-danger)}
:where(.aham-workbench) .wb-risk.warning{color:var(--wb-warning)}
:where(.aham-workbench) .wb-risk svg{width:var(--wb-s3);height:var(--wb-s3)}
:where(.aham-workbench) :is(.wb-meta,.wb-crumbs-meta){color:var(--wb-muted)}
:where(.aham-workbench) .wb-mono{font-family:var(--wb-mono);font-feature-settings:normal}
:where(.aham-workbench) .wb-note{display:block;color:var(--wb-muted);margin-block-start:var(--wb-s5)}
:where(.aham-workbench) .wb-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--wb-s2);border:0;border-radius:var(--wb-radius);background:var(--wb-bg);box-shadow:inset 0 0 0 1px var(--wb-line-strong);height:var(--wb-control);padding:0 var(--wb-s3);white-space:nowrap}
:where(.aham-workbench) a.wb-btn{color:var(--wb-ink);text-decoration:none}
:where(.aham-workbench) .wb-btn.sm{height:var(--wb-header-control);padding:0 var(--wb-s2)}
:where(.aham-workbench) .wb-btn:hover{background:var(--wb-hover)}
:where(.aham-workbench) .wb-btn.ghost{background:transparent;box-shadow:none;color:var(--wb-muted)}
:where(.aham-workbench) .wb-btn.ghost:hover{background:var(--wb-hover);color:var(--wb-ink)}
:where(.aham-workbench) .wb-btn.ghost[aria-pressed=true]{background:var(--wb-selected);color:var(--wb-ink)}
:where(.aham-workbench) .wb-btn.primary{background:var(--wb-action);box-shadow:none;color:var(--wb-on)}
:where(.aham-workbench) .wb-btn.primary:hover{background:var(--wb-action-hover)}
:where(.aham-workbench) button:disabled{opacity:.4;cursor:not-allowed}
:where(.aham-workbench) .wb-link{border:0;background:transparent;color:var(--wb-muted);padding:var(--wb-s1);min-height:var(--wb-s6)}
:where(.aham-workbench) .wb-tabs-bar{display:flex;justify-content:space-between;align-items:center;border-bottom:var(--wb-hairline) solid var(--wb-line);gap:var(--wb-s2)}
:where(.aham-workbench) .wb-tabs{display:flex;gap:var(--wb-s5)}
:where(.aham-workbench) .wb-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;padding:var(--wb-s2) 0;color:var(--wb-muted);white-space:nowrap}
:where(.aham-workbench) .wb-tabs button.active{color:var(--wb-ink);border-bottom-color:var(--wb-blue)}
:where(.aham-workbench) .wb-seg{display:inline-flex;gap:var(--wb-s1);background:var(--wb-fill);padding:var(--wb-s1);border-radius:var(--wb-radius)}
:where(.aham-workbench) .wb-seg button{background:transparent;border:0;border-radius:var(--wb-radius-sm);padding:var(--wb-s1) var(--wb-s2);color:var(--wb-muted)}
:where(.aham-workbench) .wb-seg button[aria-pressed=true]{background:var(--wb-selected);color:var(--wb-ink);font-weight:500}
:where(.aham-workbench) .wb-seg.sm{height:var(--wb-header-control);padding:0;gap:0}
:where(.aham-workbench) .wb-seg.sm button{height:100%;padding:0 var(--wb-s2)}
:where(.aham-workbench) .wb-seg button{white-space:nowrap}
:where(.aham-workbench) .wb-btn.icon-only{padding:0;width:var(--wb-header-control)}
:where(.aham-workbench) .wb-btn{position:relative}
:where(.aham-workbench) .wb-dot{position:absolute;top:var(--wb-s1);right:var(--wb-s1);width:var(--wb-dot);height:var(--wb-dot);border-radius:50%;background:var(--wb-ink)}
:where(.aham-workbench) .wb-btn.danger{background:var(--wb-bg);color:var(--wb-danger);box-shadow:inset 0 0 0 1px var(--wb-line)}
:where(.aham-workbench) .wb-btn.danger:hover{background:var(--wb-danger-bg)}
:where(.aham-workbench) .wb-btn.ghost.danger{background:transparent;color:var(--wb-danger);box-shadow:none}
:where(.aham-workbench) .wb-btn.ghost.danger:hover{background:var(--wb-hover)}
:where(.aham-workbench) .wb-switch{display:inline-flex;align-items:center;gap:var(--wb-s2);cursor:pointer;color:var(--wb-ink)}
:where(.aham-workbench) .wb-switch input{position:absolute;opacity:0;width:1px;height:1px}
:where(.aham-workbench) .wb-switch span{position:relative;width:28px;height:16px;border-radius:var(--wb-radius-pill);background:var(--wb-selected);transition:background var(--wb-fast) var(--wb-ease)}
:where(.aham-workbench) .wb-switch span::after{content:'';position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--wb-bg);transition:transform var(--wb-fast) var(--wb-ease)}
:where(.aham-workbench) .wb-switch input:checked+span{background:var(--wb-ink)}
:where(.aham-workbench) .wb-switch input:checked+span::after{transform:translateX(12px)}
:where(.aham-workbench) .wb-switch input:focus-visible+span{outline:2px solid var(--wb-blue);outline-offset:2px}
/* Hit areas: 28px header controls keep their look; a transparent extension brings the target to --wb-hit (rules/9-验收.md 9.2). */
:where(.aham-workbench) :is(.wb-icon-btn,.wb-btn.sm,.wb-chip>button){position:relative}
:where(.aham-workbench) :is(.wb-icon-btn,.wb-btn.sm,.wb-chip>button)::after{content:'';position:absolute;inset:calc((var(--wb-header-control) - var(--wb-hit)) / 2) 0}
:where(.aham-workbench) .wb-icon-btn::after{inset:calc((var(--wb-header-control) - var(--wb-hit)) / 2)}
/* Status: a 6px dot in the status colour plus words. Tones: neutral (default), draft, wait, info, success, warning, danger. */
:where(.aham-workbench) .wb-status[data-tone=info] b{background:var(--wb-info)}
:where(.aham-workbench) .wb-status[data-tone=success] b{background:var(--wb-success)}
:where(.aham-workbench) .wb-status[data-tone=warning] b{background:var(--wb-warning)}
:where(.aham-workbench) .wb-status[data-tone=danger] b{background:var(--wb-danger)}
:where(.aham-workbench) .wb-status[data-tone=draft] b{background:transparent;box-shadow:inset 0 0 0 1px var(--wb-muted)}
/* Wait: a hollow ring in the info colour. The step is someone else's, or has not started (rules/2-视觉.md 2.2). */
:where(.aham-workbench) .wb-status[data-tone=wait] b{background:transparent;box-shadow:inset 0 0 0 1.5px var(--wb-info)}
:where(.aham-workbench) .wb-status svg{width:14px;height:14px}
:where(.aham-workbench) .wb-status[data-tone=success] svg{color:var(--wb-success)}
:where(.aham-workbench) .wb-status[data-tone=warning] svg{color:var(--wb-warning)}
:where(.aham-workbench) .wb-status[data-tone=danger] svg{color:var(--wb-danger)}
:where(.aham-workbench) .wb-status[data-tone=info] svg{color:var(--wb-info)}
/* Category colours: small icons, tags, file types, chart series. Never a row fill or a large block. */
:where(.aham-workbench) [data-cat="1"]{--wb-cat:var(--wb-cat-1)}
:where(.aham-workbench) [data-cat="2"]{--wb-cat:var(--wb-cat-2)}
:where(.aham-workbench) [data-cat="3"]{--wb-cat:var(--wb-cat-3)}
:where(.aham-workbench) [data-cat="4"]{--wb-cat:var(--wb-cat-4)}
:where(.aham-workbench) [data-cat="5"]{--wb-cat:var(--wb-cat-5)}
:where(.aham-workbench) [data-cat="6"]{--wb-cat:var(--wb-cat-6)}
:where(.aham-workbench) .wb-cat-icon{color:var(--wb-cat,var(--wb-muted))}
:where(.aham-workbench) .wb-tag{display:inline-flex;align-items:center;gap:var(--wb-s1);height:20px;padding:0 6px;border-radius:var(--wb-radius-sm);background:color-mix(in srgb,var(--wb-cat,var(--wb-muted)) 12%,transparent);color:var(--wb-ink);font-size:var(--wb-text-xs);white-space:nowrap}
:where(.aham-workbench) .wb-tag::before{content:'';width:6px;height:6px;border-radius:2px;background:var(--wb-cat,var(--wb-muted))}
:where(.aham-workbench) .wb-tag.is-plain::before{display:none}
/* Field: text box, select and textarea share one look, 32px with a 1px line; .sm is 28px for toolbars and popovers. */
:where(.aham-workbench) .wb-field{display:inline-block;vertical-align:middle;box-sizing:border-box;margin:0;font:inherit;line-height:20px;height:var(--wb-control);min-width:0;padding:0 var(--wb-s2);border:1px solid var(--wb-line-strong);border-radius:var(--wb-radius);background:var(--wb-bg);color:var(--wb-ink)}
:where(.aham-workbench) .wb-field.sm{height:var(--wb-header-control)}
:where(.aham-workbench) select.wb-field{padding-inline-end:var(--wb-s1)}
:where(.aham-workbench) textarea.wb-field{height:auto;min-height:calc(var(--wb-control) * 2);padding-block:5px;line-height:20px;resize:vertical}
:where(.aham-workbench) .wb-field:hover{border-color:var(--wb-muted)}
:where(.aham-workbench) .wb-field:focus{outline:0;border-color:var(--wb-blue);box-shadow:0 0 0 3px var(--wb-blue-bg)}
:where(.aham-workbench) .wb-field[aria-invalid=true]{outline:0;border-color:var(--wb-danger)}
:where(.aham-workbench) .wb-field:disabled{background:var(--wb-fill);color:var(--wb-faint);cursor:not-allowed}
:where(.aham-workbench) .wb-field::placeholder{color:var(--wb-muted)}
:where(.aham-workbench) .wb-field.is-number{text-align:end;font-family:var(--wb-mono);font-feature-settings:normal}
:where(.aham-workbench) input[type=checkbox],:where(.aham-workbench) input[type=radio]{width:14px;height:14px;margin:0;accent-color:var(--wb-ink)}
:where(.aham-workbench) .wb-choice{display:inline-flex;align-items:center;gap:var(--wb-s2);min-height:var(--wb-hit);cursor:pointer}
:where(.aham-workbench) .wb-choices{display:flex;flex-wrap:wrap;gap:0 var(--wb-s5)}
:where(.aham-workbench) .wb-choices.is-column{flex-direction:column}
/* ---- src/table.css ---- */
/* position:relative keeps visually hidden text inside table cells within the scroll area. */
:where(.aham-workbench) .wb-table-scroll{position:relative;overflow-x:auto;max-width:100%}
:where(.aham-workbench) .wb-table{width:100%;min-width:var(--wb-table-min);border-collapse:collapse;table-layout:fixed}
:where(.aham-workbench) .wb-table th{font-weight:500;color:var(--wb-muted);text-align:start;background:var(--wb-bg);height:var(--wb-row);white-space:nowrap}
:where(.aham-workbench) .wb-table :is(th,td){padding:0 var(--wb-s2);border-bottom:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-table td{height:var(--wb-row);vertical-align:middle;white-space:nowrap}
:where(.aham-workbench) .wb-table tr:hover td{background:var(--wb-hover)}
:where(.aham-workbench) .wb-table .number{text-align:end;font-family:var(--wb-mono);font-feature-settings:normal;font-variant-numeric:tabular-nums}
:where(.aham-workbench) .wb-table th.number{font-family:var(--wb-font);font-feature-settings:var(--wb-font-features)}
:where(.aham-workbench) .wb-cell-title{display:block;overflow:hidden;text-overflow:ellipsis}
:where(.aham-workbench) .wb-cell-sub{display:none;color:var(--wb-muted);font-family:var(--wb-mono);font-feature-settings:normal}
:where(.aham-workbench) .wb-table input{display:block;text-align:end;font-family:var(--wb-mono);font-feature-settings:normal;border:1px solid transparent;border-radius:var(--wb-radius-sm);width:100%;height:var(--wb-field);padding:0 var(--wb-s1);background:transparent;appearance:textfield}
:where(.aham-workbench) .wb-table input::-webkit-inner-spin-button{appearance:none}
:where(.aham-workbench) .wb-table input:hover{background:var(--wb-bg);border-color:var(--wb-line)}
:where(.aham-workbench) .wb-table tfoot td{height:var(--wb-header-row);font-weight:500;border-bottom:0}
:where(.aham-workbench) .wb-table-hint{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--wb-s2);color:var(--wb-muted);padding:var(--wb-s1) 0 var(--wb-s4)}
:where(.aham-workbench) .wb-sort{display:inline-flex;align-items:center;gap:var(--wb-s1);max-width:100%;height:100%;padding:0;border:0;background:transparent;font-weight:inherit;color:inherit}
:where(.aham-workbench) .wb-sort svg{width:var(--wb-s3);height:var(--wb-s3)}
:where(.aham-workbench) .wb-row-link{display:block;max-width:100%;padding:0;border:0;background:transparent;text-align:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:where(.aham-workbench) .wb-row-link:hover{text-decoration:underline;text-underline-offset:3px}
/* Tree table: indent per level, a 20px toggle, parent subtotals at weight 500. */
:where(.aham-workbench) .wb-table td.wb-tree-name{padding-inline-start:calc(var(--wb-s2) + (var(--wb-level,1) - 1) * var(--wb-s4))}
:where(.aham-workbench) .wb-tree-name>span{display:inline-flex;align-items:center;gap:var(--wb-s1);max-width:100%;min-width:0}
:where(.aham-workbench) .wb-tree-toggle,:where(.aham-workbench) .wb-tree-spacer{display:inline-grid;place-items:center;flex:none;width:var(--wb-s5);height:var(--wb-s5);padding:0;border:0;border-radius:var(--wb-radius-sm);background:transparent;color:var(--wb-muted)}
:where(.aham-workbench) .wb-tree-toggle:hover{background:var(--wb-hover);color:var(--wb-ink)}
:where(.aham-workbench) .wb-tree-toggle svg{width:var(--wb-s3);height:var(--wb-s3);transition:transform var(--wb-fast) var(--wb-ease)}
:where(.aham-workbench) .wb-tree-toggle[aria-expanded=false] svg{transform:rotate(-90deg)}
:where(.aham-workbench) .wb-tree-table tr:has(.wb-tree-toggle) td{font-weight:500}
:where(.aham-workbench) .wb-table tr[data-dimmed]>td{color:var(--wb-muted)}
:where(.aham-workbench) .wb-table tr[data-dimmed] :is(button,input,select,a){color:var(--wb-ink)}
/* ---- src/list.css ---- */
/* List page (7.2 P2): filter row, grouped table with sticky headers, bulk mode, pager. */
:where(.aham-workbench) .wb-list{display:flex;flex-direction:column;min-width:0;min-height:0}
:where(.aham-workbench) .wb-list-scroll{flex:1;min-height:0;overflow:auto}
:where(.aham-workbench) .wb-list-scroll>.wb-note{margin:var(--wb-s4)}
:where(.aham-workbench) .wb-filter-bar{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--wb-s2);padding:var(--wb-s2) var(--wb-s4);border-bottom:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-filter-chips{display:flex;flex-wrap:wrap;gap:var(--wb-s2);min-width:0}
:where(.aham-workbench) .wb-chip{display:inline-flex;align-items:stretch;max-width:100%;height:var(--wb-header-control);border-radius:var(--wb-radius);background:var(--wb-bg);box-shadow:inset 0 0 0 1px var(--wb-line)}
:where(.aham-workbench) .wb-chip>*{display:inline-flex;align-items:center;gap:var(--wb-s1);min-width:0;padding:0 var(--wb-s2);border:0;background:transparent;white-space:nowrap}
:where(.aham-workbench) .wb-chip>*+*{box-shadow:inset 1px 0 0 var(--wb-line)}
:where(.aham-workbench) .wb-chip>button:hover{background:var(--wb-hover)}
:where(.aham-workbench) .wb-chip-field{font-weight:500}
:where(.aham-workbench) .wb-chip-op{color:var(--wb-muted)}
:where(.aham-workbench) .wb-chip-value span{overflow:hidden;text-overflow:ellipsis;max-width:240px}
:where(.aham-workbench) .wb-chip-remove{justify-content:center;width:var(--wb-header-control);padding:0;color:var(--wb-muted)}
:where(.aham-workbench) .wb-toggle-chips{display:flex;flex-wrap:wrap;gap:var(--wb-s1)}
:where(.aham-workbench) .wb-toggle-chip{height:var(--wb-s5);padding:0 var(--wb-s2);border:0;border-radius:var(--wb-radius);background:transparent;box-shadow:inset 0 0 0 1px var(--wb-line);color:var(--wb-muted);font-size:var(--wb-body)}
:where(.aham-workbench) .wb-toggle-chip[aria-pressed=true]{background:var(--wb-selected);box-shadow:none;color:var(--wb-ink)}
/* List rows: header, group rows and data rows share one height (rules/4-页面.md 4.3); the header has no fill of its own (rules/2-视觉.md 2.8) and
   uses the content surface only so that it covers rows scrolling beneath it. */
:where(.aham-workbench) .wb-list[data-list-density=compact]{--wb-row:var(--wb-row-compact)}
:where(.aham-workbench) .wb-list-table thead th{position:sticky;top:0;z-index:2;height:var(--wb-row)}
:where(.aham-workbench) .wb-list-table td{height:var(--wb-row)}
:where(.aham-workbench) .wb-list-table tr[data-selected] td{background:var(--wb-selected)}
:where(.aham-workbench) .wb-list-table :is(th,td).wb-check{padding:0;text-align:center}
:where(.aham-workbench) .wb-list-table :is(th,td):last-child{padding-inline-end:var(--wb-s4)}
:where(.aham-workbench) .wb-check-hit{display:grid;place-items:center;min-height:calc(var(--wb-row) - 1px);cursor:pointer}
:where(.aham-workbench) .wb-list-table input[type=checkbox]{display:inline-block;width:auto;height:auto;margin:0;padding:0;border:0;appearance:auto;accent-color:var(--wb-ink);vertical-align:middle}
:where(.aham-workbench) .wb-group-head th{position:sticky;top:var(--wb-row);z-index:1;height:var(--wb-row);background:var(--wb-bg);color:var(--wb-ink);font-weight:500}
:where(.aham-workbench) .wb-group-toggle{display:inline-flex;align-items:center;gap:var(--wb-s2);height:var(--wb-header-control);padding:0 var(--wb-s1);border:0;border-radius:var(--wb-radius);background:transparent;font-weight:500}
:where(.aham-workbench) .wb-group-toggle:hover{background:var(--wb-hover)}
:where(.aham-workbench) .wb-group-toggle svg{transition:transform var(--wb-fast) var(--wb-ease)}
:where(.aham-workbench) .wb-group-toggle[aria-expanded=false] svg{transform:rotate(-90deg)}
:where(.aham-workbench) .wb-group-count{color:var(--wb-muted);font-weight:400;font-variant-numeric:tabular-nums}
:where(.aham-workbench) .wb-empty{display:grid;justify-items:start;gap:var(--wb-s2);padding:var(--wb-s7) var(--wb-s4)}
:where(.aham-workbench) .wb-empty strong{font-size:var(--wb-text-base);font-weight:500}
:where(.aham-workbench) .wb-empty p{color:var(--wb-muted)}
:where(.aham-workbench) .wb-empty>div{display:flex;flex-wrap:wrap;gap:var(--wb-s2)}
:where(.aham-workbench) .wb-pager{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--wb-s3);min-height:var(--wb-header-row);padding:0 var(--wb-s4);border-top:var(--wb-hairline) solid var(--wb-line);color:var(--wb-muted);font-variant-numeric:tabular-nums}
:where(.aham-workbench) .wb-pager>div{display:flex;align-items:center;gap:var(--wb-s2)}
:where(.aham-workbench) .wb-bulk-count{color:var(--wb-ink);font-variant-numeric:tabular-nums}
:where(.aham-workbench) .wb-search{display:flex;align-items:center;gap:var(--wb-s1);width:var(--wb-search-width);height:var(--wb-header-control);padding:0 var(--wb-s2);border-radius:var(--wb-radius);background:var(--wb-hover)}
:where(.aham-workbench) .wb-search input{flex:1;min-width:0;height:100%;padding:0;border:0;background:transparent}
/* List keyboard focus (7.2 P3): one row is in the tab order; ↑↓ move it, Space previews, Enter opens. */
:where(.aham-workbench) :is(.wb-list-table,.wb-tree-table) tbody tr[data-id]{outline:0}
:where(.aham-workbench) :is(.wb-list-table,.wb-tree-table) tbody tr[data-id]:focus-visible td{background:var(--wb-hover);box-shadow:inset 0 1px 0 var(--wb-blue),inset 0 -1px 0 var(--wb-blue)}
:where(.aham-workbench) :is(.wb-list-table,.wb-tree-table) tbody tr[data-id]:focus-visible td:first-child{box-shadow:inset 2px 0 0 var(--wb-blue),inset 0 1px 0 var(--wb-blue),inset 0 -1px 0 var(--wb-blue)}
:where(.aham-workbench) .wb-list-table tbody tr[data-previewing] td{background:var(--wb-hover)}
:where(.aham-workbench) .wb-chip>:first-child{border-start-start-radius:inherit;border-end-start-radius:inherit}
:where(.aham-workbench) .wb-chip>:last-child{border-start-end-radius:inherit;border-end-end-radius:inherit}
/* Worklist row actions (rules/4-页面.md 4.2): text buttons at the row end; a reason for a disabled one sits before it. */
:where(.aham-workbench) .wb-row-buttons{display:flex;align-items:center;justify-content:flex-end;gap:var(--wb-s2)}
:where(.aham-workbench) .wb-row-note{color:var(--wb-muted);font-size:var(--wb-text-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
:where(.aham-workbench) .wb-row-link{color:var(--wb-ink);text-decoration:none}
:where(.aham-workbench) .wb-row-link:hover{text-decoration:underline}
:where(.aham-workbench) .wb-list-table :is(th,td):first-child:not(.wb-check){padding-inline-start:var(--wb-s4)}
/* ---- src/document.css ---- */
/* Scroll areas: header rows stay put, the body scrolls. Side panels scroll on their own. */
:where(.aham-workbench) .wb-layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) auto}
:where(.aham-workbench) .wb-layout>.wb-document{min-height:0;overflow:auto}
:where(.aham-workbench) .wb-document{min-width:0;padding:var(--wb-s4)}
:where(.aham-workbench) .wb-panel{width:var(--wb-panel-narrow);min-width:0;min-height:0;overflow:auto;background:var(--wb-bg);border-inline-start:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-panel[data-size=wide]{width:var(--wb-panel-wide)}
:where(.aham-workbench) .wb-peek{display:grid;align-content:start;gap:var(--wb-s3);padding:var(--wb-s4)}
:where(.aham-workbench) .wb-peek h2{font-size:var(--wb-title);font-weight:500}
:where(.aham-workbench) .wb-section-head{display:flex;align-items:center;justify-content:space-between;margin-block-end:var(--wb-s3);gap:var(--wb-s2)}
:where(.aham-workbench) .wb-section-head>span{color:var(--wb-muted)}
:where(.aham-workbench) .wb-toolbar{display:flex;justify-content:space-between;align-items:center;padding:var(--wb-s2) 0;color:var(--wb-muted);gap:var(--wb-s2)}
:where(.aham-workbench) .wb-sep{padding-inline:var(--wb-s2)}
:where(.aham-workbench) .wb-find{display:flex;align-items:center;gap:var(--wb-s2);max-width:40%}
:where(.aham-workbench) .wb-find input{background:transparent;width:100%;min-width:0;border:0;padding:var(--wb-s1)}
:where(.aham-workbench) .wb-context{background:var(--wb-bg);padding:var(--wb-s4);min-width:0;border-inline-start:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-context>section{padding-block-end:var(--wb-s5);margin-block-end:var(--wb-s5);border-bottom:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-context>section:last-child{border:0;padding:0;margin:0}
:where(.aham-workbench) .wb-total-label{color:var(--wb-muted);margin:var(--wb-s4) 0 var(--wb-s2)}
:where(.aham-workbench) .wb-total{font:500 var(--wb-total)/1.4 var(--wb-mono);overflow-wrap:anywhere}
:where(.aham-workbench) .wb-context dd{text-align:end;font-family:var(--wb-mono);font-feature-settings:normal}
:where(.aham-workbench) :is(.wb-summary-foot,.wb-payment>div){display:flex;align-items:center;justify-content:space-between;gap:var(--wb-s2);margin-block-start:var(--wb-s3)}
:where(.aham-workbench) .wb-summary-foot{color:var(--wb-muted)}
:where(.aham-workbench) .wb-payment strong{font-family:var(--wb-mono);font-feature-settings:normal;font-weight:400}
:where(.aham-workbench) .wb-approval ol{list-style:none;margin:var(--wb-s3) 0 0;padding:0}
:where(.aham-workbench) .wb-approval li{display:flex;gap:var(--wb-s3);padding-block-end:var(--wb-s4)}
:where(.aham-workbench) .wb-step-dot{width:var(--wb-dot);height:var(--wb-dot);border:1px solid var(--wb-muted);border-radius:50%;margin-block-start:var(--wb-s2);flex:none}
:where(.aham-workbench) .wb-approval .done .wb-step-dot{background:var(--wb-muted)}
:where(.aham-workbench) .wb-approval small{display:block}
:where(.aham-workbench) .wb-history p{margin-block-start:var(--wb-s3)}
:where(.aham-workbench) .wb-history>span{display:block;color:var(--wb-muted)}
:where(.aham-workbench) .wb-feedback:not(:empty){margin-block-start:var(--wb-s3);padding:var(--wb-s2) var(--wb-s3);background:var(--wb-fill);border-radius:var(--wb-radius)}
:where(.aham-workbench)[data-density=compact]{--wb-row:var(--wb-row-compact)}
:where(.aham-workbench)[data-density=detail]{--wb-row:var(--wb-row-double)}
:where(.aham-workbench)[data-density=detail] .wb-cell-sub{display:block}
:where(.aham-workbench) .wb-list>.wb-feedback:not(:empty){margin:var(--wb-s2) var(--wb-s4) 0}
/* Document page (rules/5-单据.md). One continuous white page: a sticky head with the title, status and the page's actions,
   then sections separated by space and a 14px heading. No cards, no tinted blocks, no coloured bars. The same rows show
   text in read mode and controls in edit mode; labels sit above values in both modes, so nothing moves when the mode changes. */
:where(.aham-workbench) .wb-document.is-page{padding:0 0 var(--wb-s8);container-type:inline-size}
:where(.aham-workbench) .wb-doc-head{position:sticky;top:0;z-index:var(--wb-z-pop);display:grid;gap:var(--wb-s4);padding:var(--wb-s5) var(--wb-page-gutter) 0;background:var(--wb-bg);border-bottom:var(--wb-hairline) solid transparent}
:where(.aham-workbench) .wb-doc-headline{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--wb-s5)}
:where(.aham-workbench) .wb-doc-head:not(:has(.wb-anchors)){padding-block-end:var(--wb-s4)}
/* Key facts (Fiori header facets): up to five label and value pairs, read only. They fold away once the page scrolls. */
:where(.aham-workbench) .wb-doc-facts{display:flex;flex-wrap:wrap;gap:var(--wb-s2) var(--wb-s6);margin:0}
:where(.aham-workbench) .wb-doc-facts>div{display:grid;gap:2px;min-width:0}
:where(.aham-workbench) .wb-doc-facts dt{color:var(--wb-muted);font-size:var(--wb-text-xs)}
:where(.aham-workbench) .wb-doc-facts dd{margin:0;font-weight:500;overflow-wrap:anywhere}
:where(.aham-workbench) .wb-doc-facts dd.is-amount{font-family:var(--wb-mono);font-feature-settings:normal}
:where(.aham-workbench) .wb-doc-head.is-stuck .wb-doc-facts{display:none}
/* Anchor bar: one button per section under the head; the section on screen is underlined like a tab. */
:where(.aham-workbench) .wb-anchors{display:flex;gap:var(--wb-s5);overflow-x:auto;scrollbar-width:none}
:where(.aham-workbench) .wb-anchors button{position:relative;flex:none;height:var(--wb-header-row);padding:0;border:0;background:transparent;color:var(--wb-muted);white-space:nowrap}
:where(.aham-workbench) .wb-anchors button:hover{color:var(--wb-ink)}
:where(.aham-workbench) .wb-anchors button[aria-current]{color:var(--wb-ink);font-weight:500}
:where(.aham-workbench) .wb-anchors button[aria-current]::after{content:'';position:absolute;inset-inline:0;bottom:0;height:2px;background:var(--wb-blue)}
/* Footer toolbar (Fiori): only in edit and create mode, stuck to the bottom of the page. Message button and draft
   state on the left, 取消 and the primary button on the right. */
:where(.aham-workbench) .wb-doc-foot{position:sticky;bottom:0;z-index:var(--wb-z-pop);display:flex;align-items:center;gap:var(--wb-s2);min-height:var(--wb-row-double);margin-block-start:var(--wb-s6);padding:0 var(--wb-page-gutter);background:var(--wb-bg);border-top:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-doc-foot>.wb-spacer{flex:1}
:where(.aham-workbench) .wb-draft-state{color:var(--wb-muted)}
:where(.aham-workbench) [data-mode=edit] .wb-document.is-page,:where(.aham-workbench) .wb-document.is-page[data-mode=edit]{padding-block-end:0}
:where(.aham-workbench) .wb-doc-head.is-stuck{border-bottom-color:var(--wb-line)}
:where(.aham-workbench) .wb-doc-title{display:grid;gap:var(--wb-s2);min-width:0}
:where(.aham-workbench) .wb-doc-title h1{font-size:var(--wb-detail-title);font-weight:600;line-height:1.3;overflow-wrap:anywhere}
:where(.aham-workbench) .wb-doc-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--wb-s1) var(--wb-s4);color:var(--wb-muted)}
:where(.aham-workbench) .wb-doc-meta .wb-mono{color:var(--wb-muted)}
:where(.aham-workbench) .wb-doc-actions{display:flex;flex:none;align-items:center;gap:var(--wb-s2);padding-block-start:2px}
:where(.aham-workbench) .wb-doc-actions .wb-mode-note{color:var(--wb-muted);margin-inline-end:var(--wb-s1)}
:where(.aham-workbench) .wb-mode-note{color:var(--wb-muted)}
:where(.aham-workbench) .wb-doc-body{display:grid;gap:var(--wb-s6);padding:var(--wb-s2) var(--wb-page-gutter) 0}
:where(.aham-workbench) .wb-doc-section{min-width:0}
:where(.aham-workbench) .wb-doc-section h2:focus{outline:none}
:where(.aham-workbench) .wb-doc-section>.wb-section-head{min-height:var(--wb-header-control);margin-block-end:var(--wb-s4)}
:where(.aham-workbench) .wb-doc-section h2{font-size:var(--wb-text-base);font-weight:600}
:where(.aham-workbench) .wb-strip{display:flex;align-items:flex-start;gap:var(--wb-s2);padding:var(--wb-s2) var(--wb-s3);border-radius:var(--wb-radius);background:var(--wb-fill);color:var(--wb-ink);line-height:20px}
:where(.aham-workbench) .wb-strip>svg{margin-block-start:2px;color:var(--wb-muted)}
:where(.aham-workbench) .wb-strip[data-tone=info]{background:var(--wb-info-bg)}
:where(.aham-workbench) .wb-strip[data-tone=info]>svg{color:var(--wb-info)}
:where(.aham-workbench) .wb-strip[data-tone=success]{background:var(--wb-success-bg)}
:where(.aham-workbench) .wb-strip[data-tone=success]>svg{color:var(--wb-success)}
:where(.aham-workbench) .wb-strip[data-tone=warning]{background:var(--wb-warning-bg)}
:where(.aham-workbench) .wb-strip[data-tone=warning]>svg{color:var(--wb-warning)}
:where(.aham-workbench) .wb-strip[data-tone=danger]{background:var(--wb-danger-bg)}
:where(.aham-workbench) .wb-strip[data-tone=danger]>svg{color:var(--wb-danger)}
:where(.aham-workbench) .wb-strip>.wb-grow{flex:1;min-width:0}
/* Form: two columns up to form-max, one column below bp-form (container query in layout.css.in). Label above the value,
   8px apart; required fields get an asterisk in edit mode only. Long text and composite conditions take a full row. */
:where(.aham-workbench) .wb-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--wb-s4) var(--wb-s5);max-width:var(--wb-form-max)}
:where(.aham-workbench) .wb-form-grid.is-wide{max-width:none;grid-template-columns:repeat(3,minmax(0,1fr))}
:where(.aham-workbench) .wb-form-row{display:grid;align-content:start;gap:var(--wb-s1);min-width:0}
:where(.aham-workbench) .wb-form-row.is-full{grid-column:1 / -1}
:where(.aham-workbench) .wb-form-label{color:var(--wb-ink-2);line-height:20px;overflow-wrap:anywhere}
:where(.aham-workbench) .wb-form-required{color:var(--wb-danger);margin-inline-start:2px}
:where(.aham-workbench) .wb-form-hint{color:var(--wb-muted);font-size:var(--wb-text-xs);line-height:18px}
:where(.aham-workbench) .wb-form-hint.is-error{color:var(--wb-danger)}
:where(.aham-workbench) .wb-form-value{position:relative;display:flex;align-items:center;gap:var(--wb-s1);min-height:var(--wb-control);min-width:0}
:where(.aham-workbench) [data-mode=read] .wb-form-value{align-items:flex-start;padding-block:6px}
:where(.aham-workbench) [data-mode=read] .wb-form-value[tabindex]:focus-visible{outline:2px solid var(--wb-blue);outline-offset:2px;border-radius:var(--wb-radius-sm)}
:where(.aham-workbench) .wb-value{line-height:20px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
:where(.aham-workbench) .wb-value.is-editable{cursor:text}
:where(.aham-workbench) .wb-value.is-check{background:var(--wb-warning-mark);border-radius:var(--wb-radius-sm);padding-inline:var(--wb-s1);-webkit-box-decoration-break:clone;box-decoration-break:clone}
:where(.aham-workbench) .wb-value.is-missing{color:var(--wb-danger)}
:where(.aham-workbench) .wb-value.is-empty{color:var(--wb-muted)}
:where(.aham-workbench) .wb-source{flex:none;width:20px;height:20px;display:inline-grid;place-items:center;border-radius:var(--wb-radius-sm);color:var(--wb-muted);cursor:help}
:where(.aham-workbench) .wb-source:is(:hover,:focus-visible){background:var(--wb-hover);outline:none}
:where(.aham-workbench) .wb-source svg{width:14px;height:14px}
/* Edit controls are .wb-field (controls.css). Here only their width inside a form row and a table cell; a unit never wraps. */
:where(.aham-workbench) .wb-edit{flex:1;min-width:0;display:flex;align-items:center;gap:var(--wb-s2)}
:where(.aham-workbench) .wb-edit.is-groups{flex-wrap:wrap}
:where(.aham-workbench) .wb-edit-group{display:inline-flex;align-items:center;gap:var(--wb-s1);white-space:nowrap;max-width:100%}
:where(.aham-workbench) .wb-edit-group.is-fill{flex:1 1 140px;min-width:0}
:where(.aham-workbench) .wb-edit>.wb-field,:where(.aham-workbench) .wb-edit>.wb-choices{flex:1 1 auto;width:100%}
:where(.aham-workbench) .wb-edit-group>.wb-field{width:auto}
/* A textarea in a document grows with its text (aham.js), so it starts one row high and never shows a scrollbar. */
:where(.aham-workbench) .wb-edit>textarea.wb-field{min-height:var(--wb-control);resize:none;overflow:hidden}
:where(.aham-workbench) .wb-edit .wb-unit{flex:none}
:where(.aham-workbench) .wb-unit{flex:none;color:var(--wb-muted);white-space:nowrap}
:where(.aham-workbench) .wb-table .wb-field{height:var(--wb-field);padding-inline:var(--wb-s1)}
/* Value state: an error has a red line, a warning an amber line; the message floats under the value while it has focus. */
:where(.aham-workbench) [data-state=error] .wb-field{border-color:var(--wb-danger)}
:where(.aham-workbench) [data-state=warning] .wb-field{border-color:var(--wb-warning)}
:where(.aham-workbench) .wb-value-state{display:none;position:absolute;inset-inline-start:0;top:calc(100% + 4px);z-index:var(--wb-z-pop);min-width:240px;max-width:var(--wb-pop-max);padding:var(--wb-s1) var(--wb-s2);border-radius:var(--wb-radius);box-shadow:var(--wb-shadow-pop);line-height:20px}
:where(.aham-workbench) [data-state]:focus-within>.wb-value-state{display:block}
:where(.aham-workbench) [data-state=warning]>.wb-value-state{background:var(--wb-warning-bg);color:var(--wb-ink)}
:where(.aham-workbench) [data-state=error]>.wb-value-state{background:var(--wb-danger-bg);color:var(--wb-danger)}
/* Table inside a document: the toolbar is as wide as the table; the table sits in a 1px box with a tinted header row
   and scrolls sideways inside the box below its minimum width. */
:where(.aham-workbench) .wb-table-block{min-width:0}
:where(.aham-workbench) .wb-table-toolbar{display:flex;align-items:center;gap:var(--wb-s2);min-height:var(--wb-header-control);margin-block-end:var(--wb-s3)}
:where(.aham-workbench) .wb-table-toolbar h2{font-size:var(--wb-text-base);font-weight:600}
:where(.aham-workbench) .wb-table-toolbar>.wb-spacer{flex:1}
:where(.aham-workbench) .wb-table-toolbar .wb-meta{color:var(--wb-muted)}
:where(.aham-workbench) .wb-table-block>.wb-table-scroll{border:var(--wb-hairline) solid var(--wb-line);border-radius:var(--wb-radius)}
:where(.aham-workbench) .wb-table-block .wb-table{min-width:560px}
:where(.aham-workbench) .wb-table-block .wb-table thead th{background:var(--wb-bg)}
:where(.aham-workbench) .wb-table-block .wb-table tbody:last-child tr:last-child>td,:where(.aham-workbench) .wb-table-block .wb-table tfoot tr:last-child>td{border-bottom:0}
:where(.aham-workbench) .wb-table-block .wb-table :is(th,td):first-child{padding-inline-start:var(--wb-s3)}
:where(.aham-workbench) .wb-table-block .wb-table :is(th,td):last-child{padding-inline-end:var(--wb-s3)}
/* Mode switch. Header actions marked data-read-only are removed in edit mode and data-edit-only ones in read mode;
   the head keeps its height, so the content below never moves. */
:where(.aham-workbench) [data-mode=read] .wb-edit,:where(.aham-workbench) [data-mode=edit] .wb-read{display:none}
:where(.aham-workbench) [data-mode=read] :is(.wb-form-required,[data-edit-only]),:where(.aham-workbench) [data-mode=edit] [data-read-only]{display:none}
:where(.aham-workbench) .wb-msg-btn{display:inline-flex;align-items:center;gap:var(--wb-s1);height:var(--wb-control);padding:0 var(--wb-s2);border:0;border-radius:var(--wb-radius);background:var(--wb-warning-bg);color:var(--wb-warning);font-weight:500}
:where(.aham-workbench) .wb-msg-btn.is-error{background:var(--wb-danger-bg);color:var(--wb-danger)}
:where(.aham-workbench) .wb-messages{display:grid;min-width:min(320px,calc(100vw - var(--wb-s6)));padding:var(--wb-s1) 0}
:where(.aham-workbench) .wb-messages h3{margin:var(--wb-s2) var(--wb-s3) var(--wb-s1);color:var(--wb-muted);font-size:var(--wb-text-xs);font-weight:500}
:where(.aham-workbench) .wb-messages button{display:grid;grid-template-columns:18px minmax(0,1fr);gap:2px var(--wb-s2);width:100%;padding:var(--wb-s1) var(--wb-s3);border:0;background:transparent;text-align:start}
:where(.aham-workbench) .wb-messages button:is(:hover,:focus-visible){background:var(--wb-hover)}
:where(.aham-workbench) .wb-messages small{grid-column:2;color:var(--wb-muted)}
:where(.aham-workbench) .wb-messages button>svg{width:14px;height:14px;margin-block-start:3px}
:where(.aham-workbench) .wb-messages [data-severity=error]>svg{color:var(--wb-danger)}
:where(.aham-workbench) .wb-messages [data-severity=warning]>svg{color:var(--wb-warning)}
:where(.aham-workbench) .wb-confirm-text{margin:var(--wb-s2) var(--wb-s3)}
:where(.aham-workbench) .wb-confirm-actions{display:flex;justify-content:flex-end;gap:var(--wb-s2);padding:0 var(--wb-s3) var(--wb-s2)}
:where(.aham-workbench) .wb-table .wb-row-actions{width:var(--wb-check-col);padding-inline:0;text-align:center}
:where(.aham-workbench) .wb-table-toolbar .wb-btn{margin-inline-start:auto}
:where(.aham-workbench) .wb-table-toolbar .wb-btn~.wb-btn{margin-inline-start:0}
/* ---- src/detail.css ---- */
:where(.aham-workbench) .wb-related a{color:inherit;text-decoration:none}
:where(.aham-workbench) .wb-related a:hover{text-decoration:underline;text-underline-offset:3px}
/* Record detail (7.2 P3): centred reading column + properties panel, as in Circle's issue page. */
:where(.aham-workbench) .wb-record-nav{display:flex;align-items:center;gap:var(--wb-s1);color:var(--wb-muted);font-variant-numeric:tabular-nums}
:where(.aham-workbench) .wb-record-nav>span{margin-inline-end:var(--wb-s1)}
:where(.aham-workbench) .wb-detail{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) auto}
:where(.aham-workbench) .wb-detail-scroll{min-height:0;overflow-y:auto}
:where(.aham-workbench) .wb-detail-main{max-width:var(--wb-detail-width);margin:0 auto;padding:var(--wb-s6)}
:where(.aham-workbench) .wb-detail-title{font-size:var(--wb-detail-title);font-weight:500;line-height:1.35}
:where(.aham-workbench) .wb-detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--wb-s3);margin-block-start:var(--wb-s2);color:var(--wb-muted)}
:where(.aham-workbench) .wb-detail-body{margin-block-start:var(--wb-s5);line-height:1.75}
:where(.aham-workbench) .wb-detail-body p+p{margin-block-start:var(--wb-s2)}
:where(.aham-workbench) .wb-detail-section{margin-block-start:var(--wb-s6)}
:where(.aham-workbench) .wb-section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--wb-s2);margin-block-end:var(--wb-s2)}
:where(.aham-workbench) .wb-section-heading h2{font-size:var(--wb-text-sm);font-weight:500}
:where(.aham-workbench) .wb-section-heading h2 span{margin-inline-start:var(--wb-s1);color:var(--wb-muted);font-weight:400;font-variant-numeric:tabular-nums}
:where(.aham-workbench) .wb-related{margin:0;padding:0;list-style:none;border-top:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-related li{display:flex;align-items:center;gap:var(--wb-s3);min-height:var(--wb-row);padding:0 var(--wb-s1);border-bottom:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-related li:hover{background:var(--wb-hover)}
:where(.aham-workbench) .wb-related .wb-mono{flex:none;color:var(--wb-muted)}
:where(.aham-workbench) .wb-related .wb-grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:where(.aham-workbench) .wb-divider{height:1px;margin-block:var(--wb-s6) 0;border:0;background:var(--wb-line)}
/* Properties panel: label + value rows (Aham keeps labels; Circle's project panel uses the same row form). */
:where(.aham-workbench) .wb-props{display:grid;align-content:start;gap:var(--wb-s5);padding:var(--wb-s5) var(--wb-s4)}
:where(.aham-workbench) .wb-props-section{display:grid;gap:var(--wb-s1)}
:where(.aham-workbench) .wb-props-title{margin-block-end:var(--wb-s1);color:var(--wb-muted);font-weight:500}
:where(.aham-workbench) .wb-prop{display:grid;grid-template-columns:var(--wb-label) minmax(0,1fr);align-items:center;gap:var(--wb-s2);min-height:var(--wb-header-control)}
:where(.aham-workbench) .wb-prop>span:first-child{color:var(--wb-muted);white-space:nowrap}
:where(.aham-workbench) .wb-prop-value{display:flex;align-items:center;gap:var(--wb-s1);min-width:0;min-height:var(--wb-header-control);padding:0 var(--wb-s1);margin-inline-start:calc(-1 * var(--wb-s1));border:0;border-radius:var(--wb-radius);background:transparent;text-align:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:where(.aham-workbench) button.wb-prop-value:hover{background:var(--wb-hover)}
:where(.aham-workbench) .wb-prop-value.is-empty{color:var(--wb-muted)}
/* Activity feed: events as quiet lines with a 20px icon disc; comments on the panel tier; composer sends with ⌘/Ctrl+Enter. */
:where(.aham-workbench) .wb-activity{display:grid}
:where(.aham-workbench) .wb-activity-event{display:flex;align-items:center;gap:var(--wb-s2);padding-block:var(--wb-s1);color:var(--wb-muted)}
:where(.aham-workbench) .wb-activity-event strong{color:var(--wb-ink);font-weight:500}
:where(.aham-workbench) .wb-activity-icon{display:inline-grid;place-items:center;flex:none;width:var(--wb-activity-icon);height:var(--wb-activity-icon);border-radius:50%;background:var(--wb-fill);color:var(--wb-muted)}
:where(.aham-workbench) .wb-activity-icon svg{width:var(--wb-s3);height:var(--wb-s3)}
:where(.aham-workbench) .wb-activity-time{flex:none}
:where(.aham-workbench) .wb-comment{margin-block:var(--wb-s2);padding:var(--wb-s3);border-radius:var(--wb-radius);background:var(--wb-fill)}
:where(.aham-workbench) .wb-comment-head{display:flex;align-items:center;gap:var(--wb-s2);margin-block-end:var(--wb-s1)}
:where(.aham-workbench) .wb-comment-head strong{font-weight:500}
:where(.aham-workbench) .wb-comment-head span:last-child{color:var(--wb-muted)}
:where(.aham-workbench) .wb-comment p{line-height:1.75}
:where(.aham-workbench) .wb-composer{display:grid;gap:var(--wb-s2);margin-block-start:var(--wb-s3);padding:var(--wb-s3);border-radius:var(--wb-radius);background:var(--wb-fill)}
:where(.aham-workbench) .wb-composer textarea{display:block;width:100%;min-height:var(--wb-s7);margin:0;padding:0;border:0;background:transparent;resize:vertical;line-height:1.75}
:where(.aham-workbench) .wb-composer textarea:focus-visible{outline:0}
:where(.aham-workbench) .wb-composer:focus-within{box-shadow:0 0 0 2px var(--wb-blue)}
:where(.aham-workbench) .wb-composer-foot>span:first-child{margin-inline-end:auto}
:where(.aham-workbench) .wb-composer-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--wb-s2);color:var(--wb-muted)}
/* ---- src/overlays.css ---- */
/* Popover (workbench): hairline border + one soft shadow. The border is added to the base popover contract because a
   white popover over a white, dense list is not distinguishable by a 6% shadow alone. */
:where(.aham-workbench) .wb-popover{position:fixed;z-index:var(--wb-z-pop);min-width:var(--wb-pop-min);max-width:min(var(--wb-pop-max),calc(100vw - var(--wb-s4)));max-height:calc(100vh - var(--wb-s6));overflow:auto;padding:var(--wb-s1);border-radius:var(--wb-radius);background:var(--wb-pop-bg);box-shadow:0 0 0 1px var(--wb-line),var(--wb-shadow-pop);color:var(--wb-ink);font-size:var(--wb-text-sm)}
:where(.aham-workbench) .wb-popover.flush{padding:0}
:where(.aham-workbench) .wb-popover.form{width:var(--wb-pop-form);padding:0}
/* Command menu (cmdk pattern): search input, listbox, highlight follows ↑↓ and the pointer. Reused by filters,
   property pickers and the command palette. */
:where(.aham-workbench) .wb-command{display:flex;flex-direction:column;min-width:var(--wb-pop-min)}
:where(.aham-workbench) .wb-command-input{display:flex;align-items:center;gap:var(--wb-s2);height:var(--wb-command-input);padding:0 var(--wb-s3);border-bottom:var(--wb-hairline) solid var(--wb-line);color:var(--wb-muted)}
:where(.aham-workbench) .wb-command-input input{flex:1;min-width:0;height:100%;padding:0;border:0;background:transparent;color:var(--wb-ink);outline:0}
:where(.aham-workbench) .wb-command-list{max-height:300px;overflow-y:auto;margin:0;padding:var(--wb-s1);list-style:none;outline:0}
:where(.aham-workbench) .wb-command-list [data-index]{display:flex;align-items:center;gap:var(--wb-s2);min-height:var(--wb-nav-item);padding:0 var(--wb-s2);border-radius:var(--wb-radius-sm);cursor:default;user-select:none;white-space:nowrap}
:where(.aham-workbench) .wb-command-list [data-index][data-active]{background:var(--wb-hover)}
:where(.aham-workbench) .wb-command-list [data-index]>svg{color:var(--wb-muted)}
:where(.aham-workbench) .wb-command-list [data-index]>svg:last-child:not(:first-child){margin-inline-start:auto;visibility:hidden}
:where(.aham-workbench) .wb-command-list [data-index][data-active]>svg:last-child:not(:first-child){visibility:visible}
:where(.aham-workbench) .wb-command-list [aria-current=true]{font-weight:500}
:where(.aham-workbench) .wb-command-gap{flex:none;width:var(--wb-s4)}
:where(.aham-workbench) .wb-command-label{display:inline-flex;align-items:center;gap:var(--wb-s1);min-width:0}
:where(.aham-workbench) .wb-command-label svg{width:var(--wb-s3);height:var(--wb-s3);color:var(--wb-muted)}
:where(.aham-workbench) .wb-command-prefix{color:var(--wb-muted)}
:where(.aham-workbench) .wb-command-count{margin-inline-start:2px;color:var(--wb-muted);font-size:var(--wb-body);font-variant-numeric:tabular-nums}
:where(.aham-workbench) .wb-command-check{display:inline-grid;place-items:center;flex:none;width:14px;height:14px;border:1px solid var(--wb-muted);border-radius:var(--wb-radius-sm);color:var(--wb-on);opacity:0}
:where(.aham-workbench) .wb-command-check svg{width:10px;height:10px;stroke-width:2.5}
:where(.aham-workbench) [data-index][data-active] .wb-command-check,:where(.aham-workbench) [aria-checked=true] .wb-command-check{opacity:1}
:where(.aham-workbench) [aria-checked=true] .wb-command-check{border-color:var(--wb-ink);background:var(--wb-ink)}
:where(.aham-workbench) .wb-command-sep{height:1px;margin:var(--wb-s1) calc(-1 * var(--wb-s1));background:var(--wb-line)}
:where(.aham-workbench) .wb-command-empty{padding:var(--wb-s5) var(--wb-s3);text-align:center;color:var(--wb-muted)}
:where(.aham-workbench) .wb-command-head{display:flex;align-items:center;gap:var(--wb-s1);min-height:var(--wb-command-input);padding:0 var(--wb-s2);border-bottom:var(--wb-hairline) solid var(--wb-line);font-weight:500}
:where(.aham-workbench) .wb-value-editor{gap:var(--wb-s3);padding-bottom:var(--wb-s3);min-width:280px}
:where(.aham-workbench) .wb-value-editor>.wb-seg{margin:0 var(--wb-s3);align-self:flex-start}
:where(.aham-workbench) .wb-value-inputs{display:flex;align-items:center;gap:var(--wb-s2);padding:0 var(--wb-s3)}
:where(.aham-workbench) .wb-value-inputs .wb-field{flex:1}
:where(.aham-workbench) .wb-value-error{margin:0 var(--wb-s3);color:var(--wb-danger)}
:where(.aham-workbench) .wb-value-error:empty{display:none}
/* Interaction primitives (7.2 P4): headings and key hints in command lists, palette, context menu, toast, create dialog. */
:where(.aham-workbench) .wb-command-heading{padding:var(--wb-s2) var(--wb-s2) var(--wb-s1);color:var(--wb-muted);font-size:var(--wb-body);font-weight:500}
:where(.aham-workbench) .wb-command-list [data-index].is-danger{color:var(--wb-danger)}
:where(.aham-workbench) .wb-command-list [data-index].is-danger>svg{color:var(--wb-danger)}
:where(.aham-workbench) .wb-kbd-group{display:inline-flex;gap:var(--wb-s1);margin-inline-start:auto;padding-inline-start:var(--wb-s3)}
:where(.aham-workbench) .wb-kbd-group+svg{margin-inline-start:var(--wb-s2)!important}
:where(.aham-workbench) .wb-kbd{display:inline-grid;place-items:center;min-width:var(--wb-kbd);height:var(--wb-kbd);padding:0 var(--wb-s1);border-radius:var(--wb-radius-sm);background:var(--wb-bg);box-shadow:inset 0 0 0 1px var(--wb-line);color:var(--wb-muted);font:inherit;font-size:var(--wb-body)}
:where(.aham-workbench) .wb-popover.menu{width:var(--wb-menu-width)}
:where(.aham-workbench) .wb-palette,:where(.aham-workbench) .wb-create{width:min(var(--wb-overlay-width),calc(100vw - var(--wb-s6)));max-height:calc(100vh - var(--wb-palette-top) - var(--wb-s5));margin:var(--wb-palette-top) auto 0;padding:0;border:0;border-radius:var(--wb-radius-lg);background:var(--wb-pop-bg);color:var(--wb-ink);box-shadow:var(--wb-shadow-float);overflow:hidden}
:where(.aham-workbench) .wb-create{margin-top:var(--wb-create-top)}
:where(.aham-workbench) :is(.wb-palette,.wb-create)::backdrop{background:var(--wb-scrim)}
:where(.aham-workbench) .wb-palette .wb-command-input{height:var(--wb-palette-input);padding:0 var(--wb-s4)}
:where(.aham-workbench) .wb-palette .wb-command-input input{font-size:var(--wb-text-base)}
:where(.aham-workbench) .wb-palette .wb-command-list{max-height:384px;padding:var(--wb-s2)}
:where(.aham-workbench) .wb-palette .wb-command-list [data-index]{min-height:var(--wb-palette-item);font-size:var(--wb-text-sm)}
:where(.aham-workbench) .wb-palette-context{padding:var(--wb-s3) var(--wb-s3) 0}
:where(.aham-workbench) .wb-palette-chip{display:inline-flex;align-items:center;gap:var(--wb-s1);max-width:100%;height:var(--wb-header-control);padding:0 var(--wb-s1) 0 var(--wb-s2);border-radius:var(--wb-radius);background:var(--wb-hover)}
:where(.aham-workbench) .wb-palette-chip>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:where(.aham-workbench) .wb-palette-chip button{display:inline-grid;place-items:center;width:var(--wb-s5);height:var(--wb-s5);padding:0;border:0;border-radius:var(--wb-radius-sm);background:transparent;color:var(--wb-muted)}
:where(.aham-workbench) .wb-toasts{position:fixed;right:var(--wb-s4);bottom:var(--wb-s4);z-index:var(--wb-z-toast);display:grid;gap:var(--wb-s2);width:min(var(--wb-toast-width),calc(100vw - var(--wb-s6)))}
:where(.aham-workbench) .wb-toast{display:flex;align-items:center;justify-content:space-between;gap:var(--wb-s3);min-height:var(--wb-header-row);padding:var(--wb-s2) var(--wb-s2) var(--wb-s2) var(--wb-s3);border-radius:var(--wb-radius);background:var(--wb-pop-bg);box-shadow:0 0 0 1px var(--wb-line),var(--wb-shadow-pop);color:var(--wb-ink)}
:where(.aham-workbench) .wb-create form{display:grid}
:where(.aham-workbench) .wb-create-head{display:flex;align-items:center;gap:var(--wb-s1);padding:var(--wb-s3) var(--wb-s4) 0;color:var(--wb-muted)}
:where(.aham-workbench) .wb-create-head svg{width:var(--wb-s3);height:var(--wb-s3)}
:where(.aham-workbench) .wb-create-scope{padding:0 var(--wb-s2);border-radius:var(--wb-radius-sm);background:var(--wb-hover);color:var(--wb-ink)}
:where(.aham-workbench) .wb-create-name{margin:var(--wb-s3) var(--wb-s4) 0;padding:0;border:0;background:transparent;font-size:var(--wb-title);font-weight:500;outline:0}
:where(.aham-workbench) .wb-create-name[aria-invalid=true]{outline:0;box-shadow:inset 0 -1px 0 var(--wb-danger)}
:where(.aham-workbench) .wb-create>form>.wb-value-error{margin:var(--wb-s1) var(--wb-s4) 0}
:where(.aham-workbench) .wb-create-desc{min-height:var(--wb-s8);margin:var(--wb-s2) var(--wb-s4) 0;padding:0;border:0;background:transparent;resize:vertical;line-height:1.75;outline:0}
:where(.aham-workbench) .wb-create-props{display:flex;flex-wrap:wrap;gap:var(--wb-s1);padding:var(--wb-s3) var(--wb-s4)}
:where(.aham-workbench) .wb-create-props .is-empty{color:var(--wb-muted)}
:where(.aham-workbench) .wb-create-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--wb-s3);padding:var(--wb-s2) var(--wb-s4);border-top:var(--wb-hairline) solid var(--wb-line);color:var(--wb-muted)}
:where(.aham-workbench) .wb-create-actions{display:flex;gap:var(--wb-s2)}
:where(.aham-workbench) .wb-cell-picker{display:inline-flex;align-items:center;gap:var(--wb-s1);max-width:100%;height:var(--wb-header-control);margin-inline-start:calc(-1 * var(--wb-s1));padding:0 var(--wb-s1);border:0;border-radius:var(--wb-radius);background:transparent;white-space:nowrap}
:where(.aham-workbench) .wb-cell-picker:hover{background:var(--wb-selected)}
/* Form-type popover sections (display options) */
:where(.aham-workbench) .wb-pop-title{color:var(--wb-muted)}
:where(.aham-workbench) .wb-pop-section{display:grid;gap:var(--wb-s2);padding:var(--wb-s3)}
:where(.aham-workbench) .wb-pop-section+.wb-pop-section{border-top:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-pop-field{display:flex;align-items:center;justify-content:space-between;gap:var(--wb-s3)}
:where(.aham-workbench) .wb-pop-field>span{color:var(--wb-muted)}
:where(.aham-workbench) .wb-pop-field .wb-field{width:144px}
:where(.aham-workbench) .wb-pop-row{display:flex;align-items:center;gap:var(--wb-s1);min-width:0}
:where(.aham-workbench) .wb-pop-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--wb-s2);padding:var(--wb-s2) var(--wb-s3);border-top:var(--wb-hairline) solid var(--wb-line);color:var(--wb-muted)}
:where(.aham-workbench) .wb-dialog{width:min(var(--wb-dialog-width),calc(100vw - var(--wb-s6)));padding:var(--wb-s5);border:0;border-radius:var(--wb-radius-lg);background:var(--wb-pop-bg);color:var(--wb-ink);box-shadow:var(--wb-shadow-float)}
:where(.aham-workbench) .wb-dialog::backdrop{background:var(--wb-scrim)}
:where(.aham-workbench) .wb-dialog h2{font-size:var(--wb-text-base)}
:where(.aham-workbench) .wb-dialog p{margin-block:var(--wb-s2) var(--wb-s5);color:var(--wb-muted)}
:where(.aham-workbench) .wb-dialog-foot{display:flex;justify-content:flex-end;gap:var(--wb-s2)}
/* Dialog sizes: a question 400px, a short form 560px, a wide form or table 880px (rules/6-反馈.md). */
:where(.aham-workbench) .wb-dialog.is-form{width:min(var(--wb-dialog-form),calc(100vw - var(--wb-s6)))}
:where(.aham-workbench) .wb-dialog.is-wide{width:min(var(--wb-dialog-wide),calc(100vw - var(--wb-s6)))}
:where(.aham-workbench) .wb-dialog h2{font-weight:600}
:where(.aham-workbench) .wb-dialog-field{display:grid;gap:var(--wb-s1);margin-block-end:var(--wb-s5)}
:where(.aham-workbench) .wb-dialog-field>span:first-child{color:var(--wb-muted)}
:where(.aham-workbench) .wb-dialog-field .wb-value-error{margin:0}
/* Tooltips: label + registered shortcut, Aham dark tip, shown after a short hover or on keyboard focus (rules/7-键盘与命令.md 7.5). */
:where(.aham-workbench) .wb-tooltip{position:fixed;z-index:var(--wb-z-toast);display:flex;align-items:center;gap:var(--wb-s2);max-width:var(--wb-pop-max);padding:var(--wb-s1) var(--wb-s2);border-radius:var(--wb-radius-sm);background:var(--wb-ink);color:var(--wb-bg);font-size:var(--wb-body);line-height:1.4;box-shadow:var(--wb-shadow-pop);pointer-events:none}
:where(.aham-workbench) .wb-tooltip .wb-kbd{min-width:auto;height:auto;padding:0 var(--wb-s1);background:transparent;box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 35%,transparent);color:inherit}
:where(.aham-workbench) .wb-dialog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--wb-s4) var(--wb-s5);margin-block:var(--wb-s4) var(--wb-s5)}
:where(.aham-workbench) .wb-dialog-grid .wb-form-row:only-child{grid-column:1 / -1}
:where(.aham-workbench) .wb-dialog-grid .wb-form-hint.is-error:empty{display:none}
:where(.aham-workbench) .wb-dialog form>.wb-value-error:empty{display:none}
:where(.aham-workbench) .wb-batch-list{display:grid;max-height:240px;overflow:auto;margin:0 0 var(--wb-s5);padding:0;list-style:none;border-block:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-batch-list li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:2px var(--wb-s2);padding:var(--wb-s2) 0;border-bottom:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-batch-list li:last-child{border-bottom:0}
:where(.aham-workbench) .wb-batch-list svg{width:14px;height:14px;margin-block-start:3px;color:var(--wb-danger)}
:where(.aham-workbench) .wb-batch-list small{grid-column:2;color:var(--wb-muted)}
/* Skeleton (rules/6-反馈.md 6.6): grey blocks in the shape of the content, pulsing together. */
:where(.aham-workbench) .wb-skeleton{display:block;height:var(--wb-s3);border-radius:var(--wb-radius-sm);background:var(--wb-fill);animation:wb-skeleton 2s var(--wb-ease) infinite}
@keyframes wb-skeleton{50%{opacity:.6}}
/* While a footer toolbar shows, toasts sit above it so they never cover 保存. */
:where(.aham-workbench):has([data-mode=edit] .wb-doc-foot) .wb-toasts{bottom:calc(var(--wb-row-double) + var(--wb-s4) + var(--wb-gutter))}
/* ---- src/settings.css ---- */
/* Settings (7.2 P5): Circle's settings kit — shell, section, rows — with Aham's line-separated rows instead of bordered cards. */
:where(.aham-workbench) .wb-settings-layout{flex:1;min-height:0;display:grid;grid-template-columns:var(--wb-panel-narrow) minmax(0,1fr)}
:where(.aham-workbench) .wb-settings-nav{min-height:0;overflow-y:auto;padding:var(--wb-s4) var(--wb-s2);border-inline-end:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-settings-nav h2{padding:var(--wb-s3) var(--wb-s2) var(--wb-s1);color:var(--wb-muted);font-size:var(--wb-body);font-weight:500}
:where(.aham-workbench) .wb-settings-nav ul{display:grid;gap:2px;margin:0;padding:0;list-style:none}
:where(.aham-workbench) .wb-settings-nav a{display:flex;align-items:center;gap:var(--wb-s2);min-height:var(--wb-nav-item);padding:0 var(--wb-s2);border-radius:var(--wb-radius);color:var(--wb-muted);text-decoration:none}
:where(.aham-workbench) .wb-settings-nav a:hover{background:var(--wb-hover);color:var(--wb-ink)}
:where(.aham-workbench) .wb-settings-nav a[aria-current=page]{background:var(--wb-selected);color:var(--wb-ink)}
:where(.aham-workbench) .wb-settings-scroll{min-height:0;overflow-y:auto}
:where(.aham-workbench) .wb-settings{max-width:var(--wb-detail-width);margin:0 auto;padding:var(--wb-s6) var(--wb-s5) var(--wb-s8)}
:where(.aham-workbench) .wb-settings>h1{font-size:var(--wb-detail-title);font-weight:500}
:where(.aham-workbench) .wb-settings>p{margin-block-start:var(--wb-s1);color:var(--wb-muted)}
:where(.aham-workbench) .wb-settings-section{margin-block-start:var(--wb-s6)}
:where(.aham-workbench) .wb-settings-section>header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--wb-s4);margin-block-end:var(--wb-s3)}
:where(.aham-workbench) .wb-settings-section h2{font-size:var(--wb-text-base);font-weight:500}
:where(.aham-workbench) .wb-settings-section header p{margin-block-start:2px;color:var(--wb-muted)}
:where(.aham-workbench) .wb-settings-rows{border-top:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-setting{display:flex;align-items:center;justify-content:space-between;gap:var(--wb-s4);min-height:var(--wb-s8);padding:var(--wb-s3) 0;border-bottom:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-setting>div:first-child{min-width:0}
:where(.aham-workbench) .wb-setting-title{font-size:var(--wb-text-sm);font-weight:500}
:where(.aham-workbench) .wb-setting-desc{margin-block-start:2px;color:var(--wb-muted)}
:where(.aham-workbench) .wb-setting-control{display:flex;flex:none;align-items:center;gap:var(--wb-s2)}
:where(.aham-workbench) .wb-setting-control .wb-field{min-width:160px}
:where(.aham-workbench) .wb-settings-section.is-danger h2{color:var(--wb-danger)}
/* ---- src/files.css ---- */
/* Files, tree table and version compare (rules/5-单据.md 5.12). Gray drop feedback, ink progress, no colour for diff kinds. */
:where(.aham-workbench) .wb-drop{display:grid;justify-items:center;gap:var(--wb-s2);padding:var(--wb-s6) var(--wb-s5);border:1.5px dashed var(--wb-line);border-radius:var(--wb-radius-lg);color:var(--wb-muted);text-align:center;transition:border-color var(--wb-fast) var(--wb-ease),background var(--wb-fast) var(--wb-ease)}
:where(.aham-workbench) .wb-drop[data-drag=over]{border-color:var(--wb-muted);background:var(--wb-fill);color:var(--wb-ink)}
:where(.aham-workbench) .wb-drop>svg{width:var(--wb-s5);height:var(--wb-s5)}
:where(.aham-workbench) .wb-drop strong{color:var(--wb-ink);font-weight:500}
:where(.aham-workbench) .wb-drop-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--wb-s2)}
:where(.aham-workbench) .wb-files{margin:0;padding:0;list-style:none;border-top:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-file{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(120px,200px) auto;align-items:center;gap:var(--wb-s3);min-height:var(--wb-row);padding:var(--wb-s1) var(--wb-s2);border-bottom:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-file>svg{color:var(--wb-muted)}
:where(.aham-workbench) .wb-file>svg.wb-cat-icon{color:var(--wb-cat,var(--wb-muted))}
:where(.aham-workbench) .wb-file-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:where(.aham-workbench) .wb-file-meta{display:block;color:var(--wb-muted);font-family:var(--wb-mono);font-feature-settings:normal;font-variant-numeric:tabular-nums}
:where(.aham-workbench) .wb-file-state{display:grid;gap:var(--wb-s1);min-width:0}
:where(.aham-workbench) .wb-file-actions{display:flex;gap:var(--wb-s1)}
:where(.aham-workbench) .wb-progress{display:block;height:var(--wb-s1);border-radius:var(--wb-radius-pill);background:var(--wb-line);overflow:hidden}
:where(.aham-workbench) .wb-progress>span{display:block;height:100%;background:var(--wb-ink);transition:width var(--wb-fast) var(--wb-ease)}
/* Viewer: toolbar row, a scrolling stage on the panel tier, the page on the white tier. The field mark is an ink outline. */
:where(.aham-workbench) .wb-viewer{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0}
:where(.aham-workbench) .wb-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--wb-s2);height:var(--wb-header-row);padding:0 var(--wb-s3);border-bottom:var(--wb-hairline) solid var(--wb-line);color:var(--wb-muted)}
:where(.aham-workbench) .wb-viewer-bar>div{display:flex;align-items:center;gap:var(--wb-s1);min-width:0}
:where(.aham-workbench) .wb-viewer-bar .wb-field{width:calc(var(--wb-s7) - var(--wb-s2));text-align:center;font-family:var(--wb-mono);font-feature-settings:normal}
:where(.aham-workbench) .wb-viewer-stage{overflow:auto;padding:var(--wb-s4);background:var(--wb-canvas);outline-offset:-2px}
:where(.aham-workbench) .wb-viewer-stage[data-pan=true]{cursor:grab}
:where(.aham-workbench) .wb-viewer-stage[data-dragging]{cursor:grabbing;user-select:none}
:where(.aham-workbench) .wb-viewer-canvas{position:relative;margin:0 auto;background:var(--wb-bg)}
:where(.aham-workbench) .wb-viewer-canvas>:is(img,svg,canvas){display:block;width:100%;height:100%}
:where(.aham-workbench) .wb-viewer-mark{position:absolute;outline:2px solid var(--wb-ink);outline-offset:2px;border-radius:var(--wb-radius-sm);pointer-events:none}
:where(.aham-workbench) .wb-viewer-split{display:grid;grid-template-columns:minmax(0,1fr) var(--wb-panel-wide);min-height:0}
:where(.aham-workbench) .wb-viewer-split>.wb-viewer{border-inline-end:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-recognized{display:grid;align-content:start;min-height:0;overflow:auto}
:where(.aham-workbench) .wb-recognized-row{display:grid;grid-template-columns:var(--wb-label) minmax(0,1fr) auto;align-items:center;gap:var(--wb-s2);width:100%;min-height:var(--wb-row);padding:var(--wb-s1) var(--wb-s4);border:0;border-bottom:var(--wb-hairline) solid var(--wb-line);background:transparent;text-align:start}
:where(.aham-workbench) .wb-recognized-row:hover{background:var(--wb-hover)}
:where(.aham-workbench) .wb-recognized-row>span:first-child{color:var(--wb-muted)}
:where(.aham-workbench) .wb-recognized-row>span:last-child{color:var(--wb-muted);font-family:var(--wb-mono);font-feature-settings:normal}
:where(.aham-workbench) .wb-recognized-row .wb-risk{grid-column:2 / -1}
/* Version compare: the kind is a word with a mono sign; the old value is struck through in secondary ink. */
:where(.aham-workbench) .wb-compare-pick{display:flex;align-items:center;gap:var(--wb-s2);min-width:0}
:where(.aham-workbench) .wb-diff-section{margin-block-start:var(--wb-s5)}
:where(.aham-workbench) .wb-diff-kind{display:inline-flex;align-items:center;gap:var(--wb-s1);white-space:nowrap}
:where(.aham-workbench) .wb-diff-kind::before{content:attr(data-sign);width:var(--wb-s3);color:var(--wb-muted);font-family:var(--wb-mono);font-feature-settings:normal;text-align:center}
:where(.aham-workbench) .wb-diff-old{color:var(--wb-muted);text-decoration:line-through;text-decoration-thickness:1px}
:where(.aham-workbench) .wb-diff-new{font-weight:500}
:where(.aham-workbench) .wb-diff-table td{white-space:normal}
:where(.aham-workbench) .wb-diff-table .wb-diff-old,:where(.aham-workbench) .wb-diff-table .wb-diff-new{overflow-wrap:anywhere}
:where(.aham-workbench) [data-viewer=zoom]{min-width:var(--wb-s7);text-align:center;font-family:var(--wb-mono);font-feature-settings:normal;font-variant-numeric:tabular-nums}
/* ---- src/flow.css ---- */
/* People, progress and the outside form (rules/3-控件.md 3.11–3.13, rules/4-页面.md 4.12–4.14). Added in 8.1. */
/* People: a round avatar with the first character on a category tint, picked from the name by avatarCat(). */
:where(.aham-workbench) :is(.wb-avatar,.wb-avatar-xs){display:inline-grid;place-items:center;flex:none;border-radius:50%;background:color-mix(in srgb,var(--wb-cat,var(--wb-muted)) 18%,var(--wb-bg));color:var(--wb-ink);font-weight:500;line-height:1}
:where(.aham-workbench) .wb-avatar{width:var(--wb-avatar);height:var(--wb-avatar);font-size:var(--wb-text-xs)}
:where(.aham-workbench) .wb-avatar-xs{width:var(--wb-activity-icon);height:var(--wb-activity-icon);font-size:var(--wb-text-xs)}
:where(.aham-workbench) :is(.wb-avatar,.wb-avatar-xs).is-none{background:transparent;border:1px dashed var(--wb-muted)}
:where(.aham-workbench) .wb-person{display:inline-flex;align-items:center;gap:var(--wb-s2);min-width:0;white-space:nowrap}
:where(.aham-workbench) .wb-person.is-none{color:var(--wb-muted)}
:where(.aham-workbench) .wb-people{display:inline-flex;align-items:center;gap:var(--wb-s2);min-width:0}
:where(.aham-workbench) .wb-people-faces{display:inline-flex}
:where(.aham-workbench) .wb-people-faces>*+*{margin-inline-start:calc(-1 * var(--wb-s1));box-shadow:0 0 0 2px var(--wb-bg)}
/* Stage bar: one segment per stage. Done carries a check, current is bold on a thicker line, skipped is dashed and struck. */
:where(.aham-workbench) .wb-stages{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--wb-s1);margin:0;padding:0;list-style:none}
:where(.aham-workbench) .wb-stages>li{display:grid;align-content:start;gap:2px;min-width:0;padding-block-start:var(--wb-s2);border-top:var(--wb-s1) solid var(--wb-line)}
:where(.aham-workbench) .wb-stage-name{display:flex;align-items:center;gap:var(--wb-s1);color:var(--wb-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:where(.aham-workbench) .wb-stage-name svg{width:var(--wb-s3);height:var(--wb-s3);stroke-width:2}
:where(.aham-workbench) .wb-stage-sub{color:var(--wb-muted);font-size:var(--wb-text-xs);overflow-wrap:anywhere}
:where(.aham-workbench) .wb-stages>li[data-state=done]{border-top-color:var(--wb-success)}
:where(.aham-workbench) .wb-stages>li[data-state=done] .wb-stage-name{color:var(--wb-ink)}
:where(.aham-workbench) .wb-stages>li[data-state=done] .wb-stage-name svg{color:var(--wb-success)}
:where(.aham-workbench) .wb-stages>li[data-state=current]{border-top:calc(var(--wb-s1) + 2px) solid var(--wb-info);padding-block-start:calc(var(--wb-s2) - 2px)}
:where(.aham-workbench) .wb-stages>li[data-state=current] .wb-stage-name{color:var(--wb-ink);font-weight:600}
:where(.aham-workbench) .wb-stages>li[data-state=off]{border-top-style:dashed}
:where(.aham-workbench) .wb-stages>li[data-state=off] .wb-stage-name{text-decoration:line-through;text-decoration-thickness:1px}
/* Next step: one line under the title that says who the page waits for, what, and by when, with the button for that step. */
:where(.aham-workbench) .wb-next{display:flex;align-items:center;gap:var(--wb-s3);min-height:var(--wb-row);padding:var(--wb-s1) var(--wb-s1) var(--wb-s1) var(--wb-s3);border-radius:var(--wb-radius);background:var(--wb-fill)}
:where(.aham-workbench) .wb-next>.wb-grow{flex:1;min-width:0}
:where(.aham-workbench) .wb-next strong{font-weight:500}
:where(.aham-workbench) .wb-next-date{color:var(--wb-muted);font-family:var(--wb-mono);font-feature-settings:normal;white-space:nowrap}
/* Timeline: the progress of one object, top to bottom, in the side column. */
:where(.aham-workbench) .wb-timeline{display:grid;margin:0;padding:0;list-style:none}
:where(.aham-workbench) .wb-timeline>li{position:relative;display:grid;gap:2px;padding:0 0 var(--wb-s4) var(--wb-s5)}
:where(.aham-workbench) .wb-timeline>li::before{content:'';position:absolute;top:7px;left:0;width:var(--wb-s2);height:var(--wb-s2);border-radius:50%;box-sizing:border-box;border:1.5px solid var(--wb-muted);background:var(--wb-bg)}
:where(.aham-workbench) .wb-timeline>li:not(:last-child)::after{content:'';position:absolute;top:19px;bottom:3px;left:3.5px;width:1px;background:var(--wb-line)}
:where(.aham-workbench) .wb-timeline>li[data-state=done]::before{border-color:var(--wb-success);background:var(--wb-success)}
:where(.aham-workbench) .wb-timeline>li[data-state=current]::before{border-color:var(--wb-info);background:var(--wb-info)}
:where(.aham-workbench) .wb-timeline>li[data-state=current] .wb-timeline-name{font-weight:600}
:where(.aham-workbench) .wb-timeline>li[data-state=todo] .wb-timeline-name{color:var(--wb-muted)}
:where(.aham-workbench) .wb-timeline-sub{color:var(--wb-muted);font-size:var(--wb-text-xs)}
/* Number row: a few counts that open their lists. No frame, no tile. */
:where(.aham-workbench) .wb-nums{display:flex;flex-wrap:wrap;gap:var(--wb-s2) var(--wb-s6);margin:0;padding:0;list-style:none}
:where(.aham-workbench) .wb-num{display:grid;gap:2px;color:inherit;text-decoration:none}
:where(.aham-workbench) .wb-num strong{font-family:var(--wb-mono);font-feature-settings:normal;font-size:var(--wb-title);font-weight:500;line-height:1.2}
:where(.aham-workbench) .wb-num span{color:var(--wb-muted)}
:where(.aham-workbench) a.wb-num:hover span{color:var(--wb-ink);text-decoration:underline;text-underline-offset:3px}
/* Fold: records (activity, edit history, versions) close into one line at the end of the page. */
:where(.aham-workbench) .wb-fold{border-top:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-fold>summary{display:flex;align-items:center;gap:var(--wb-s2);min-height:var(--wb-row);cursor:pointer;list-style:none;color:var(--wb-ink)}
:where(.aham-workbench) .wb-fold>summary::-webkit-details-marker{display:none}
:where(.aham-workbench) .wb-fold>summary>svg{color:var(--wb-muted);transition:transform var(--wb-fast) var(--wb-ease)}
:where(.aham-workbench) .wb-fold[open]>summary>svg{transform:rotate(90deg)}
:where(.aham-workbench) .wb-fold>summary strong{font-weight:500}
:where(.aham-workbench) .wb-fold-sum{color:var(--wb-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
:where(.aham-workbench) .wb-fold-body{padding-block:var(--wb-s1) var(--wb-s3)}
/* Single-open list: each row is a <details> sharing one name, so opening a row closes the one before. */
:where(.aham-workbench) .wb-expand{border-top:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-expand>details{border-bottom:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-expand>details>summary{display:grid;grid-template-columns:var(--wb-s4) minmax(0,2fr) repeat(var(--wb-expand-cols,3),minmax(0,1fr));align-items:center;gap:var(--wb-s3);min-height:var(--wb-row);padding:var(--wb-s1) var(--wb-s2);cursor:pointer;list-style:none}
:where(.aham-workbench) .wb-expand>details>summary::-webkit-details-marker{display:none}
:where(.aham-workbench) .wb-expand>details>summary:hover{background:var(--wb-hover)}
:where(.aham-workbench) .wb-expand>details>summary>svg{color:var(--wb-muted);transition:transform var(--wb-fast) var(--wb-ease)}
:where(.aham-workbench) .wb-expand>details[open]>summary>svg{transform:rotate(90deg)}
:where(.aham-workbench) .wb-expand>details>summary>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:where(.aham-workbench) .wb-expand-body{padding:var(--wb-s2) var(--wb-s2) var(--wb-s4) calc(var(--wb-s4) + var(--wb-s5))}
/* Composer files: text, files and recordings in one box; files can be dropped on it, each piece can be removed. */
:where(.aham-workbench) .wb-composer[data-drag=over]{box-shadow:0 0 0 2px var(--wb-muted)}
:where(.aham-workbench) .wb-composer-files{display:flex;flex-wrap:wrap;gap:var(--wb-s2);margin:0;padding:0;list-style:none}
:where(.aham-workbench) .wb-composer-file{display:inline-flex;align-items:center;gap:var(--wb-s2);max-width:100%;min-height:var(--wb-header-control);padding:0 0 0 var(--wb-s2);border-radius:var(--wb-radius);background:var(--wb-bg);box-shadow:inset 0 0 0 1px var(--wb-line)}
:where(.aham-workbench) .wb-composer-file>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:where(.aham-workbench) .wb-composer-file>.wb-file-meta{flex:none}
/* Outside form page: one centred column for people outside the company. No navigation, no internal names. */
:where(.aham-workbench) .wb-form-page{max-width:var(--wb-detail-width);margin:0 auto;padding:var(--wb-s6) var(--wb-s4) var(--wb-s8);display:grid;gap:var(--wb-s5)}
:where(.aham-workbench) .wb-form-page-brand{color:var(--wb-muted)}
:where(.aham-workbench) .wb-form-page-title{font-size:var(--wb-detail-title);font-weight:600;line-height:1.35}
:where(.aham-workbench) .wb-form-progress{display:grid;gap:var(--wb-s2)}
:where(.aham-workbench) .wb-form-progress>ol{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--wb-s1);margin:0;padding:0;list-style:none}
:where(.aham-workbench) .wb-form-progress>ol>li{height:var(--wb-s1);border-radius:var(--wb-radius-pill);background:var(--wb-line)}
:where(.aham-workbench) .wb-form-progress>ol>li[data-state=done]{background:var(--wb-ink)}
:where(.aham-workbench) .wb-form-progress>ol>li[data-state=current]{background:var(--wb-blue)}
:where(.aham-workbench) .wb-form-progress>p{color:var(--wb-muted)}
:where(.aham-workbench) .wb-form-page-foot{display:flex;justify-content:space-between;gap:var(--wb-s2);padding-block-start:var(--wb-s4);border-top:var(--wb-hairline) solid var(--wb-line)}
/* Labelled rail: 72px, icon above a two-character name. It does not expand. */
:where(.aham-workbench).is-labeled,:where(.aham-workbench).is-labeled.expanded{grid-template-columns:var(--wb-rail-labeled) minmax(0,1fr)}
:where(.aham-workbench).is-labeled .wb-rail,:where(.aham-workbench).is-labeled.expanded .wb-rail{align-items:center;padding-inline:var(--wb-s1)}
:where(.aham-workbench).is-labeled .wb-nav-item,:where(.aham-workbench).is-labeled.expanded .wb-nav-item{flex-direction:column;justify-content:center;gap:2px;width:calc(var(--wb-rail-labeled) - var(--wb-s4));height:auto;min-height:var(--wb-s7);padding:var(--wb-s1) 0}
:where(.aham-workbench).is-labeled .wb-nav-item span,:where(.aham-workbench).is-labeled.expanded .wb-nav-item span{display:block;font-size:var(--wb-text-xs);line-height:1.3}
:where(.aham-workbench).is-labeled .wb-header [data-action=nav]{display:none}
:where(.aham-workbench) .wb-composer-foot>span{flex:1;min-width:0}
:where(.aham-workbench) .wb-form-page .wb-form-grid{grid-template-columns:minmax(0,1fr);max-width:none}
:where(.aham-workbench) .wb-form-page .wb-form-row>.wb-field{width:100%}
:where(.aham-workbench) .wb-form-page h2{font-size:var(--wb-text-base);margin-block-end:var(--wb-s3)}
:where(.aham-workbench) .wb-form-page-foot>.wb-btn.primary{margin-inline-start:auto}
/* ---- src/ai.css ---- */
:where(.aham-workbench) :is(.wb-context,.wb-comment,.wb-ai,.wb-composer,.wb-doc-group) .wb-risk.warning{color:var(--wb-ink)}
:where(.aham-workbench) :is(.wb-context,.wb-comment,.wb-ai,.wb-composer,.wb-doc-group) .wb-risk.warning svg{color:var(--wb-warning)}
/* AI assistance (rules/8-AI协作.md): the comment-block grammar — secondary surface, no border, no shadow, no AI colour. */
:where(.aham-workbench) .wb-ai{display:grid;gap:var(--wb-s2);margin-block:var(--wb-s2);padding:var(--wb-s3);border-radius:var(--wb-radius);background:var(--wb-fill)}
:where(.aham-workbench) .wb-ai-head{display:flex;align-items:center;gap:var(--wb-s2);min-height:var(--wb-header-control)}
:where(.aham-workbench) .wb-ai-mark{display:inline-flex;align-items:center;gap:var(--wb-s1);color:var(--wb-muted);font-size:var(--wb-body);white-space:nowrap}
:where(.aham-workbench) .wb-ai-mark svg{width:var(--wb-s3);height:var(--wb-s3)}
:where(.aham-workbench) .wb-ai-title{min-width:0;font-weight:500}
:where(.aham-workbench) .wb-ai-stop{margin-inline-start:auto}
:where(.aham-workbench) .wb-ai-body{line-height:1.75}
:where(.aham-workbench) .wb-ai-body:empty{display:none}
:where(.aham-workbench) .wb-ai-body p{margin:0}
:where(.aham-workbench) .wb-ai-body p+p{margin-block-start:var(--wb-s2)}
:where(.aham-workbench) .wb-ai-error{color:var(--wb-danger)}
:where(.aham-workbench) .wb-ai-sources{margin:0;color:var(--wb-muted)}
:where(.aham-workbench) .wb-ai-sources a{color:inherit;text-decoration:underline;text-underline-offset:2px}
:where(.aham-workbench) .wb-ai-sources a:hover{color:var(--wb-ink)}
:where(.aham-workbench) .wb-ai-actions{display:flex;flex-wrap:wrap;gap:var(--wb-s1)}
:where(.aham-workbench) .wb-ai-actions:empty{display:none}
:where(.aham-workbench) .wb-ai-suggest{display:flex;flex-wrap:wrap;align-items:center;gap:var(--wb-s1) var(--wb-s2);margin-block:var(--wb-s1) var(--wb-s2);padding:var(--wb-s1) var(--wb-s2);border-radius:var(--wb-radius-sm);background:var(--wb-fill);color:var(--wb-muted)}
:where(.aham-workbench) .wb-ai-suggest>svg{width:var(--wb-s3);height:var(--wb-s3)}
:where(.aham-workbench) .wb-ai-suggest strong{color:var(--wb-ink);font-weight:500}
:where(.aham-workbench) .wb-ai-reason{flex-basis:100%}
:where(.aham-workbench) .wb-ai-suggest-actions{display:flex;gap:var(--wb-s1);margin-inline-start:calc(-1 * var(--wb-s2))}
:where(.aham-workbench) .wb-ai-confirm h2{margin-block-start:var(--wb-s2)}
:where(.aham-workbench) .wb-ai-changes{display:grid;gap:0;margin:var(--wb-s3) 0;padding:0;list-style:none}
:where(.aham-workbench) .wb-ai-changes li{display:flex;justify-content:space-between;gap:var(--wb-s3);padding:var(--wb-s2) 0;border-top:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-ai-changes li:last-child{border-bottom:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-ai-changes li>span:first-child{color:var(--wb-muted)}
:where(.aham-workbench) .wb-ai-changes strong{font-weight:500}
:where(.aham-workbench) .wb-dialog p.wb-ai-note{margin-block:0 var(--wb-s5)}
/* ---- src/print.css ---- */
/* Print (rules/5-单据.md 打印). Paper uses the light colours (build.mjs adds them under @media print). Navigation,
   panels and controls are hidden; the document flows on the page; tables repeat their header row; rows never split. */
@media print {
  .aham-workbench{display:block;height:auto;overflow:visible;background:var(--wb-bg)}
  .aham-workbench :is(.wb-rail,.wb-header,.wb-doc-actions,.wb-doc-foot,.wb-anchors,.wb-panel,.wb-toasts,.wb-msg-btn,.wb-print-bar,[data-print=hide]){display:none!important}
  .aham-workbench :is(.wb-main,.wb-layout,.wb-document){display:block;margin:0;overflow:visible;border-radius:0;height:auto}
  .aham-workbench .wb-doc-head{position:static;padding-inline:0}
  .aham-workbench .wb-doc-body{padding-inline:0}
  .aham-workbench .wb-document.is-page{container-type:normal}
  .aham-workbench .wb-table{min-width:0;table-layout:auto}
  .aham-workbench .wb-table td{white-space:normal}
  .aham-workbench .wb-table thead{display:table-header-group}
  .aham-workbench .wb-table tr{break-inside:avoid}
  .aham-workbench :is(h2,h3){break-after:avoid}
}
/* Print preview: a toolbar above an A4 sheet at real size. The sheet is the printed output; nothing on it is interactive. */
:where(.aham-workbench.wb-print-preview){display:block;height:auto;min-height:100vh;overflow:visible;background:var(--wb-canvas)}
:where(.aham-workbench) .wb-print-bar{position:sticky;top:0;z-index:var(--wb-z-pop);display:flex;align-items:center;gap:var(--wb-s3);height:var(--wb-header-row);padding:0 var(--wb-s4);background:var(--wb-bg);border-bottom:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-print-bar>.wb-spacer{flex:1}
:where(.aham-workbench) .wb-sheet{box-sizing:border-box;width:210mm;min-height:297mm;margin:var(--wb-s6) auto;padding:15mm;background:var(--wb-bg);color:var(--wb-ink);box-shadow:0 0 0 1px var(--wb-line);font-size:var(--wb-text-sm);line-height:20px}
:where(.aham-workbench) .wb-sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--wb-s5);padding-block-end:var(--wb-s4);border-bottom:1px solid var(--wb-ink)}
:where(.aham-workbench) .wb-sheet-head h1{font-size:var(--wb-title);font-weight:600;line-height:1.3}
:where(.aham-workbench) .wb-sheet-head p{color:var(--wb-muted)}
:where(.aham-workbench) .wb-sheet-mark{padding:0 var(--wb-s2);border:1px solid var(--wb-danger);border-radius:var(--wb-radius-sm);color:var(--wb-danger);font-weight:600;white-space:nowrap}
:where(.aham-workbench) .wb-sheet dl{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);gap:var(--wb-s1) var(--wb-s4);margin:var(--wb-s4) 0}
:where(.aham-workbench) .wb-sheet dt{color:var(--wb-muted)}
:where(.aham-workbench) .wb-sheet h2{margin:var(--wb-s5) 0 var(--wb-s2);font-size:var(--wb-text-sm);font-weight:600}
:where(.aham-workbench) .wb-sheet .wb-table{min-width:0;font-size:var(--wb-text-xs)}
:where(.aham-workbench) .wb-sheet .wb-table :is(th,td){height:28px;padding-inline:var(--wb-s1);border-bottom:var(--wb-hairline) solid var(--wb-line)}
:where(.aham-workbench) .wb-sheet .wb-table thead th{color:var(--wb-ink);border-bottom-color:var(--wb-ink)}
:where(.aham-workbench) .wb-sheet .wb-table tfoot td{font-weight:600;border-bottom:0}
:where(.aham-workbench) .wb-sheet-total{display:grid;justify-items:end;gap:var(--wb-s1);margin-block-start:var(--wb-s3)}
:where(.aham-workbench) .wb-sheet-total strong{font:600 var(--wb-text-base)/1.4 var(--wb-mono)}
:where(.aham-workbench) .wb-sheet-sign{display:grid;grid-template-columns:1fr 1fr;gap:var(--wb-s6);margin-block-start:var(--wb-s8)}
:where(.aham-workbench) .wb-sheet-sign>div{margin-block-start:var(--wb-s7);padding-block-start:var(--wb-s2);border-top:var(--wb-hairline) solid var(--wb-line);color:var(--wb-muted)}
/* Paper is A4 with 15mm margins. On screen the sheet draws those margins as padding; on paper the page does. */
@page{size:A4;margin:15mm}
@media print {
  .aham-workbench.wb-print-preview{background:var(--wb-bg)}
  .aham-workbench .wb-sheet{width:auto;min-height:0;margin:0;padding:0;box-shadow:none}
}
/* ---- src/layout.css.in ---- */
/* Breakpoints are substituted from canonical tokens; CSS variables do not work in media conditions. */
/* Document form: two columns, one column when its container is narrower than bp-form (rules/5-单据.md). */
@container (max-width: 720px) {
 .aham-workbench .wb-form-grid,.aham-workbench .wb-form-grid.is-wide {grid-template-columns:minmax(0,1fr)}
 .aham-workbench .wb-doc-headline {flex-direction:column;gap:var(--wb-s3)}
}
/* Screens at 2x and above draw divider lines at 0.5px (rules/2-视觉.md 2.8). */
@media (min-resolution: 2dppx) {
 .aham-workbench {--wb-hairline:0.5px}
}
/* Wide windows: page side margins grow from 32px to 48px. */
@media (min-width: 1600px) {
 .aham-workbench {--wb-page-gutter:var(--wb-page-gutter-wide)}
}
/* ≤ context breakpoint: full-bleed card, one scroll column, summary after the document, nav opens as an overlay. */
@media (max-width: 1024px) {
 .aham-workbench .wb-main {margin:0;border-radius:0}
 .aham-workbench .wb-layout {display:block;overflow:auto}
 .aham-workbench .wb-layout>.wb-document {overflow:visible}
 .aham-workbench .wb-panel {width:auto;overflow:visible;border-inline-start:0}
 .aham-workbench .wb-context {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--wb-s5);border-inline-start:0;border-top:var(--wb-hairline) solid var(--wb-line)}
 .aham-workbench.expanded {grid-template-columns:var(--wb-rail) minmax(0,1fr)}
 .aham-workbench.expanded .wb-rail {position:fixed;inset-block:0;inset-inline-start:0;z-index:var(--wb-z-nav);width:var(--wb-nav);box-shadow:var(--wb-shadow-float)}
 .aham-workbench .wb-layout.is-list {display:grid;overflow:hidden}
 .aham-workbench .wb-detail {display:block;overflow:auto}
 .aham-workbench .wb-detail-scroll {overflow:visible}
 .aham-workbench .wb-detail>.wb-panel {border-top:var(--wb-hairline) solid var(--wb-line)}
 .aham-workbench .wb-settings-layout {display:block;overflow:auto}
 .aham-workbench .wb-settings-nav {overflow:visible;border-inline-end:0;border-bottom:var(--wb-hairline) solid var(--wb-line)}
 .aham-workbench .wb-settings-nav ul {grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto}
 .aham-workbench .wb-settings-scroll {overflow:visible}
 .aham-workbench .wb-panel[data-size=wide] {position:fixed;inset-block:0;inset-inline-end:0;z-index:var(--wb-z-nav);width:min(var(--wb-panel-wide),100vw);overflow:auto;box-shadow:var(--wb-shadow-float)}
 .aham-workbench .wb-viewer-split {grid-template-columns:minmax(0,1fr)}
 .aham-workbench .wb-viewer-split>.wb-viewer {border-inline-end:0;border-bottom:var(--wb-hairline) solid var(--wb-line)}
}
/* ≤ mobile breakpoint: normal page flow; the rail is hidden until the header toggle opens it. */
@media (max-width: 640px) {
 .aham-workbench,.aham-workbench.expanded {display:block;height:auto;min-height:100vh;overflow:visible;background:var(--wb-bg)}
 .aham-workbench .wb-rail {display:none}
 .aham-workbench.expanded .wb-rail {display:flex}
 .aham-workbench .wb-main {overflow:visible}
 .aham-workbench .wb-layout {overflow:visible}
 .aham-workbench .wb-context {grid-template-columns:1fr}
 .aham-workbench .wb-page-head,.aham-workbench .wb-tabs-bar {flex-wrap:wrap}
 .aham-workbench .wb-header-row {height:auto;min-height:var(--wb-header-row);flex-wrap:wrap;padding-block:var(--wb-s1)}
 .aham-workbench .wb-header-lead {flex-wrap:wrap}
 .aham-workbench .wb-crumbs {flex:1 1 calc(100% - var(--wb-touch) - var(--wb-s2));flex-wrap:wrap;white-space:normal}
 .aham-workbench .wb-crumbs>* {white-space:nowrap}
 .aham-workbench .wb-seg.sm {height:auto}
 .aham-workbench .wb-crumbs-meta {display:none}
 .aham-workbench .wb-tabs {gap:var(--wb-s3)}
 .aham-workbench button,.aham-workbench input:not([type=checkbox],[type=radio]) {min-height:var(--wb-touch)}
 .aham-workbench input,.aham-workbench textarea {font-size:var(--wb-touch-input)}
 .aham-workbench .wb-table {min-width:calc(var(--wb-table-min) + var(--wb-s8))}
 .aham-workbench .wb-layout.is-list {display:block;overflow:visible}
 .aham-workbench .wb-detail {overflow:visible}
 .aham-workbench .wb-detail-main {padding:var(--wb-s4)}
 .aham-workbench .wb-settings {padding:var(--wb-s4) var(--wb-s4) var(--wb-s7)}
 .aham-workbench .wb-setting {flex-wrap:wrap}
 .aham-workbench .wb-pager {flex-wrap:wrap;padding-block:var(--wb-s2)}
 .aham-workbench .wb-search {width:auto;flex:1}
 .aham-workbench .wb-filter-bar {align-items:center}
 .aham-workbench .wb-filter-chips {flex-wrap:nowrap;overflow-x:auto}
 .aham-workbench .wb-chip {flex:none;height:var(--wb-touch)}
 .aham-workbench .wb-chip-remove {width:var(--wb-touch)}
 .aham-workbench {--wb-check-col:var(--wb-touch)}
 .aham-workbench .wb-list,.aham-workbench .wb-list[data-list-density] {--wb-row:var(--wb-touch)}
 .aham-workbench .wb-check-hit {min-height:calc(var(--wb-touch) - 1px)}
 .aham-workbench .wb-toasts {left:var(--wb-s4);right:var(--wb-s4);width:auto}
 .aham-workbench :is(.wb-palette,.wb-create) {margin-top:var(--wb-s4)}
 .aham-workbench .wb-file {grid-template-columns:auto minmax(0,1fr)}
 .aham-workbench .wb-viewer-bar {height:auto;min-height:var(--wb-header-row);flex-wrap:wrap;padding-block:var(--wb-s1)}
 .aham-workbench :is(.wb-file-state,.wb-file-actions) {grid-column:2}
 .aham-workbench .wb-expand>details>summary {grid-template-columns:var(--wb-s4) minmax(0,1fr)}
 .aham-workbench .wb-expand>details>summary>span:nth-child(n+3) {grid-column:2}
 .aham-workbench .wb-expand-body {padding-inline-start:var(--wb-s5)}
 .aham-workbench .wb-stages {grid-auto-columns:minmax(var(--wb-s7),1fr);overflow-x:auto}
 .aham-workbench .wb-next {flex-wrap:wrap}
 .aham-workbench.is-labeled .wb-header [data-action=nav] {display:inline-grid}
}
@media (pointer:coarse) {
 .aham-workbench button,.aham-workbench input:not([type=checkbox],[type=radio]) {min-height:var(--wb-touch);min-width:var(--wb-touch)}
 .aham-workbench {--wb-check-col:var(--wb-touch)}
 .aham-workbench .wb-list,.aham-workbench .wb-list[data-list-density] {--wb-row:var(--wb-touch)}
 .aham-workbench .wb-check-hit {min-height:calc(var(--wb-touch) - 1px)}
 .aham-workbench .wb-seg.sm {height:auto}
 .aham-workbench .wb-chip {height:var(--wb-touch)}
 .aham-workbench .wb-chip-remove {width:var(--wb-touch)}
 .aham-workbench input,.aham-workbench textarea {font-size:var(--wb-touch-input)}
}
/* Increase contrast (rules/9-验收.md): control boundaries and dividers reach 3:1, secondary text darkens, inputs get an outline. */
@media (prefers-contrast: more) {
 .aham-workbench {--wb-line:#8C8880;--wb-line-strong:#8C8880;--wb-muted:#4A4743;--wb-faint:#4A4743}
 .aham-workbench[data-theme="dark"] {--wb-line:#7A766F;--wb-line-strong:#7A766F;--wb-muted:#A5A49A;--wb-faint:#A5A49A}
 .aham-workbench .wb-search {box-shadow:inset 0 0 0 1px var(--wb-line)}
 .aham-workbench :focus-visible {outline-width:3px}
}
@media (prefers-contrast: more) and (prefers-color-scheme: dark) {
 .aham-workbench:not([data-theme="light"]) {--wb-line:#7A766F;--wb-line-strong:#7A766F;--wb-muted:#A5A49A;--wb-faint:#A5A49A}
}
/* Reduce motion (rules/2-视觉.md): state changes switch without transitions. */
@media (prefers-reduced-motion: reduce) {
 .aham-workbench *,.aham-workbench *::before,.aham-workbench *::after {transition-duration:0s!important;animation-duration:0s!important}
}

