/* FramePM 0.10 — quiet, Apple-inspired interface. Light by default, dark follows the system. */
/* Colours are defined once with light-dark(): the first value is used in the light theme, the second in the dark one.
   Which theme is active: the visitor's choice (data-theme on <html>, set by assets/theme.js) or, by default, the system setting. */
:root{
  color-scheme:light dark;
  --bg:light-dark(#f5f5f7,#000);--panel:light-dark(#fff,#1c1c1e);--panel-2:light-dark(#fafafc,#232326);
  --fill:light-dark(rgba(120,120,128,.1),rgba(235,235,245,.09));--fill-2:light-dark(rgba(120,120,128,.16),rgba(235,235,245,.15));
  --line:light-dark(rgba(60,60,67,.13),rgba(255,255,255,.1));
  --text:light-dark(#1d1d1f,#f5f5f7);--muted:light-dark(#6e6e73,#a1a1a6);--faint:light-dark(#98989d,#6e6e73);
  --accent:light-dark(#0071e3,#2997ff);--accent-soft:light-dark(rgba(0,113,227,.1),rgba(41,151,255,.16));--accent-ink:#fff;--danger:light-dark(#d70015,#ff453a);
  --shadow:0 0 0 .5px light-dark(rgba(0,0,0,.06),rgba(255,255,255,.07)),0 1px 3px light-dark(rgba(0,0,0,.05),transparent);
  --shadow-lg:0 10px 40px light-dark(rgba(0,0,0,.14),rgba(0,0,0,.6));
  --s-todo:light-dark(#8e8e93,#98989d);--s-wip:light-dark(#ff9500,#ff9f0a);--s-review:light-dark(#0a84ff,#64a8ff);
  --s-approved:light-dark(#30b350,#32d74b);--s-rejected:light-dark(#ff3b30,#ff6961);--s-done:light-dark(#1ea7a0,#40d0c8);
  --radius:14px;--sidebar:224px;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Inter","Segoe UI",system-ui,sans-serif;
}
:root[data-theme=light]{color-scheme:light}
:root[data-theme=dark]{color-scheme:dark}

*{box-sizing:border-box}html{background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.47 var(--font);-webkit-font-smoothing:antialiased;letter-spacing:-.006em}
a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}small{font-size:12px;color:var(--muted)}b,strong{font-weight:600}
code{font:12px ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--fill);padding:1px 5px;border-radius:5px}
::selection{background:var(--accent-soft)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ---- controls */
input,select,textarea,button{font:inherit;color:inherit}
input,select,textarea{width:100%;background:var(--fill);border:1px solid transparent;border-radius:10px;padding:8px 11px;outline:none;transition:background .15s,border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{background:var(--panel);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent)}
input[type=color]{padding:2px;height:34px;width:44px;cursor:pointer}
input[type=file]{padding:7px 9px}
select{appearance:none;-webkit-appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238e8e93' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}
textarea{resize:vertical;min-height:70px}
label{display:block;font-size:12px;font-weight:500;color:var(--muted);margin-bottom:12px}
label input,label select,label textarea{margin-top:5px;color:var(--text);font-size:14px;font-weight:400}
label.check{display:inline-flex;align-items:center;gap:7px;margin:0;color:var(--text);font-size:13px;font-weight:400}label.check input{margin:0}
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--accent);color:var(--accent-ink);border:0;border-radius:980px;padding:7px 16px;font-weight:500;font-size:13px;cursor:pointer;white-space:nowrap;transition:filter .15s,background .15s,transform .05s}
button:hover,.button:hover{filter:brightness(1.08)}button:active,.button:active{transform:scale(.98)}
button.secondary,.button.secondary{background:var(--fill);color:var(--text)}button.secondary:hover,.button.secondary:hover{background:var(--fill-2);filter:none}
button.danger,.button.danger{color:var(--danger)}
button:disabled{opacity:.4;cursor:default}
.icon-button{width:26px;height:26px;padding:0;border-radius:50%;background:var(--fill);color:var(--muted);font-size:15px}.icon-button:hover{background:var(--fill-2);color:var(--danger);filter:none}
.text-link{color:var(--accent);font-size:13px}.text-link:hover{text-decoration:underline}
.muted{color:var(--muted)}.table-muted{color:var(--faint);font-size:12px}.full{grid-column:1/-1}.overdue{color:var(--danger)!important}

/* ---- layout */
.app-shell{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar);flex:0 0 var(--sidebar);height:100vh;position:sticky;top:0;padding:22px 12px 14px;display:flex;flex-direction:column;background:color-mix(in srgb,var(--bg) 80%,var(--panel));border-right:.5px solid var(--line)}
.brand{display:flex;align-items:center;gap:9px;padding:0 10px 20px;font-size:16px;font-weight:600;letter-spacing:-.02em}
.brand-mark{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;background:var(--text);color:var(--bg);font-size:14px;font-weight:700}
.sidebar nav{display:flex;flex-direction:column;gap:1px}
.side-link{display:block;padding:6px 11px;border-radius:8px;font-size:13.5px;color:var(--text);transition:background .12s}
.side-link:hover{background:var(--fill)}.side-link.active{background:var(--accent-soft);color:var(--accent);font-weight:500}
.side-project{margin:18px 0 6px;padding:0 11px}.side-project b{display:block;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-project small{display:none}
.side-gap{height:10px}.sidebar-spacer{flex:1}
.user-card{display:flex;align-items:center;gap:10px;padding:10px 8px 0;border-top:.5px solid var(--line);margin-top:10px}
.user-card b{display:block;font-size:13px;font-weight:500;line-height:1.2}.user-card small{font-size:11px}.user-card>div:nth-child(2){flex:1;min-width:0}.logout{font-size:12px;color:var(--accent)}
.avatar{width:28px;height:28px;border-radius:50%;background:var(--fill-2);display:grid;place-items:center;font-size:11px;font-weight:600;color:var(--muted);flex:0 0 auto}
.app-main{flex:1;min-width:0}
.page-content{max-width:1240px;margin:0 auto;padding:44px 40px 80px}
.login-page,.center{min-height:100vh;display:grid;place-items:center;padding:24px}

.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}
.page-heading h1{font-size:30px;line-height:1.15;font-weight:700;letter-spacing:-.025em}.page-heading p{color:var(--muted);margin-top:6px;font-size:14px}
.heading-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.eyebrow{font-size:12px;color:var(--faint);margin-bottom:6px;font-weight:500}
.crumb{display:none}

/* ---- cards */
.card{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;overflow:hidden}
.section-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 22px 6px}
.section-heading h2{font-size:17px;font-weight:600;letter-spacing:-.015em}.section-heading p{font-size:13px;color:var(--muted);margin-top:2px}
.section-body{padding:14px 22px 20px}
.empty-state{padding:34px 20px;text-align:center;color:var(--faint);font-size:13px}.empty-state strong{display:block;color:var(--muted);font-size:15px;margin-bottom:4px}
.ok,.warning,.error{padding:11px 15px;border-radius:12px;margin:0 0 18px;font-size:13px}
.ok{background:rgba(48,179,80,.12);color:var(--s-approved)}.warning{background:rgba(255,149,0,.13);color:var(--s-wip)}.error{background:rgba(255,59,48,.11);color:var(--danger)}
.warning ul{margin:8px 0 0 18px;padding:0;color:var(--text)}details.warning summary{cursor:pointer}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.task-create-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 14px;align-items:end}
.workspace-grid,.hierarchy-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.workspace-grid>aside,.hierarchy-layout>aside{display:flex;flex-direction:column;gap:20px}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:20px;margin-top:20px}
.dashboard-recent{margin-top:24px}
.toolbar-row,.task-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.task-toolbar h2{font-size:17px}.task-toolbar p{color:var(--muted);font-size:13px}
.inline-search{display:flex;gap:8px}.inline-search input{min-width:260px}
.compact-form label{margin-bottom:10px}
.inline-edit select{padding:5px 26px 5px 9px;font-size:13px;border-radius:8px;min-width:130px}

/* ---- segmented controls (tabs) */
.workspace-tabs,.type-tabs{display:inline-flex;gap:2px;padding:3px;background:var(--fill);border-radius:11px;margin-bottom:20px;max-width:100%;overflow-x:auto;flex-wrap:wrap}
.workspace-tabs a,.type-tabs a{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:8px;font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.workspace-tabs a:hover,.type-tabs a:hover{color:var(--text)}
.workspace-tabs a.active,.type-tabs a.active{background:var(--panel);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.12),0 0 0 .5px rgba(0,0,0,.04)}
.workspace-tabs b,.type-tabs b{font-size:11px;font-weight:500;color:var(--faint)}
.type-tabs .dot{width:8px;height:8px;border-radius:50%;background:var(--c,var(--accent));display:inline-block}.type-tabs a.add{color:var(--accent)}
.sub-tabs{margin-top:0}

/* ---- chips & status */
.type-chip,.code-chip,.status-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:500;padding:2px 8px;border-radius:6px;background:var(--fill);color:var(--muted);white-space:nowrap}
.status-chip.large{font-size:13px;padding:5px 13px;border-radius:980px}
.status{display:inline-flex;font-size:12px;font-weight:500;padding:2px 10px;border-radius:980px;background:var(--fill);color:var(--muted);text-transform:capitalize}
.status.active{background:rgba(48,179,80,.14);color:var(--s-approved)}.status.completed{background:var(--accent-soft);color:var(--accent)}
.taskstatus{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--s-todo)}.taskstatus::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.taskstatus.wip{color:var(--s-wip)}.taskstatus.review{color:var(--s-review)}.taskstatus.approved{color:var(--s-approved)}.taskstatus.rejected{color:var(--s-rejected)}.taskstatus.done{color:var(--s-done)}
.priority{font-size:12px;color:var(--muted);text-transform:capitalize}.priority.high{color:var(--s-wip)}.priority.urgent{color:var(--s-rejected);font-weight:600}

/* ---- tables */
.table-wrap{overflow:auto}
.data-table{width:100%;border-collapse:collapse}
.data-table th{text-align:left;color:var(--faint);font-size:12px;font-weight:500;padding:10px 16px;border-bottom:.5px solid var(--line);white-space:nowrap;position:sticky;top:0;background:var(--panel)}
.data-table td{padding:11px 16px;border-bottom:.5px solid var(--line);font-size:13px;vertical-align:middle}
.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover td{background:var(--panel-2)}
.data-table td small,.data-table td strong+small{display:block}
.data-table th:first-child,.data-table td:first-child{padding-left:22px}.data-table th:last-child,.data-table td:last-child{padding-right:22px}
.entity-cell{display:flex;align-items:center;gap:10px}.row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.row-actions form{margin:0}
.row-overdue td:first-child{box-shadow:inset 2px 0 var(--s-rejected)}
.mini-action{color:var(--accent);font-size:13px}

/* ---- stat tiles */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stat-card{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}
.stat-card small{display:block;font-size:12px;font-weight:500;color:var(--muted)}.stat-card strong{display:block;font-size:32px;font-weight:700;letter-spacing:-.03em;line-height:1.2;margin-top:4px}.stat-card span{font-size:12px;color:var(--faint)}
.stat-alert strong{color:var(--danger)}
.production-pulse{display:none}

/* ---- projects */
.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px}
.project-card{display:block;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;transition:transform .15s,box-shadow .15s}
.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.project-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.project-symbol{display:none}
.project-card .eyebrow{margin-bottom:2px}.project-card h2{font-size:20px;font-weight:650;letter-spacing:-.02em}.project-card p{color:var(--muted);font-size:13px;margin-top:6px;min-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-card-bottom{display:flex;gap:16px;margin-top:20px;font-size:12px;color:var(--muted)}.project-card-bottom b{color:var(--text)}.open-project{margin-left:auto;color:var(--accent)}
details.card>summary{list-style:none;cursor:pointer}details.card>summary::-webkit-details-marker{display:none}

/* ---- tasks & rows */
.task-list{padding:6px 0 10px}
.task-row{display:grid;grid-template-columns:130px 1fr auto;gap:12px;align-items:center;padding:10px 22px;border-top:.5px solid var(--line)}.task-row:first-child{border-top:0}.task-row b{font-weight:500}.task-row small{display:block}
.task-filters{padding:14px 18px;margin-bottom:18px}.task-filters form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.task-filters label{margin:0;flex:1 1 150px}
.relation-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:.5px solid var(--line)}.relation-row:last-child{border:0}.relation-row a{display:inline-flex;gap:8px;align-items:center}.relation-row form{margin-left:auto}.link-arrow{color:var(--faint)}
.task-create{position:relative}.task-create summary{list-style:none}.task-create form{position:absolute;right:0;top:44px;width:340px;z-index:20;box-shadow:var(--shadow-lg)}

/* ---- tree */
.tree-root,.tree-children{list-style:none;margin:0;padding:0}.tree-children{margin-left:20px;border-left:.5px solid var(--line);padding-left:6px}
.tree-node{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:8px}.tree-node:hover{background:var(--fill)}.tree-type{font-size:11px;font-weight:500;color:var(--muted);background:var(--fill);padding:1px 7px;border-radius:5px}.tree-count{margin-left:auto;font-size:12px;color:var(--faint)}

/* ---- entity page */
.entity-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}.entity-hero h1{font-size:30px;font-weight:700;letter-spacing:-.025em}.entity-hero p{color:var(--muted);margin-top:6px}
.entity-hero-meta{display:flex;gap:8px;align-items:center}.parent-breadcrumb{margin-top:10px;color:var(--muted);font-size:13px;display:flex;gap:8px;align-items:center}.parent-breadcrumb a{display:inline-flex;gap:6px;align-items:center;color:var(--accent)}
.entity-dashboard{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}.entity-dashboard>main,.entity-dashboard>aside{display:flex;flex-direction:column;gap:20px;min-width:0}
.preview-stage{background:#000;display:grid;place-items:center;min-height:240px;position:relative}.preview-stage img,.preview-stage video{max-width:100%;max-height:480px;display:block}
.preview-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 16px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;display:flex;justify-content:space-between}.preview-caption small{color:rgba(255,255,255,.7)}
.empty-preview{color:#8e8e93;text-align:center;padding:50px 20px}.empty-preview span{font-size:12px}
.preview-strip{display:flex;gap:8px;padding:12px 16px;overflow:auto}.preview-mini{width:84px;height:52px;border-radius:8px;overflow:hidden;background:var(--fill);display:grid;place-items:center;flex:0 0 auto}.preview-mini img{width:100%;height:100%;object-fit:cover}
.preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;padding:10px 18px 18px}.preview-thumb{display:block;border-radius:10px;overflow:hidden;background:var(--fill)}.preview-thumb img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}.preview-thumb span{display:block;padding:6px 9px}.preview-thumb b{font-size:12px;font-weight:500}.preview-thumb small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-file{display:grid;place-items:center;aspect-ratio:16/10;color:var(--muted)}
.structure-line{display:flex;align-items:center;gap:10px;padding-bottom:12px}.child-list{display:flex;flex-direction:column;gap:2px;margin-top:8px}.child-list a{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:8px}.child-list a:hover{background:var(--fill)}
.comment-form{display:flex;flex-direction:column;gap:10px;align-items:flex-end;margin-bottom:18px}
.comment{padding:14px 0;border-top:.5px solid var(--line)}.comment-head{display:flex;justify-content:space-between;margin-bottom:4px}.comment p{font-size:14px}

/* ---- sheet */
.sheet-filters{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.sheet-filters input,.sheet-filters select{width:auto}.sheet-filters input[name=q]{min-width:240px}
.bulk-bar{position:sticky;top:12px;z-index:30;display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:color-mix(in srgb,var(--panel) 86%,transparent);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-radius:14px;padding:9px 14px;margin-bottom:12px;box-shadow:var(--shadow-lg)}
.bulk-bar select{width:auto;padding:5px 28px 5px 10px;font-size:13px}.bulk-bar[hidden]{display:none}.bulk-bar .sep{width:.5px;height:20px;background:var(--line);margin:0 4px}
.sheet-card{overflow:hidden}.sheet-wrap{max-height:calc(100vh - 260px);overflow:auto}
table.sheet{border-collapse:separate;border-spacing:0;width:100%;min-width:760px}
.sheet th{position:sticky;top:0;z-index:3;background:var(--panel);text-align:left;color:var(--faint);font-size:12px;font-weight:500;padding:11px 12px;border-bottom:.5px solid var(--line);white-space:nowrap;vertical-align:bottom}
.sheet th.sortable{cursor:pointer}.sheet th.sortable:hover{color:var(--text)}.sheet th[data-dir=asc]::after{content:" ↑"}.sheet th[data-dir=desc]::after{content:" ↓"}
.sheet td{padding:7px 12px;border-bottom:.5px solid var(--line);font-size:13px;vertical-align:middle;white-space:nowrap}
.sheet tbody tr:hover td{background:var(--panel-2)}.sheet tr:has(.rowchk:checked) td{background:var(--accent-soft)}
.sheet tbody tr:last-child td{border-bottom:0}
.c-chk{width:34px;text-align:center}.c-chk input{margin:0}.c-thumb{width:68px}
.c-thumb img,.noimg{width:52px;height:32px;border-radius:6px;object-fit:cover;display:grid;place-items:center;background:var(--fill);color:var(--faint);font-size:9px;font-weight:600}
.c-task{min-width:150px}
.tt-name{display:flex;align-items:center;gap:6px;color:var(--muted);margin-bottom:6px;font-weight:500}.tt-name .dot{width:8px;height:8px;border-radius:50%;background:var(--c,var(--accent))}
.tt-bar{display:flex;height:3px;border-radius:2px;background:var(--fill-2);overflow:hidden;min-width:90px}.tt-bar i{display:block;height:100%}
.tt-bar .s-todo{background:var(--s-todo)}.tt-bar .s-wip{background:var(--s-wip)}.tt-bar .s-review{background:var(--s-review)}.tt-bar .s-approved{background:var(--s-approved)}.tt-bar .s-rejected{background:var(--s-rejected)}.tt-bar .s-done{background:var(--s-done)}
.cell-edit{background:transparent;border:1px solid transparent;border-radius:7px;padding:4px 7px;min-width:96px;width:100%;font-size:13px}.cell-edit:hover{background:var(--fill)}.cell-edit:focus{background:var(--panel);border-color:var(--accent)}
.name-cell{display:flex;align-items:center;gap:2px;min-width:150px}.name-cell .open{color:var(--faint);padding:0 6px;font-size:13px;opacity:0}tr:hover .name-cell .open{opacity:1}.name-cell .open:hover{color:var(--accent)}
.tcell{display:flex;align-items:center;gap:6px}
select.pill{--pc:var(--s-todo);flex:1;min-width:92px;appearance:none;-webkit-appearance:none;border:0;border-radius:980px;padding:4px 10px;font-size:12px;font-weight:600;text-align:center;cursor:pointer;background-image:none;background-color:color-mix(in srgb,var(--pc) 15%,transparent);color:color-mix(in srgb,var(--pc) 78%,var(--text))}
select.pill:hover{background-color:color-mix(in srgb,var(--pc) 24%,transparent)}select.pill:focus{box-shadow:0 0 0 3px var(--accent-soft)}
select.pill.s-wip{--pc:var(--s-wip)}select.pill.s-review{--pc:var(--s-review)}select.pill.s-approved{--pc:var(--s-approved)}select.pill.s-rejected{--pc:var(--s-rejected)}select.pill.s-done{--pc:var(--s-done)}
select.pill option{background:var(--panel);color:var(--text);font-weight:400}
.av{position:relative;width:24px;height:24px;border-radius:50%;background:var(--fill-2);display:grid;place-items:center;font-size:10px;font-weight:600;color:var(--muted);flex:0 0 auto;cursor:pointer}
.av.on{background:var(--accent-soft);color:var(--accent)}.av select{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;padding:0}.av.ro{cursor:default}
.add-task{background:transparent;color:var(--faint);border:1px dashed var(--line);padding:2px 0;font-size:13px;border-radius:980px;width:100%;min-width:92px}.add-task:hover{background:var(--fill);color:var(--accent);filter:none}
.saved{outline:2px solid var(--s-approved)!important;outline-offset:1px}.failed{outline:2px solid var(--s-rejected)!important;outline-offset:1px}
.quick-add{display:flex;gap:8px;align-items:center;padding:12px 16px;flex-wrap:wrap}.quick-add input,.quick-add select{width:auto;min-width:150px}.quick-add b{font-weight:500;color:var(--muted);font-size:13px}

/* ---- settings */
.type-list{display:flex;flex-direction:column;gap:8px}
.type-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 10px;border-radius:12px;background:var(--panel-2);box-shadow:inset 0 0 0 .5px var(--line)}
.type-row input[type=color]{flex:0 0 auto;height:30px;width:38px;padding:2px}.type-row input:not([type=color]):not([type=checkbox]):not([type=number]){flex:1 1 140px;min-width:100px;width:auto}.type-row input[type=number]{width:64px}
fieldset.checks{border:0;padding:0;margin:0 0 16px;display:flex;flex-wrap:wrap;gap:8px 18px}fieldset.checks legend{font-size:12px;font-weight:500;color:var(--muted);padding:0;margin-bottom:8px}

/* ---- import */
.import-wrap{max-width:720px;margin:0 auto}
.dropzone{display:grid;place-items:center;text-align:center;gap:6px;padding:46px 20px;border-radius:var(--radius);border:1.5px dashed var(--line);background:var(--panel);cursor:pointer;transition:background .15s,border-color .15s}
.dropzone:hover,.dropzone.over{border-color:var(--accent);background:var(--accent-soft)}.dropzone b{font-size:17px;font-weight:600}.dropzone span{color:var(--muted);font-size:13px}.dropzone .fname{color:var(--accent);font-weight:500}
.dropzone input{display:none}
.opts{margin-top:18px}.opts>summary{cursor:pointer;color:var(--accent);font-size:13px;padding:6px 0;list-style:none}.opts>summary::-webkit-details-marker{display:none}
.opts[open]>summary{margin-bottom:10px}
.import-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.seg-row{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}

/* ---- auth */
.card.login,.center>.card{width:min(400px,100%);padding:34px 30px;box-shadow:var(--shadow-lg)}
.center h1,.login h1{font-size:26px;font-weight:700;letter-spacing:-.025em;margin-bottom:4px}.center p,.login p{color:var(--muted)}
.center form,.login form{margin-top:20px}.center button,.login button{width:100%;padding:10px;margin-top:6px}
.center .card.wide{width:min(520px,100%)}

/* ---- responsive */
@media(max-width:1100px){.workspace-grid,.hierarchy-layout,.entity-dashboard,.dashboard-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.task-create-grid{grid-template-columns:1fr 1fr}}
@media(max-width:820px){
  .app-shell{display:block}
  .page-content{padding:24px 16px 60px}.page-heading{flex-direction:column;align-items:flex-start}.page-heading h1,.entity-hero h1{font-size:25px}.form-grid,.task-create-grid,.seg-row{grid-template-columns:1fr}}

/* 0.10 refinements */
label.av{margin:0;font-size:10px}
.sheet td{padding:6px 10px}.c-thumb{width:60px}.cell-edit{min-width:84px}.name-cell{min-width:120px}
.dropzone{color:var(--text);margin-bottom:0}.dropzone b{color:var(--text)}.dropzone .fname{color:var(--accent)}
.import-wrap{margin:0}
form.props{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}form.props>*{grid-column:1/-1}form.props>label{grid-column:auto}form.props .form-grid{grid-column:1/-1}



/* ================= 0.11 ================= */
/* ---- Sheet: alternating rows for readability, then hover, then selection (later rules win) */
.sheet tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--text) 5%,var(--panel))}
.sheet tbody tr:hover td{background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.sheet tbody tr{cursor:default}
.cell-edit[data-key=code]{min-width:150px}
.sheet tr:has(.rowchk:checked) td{background:var(--accent-soft)}
.sheet tbody tr.sel td{background:color-mix(in srgb,var(--accent) 14%,var(--panel));box-shadow:inset 0 .5px 0 var(--accent),inset 0 -.5px 0 var(--accent)}
.sheet tbody tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.sheet td{border-bottom:0}
.sheet-layout{display:block}
.sheet-layout.with-panel{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}
.sheet-layout.with-panel .sheet-wrap{max-height:calc(100vh - 220px)}
.side-panel{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow-lg),0 0 0 .5px var(--line)}
.sp{padding:16px 18px 20px}
.sp-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}.sp-grow{flex:1}
.sp-title{font-size:20px;font-weight:650;letter-spacing:-.02em;line-height:1.2;word-break:break-word}
.sp-sub{margin:3px 0 12px;color:var(--muted);font-size:13px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.sp-sub a{color:var(--accent)}
.sp-preview{border-radius:12px;overflow:hidden;background:var(--fill);margin-bottom:14px}.sp-preview img,.sp-preview video{display:block;width:100%;max-height:220px;object-fit:cover}
.sp-sec{padding-top:14px;margin-top:14px;border-top:.5px solid var(--line)}
.sp-sec h3{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;display:flex;gap:6px;align-items:center}
.count{background:var(--fill);border-radius:980px;padding:0 7px;font-size:11px;color:var(--muted);font-weight:500;letter-spacing:0}
.sp-empty{font-size:13px}
.sp-task{display:flex;align-items:center;gap:8px;padding:6px 0}.sp-task b{font-weight:500;font-size:13px;min-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-task .dot{width:8px;height:8px;border-radius:50%;background:var(--c,var(--faint));flex:0 0 auto}
.sp-task select.pill{flex:1}.sp-due{font-size:11px;color:var(--muted);min-width:70px;text-align:right}
.sp-props{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:13px}.sp-props dt{color:var(--muted)}.sp-props dd{margin:0;word-break:break-word}
.sp-comment{display:flex;flex-direction:column;gap:8px;align-items:flex-end;margin-bottom:6px}.sp-comment textarea{min-height:56px}

/* ---- comments (entity page + panel) */
.avatar.sm{width:22px;height:22px;font-size:9px}
.comment{padding:12px 0;border-top:.5px solid var(--line)}
.comment-head{display:flex;align-items:center;gap:8px;margin-bottom:5px;justify-content:flex-start}.comment-head small{color:var(--faint)}
.c-actions{margin-left:auto;display:flex;gap:10px;opacity:0;transition:opacity .12s}.comment:hover .c-actions,.comment:focus-within .c-actions{opacity:1}
.c-actions a{font-size:12px;color:var(--muted)}.c-actions a:hover{color:var(--accent)}.c-actions .c-del:hover{color:var(--danger)}
.c-body{font-size:14px;line-height:1.5;word-break:break-word}
.c-editbar{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.mention{color:var(--accent);background:var(--accent-soft);border-radius:5px;padding:0 4px;font-weight:500}
.mention-pop{position:absolute;left:0;right:0;top:100%;margin-top:4px;z-index:50;background:var(--panel);border-radius:12px;box-shadow:var(--shadow-lg),0 0 0 .5px var(--line);overflow:hidden}
.mention-pop div{display:flex;gap:8px;align-items:baseline;padding:8px 12px;cursor:pointer;font-size:13px}.mention-pop div.on{background:var(--accent-soft)}.mention-pop small{color:var(--muted)}

/* ---- notifications */
.badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:980px;background:var(--danger);color:#fff;font-size:11px;font-weight:600;line-height:1}
.inbox{overflow:hidden}
.inbox-row{display:flex;align-items:center;gap:14px;padding:13px 18px;border-bottom:.5px solid var(--line);transition:background .12s}.inbox-row:last-child{border-bottom:0}
.inbox-row:hover{background:var(--panel-2)}.inbox-row.unread{background:color-mix(in srgb,var(--accent) 5%,var(--panel))}
.inbox-row .ic{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--fill);color:var(--muted);font-size:13px;flex:0 0 auto}
.inbox-row .t-mention{background:var(--accent-soft);color:var(--accent);font-weight:700}
.inbox-row .msg{flex:1;min-width:0;font-size:14px}.inbox-row .msg small{display:block;margin-top:1px}
.inbox-row.unread .msg{font-weight:500}.dotmark{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:0 0 auto}
.heading-actions form{display:inline}

/* ---- toasts (replace alert()) */
#toasts{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;z-index:200;pointer-events:none}
.toast{background:var(--text);color:var(--bg);padding:9px 16px;border-radius:980px;font-size:13px;box-shadow:var(--shadow-lg);transition:opacity .4s,transform .4s}.toast.bad{background:var(--danger);color:#fff}.toast.out{opacity:0;transform:translateY(6px)}

/* ---- entity page: task editor, previews, structure */
.task-edit{padding:14px 18px;margin-bottom:12px}
.te-title{display:flex;align-items:center;gap:10px;margin-bottom:10px}.te-title .dot{width:10px;height:10px;border-radius:50%;background:var(--c)}.te-title small{margin-left:auto}
.te-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0 12px}.te-grid label{margin-bottom:8px}.te-desc{grid-column:1/-1}
.te-actions{display:flex;gap:8px;justify-content:flex-end}
.preview-item{position:relative;display:inline-block}.preview-item form{position:absolute;top:-6px;right:-6px;opacity:0;transition:opacity .12s}.preview-item:hover form,.preview-item:focus-within form{opacity:1}
.preview-item .icon-button.x{background:var(--panel);box-shadow:var(--shadow)}
.move-form{display:flex;gap:8px;margin-top:12px}.move-form select{flex:1}
.row-actions{white-space:nowrap}.row-actions form{margin-left:6px}
.danger-zone{box-shadow:0 0 0 .5px color-mix(in srgb,var(--danger) 40%,transparent),var(--shadow)}
button.danger-solid{background:var(--danger)}

/* ---- polish */
.page-content{scroll-behavior:smooth}
.empty-state{padding:34px 20px;text-align:center;color:var(--muted)}.empty-state strong{display:block;color:var(--text);margin-bottom:4px;font-size:15px}
.card{transition:box-shadow .15s}
button:focus-visible,.button:focus-visible,a:focus-visible{outline-offset:2px}
@media(max-width:1100px){.sheet-layout.with-panel{grid-template-columns:1fr}.side-panel{position:fixed;inset:auto 0 0 0;max-height:70vh;border-radius:18px 18px 0 0;z-index:60}.te-grid{grid-template-columns:1fr 1fr}}
@media print{.sidebar,.side-panel,.sheet-filters,.bulk-bar,.quick-add{display:none!important}}

[hidden]{display:none!important}

/* ================= 0.12 ================= */
.user-link{display:flex;align-items:center;gap:10px;flex:1;min-width:0;color:inherit}.user-link:hover b{color:var(--accent)}
.token-row{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:10px 0;border-bottom:.5px solid var(--line)}.token-row small{display:block}
.row-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:nowrap}.row-actions form{margin:0;display:block}
.user-edit{position:relative}.user-edit summary{list-style:none;cursor:pointer}.user-edit summary::-webkit-details-marker{display:none}
.user-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:30;background:var(--panel);box-shadow:var(--shadow-lg);border-radius:12px;padding:14px;display:grid;gap:14px;width:280px;text-align:left}
.user-edit-form{display:grid;gap:8px}.user-pop form+form{border-top:.5px solid var(--line);padding-top:12px}
.sheet select.pill{min-width:136px}
.sheet tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--text) 6%,var(--panel))}
.user-pop form{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px}.user-pop input{width:100%;min-width:0}
.pop-ok{overflow:visible}@media(max-width:1100px){.pop-ok{overflow-x:auto}}
.card:has(.pop-ok){overflow:visible}.card:has(.pop-ok) .table-wrap{border-radius:inherit}

/* ================= 0.13 ================= */
.sheet-hint{margin:10px 4px 0;font-size:12px;color:var(--muted)}
/* The Sheet uses the whole window; reading pages keep a comfortable measure. */
.page-content:has(.sheet-layout){max-width:none;padding-inline:28px}
/* theme switch in the sidebar: Auto / Light / Dark */
.theme-switch{display:flex;gap:2px;background:var(--fill);border-radius:9px;padding:2px;margin:0 4px 10px}
.theme-switch button{flex:1;background:transparent;color:var(--muted);padding:4px 0;font-size:12px;border-radius:7px;box-shadow:none}
.theme-switch button:hover{background:transparent;color:var(--text)}
.theme-switch button[aria-pressed=true]{background:var(--panel);color:var(--text);box-shadow:var(--shadow)}
.dz-links{margin:10px 2px 0;font-size:13px;color:var(--muted)}.dz-links label{cursor:pointer}
.dz-links label{display:inline}

/* Sheet thumbnails: 16:9, a small play mark on videos */
.c-thumb{width:116px}.c-thumb img,.noimg{width:96px;height:54px;border-radius:7px}
.thumb{position:relative;display:block;width:96px;height:54px}.thumb img{display:block;width:96px;height:54px;object-fit:cover;box-shadow:var(--shadow)}
.thumb .play{position:absolute;right:4px;bottom:4px;font-style:normal;font-size:8px;line-height:1;background:rgba(0,0,0,.55);color:#fff;border-radius:4px;padding:3px 4px}
.sheet td.c-thumb{padding-block:5px}
.sheet .cell-edit{field-sizing:content;min-width:84px;max-width:280px}

/* ---- 0.15 Sheet column menu (<details>): checkbox list, closes on outside click (see sheet.php) */
.col-menu{position:relative}.col-menu summary{list-style:none;cursor:pointer;user-select:none}.col-menu summary::-webkit-details-marker{display:none}
.col-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:200px;max-height:60vh;overflow:auto;padding:8px;background:var(--panel);border:.5px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18)}
.col-pop label{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:8px;font-size:13px;cursor:pointer}.col-pop label:hover{background:var(--panel-2)}
.col-pop input{width:auto;margin:0}.col-actions{display:flex;justify-content:space-between;gap:10px;padding:8px 8px 2px;margin-top:4px;border-top:.5px solid var(--line)}
.col-actions .text-link{background:none;border:0;padding:0;font-size:12px;cursor:pointer;color:var(--accent)}

/* ---- 0.16 preview versions: version chip, tag under strip thumbs, current thumb, note area under the viewer */
.vchip{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:600;text-decoration:none}
.preview-item .vtag{display:block;text-align:center;font-style:normal;font-size:11px;color:var(--muted);margin-top:3px}
.preview-item.current .preview-mini{outline:2px solid var(--accent);outline-offset:1px}.preview-item.current .vtag{color:var(--accent);font-weight:600}
.version-info{padding:12px 16px;border-top:.5px solid var(--line)}.v-note{margin:0 0 10px;color:var(--muted);font-size:13px}.v-comment{margin-top:10px}
.check{display:flex;gap:8px;align-items:center}.check input{width:auto;margin:0}
.sp-ver{display:inline-flex;gap:6px;align-items:center;margin-left:auto}

/* ---- 0.19 pictures: avatar images, project header banner, project cards with a cover */
.avatar,.av{overflow:hidden}.avatar img,.av img{width:100%;height:100%;object-fit:cover;display:block}
.avatar.xl{width:72px;height:72px;font-size:24px}.avatar-edit{display:flex;gap:18px;align-items:center}.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-form input[type=file]{flex:1;min-width:200px}
.project-cover{height:190px;border-radius:var(--radius);background:var(--fill) center/cover no-repeat;margin-bottom:18px;box-shadow:var(--shadow)}
.cover-preview{height:120px;border-radius:12px;background:var(--fill) center/cover no-repeat;margin-bottom:12px;display:grid;place-items:center;color:var(--faint);font-size:13px}
.project-card.has-cover{padding-top:0;overflow:hidden}.card-cover{height:96px;margin:0 -22px 16px;background:var(--fill) center/cover no-repeat}.project-card.has-cover .project-card-top{margin-bottom:14px}

/* ===== 0.20 statistics (stats.php) ===== */
.stats-two{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.stats-two .card{margin:0}
.status-bar{display:flex;height:12px;border-radius:980px;overflow:hidden;background:var(--fill);gap:2px}
.status-bar span{display:block;min-width:6px;background:var(--s-todo)}
.status-bar .s-wip{background:var(--s-wip)}.status-bar .s-review{background:var(--s-review)}.status-bar .s-approved{background:var(--s-approved)}.status-bar .s-rejected{background:var(--s-rejected)}.status-bar .s-done{background:var(--s-done)}
.status-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px}.status-legend b{color:var(--text);font-weight:600;margin-left:2px}
.wk-chart{display:flex;gap:6px;align-items:flex-end;height:120px}
.wk{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;min-width:0}
.wk-bars{flex:1;display:flex;align-items:flex-end;gap:2px;width:100%;justify-content:center}
.wk-bars i{display:block;width:42%;max-width:14px;min-height:2px;border-radius:3px 3px 0 0}.wk-bars .rv{background:var(--s-review)}.wk-bars .ap{background:var(--s-approved)}
.wk small{font-size:10px;color:var(--faint)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--faint);vertical-align:middle}
.fc-sentence{font-size:16px;line-height:1.5;margin-bottom:16px}
.budget-bar{position:relative;height:12px;border-radius:980px;background:var(--fill);margin-top:14px;overflow:visible}
.budget-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:980px}.budget-bar .pj{background:var(--accent-soft)}.budget-bar .sp{background:var(--accent);z-index:1}
.budget-bar b{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--text);z-index:2}
/* Gantt */
.gantt-tools{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end;padding:16px 20px 8px}
.gantt-tools label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);margin:0}.gantt-tools select{min-width:140px}.gantt-tools input[type=range]{width:120px}
.gantt-legend{display:flex;flex-wrap:wrap;gap:6px 18px;padding:4px 20px 14px;font-size:12px;color:var(--muted)}
.gantt-legend span{display:inline-flex;align-items:center;gap:6px}
.lg{display:inline-block;width:18px;height:8px;border-radius:3px}.lg.plan{background:var(--fill-2);border:1px solid var(--line)}.lg.work{background:var(--accent)}
.lg.snap{background:repeating-linear-gradient(45deg,var(--s-wip) 0 3px,transparent 3px 6px)}.lg.rev{background:var(--s-review);opacity:.55}.lg.ok{width:9px;height:9px;border-radius:2px;background:var(--s-approved);transform:rotate(45deg)}.lg.rej{width:3px;height:12px;border-radius:2px;background:var(--s-rejected)}
.gantt{position:relative;overflow:auto;max-height:68vh;border-top:1px solid var(--line);background:var(--panel)}
.g-inner{position:relative;min-height:100%}
.g-head{display:flex;position:sticky;top:0;z-index:5;background:var(--panel);border-bottom:1px solid var(--line)}
.g-corner{position:sticky;left:0;z-index:6;background:var(--panel);padding:0 14px;font-size:11px;font-weight:600;color:var(--faint);display:flex;align-items:flex-end;padding-bottom:6px;flex:0 0 auto;border-right:1px solid var(--line)}
.g-months{display:flex;height:20px;font-size:11px;font-weight:600;color:var(--muted)}.g-month{padding:3px 6px;border-left:1px solid var(--line);overflow:hidden;white-space:nowrap;box-sizing:border-box}
.g-days{display:flex;height:20px;font-size:10px;color:var(--faint)}.g-day{text-align:center;line-height:20px;overflow:hidden;box-sizing:border-box}.g-day.we{color:var(--line)}
.g-grid{position:absolute;top:40px;bottom:0;pointer-events:none;z-index:0;background-image:linear-gradient(to right,transparent 0,transparent calc(var(--dw)*5),var(--fill) calc(var(--dw)*5),var(--fill) calc(var(--dw)*7));background-repeat:repeat-x}
.g-today{position:absolute;top:40px;bottom:0;width:2px;background:var(--danger);opacity:.7;z-index:3;pointer-events:none}
.g-row,.g-group{display:flex;height:32px;position:relative;z-index:1;border-bottom:1px solid var(--line)}
.g-group{height:28px;background:var(--panel-2);cursor:pointer;border-bottom:1px solid var(--line)}
.g-label,.g-glabel{position:sticky;left:0;z-index:4;flex:0 0 auto;background:var(--panel);display:flex;align-items:center;gap:8px;padding:0 14px;font-size:12.5px;border-right:1px solid var(--line);overflow:hidden;white-space:nowrap;box-sizing:border-box}
.g-glabel{background:var(--panel-2);font-weight:600;font-size:12px}.g-glabel small{color:var(--faint);font-weight:500}
.g-label a{color:var(--text);overflow:hidden;text-overflow:ellipsis}.g-label small{color:var(--muted);font-size:11px;margin-left:4px}
.g-dot{width:8px;height:8px;border-radius:50%;background:var(--s-todo);flex:0 0 auto}.g-dot.s-wip{background:var(--s-wip)}.g-dot.s-review{background:var(--s-review)}.g-dot.s-approved{background:var(--s-approved)}.g-dot.s-rejected{background:var(--s-rejected)}.g-dot.s-done{background:var(--s-done)}
.g-track{position:relative;flex:0 0 auto;height:32px}
.g-bar{position:absolute;display:block;border-radius:4px}
.g-bar.plan{top:24px;height:4px;background:var(--fill-2);border:1px solid var(--line);box-sizing:border-box;border-radius:3px}
.g-bar.work{top:7px;height:14px;background:var(--accent);z-index:2}.g-bar.work.run{box-shadow:0 0 0 2px var(--accent-soft);animation:gpulse 2s ease-in-out infinite}
.g-bar.work.snap{background:repeating-linear-gradient(45deg,var(--s-wip) 0 4px,transparent 4px 8px)!important;border:1px dashed var(--s-wip);box-sizing:border-box}
.g-bar.rev{top:11px;height:6px;background:var(--s-review);opacity:.55;z-index:1}.g-bar.rev.run{background:repeating-linear-gradient(90deg,var(--s-review) 0 4px,transparent 4px 7px);opacity:.8}
.g-mark{position:absolute;display:block;z-index:3;pointer-events:auto}.g-mark.ok{top:9px;width:10px;height:10px;margin-left:-5px;background:var(--s-approved);transform:rotate(45deg);border-radius:2px}.g-mark.rej{top:5px;width:3px;height:20px;margin-left:-1px;background:var(--s-rejected);border-radius:2px}
@keyframes gpulse{50%{opacity:.6}}
@media(max-width:1100px){.stats-two{grid-template-columns:1fr}}

/* ---- 0.21 picker (assets/app.js FPM.picker): search + choose entities grouped by type */
.pk{position:relative}.pk-box{display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:var(--fill);border:1px solid transparent;border-radius:10px;padding:5px 8px;min-height:38px;cursor:text}
.pk-box:focus-within{background:var(--panel);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.pk-input{flex:1;min-width:110px;width:auto;background:transparent!important;border:0!important;box-shadow:none!important;padding:3px 2px}
.pk-chips{display:contents}.pk-chip{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:.5px solid var(--line);border-radius:8px;padding:2px 4px 2px 8px;font-size:13px}
.pk-chip small{font-size:11px;color:var(--faint)}.pk-dot{width:8px;height:8px;border-radius:50%;background:var(--c,#8e8e93);flex:none;display:inline-block}
.pk-x{width:18px;height:18px;padding:0;border-radius:50%;background:transparent;color:var(--muted);font-size:14px;line-height:1}.pk-x:hover{background:var(--fill-2);color:var(--danger);filter:none}
.pk-none{color:var(--muted);font-size:13px;padding:0 4px}
.pk-list{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 4px);max-height:300px;overflow:auto;background:var(--panel);border:.5px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:4px}
.pk-head{display:flex;align-items:center;gap:7px;padding:8px 8px 3px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;background:var(--panel)}
.pk-head b{font-weight:600}.pk-head small{margin-left:auto;font-size:11px;color:var(--faint);text-transform:none}.pk-all{padding:0 8px;height:20px;font-size:11px;background:var(--fill);color:var(--accent);border-radius:980px}.pk-all:hover{background:var(--accent-soft);filter:none}
.pk-opt{display:flex;align-items:baseline;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer}.pk-opt:hover{background:var(--fill)}.pk-opt small{color:var(--faint);font-size:12px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pk-opt.on{background:var(--accent-soft)}.pk-opt em{font-style:normal;color:var(--accent)}.pk-empty{padding:12px;color:var(--muted);text-align:center}
.pk-new{display:block;width:100%;text-align:left;background:none;border:0;border-top:.5px solid var(--line);border-radius:0;padding:10px 12px;color:var(--accent);font-weight:600;position:sticky;bottom:0;background:var(--panel-2,var(--panel))}.pk-new:hover{background:var(--accent-soft)}
/* uses / used in groups (entity page, side panel) */
.use-group{padding:8px 0}.use-group+.use-group{border-top:.5px solid var(--line)}.use-group h4{margin:0 0 6px;font-size:12px;font-weight:600;color:var(--muted);display:flex;gap:7px;align-items:center;text-transform:uppercase;letter-spacing:.04em}
.use-chips{display:flex;flex-wrap:wrap;gap:6px}.use-chip{display:inline-flex;align-items:center;gap:4px;background:var(--fill);border-radius:8px;padding:3px 4px 3px 9px;font-size:13px}.use-chip a:hover{color:var(--accent)}.use-chip form{display:inline;margin:0}.use-chip.ro{padding-right:9px}
.use-chip .icon-button{width:18px;height:18px;font-size:13px;background:transparent}
.link-add{display:grid;gap:10px;margin-top:6px}.link-add .row{display:flex;gap:8px;align-items:flex-start}.link-add .row .pk{flex:1}
/* sheet: links column, parent cell, dialog */
.c-links{min-width:150px;max-width:260px}.lk{display:inline-block;background:var(--fill);border-radius:6px;padding:1px 7px;margin:1px 3px 1px 0;font-size:12px;white-space:nowrap}.lk.more{color:var(--muted)}.lk-in{font-size:12px;color:var(--faint)}
.parent-cell{background:transparent;color:var(--text);padding:2px 6px;border-radius:6px;font-weight:400;font-size:inherit;justify-content:flex-start;min-height:24px}.parent-cell:hover{background:var(--fill);filter:none}.parent-cell.empty{color:var(--faint)}
.parent-cell.ro{cursor:default;pointer-events:none}
dialog.fpm-dlg{border:.5px solid var(--line);border-radius:16px;background:var(--panel);color:var(--text);padding:0;width:min(520px,92vw);box-shadow:0 24px 64px rgba(0,0,0,.3)}dialog.fpm-dlg::backdrop{background:rgba(0,0,0,.35)}
.fpm-dlg .dlg-body{padding:20px;display:grid;gap:12px}.fpm-dlg h3{font-size:17px}.fpm-dlg .dlg-actions{display:flex;gap:8px;justify-content:flex-end}.fpm-dlg .pk-list{max-height:240px}
.fpm-dlg .seg{display:flex;gap:14px;font-size:13px;color:var(--muted)}.fpm-dlg .seg label{margin:0;display:flex;gap:6px;align-items:center;color:var(--text)}
.pk-inline .pk-list{position:static;box-shadow:none;margin-top:6px;background:var(--panel-2)}   /* the list pushes what is below down instead of covering it (dialogs, vertical forms) */

/* 0.21b: .card clips its content (overflow:hidden), which cut the floating picker list to the card height: cards holding a picker let it overflow, and inline lists get more room */
.card:has(.pk){overflow:visible}.pk-inline .pk-list{max-height:340px}
.move-form{flex-direction:column;align-items:stretch}.move-form>button{align-self:flex-end}   /* the parent picker is wide: Move sits under it */

/* ============================================================================ 0.22 depth + palette (60/30/10)
   The variables below have DEFAULTS (the original look). assets/theme.js overrides them on <html> when the user picked a palette:
   60% base = --bg/--panel   30% secondary = --side-* (sidebar) and --sec/--sec-soft (bands, table heads, tabs)   10% accent = --accent */
:root{
  --side-bg:color-mix(in srgb,var(--bg) 80%,var(--panel));--side-ink:var(--text);--side-soft:var(--fill);--side-faint:var(--faint);
  --side-active-bg:var(--accent-soft);--side-active-ink:var(--accent);
  --sec:var(--muted);--sec-soft:var(--fill);--brand-bg:var(--text);--brand-ink:var(--bg);
  --lift:0 1px 2px light-dark(rgba(0,0,0,.04),transparent),0 6px 18px -8px light-dark(rgba(0,0,0,.12),rgba(0,0,0,.5));
}
/* sidebar = the 30% */
.sidebar{background:var(--side-bg);color:var(--side-ink);border-right:0}
.side-link{color:var(--side-ink)}.side-link:hover{background:var(--side-soft)}.side-link.active{background:var(--side-active-bg);color:var(--side-active-ink);font-weight:600}
.side-project b{color:var(--side-faint)}.brand{color:var(--side-ink)}.brand-mark{background:var(--brand-bg);color:var(--brand-ink)}
.sidebar .user-card{border-top-color:var(--side-soft)}.sidebar .user-card small,.sidebar .logout{color:var(--side-faint)}.sidebar .logout:hover{color:var(--side-ink)}.sidebar .user-link:hover b{color:var(--side-ink)}
.sidebar .avatar{background:var(--side-soft);color:var(--side-ink)}
.sidebar .theme-switch{background:var(--side-soft)}.sidebar .theme-switch button{color:var(--side-faint)}.sidebar .theme-switch button:hover{color:var(--side-ink)}
.sidebar .theme-switch button[aria-pressed=true]{background:var(--side-active-bg);color:var(--side-active-ink);box-shadow:none}
/* less flat: soft depth on cards, a tinted band on table heads and tabs, a little light on the main buttons */
.card,.stat-card{box-shadow:var(--shadow),var(--lift)}
.data-table th{background:color-mix(in srgb,var(--panel) 88%,var(--sec-soft))}
.data-table tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--panel) 97%,var(--sec))}
.data-table tbody tr:hover td{background:var(--sec-soft)}
.section-heading{border-bottom:.5px solid var(--line);padding-bottom:14px;margin-bottom:4px;background:linear-gradient(180deg,var(--sec-soft),transparent)}
.workspace-tabs,.type-tabs{background:var(--sec-soft)}.workspace-tabs a.active,.type-tabs a.active{color:var(--accent)}
button:not(.secondary):not(.icon-button):not(.pk-x):not(.pk-all):not(.parent-cell){background-image:linear-gradient(180deg,color-mix(in srgb,#fff 16%,transparent),transparent)}
html[data-has-palette] .stat-card strong{color:var(--accent)}
html[data-has-palette] .card.login,html[data-has-palette] .center>.card{box-shadow:var(--shadow-lg)}

/* ---- account: palette editor */
.pal-presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;margin:4px 0 14px}
.pal-card{display:grid;gap:6px;padding:8px;border-radius:12px;background:var(--fill);border:2px solid transparent;color:var(--text);font-size:12px;font-weight:500;text-align:left;justify-content:stretch;white-space:normal}
.pal-card:hover{background:var(--fill-2);filter:none}.pal-card[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}
.pal-strip{display:flex;height:38px;border-radius:8px;overflow:hidden;box-shadow:0 0 0 .5px var(--line)}.pal-strip i{display:block}.pal-strip i:nth-child(1){flex:6}.pal-strip i:nth-child(2){flex:3}.pal-strip i:nth-child(3){flex:1}
.pal-custom{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:6px}.pal-custom label{margin:0}.pal-custom input[type=color]{width:100%;height:42px;margin-top:6px}
.pal-custom small{display:block;margin-top:4px}
.pal-preview{display:grid;grid-template-columns:90px 1fr;border-radius:12px;overflow:hidden;box-shadow:0 0 0 .5px var(--line);margin:12px 0;min-height:110px}
.pal-preview .p-side{background:var(--side-bg);color:var(--side-ink);padding:10px;font-size:11px;display:grid;gap:5px;align-content:start}.pal-preview .p-side b{font-size:12px}.pal-preview .p-side span{padding:3px 6px;border-radius:6px}.pal-preview .p-side span.on{background:var(--side-active-bg);color:var(--side-active-ink)}
.pal-preview .p-main{background:var(--bg);padding:12px;display:grid;gap:8px;align-content:start}.pal-preview .p-card{background:var(--panel);border-radius:10px;padding:10px;box-shadow:var(--shadow);font-size:12px;color:var(--text)}.pal-preview .p-card small{display:block}
.pal-preview .p-btn{display:inline-block;background:var(--accent);color:var(--accent-ink);border-radius:980px;padding:3px 12px;font-size:11px;font-weight:600;margin-top:6px}.pal-preview .p-link{color:var(--accent);margin-left:8px;font-size:11px}
.pal-rule{display:flex;height:10px;border-radius:980px;overflow:hidden;margin:2px 0 10px}.pal-rule i:nth-child(1){flex:6;background:var(--bg);box-shadow:inset 0 0 0 .5px var(--line)}.pal-rule i:nth-child(2){flex:3;background:var(--side-bg)}.pal-rule i:nth-child(3){flex:1;background:var(--accent)}

/* ---- 0.22 new-entity dialog, type filter pills, entity list */
.nd{width:min(600px,94vw)}.nd .dlg-body{max-height:86vh;overflow:auto}.nd-label{font-size:12px;font-weight:500;color:var(--muted);margin-bottom:6px}
.nd-types,.type-pills{display:flex;flex-wrap:wrap;gap:6px}
.nd-type,.type-pill{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:980px;font-size:13px;font-weight:500;background:var(--fill);color:var(--text);border:1.5px solid transparent}
.nd-type:hover,.type-pill:hover{background:var(--fill-2);filter:none}
.nd-type[aria-pressed=true],.type-pill[aria-pressed=true]{background:color-mix(in srgb,var(--c) 16%,var(--panel));border-color:var(--c)}
.type-pill b{font-size:11px;font-weight:600;color:var(--muted)}.type-pill .pk-dot{background:var(--c)}.nd-type .pk-dot{background:var(--c)}
.type-pill.all[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.nd-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.nd-row label,.nd label{margin-bottom:0}
.nd-mode{margin:2px 0}.nd-uses summary{cursor:pointer;font-size:13px;font-weight:500;padding:4px 0}.nd-uses summary small{font-weight:400}.nd-uses[open] summary{margin-bottom:8px}
.nd-error{color:var(--danger);font-size:13px;margin:0}
.ent-toolbar{display:grid;gap:12px;margin-bottom:16px}.ent-bar{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.ent-search{flex:1;min-width:240px;max-width:420px;position:relative}.ent-search input{padding-left:34px}.ent-search:before{content:"⌕";position:absolute;left:12px;top:50%;transform:translateY(-52%);color:var(--faint);font-size:16px;pointer-events:none}
.ent-count{font-size:12px;color:var(--faint);margin-left:4px}
.type-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:2px 9px 2px 7px;border-radius:6px;background:color-mix(in srgb,var(--c) 14%,var(--panel));color:var(--text);white-space:nowrap}.type-badge i{width:7px;height:7px;border-radius:50%;background:var(--c)}
.inside-link{display:inline-flex;align-items:center;gap:5px;color:var(--text)}.inside-link:hover{color:var(--accent)}.inside-link span{font-size:11px;color:var(--faint)}
.row-add{opacity:0;width:24px;height:24px;padding:0;border-radius:50%;background:var(--fill);color:var(--accent);font-size:15px;line-height:1}.data-table tr:hover .row-add,.row-add:focus-visible{opacity:1}
.ent-hint{padding:26px;text-align:center;color:var(--muted)}
.type-badge{min-width:84px}
.pager{display:flex;gap:12px;align-items:center;justify-content:center;margin:16px 0}

/* ---- 0.23 built-in guide (help.php) */
.help-search{display:flex;gap:8px}.help-search input{min-width:260px}
.help-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:20px;align-items:start}
.help-toc{position:sticky;top:20px;padding:12px 8px;max-height:calc(100vh - 40px);overflow:auto}
.help-group{padding:4px 0 10px}.help-group>b{display:block;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);padding:6px 12px 4px}
.help-group a{display:block;padding:5px 12px;border-radius:8px;font-size:13.5px;color:var(--text)}.help-group a:hover{background:var(--fill)}.help-group a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}
.help-article{padding:26px 34px 34px;min-width:0}.help-head small{color:var(--faint);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.help-head h1{font-size:28px;letter-spacing:-.025em;margin:2px 0 14px}
.help-onpage{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;background:var(--sec-soft);border-radius:12px;padding:10px 14px;margin-bottom:8px;font-size:13px}.help-onpage b{font-size:12px;color:var(--muted);margin-right:4px}.help-onpage a{color:var(--accent)}.help-onpage a:hover{text-decoration:underline}
.help-body{font-size:15px;line-height:1.6;max-width:820px}.help-body p{margin:10px 0}.help-body h2{font-size:20px;letter-spacing:-.015em;margin:30px 0 6px;padding-top:6px;scroll-margin-top:16px}
.help-body h2 .anchor{opacity:0;color:var(--faint);font-size:15px;margin-left:6px}.help-body h2:hover .anchor{opacity:1}
.help-body h3{font-size:16px;margin:22px 0 4px}.help-body ul,.help-body ol{padding-left:22px;margin:8px 0}.help-body li{margin:4px 0}.help-body a{color:var(--accent)}.help-body a:hover{text-decoration:underline}
.help-body pre{position:relative;background:var(--panel-2);border:.5px solid var(--line);border-radius:12px;padding:14px 16px;overflow:auto;font-size:12.5px;line-height:1.5;margin:12px 0}.help-body pre code{background:none;padding:0;font-size:inherit;white-space:pre}
.help-body .copy-btn{position:absolute;top:8px;right:8px;padding:2px 10px;font-size:11px;opacity:0}.help-body pre:hover .copy-btn,.copy-btn:focus-visible{opacity:1}
.help-note{background:var(--accent-soft);border-radius:12px;padding:12px 16px;margin:14px 0;font-size:14px}.help-note p{margin:0}
.help-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:13.5px}.help-table th{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--sec-soft);font-size:12px;color:var(--muted)}.help-table td{padding:8px 12px;border-bottom:.5px solid var(--line);vertical-align:top}.help-table tr:last-child td{border-bottom:0}
.help-steps{counter-reset:s;list-style:none;padding:0}.help-steps li{counter-increment:s;position:relative;padding:4px 0 4px 38px;margin:8px 0}.help-steps li:before{content:counter(s);position:absolute;left:0;top:2px;width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:12px;font-weight:700}
.help-pager{display:flex;justify-content:space-between;gap:12px;margin-top:34px;padding-top:16px;border-top:.5px solid var(--line)}.help-pager a{color:var(--accent);font-weight:500}.help-pager a:hover{text-decoration:underline}
.help-hit{padding:12px 0;border-bottom:.5px solid var(--line)}.help-hit small{margin-left:8px;color:var(--faint)}.help-hit p{margin:4px 0 0;font-size:13.5px;color:var(--muted)}.help-hit a:hover{color:var(--accent)}
.help-body mark,.help-hit mark{background:color-mix(in srgb,var(--accent) 28%,transparent);color:inherit;border-radius:3px;padding:0 2px}
@media(max-width:900px){.help-layout{grid-template-columns:1fr}.help-toc{position:static;max-height:none}.help-article{padding:20px}}
@media print{.sidebar,.help-toc,.help-search,.help-pager,.copy-btn{display:none!important}.help-layout{display:block}.card{box-shadow:none}}

.help-link{display:flex;align-items:center;gap:8px;margin:0 8px 8px}.help-q{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;border:1.5px solid currentColor;font-size:11px;font-weight:700;line-height:1}

.help-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.help-lang{display:inline-flex;background:var(--panel-2,var(--soft,#eee));border-radius:999px;padding:3px}.help-lang a{padding:5px 12px;border-radius:999px;font-size:13px;color:var(--muted);text-decoration:none}.help-lang a.active{background:var(--panel);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.help-fig{margin:18px 0 22px}.help-fig img{display:block;max-width:100%;height:auto;border:.5px solid var(--line);border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.10)}.help-fig figcaption{margin-top:8px;font-size:13px;color:var(--muted);text-align:center}
@media print{.help-lang{display:none}.help-fig img{box-shadow:none}}

/* ================= 0.27 phone and tablet ================= */
.nav-toggle{display:none}
/* every grid/flex child may shrink below its content, otherwise one wide table or long name stretches the whole page */
.workspace-grid>*,.hierarchy-layout>*,.entity-dashboard>*,.dashboard-grid>*,.stats-two>*,.sheet-layout>*,.help-layout>*,.entity-hero>*,.page-heading>*{min-width:0}
h1,h2,h3,.eyebrow,.side-project b,.entity-hero p{overflow-wrap:anywhere}
.entity-hero{flex-wrap:wrap}.entity-hero-meta{flex-wrap:wrap}
@media(max-width:900px){.entity-hero{flex-direction:column;align-items:flex-start}}
.gantt-legend .lg.ok{width:9px;height:9px;padding:0;margin:0 3px;flex:none}.g-mark.ok{padding:0;margin-bottom:0}   /* the global .ok message box (padding 11px 15px) was inflating the Approved diamonds */
@media(max-width:820px){
  /* top bar: logo + menu button; everything else sits in a panel that opens under it */
  .sidebar{position:sticky;top:0;z-index:60;width:auto;height:auto;max-height:100vh;overflow-y:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:0;padding:8px 14px;border-right:0;border-bottom:.5px solid var(--line)}
  .brand{padding:0;flex:1;min-height:44px;order:0}.nav-toggle{order:1}.sidebar>nav,.sidebar>.sidebar-spacer,.sidebar>.help-link,.sidebar>.theme-switch,.sidebar>.user-card{order:2}
  .nav-toggle{display:inline-flex;position:relative;width:44px;height:44px;padding:0;border-radius:12px;background:var(--side-soft,var(--fill));color:var(--side-ink,var(--text));box-shadow:none;align-items:center;justify-content:center}
  .nav-toggle:hover{background:var(--side-soft,var(--fill))}
  .nav-bars,.nav-bars::before,.nav-bars::after{display:block;width:18px;height:2px;border-radius:2px;background:currentColor;transition:transform .18s,opacity .18s}
  .nav-bars{position:relative}.nav-bars::before,.nav-bars::after{content:"";position:absolute;left:0}.nav-bars::before{top:-6px}.nav-bars::after{top:6px}
  .sidebar.open .nav-bars{background:transparent}.sidebar.open .nav-bars::before{top:0;transform:rotate(45deg)}.sidebar.open .nav-bars::after{top:0;transform:rotate(-45deg)}
  .nav-dot{position:absolute;top:8px;right:8px;width:9px;height:9px;border-radius:50%;background:#ff453a;border:2px solid var(--side-bg,var(--bg))}
  .sidebar>nav,.sidebar>.sidebar-spacer,.sidebar>.help-link,.sidebar>.theme-switch,.sidebar>.user-card{display:none}
  .sidebar.open>nav{display:flex;flex-direction:column;flex:0 0 100%;gap:2px;padding:8px 0 4px}
  .sidebar.open>.help-link{display:flex;flex:0 0 100%;margin:4px 0}.sidebar.open>.theme-switch{display:flex;flex:0 0 100%;margin:6px 0}.sidebar.open>.user-card{display:flex;flex:0 0 100%;margin:4px 0 0}
  .sidebar .user-card small,.sidebar .user-card>div:nth-child(2){display:block}
  .side-project{display:block;padding:10px 12px 4px}.side-gap{display:block;height:6px}
  .side-link{padding:12px 12px;font-size:15px}
  .data-table td strong,.data-table td small{overflow-wrap:break-word}.data-table td:first-child{min-width:150px}
  .page-heading .button,.page-heading button{align-self:flex-start}
}
/* touch: comfortable targets (the dense Sheet, Gantt and tag removers keep their size) */
@media(pointer:coarse),(max-width:820px){
  button:not(.pk-x):not(.row-add):not(.nav-toggle):not(.pk-all),.button{min-height:40px}
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),select{min-height:42px}
  .sheet button,.sheet select,.sheet input,.gantt button,.gantt select{min-height:0}
  .theme-switch button{min-height:38px}.logout{display:inline-block;padding:12px 8px}.brand{min-height:44px}
  .pk-opt{padding-top:11px;padding-bottom:11px}.help-toc a{padding-top:9px;padding-bottom:9px}
}

@media(pointer:coarse),(max-width:820px){
  .workspace-tabs a,.type-tabs a,.type-pill,.help-lang a{min-height:38px;display:inline-flex;align-items:center}
  .workspace-tabs{flex-wrap:wrap}
  .row-add{opacity:.7;width:34px;height:34px}.icon-button{width:36px;height:36px}
  .help-pager a,.help-onpage a,.parent-breadcrumb a{display:inline-block;padding:8px 2px}
  .help-hit a{display:inline-block;padding:6px 0}
}

/* 0.28 previous / next entity */
.entity-nav{display:inline-flex;align-items:center;gap:2px;background:var(--fill);border-radius:980px;padding:3px;font-size:13px}
.entity-nav a,.entity-nav .off{display:inline-grid;place-items:center;min-width:32px;height:32px;border-radius:980px;font-size:20px;line-height:1;color:var(--text)}
.entity-nav a:hover{background:var(--panel);box-shadow:var(--shadow)}.entity-nav .off{opacity:.3}
.entity-nav .pos{padding:0 6px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.entity-nav a.scope{width:auto;min-width:0;height:auto;padding:5px 11px;font-size:12px;color:var(--accent);margin-left:2px}
@media(pointer:coarse),(max-width:820px){.entity-nav a,.entity-nav .off{min-width:42px;height:42px}.entity-nav a.scope{padding:11px 12px}}
