:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Inter,system-ui,sans-serif;color:#1f1d1a;background:var(--surface);color-scheme:light;-webkit-font-smoothing:antialiased;font-synthesis:none;
--ink:#1f1d1a;--ink-2:#4a463f;--muted:#6f6a62;--line:#efede8;--line-strong:#e3e0d9;--wash:#f6f5f1;--hover:#faf9f6;--green:#2c8a5a;--red:#d93f3f;--amber:#c27c1a;--blue:#2f6fde;--gutter:20px;
--shadow-1:0 1px 2px #1f1d1a0d;--shadow-2:0 1px 2px #1f1d1a0a,0 6px 18px #1f1d1a12;--shadow-3:0 2px 8px #1f1d1a12,0 24px 64px #1f1d1a29;
--ease:cubic-bezier(.2,.8,.2,1);
/* ADR-010: one blue accent for actions and selection, one colour for the view icons, blue tag signs, 4px corners (6px for buttons and popups). */
--accent:#2563eb;--on-accent:#fff;--nav-icon:#dd3f8b;--tag-blue:#2f7cf6;--neutral:#8b8f98;--r:4px;--r-btn:6px;
--tag-bg:13%;--tag-strength:92%;--tag-against:#1f1d1a;--tag-dot:100%;--surface:#fff;--surface-2:#f7f6f2;--mix:#fff;--sidebar-hover:#ecebe6;--sidebar-active:#e4e3dd;--backdrop:#2a26203d}
body{--accent-soft:color-mix(in srgb,var(--accent) 11%,var(--mix));--accent-line:color-mix(in srgb,var(--accent) 32%,var(--mix));--accent-text:color-mix(in srgb,var(--accent) 78%,var(--ink))}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-size:13.5px;line-height:1.45;min-width:320px;background:var(--surface);color:var(--ink);overflow:hidden;letter-spacing:-.05px}
button,input,select,textarea{font:inherit;color:inherit}
button,a,input,select,textarea{touch-action:manipulation}
button{cursor:pointer;background:none;border:0}
a{color:inherit}
button:disabled{opacity:.4;cursor:default}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.icon{width:16px;height:16px;flex:none;display:block}
p{margin:0 0 10px}
h1,h2,h3,h4{font-weight:600;margin:0;line-height:1.25}
h1{font-size:24px;letter-spacing:-.6px;font-weight:700}
h2{font-size:15px;letter-spacing:-.25px}
h3{font-size:13px}
kbd{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;border:1px solid var(--line);border-radius:4px;padding:0 4px;color:var(--muted);background:var(--surface)}

/* App shell (ADR-008): a sidebar and a main column; every view scrolls inside #content. */
.workspace{display:grid;grid-template-columns:244px minmax(0,1fr);height:100vh;height:100dvh}
.main{display:flex;flex-direction:column;min-width:0;min-height:0}
.sidebar{display:flex;flex-direction:column;gap:2px;min-height:0;overflow:auto;padding:12px 10px 10px;background:var(--surface-2);border-right:1px solid var(--line);scrollbar-width:thin}
.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 10px 6px}
.sidebar-top{gap:4px}.sidebar-top .brand{margin-right:auto}.sidebar-top .sidebar-toggle{margin:0}
.workspace-switcher{display:grid;gap:4px;margin:2px 4px 10px;padding:0 5px;color:var(--muted);font-size:10.5px;font-weight:650;letter-spacing:.5px;text-transform:uppercase}
.workspace-switcher select{width:100%;min-width:0;padding:7px 8px;border:1px solid var(--line);border-radius:var(--r-btn);background:var(--surface);color:var(--ink);font-size:13px;font-weight:500;text-transform:none;letter-spacing:normal}
.brand{display:flex;align-items:center;gap:8px;font-size:15.5px;letter-spacing:-.5px;font-weight:650;text-decoration:none;flex:none}
.brand-mark{display:grid;place-items:center;width:24px;height:24px;border-radius:var(--r);background:linear-gradient(145deg,#3a3630,#14120f);color:#fff;font-family:Georgia,serif;font-size:17px;font-weight:400;line-height:1;box-shadow:inset 0 1px 0 #ffffff26,var(--shadow-1)}
.navigation{display:flex;flex-direction:column;gap:1px;margin:6px 0 4px}
.nav-gap{display:block;height:10px}
.navigation::-webkit-scrollbar{display:none}
.navigation>a,.settings-nav{display:flex;align-items:center;gap:9px;height:30px;padding:0 9px;text-decoration:none;color:var(--ink);font-size:13.5px;font-weight:500;border-radius:var(--r);transition:background-color .15s var(--ease)}
.navigation>a:hover,.settings-nav:hover{background:var(--sidebar-hover)}
.navigation>a.active,.settings-nav.active{background:var(--sidebar-active);font-weight:600}
.nav-icon{width:17px;height:17px}
.navigation .nav-icon{color:var(--nav-icon)}.settings-nav .nav-icon{color:var(--muted)}
.navigation span{margin-left:auto;font-size:12px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}
.navigation span:empty{display:none}
.navigation span.alert{color:#fff;background:var(--red);border-radius:var(--r);padding:0 6px;line-height:18px;font-weight:650;font-size:11px}
/* Sidebar lists: open projects and the most used tags. */
.sidebar-section{margin-top:14px}
.sidebar-section h2{font-size:10.5px;font-weight:650;color:var(--muted);letter-spacing:.6px;text-transform:uppercase;margin:0 0 3px 10px}
.side-item{display:flex;align-items:center;gap:9px;width:100%;height:28px;padding:0 9px 0 12px;border-radius:var(--r);font-size:13px;text-align:left;color:var(--ink-2);transition:background-color .15s}
.side-item:hover{background:var(--sidebar-hover)}
.side-item.active{background:var(--sidebar-active);color:var(--ink);font-weight:550}
.side-item span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-item b{font-weight:500;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.side-item.quiet{color:var(--muted)}
.project-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--neutral);flex:none}
.tag-hash{font-style:normal;font-weight:650;font-size:13px;width:13px;text-align:center;color:var(--tag-blue);flex:none}
.side-hint{font-size:12px;margin:2px 12px}
.sidebar-foot{margin-top:auto;padding-top:14px;display:flex;flex-direction:column;gap:2px}
.app-version{font-size:11px;color:var(--muted);padding:8px 10px 2px;font-variant-numeric:tabular-nums}
.whats-new-nav{background:color-mix(in srgb,#ff500a 9%,var(--surface));margin-bottom:4px}
.whats-new-nav:hover,.whats-new-nav.active{background:color-mix(in srgb,#ff500a 16%,var(--surface))}
.whats-new-nav .nav-icon{color:color-mix(in srgb,#ff500a 70%,var(--ink))}
.new-button{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r);color:var(--ink-2);transition:background-color .15s}
.new-button:hover{background:var(--sidebar-hover);color:var(--ink)}
.new-button .icon{width:18px;height:18px}
.searchbar{display:flex;align-items:center;gap:7px;height:32px;border:1px solid var(--line-strong);border-radius:var(--r);padding:0 6px 0 9px;background:var(--surface);flex:none;transition:background-color .15s,border-color .15s,box-shadow .15s}
.searchbar:focus-within{background:var(--surface);border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}
.search-icon{color:var(--muted);display:flex}
.search-icon .icon{width:15px;height:15px}
.searchbar>input{flex:1;min-width:0;border:0;outline:0;padding:0;background:transparent;font-size:13px}
.heading-actions,.row-actions,.quick-days{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.page-heading{flex:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px var(--gutter) 10px;min-height:64px}
.heading-text{display:flex;align-items:center;gap:10px;min-width:0}
.view-icon{display:grid;place-items:center;width:24px;height:30px;color:var(--nav-icon);flex:none}body:has(#content.view-settings) .view-icon{color:var(--muted)}
.view-icon .icon{width:19px;height:19px}
.heading-text p{margin:0 0 0 4px;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;align-self:flex-end;padding-bottom:3px}
#content{flex:1;min-height:0;overflow:auto;padding:0 var(--gutter) 24px;overscroll-behavior:contain}
/* Reading lists get a calm column in the middle; People and Calendar keep the full width. */
#content.view-tasks,#content.view-emails,#content.view-drafts,#content.view-flows,#content.view-settings,#content.view-admin{padding-inline:max(var(--gutter),calc((100% - 1040px)/2))}
#content.view-overview{padding-inline:max(var(--gutter),calc((100% - 820px)/2))}
body:has(#content.view-overview) .page-heading{padding-inline:max(var(--gutter),calc((100% - 820px)/2))}
#content.view-contacts,#content.view-calendar{overflow:hidden;padding-bottom:0}
.quiet{color:var(--muted)}

/* Buttons */
.button{display:inline-flex;justify-content:center;align-items:center;gap:7px;height:32px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);padding:0 13px;font-size:13px;font-weight:550;text-decoration:none;white-space:nowrap;line-height:1;transition:background-color .15s var(--ease),border-color .15s,box-shadow .15s,transform .1s}
.button:hover{background:var(--hover);border-color:var(--line-strong)}
.button:active{transform:translateY(.5px)}
.button.dark{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}
.button.dark:hover,.heading-actions .button:hover{background:color-mix(in srgb,var(--accent) 86%,#000);border-color:color-mix(in srgb,var(--accent) 86%,#000)}
/* The main action of a view is the one filled button; secondary actions are in the ⋯ menu. */
.heading-actions .button{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.text-button,.mini{font-size:12px;padding:5px 9px;border-radius:var(--r);white-space:nowrap;line-height:1.3;transition:background-color .15s,color .15s,border-color .15s}
.text-button:hover,.mini:hover{background:var(--wash);color:var(--ink)}
.text-button{color:var(--accent-text);font-weight:500}
.mini{border:1px solid var(--line-strong);color:var(--ink-2)}
.mini.quiet{border-color:transparent}
.plain{padding:0;text-align:left}
.icon-button{padding:4px 8px;color:var(--muted);border-radius:var(--r);font-size:13px;transition:background-color .15s}
.icon-button:hover{background:var(--wash);color:var(--ink)}
.person-link{color:var(--muted);font-size:12px}
.person-link:hover{text-decoration:underline;color:var(--ink)}

/* Overview */
.section{margin-top:22px}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}

/* Today (ADR-008) */
.quick-add{display:flex;align-items:center;gap:10px;height:46px;padding:0 12px;margin:2px 0 4px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);transition:border-color .15s,box-shadow .15s}
.quick-add:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 4px var(--accent-soft)}
.quick-plus{color:var(--accent);display:flex}
.quick-plus .icon{width:18px;height:18px}
.quick-add input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:14.5px;padding:0}
.quick-add input::placeholder{color:var(--muted)}
.quick-preview{display:flex;gap:12px;flex-wrap:wrap;min-height:18px;margin:0 0 6px 14px;font-size:12.5px;color:var(--ink-2)}
.quick-person{font-weight:600;color:var(--accent-text)}
.quick-warn{color:var(--amber);font-weight:550}
.today-section{margin-top:14px}
.today-section h2{display:flex;align-items:baseline;gap:8px;font-size:11px;font-weight:650;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin:0 0 2px}
.today-section h2 b{font-size:11px;font-weight:500;color:var(--muted);letter-spacing:0}
.today-section h2 .text-button{margin-left:auto;text-transform:none;letter-spacing:0}
.today-section.overdue h2{color:var(--red)}
.today-clear .empty{padding:36px 16px 20px}
.project-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);margin-right:10px}
.project-chip:hover{color:var(--ink)}
.item-row .task-check{border-radius:var(--r)}
.task-row.completing .task-check{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.08)}
.task-row.completing .task-title{text-decoration:line-through;color:var(--muted)}
.task-row.completing{opacity:.45;transition:opacity .28s var(--ease)}
.toast.actionable{pointer-events:auto;display:flex;align-items:center;gap:14px;padding:8px 8px 8px 18px}
.toast-action{color:#fff;font-weight:650;font-size:13px;padding:4px 10px;border-radius:var(--r);background:#ffffff1f}
.toast-action:hover{background:#ffffff33}

/* Task rows */
.task-row{display:flex;align-items:center;gap:12px;padding:6px 10px;margin:0 -10px;border-radius:4px;transition:background-color .15s var(--ease)}
.task-row:hover{background:var(--hover)}
.task-check{width:20px;height:20px;border:1.75px solid var(--line-strong);border-radius:50%;padding:0;flex:none;align-self:flex-start;margin-top:1px;font-size:11px;font-weight:700;line-height:17px;color:transparent;transition:border-color .15s,background-color .15s,transform .15s var(--ease)}
.task-check:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--mix));color:var(--accent)}
.task-check:active{transform:scale(.88)}
.task-check.checked{background:var(--accent);color:#fff;border-color:var(--accent)}
.task-main{flex:1;min-width:0}
.task-title{font-size:14px;font-weight:500;overflow-wrap:anywhere;letter-spacing:-.15px}
.task-title:hover{color:var(--accent-text)}
.task-main p{margin:3px 0 0;font-size:12px;display:flex;align-items:center;flex-wrap:wrap;gap:2px 0}
.task-description{white-space:pre-wrap;color:var(--muted);max-height:36px;overflow:hidden}
.task-main .priority,.small-tag{margin-left:8px;font-size:11px;font-weight:550;color:var(--ink-2);background:var(--wash);border-radius:var(--r);padding:1px 7px}
.task-main .priority{color:color-mix(in srgb,var(--red) 85%,var(--ink));background:color-mix(in srgb,var(--red) 12%,var(--mix))}
.due{font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.overdue.due,.overdue.next-action,.overdue#backup-footer{color:var(--red);font-weight:550}
.row-actions{justify-content:flex-end;flex:none}
.task-row .row-actions{max-width:280px}
/* Row actions stay quiet until the row is hovered or focused; touch screens always show them. */
@media(hover:hover){.task-row{position:relative}.task-row .row-actions{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding-left:28px;background:linear-gradient(90deg,#faf9f600,var(--hover) 22px);opacity:0;pointer-events:none;transition:opacity .15s}.task-row:hover .row-actions,.task-row:focus-within .row-actions{opacity:1;pointer-events:auto}
/* A finished task keeps its status visible. */
.task-row .row-actions:has(>.status){position:static;transform:none;opacity:1;padding:0;background:none;pointer-events:auto}}

/* Messages */
.mail-row{display:flex;align-items:flex-start;gap:12px;width:calc(100% + 20px);margin:0 -10px;text-align:left;padding:6px 10px;border-radius:4px;transition:background-color .15s}
.mail-row:hover{background:var(--hover)}
.direction{display:grid;place-items:center;background:var(--wash);width:28px;height:28px;border-radius:50%;color:var(--muted);font-size:13px;font-weight:700;flex:none}
.direction.incoming{background:var(--accent-soft);color:var(--accent)}
.mail-main{display:grid;gap:2px;flex:1;min-width:0}
.mail-main strong{font-size:14px;font-weight:550;letter-spacing:-.15px}
.mail-main>span{font-size:12.5px}
.mail-main small{color:var(--muted);font-size:12.5px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.mail-row time{color:var(--muted);font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}

/* Filters */
.filterbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--line)}
.filterbar select,.filterbar input,.detail-status select{height:28px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);padding:0 8px;max-width:160px;color:var(--ink-2);font-size:12px}
.filterbar input{width:120px}
.filterbar>.quiet{font-size:11px;margin-left:auto}
.filterbar .button{height:26px;font-size:11.5px}
.filter-count{margin-left:auto;font-size:11px;color:var(--muted);white-space:nowrap}
.active-filters{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.active-filters .tag{cursor:pointer}
.filter-chip{height:22px;padding:0 9px;border-radius:var(--r);background:var(--accent-soft);border:1px solid transparent;color:var(--accent-text);font-size:11.5px;font-weight:550}
.filter-chip:hover{border-color:var(--line-strong)}
.sort-dir{width:26px;height:26px;border:1px solid var(--line)}

/* Tags: 12-colour palette, the class is derived from the tag name. */
.tag{display:inline-flex;align-items:center;gap:3px;height:20px;padding:0 8px;border-radius:var(--r);font-size:11.5px;font-weight:550;white-space:nowrap;line-height:1;max-width:140px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.tag+.tag{margin-left:3px}
.tag button{font-size:12px;line-height:1;padding:0 0 0 2px;opacity:.55;color:inherit}
.tag button:hover{opacity:1}
.tc-0{--t:#1f4fa8}.tc-1{--t:#1c6537}.tc-2{--t:#9b2f25}.tc-3{--t:#855000}.tc-4{--t:#65309c}.tc-5{--t:#0e5f63}.tc-6{--t:#962a5a}.tc-7{--t:#3c434c}.tc-8{--t:#476511}.tc-9{--t:#3a349c}.tc-10{--t:#944611}.tc-11{--t:#1d5a7c}
.avatar[class*="tc-"]{background:color-mix(in srgb,var(--t) var(--tag-bg),var(--mix));color:color-mix(in srgb,var(--t) var(--tag-strength),var(--tag-against))}
.tag[class*="tc-"]{background:var(--wash);color:var(--ink-2)}
.tag[class*="tc-"]::before{content:"";width:6px;height:6px;border-radius:50%;flex:none;margin-right:2px;background:color-mix(in srgb,var(--t) var(--tag-dot),#fff)}
.tag-more{font-size:11px;color:var(--muted);margin-left:4px}

/* People: facet panel + dense table */
.people-layout{display:grid;grid-template-columns:212px minmax(0,1fr);gap:18px;height:100%}
.people-layout.facets-closed{grid-template-columns:minmax(0,1fr)}
.people-layout.facets-closed .facets{display:none}
.facets{overflow:auto;padding:10px 4px 16px 0;border-right:1px solid var(--line);margin-right:-2px}
.facets section{padding:6px 10px 10px 0}
.facets section+section{border-top:1px solid var(--line);padding-top:10px}
.facets h3{font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);font-weight:650;margin:0 0 5px 6px;display:flex;justify-content:space-between}
.facets h3 small{font-weight:500;letter-spacing:0}
.facet-item,.facet-tag{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:3px 8px;border-radius:var(--r);font-size:12.5px;text-align:left;min-height:27px;transition:background-color .12s}
.facet-item:hover,.facet-tag:hover{background:var(--wash)}
.facet-item.on,.facet-tag.on{background:var(--accent-soft);color:var(--accent-text);font-weight:550}
.facet-item b,.facet-tag b{font-weight:500;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.facet-item .status{font-size:12px;color:inherit}
.facet-tag[hidden]{display:none}
.facet-tag .tag{max-width:150px}
.facets input{width:100%;height:28px;border:1px solid var(--line-strong);border-radius:var(--r);padding:0 8px;font-size:12px;margin:2px 0 6px;outline:none}
.facets input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}
.facet-hint{font-size:11px;margin:8px 6px 0;line-height:1.4}
.people-panel{display:flex;flex-direction:column;min-width:0;min-height:0}
.bulkbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:7px 12px;margin-top:8px;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r);font-size:12.5px}
.bulkbar[hidden]{display:none}
.bulk-form{display:flex;gap:6px;align-items:center;margin-left:auto}
.bulk-form input,.bulkbar select{height:26px;border:1px solid var(--line-strong);border-radius:var(--r);padding:0 7px;font-size:11.5px;background:var(--surface);width:150px}
.bulkbar select{width:auto}
.bulkbar .button{height:26px;font-size:11.5px}
.table-scroll{flex:1;min-height:0;overflow:auto;margin-top:6px}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;text-align:left}
th{font-size:11.5px;font-weight:550;letter-spacing:.1px;color:var(--muted);padding:8px 8px;text-align:left;white-space:nowrap}
td{border-top:1px solid var(--line);padding:9px 8px;vertical-align:middle;font-size:12.5px}
th:first-child,td:first-child{padding-left:0}
th:last-child,td:last-child{padding-right:0}
td strong{font-weight:500}
td small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.people-table{table-layout:fixed;min-width:1080px}
.people-table thead th{position:sticky;top:0;background:var(--surface);z-index:1;box-shadow:inset 0 -1px 0 var(--line)}
.people-table td{padding:4px 8px;height:32px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-top:0;border-bottom:1px solid var(--line)}
.people-table td small{display:inline;margin:0}
.people-table .col-next small,.people-table .col-last small{display:inline-block;min-width:44px;margin-right:4px;font-variant-numeric:tabular-nums}
.people-table tbody tr{cursor:pointer}
.people-table tbody tr:hover{background:var(--hover)}
.people-table tbody tr.selected{background:var(--accent-soft)}
.people-table .col-check{width:30px;padding-left:4px}
.people-table .col-name{width:17%}
.people-table .col-email{width:17%;color:var(--ink-2)}
.people-table .col-company{width:16%}
.people-table .col-tags{width:17%}
.people-table .col-status{width:118px}
.people-table .col-next{width:15%}
.people-table .col-last{width:120px}
.people-table .col-updated{width:78px;color:var(--muted);font-size:11px}
.people-table .col-open{width:32px;text-align:right}
.th-sort{display:inline-flex;gap:4px;align-items:center;color:inherit;font-size:inherit;font-weight:inherit;padding:2px 0}
.th-sort:hover,.th-sort.on{color:var(--ink)}
.th-sort i{font-style:normal;font-size:11px;width:8px}
.row-check,#select-page{width:15px;height:15px;margin:0;vertical-align:middle;accent-color:var(--accent);cursor:pointer}
.person-cell{display:flex;align-items:center;gap:8px;max-width:100%;overflow:hidden}
.person-cell strong{font-size:13px;font-weight:550;overflow:hidden;text-overflow:ellipsis}
.person-cell:hover strong{text-decoration:underline}
.avatar{display:grid;place-items:center;width:24px;height:24px;background:var(--wash);color:var(--muted);font-size:11px;font-weight:700;border-radius:50%;flex:none;letter-spacing:.2px}
.next-action{font-size:11.5px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.next-action:hover{text-decoration:underline}
.status{--s:#9a948a;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:550;white-space:nowrap;color:var(--ink-2);background:var(--wash);border-radius:4px;padding:2px 9px 2px 7px;line-height:16px}
.status i{height:6px;width:6px;border-radius:50%;background:var(--s);flex:none}
.status.ready{--s:#3f80f2}.status.sent{--s:#7b61ff}.status.replied,.status.done{--s:#2fa364}.status.follow_up{--s:#e8930f}.status.do_not_contact,.status.cancelled{--s:var(--red)}
.facet-item .status,.project-row .status,.project-head .status{background:none;padding:0}
.pagination{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:7px 0;color:var(--muted);font-size:11px;flex:none;border-top:1px solid var(--line)}
.pagination>div{display:flex;gap:6px}
.pagination .button{height:24px;padding:0 8px;font-size:11px}

/* Tabs and empty states */
.tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin:6px 0 8px;overflow:auto;white-space:nowrap}
.tab{padding:9px 0;border-bottom:2px solid transparent;color:var(--muted);font-size:13px;font-weight:550;margin-bottom:-1px;transition:color .15s,border-color .15s}
.tab:hover{color:var(--ink)}
.tab b{font-weight:500;font-size:11px;color:var(--muted);margin-left:2px}
.tab.selected{color:var(--ink);border-color:var(--accent)}
.empty{padding:44px 16px;text-align:center;color:var(--muted);font-size:13px;display:grid;justify-items:center}
.empty-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r);background:var(--wash);color:var(--muted);margin-bottom:12px}
.empty-icon .icon{width:26px;height:26px}
.empty strong{display:block;font-size:15.5px;color:var(--ink);font-weight:650;letter-spacing:-.2px}
.empty p{margin:5px 0 14px;max-width:420px}

/* Calendar */
.calendar-shell{display:flex;flex-direction:column;height:100%}
.calendar-toolbar{flex:none;display:flex;align-items:center;gap:12px;height:48px}
.calendar-toolbar h2{font-size:17px;font-weight:650;white-space:nowrap;letter-spacing:-.3px}
.calendar-nav{display:flex;gap:4px}
.calendar-nav .button{height:26px;padding:0 9px}
.calendar-legend{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);margin-left:auto;white-space:nowrap;overflow:hidden}
.calendar-legend i{width:9px;height:9px;border-radius:2px;margin-left:6px}
.legend-open{background:color-mix(in srgb,var(--accent) 30%,var(--mix))}.legend-overdue{background:color-mix(in srgb,var(--red) 35%,var(--mix))}.legend-waiting{background:var(--wash);border:1px dashed var(--line-strong)}
.segmented{display:flex;border:0;border-radius:var(--r);padding:3px;gap:2px;background:var(--wash)}
.segment{height:26px;padding:0 12px;border-radius:var(--r);font-size:12.5px;font-weight:550;color:var(--muted);display:flex;align-items:center;gap:6px;transition:background-color .15s,color .15s}
.segment kbd{border:0;background:transparent;padding:0;font-size:11px;opacity:.7}
.segment:hover{color:var(--ink)}
.segment.selected{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #1f1d1a1f}
.calendar-month{flex:1;min-height:0;display:flex;flex-direction:column;padding-bottom:10px}
.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-week span{font-size:11.5px;font-weight:600;color:var(--muted);padding:6px 8px}
.calendar-grid{flex:1;min-height:0;border-left:1px solid var(--line);border-top:1px solid var(--line)}
.calendar-grid.weeks-4{grid-template-rows:repeat(4,minmax(0,1fr))}.calendar-grid.weeks-5{grid-template-rows:repeat(5,minmax(0,1fr))}.calendar-grid.weeks-6{grid-template-rows:repeat(6,minmax(0,1fr))}
.calendar-day{min-height:0;overflow:hidden;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:3px 4px;display:flex;flex-direction:column;gap:2px}
.calendar-day.outside{background:var(--hover);color:var(--muted)}
.day-head{display:flex;justify-content:space-between;align-items:center;height:22px;flex:none}
.day-label{min-width:24px;height:24px;padding:0 5px;font-size:12px;font-weight:600;border-radius:var(--r)}
.day-label:hover{background:var(--wash)}
.calendar-day.today .day-label{background:var(--accent);color:#fff}
.cell-add{opacity:0;width:20px;height:20px;border-radius:var(--r);color:var(--muted);font-size:14px;line-height:1}
.calendar-day:hover .cell-add,.cell-add:focus-visible{opacity:1}
.cell-add:hover{background:var(--wash);color:var(--ink)}
.calendar-event{display:block;width:100%;text-align:left;background:color-mix(in srgb,var(--accent) 12%,var(--mix));color:color-mix(in srgb,var(--accent) 70%,var(--ink));border-radius:var(--r);padding:2px 7px;font-size:11.5px;font-weight:500;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none;box-shadow:inset 3px 0 0 var(--accent)}
.calendar-event time{font-weight:600;font-variant-numeric:tabular-nums;margin-right:2px}
.calendar-event small{font-size:11px;opacity:.7}
.calendar-event:hover{filter:brightness(.96)}
.calendar-event.overdue{background:color-mix(in srgb,var(--red) 12%,var(--mix));color:color-mix(in srgb,var(--red) 85%,var(--ink));box-shadow:inset 3px 0 0 var(--red)}
.calendar-event.waiting{background:var(--wash);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line-strong)}
.calendar-event.high{font-weight:650}
.calendar-day .more{align-self:flex-start;border:0;padding:1px 5px;color:var(--muted);font-size:11px}

/* Week and day: hour grid; top/height/left/width are applied from data-pos through CSSOM. */
.timegrid{flex:1;min-height:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:12px;--row:44px}
.tg-head,.tg-inner{display:grid;grid-template-columns:52px minmax(0,1fr)}
.tg-head{grid-template-columns:52px;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);border-bottom:1px solid var(--line);flex:none;background:var(--surface)}
.tg-day{display:flex;align-items:baseline;gap:6px;padding:6px 8px;border-left:1px solid var(--line);text-align:left;min-width:0;height:46px}
.tg-day small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.tg-day strong{font-size:17px;font-weight:550}
.tg-day em{font-style:normal;font-size:11px;color:var(--muted);margin-left:auto;white-space:nowrap}
.tg-day:hover{background:var(--hover)}
.tg-day.today strong{background:var(--accent);color:#fff;border-radius:var(--r);padding:0 8px}
.tg-body{flex:1;min-height:0;overflow:auto}
.tg-hours{display:grid;grid-auto-rows:var(--row)}
.tg-hours span{font-size:11px;color:var(--muted);text-align:right;padding:0 7px 0 0;transform:translateY(-6px);font-variant-numeric:tabular-nums}
.tg-hours span:first-child{transform:none}
.tg-cols{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
.tg-col{position:relative;display:grid;grid-auto-rows:var(--row);border-left:1px solid var(--line);min-width:0}
.tg-col.today{background:color-mix(in srgb,var(--accent) 3%,var(--surface))}
.tg-slot{border-top:1px solid var(--line);border-radius:0}
.tg-slot:first-child{border-top:0}
.tg-slot:hover{background:color-mix(in srgb,var(--accent) 5%,var(--mix))}
.tg-event{position:absolute;margin:0;padding:1px 5px;min-height:18px;border:1px solid var(--surface);border-radius:4px;z-index:1;width:100%}
.tg-event:hover{z-index:2}
.tg-more{background:var(--wash);color:var(--muted);font-size:11px;text-align:left;border-radius:4px}
.tg-now{position:absolute;left:0;right:0;height:0;border-top:2px solid var(--red);z-index:3;pointer-events:none}
.tg-now::before{content:"";position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--red)}
.day-layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:16px}
.day-layout .timegrid{height:auto}
.day-agenda{overflow:auto;padding-bottom:10px}
.day-agenda .section-title{position:sticky;top:0;background:var(--surface);padding:4px 0 6px;z-index:1}
.day-agenda .task-row{flex-wrap:wrap}
.day-agenda .task-main{flex-basis:60%}

/* Drafts, plans and settings */
.draft-row,.plan-row{display:flex;gap:14px;align-items:center;padding:8px 10px;margin:0 -10px;border-radius:4px;transition:background-color .15s}.draft-row:hover,.plan-row:hover{background:var(--hover)}
.draft-row>div,.plan-row>div:first-child{flex:1;min-width:0}
.draft-row p,.plan-row p{margin:4px 0 0;font-size:12.5px}
.preview{color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}
.flow-path{display:flex;align-items:center;gap:16px;margin-top:9px;flex-wrap:wrap;font-size:12px}
.flow-path span{font-weight:500}
.flow-path small{display:block;color:var(--muted);font-size:11px;font-weight:400}
.flow-path b{font-weight:400;color:var(--muted)}
.help{font-size:12px;color:var(--muted);line-height:1.6;margin:10px 0}
.settings-section{max-width:900px;padding:4px 0 16px;margin:0 0 14px;border-bottom:1px solid var(--line)}
.settings-section h2{font-size:11px;font-weight:650;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.settings-section .form-grid{max-width:640px;margin-top:10px}
.settings-details{margin:14px 0}
.settings-details>div{display:flex;gap:24px;padding:7px 0;border-top:1px solid var(--line)}
.settings-details dt{font-size:12px;color:var(--muted);width:190px;flex:none}
.settings-details dd{margin:0;font-size:13px;overflow-wrap:anywhere;min-width:0}
.connection-row{display:flex;flex-wrap:wrap;gap:20px;padding:10px 0;border-bottom:1px solid var(--line);font-size:11px}
.connection-row strong{width:65px;font-weight:500}
.connection-row .quiet{margin-left:auto}
.backup-list>div{display:grid;gap:3px;padding:8px 0;border-bottom:1px solid var(--line);font-size:11px}
.backup-list strong{font-weight:500}
.backup-list code{font-size:11px;overflow-wrap:anywhere;color:var(--muted)}
.settings-section details{margin:10px 0}
summary{cursor:pointer;font-size:12px;color:var(--muted)}
code{font:11.5px ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--wash);padding:2px 5px;border-radius:var(--r);overflow-wrap:anywhere}

/* Dialogs and the person drawer */
.modal-backdrop{position:fixed;inset:0;background:var(--backdrop);backdrop-filter:blur(6px) saturate(1.2);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50;animation:fade-in .16s var(--ease)}
.modal-backdrop[hidden]{display:none}
.modal-backdrop.drawer-open{padding:0;backdrop-filter:none}
.dialog-open{overflow:hidden}
.modal{width:min(580px,100%);max-height:calc(100dvh - 40px);display:flex;flex-direction:column;overflow:hidden;overscroll-behavior:contain;background:var(--surface);padding:22px 24px;border-radius:var(--r);box-shadow:var(--shadow-3);animation:pop-in .2s var(--ease)}
.modal.wide{width:min(820px,100%)}
#modal-content{min-height:0;overflow:auto;overscroll-behavior:contain;padding:3px 4px 4px;margin:0 -4px}
.modal.drawer{width:min(880px,100%);margin-left:auto;height:100dvh;max-height:100dvh;animation:slide-in .24s var(--ease)}
.modal-backdrop.drawer-open .modal{border-radius:0}
@keyframes fade-in{from{opacity:0}}@keyframes pop-in{from{opacity:0;transform:translateY(6px) scale(.985)}}@keyframes slide-in{from{opacity:.4;transform:translateX(24px)}}
.modal-head{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.modal-head h2{font-size:22px;letter-spacing:-.55px;font-weight:700}
.modal-head .eyebrow{color:var(--accent-text);font-size:11px;font-weight:650;letter-spacing:.6px;margin:0 0 4px}
#modal-close{font-size:20px;line-height:1}
.form-stack{display:grid;gap:12px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.form-grid .wide{grid-column:1/-1}
label{display:grid;gap:6px;font-size:12px;font-weight:550;color:var(--ink-2)}
label input,label select,label textarea{width:100%;border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r);padding:8px 11px;font-size:13.5px;font-weight:400;outline:none;transition:border-color .15s,box-shadow .15s}
label input:focus,label select:focus,label textarea:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}
label input::placeholder,label textarea::placeholder{color:var(--muted)}
label textarea{line-height:1.55;resize:vertical}
input[type="datetime-local"]{min-height:35px}
.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.form-stack .help{margin:0}
.form-context{font-size:12px;color:var(--muted);padding-bottom:10px;border-bottom:1px solid var(--line)}
.summary-line{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center;font-size:12px}
.summary-line>span{color:var(--muted)}
.summary-line>a{color:var(--ink-2);text-decoration:none}
.summary-line>a:hover{text-decoration:underline}
.detail-status{display:flex;gap:12px;align-items:center;margin:10px 0;padding:7px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.detail-status select{margin-left:auto;flex:none}
.tag-editor{display:flex;flex-wrap:wrap;gap:4px;align-items:center;flex:1;min-width:0}
.tag-editor .tag{max-width:200px;margin:0}
.tag-add input{height:20px;width:110px;border:1px dashed var(--line-strong);border-radius:var(--r);padding:0 8px;font-size:11px;outline:none;background:var(--surface)}
.tag-hint{font-size:11px;margin-left:4px}
.tag-add input:focus{border-style:solid;border-color:var(--accent-line);width:160px}
.contact-actions{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.contact-actions .button{height:30px;font-size:12.5px;padding:0 11px}
.pinned-note{padding:8px 12px;background:var(--wash);margin:10px 0;border-radius:var(--r);font-size:12px;max-height:120px;overflow:auto}
.pinned-note strong{font-size:11px;color:var(--muted);font-weight:500}
.pinned-note p{white-space:pre-wrap;margin:3px 0 0}
.history-item pre,.message-body,.tl-body pre{font:12px/1.7 inherit;font-family:inherit;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink-2);max-width:100%;margin:8px 0}
.message-body{font-size:13px;border-top:1px solid var(--line);padding-top:14px;line-height:1.7}
.message-meta p{font-size:11px;color:var(--muted);margin:3px 0}
.enrollment{margin-top:14px;padding:12px 0;border-top:1px solid var(--line)}
.enrollment-step{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:7px 0;font-size:12px}
.enrollment-step small,.enrollment-step>span{font-size:11px;color:var(--muted)}
.enrollment .row-actions{margin-top:10px}
.flow-step{border:0;border-top:1px solid var(--line);padding:14px 0;margin:10px 0;display:grid;gap:10px;min-width:0}
.flow-step legend{font-weight:600;padding:0 8px 0 0;font-size:12px}
.step-controls{display:flex;gap:10px;align-items:end}
.step-controls label{flex:1;min-width:0}
.step-controls .mini{height:34px}
.record-confirm{border-top:1px solid var(--line);padding-top:12px;margin-top:8px;font-size:11px;color:var(--muted)}
.notice{background:var(--accent-soft);padding:10px 14px;font-size:12.5px;border-radius:var(--r);margin:10px 0;color:var(--accent-text)}
.notice.error{background:color-mix(in srgb,var(--red) 12%,var(--mix));color:color-mix(in srgb,var(--red) 85%,var(--ink))}
.error-list{font-size:11px;color:var(--red);padding-left:20px}
.checkbox{display:flex;align-items:center;gap:8px}
.checkbox input{width:auto}
.checkbox[hidden]{display:none}
.file-picker{padding:14px;background:var(--wash);border-radius:var(--r);border:1px dashed var(--line-strong)}
.file-picker input{padding:0;border:0;background:none;margin-top:5px}

/* Settings keeps account actions separate from owner workspace controls. */
.settings-layout{font-size:14.5px;display:grid;grid-template-columns:190px minmax(0,1fr);gap:38px;padding-top:18px;min-height:550px}
.settings-menu{display:flex;flex-direction:column;align-self:start;position:sticky;top:0;min-width:0;padding:0 18px 16px 0;border-right:1px solid var(--line)}
.settings-identity{display:flex;align-items:center;gap:9px;padding:0 8px 18px;min-width:0}
.settings-identity strong{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settings-avatar{display:grid;place-items:center;width:30px;height:30px;flex:none;background:var(--sidebar-active);color:var(--ink-2);border-radius:50%;font-size:12px;font-weight:650}
.settings-group{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px;margin:16px 10px 7px}
.settings-identity+.settings-group{margin-top:0}
.settings-link{display:block;width:100%;text-align:left;padding:8px 10px;font-size:14px;color:var(--ink-2);border-radius:var(--r)}
.settings-link:hover{background:var(--hover)}
.settings-link.active{background:var(--sidebar-active);color:var(--ink);font-weight:600}
.settings-signout{border-top:1px solid var(--line);margin-top:24px;padding-top:10px}
.settings-body{min-width:0;max-width:720px;padding:0 0 24px}
.settings-panel{padding:0;margin:0;border:0}
.settings-panel>h2{font-size:21px;font-weight:600;color:var(--ink);letter-spacing:-.4px;text-transform:none;margin:0 0 16px;outline-offset:5px}
.settings-panel>.help:first-of-type{margin:0 0 20px}
.settings-panel .auth-form{max-width:420px}
.settings-panel .auth-form input{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}
.settings-panel .auth-form .button{justify-self:start}
.settings-body .settings-section:not(.settings-panel){padding-top:12px}
.settings-panel .settings-details dt{width:150px}
.settings-panel .empty{padding:48px 12px}
.release-notes{max-width:680px;margin:28px auto}
.release-entry{padding:0 0 32px;margin-bottom:32px;border-bottom:1px solid var(--line)}
.release-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--muted)}
.release-version{font-weight:650;color:var(--ink-2)}
.release-current{padding:3px 7px;border-radius:var(--r);background:var(--accent-soft);color:var(--accent-text)}
.release-meta time{margin-left:auto}
.release-entry h2{font-size:25px;font-weight:600;letter-spacing:-.6px;margin:20px 0 14px}
.release-entry ul{padding-left:20px;font-size:14px;line-height:1.8;color:var(--ink-2)}
.release-entry li{padding-left:4px;margin:8px 0}
@media(max-width:1100px){.settings-layout{gap:24px;grid-template-columns:170px minmax(0,1fr)}}
@media(max-width:860px){.sidebar-foot{flex-direction:row;align-items:center;gap:4px}.sidebar-foot .whats-new-nav{margin:0}.sidebar-foot .app-version{padding:0 4px;font-size:10px;white-space:nowrap}}
@media(max-width:640px){
  .settings-layout{grid-template-columns:minmax(0,1fr);gap:24px;min-height:0;padding-top:8px}
  .settings-menu{position:static;display:flex;flex-direction:row;flex-wrap:wrap;gap:3px;padding:0 0 14px;border-right:0;border-bottom:1px solid var(--line)}
  .settings-identity{width:100%;padding:0 5px 10px}.settings-group{width:100%;margin:8px 6px 3px}
  .settings-link{width:auto;padding:7px 9px;font-size:13px}.settings-signout{border:0;margin:0;padding:0}
  .settings-body{padding-bottom:0}.settings-panel .settings-details>div{gap:12px}.settings-panel .settings-details dt{width:95px}
  .notification-row{align-items:flex-start;flex-direction:column;gap:10px}
  .release-notes{margin-top:20px}.release-entry h2{font-size:22px}
}

/* Person timeline: a dated strip on top, a vertical dated list below. */
.tl-strip{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;margin:8px 0 12px;padding:10px 12px 22px;border:1px solid var(--line);border-radius:var(--r);background:var(--hover)}
.tl-lanes{display:grid;grid-template-rows:repeat(3,16px);font-size:11px;color:var(--muted);align-items:center}
.tl-track{position:relative;height:48px;background:linear-gradient(#0000 7px,var(--line) 7px,var(--line) 8px,#0000 8px,#0000 23px,var(--line) 23px,var(--line) 24px,#0000 24px,#0000 39px,var(--line) 39px,var(--line) 40px,#0000 40px)}
.tl-tick{position:absolute;bottom:-17px;transform:translateX(-50%);font-size:11px;color:var(--muted);white-space:nowrap}
.tl-tick::before{content:"";position:absolute;left:50%;bottom:14px;height:52px;border-left:1px dotted var(--line-strong)}
.tl-tick.minor::before{border-left-color:var(--line)}
.tl-today{position:absolute;top:-4px;bottom:-4px;border-left:2px solid var(--red);opacity:.6}
.tl-mark{position:absolute;width:10px;height:10px;margin-left:-5px;border-radius:50%;border:2px solid var(--surface);padding:0;background:#8b9185;box-shadow:0 0 0 1px #0000001a}
.tl-mark:hover{transform:scale(1.5);z-index:2}
.tl-mark.lane-0{top:3px}.tl-mark.lane-1{top:19px}.tl-mark.lane-2{top:35px}
.tl-mark.tl-out,.tl-item.tl-out .tl-dot{background:var(--accent)}
.tl-mark.tl-in,.tl-item.tl-in .tl-dot{background:var(--green)}
.tl-mark.tl-note,.tl-item.tl-note .tl-dot{background:#9aa093}
.tl-mark.tl-alert,.tl-item.tl-alert .tl-dot{background:var(--red)}
.tl-mark.tl-task,.tl-item.tl-task .tl-dot{background:var(--amber)}
.tl-mark.tl-overdue,.tl-item.tl-overdue .tl-dot{background:var(--red)}
.tl-mark.tl-draft,.tl-item.tl-draft .tl-dot{background:var(--neutral)}
.tl-mark.tl-plan,.tl-item.tl-plan .tl-dot{background:var(--ink-2)}
.tl-mark.tl-created,.tl-item.tl-created .tl-dot{background:var(--ink)}
.tl-filters{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 6px}
.chip{height:28px;padding:0 12px;border-radius:var(--r);border:1px solid var(--line-strong);font-size:12.5px;font-weight:550;color:var(--ink-2);transition:background-color .15s,color .15s,border-color .15s}
.chip b{font-weight:500;margin-left:3px;font-size:11px}
.chip:hover{color:var(--ink);border-color:var(--line-strong)}
.chip.selected{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.chip.selected b{color:var(--on-accent)}
.timeline{position:relative}
.tl-month{font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);font-weight:600;padding:12px 0 4px 78px}
.tl-month.upcoming{color:var(--amber)}
.tl-item{display:grid;grid-template-columns:60px 18px minmax(0,1fr);align-items:start;position:relative;border-radius:var(--r);transition:background .3s}
.tl-item::before{content:"";position:absolute;left:68px;top:0;bottom:0;border-left:1px solid var(--line)}
.tl-item.flash{background:var(--accent-soft)}
.tl-when{font-size:11.5px;font-weight:500;padding:8px 0;text-align:right;white-space:nowrap}
.tl-when small{display:block;font-size:11px;color:var(--muted);font-weight:400}
.tl-dot{width:9px;height:9px;border-radius:50%;margin:12px 0 0 4.5px;position:relative;z-index:1;box-shadow:0 0 0 3px var(--surface)}
.tl-body{padding:6px 0 8px 4px;border-bottom:1px solid var(--line);min-width:0}
.tl-body header{display:flex;gap:10px;align-items:flex-start}
.tl-body header>div{flex:1;min-width:0}
.tl-body strong{font-size:13.5px;font-weight:550}
.tl-body header p{font-size:12px;color:var(--muted);margin:2px 0 3px}
.tl-body details summary{font-size:11px;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;max-height:34px;overflow:hidden}
.tl-body details[open] summary{max-height:none}
.tl-note{font-size:11px;color:var(--muted);white-space:pre-wrap;margin:2px 0 0}
.tl-item.tl-overdue strong{color:var(--red)}

.toast{position:fixed;bottom:38px;left:50%;max-width:calc(100% - 40px);transform:translate(-50%,10px) scale(.98);background:#24211ce6;backdrop-filter:blur(10px);color:#fff;font-size:13px;font-weight:500;line-height:1.5;border-radius:var(--r);padding:10px 18px;opacity:0;pointer-events:none;z-index:80;box-shadow:var(--shadow-2);transition:opacity .2s var(--ease),transform .2s var(--ease)}
.toast.show{opacity:1;transform:translate(-50%,0) scale(1)}

/* Projects (ADR-006) */
.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.inline-form{display:flex;gap:6px;align-items:center;margin:6px 0 8px;flex-wrap:wrap}
.inline-form input{height:28px;border:1px solid var(--line-strong);border-radius:var(--r);padding:0 8px;font-size:12px;background:var(--surface);min-width:200px}
.project-list{display:grid;gap:0}
.project-tag-control{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}
.project-tag-control select{max-width:260px}
.project-attention-reason{display:block;margin-top:3px;font-size:11px;color:var(--muted)}
.project-message-row{display:flex;align-items:center;gap:8px;min-width:0}
.project-message-row .mail-row{flex:1;min-width:0}
.project-message-row>.mini{flex:none}
.message-projects{margin:16px 0;padding:12px 0;border-block:1px solid var(--line)}
.message-projects h3{font-size:12px;color:var(--muted);margin-bottom:8px}
.project-message-link{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.message-projects select{min-width:0;max-width:100%}
.project-row{display:grid;grid-template-columns:minmax(160px,1.8fr) 76px minmax(170px,1.2fr) 82px 64px minmax(120px,1.4fr);gap:10px;align-items:center;padding:5px 10px;text-align:left;font-size:12px;width:100%;border-radius:var(--r)}
.project-row:hover{background:var(--hover)}
.project-row>*{min-width:0}
.project-name{display:flex;align-items:center;gap:8px;min-width:0}
.project-title{font-weight:600;font-size:14px;letter-spacing:-.15px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-title:hover,.project-next-title:hover{text-decoration:underline;text-underline-offset:3px}
.project-row .project-tags{flex-wrap:nowrap;flex-shrink:0;max-width:60%;overflow:hidden}
.project-row .project-tags .tag{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
.project-row .property-pencil{display:none}
.project-dates{display:flex;align-items:center;gap:6px;white-space:nowrap}
.project-dates .project-property{margin-left:0}
.project-person-count{white-space:nowrap}
.project-properties{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;min-width:0}
.project-property{display:inline-flex;align-items:center;gap:6px;padding:4px 5px;margin-left:-5px;border-radius:var(--r);font-size:12px;color:var(--ink-2);text-align:left;min-height:28px;max-width:100%}
.project-property:hover,.project-property:focus-visible{background:var(--hover)}
.project-tags{flex-wrap:wrap;gap:4px}
.project-tags .tag{white-space:normal;overflow-wrap:anywhere}
.property-pencil{display:inline-flex;opacity:.35;flex:none}
.property-pencil .icon{width:12px;height:12px}
.project-property:hover .property-pencil,.project-property:focus-visible .property-pencil{opacity:1}
.project-next{display:block;min-width:0}
.project-next-title{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:400;color:var(--muted);line-height:1.5}
.project-next-title.overdue,.inline-error{color:var(--red)}
.project-inline-editor{grid-column:1/-1;display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);margin:5px 0}
.project-inline-editor>label{flex:1;min-width:150px;max-width:420px}
.project-inline-editor .inline-error{flex-basis:100%;margin:0;font-size:12px}
.project-inline-editor .row-actions{margin-bottom:1px}
.project-progress{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.project-progress progress{width:45px;height:4px;border:0;border-radius:2px;overflow:hidden;background:var(--wash);accent-color:var(--accent);-webkit-appearance:none;appearance:none}
.project-progress progress::-webkit-progress-bar{background:var(--wash);border-radius:3px}
.project-progress progress::-webkit-progress-value{background:var(--accent);border-radius:2px}
.project-progress progress::-moz-progress-bar{background:var(--accent);border-radius:2px}
.project-closed{margin-top:14px}
.project-closed summary{font-size:12px;color:var(--muted);cursor:pointer;padding:4px 0}
.project-shell{display:flex;flex-direction:column;min-height:0;height:100%}
.project-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.project-head h2{overflow-wrap:anywhere;max-width:100%;font-size:22px;font-weight:700;margin:0;letter-spacing:-.4px}
.project-head{margin-bottom:5px}
.project-head .project-properties{flex-basis:100%}
.project-back{align-self:flex-start;margin-bottom:10px}
.project-deadline{display:inline-flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}
.board{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px}
.board-col{display:flex;flex-direction:column;min-height:0;background:var(--surface-2);border:1px solid transparent;border-radius:var(--r)}
.board-col[data-drop="todo"]{--col:#9a948a}.board-col[data-drop="doing"]{--col:var(--accent)}.board-col[data-drop="done"]{--col:var(--green)}
.board-col header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px}
.board-col h3{font-size:13px;font-weight:650;margin:0;display:flex;align-items:center;gap:7px}
.board-col h3::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--col)}
.board-col h3 b{font-weight:500;font-size:11px;color:var(--muted);margin-left:3px}
.board-col.drop-target{border-color:var(--col);box-shadow:inset 0 0 0 1px var(--col);background:color-mix(in srgb,var(--col) 6%,var(--surface-2))}
.board-cards{flex:1;min-height:60px;overflow:auto;padding:2px 9px 10px;display:flex;flex-direction:column;gap:8px}
.board-empty{font-size:11px;text-align:center;padding:14px 0}
.board-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 11px;display:flex;flex-direction:column;gap:5px;cursor:grab;transition:border-color .15s var(--ease)}
.board-card:hover{border-color:var(--line-strong)}
.board-card.dragging{opacity:.55;transform:rotate(1.2deg) scale(1.01);box-shadow:var(--shadow-3)}
.board-card.high{box-shadow:inset 2px 0 0 var(--amber)}
.board-card.overdue{border-color:color-mix(in srgb,var(--red) 30%,var(--mix))}
.board-title{font-size:13.5px;font-weight:550;line-height:1.35;letter-spacing:-.1px}
.board-meta,.board-tags{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:0;font-size:12px}
.board-move{display:flex;gap:4px;justify-content:flex-end}
.gantt{border:1px solid var(--line);border-radius:var(--r);overflow:auto;margin-top:6px}
.gantt-row{display:grid;grid-template-columns:230px minmax(480px,1fr);min-height:34px;border-bottom:1px solid var(--line)}
.gantt-row:last-child{border-bottom:0}
.gantt-label{padding:9px 12px;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-right:1px solid var(--line)}
.gantt-scale{position:sticky;top:0;background:var(--surface);z-index:2}
.gantt-scale .gantt-track span{position:absolute;top:0;bottom:0;padding:6px 4px;font-size:11px;color:var(--muted);border-left:1px solid var(--line);white-space:nowrap;overflow:hidden}
.gantt-project .gantt-label{font-weight:600}
.gantt-track{position:relative}
.gantt-bar{position:absolute;top:9px;height:16px;min-width:6px;border-radius:var(--r);background:color-mix(in srgb,var(--accent) 22%,var(--mix));border:1px solid color-mix(in srgb,var(--accent) 50%,var(--mix));padding:0;display:block;transition:filter .15s}
.gantt-bar:hover{filter:brightness(.95)}
.gantt-bar.doing{background:color-mix(in srgb,var(--accent) 28%,var(--mix));border-color:color-mix(in srgb,var(--accent) 55%,var(--mix))}
.gantt-bar.done{background:var(--wash);border-color:var(--line-strong)}
.gantt-bar.overdue{background:color-mix(in srgb,var(--red) 25%,var(--mix));border-color:color-mix(in srgb,var(--red) 50%,var(--mix))}
.gantt-bar.project{background:transparent;border:2px solid var(--ink);height:12px;top:11px;border-radius:var(--r)}
.gantt-bar.milestone{width:13px!important;min-width:13px;height:13px;top:10px;border-radius:3px;transform:translateX(-6.5px) rotate(45deg)}
.gantt-today{position:absolute;top:0;bottom:0;border-left:2px solid var(--red);z-index:1;pointer-events:none}
.project-table{width:100%;border-collapse:collapse;font-size:12px}
.project-table th{text-align:left;font-weight:500;color:var(--muted);font-size:11px;padding:6px 8px;border-bottom:1px solid var(--line)}
.project-table td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.calendar-event.project-event{background:var(--surface);color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-strong),inset 3px 0 0 var(--neutral)}
.calendar-event.project-event.overdue{background:color-mix(in srgb,var(--red) 12%,var(--mix));color:var(--red)}
.legend-project{background:var(--surface);border:1px solid color-mix(in srgb,var(--neutral) 55%,var(--mix))}
.tg-allday{border-bottom:1px solid var(--line)}
.tg-allday>span{font-size:11px;color:var(--muted);text-align:right;padding:5px 7px 0 0}
.tg-allday>div{border-left:1px solid var(--line);padding:3px 4px;display:flex;flex-direction:column;gap:2px;min-width:0}
.agenda-items{display:flex;flex-direction:column;gap:3px;margin:4px 0 10px}
.agenda-items h3{font-size:11px;font-weight:600;color:var(--muted);margin:0 0 2px}
@media(max-width:1400px){.people-table .col-updated{display:none}}
@media(max-width:1180px){
.heading-text p{display:none}
.people-layout{grid-template-columns:188px minmax(0,1fr);gap:12px}
.task-row{flex-wrap:wrap}
.task-main{flex-basis:50%}
.task-row>.row-actions{margin-left:26px;max-width:none}
.task-row>.due{margin-left:auto}
.modal .task-main{flex-basis:70%}
.modal .due{margin-left:26px}
.calendar-legend{display:none}
.day-layout{grid-template-columns:minmax(0,1fr) 280px}
}
@media(max-width:760px){
:root{--gutter:12px}
.searchbar kbd{display:none}
.people-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
.facets{max-height:30vh;border-right:0;border-bottom:1px solid var(--line)}
.people-layout.facets-closed{grid-template-rows:minmax(0,1fr)}
.bulk-form{margin-left:0}
.mail-row{flex-wrap:wrap}
.mail-row time{margin-left:34px}
.mail-main{flex-basis:70%}
.calendar-toolbar{flex-wrap:wrap;height:auto;padding:6px 0;gap:6px 10px}
.calendar-toolbar h2{font-size:13px;order:3;flex-basis:100%}
.segmented{margin-left:auto}
.calendar-event small{display:none}
.calendar-event time{display:none}
.tg-day{flex-direction:column;gap:0;height:46px;padding:4px}
.tg-day em{display:none}
.day-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}
.day-agenda{max-height:34vh}
.pagination{flex-wrap:wrap}
.draft-row,.plan-row{flex-wrap:wrap}
.plan-row>.row-actions{justify-content:flex-start}
.modal-backdrop{padding:12px}
.modal{width:100%;height:auto;max-height:calc(100dvh - 24px);padding:16px;margin:0}
.modal.drawer{width:100%;height:100dvh;max-height:100dvh;border-radius:0}
.form-grid{grid-template-columns:1fr}
.form-grid .wide{grid-column:auto}
.step-controls{flex-wrap:wrap}
.step-controls label{min-width:calc(50% - 12px)}
.settings-details>div{flex-direction:column;gap:3px}
.settings-details dt{width:auto}
.connection-row{gap:6px;flex-direction:column}
.connection-row .quiet{margin-left:0}
.enrollment-step{flex-direction:column;gap:3px}
.detail-status{flex-wrap:wrap}
.tl-item{grid-template-columns:48px 16px minmax(0,1fr)}
.tl-item::before{left:55px}
.tl-month{padding-left:64px}
}
@media(max-width:860px){.workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
.sidebar{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;border-right:0;border-bottom:1px solid var(--line);overflow:visible}
.sidebar-top{padding:0}.brand-name{display:none}.searchbar{flex:1;min-width:140px}
.navigation{flex-direction:row;flex-basis:100%;overflow-x:auto;margin:0;scrollbar-width:none}.navigation::-webkit-scrollbar{display:none}.navigation>a{flex:none}.navigation span{margin-left:4px}.nav-gap{display:none}
.sidebar-section,.shortcut-hint{display:none}.sidebar-top{order:0}.searchbar{order:1}.sidebar-foot{margin:0;padding:0;order:2}.navigation{order:3}.settings-nav{font-size:0;gap:0;padding:0 8px}}
@media(min-width:761px) and (max-width:1100px){.project-row{grid-template-columns:minmax(0,1fr) 76px 190px 82px 64px}.project-next{grid-column:1/-1}.project-row .project-tags{max-width:40%}}
@media(max-width:760px){.project-row{grid-template-columns:76px minmax(0,1fr) 82px;gap:2px 8px;padding:7px 0}.project-name{grid-column:1/-1}.project-next{grid-column:2/-1}.project-row .project-tags{max-width:45%}.project-row .project-property{min-height:24px}.project-dates{font-size:11px;gap:3px}.project-dates .project-property{font-size:11px;padding-inline:0}.project-head h2{font-size:20px}.board{grid-template-columns:repeat(3,minmax(240px,85vw))}.form-row{grid-template-columns:minmax(0,1fr)}.gantt-row{grid-template-columns:140px minmax(420px,1fr)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* Dark theme (ADR-009): follows the computer, or is fixed in Settings (data-theme on <html>). */
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--ink:#ecebe7;--ink-2:#c9c5bd;--muted:#9a958c;--line:#2d2b28;--line-strong:#3a3834;--wash:#262522;--hover:#211f1d;--surface:#1a1917;--surface-2:#201f1c;--mix:#1a1917;--sidebar-hover:#2b2926;--backdrop:#0009;
--shadow-1:0 1px 2px #0006;--shadow-2:0 1px 2px #0006,0 6px 18px #0008;--shadow-3:0 2px 8px #0008,0 24px 64px #000a;--red:#f05252;--tag-bg:24%;--tag-strength:45%;--tag-against:#fff;--tag-dot:70%;--sidebar-active:#2f2d29;--nav-icon:#e45a9c;--tag-blue:#5b9bff;--neutral:#8d8a84;color-scheme:dark}}
:root[data-theme="dark"]{--ink:#ecebe7;--ink-2:#c9c5bd;--muted:#9a958c;--line:#2d2b28;--line-strong:#3a3834;--wash:#262522;--hover:#211f1d;--surface:#1a1917;--surface-2:#201f1c;--mix:#1a1917;--sidebar-hover:#2b2926;--backdrop:#0009;
--shadow-1:0 1px 2px #0006;--shadow-2:0 1px 2px #0006,0 6px 18px #0008;--shadow-3:0 2px 8px #0008,0 24px 64px #000a;--red:#f05252;--tag-bg:24%;--tag-strength:45%;--tag-against:#fff;--tag-dot:70%;--sidebar-active:#2f2d29;--nav-icon:#e45a9c;--tag-blue:#5b9bff;--neutral:#8d8a84;color-scheme:dark}
:root[data-theme="light"]{color-scheme:light}
/* Command palette (ADR-009) */
.modal.palette-mode{width:min(620px,100%);padding:0;align-self:flex-start;margin-top:min(10vh,80px);overflow:hidden}
.modal.palette-mode #modal-content{padding:0;margin:0}
.modal.palette-mode .modal-head{padding:16px 20px 0;margin-bottom:8px}
.palette input{width:100%;height:56px;border:0;border-bottom:1px solid var(--line);padding:0 20px;font-size:17px;outline:none;background:transparent;color:var(--ink)}
#palette-list{max-height:min(420px,56vh);overflow:auto;padding:6px}
.palette-group{font-size:10.5px;font-weight:650;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin:8px 12px 3px}
.palette-row{display:flex;align-items:center;gap:11px;width:100%;height:38px;padding:0 12px;border-radius:var(--r);text-align:left;font-size:14px;color:var(--ink)}
.palette-row small{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45%}
.palette-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.palette-row.on,.palette-row:hover{background:var(--accent-soft)}
.palette-icon{color:var(--muted);width:17px;height:17px}
.palette-row.on .palette-icon{color:var(--accent)}
.palette-empty{padding:18px 14px;font-size:13px}
.palette-help{display:flex;gap:6px;align-items:center;justify-content:flex-end;margin:0;padding:8px 14px;border-top:1px solid var(--line);font-size:11.5px;color:var(--muted)}
/* Keyboard focus in lists: j/k move it, Enter/E/X act on it. */
.kb-focus{box-shadow:inset 0 0 0 1px var(--accent-line);background:var(--accent-soft)!important;border-radius:4px}
.people-table tbody tr.kb-focus{box-shadow:inset 3px 0 0 var(--accent)}
/* Icons in buttons replace the text signs + → ↑ ←. */
.btn-icon{width:15px;height:15px}
.mini .btn-icon,.text-button .btn-icon{width:13px;height:13px}
.text-button,.mini{display:inline-flex;align-items:center;gap:4px}
/* Person header */
.person-hero{display:flex;align-items:center;gap:14px;margin:2px 0 10px}
.avatar.large{width:46px;height:46px;font-size:16px;letter-spacing:.3px}
.summary-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.person-role{width:100%;font-size:13.5px;color:var(--ink-2)}
.contact-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--r);font-size:12.5px;color:var(--ink-2);text-decoration:none;transition:background-color .15s}
.contact-chip:hover{background:var(--wash);color:var(--ink)}
.contact-chip .icon{width:14px;height:14px}
.li-mark{display:grid;place-items:center;width:15px;height:15px;border-radius:3px;background:#0a66c2;color:#fff;font-size:10px;font-weight:700}
.theme-switch{width:max-content;margin-top:8px}
/* ADR-010: buttons and popups have 6px corners; everything else has 4px or less. */
.button,.text-button,.mini,.icon-button,.chip,.filter-chip,.segmented,.segment,.menu-item,.new-button,.navigation>a,.settings-nav,.side-item,.facet-item,.facet-tag,.cell-add,.day-label,.toast-action,.palette-row,.contact-chip,.sort-dir{border-radius:var(--r-btn)}
.modal,.modal.palette-mode,.toast,.menu{border-radius:var(--r-btn)}
@media(max-width:760px){.modal.drawer{border-radius:0}.modal.palette-mode{margin-top:20px}}
/* ⋯ menu (ADR-010): one floating list; the position comes from CSSOM. */
.menu{position:fixed;z-index:70;min-width:200px;max-width:300px;padding:4px;background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-2)}
.menu[hidden]{display:none}
.menu-item{display:flex;align-items:center;width:100%;min-height:30px;padding:5px 10px;font-size:13px;line-height:1.3;text-align:left;color:var(--ink)}
.menu-item:hover,.menu-item:focus-visible{background:var(--accent-soft);outline:none}
.menu-item.danger{color:color-mix(in srgb,var(--red) 85%,var(--ink))}
.menu-item.danger.confirm{background:color-mix(in srgb,var(--red) 14%,var(--mix));font-weight:650}
.menu hr{border:0;border-top:1px solid var(--line);margin:4px 2px}
.icon-button.more{display:inline-grid;place-items:center;width:28px;height:28px;padding:0}
.icon-button.more.menu-open{background:var(--wash);color:var(--ink)}
.heading-actions .icon-button.more,.contact-actions .icon-button.more{width:32px;height:32px;border:1px solid var(--line-strong);color:var(--ink-2)}
.contact-actions .icon-button.more{width:30px;height:30px}
.task-row .row-actions:has(.menu-open){opacity:1;pointer-events:auto}
/* With only Draft and ⋯ left, row actions take their own place after the date instead of covering it. */
@media(hover:hover){.task-row .row-actions{position:static;transform:none;padding-left:0;background:none}}
[hidden]{display:none!important}
/* The ⋯ of a task row is always visible, quieter until the row is hovered or focused (review of ADR-010). */
@media(hover:hover){.task-row .row-actions{opacity:1;pointer-events:auto}.task-row .row-actions .more{opacity:.45;transition:opacity .15s}.task-row:hover .row-actions .more,.task-row:focus-within .row-actions .more,.task-row .row-actions .more.menu-open{opacity:1}}
.task-row .row-actions{min-width:28px}
.draft-link{font-size:12px;color:var(--accent-text);margin-left:10px;display:inline-flex;align-items:center;gap:3px}
.draft-link:hover{text-decoration:underline}
/* Sidebar toggle (ADR-011) */
.sidebar-toggle{display:grid;place-items:center;width:28px;height:28px;padding:0;margin-left:-6px;flex:none;color:var(--muted)}
.sidebar-toggle .icon{width:18px;height:18px}
.page-heading{justify-content:flex-start}.page-heading .heading-actions{margin-left:auto}
body.sidebar-hidden .workspace{grid-template-columns:minmax(0,1fr)}
body.sidebar-hidden .sidebar{display:none}
@media(max-width:860px){body.sidebar-hidden .workspace{grid-template-rows:minmax(0,1fr)}}
/* Kanban (ADR-011): cards with a ⋯ menu, a due chip, a priority flag and the person; quick add per column. */
.board-col header{gap:6px}
.board-head-actions{display:flex;gap:2px;align-items:center}
.board-head-actions .icon-button,.board-fold{display:grid;place-items:center;width:24px;height:24px;padding:0;font-size:15px;line-height:1}
.board-cards{gap:6px}
.board-card{position:relative;gap:6px;padding:9px 10px}
.board-top{display:flex;align-items:flex-start;gap:6px}
.board-top .board-title{flex:1;min-width:0;overflow-wrap:anywhere}
.board-card .more{width:22px;height:22px;margin:-2px -4px 0 0;opacity:0;transition:opacity .15s}
.board-card:hover .more,.board-card:focus-within .more,.board-card .more.menu-open{opacity:1}
@media(hover:none){.board-card .more{opacity:1}}
.board-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0;font-size:12px;color:var(--muted)}
.due-chip{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 6px;border-radius:var(--r);background:var(--wash);color:var(--ink-2);font-size:11.5px;font-weight:550;font-variant-numeric:tabular-nums;white-space:nowrap}
.due-chip .icon{width:12px;height:12px}
.due-chip.today{background:var(--accent-soft);color:var(--accent-text)}
.due-chip.overdue{background:color-mix(in srgb,var(--red) 12%,var(--mix));color:color-mix(in srgb,var(--red) 85%,var(--ink))}
.card-flag{display:inline-grid;place-items:center;color:color-mix(in srgb,var(--red) 85%,var(--ink))}
.card-flag .icon{width:14px;height:14px}
.card-person{display:inline-flex;align-items:center;gap:5px;margin-left:auto;max-width:55%;font-size:12px;color:var(--ink-2)}
.card-person span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-person .avatar{width:20px;height:20px;font-size:9.5px}
.card-person:hover span:last-child{text-decoration:underline}
.board-col[data-drop="done"] .board-title{color:var(--muted)}
.board-card.high{box-shadow:none}
.board-add{padding:4px 9px 10px}
.board-add input{width:100%;height:30px;border:1px solid transparent;border-radius:var(--r);padding:0 8px;background:transparent;font-size:13px;color:var(--ink);outline:none;transition:background-color .15s,border-color .15s}
.board-add input::placeholder{color:var(--muted)}
.board-add input:hover{background:var(--hover)}
.board-add input:focus{background:var(--surface);border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}
.board-card.drop-before::before{content:"";position:absolute;left:0;right:0;top:-4px;height:2px;border-radius:1px;background:var(--accent)}
.board-cards.drop-end::after{content:"";display:block;flex:none;height:2px;border-radius:1px;background:var(--accent)}
.board.done-folded{grid-template-columns:repeat(2,minmax(220px,1fr)) 44px}
.board-col.folded header{flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;padding:8px 0;height:100%}
.board-col.folded h3{writing-mode:vertical-rl;transform:rotate(180deg)}
.board-col.folded h3::before{display:none}
@media(max-width:760px){.board.done-folded{grid-template-columns:repeat(2,minmax(240px,85vw)) 44px}}
/* Import progress (ADR-011 amendment 2) */
.import-progress{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface-2)}
.import-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-size:13px}
.import-head span{color:var(--muted);font-variant-numeric:tabular-nums}
.import-progress progress{width:100%;height:6px;border:0;border-radius:3px;overflow:hidden;background:var(--wash);-webkit-appearance:none;appearance:none;accent-color:var(--accent)}
.import-progress progress::-webkit-progress-bar{background:var(--wash);border-radius:3px}
.import-progress progress::-webkit-progress-value{background:var(--accent);border-radius:3px;transition:width .3s var(--ease)}
.import-progress progress::-moz-progress-bar{background:var(--accent);border-radius:3px}
.import-progress p{margin:0;font-size:12.5px}
.import-progress.done progress::-webkit-progress-value{background:var(--green)}
.import-progress .form-actions{margin-top:2px;justify-content:flex-start}
/* To do and Calendar on the page (ADR-013) */
body:has(#content.view-tasks) .page-heading,body:has(#content.view-calendar) .page-heading{padding-inline:max(var(--gutter),calc((100% - 1040px)/2))}
#content.view-calendar{padding-inline:max(var(--gutter),calc((100% - 1040px)/2))}
.heading-actions .head-icon{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;color:var(--ink-2);background:none}
.heading-actions .head-icon:hover{background:var(--wash);color:var(--ink)}
.split-button{display:inline-flex}
.split-button>.button{border-top-right-radius:0;border-bottom-right-radius:0}
.heading-actions .split-button .split-more{width:28px;height:32px;border:0;border-left:1px solid color-mix(in srgb,var(--on-accent) 30%,var(--accent));border-radius:0 var(--r-btn) var(--r-btn) 0;background:var(--accent);color:var(--on-accent)}
.heading-actions .split-button .split-more:hover,.heading-actions .split-button .split-more.menu-open{background:color-mix(in srgb,var(--accent) 86%,#000);color:var(--on-accent)}
.list-search{display:flex;align-items:center;gap:8px;height:36px;padding:0 10px;margin:2px 0 6px;border:1px solid var(--line-strong);border-radius:var(--r);color:var(--muted)}
.list-search:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}
.list-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:13.5px;color:var(--ink)}
.task-inline{border:1px solid var(--line-strong);border-radius:var(--r);padding:14px 16px;margin:6px 0 12px;background:var(--surface)}
.task-inline.editing{margin:2px 0 10px 32px}
.task-inline [name="title"]{font-size:14.5px}
.calendar-shell>.task-inline{flex:none;max-height:46vh;overflow:auto}
.wave{height:10px;margin:30px 0 20px;opacity:.55;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='10' viewBox='0 0 24 10'%3E%3Cpath d='M0 5 Q6 1 12 5 T24 5' fill='none' stroke='%239a958c' stroke-width='1.2'/%3E%3C/svg%3E") repeat-x center/24px 10px}
.ideas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 28px;margin-bottom:24px}
.idea{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;align-items:start;padding:10px;text-align:left;border-radius:var(--r-btn);transition:background-color .15s}
.idea:hover{background:var(--hover)}
.idea-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r);background:var(--wash);color:var(--ink-2)}
.idea-icon .icon{width:18px;height:18px}
.idea-text{display:grid;gap:2px;min-width:0}
.idea-text strong{font-size:14px;font-weight:550;color:var(--ink)}
.idea-text>span{font-size:13px;color:var(--ink-2);line-height:1.45}
.idea-text small{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:12.5px;color:var(--muted)}
.idea-text small .icon{width:14px;height:14px}
@media(max-width:760px){.ideas{grid-template-columns:minmax(0,1fr)}.task-inline.editing{margin-left:0}}
.project-filter{margin:2px 0 8px}
.inline-task-form{display:grid;gap:8px}
.inline-title{width:100%;border:0;outline:0;background:transparent;font-size:15px;font-weight:550;color:var(--ink);padding:2px 0}
.inline-title::placeholder{color:var(--muted);font-weight:500}
.inline-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.8fr);gap:8px}
.inline-row input,.inline-row select,.inline-task-form textarea{width:100%;height:32px;border:1px solid var(--line-strong);border-radius:var(--r);padding:0 9px;font-size:13px;background:var(--surface);color:var(--ink);outline:none}
.inline-task-form textarea{height:auto;padding:7px 9px;line-height:1.5;resize:vertical}
.inline-row input:focus,.inline-row select:focus,.inline-task-form textarea:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}
.inline-person{display:flex;align-items:center;gap:6px;height:32px;padding:0 9px;border-radius:var(--r);background:var(--wash);font-size:13px;color:var(--ink-2);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.inline-person .icon{width:14px;height:14px;flex:none}
.inline-task-form .form-actions{margin-top:0}
.task-inline{padding:12px 14px}
@media(max-width:760px){.inline-row{grid-template-columns:minmax(0,1fr)}}
.notice.warn{background:color-mix(in srgb,var(--amber) 14%,var(--mix));color:color-mix(in srgb,var(--amber) 70%,var(--ink))}
/* Mail intake (ADR-014): Messages → To check and Settings → Mail intake */
.mail-check-row{display:flex;align-items:flex-start;gap:12px;margin:0 -10px;padding:8px 10px;border-radius:var(--r)}
.mail-check-row:hover{background:var(--hover)}
.mail-check-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.mail-check-main span{font-size:12px;overflow-wrap:anywhere}
.mail-check-actions{display:flex;flex-wrap:wrap;gap:6px;flex:none}
.mail-state{font-size:12px;margin:8px 0}
.mail-subhead{font-size:12px;font-weight:600;margin:16px 0 4px}
.mail-switch{display:flex;align-items:center;gap:8px;font-size:12px}
.mail-command{margin:6px 0;padding:8px 10px;border-radius:var(--r);background:var(--wash);font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:640px){.mail-check-row{flex-wrap:wrap}.mail-check-actions{width:100%}}
/* Account access and the ALOCA entry screen. */
.workspace[hidden]{display:none}
.new-button[hidden]{display:none}
.auth-screen{height:100vh;height:100dvh;overflow:auto;overscroll-behavior:contain;background:#fff;color:#171512;display:grid;place-items:center;padding:24px}
.auth-screen[hidden]{display:none}
.auth-wrap{width:min(100%,420px);display:grid;gap:28px}
.auth-brand{display:flex;align-items:center;gap:10px;justify-content:center;font-size:14px;font-weight:800;letter-spacing:.18em}
.auth-brand .welcome-stack{font-size:44px;line-height:.72}
.auth-panel{border:1px solid #e8e5df;border-radius:var(--r);padding:30px;background:#fff;box-shadow:0 20px 70px #2b201008}
.auth-panel h1{font-size:25px;letter-spacing:-.04em;margin:4px 0 22px}
.auth-form{display:grid;gap:16px}
.auth-form label{display:grid;gap:7px;font-size:13px;font-weight:650}
.auth-form input{width:100%;min-height:44px;border:1px solid #d8d4cc;border-radius:var(--r);padding:10px 12px;background:#fff;color:inherit;font:inherit}
.auth-form input:focus{outline:2px solid #ff500a55;border-color:#ff500a}
.auth-footer{text-align:center;margin:0}
.forgot-password-link{justify-self:center;min-height:32px}
.recovery-copy{font-size:15px;line-height:1.65;margin:0 0 24px;color:#625c53}
.recovery-back{display:block;min-height:44px;margin:18px auto 0}
.demo-request-trigger{width:min(100%,600px);min-height:44px;padding:10px 4px;color:#625c53;text-align:center;font-size:13px;line-height:1.6}
.welcome-screen .demo-request-trigger{margin-top:10px}
.demo-request-trigger span{color:#171512;text-decoration:underline;text-underline-offset:3px}
.demo-request-trigger:hover span{text-decoration-thickness:2px}
.demo-request-trigger:focus-visible{outline:2px solid #ff500a;outline-offset:4px;border-radius:var(--r)}
.demo-request-card{width:100%;text-align:left;color:var(--ink)}
.demo-request-card>p:not(.eyebrow){font-size:14px;line-height:1.6;margin:0 0 20px;color:#625c53}
.demo-request-card label{display:block;font-size:12px;font-weight:600;margin-bottom:7px}
.demo-request-fields{display:flex;gap:8px}
.demo-request-fields input{min-width:0;flex:1;min-height:44px;border:1px solid #d8d4cc;border-radius:var(--r);padding:10px 12px;background:#fff;color:#171512;font:inherit;font-size:14px}
.demo-request-fields input:focus{outline:2px solid #ff500a55;border-color:#ff500a}
.demo-request-fields .button{min-height:44px;white-space:nowrap;border-radius:var(--r-btn);padding:10px 16px}
.demo-request-fields .button,:is(#login-form,#forgot-password-form,#reset-password-form) .button{background:transparent;color:#171512;border-color:#171512}
.modal:has(.demo-request-card) .eyebrow{color:#ff500a}
.demo-request-fields .button:hover,.demo-request-fields .button:focus-visible,:is(#login-form,#forgot-password-form,#reset-password-form) .button:is(:hover,:focus-visible){background:#171512;border-color:#171512;color:#fff}
.demo-request-fields input[aria-invalid="true"]{border-color:#a13020}
.demo-request-card small{display:block;font-size:11px;line-height:1.6;color:#756d62;margin-top:14px}
.demo-request-result{font-size:12px;margin:8px 0 0;color:#a13020}
.demo-request-result:empty{display:none}
.demo-request-success{font-size:14px;line-height:1.6;color:#255c43;padding:10px 0;margin:0}
.public-result{width:min(100%,660px);display:grid;justify-items:center;text-align:center;padding:12px 0 20px;gap:24px}
.public-result-brand{display:block;text-decoration:none;color:inherit}.public-result-brand .welcome-stack{font-size:32px}
.public-result-art{display:block;width:min(100%,430px);height:auto;aspect-ratio:3/2;object-fit:contain;margin:0 0 -14px}
.public-result-copy{max-width:410px}.public-result-kicker{font-size:10px;font-weight:550;letter-spacing:.2em;color:#958f87;margin:0 0 16px}
.public-result h1{font-size:clamp(29px,4vw,39px);font-weight:500;line-height:1.17;letter-spacing:-.045em;margin:0;color:#24221f}
.public-result h1 span{color:#ff500a}.public-result h1:focus{outline:none}
.public-result-copy>p:last-child{max-width:340px;margin:20px auto 0;font-size:14px;line-height:1.8;color:#827c74}
.public-result .public-result-back{margin:2px 0 0;min-height:44px;display:inline-flex;align-items:center;gap:10px;color:#ff500a}
.public-result-back .icon{width:24px;height:20px}.public-result-brand:focus-visible,.public-result-back:focus-visible{outline:2px solid #ff500a;outline-offset:6px}
@media(max-width:640px){.public-result{gap:20px;padding:8px 0 16px}.public-result-art{width:min(100%,340px)}.public-result-copy>p:last-child{max-width:290px}.public-result-brand .welcome-stack{font-size:28px}}
@media(max-height:650px){.public-result{gap:14px}.public-result-art{width:250px}.public-result-brand .welcome-stack{font-size:24px}.public-result h1{font-size:28px}}
.demo-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.admin-permission-note{margin:24px 12px}
.admin-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0}
.admin-metrics article{padding:24px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.admin-metrics span{display:block;font-size:13px;color:var(--muted)}
.admin-metrics strong{display:block;font-size:37px;font-weight:550;letter-spacing:-.05em;margin-top:10px}
.admin-filter{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:24px 0}
.admin-filter label{display:grid;gap:6px;font-size:13px}
.admin-filter label:first-child{flex:1;min-width:180px}
.admin-filter input,.admin-filter select{min-height:36px;min-width:0;border:1px solid var(--line-strong);border-radius:var(--r);padding:8px 10px;color:var(--ink);background:var(--surface);font:inherit}
.admin-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}
.admin-row-main{min-width:0;overflow-wrap:anywhere}.admin-row-main strong{font-size:15px;font-weight:600}.admin-row-main p{margin:6px 0}
.admin-state{display:inline-block;font-size:12px;color:var(--muted);margin-top:4px}
.admin-row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;font-size:13px}
.admin-pagination,.admin-overview-actions{display:flex;gap:12px;margin-top:24px;align-items:center}
.usage-chart{margin:28px 0 36px;padding:20px;border:1px solid var(--line);border-radius:var(--r)}
.usage-chart figcaption{font-weight:600;margin-bottom:20px}.usage-chart figcaption span{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.usage-chart svg{display:block;width:100%;height:auto;overflow:visible}.usage-chart rect{fill:#ff500a}.usage-chart line{stroke:var(--line-strong)}.usage-chart text{fill:var(--muted);font:11px sans-serif}
.usage-chart details{margin-top:20px;font-size:13px}.usage-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;margin-top:14px}
.usage-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.usage-table th,.usage-table td{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.usage-table thead th{color:var(--muted);font-size:12px;font-weight:500}.usage-table th{font-weight:500}.usage-table th:first-child{padding-left:0}.usage-table td{white-space:nowrap}
.usage-table small{display:block;font-size:12px;font-weight:400;color:var(--muted);overflow-wrap:anywhere}.usage-table strong{font-weight:600}.usage-table tbody th{min-width:150px}
.usage-users tbody th{min-width:120px}.usage-users td,.usage-users th{white-space:normal}
@media(max-width:640px){
  .usage-users,.usage-users tbody,.usage-users tr,.usage-users th{display:block}
  .usage-users thead{display:none}.usage-users tr{padding:12px 0;border-bottom:1px solid var(--line)}
  .usage-users tbody th{padding:12px 0;border:0}.usage-users td{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border:0}
  .usage-users td::before{content:attr(data-label);color:var(--muted);white-space:normal}
  .usage-chart{padding:14px}.usage-chart svg{min-height:130px}
}
@media(max-width:640px){.admin-metrics{grid-template-columns:1fr}.admin-metrics article{padding:18px}.admin-row{align-items:flex-start;flex-direction:column;gap:12px}.admin-row-actions{justify-content:flex-start}.demo-request-fields{flex-direction:column}.demo-request-fields .button{min-height:44px}.admin-permission-note{margin:12px}}
.notification-list{display:grid;gap:8px}.notification-row{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding:12px 0}.notification-row p{margin:5px 0 0}
.access-grants{display:grid;gap:12px}.access-grant{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:1px solid var(--line);padding:14px}.access-grant legend{font-weight:650;padding:0 5px}.access-grant>label:not(.checkbox),.invite-section form>label:not(.checkbox){display:grid;gap:5px;font-size:12px}.access-grant select,.invite-section input[type="email"],.invite-section select{min-height:34px;max-width:100%;border:1px solid var(--line-strong);border-radius:var(--r);padding:5px 8px;background:var(--surface);color:var(--ink)}.access-items{display:grid;gap:5px;padding:8px;background:var(--wash);font-size:12px}.access-item{display:flex;align-items:flex-start;gap:7px}.access-item input{margin-top:2px}.access-grant>.text-button,.access-grant>.checkbox{grid-column:1/-1}.invite-section{display:grid;gap:10px;margin-top:22px;border-top:1px solid var(--line);padding-top:18px}.invite-section h3,.invite-section h4{margin:0}.invite-section form{max-width:640px}.invite-section input[readonly]{width:min(100%,560px)}.disclosed-contact{border-top:1px solid var(--line);padding-top:12px}.disclosed-contact h3{margin:0 0 8px}.disclosed-contact p{margin:4px 0}.disclosed-contact ul{padding-left:18px}.project-message-row .mail-main p{white-space:pre-wrap;overflow-wrap:anywhere}
.welcome-screen{width:min(100%,1060px);text-align:center;display:grid;justify-items:center;gap:clamp(12px,2.5dvh,24px)}
.welcome-screen h1{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.welcome-stack{width:100%;display:grid;justify-items:center;font-size:clamp(64px,min(18.4vw,20dvh),210px);font-weight:900;letter-spacing:-.105em;line-height:.72;white-space:nowrap}
.welcome-stack span:first-child,.welcome-stack span:last-child{color:#fff4ef;-webkit-text-stroke:1.25px #ff500a}
.welcome-stack span:nth-child(2){color:#ff500a}
.welcome-caption{font-size:13px;letter-spacing:.21em;text-transform:uppercase;color:#5d574f;margin:35px 0 2px}
.welcome-enter{border:1px solid #ff500a;color:#fff;background:#ff500a;border-radius:9999em;padding:12px 34px;font:inherit;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s}
.welcome-enter:hover{transform:translateY(-1px);box-shadow:0 8px 25px #ff500a33}
.welcome-companies{width:100%;min-width:0;margin-top:42px;color:#111}
.welcome-companies h2{margin:0 0 20px;font-size:clamp(18.36px,2.295vw,27.54px);line-height:1.2;font-weight:600;letter-spacing:-.045em}
.welcome-company-list{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0;padding:0}
.welcome-company-list li{flex:1;min-width:0;height:44px;display:flex;align-items:center;justify-content:center}
.welcome-company-list li:first-child,.welcome-company-list li:nth-child(5),.welcome-company-list li:nth-child(6){flex:.5}
.welcome-company-list li:nth-child(4){flex:1.4}
.welcome-company-list svg{display:block;width:100%;height:100%;max-width:140px;transform:scale(.7038)}
@media(max-width:900px){
  .auth-screen{padding:20px}
  .auth-wrap{gap:20px}
  .welcome-screen{max-width:600px;gap:clamp(12px,2dvh,20px)}
  .welcome-company-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 24px;max-width:420px;margin:0 auto}
  .welcome-company-list li{height:32px}
  .welcome-company-list svg{max-width:110px}
  .welcome-companies h2{margin-bottom:18px;font-size:18.36px}
  .welcome-caption{font-size:11px;letter-spacing:.14em}
  .demo-request-fields input,.auth-form input{font-size:16px}
}
@media(max-height:500px) and (min-width:600px){
  .auth-screen{padding:16px}
  .welcome-screen{max-width:1000px;grid-template-columns:1fr 1fr;column-gap:32px;row-gap:12px}
  .welcome-stack{grid-column:1;grid-row:1 / 4;font-size:min(18vw,30dvh)}
  .welcome-caption{grid-column:1;grid-row:4;font-size:10px}
  .welcome-enter{grid-column:2;grid-row:1}
  .welcome-companies{grid-column:2;grid-row:2;margin:34px 0 0}
  .welcome-companies h2{font-size:16.83px;margin-bottom:14px}
  .welcome-company-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 20px}
  .welcome-company-list li{height:28px}
  .demo-request-trigger{grid-column:2;grid-row:3 / 5;max-width:340px}
}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:540px){.welcome-stack{font-size:clamp(64px,min(24vw,17dvh),110px)}.auth-panel{padding:24px}}
@media(max-width:640px){.access-grant{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.welcome-enter{transition:none}}

/* Signed-in phone layout (ADR-011). Navigation uses the existing disclosure. */
@media(max-width:860px){
  .workspace{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  .sidebar{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;max-height:65dvh;overflow:auto;padding:12px 16px;gap:10px}
  .sidebar-top{order:0;gap:12px}.sidebar-top .brand{margin-right:auto}.brand-name{display:inline}
  .workspace-switcher{order:1;width:100%;margin:0 0 4px}
  .sidebar .new-button,.sidebar .icon-button{width:44px;height:44px}
  .sidebar .searchbar{order:1;flex:none;width:100%;height:44px}.sidebar .searchbar input{font-size:16px}
  .sidebar .navigation{order:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex-basis:auto;overflow:visible;gap:4px}
  .sidebar .navigation>a,.sidebar .settings-nav{min-height:44px;height:auto;font-size:14px;gap:8px;padding:8px 10px}
  .sidebar .navigation span{margin-left:auto}.sidebar .nav-gap{display:none}
  .sidebar-section{display:block;order:3;margin-top:4px}.sidebar-section .side-item{height:40px}
  .sidebar-foot{order:4;display:flex;flex-direction:column;align-items:stretch;margin-top:6px;gap:4px}
  .sidebar-foot .app-version{padding:8px 10px}
  .page-heading{display:grid;grid-template-columns:40px minmax(0,1fr);gap:6px 10px;padding-top:12px;padding-bottom:12px}
  body:not(.sidebar-hidden) .page-heading{grid-template-columns:minmax(0,1fr)}
  .sidebar-toggle{width:40px;height:40px;margin:0}.heading-text{gap:8px}.heading-text h1{font-size:23px;line-height:1.2;overflow-wrap:anywhere}
  .heading-text p{display:none}.heading-actions{grid-column:1/-1;gap:8px}.heading-actions:empty{display:none}
  .heading-actions .button,.heading-actions .head-icon,.heading-actions .split-button .split-more{height:44px}
  .heading-actions .head-icon,.heading-actions .split-button .split-more{width:44px}
  #content{padding-bottom:max(20px,env(safe-area-inset-bottom));scroll-padding-bottom:20px}
  .workspace input:not([type="checkbox"]),.workspace select,.workspace textarea,.modal input:not([type="checkbox"]),.modal select,.modal textarea{font-size:16px;max-width:100%;min-width:0}
  .workspace .button,.modal .button,.workspace .settings-link,.workspace .tab,.modal .tab{min-height:44px;height:auto}
  .workspace .filterbar select,.workspace .filterbar input,.inline-row input,.inline-row select{height:44px}
  .tabs{gap:20px;min-height:44px;flex:none}.tab{display:inline-flex;align-items:center;flex:none}
  .icon-button,.more-button{min-width:40px;min-height:40px}
  .menu{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto}.menu-item{min-height:44px;white-space:normal}
  .modal-backdrop{padding:12px}.modal{max-height:calc(100dvh - 24px);padding:16px;min-width:0}
  .modal.drawer{max-height:100dvh;padding-bottom:max(16px,env(safe-area-inset-bottom))}
  .modal-head{gap:12px}.modal-head h2{overflow-wrap:anywhere}.modal-head .icon-button{flex:none}
  .modal .form-grid,.modal .form-row,.access-grant{grid-template-columns:minmax(0,1fr)}
  .form-actions{flex-wrap:wrap;gap:8px}.form-actions>*{max-width:100%}
  .task-row{display:grid;grid-template-columns:36px minmax(0,1fr) 40px;gap:4px 8px;align-items:start;padding-block:12px}
  .task-row .task-check{width:36px;height:36px;grid-column:1;grid-row:1 / 3}
  .task-row .task-main{grid-column:2;min-width:0}.task-row .task-title{text-align:left;line-height:1.45}
  .task-row>.due,.modal .task-row>.due{grid-column:2;grid-row:2;margin:0;justify-self:start;max-width:100%;white-space:normal}
  .task-row .row-actions{grid-column:3;grid-row:1 / 3;position:static;opacity:1;pointer-events:auto;transform:none;background:none;padding:0;margin:0;max-width:100%;flex-direction:column}
  .quick-add{min-height:48px}.quick-add kbd{display:none}.ideas{grid-template-columns:minmax(0,1fr)}
  .task-inline.editing{margin-left:0}.task-inline{padding:12px}.inline-row{grid-template-columns:minmax(0,1fr)}
  .mail-row{gap:8px;padding-block:12px}.mail-main strong,.mail-main>span{overflow-wrap:anywhere}
  .mail-check-row{flex-wrap:wrap}.mail-check-actions{margin-left:0;flex-basis:100%}
  .draft-row,.plan-row{gap:12px}.draft-row>.row-actions,.plan-row>.row-actions{flex-basis:100%;justify-content:flex-start}
  .inline-form{flex-wrap:wrap}.inline-form input{width:100%;flex:1 1 160px;min-width:0;height:44px}
  .project-message-row{flex-wrap:wrap}.project-message-row>.row-actions{margin-left:28px}
  .project-row{padding:12px 0;row-gap:8px}.project-name{flex-wrap:wrap;gap:6px}.project-title{white-space:normal;text-align:left}
  .project-row .project-tags{max-width:100%;flex-wrap:wrap}.project-row .project-property{min-height:36px}
  .project-dates{white-space:normal;flex-wrap:wrap}.project-next-title{white-space:normal}
  .project-shell{min-height:0}.project-head{flex:none}.board{scroll-snap-type:x proximity;grid-template-columns:repeat(3,minmax(240px,82vw));min-height:260px}
  .board-col{scroll-snap-align:start}.board-card{touch-action:pan-x pan-y}.board-quick input{font-size:16px}
  .gantt{flex:1;min-height:200px}.gantt-row{grid-template-columns:140px minmax(420px,1fr)}
  .calendar-toolbar{height:auto;flex-wrap:wrap;gap:8px}.calendar-toolbar h2{order:3;flex-basis:100%;font-size:14px}
  .calendar-toolbar .segmented{margin-left:0}.calendar-toolbar .segment{min-height:40px;padding-inline:10px}.calendar-toolbar kbd{display:none}
  .calendar-month{overflow:auto}.calendar-month .calendar-week,.calendar-month .calendar-grid{min-width:560px}
  .mode-week .timegrid{overflow:auto}.mode-week .tg-head,.mode-week .tg-body{min-width:640px}
  .calendar-shell .day-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(180px,1fr) auto;overflow:auto}
  .day-agenda{max-height:34dvh}.calendar-shell>.task-inline{max-height:55dvh}
  .settings-layout{grid-template-columns:minmax(0,1fr);gap:20px;min-height:0}
  .settings-menu{position:static;flex-direction:row;flex-wrap:nowrap;align-items:center;overflow-x:auto;gap:6px;border-right:0;border-bottom:1px solid var(--line);padding:0 0 12px}
  .settings-menu>*{flex:none}.settings-identity{width:auto;max-width:160px;padding:0 8px 0 0}.settings-link{width:auto;white-space:nowrap;padding:10px 12px}
  .settings-group{width:1px;height:1px;overflow:hidden;position:absolute;clip:rect(0,0,0,0);padding:0;margin:-1px}
  .settings-signout{padding:0;margin:0;border:0}.settings-body{max-width:100%}
  .settings-details>div{flex-direction:column;gap:4px}.settings-panel .settings-details dt{width:auto}
  .notification-row,.admin-row{flex-direction:column;align-items:flex-start;gap:10px}.admin-filter{align-items:stretch}.admin-metrics{grid-template-columns:minmax(0,1fr)}
  .admin-row-actions{justify-content:flex-start}.admin-pagination,.admin-overview-actions{flex-wrap:wrap}.access-grant{min-width:0}.access-grant>.checkbox{grid-column:auto}
}
@media(max-width:640px){
  #content.view-contacts{overflow:auto}.people-layout:not(.facets-closed){height:auto;min-height:100%}
  .people-layout:not(.facets-closed) .table-scroll{flex:none;min-height:240px;max-height:60dvh}
  .people-panel .filterbar{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:8px}
  .people-panel .filterbar>select,.people-panel .filterbar>input{flex:1 1 120px;width:0;max-width:100%}
  .people-layout.facets-closed .filterbar>:is(select,input,.sort-dir){display:none}
  .facets{max-height:30dvh}.facet-item,.facet-tag{min-height:40px}
  .people-table,.people-table tbody{display:block;min-width:0;width:100%}
  .people-table thead,.people-table thead tr{display:block}.people-table th:not(.col-check){display:none}
  .people-table th.col-check{display:flex;align-items:center;gap:10px;width:auto;height:44px}
  .people-table th.col-check::after{content:'Select page';font-size:12px}
  .people-table tbody tr{display:grid;grid-template-columns:28px minmax(0,1fr) 36px;gap:6px 8px;padding:14px 4px;border-top:1px solid var(--line)}
  .people-table td{display:block;grid-column:2/-1;height:auto;min-width:0;border:0;padding:0;white-space:normal;overflow-wrap:anywhere;overflow:visible}
  .people-table [class^="col-"]{width:auto}.people-table .col-check{grid-column:1;grid-row:1}.people-table .col-name{grid-column:2;grid-row:1}
  .people-table .col-open{grid-column:3;grid-row:1}.people-table .col-open .icon-button{min-width:36px;width:36px}
  .people-table .person-cell{min-height:36px;align-items:flex-start;text-align:left}.people-table .person-cell strong{white-space:normal;overflow-wrap:anywhere}
  .people-table td[data-label]::before{content:attr(data-label);display:block;font-size:10px;color:var(--muted);margin-bottom:2px}
  .people-table .col-email{overflow-wrap:anywhere}.people-table .col-updated{display:block}
  .people-table .next-action{white-space:normal;text-align:left}.people-table .col-tags:empty{display:none}
  .people-table input[type="checkbox"]{width:22px;height:22px;margin:7px 0}
  .pagination{gap:8px;align-items:flex-start;flex-direction:column}.pagination>div{width:100%}.pagination .button{flex:1}
  .bulk-form{width:100%;flex-wrap:wrap}.bulk-form input{flex:1;min-width:0;width:100%}
  .bulkbar{padding:8px}.bulkbar select{max-width:100%;height:40px}
  .project-row{grid-template-columns:70px minmax(0,1fr) 64px}.project-name{grid-column:1/-1}.project-next{grid-column:1/-1}
  .project-inline-editor>label{min-width:0;flex-basis:100%}.project-progress progress{width:30px}
}

@media(max-width:540px) and (max-height:650px){
  .auth-screen{padding:16px}.welcome-screen{gap:8px}.welcome-company-list{row-gap:8px}
}

.settings-layout .help,.settings-layout .text-button{font-size:13px}
.settings-layout .button,.settings-layout .form-grid label,.settings-layout .auth-form label{font-size:14px}
.settings-layout .settings-section h2{font-size:12px}
.settings-layout .settings-panel>h2{font-size:21px}

.people-search{display:grid;gap:7px;margin:0 0 12px;font-size:12px;color:var(--muted)}
.people-search input{width:100%;min-width:0;height:36px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface);color:var(--ink)}
.people-panel>.people-search{flex:none;max-width:440px;margin-top:8px}
@media(max-width:860px){.people-search input{height:44px;font-size:16px}.people-panel>.people-search{max-width:none}}

/* Public information pages share the ALOCA welcome identity (ADR-023). */
.auth-screen:has(>.legal-footer){grid-template-rows:minmax(0,1fr) auto;row-gap:12px;padding-bottom:12px}
.legal-footer{display:flex;justify-content:flex-end;align-items:center;gap:20px;width:100%;font-size:13px;line-height:1.6;color:#625c53}
.legal-footer a{padding:5px 0;text-decoration:none;text-underline-offset:3px}
.legal-footer a:hover{text-decoration:underline;color:#171512}
.legal-footer a:focus-visible,.legal-back:focus-visible,.legal-brand:focus-visible{outline:2px solid #ff500a;outline-offset:5px;border-radius:4px}
.auth-screen:has(.legal-page){display:block;padding:48px 24px 24px}
.legal-page{width:min(100%,720px);margin:0 auto;color:#171512;font-size:15px;line-height:1.75}
.legal-page header{text-align:center;margin-bottom:44px}
.legal-brand{display:block;width:min(100%,280px);margin:0 auto 28px;text-decoration:none}
.legal-brand .welcome-stack{font-size:88px;line-height:.72}
.legal-page .eyebrow{font-size:10px;letter-spacing:.16em;color:#756d62;margin:0 0 24px}
.legal-page h1{font-size:36px;letter-spacing:-.045em}
.legal-date{font-size:12px;color:#756d62;margin:12px 0 0}
.legal-copy section{margin-bottom:28px}.legal-copy h2{font-size:19px;margin:0 0 12px}
.legal-copy p{margin:0 0 12px}.legal-copy a{color:#be3500;text-underline-offset:3px}
.legal-back{display:flex;justify-content:center;align-items:center;gap:14px;min-height:48px;margin:40px auto;color:#d33f00;text-decoration:none;font-weight:600;width:fit-content;white-space:nowrap}
.legal-back .icon{color:#ff500a;width:32px;height:32px;flex:none;stroke-width:1.2;transition:transform .15s}
.legal-back:hover .icon{transform:translateX(-4px)}
.legal-page>.legal-footer{border-top:1px solid #efede8;padding-top:16px}
@media(max-width:540px){.legal-footer{font-size:12px;gap:18px}.auth-screen:has(.legal-page){padding:32px 20px 20px}.legal-brand .welcome-stack{font-size:56px}.legal-brand{width:220px}.legal-page h1{font-size:29px}.legal-page header{margin-bottom:30px}.legal-copy h2{font-size:18px}}
@media(max-width:540px) and (max-height:650px){.welcome-stack{font-size:64px}.welcome-caption{margin-top:clamp(5px,calc(100dvh - 568px),35px)}.auth-screen:has(>.legal-footer){row-gap:4px}.welcome-company-list{row-gap:6px}}
@media(prefers-reduced-motion:reduce){.legal-back .icon{transition:none}}
@media(max-width:640px){
  .auth-wrap:is(:has(#login-form),.password-recovery,:has(#reset-password-form)) .auth-panel{border:0;box-shadow:none;background:transparent;padding:0}
  :is(#login-form,#forgot-password-form,#reset-password-form){gap:18px}
  :is(#login-form,#forgot-password-form,#reset-password-form) :is(input,.button){min-height:48px}
  :is(#login-form,#forgot-password-form,#reset-password-form) .button{height:auto;font-size:15px}
  .forgot-password-link{min-height:44px}
  .modal:has(.demo-request-card){padding:20px 20px 24px}
  .modal:has(.demo-request-card) .modal-head{margin-bottom:16px}
  .demo-request-card label{font-size:13px;margin-bottom:8px}
  .demo-request-fields{gap:12px}
  .demo-request-fields input,.demo-request-fields .button{min-height:48px}
  .demo-request-fields .button{font-size:15px}
  .demo-request-card small{font-size:12px;line-height:1.5;margin-top:16px}
}
@media(max-width:640px) and (max-height:650px){
  .auth-wrap:is(:has(#login-form),.password-recovery,:has(#reset-password-form)){gap:10px}
  .auth-wrap:is(:has(#login-form),.password-recovery,:has(#reset-password-form)) .welcome-stack{font-size:36px}
  .auth-wrap:is(:has(#login-form),.password-recovery,:has(#reset-password-form)) .auth-panel{padding:0}
  .auth-wrap:is(:has(#login-form),.password-recovery,:has(#reset-password-form)) .auth-panel h1{font-size:24px;margin-bottom:18px}
  :is(#login-form,#forgot-password-form,#reset-password-form){gap:14px}
}
.demo-request-page header{text-align:center}
.demo-request-page header .eyebrow{color:#ff500a;margin-bottom:8px}
.demo-request-page h1{font-size:28px;letter-spacing:-.04em}
.demo-request-page .legal-back{margin:0 auto;min-height:48px}
