/* Hallmark · macrostructure: Workbench · tone: quiet document workspace · anchor hue: 92 · theme: Notion-inspired (user selected) · nav: N3 · footer: Ft2 · enrichment: none · pre-emit critique: P4 H4 E4 S4 R4 V3 · contrast: sampled pass · responsive: 320/375/414/768/1280/1920 pass */
@import url("/static/tokens.css");
:root{--bg:#f6f7f9;--card:#fff;--text:#1d2129;--muted:#6b7280;--line:#e5e7eb;--brand:#0f766e;--brand-text:#fff;--danger:#b42318;--ok:#067647;color-scheme:light dark}
@media(prefers-color-scheme:dark){:root{--bg:#111418;--card:#1b1f24;--text:#e8eaed;--muted:#9aa3ad;--line:#2d333b;--brand:#2dd4bf;--brand-text:#06201d;--danger:#f97066;--ok:#47cd89}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 -apple-system,"PingFang SC","Microsoft YaHei",sans-serif}a{color:var(--brand);overflow-wrap:anywhere}main{max-width:1000px;margin:24px auto;padding:0 16px}.card,.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;min-width:0}h1{font-size:24px;margin:0 0 8px}h2{font-size:19px}.muted{color:var(--muted);font-size:14px}label{display:block;font-size:14px;margin:16px 0 6px}input:not([type=checkbox]),select,textarea{max-width:100%;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:inherit;font-size:16px}input[type=checkbox]{width:auto}button,.btn{display:block;max-width:100%;width:100%;margin-top:16px;padding:11px;border:0;border-radius:8px;background:var(--brand);color:var(--brand-text);font-size:16px;cursor:pointer;text-align:center;text-decoration:none}button.secondary{background:transparent;color:var(--muted);border:1px solid var(--line)}.error{color:var(--danger);font-size:14px}.ok{color:var(--ok);font-size:14px}.status{margin:16px 0;padding:12px;border:1px solid var(--line);border-radius:8px}.qr{display:block;width:220px;height:220px;margin:16px auto}hr{border:0;border-top:1px solid var(--line);margin:20px 0}.dev{background:rgba(255,200,0,.15);padding:8px;border-radius:6px}.nav{display:flex;flex-wrap:wrap;gap:8px 16px;margin-bottom:20px}.nav a{text-decoration:none;padding:4px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}.empty{padding:24px 12px;text-align:center;color:var(--muted)}.pagination{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:16px}.table-wrap{overflow-x:auto;max-width:100%}table{width:100%;border-collapse:collapse}td,th{border-bottom:1px solid var(--line);padding:8px;text-align:left;overflow-wrap:anywhere}pre,code{white-space:pre-wrap;overflow-wrap:anywhere}img,svg,canvas{max-width:100%}.notice{border-left:3px solid var(--brand);padding:8px 12px}.metric{font-size:32px;font-weight:600}ul{padding-left:20px}.inline-form{display:flex;flex-wrap:wrap;align-items:end;gap:8px}.inline-form>*{flex:1;min-width:120px}.chart{min-height:180px}@media(max-width:420px){main{margin:12px auto;padding:0 12px}.card,.panel{padding:16px}.nav{gap:6px 10px}h1{font-size:21px}}

/* Hallmark · Notion-inspired document workspace · nav: N3 · footer: Ft2 · no enrichment
   Existing base rules above are retained; this system supplies the final cascade. */
:root { --bg:var(--color-paper); --card:var(--color-paper); --text:var(--color-ink); --muted:var(--color-ink-2); --line:var(--color-rule); --brand:var(--color-link); --brand-text:var(--color-accent-ink); --danger:var(--color-danger); --ok:var(--color-success); color-scheme:light; }
@media(prefers-color-scheme:dark){:root{color-scheme:dark}}
html,body { overflow-x:clip; }
html { scroll-padding-top:var(--space-xl); }
body { margin:0; font-family:var(--font-body); font-size:var(--text-base); line-height:1.65; background:var(--color-paper); color:var(--color-ink); }
[hidden] { display:none !important; }
*,*::before,*::after { box-sizing:border-box; }
:focus-visible { outline:2px solid var(--color-focus); outline-offset:3px; }
a { color:var(--color-link); text-underline-offset:3px; }
a:hover { text-decoration:underline; }
button,input,select,textarea { font:inherit; }
button,.btn { width:auto; min-height:44px; display:inline-flex; align-items:center; justify-content:center; gap:var(--space-2xs); margin:0; padding:var(--space-2xs) var(--space-xs); border:1px solid var(--color-accent); border-radius:var(--radius-input); background:var(--color-accent); color:var(--color-accent-ink); font-size:var(--text-sm); line-height:1.3; text-decoration:none; cursor:pointer; white-space:nowrap; transition:background-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out); }
button:hover,.btn:hover { opacity:.86; text-decoration:none; }
button:active,.btn:active { background:var(--color-selected); }
button:disabled,.btn[aria-disabled=true] { opacity:.45; cursor:not-allowed; transform:none; }
button[aria-busy=true],.btn[aria-busy=true] { cursor:wait; }
button.secondary,.btn.secondary { background:var(--color-paper); color:var(--color-ink); border-color:var(--color-rule-strong); }
button.ghost,.btn.ghost { background:var(--color-transparent); color:var(--color-ink-2); border-color:var(--color-transparent); }
button.ghost:hover,.btn.ghost:hover { background:var(--color-paper-3); opacity:1; }
button.danger,.btn.danger { color:var(--color-danger); background:var(--color-danger-bg); border-color:var(--color-danger-bg); }
button.small,.btn.small { font-size:var(--text-xs); min-height:30px; padding:var(--space-3xs) var(--space-2xs); }
button.block,.btn.block { display:flex; width:100%; }
.icon-button { padding:var(--space-2xs); min-width:36px; }
.icon { width:18px; height:18px; flex:none; vertical-align:-3px; color:inherit; }
label { display:flex; flex-direction:column; align-items:stretch; gap:var(--space-2xs); margin:0; color:var(--color-ink-2); font-size:var(--text-sm); min-width:0; }
label:has(input[type=checkbox]),label:has(input[type=radio]),.check { display:flex; flex-direction:row; align-items:center; flex-wrap:wrap; color:var(--color-ink); gap:var(--space-2xs); }
input:not([type=checkbox]):not([type=radio]),select,textarea { width:100%; max-width:100%; min-width:0; padding:var(--space-2xs) var(--space-xs); background:var(--color-paper); color:var(--color-ink); border:1px solid var(--color-rule-strong); border-radius:var(--radius-input); font-size:var(--text-base); line-height:1.5; }
input[type=hidden] { display:none; }
input[type=checkbox],input[type=radio] { width:16px; height:16px; flex:none; accent-color:var(--color-focus); }
textarea { min-height:96px; resize:vertical; }
input::placeholder,textarea::placeholder { color:var(--color-ink-2); opacity:1; }
input[aria-invalid=true],textarea[aria-invalid=true] { border-color:var(--color-danger); }
form { min-width:0; }
form>label+label,form>label+button,form>input+button,form>fieldset+label { margin-top:var(--space-sm); }
fieldset { margin:var(--space-sm) 0; padding:var(--space-sm); border:1px solid var(--color-rule); border-radius:var(--radius-input); min-width:0; }
legend { padding:0 var(--space-2xs); font-size:var(--text-sm); }
h1,h2,h3 { font-family:var(--font-display); color:var(--color-ink); font-style:normal; min-width:0; overflow-wrap:anywhere; }
h1 { margin:0 0 var(--space-2xs); font-size:var(--text-display); font-weight:700; line-height:1.25; letter-spacing:-.025em; }
h2 { margin:var(--space-lg) 0 var(--space-sm); font-size:var(--text-lg); font-weight:600; line-height:1.4; }
h3 { margin:var(--space-sm) 0 var(--space-2xs); font-size:var(--text-base); }
p { margin:0 0 var(--space-sm); overflow-wrap:anywhere; }
ul { padding-inline-start:var(--space-md); }
hr { border:0; border-top:1px solid var(--color-rule); margin:var(--space-lg) 0; }
main { width:100%; max-width:none; margin:0; padding:0; }
.skip-link { position:fixed; inset-block-start:-80px; inset-inline-start:var(--space-sm); background:var(--color-paper); color:var(--color-ink); padding:var(--space-xs); z-index:var(--z-menu); }
.skip-link:focus { inset-block-start:var(--space-2xs); }
.workspace-sidebar { display:none; }
.workspace-topbar { min-height:44px; padding:var(--space-3xs) var(--space-sm); display:flex; align-items:center; justify-content:space-between; gap:var(--space-sm); border-bottom:1px solid var(--color-rule); }
.breadcrumb { display:flex; align-items:center; gap:var(--space-2xs); color:var(--color-ink-2); font-size:var(--text-sm); min-width:0; }
.breadcrumb>a { color:var(--color-ink-2); text-decoration:none; white-space:nowrap; }
.breadcrumb>span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--color-ink); }
.breadcrumb .workspace-label { display:none; }
.workspace-content { max-width:var(--page-width); margin-inline:auto; padding:var(--space-md) var(--space-sm) var(--space-xl); min-height:calc(100dvh - 130px); }
.workspace-content.narrow { max-width:720px; }
.workspace-content.auth-page { max-width:520px; padding-top:var(--space-lg); }
.site-foot { margin:0; padding:var(--space-sm); color:var(--color-ink-2); font-size:var(--text-xs); border-top:1px solid var(--color-rule); }
.brand { display:flex; align-items:center; gap:var(--space-2xs); color:var(--color-ink); text-decoration:none; font-size:var(--text-sm); font-weight:600; }
.brand:hover { text-decoration:none; }
.brand-mark { display:grid; place-items:center; width:28px; height:28px; border:1px solid var(--color-rule-strong); border-radius:var(--radius-input); font-size:18px; background:var(--color-paper); color:var(--color-ink); }
.sidebar-heading { padding:var(--space-md) var(--space-xs) var(--space-2xs); font-size:var(--text-xs); font-weight:500; color:var(--color-ink-2); }
.sidebar-links { display:flex; flex-direction:column; gap:2px; }
.sidebar-link { display:flex; align-items:center; gap:var(--space-2xs); padding:var(--space-2xs) var(--space-xs); min-height:36px; border-radius:var(--radius-input); text-decoration:none; color:var(--color-ink-2); font-size:var(--text-sm); white-space:nowrap; }
.sidebar-link:hover,.sidebar-link[aria-current=page] { color:var(--color-ink); background:var(--color-paper-3); text-decoration:none; }
.sidebar-link[aria-current=page] { font-weight:600; }
.sidebar-profile { margin-top:auto; padding:var(--space-sm) var(--space-xs); border-top:1px solid var(--color-rule); display:flex; align-items:center; gap:var(--space-2xs); font-size:var(--text-sm); color:var(--color-ink); text-decoration:none; }
.profile-avatar { display:grid; place-items:center; width:28px; height:28px; flex:none; border-radius:var(--radius-input); background:var(--color-paper-3); }
.profile-copy { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mobile-nav { margin:0; border:0; }
.mobile-nav>summary { min-height:44px; display:flex; align-items:center; gap:var(--space-2xs); padding:0 var(--space-sm); font-size:var(--text-sm); cursor:pointer; color:var(--color-ink-2); }
.mobile-nav>summary::marker { content:''; }
.mobile-nav>summary::-webkit-details-marker { display:none; }
.mobile-nav .sidebar-links { padding:var(--space-2xs) var(--space-sm) var(--space-sm); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); background:var(--color-paper-2); }
.mobile-nav .sidebar-heading { grid-column:1/-1; }
.mobile-nav .sidebar-link { min-height:44px; }
.page-head { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-3xs) var(--space-xs); margin-bottom:var(--space-sm); }
.page-title-row { display:flex; align-items:center; gap:10px; flex:0 1 auto; min-width:0; min-height:44px; }
.page-head>p { margin:0; }
.page-head h1 { margin:0; font-size:clamp(24px,2vw,28px); line-height:1.25; }
.page-icon { display:flex; align-items:center; flex:none; color:var(--color-ink-2); margin:0; }
.page-icon>.icon { width:24px; height:24px; }
.page-head>.lede { flex:1 1 220px; max-width:none; margin:0; line-height:1.5; }
.page-head>.page-meta,.page-head>.practice-meta { margin:0; min-width:0; color:var(--color-ink-2); font-size:var(--text-sm); }
.page-head>a { flex-basis:100%; font-size:var(--text-sm); line-height:1.5; }
.page-head>.page-meta:empty { display:none; }
.lede { margin:var(--space-2xs) 0 0; max-width:68ch; color:var(--color-ink-2); font-size:var(--text-sm); }
.page-actions,.form-actions,.row-actions { display:flex; flex-wrap:wrap; gap:var(--space-2xs); align-items:center; }
.page-actions { min-height:44px; margin:0; margin-inline-start:auto; }
.form-actions { grid-column:1/-1; padding-top:var(--space-2xs); }
.section-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--space-2xs); padding-bottom:var(--space-xs); border-bottom:1px solid var(--color-rule); margin-bottom:var(--space-sm); }
.section-head h2,.section-title { font-size:var(--text-base); margin:0; font-weight:600; }
.section-head a,.section-note { font-size:var(--text-sm); color:var(--color-ink-2); }
.panel,.card,.document-section { background:var(--color-transparent); border:0; border-radius:0; padding:var(--space-lg) 0; min-width:0; }
.panel+.panel,.document-section+.document-section { border-top:1px solid var(--color-rule); }
.panel>h2:first-child,.document-section>h2:first-child { margin-top:0; }
.grid,.form-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-sm); }
.grid>.panel { padding-top:var(--space-sm); }
.form-grid>label,.grid>label { margin:0; }
.field-wide { grid-column:1/-1; }
.form-grid>button,.grid>button { justify-self:start; align-self:end; }
.toolbar,.filter-bar,.inline-form { display:flex; flex-wrap:wrap; align-items:end; gap:var(--space-2xs); padding:var(--space-2xs) 0; }
.filter-bar>label { display:flex; flex-direction:row; align-items:center; gap:6px; flex:0 1 160px; min-width:0; font-size:13px; white-space:nowrap; }
.filter-bar>label:has(input:not([type=date]):not([type=month])) { flex:1 1 184px; }
.filter-bar>label:has(input[type=date]),.filter-bar>label:has(input[type=month]) { flex-basis:194px; }
.filter-bar>label:has(select[name=view]) { flex-basis:190px; }
#task-filter>label:has(select) { flex-basis:130px; }
.filter-bar input:not([type=checkbox]):not([type=radio]),.filter-bar select { flex:1 1 auto; width:0; min-width:0; min-height:44px; padding-inline:var(--space-2xs); font-size:var(--text-sm); }
.filter-bar>button,.filter-bar>.btn { flex:0 0 auto; }
.filter-bar>*,.toolbar>*,.inline-form>* { margin-top:0; }
.inline-form>label { flex:1 1 150px; min-width:0; }
.inline-form>input { flex:1 1 160px; }
.inline-form>button { flex:0 0 auto; min-width:0; }
.view-tabs { display:flex; flex-wrap:wrap; gap:var(--space-sm); border-bottom:1px solid var(--color-rule); margin:var(--space-md) 0 0; }
.view-tab { display:inline-flex; align-items:center; gap:var(--space-2xs); min-height:42px; padding:var(--space-2xs) 0; color:var(--color-ink-2); border-bottom:2px solid var(--color-transparent); text-decoration:none; font-size:var(--text-sm); white-space:nowrap; }
.view-tab[aria-current=page],.view-tab.is-active { color:var(--color-ink); border-bottom-color:var(--color-ink); font-weight:600; }
.database-list { margin:0; padding:0; list-style:none; }
.database-row { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-xs); border-bottom:1px solid var(--color-rule); padding:var(--space-xs) var(--space-2xs); margin:0; min-width:0; }
.database-row:hover { background:var(--color-paper-2); }
.row-main { min-width:0; flex:1 1 180px; }
.row-title { display:block; color:var(--color-ink); font-weight:500; text-decoration:none; overflow-wrap:anywhere; }
.row-meta { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2xs); color:var(--color-ink-2); font-size:var(--text-xs); }
.tag { display:inline-flex; align-items:center; gap:var(--space-3xs); padding:1px var(--space-2xs); border-radius:var(--radius-tag); background:var(--color-paper-3); color:var(--color-ink-2); font-size:var(--text-xs); line-height:1.65; white-space:nowrap; }
.tag.success { color:var(--color-success); background:var(--color-success-bg); }
.tag.warning { color:var(--color-warning); background:var(--color-warning-bg); }
.tag.danger { color:var(--color-danger); background:var(--color-danger-bg); }
.empty { padding:var(--space-lg) var(--space-sm); text-align:left; color:var(--color-ink-2); font-size:var(--text-sm); background:var(--color-paper-2); border-radius:var(--radius-input); }
.empty p { margin-bottom:var(--space-2xs); }
.empty a { display:inline-block; margin-top:var(--space-2xs); }
.callout,.notice,.status,.dev { margin:var(--space-sm) 0; padding:var(--space-sm); border:0; border-radius:var(--radius-input); background:var(--color-paper-2); color:var(--color-ink-2); font-size:var(--text-sm); }
.callout strong { color:var(--color-ink); }
.error { color:var(--color-danger); }
.ok { color:var(--color-success); }
#page-message:not(:empty),#commerce-message:not(:empty) { margin-top:var(--space-sm); padding:var(--space-xs) var(--space-sm); background:var(--color-paper-2); border-radius:var(--radius-input); font-size:var(--text-sm); }
#page-message.error:not(:empty),#commerce-message.error:not(:empty) { background:var(--color-danger-bg); }
.muted { color:var(--color-ink-2); font-size:var(--text-sm); }
.table-wrap { max-width:100%; overflow-x:auto; border:1px solid var(--color-rule); border-radius:var(--radius-input); }
table { width:100%; border-collapse:collapse; font-size:var(--text-sm); font-variant-numeric:tabular-nums; }
th { color:var(--color-ink-2); font-weight:500; background:var(--color-paper-2); }
th,td { padding:var(--space-xs); text-align:start; vertical-align:top; border-bottom:1px solid var(--color-rule); }
tr:last-child td { border-bottom:0; }
.details-list,details:not(.mobile-nav) { margin:var(--space-md) 0; border-top:1px solid var(--color-rule); }
summary { cursor:pointer; padding:var(--space-xs) 0; font-size:var(--text-sm); font-weight:500; }
details>form { padding:var(--space-sm) 0 var(--space-md); }
.prose { max-width:72ch; line-height:1.85; }
.prose p { margin-bottom:var(--space-md); }
.property-list { display:grid; grid-template-columns:minmax(80px,1fr) minmax(0,3fr); gap:var(--space-xs) var(--space-sm); margin:var(--space-md) 0; font-size:var(--text-sm); }
.property-list dt { color:var(--color-ink-2); }
.property-list dd { margin:0; overflow-wrap:anywhere; }
.stat-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-sm); padding:var(--space-md) 0; margin-bottom:var(--space-lg); border-block:1px solid var(--color-rule); }
.stat { min-width:0; }
.stat>span { display:block; color:var(--color-ink-2); font-size:var(--text-xs); }
.stat .metric { display:block; margin-top:var(--space-2xs); font-size:var(--text-xl); line-height:1.3; font-weight:600; color:var(--color-ink); }
.metric { font-variant-numeric:tabular-nums; }
.home-columns { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-lg); }
.home-columns section { min-width:0; }
.quick-links { list-style:none; margin:0; padding:0; }
.quick-links a { display:flex; align-items:center; gap:var(--space-xs); padding:var(--space-xs) var(--space-2xs); border-bottom:1px solid var(--color-rule); color:var(--color-ink); text-decoration:none; font-size:var(--text-sm); }
.quick-links a:hover { background:var(--color-paper-2); }
.quick-links .icon:last-child { margin-inline-start:auto; color:var(--color-ink-2); }
.auth-page .page-icon>.icon { width:24px; height:24px; }
.auth-page form { margin-top:var(--space-md); }
.auth-page form>button { margin-top:var(--space-md); }
.auth-page .auth-links { margin-top:var(--space-lg); }
pre,code { font-family:var(--font-mono); font-size:var(--text-sm); }
pre { padding:var(--space-sm); border-radius:var(--radius-input); background:var(--color-paper-2); }
img,svg,canvas { max-width:100%; }
.qr { width:220px; height:220px; }
@media(min-width:40rem) {
 .workspace-content { padding:var(--space-md) var(--space-lg) var(--space-xl); }
 .grid,.form-grid,.detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .detail-grid { display:grid; gap:var(--space-lg); }
 .breadcrumb .workspace-label { display:inline; }
 .stat .metric { font-size:1.75rem; }
 section:has(> #review-filter) { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-2xs) var(--space-sm); padding-block:var(--space-2xs); }
 section:has(> #review-filter)>.range-shortcuts { flex:0 0 auto; padding:0; }
 section:has(> #review-filter)>.range-shortcuts button { min-height:44px; }
 #review-filter { flex:1 1 490px; padding:0; }
 #review-range-label { flex-basis:100%; margin:0; }
}
@media(min-width:60rem) {
 .workspace-sidebar { display:flex; flex-direction:column; position:fixed; inset:0 auto 0 0; width:var(--sidebar-width); padding:var(--space-sm) var(--space-2xs) 0; background:var(--color-paper-2); border-inline-end:1px solid var(--color-rule); }
 .workspace-sidebar>.brand { padding:var(--space-2xs) var(--space-xs) var(--space-md); }
 .workspace-sidebar>.sidebar-links { overflow-y:auto; padding-bottom:var(--space-md); }
 .has-sidebar .workspace-main { margin-inline-start:var(--sidebar-width); }
 .workspace-topbar { border-bottom:0; padding-inline:var(--space-md); }
 .mobile-nav { display:none; }
 .workspace-content { padding-inline:var(--space-lg); }
 .home-columns { grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:var(--space-xl); }
 .site-foot { padding-inline:var(--space-xl); }
}
@media(pointer:coarse), (max-width:40rem) {
 button,.btn,button.small,.btn.small,input:not([type=checkbox]):not([type=radio]),select { min-height:44px; }
 .row-actions { width:100%; }
}
@media(max-width:40rem) {
 .workspace-content { padding-top:var(--space-sm); }
 .page-head { gap:var(--space-2xs) var(--space-xs); }
 .page-title-row { min-width:0; }
 .page-head>.lede { flex-basis:100%; }
 .page-actions { margin-inline-start:0; }
 .filter-bar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:end; gap:var(--space-2xs); }
 .filter-bar>label { flex-direction:column; align-items:stretch; gap:var(--space-3xs); white-space:normal; }
 .filter-bar input:not([type=checkbox]):not([type=radio]),.filter-bar select { width:100%; flex:none; }
 .filter-bar input[type=date],.filter-bar input[type=month] { padding-inline:6px; }
 .filter-bar>.field-wide { grid-column:1/-1; }
 .filter-bar>button,.filter-bar>.btn { justify-self:stretch; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } button:active,.btn:active { transform:none; } }
@media print { .workspace-sidebar,.workspace-topbar,.mobile-nav,.site-foot,.page-actions { display:none!important; } .has-sidebar .workspace-main { margin:0; } .workspace-content { padding:0; } }
/* Domain components share the document system. */
.task-group { margin-block:var(--space-md); }
.task-group>h2,.task-group>h3 { padding-bottom:var(--space-2xs); border-bottom:1px solid var(--color-rule); font-size:var(--text-sm); }
.task-check { display:flex; flex-direction:row; gap:var(--space-xs); align-items:center; min-width:0; }
.check-field { flex-direction:row; align-items:center; gap:var(--space-2xs); }
.check-options { display:flex; flex-wrap:wrap; gap:var(--space-sm); }
.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); width:100%; gap:0; border-top:1px solid var(--color-rule); border-inline-start:1px solid var(--color-rule); }
.calendar-weekday { color:var(--color-ink-2); background:var(--color-paper-2); text-align:center; font-size:var(--text-xs); padding:var(--space-2xs) 0; }
.calendar-day { min-width:0; min-height:90px; padding:var(--space-3xs); border-bottom:1px solid var(--color-rule); border-inline-end:1px solid var(--color-rule); font-size:var(--text-xs); }
.calendar-day a { overflow-wrap:anywhere; }
.calendar-task { display:block; color:var(--color-ink); background:var(--color-paper-2); border-radius:var(--radius-tag); padding:2px; margin-block:var(--space-3xs); font-size:var(--text-xs); line-height:1.4; overflow-wrap:anywhere; }
.timer-display { font-family:var(--font-mono); font-size:clamp(2.4rem,7vw,4rem); line-height:1.3; letter-spacing:-.045em; font-variant-numeric:tabular-nums; margin:var(--space-md) 0; }
.timer-workspace { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-lg); }
.notification-unread { background:var(--color-paper-2); }
.read-state { font-size:var(--text-xs); color:var(--color-ink-2); }
.question-block { padding-block:var(--space-lg); border-bottom:1px solid var(--color-rule); min-width:0; }
.question-block>h2 { font-size:var(--text-sm); color:var(--color-ink-2); margin-top:0; }
.question-stem { font-size:var(--text-base); line-height:1.9; white-space:pre-wrap; }
.question-material { white-space:pre-wrap; line-height:1.85; padding:var(--space-sm); background:var(--color-paper-2); border-radius:var(--radius-input); }
.answer-options { display:grid; gap:var(--space-2xs); margin:var(--space-md) 0; }
.answer-option { display:flex; flex-direction:row; align-items:flex-start; gap:var(--space-xs); min-height:44px; padding:var(--space-xs); border:1px solid var(--color-rule); border-radius:var(--radius-input); color:var(--color-ink); cursor:pointer; }
.answer-option input { margin-top:5px; }
.answer-option:has(input:checked) { background:var(--color-paper-2); border-color:var(--color-ink-2); }
.answer-option:has(input:focus-visible) { outline:2px solid var(--color-focus); outline-offset:2px; }
.answer-feedback { background:var(--color-paper-2); border-radius:var(--radius-input); padding:var(--space-sm); line-height:1.8; margin-top:var(--space-md); }
.practice-meta { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-sm); color:var(--color-ink-2); font-size:var(--text-sm); }
.chart { width:100%; min-height:0; }
.chart-scroll { max-width:100%; overflow-x:auto; }
.chart-scroll svg { max-width:none; }
.image-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr)); gap:var(--space-sm); }
.image-item { min-width:0; margin:0; }
.image-item img { display:block; max-height:320px; object-fit:contain; margin-bottom:var(--space-2xs); }
.legal-consent { line-height:1.9; }
.authorize-button { max-width:100%; overflow:hidden; text-overflow:ellipsis; display:block; }
@media(min-width:60rem){.timer-workspace{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.calendar-day{min-height:120px;padding:var(--space-2xs)}}

/* Shared control alignment and compact document disclosures. */
input:not([type=checkbox]):not([type=radio]),select { min-height:44px; }
input,select,textarea { outline:2px solid var(--color-transparent); outline-offset:1px; }
input:focus-visible,select:focus-visible,textarea:focus-visible { outline-color:var(--color-focus); }
input:disabled,select:disabled,textarea:disabled { opacity:.55; cursor:not-allowed; background:var(--color-paper-2); }
.section-head>p { margin:0; }
details.document-section { padding:0; margin:var(--space-md) 0; }
#page-message:empty,#commerce-message:empty { min-height:0; margin:0; padding:0; }
label.answer-option { flex-wrap:nowrap; align-items:flex-start; }

input:not([type=checkbox]):not([type=radio]),select,textarea { border-color:var(--color-control-border); }
input[aria-invalid=true],textarea[aria-invalid=true] { border-color:var(--color-danger); }

input:not([type=checkbox]):not([type=radio])[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true] { border-color:var(--color-danger); }
.calendar-scroll { width:100%; max-width:100%; overflow-x:auto; }
.calendar-grid { min-width:700px; }
.calendar-task { padding:var(--space-3xs); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-decoration:none; }
.calendar-scroll-hint { font-size:var(--text-xs); color:var(--color-ink-2); }
@media(min-width:60rem) { .calendar-scroll-hint { display:none; } }
@media(pointer:coarse), (max-width:40rem) { .calendar-task { min-height:44px; padding:var(--space-xs) var(--space-3xs); line-height:1.65; } }

/* WP-30: reusable database views, property controls and side peek. */
button.view-tab { background:var(--color-transparent); color:var(--color-ink-2); border:0; border-bottom:2px solid var(--color-transparent); border-radius:0; padding:var(--space-2xs) 0; }
button.view-tab[aria-selected=true] { color:var(--color-ink); border-bottom-color:var(--color-ink); font-weight:600; }
button.view-tab:hover { opacity:1; color:var(--color-ink); }
[role=tabpanel]:focus { outline-offset:4px; }
[role=tabpanel]:focus:not(:focus-visible) { outline:none; }
.segmented-control,.range-shortcuts,.trend-switcher { display:flex; flex-wrap:wrap; gap:var(--space-3xs); align-items:center; }
.segmented-control button,.range-shortcuts button,.trend-switcher button { background:var(--color-transparent); border-color:var(--color-transparent); color:var(--color-ink-2); padding:var(--space-2xs); }
.segmented-control button[aria-pressed=true],.range-shortcuts button[aria-pressed=true],.trend-switcher button[aria-pressed=true] { background:var(--color-paper-3); color:var(--color-ink); }
button[aria-busy=true] { cursor:wait; }
button[aria-busy=true]::after { content:'…'; width:1em; color:currentColor; }
body.peek-open { overflow-y:hidden; }
.peek-dialog { position:fixed; inset:0 0 0 auto; margin:0; width:min(620px,100vw); height:100dvh; max-height:100dvh; max-width:100vw; padding:0; border:0; border-inline-start:1px solid var(--color-rule); border-radius:0; color:var(--color-ink); background:var(--color-paper); box-shadow:-2px 0 8px var(--color-shadow); }
.peek-dialog[open] { display:flex; flex-direction:column; }
.peek-dialog::backdrop { background:var(--color-shadow); }
.peek-head { display:flex; align-items:flex-start; gap:var(--space-sm); justify-content:space-between; padding:var(--space-md); border-bottom:1px solid var(--color-rule); }
.peek-head h2 { margin:0; font-size:var(--text-xl); }
.peek-head p { margin:0 0 var(--space-3xs); }
.peek-body { padding:var(--space-md); overflow-y:auto; min-height:0; flex:1; }
.peek-footer { padding:var(--space-sm) var(--space-md); border-top:1px solid var(--color-rule); display:flex; gap:var(--space-2xs); flex-wrap:wrap; }
.peek-footer:empty { display:none; }
.record-peek { min-width:0; }
.record-peek .property-list { grid-template-columns:minmax(80px,1fr) minmax(0,2fr); }
.analytics-stats { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:var(--space-md); }
.metric-note { display:block; margin-top:var(--space-2xs); font-size:var(--text-xs); color:var(--color-ink-2); line-height:1.6; }
.distribution-list { margin:0; padding:0; list-style:none; }
.distribution-row { padding:var(--space-sm) 0; border-bottom:1px solid var(--color-rule); }
.distribution-bar { display:block; height:4px; background:var(--color-ink-2); border-radius:var(--radius-tag); transform-origin:left; max-width:100%; margin-top:var(--space-2xs); }
.pair-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-sm); }
.review-table th { white-space:nowrap; }
.review-table td { min-width:5.5rem; }
.review-table td:first-child { white-space:nowrap; }
.review-table a { color:var(--color-ink); text-decoration:none; }
.review-table a:hover { text-decoration:underline; }
.review-table tbody tr:hover { background:var(--color-paper-2); }
.review-table .btn, .review-table button { min-width:0; }
.record-note { white-space:pre-wrap; }
@media(min-width:48rem) { .analytics-stats { grid-template-columns:repeat(3,minmax(0,1fr)); } .pair-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.import-steps { display:flex; flex-wrap:wrap; gap:var(--space-md); padding:0; margin:var(--space-md) 0; list-style:none; counter-reset:import-step; }
.import-steps li { counter-increment:import-step; display:flex; align-items:center; gap:var(--space-2xs); color:var(--color-ink-2); font-size:var(--text-sm); }
.import-steps li::before { content:counter(import-step); display:grid; place-items:center; width:24px; height:24px; border:1px solid var(--color-rule-strong); border-radius:var(--radius-input); font-size:var(--text-xs); }
.import-steps li[data-state=current] { color:var(--color-ink); font-weight:600; }
.import-steps li[data-state=current]::before { color:var(--color-accent-ink); background:var(--color-accent); border-color:var(--color-accent); }
.import-steps li[data-state=complete]::before { color:var(--color-success); background:var(--color-success-bg); border-color:var(--color-success-bg); }
.import-success { padding:var(--space-sm); color:var(--color-success); background:var(--color-success-bg); border-radius:var(--radius-input); }
.review-fields { padding:0; border:0; margin:0; }
.metrics-editor { max-width:100%; }
.metrics-table { min-width:960px; }
.metrics-table th { white-space:nowrap; }
.metrics-table input,.metrics-table select { min-width:80px; }
.metrics-table td:nth-child(2) input,.metrics-table td:nth-child(3) input { min-width:120px; }
.metrics-actions { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-xs); padding-block:var(--space-sm); }

/* User STYLEKIT: prohibition rules outrank conflicting scale/shadow examples. */
button,.btn,button.secondary,.btn.secondary,button.ghost,.btn.ghost,button.danger,.btn.danger { background:var(--color-transparent); color:var(--color-ink); border-color:var(--color-rule-strong); font-weight:500; }
button.ghost,.btn.ghost { border-color:var(--color-transparent); }
button.danger,.btn.danger { color:var(--color-danger); }
button:hover,.btn:hover,button.ghost:hover,.btn.ghost:hover,button.view-tab:hover { background:var(--color-paper-3); opacity:1; }
button:active,.btn:active,button.view-tab:active { background:var(--color-selected); }
button:disabled:hover { background:var(--color-transparent); opacity:.45; }
button.view-tab { border-inline:0; border-top:0; border-bottom:2px solid var(--color-transparent); }
button.view-tab[aria-selected=true] { background:var(--color-transparent); border-bottom-color:var(--color-ink); }
.sidebar-link,.quick-links a,.database-row,.review-table tbody tr,summary { transition:background-color var(--dur-short) var(--ease-out); }
.sidebar-link:hover,.quick-links a:hover,.database-row:hover,.review-table tbody tr:hover,summary:hover { background:var(--color-paper-3); }
.sidebar-link[aria-current=page],.sidebar-link:active,.quick-links a:active { background:var(--color-selected); }
.database-row { position:relative; }
.database-row::before { content:'⋮⋮'; position:absolute; inset-inline-start:-16px; color:var(--color-ink-2); font-size:var(--text-xs); letter-spacing:-3px; opacity:0; pointer-events:none; transition:opacity var(--dur-short) var(--ease-out); }
.database-row:hover::before,.database-row:focus-within::before { opacity:1; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
progress.distribution-bar { appearance:none; width:100%; height:5px; background:var(--color-paper-3); border:0; }
progress.distribution-bar::-webkit-progress-bar { background:var(--color-paper-3); }
progress.distribution-bar::-webkit-progress-value { background:var(--color-ink-2); }
progress.distribution-bar::-moz-progress-bar { background:var(--color-ink-2); }
.chart-data { color:var(--color-ink-2); font-size:var(--text-sm); }
.chart-data .table-wrap { color:var(--color-ink); }
@media(prefers-reduced-motion:reduce) { .database-row::before { transition:none; } }

/* Preserve readable analytic columns; narrow screens scroll within the table. */
#review-modules table,#review-pair-details table { min-width:620px; }
#review-modules th,#review-pair-details th { white-space:nowrap; }
