/* ── style/00-tokens.css ── */
:root{
    --color-page:#FFFFFF;
  --color-well:#EEF3F6;
  --color-soft:#EAF0F4;
  --color-rail:#F1F5F8;
  --color-rail-on:#DDE7ED;
--color-line:#D5DEE4;
  --color-edge:#7D8F9C;
--color-ink:#0B1B26;
  --color-ink-2:#3F5260;
  --color-ink-3:#56687A;
--color-navy:#0E2A3B;
  --color-navy-2:#16384C;
  --color-navy-3:#24506A;
  --color-navy-4:#2A5873;
  --color-on-navy:#FFFFFF;
  --color-on-navy-2:#B9CCD8;
    --color-navy-rule:rgba(255,255,255,0.14);
--color-lemon:#F5D547;
  --color-lemon-hover:#F9E27C;
  --color-lemon-press:#FBEA9E;
    --color-lemon-deep:#E0B814;
--color-urgent:#8E1A12;
  --color-urgent-mark:#D93A2B;
  --color-urgent-tint:#FDECEA;
  --color-soon:#734100;
  --color-soon-mark:#B47B00;
  --color-soon-tint:#FFF0CC;
  --color-done:#105634;
  --color-done-mark:#18794E;
  --color-done-tint:#E7F5EE;
    --color-on-mark:#FFFFFF;
--color-stage-new:var(--color-lemon);
  --color-stage-contacted:#8DBBD3;
  --color-stage-showing:#3F86AD;
  --color-stage-offer:var(--color-navy-3);
  --color-stage-closed:var(--color-done-mark);
  --color-stage-lost:#B3C0C9;
--color-press:#D5E0E8;
  --color-veil:rgba(11,27,38,0.06);
  --color-veil-2:rgba(11,27,38,0.12);
  --color-glow:rgba(255,255,255,0.10);
  --color-glow-2:rgba(255,255,255,0.18);
--color-focus:#0E7490;
  --color-scrim:rgba(11,27,38,0.44);
--font-sans:"Plus Jakarta Sans", "Plus Jakarta Sans fallback", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-log:ui-monospace, SFMono-Regular, Menlo, monospace;
  --weight-regular:400;
  --weight-medium:500;
  --weight-bold:700;
  --weight-heavy:800;
--text-12:12px;
  --text-13:13px;
  --text-14:14px;
  --text-15:15px;
  --text-16:16px;
  --text-17:17px;
  --text-18:18px;
  --text-20:20px;
  --text-22:22px;
  --text-28:28px;
  --text-34:34px;
  --text-38:38px;
  --text-44:44px;
--radius-6:6px;
  --radius-10:10px;
  --radius-14:14px;
  --radius-20:20px;
  --radius-pill:999px;
  --radius-round:50%;
--shadow-edge:inset 0 0 0 1px var(--color-line);
  --shadow-ring:inset 0 0 0 1.5px var(--color-navy);
  --shadow-check:inset 0 0 0 2.5px currentColor;
    --shadow-tag:inset 0 0 0 1.5px var(--color-ink-3);
  --shadow-radio:inset 0 0 0 2px var(--color-ink-3);
  --shadow-radio-on:inset 0 0 0 6px var(--color-lemon);
  --shadow-rail:1px 0 0 var(--color-line);
  --shadow-tabbar:0 -1px 0 var(--color-navy-rule);
  --shadow-field-focus:0 0 0 3px rgba(14,116,144,0.2);
  --shadow-sheet:0 -8px 40px rgba(11,27,38,0.28);
  --shadow-dialog:0 16px 48px rgba(11,27,38,0.26);
  --shadow-toast:0 8px 24px rgba(11,27,38,0.24);
    --shadow-band-spread:0 0 0 100vmax var(--color-navy);
    --shadow-head-rule:inset 0 -1px 0 var(--color-line);
--duration-120:120ms;
  --duration-240:240ms;
  --duration-420:420ms;
  --duration-1000:1s;
  --ease-out:cubic-bezier(0.2,0.8,0.2,1);
  --ease-sheet:cubic-bezier(0.18,0.9,0.28,1.08);
--z-raised:1;
  --z-focus:10;
  --z-nav:20;
  --z-toast:30;
--tabbar-h:58px;
    --tabbar-foot:10px;
  --topbar-h:52px;
  --rail-w:104px;
  --sidebar-w:240px;
    --content-narrow:44rem;
    --content-table:64rem;
    --band-top:48px;
  --gutter:16px;
--bp-big:1599px;         --bp-board:1359px;       --bp-sidebar:1099px;     --bp-phone:767px;        --bp-narrow:640px;       --bp-single:380px;     }
@media (min-width: 768px){
  :root{--gutter:28px}
}
@media (min-width: 1100px){
  :root{--gutter:36px}
}
/* ── style/05-faces.css ── */
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/plus-jakarta-sans-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/plus-jakarta-sans-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/plus-jakarta-sans-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:800;font-display:swap;src:url("../fonts/plus-jakarta-sans-latin-800-normal.woff2") format("woff2")}
@font-face{font-family:"Plus Jakarta Sans fallback";font-style:normal;font-weight:400;src:local("Arial"),local("ArialMT"),local("Helvetica"),local("Liberation Sans"),local("LiberationSans");size-adjust:104.42%;ascent-override:99.41%;descent-override:21.26%;line-gap-override:0%}
@font-face{font-family:"Plus Jakarta Sans fallback";font-style:normal;font-weight:500;src:local("Arial"),local("ArialMT"),local("Helvetica"),local("Liberation Sans"),local("LiberationSans");size-adjust:105.49%;ascent-override:98.40%;descent-override:21.04%;line-gap-override:0%}
@font-face{font-family:"Plus Jakarta Sans fallback";font-style:normal;font-weight:700;src:local("Arial Bold"),local("Arial-BoldMT"),local("Helvetica Bold"),local("Helvetica-Bold"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Arial");size-adjust:101.12%;ascent-override:102.65%;descent-override:21.95%;line-gap-override:0%}
@font-face{font-family:"Plus Jakarta Sans fallback";font-style:normal;font-weight:800;src:local("Arial Bold"),local("Arial-BoldMT"),local("Helvetica Bold"),local("Helvetica-Bold"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Arial");size-adjust:102.18%;ascent-override:101.59%;descent-override:21.73%;line-gap-override:0%}
/* ── style/10-base.css ── */
*,::after,::before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}
::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}
:where(html){-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}
:where(h1,h2,h3,h4,h5,h6){font-size:inherit;font-weight:inherit}
:where(b,strong){font-weight:bolder}
:where(code,kbd,samp,pre){font-family:var(--font-log);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}
:where(table){text-indent:0;border-color:inherit;border-collapse:collapse}
:where(ol,ul,menu){list-style:none}
:where(img,svg,video,canvas,audio,iframe,embed,object){vertical-align:middle;display:block}
:where(img,video){max-width:100%;height:auto}
:where(button,input,select,optgroup,textarea){font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0}
::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;border-radius:0;margin-inline-end:4px;appearance:button}
::placeholder{opacity:1}
@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){
  ::placeholder{color:currentColor}
  @supports (color:color-mix(in lab, red, red)){
    ::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}
  }
}
:where(textarea){resize:vertical}
::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}
::-webkit-datetime-edit{display:inline-flex;padding-block:0}
::-webkit-datetime-edit-fields-wrapper{padding:0}
::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field{padding-block:0}
::-webkit-calendar-picker-indicator{line-height:1}
::-webkit-search-decoration{-webkit-appearance:none}
::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}
:-moz-focusring{outline:auto}
:-moz-ui-invalid{box-shadow:none}
:where(button,input:where([type=button],[type=reset],[type=submit])){appearance:button}
:where([hidden]:not([hidden=until-found])){display:none!important}
*{border-color:var(--color-line)}
:where(html){font-family:var(--font-sans);font-size:var(--text-16);background-color:var(--color-page)}
:where(body){min-height:100svh;background-color:var(--color-page);color:var(--color-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--text-17);line-height:1.45;font-variant-numeric:tabular-nums;word-spacing:0.04em}
:where(#root){display:contents}
:where(a){color:var(--color-navy);text-decoration:none}
:where(:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}
@media (hover: hover) and (pointer: fine){
  :where(a:hover){text-decoration:underline;text-underline-offset:3px}
}
/* ── style/15-motion.css ── */
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes dialog-in{from{opacity:0;transform:scale(0.95)}}
@keyframes dialog-out{to{opacity:0;transform:scale(0.95)}}
@keyframes fade-in{from{opacity:0}}
@keyframes fade-out{to{opacity:0}}
@keyframes sheet-in{from{transform:translateY(100%)}}
@keyframes sheet-pop{from{opacity:0;transform:scale(0.97)}}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
/* ── style/20-atoms.css ── */
.num{font-variant-numeric:tabular-nums}
.fi{flex:none;width:1.1em;height:1.1em}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* ── style/30-buttons.css ── */
:where(.btn){display:inline-flex;flex-shrink:0;touch-action:manipulation;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius-14);font-weight:var(--weight-bold);line-height:1.25;white-space:nowrap;transition-property:background-color,box-shadow,color;transition-duration:var(--duration-120);transition-timing-function:var(--ease-out);-webkit-user-select:none;user-select:none}
:where(.btn--primary){background-color:var(--color-navy);color:var(--color-on-navy)}
:where(.btn--outline){background-color:var(--color-page);box-shadow:var(--shadow-edge);color:var(--color-navy)}
:where(.btn--md){min-height:44px;padding-inline:16px;font-size:var(--text-16)}
:where(.btn--sm){min-height:36px;min-width:44px;padding-inline:14px;border-radius:var(--radius-pill);font-size:var(--text-15)}
:where(.btn--quiet){min-height:40px;border-radius:var(--radius-10);padding-inline:8px;font-size:var(--text-15);font-weight:var(--weight-medium);color:var(--color-ink-2);text-decoration-line:underline;text-decoration-color:var(--color-edge);text-underline-offset:3px}
:where(.btn--segment){min-height:44px;border-radius:0;background-color:var(--color-page);padding-inline:8px;font-size:var(--text-15);color:var(--color-ink-2)}
@media (hover: hover) and (pointer: fine){
  :where(.btn--primary:hover){background-color:var(--color-navy-2)}
  :where(.btn--outline:hover){box-shadow:var(--shadow-ring)}
  :where(.btn--quiet:hover){color:var(--color-ink);background-color:var(--color-veil)}
  :where(.btn--segment:hover){background-image:linear-gradient(var(--color-veil),var(--color-veil))}
}
:where(.btn--primary:active){background-color:var(--color-navy-3)}
:where(.btn--outline:active){background-color:var(--color-press);box-shadow:none}
:where(.btn--quiet:active){background-color:var(--color-veil-2)}
:where(.btn--segment:active){background-image:none;background-color:var(--color-soft)}
:where(.btn:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}
:where(.btn:active:not([aria-haspopup])){scale:0.97}
:where(.btn:disabled){pointer-events:none;color:var(--color-ink-3)}
:where(.btn--primary:disabled){background-color:var(--color-soft);box-shadow:none}
:where(.btn--outline[aria-expanded=true]){box-shadow:var(--shadow-ring)}
:where(.btn--segment[aria-current=true]){background-color:var(--color-navy);color:var(--color-on-navy)}
@media (hover: hover) and (pointer: fine){
  :where(.btn--segment[aria-current=true]:hover){background-image:none;background-color:var(--color-navy-2)}
}
:where(.btn--segment[aria-current=true]:active){background-image:none;background-color:var(--color-navy-3)}
@media (pointer: coarse){
  :where(.btn--md,.btn--segment){min-height:48px}
  :where(.btn--sm,.btn--quiet){min-height:44px}
  :where(.btn--sm,.btn--quiet,.btn--segment){font-size:var(--text-16)}
}
:where(.btn svg){pointer-events:none;flex-shrink:0;width:1.15em;height:1.15em}
:where(.btn-group){display:flex;width:fit-content;align-items:stretch}
:where(.btn-group > :focus-visible){position:relative;z-index:var(--z-focus)}
:where(.tabs){display:flex;flex-direction:column;gap:8px}
:where(.tabs-list){display:inline-flex;width:fit-content;gap:4px;padding:4px;border-radius:var(--radius-pill);background-color:var(--color-well)}
:where(.tab){display:inline-flex;min-height:40px;align-items:center;border-radius:var(--radius-pill);padding-inline:16px;font-size:var(--text-15);font-weight:var(--weight-bold);white-space:nowrap;color:var(--color-ink-2);transition-property:color,background-color;transition-duration:var(--duration-120);transition-timing-function:var(--ease-out)}
@media (hover: hover) and (pointer: fine){
  :where(.tab:hover){background-color:var(--color-veil);color:var(--color-ink);text-decoration:none}
}
:where(.tab:active){background-color:var(--color-veil-2)}
:where(.tab:focus-visible){outline:2px solid var(--color-focus);outline-offset:-2px}
:where(.tab[aria-current=page]){background-color:var(--color-navy);color:var(--color-on-navy)}
@media (hover: hover) and (pointer: fine){
  :where(.tab[aria-current=page]:hover){background-color:var(--color-navy-2);color:var(--color-on-navy)}
}
:where(.tab[aria-current=page]:active){background-color:var(--color-navy-3)}
@media (pointer: coarse){
  :where(.tab){min-height:44px;font-size:var(--text-16)}
}
/* ── style/32-fields.css ── */
:where(.control){width:100%;min-width:0;min-height:44px;border-radius:var(--radius-10);border:1px solid var(--color-edge);background-color:var(--color-page);padding:9px 12px;font-size:var(--text-16);line-height:1.4;color:var(--color-ink);transition-property:border-color,box-shadow,background-color;transition-duration:var(--duration-120);transition-timing-function:var(--ease-out);outline-style:none}
:where(.control)::placeholder{color:var(--color-ink-3)}
:where(.control--area){resize:vertical;line-height:1.5}
:where(.control--select){cursor:pointer;appearance:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:36px}
:where(.control--sm){min-height:36px;padding-top:4px;padding-bottom:4px;font-size:var(--text-15)}
@media (hover: hover) and (pointer: fine){
  :where(.control--select:hover){border-color:var(--color-navy);background-image:linear-gradient(var(--color-veil),var(--color-veil))}
}
:where(.control:focus-visible){border-color:var(--color-focus);outline-style:none;box-shadow:var(--shadow-field-focus)}
:where(.control--select:active){background-image:linear-gradient(var(--color-veil-2),var(--color-veil-2))}
:where(.control:disabled){pointer-events:none;opacity:0.55}
:where(.control[aria-invalid=true]){border-color:var(--color-urgent-mark)}
@media (pointer: coarse){
  :where(.control){min-height:48px;font-size:var(--text-16);line-height:1.5}
}
:where(.select){position:relative;width:fit-content}
:where(.select:has(select:disabled)){opacity:0.55}
:where(.select-caret){pointer-events:none;position:absolute;top:50%;right:12px;width:16px;height:16px;translate:0 -50%;color:var(--color-navy);-webkit-user-select:none;user-select:none}
:where(.select-option){background-color:var(--color-page);color:var(--color-ink)}
:where(input[type=file])::file-selector-button{font:inherit;font-size:var(--text-15);font-weight:var(--weight-bold);color:var(--color-navy);background:var(--color-page);border:1px solid var(--color-line);border-radius:var(--radius-pill);padding:6px 14px;margin-right:12px;cursor:pointer}
:where(.field){display:flex;width:100%;flex-direction:column;gap:6px;margin-bottom:16px}
:where(.field-label){display:flex;align-items:center;gap:8px;font-size:var(--text-15);line-height:1.35;font-weight:var(--weight-bold);color:var(--color-ink-2);-webkit-user-select:none;user-select:none}
:where(.field > *){width:100%}
/* ── style/34-tags.css ── */
:where(.badge){display:inline-flex;width:fit-content;flex-shrink:0;align-items:center;gap:4px;border-radius:var(--radius-6);padding:3px 7px;font-size:var(--text-12);line-height:1.1;font-weight:var(--weight-heavy);letter-spacing:0.05em;white-space:nowrap;text-transform:uppercase;background-color:var(--color-soft);color:var(--color-ink-2)}
:where(.badge--new){background-color:var(--color-navy);color:var(--color-lemon)}
:where(.badge--closed){background-color:var(--color-done-tint);color:var(--color-done)}
:where(.badge--lost){background-color:transparent;box-shadow:var(--shadow-edge);color:var(--color-ink-3)}
:where(.badge--warn){background-color:var(--color-soon-tint);color:var(--color-soon)}
:where(.avatar){position:relative;display:flex;width:52px;height:52px;flex-shrink:0;border-radius:var(--radius-round);-webkit-user-select:none;user-select:none}
:where(.avatar--sm){width:40px;height:40px}
:where(.avatar-initials){display:flex;width:100%;height:100%;align-items:center;justify-content:center;border-radius:var(--radius-round);background-color:var(--color-soft);font-size:var(--text-17);font-weight:var(--weight-heavy);letter-spacing:0.02em;color:var(--color-navy)}
:where(.avatar--sm .avatar-initials){font-size:var(--text-14)}
:where(.spinner){width:24px;height:24px;color:var(--color-navy);animation:spin var(--duration-1000) linear infinite}
/* ── style/36-surfaces.css ── */
:where(.surface){display:flex;flex-direction:column;border-radius:var(--radius-20);border:1px solid var(--color-line);background-color:var(--color-page);color:var(--color-ink)}
:where(.notice){margin:0 0 16px;display:flex;width:100%;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border-radius:var(--radius-14);border-left:4px solid var(--color-edge);background-color:var(--color-well);padding:12px 14px;text-align:left;font-size:var(--text-16);color:var(--color-ink-2)}
:where(.notice--attend){border-left-color:var(--color-urgent-mark);background-color:var(--color-urgent-tint);color:var(--color-ink)}
:where(.notice-text){min-width:0}
:where(.notice-actions){display:flex;flex-shrink:0;align-items:center;gap:8px}
:where(.empty){display:flex;width:100%;min-width:0;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px 16px 44px;text-align:center;text-wrap:balance}
:where(.empty-icon){display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;margin-bottom:-6px;border-radius:var(--radius-round);background-color:var(--color-soft);color:var(--color-navy)}
:where(.empty-icon .fi){width:24px;height:24px}
:where(.empty-head){display:flex;max-width:26rem;flex-direction:column;align-items:center;gap:4px}
:where(.empty-title){font-size:var(--text-20);font-weight:var(--weight-heavy);color:var(--color-ink)}
:where(.empty-text){font-size:var(--text-16);color:var(--color-ink-2)}
:where(.empty-actions){margin-top:8px;display:flex;width:100%;max-width:26rem;min-width:0;flex-direction:column;align-items:center;gap:10px;font-size:var(--text-16);text-wrap:balance}
:where(.dialog[open]){position:fixed;inset:auto;top:50%;left:50%;margin:0;display:grid;width:calc(100% - 32px);max-width:22rem;translate:-50% -50%;gap:16px;overflow:visible;border-radius:var(--radius-20);border:0;background-color:var(--color-page);padding:20px;color:var(--color-ink);box-shadow:var(--shadow-dialog);outline-style:none;animation:dialog-in var(--duration-120) ease}
:where(.dialog[data-closing]){animation:dialog-out var(--duration-120) ease forwards}
:where(.dialog)::backdrop{background-color:var(--color-scrim);animation:fade-in var(--duration-120) ease}
:where(.dialog[data-closing])::backdrop{animation:fade-out var(--duration-120) ease forwards}
:where(.dialog-head){display:grid;grid-template-rows:auto 1fr;place-items:center;gap:6px;text-align:center}
:where(.dialog-title){font-size:var(--text-20);line-height:1.3;font-weight:var(--weight-heavy);color:var(--color-ink)}
:where(.dialog-text){font-size:var(--text-16);text-wrap:balance;color:var(--color-ink-2)}
:where(.dialog-foot){margin:0 -20px -20px;display:flex;flex-direction:column-reverse;gap:8px;border-bottom-right-radius:var(--radius-20);border-bottom-left-radius:var(--radius-20);border-top:1px solid var(--color-line);background-color:var(--color-well);padding:16px 20px}
@media (min-width: 641px){
  :where(.dialog[open]){max-width:26rem}
  :where(.dialog-head){place-items:start;text-align:left}
  :where(.dialog-text){text-wrap:pretty}
  :where(.dialog-foot){flex-direction:row;justify-content:flex-end}
}
:where(.table-wrap){position:relative;width:100%;overflow-x:auto}
/* ── style/40-shell.css ── */
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:calc(var(--topbar-h) + env(safe-area-inset-top, 0px));padding:env(safe-area-inset-top, 0px) var(--gutter) 0;background:var(--color-navy);color:var(--color-on-navy)}
.brand{position:relative;display:inline-flex;align-items:center;gap:10px;min-width:0;min-height:44px;margin-left:-8px;padding:0 8px;border-radius:var(--radius-10);color:var(--color-on-navy);font-size:var(--text-15);font-weight:var(--weight-heavy);white-space:nowrap}
.brand-mark{flex:none;width:22px;height:22px;fill:var(--color-lemon)}
.brand-name{overflow:hidden;text-overflow:ellipsis}
.top-more{display:grid;place-items:center;flex:none;width:44px;height:44px;margin-right:-10px;border-radius:var(--radius-round);color:var(--color-on-navy-2)}
.top-more .fi{width:22px;height:22px}
.top-more[aria-current=page]{background:var(--color-glow);color:var(--color-on-navy)}
@media (hover: hover) and (pointer: fine){
  .brand:hover{text-decoration:none;background:var(--color-glow)}
  .top-more:hover{background:var(--color-glow);color:var(--color-on-navy)}
  .top-more[aria-current=page]:hover{background:var(--color-glow-2)}
}
.top-more:active,.top-more[aria-current=page]:active,.brand:active{background:var(--color-glow-2)}
.nav{position:fixed;z-index:var(--z-nav);left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(6, minmax(min-content, 1fr));height:calc(var(--tabbar-h) + var(--tabbar-foot));padding-bottom:var(--tabbar-foot);background:var(--color-navy);box-shadow:var(--shadow-tabbar)}
.nav-brand,.nav-more{display:none}
.nav-item,.nav-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:44px;min-height:44px;padding:0 4px;color:var(--color-on-navy-2);font-size:var(--text-12);font-weight:var(--weight-bold);line-height:1.15;letter-spacing:0.01em;white-space:nowrap;transition-property:background-color,color;transition-duration:var(--duration-120);transition-timing-function:var(--ease-out);-webkit-user-select:none;user-select:none}
.nav-item .fi{width:24px;height:24px}
.nav-label{overflow:hidden;text-overflow:ellipsis;max-width:100%}
.nav-item[aria-current=page]{color:var(--color-on-navy)}
.nav-item[aria-current=page] .fi{color:var(--color-lemon)}
.nav-add{order:1}
.nav-add-dot{display:grid;place-items:center;width:30px;height:30px;margin:-3px 0;border-radius:var(--radius-round);background:var(--color-lemon);color:var(--color-navy)}
.nav-add-dot .fi{width:20px;height:20px}
@media (hover: hover) and (pointer: fine){
  .nav-item:hover,.nav-add:hover{background:var(--color-glow);color:var(--color-on-navy);text-decoration:none}
  .nav-add:hover .nav-add-dot{background:var(--color-lemon-hover)}
}
.nav-item:active,.nav-add:active{background:var(--color-glow-2)}
.nav-add:active .nav-add-dot{background:var(--color-lemon-press)}
.nav-item:focus-visible,.nav-add:focus-visible{outline-offset:-3px}
.main{display:block;min-width:0;padding-bottom:calc(var(--tabbar-h) + var(--tabbar-foot) + 32px)}
.main.fill{display:flex;flex-direction:column;height:calc(100svh - var(--topbar-h) - env(safe-area-inset-top, 0px) - var(--tabbar-h) - var(--tabbar-foot));padding-bottom:0;overflow:hidden}
.content{padding:24px var(--gutter) 0}
.content.content--narrow{max-width:var(--content-narrow)}
.content.content--table{max-width:var(--content-table)}
.pending{display:flex;justify-content:center;padding-top:48px}
.band{padding:4px var(--gutter) 24px;background:var(--color-navy);color:var(--color-on-navy)}
.band-in{display:grid;grid-template-columns:minmax(0, 1fr) auto;grid-template-rows:var(--band-top) auto auto auto;grid-template-areas:"back acts" "kicker kicker" "title title" "sum sum";column-gap:16px}
.band.band--narrow .band-in{max-width:calc(var(--content-narrow) - 2 * var(--gutter))}
.band-back{grid-area:back;align-self:center;justify-self:start;display:inline-flex;align-items:center;gap:4px;max-width:100%;min-height:44px;margin-left:-8px;padding:0 10px 0 6px;border-radius:var(--radius-10);color:var(--color-on-navy-2);font-size:var(--text-15);font-weight:var(--weight-bold);white-space:nowrap}
.band-back > span{overflow:hidden;text-overflow:ellipsis}
.band-back .fi{flex:none;width:18px;height:18px}
.band-kicker{grid-area:kicker;height:1lh;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--text-14);font-weight:var(--weight-heavy);line-height:1.4;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-lemon)}
.band-title{grid-area:title;margin-top:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--text-34);font-weight:var(--weight-heavy);line-height:1.2;letter-spacing:-0.01em;color:var(--color-on-navy)}
.band-sum{grid-area:sum;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;height:2lh;overflow:hidden;margin-top:8px;max-width:34em;font-size:var(--text-17);line-height:1.4;color:var(--color-on-navy-2)}
.band-acts{grid-area:acts;align-self:center;display:flex;gap:8px}
@media (hover: hover) and (pointer: fine){
  .band-back:hover{background:var(--color-glow);color:var(--color-on-navy);text-decoration:none}
}
.band-back:active{background:var(--color-glow-2)}
.band-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:48px;min-height:48px;padding:0 14px;border-radius:var(--radius-14);background:var(--color-navy-2);color:var(--color-on-navy);font-size:var(--text-16);font-weight:var(--weight-bold);line-height:1.25;white-space:nowrap;transition-property:background-color;transition-duration:var(--duration-120);transition-timing-function:var(--ease-out)}
.band-btn--primary{background:var(--color-lemon);color:var(--color-navy)}
.band-btn:disabled{opacity:0.55;pointer-events:none}
@media (hover: hover) and (pointer: fine){
  .band-btn:hover{background:var(--color-navy-3);text-decoration:none}
  .band-btn--primary:hover{background:var(--color-lemon-hover)}
}
.band-btn:active{background:var(--color-navy-4)}
.band-btn--primary:active{background:var(--color-lemon-press)}
.band-btn:focus-visible,.band-back:focus-visible{outline-color:var(--color-lemon)}
.center-page{display:flex;min-height:calc(100svh - var(--topbar-h));align-items:center;justify-content:center;padding:24px var(--gutter)}
.center-msg{text-align:center}
.msg-title{font-size:var(--text-20);font-weight:var(--weight-heavy)}
.msg-text{font-size:var(--text-16);color:var(--color-ink-2)}
.center-msg .msg-title{margin-bottom:4px}
.center-msg .msg-text{margin-bottom:20px}
.login{width:min(24rem,100%);padding:28px 24px 24px;text-align:center}
.login h1{margin-bottom:6px;font-size:var(--text-22);font-weight:var(--weight-heavy);color:var(--color-ink)}
.login p{margin-bottom:20px;font-size:var(--text-16);color:var(--color-ink-2)}
.submit{margin-top:4px;width:100%}
.submit--gap{margin-bottom:16px}
.signout-form{display:contents}
@media (max-width: 767px){
  .band-acts .band-btn{padding:0}
  .band-acts .band-btn-label{display:none}
}
@media (max-width: 380px){
  .band-sum{-webkit-line-clamp:3;height:3lh}
}
@media (min-width: 641px) and (max-width: 767px){
  .band.band--day .band-in{max-width:640px;margin-inline:auto}
}
@media (min-width: 768px){
  .top:has(+ .shell){display:none}
    .nav{top:0;right:auto;width:var(--rail-w);height:auto;padding:16px 0 12px;display:flex;flex-direction:column;align-items:stretch;gap:4px;overflow-y:auto;background:var(--color-rail);box-shadow:var(--shadow-rail);scrollbar-width:none}
  .nav-brand{display:grid;place-items:center;order:-2;min-height:52px;margin:0 8px 8px;border-radius:var(--radius-14);color:var(--color-ink);font-size:var(--text-15);font-weight:var(--weight-heavy)}
  .nav-brand .brand-name{display:none}
  .nav-brand .brand-mark{width:26px;height:26px}
  .nav-item,.nav-add{flex:none;min-height:60px;margin:0 8px;border-radius:var(--radius-14);color:var(--color-ink-2)}
  .nav-add{order:-1;margin-bottom:12px;color:var(--color-ink)}
  .nav-item[aria-current=page]{background:var(--color-rail-on);color:var(--color-ink)}
  .nav-item[aria-current=page] .fi{color:var(--color-navy)}
  .nav-more{display:flex;flex-direction:column;gap:4px;margin-top:auto;padding-top:16px}
  .nav-more .nav-item{min-height:52px}
  .band{padding:calc(20px + env(safe-area-inset-top, 0px)) var(--gutter) 32px}
  .main{margin-left:var(--rail-w);padding-bottom:48px}
  .main.fill{height:100svh}
  .center-page{min-height:calc(100svh - var(--topbar-h))}
}
@media (min-width: 768px) and (hover: hover) and (pointer: fine){
  .nav-item:hover,.nav-add:hover,.nav-brand:hover{background:var(--color-veil);color:var(--color-ink);text-decoration:none}
  .nav-item[aria-current=page]:hover{background:var(--color-rail-on);background-image:linear-gradient(var(--color-veil),var(--color-veil))}
  .nav-add:hover .nav-add-dot{background:var(--color-lemon)}
}
@media (min-width: 768px){
  .nav-item:active,.nav-add:active,.nav-brand:active{background:var(--color-veil-2)}
    .nav-add:active .nav-add-dot{background:var(--color-lemon-deep)}
  .nav-item[aria-current=page]:active{background:var(--color-rail-on);background-image:linear-gradient(var(--color-veil-2),var(--color-veil-2))}
}
@media (min-width: 1100px){
  .nav{width:var(--sidebar-w);padding:20px 12px 16px}
  .nav-brand{display:flex;justify-content:flex-start;gap:10px;margin:0 0 8px;padding:0 12px}
  .nav-brand .brand-name{display:inline}
  .nav-item,.nav-add{flex-direction:row;justify-content:flex-start;gap:12px;min-height:44px;margin:0;padding:0 12px;font-size:var(--text-15);line-height:1.3}
  .nav-item .fi{width:20px;height:20px}
  .nav-add{margin-bottom:16px}
  .nav-add-dot{width:28px;height:28px;margin:0 0 0 -4px}
  .nav-more .nav-item{min-height:44px}
  .main{margin-left:var(--sidebar-w)}
  .band-title{font-size:var(--text-38)}
}
@media (display-mode: standalone) and (max-width: 767px){
  .nav{height:calc(var(--tabbar-h) + max(var(--tabbar-foot), env(safe-area-inset-bottom, 0px)));padding-bottom:max(var(--tabbar-foot), env(safe-area-inset-bottom, 0px))}
  .main{padding-bottom:calc(var(--tabbar-h) + max(var(--tabbar-foot), env(safe-area-inset-bottom, 0px)) + 32px)}
  .main.fill{height:calc(100svh - var(--topbar-h) - env(safe-area-inset-top, 0px) - var(--tabbar-h) - max(var(--tabbar-foot), env(safe-area-inset-bottom, 0px)))}
}
/* ── style/45-panels.css ── */
.crm-chip{position:relative;flex:none;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;font-size:var(--text-15);font-weight:var(--weight-bold);line-height:1;color:var(--color-ink-2);background:var(--color-page);box-shadow:var(--shadow-edge);border-radius:var(--radius-pill);cursor:pointer;font-family:inherit;transition-property:background-color,box-shadow,color;transition-duration:var(--duration-120);transition-timing-function:var(--ease-out)}
.crm-chip::after{content:"";position:absolute;inset:-6px -2px}
.crm-chip-n{font-variant-numeric:tabular-nums;color:var(--color-ink-3);font-weight:var(--weight-medium)}
.crm-chip.on{background:var(--color-navy);box-shadow:none;color:var(--color-on-navy)}
.crm-chip.on .crm-chip-n{color:var(--color-on-navy-2)}
.crm-chip.on[data-level="warn"]{background:var(--color-soon)}
.crm-chip.on[data-level="error"]{background:var(--color-urgent)}
@media (pointer: coarse){
  .crm-chip{min-height:44px;font-size:var(--text-16)}
}
@media (hover: hover) and (pointer: fine){
  .crm-chip:hover{box-shadow:var(--shadow-ring);color:var(--color-ink);text-decoration:none}
  .crm-chip.on:hover{background:var(--color-navy-2);box-shadow:none;color:var(--color-on-navy)}
  .crm-chip.on[data-level="warn"]:hover{background:var(--color-soon) linear-gradient(var(--color-glow),var(--color-glow))}
  .crm-chip.on[data-level="error"]:hover{background:var(--color-urgent) linear-gradient(var(--color-glow),var(--color-glow))}
}
.crm-chip:active{background:var(--color-press);box-shadow:none}
.crm-chip.on:active{background:var(--color-navy-3)}
.crm-chip.on[data-level="warn"]:active{background:var(--color-soon) linear-gradient(var(--color-glow-2),var(--color-glow-2))}
.crm-chip.on[data-level="error"]:active{background:var(--color-urgent) linear-gradient(var(--color-glow-2),var(--color-glow-2))}
.crm-chips{display:flex;gap:8px;overflow-x:auto;margin:0 calc(-1 * var(--gutter)) 16px;padding:4px var(--gutter);scrollbar-width:none}
.crm-chips::-webkit-scrollbar{display:none}
.cards{display:grid;grid-template-columns:repeat(auto-fit, minmax(12rem, 1fr));gap:12px;margin-bottom:20px}
.card{padding:16px 18px;display:flex;flex-direction:column;margin:0;min-width:0}
.chead{display:flex;align-items:center;gap:10px;min-width:0}
.cicon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:var(--radius-round);background:var(--color-soft);color:var(--color-navy)}
.cicon .fi{width:17px;height:17px}
.clbl{font-size:var(--text-15);font-weight:var(--weight-bold);color:var(--color-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cval{display:flex;align-items:flex-end;gap:10px;margin:12px 0 4px;min-width:0}
.card b{display:block;font-size:var(--text-28);font-weight:var(--weight-heavy);color:var(--color-ink);letter-spacing:-0.02em;line-height:1.05;font-variant-numeric:proportional-nums}
.card .csub{font-size:var(--text-14);color:var(--color-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cdelta{display:inline-flex;align-items:center;gap:2px;vertical-align:bottom;font-size:var(--text-14);font-weight:var(--weight-bold);color:var(--color-ink-2);white-space:nowrap}
.cdelta .fi{width:0.95em;height:0.95em}
.cdelta[data-dir="up"]{color:var(--color-done)}
.spark{display:block;margin-left:auto;flex:none;width:88px;height:32px}
.spark svg{display:block;width:100%;height:100%;overflow:visible}
.spark-area{fill:var(--color-soft);stroke:none}
.spark-line{fill:none;stroke:var(--color-navy);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.spark-dot{fill:var(--color-lemon);stroke:var(--color-navy);stroke-width:1.5}
.card.ok b,.card.ok .cicon{color:var(--color-done)}
.card.live b{color:var(--color-soon)}
.card.live .cicon{background:var(--color-soon-tint);color:var(--color-soon)}
.card.warned b,.card.warned .cicon{color:var(--color-urgent)}
.card.muted b{color:var(--color-ink-3)}
.card--link{color:var(--color-ink);transition-property:box-shadow,background-color;transition-duration:var(--duration-120);transition-timing-function:var(--ease-out)}
@media (hover: hover) and (pointer: fine){
  .card--link:hover{text-decoration:none;box-shadow:var(--shadow-ring)}
}
.card--link:active{background:var(--color-press)}
.panel{padding:0;gap:0;margin-bottom:20px;display:flex;flex-direction:column;overflow:hidden}
.phead{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--color-line);flex:none;min-height:56px}
.picon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:var(--radius-round);background:var(--color-soft);color:var(--color-navy)}
.picon .fi{width:17px;height:17px}
.ptitle{margin:0;font-size:var(--text-18);font-weight:var(--weight-heavy);color:var(--color-ink);line-height:1.25}
.pcount{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;padding:0 8px;border-radius:var(--radius-pill);background:var(--color-soft);font-size:var(--text-13);font-weight:var(--weight-heavy);color:var(--color-ink-2);font-variant-numeric:tabular-nums}
.lbl{color:var(--color-ink-2);font-size:var(--text-12);font-weight:var(--weight-heavy);text-transform:uppercase;letter-spacing:0.08em}
.plink{position:relative;margin-left:auto;font-size:var(--text-15);font-weight:var(--weight-bold);white-space:nowrap}
.plink a{display:inline-flex;align-items:center;gap:4px}
.plink .fi{width:0.95em;height:0.95em}
a.plink::after{content:"";position:absolute;inset:-14px -8px}
.pbody{padding:18px}
.pnote{padding:16px 18px;color:var(--color-ink-2);font-size:var(--text-15);margin:0}
.pfoot{margin:12px 0 0;font-size:var(--text-15);color:var(--color-ink-2)}
.pbody > .pfoot:first-child{margin-top:0}
.pfoot ol{list-style:decimal;padding-left:1.2em;margin:0}
.pfoot ul{list-style:disc;padding-left:1.2em;margin:0}
.pfoot li + li{margin-top:0.25em}
.pfoot + .field{margin-top:14px}
.ctable{width:100%;border-collapse:collapse;font-size:var(--text-15);caption-side:bottom}
.ctable th{text-align:left;color:var(--color-ink-2);font-weight:var(--weight-heavy);font-size:var(--text-12);text-transform:uppercase;letter-spacing:0.07em;padding:10px 10px;border-bottom:1px solid var(--color-line);white-space:nowrap;height:auto}
.ctable td{padding:12px 10px;border-bottom:1px solid var(--color-line);vertical-align:middle;font-variant-numeric:tabular-nums;white-space:nowrap}
.ctable th:first-child,.ctable td:first-child{padding-left:18px}
.ctable th:last-child,.ctable td:last-child{padding-right:18px}
.ctable tr{border-bottom:0}
.ctable tr:last-child > td,.ctable tr:last-child > th{border-bottom:0}
.ctable .rnum{text-align:right}
.tdim{color:var(--color-ink-3)}
.cell-sub{margin-top:2px;font-size:var(--text-14);color:var(--color-ink-2);white-space:normal}
.ctable--kv th{width:38%;white-space:normal;text-transform:uppercase}
.ctable--kv td{white-space:normal;overflow-wrap:break-word}
.statuscell{white-space:normal;min-width:6.5rem}
.val-big{font-size:var(--text-18);font-weight:var(--weight-heavy);letter-spacing:-0.01em}
.amt{font-weight:var(--weight-bold)}
.tr-quiet td{color:var(--color-ink-2)}
.tr-quiet .amt{font-weight:var(--weight-regular)}
.oknote{color:var(--color-done);font-weight:var(--weight-bold)}
.yr{font-weight:var(--weight-bold)}
.crm-statall td{font-weight:var(--weight-heavy);border-top:2px solid var(--color-line)}
.lrows{display:flex;width:100%;flex-direction:column}
.lrow{position:relative;display:flex;width:100%;flex-wrap:nowrap;align-items:center;gap:14px;padding:12px 18px;min-height:64px;border:0;border-bottom:1px solid var(--color-line);border-radius:0;font-size:var(--text-15);line-height:1.35;outline-style:none;transition-property:background-color;transition-duration:var(--duration-120);transition-timing-function:var(--ease-out)}
.lrow:last-child{border-bottom:0}
.lrow-main{flex:1;min-width:0;display:block}
.lrow-name{display:block;font-weight:var(--weight-bold);font-size:var(--text-17);color:var(--color-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lrow-name::after{content:"";position:absolute;inset:0}
.lrow:has(.lrow-name:focus-visible){outline:2px solid var(--color-focus);outline-offset:-2px}
.lrow-name:focus-visible{outline:none}
.lrow-meta,.crm-meta{display:flex;align-items:center;flex-wrap:wrap;column-gap:6px;row-gap:2px;margin-top:3px;font-size:var(--text-15);color:var(--color-ink-2)}
.lrow-age{flex:none;font-size:var(--text-14);font-weight:var(--weight-bold);color:var(--color-ink-2);white-space:nowrap}
.lrow-note{display:none;margin-top:3px;font-size:var(--text-15);color:var(--color-ink-2)}
.lrow-actions{display:flex;flex-shrink:0;align-items:center;gap:8px}
.lrow-chev{width:20px;height:20px;color:var(--color-ink-3)}
.crm-dot{color:var(--color-ink-3)}
@media (hover: hover) and (pointer: fine){
  .lrow:hover{background:var(--color-veil)}
  .lrow-name:hover{text-decoration:underline}
}
.lrow:has(.lrow-name:active){background:var(--color-veil-2)}
.rowbtn{position:relative;z-index:var(--z-raised);flex:none}
.rowbtn::after{content:"";position:absolute;inset:-4px -2px}
.psub{padding:8px 18px;font-size:var(--text-12);font-weight:var(--weight-heavy);text-transform:uppercase;letter-spacing:0.08em;color:var(--color-ink-2);background:var(--color-well);border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}
.phead + .psub{border-top:0}
.lrow:has(+ .psub),.pnote:has(+ .psub){border-bottom:0}
@media (max-width: 767px){
  .cards{grid-template-columns:1fr 1fr;gap:10px}
  .card{padding:14px}
  .card b{font-size:var(--text-22)}
  .lrow,.phead,.psub{padding-left:14px;padding-right:14px}
  .pbody{padding:14px}
  .lrow-actions .btn-label{display:none}
  .ctable th:first-child,.ctable td:first-child{padding-left:14px}
}
@media (max-width: 380px){
  .cards{grid-template-columns:1fr}
}
@media (min-width: 768px){
  .lrow-note{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
    .cards--fc{grid-template-columns:repeat(4, minmax(0, 1fr));column-gap:28px}
}
/* ── style/50-dashboard.css ── */
.day-cols{display:flex;flex-direction:column;gap:32px;padding:32px var(--gutter) 0}
.day-cols.is-caught{padding-top:0}
.day-col{display:contents}
.day-sec[data-sec="next"]{order:1}
.day-sec[data-sec="reply"]{order:2}
.day-sec[data-sec="deadlines"]{order:3}
.day-sec[data-sec="due"]{order:4}
.day-sec[data-sec="today"]{order:5}
.day-sec[data-sec="touch"]{order:6}
.day-sec[data-sec="prospecting"]{order:7}
.day-sec{min-width:0}
.day-sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:var(--text-22);font-weight:var(--weight-heavy);line-height:1.27;color:var(--color-ink)}
.day-sec-note{font-size:var(--text-16);font-weight:var(--weight-regular);color:var(--color-ink-2)}
.day-rows{display:flex;flex-direction:column;gap:8px}
.day-sec[data-sec="next"]{margin:-32px calc(-1 * var(--gutter)) 0;padding:0 var(--gutter) 24px;background:var(--color-navy);border-radius:0 0 var(--radius-20) var(--radius-20)}
.day-sec[data-sec="next"] .day-sec-h{margin-bottom:12px;padding-top:16px;border-top:1px solid var(--color-navy-rule);font-size:var(--text-14);line-height:1.4;letter-spacing:0.08em;text-transform:uppercase;color:var(--color-lemon)}
.day-next{display:grid;grid-template-columns:auto minmax(0, 1fr);gap:16px;align-items:start}
.day-next-time{display:grid}
.day-next-what{min-width:0}
.day-next-clock{font-size:var(--text-44);font-weight:var(--weight-heavy);line-height:1;letter-spacing:-0.02em;font-variant-numeric:proportional-nums;color:var(--color-on-navy)}
.day-next-ampm{margin-top:4px;font-size:var(--text-15);font-weight:var(--weight-bold);color:var(--color-on-navy-2)}
.day-next-kind{font-size:var(--text-16);font-weight:var(--weight-bold);line-height:1.38;color:var(--color-on-navy-2)}
.day-next-in{color:var(--color-lemon)}
.day-next-title{font-size:var(--text-18);font-weight:var(--weight-bold);line-height:1.33;color:var(--color-on-navy)}
.day-next-who{margin-top:2px;font-size:var(--text-16);line-height:1.38;color:var(--color-on-navy-2)}
.day-next-acts{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:8px}
.day-row{position:relative;display:grid;grid-template-columns:auto minmax(0, 1fr);grid-template-areas:"lead main" "acts acts";column-gap:12px;align-items:start;padding:16px;border-radius:var(--radius-14);background:var(--color-well);transition-property:opacity,background-color;transition-duration:var(--duration-240);transition-timing-function:var(--ease-out)}
.day-row:not(:has(.day-row-lead)){grid-template-columns:minmax(0, 1fr);grid-template-areas:"main" "acts"}
.day-row.is-urgent{background:var(--color-urgent-tint)}
.day-row.is-soon{background:var(--color-soon-tint)}
.day-row.is-done{background:var(--color-done-tint)}
.day-row[data-leaving]{opacity:0}
.day-row-lead{grid-area:lead}
.day-row-main{grid-area:main;display:block;min-width:0;min-height:44px;border-radius:var(--radius-10);color:inherit}
.day-row-acts{grid-area:acts;display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.day-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.day-row-name,.day-row-title{font-size:var(--text-18);font-weight:var(--weight-bold);line-height:1.33;color:var(--color-ink)}
.day-row-msg{margin-top:2px;font-size:var(--text-17);line-height:1.41;color:var(--color-ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.day-row-meta{margin-top:2px;font-size:var(--text-16);line-height:1.38;color:var(--color-ink-2)}
@media (hover: hover) and (pointer: fine){
  .day-row-main:hover{text-decoration:none}
  .day-row-main:hover .day-row-name,.day-row-main:hover .day-row-title{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
}
.day-row:has(.day-row-main:active){background-image:linear-gradient(var(--color-veil-2),var(--color-veil-2))}
.day-sec[data-sec="today"] .day-rows{gap:0}
.day-row--appt{padding:12px 0;border-radius:0;background:transparent}
.day-row--appt + .day-row--appt{border-top:1px solid var(--color-line)}
.day-row--appt.is-past .day-row-title,.day-row--appt.is-past .day-time{color:var(--color-ink-3)}
.day-row--appt:has(.day-row-main:active){background-image:linear-gradient(var(--color-veil-2),var(--color-veil-2))}
.day-when{flex:none;font-size:var(--text-16);font-weight:var(--weight-heavy);line-height:1.38;color:var(--color-ink);white-space:nowrap}
.day-when--urgent,.day-when--soon{display:inline-flex;align-items:center;gap:6px}
.day-when--urgent::before,.day-when--soon::before{content:"";flex:none;width:10px;height:10px;border-radius:var(--radius-round)}
.day-when--urgent{color:var(--color-urgent)}
.day-when--urgent::before{background:var(--color-urgent-mark)}
.day-when--soon{color:var(--color-soon)}
.day-when--soon::before{background:var(--color-soon-mark)}
.day-when--done{color:var(--color-done)}
.day-tag{display:inline-block;padding:0 6px;border-radius:var(--radius-6);box-shadow:var(--shadow-tag);font-size:var(--text-12);font-weight:var(--weight-heavy);line-height:1.5;letter-spacing:0.04em;color:var(--color-ink);vertical-align:1px}
.day-face{display:grid;place-items:center;width:40px;height:40px;margin-top:-2px;border-radius:var(--radius-round);background:var(--color-page);color:var(--color-navy);font-size:var(--text-15);font-weight:var(--weight-heavy);letter-spacing:0.02em}
.is-urgent .day-face{background:var(--color-urgent-mark);color:var(--color-on-mark)}
.day-date{display:grid;justify-items:center;align-content:center;width:52px;min-height:52px;border-radius:var(--radius-14);background:var(--color-page);color:var(--color-ink)}
.day-date-dow{font-size:var(--text-12);font-weight:var(--weight-heavy);line-height:1.2;letter-spacing:0.04em;text-transform:uppercase;color:var(--color-ink-2)}
.day-date-d{font-size:var(--text-22);font-weight:var(--weight-heavy);line-height:1.1}
.is-urgent .day-date-dow,.is-urgent .day-date-d{color:var(--color-urgent)}
.day-time{display:block;width:64px;font-size:var(--text-20);font-weight:var(--weight-heavy);line-height:1.2;color:var(--color-ink)}
.day-time small{display:block;font-size:var(--text-13);font-weight:var(--weight-bold);line-height:1.25;letter-spacing:0.02em;color:var(--color-ink-2)}
.day-now{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:var(--text-13);font-weight:var(--weight-heavy);line-height:1.25;color:var(--color-urgent)}
.day-now::after{content:"";flex:1;height:2px;border-radius:var(--radius-pill);background:var(--color-urgent-mark)}
.day-badge{display:inline-block;margin-left:6px;padding:0 6px;border-radius:var(--radius-6);background:var(--color-navy);color:var(--color-lemon);font-size:var(--text-12);font-weight:var(--weight-heavy);line-height:1.5;vertical-align:2px}
.day-check{display:grid;place-items:center;width:44px;height:44px;margin:-8px 0 0 -8px;border-radius:var(--radius-round);color:var(--color-navy)}
.is-urgent .day-check{color:var(--color-urgent)}
.day-check-ring{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-round);background:var(--color-page);box-shadow:var(--shadow-check);transition-property:background-color;transition-duration:var(--duration-120);transition-timing-function:var(--ease-out)}
.day-check-ring .fi{width:15px;height:15px;color:var(--color-on-mark);opacity:0}
.day-check[aria-pressed=true] .day-check-ring{background:var(--color-done-mark);color:var(--color-done-mark)}
.day-check[aria-pressed=true] .day-check-ring .fi{opacity:1}
@media (hover: hover) and (pointer: fine){
  .day-check:hover .day-check-ring{background:var(--color-press)}
}
.day-check:active .day-check-ring{background:var(--color-press) linear-gradient(var(--color-veil-2),var(--color-veil-2))}
.day-act{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:0 16px;border-radius:var(--radius-pill);background:var(--color-page);color:var(--color-navy);font-size:var(--text-16);font-weight:var(--weight-bold);line-height:1.25;white-space:nowrap;transition-property:background-color,box-shadow;transition-duration:var(--duration-120);transition-timing-function:var(--ease-out)}
.day-act--primary{background:var(--color-navy);color:var(--color-on-navy)}
.day-act:disabled{opacity:0.55;pointer-events:none}
@media (hover: hover) and (pointer: fine){
  .day-act:hover{box-shadow:var(--shadow-ring);text-decoration:none}
  .day-act--primary:hover{background:var(--color-navy-2);box-shadow:none}
}
.day-act:active{background:var(--color-press);box-shadow:none}
.day-act--primary:active{background:var(--color-navy-3)}
.day-act--wide{flex:1 0 100%}
.day-row--reply .day-act:not(.day-act--wide){flex:1 1 0}
.day-line{display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 16px;border-radius:var(--radius-14);background:var(--color-well);color:var(--color-ink)}
.day-line-main{flex:1;min-width:0;font-size:var(--text-16);line-height:1.38}
.day-line-main b{font-size:var(--text-18);font-weight:var(--weight-bold);color:var(--color-ink)}
.day-line-note{color:var(--color-ink-2)}
.day-line-chev{color:var(--color-ink-3)}
.day-quiet{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-top:8px;padding:0 8px;margin-left:-8px;border-radius:var(--radius-10);font-size:var(--text-16);color:var(--color-ink-2)}
.day-quiet .fi{width:16px;height:16px}
@media (hover: hover) and (pointer: fine){
  .day-line:hover{text-decoration:none;background-image:linear-gradient(var(--color-veil),var(--color-veil))}
  .day-line:hover b{text-decoration:underline;text-underline-offset:3px}
  .day-quiet:hover{background:var(--color-veil);color:var(--color-ink)}
}
.day-line:active{background-image:linear-gradient(var(--color-veil-2),var(--color-veil-2))}
.day-quiet:active{background:var(--color-veil-2)}
.day-caught{display:grid;justify-items:start;gap:12px;padding:32px 0}
.day-caught-mark{display:grid;place-items:center;width:56px;height:56px;border-radius:var(--radius-round);background:var(--color-navy);color:var(--color-lemon)}
.day-caught-mark .fi{width:30px;height:30px}
.day-caught h2{font-size:var(--text-28);font-weight:var(--weight-heavy);line-height:1.2;color:var(--color-ink)}
.day-caught p{font-size:var(--text-17);color:var(--color-ink-2)}
.day-after{width:100%;margin-top:12px;padding-top:16px;border-top:1px solid var(--color-line)}
.day-rule{margin-top:6px;font-size:var(--text-14);color:var(--color-ink-2)}
.day-rule summary{cursor:pointer;width:max-content;margin-left:-6px;padding:2px 6px;border-radius:var(--radius-6);font-weight:var(--weight-bold);color:var(--color-navy)}
@media (hover: hover) and (pointer: fine){
  .day-rule summary:hover{background:var(--color-veil)}
}
.day-rule summary:active{background:var(--color-veil-2)}
@media (pointer: coarse){
  .day-rule summary{padding-block:12px}
}
.day-rule p{margin-top:4px;line-height:1.5}
html:has(.day-sheet[open]){overflow:hidden}
.day-sheet{position:fixed;inset:auto 0 0 0;margin:0;width:100%;max-width:none;max-height:92dvh;padding:0;border:0;overflow:auto;background:var(--color-page);color:var(--color-ink);border-radius:var(--radius-20) var(--radius-20) 0 0;box-shadow:var(--shadow-sheet)}
.day-sheet::backdrop{background:var(--color-scrim)}
.day-sheet[open]{animation:sheet-in var(--duration-420) var(--ease-sheet)}
.day-sheet-form{display:grid;gap:20px;padding:8px var(--gutter) calc(20px + env(safe-area-inset-bottom, 0px))}
.day-sheet-form fieldset{min-width:0}
.day-sheet-form .notice{margin:0}
.day-sheet-grab{justify-self:center;width:36px;height:5px;margin-bottom:4px;border-radius:var(--radius-pill);background:var(--color-line)}
.day-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.day-sheet-kicker{font-size:var(--text-16);font-weight:var(--weight-medium);line-height:1.38;color:var(--color-ink-2)}
.day-sheet-title{margin-top:2px;font-size:var(--text-28);font-weight:var(--weight-heavy);line-height:1.2;color:var(--color-ink)}
.day-sheet-title:focus{outline:none}
.day-sheet-close{display:grid;place-items:center;flex:none;width:44px;height:44px;margin:-6px -6px 0 0;border-radius:var(--radius-round);color:var(--color-ink-2)}
.day-legend{margin-bottom:8px;padding:0;font-size:var(--text-16);font-weight:var(--weight-bold);line-height:1.38;color:var(--color-ink-2)}
.day-choices{display:grid;gap:8px}
.day-choice,.day-chip{position:relative;display:block}
.day-choice input,.day-chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.day-choice span,.day-chip span{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 16px;border-radius:var(--radius-14);background:var(--color-page);box-shadow:var(--shadow-edge);font-size:var(--text-16);font-weight:var(--weight-bold);line-height:1.25;color:var(--color-ink);transition-property:background-color,box-shadow;transition-duration:var(--duration-120);transition-timing-function:var(--ease-out)}
.day-choice span::before{content:"";flex:none;width:20px;height:20px;border-radius:var(--radius-round);box-shadow:var(--shadow-radio)}
.day-chip span{display:inline-flex;min-height:44px;border-radius:var(--radius-pill)}
.day-choice input:checked + span,.day-chip input:checked + span{background:var(--color-navy);box-shadow:none;color:var(--color-on-navy)}
.day-choice input:checked + span::before{box-shadow:var(--shadow-radio-on)}
.day-choice input:focus-visible + span,.day-chip input:focus-visible + span{outline:2px solid var(--color-focus);outline-offset:2px}
.day-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.day-sheet-form .control{margin-top:0}
.day-chips + .control{margin-top:12px}
.day-sheet-acts{display:grid;grid-template-columns:1fr 2fr;gap:8px}
@media (hover: hover) and (pointer: fine){
  .day-choice:hover span,.day-chip:hover span{box-shadow:var(--shadow-ring)}
  .day-choice:hover input:checked + span,.day-chip:hover input:checked + span{background:var(--color-navy-2);box-shadow:none}
  .day-sheet-close:hover{background:var(--color-veil)}
}
.day-choice:active span,.day-chip:active span{background:var(--color-press);box-shadow:none}
.day-choice:active input:checked + span,.day-chip:active input:checked + span{background:var(--color-navy-3)}
.day-sheet-close:active{background:var(--color-veil-2)}
.day-toast{position:fixed;z-index:var(--z-toast);left:50%;bottom:calc(var(--tabbar-h) + var(--tabbar-foot) + 14px);display:flex;align-items:center;gap:12px;min-height:48px;max-width:calc(100% - 32px);padding:0 6px 0 16px;border-radius:var(--radius-14);background:var(--color-ink);color:var(--color-on-navy);box-shadow:var(--shadow-toast);font-size:var(--text-15);font-weight:var(--weight-bold);opacity:0;pointer-events:none;transform:translate(-50%, 12px);transition-property:opacity,transform;transition-duration:var(--duration-240);transition-timing-function:var(--ease-out)}
.day-toast[data-on]{opacity:1;pointer-events:auto;transform:translate(-50%, 0)}
.day-toast-undo{min-height:44px;padding:0 12px;border-radius:var(--radius-10);font-size:var(--text-15);font-weight:var(--weight-heavy);color:var(--color-lemon)}
@media (hover: hover) and (pointer: fine){
  .day-toast-undo:hover{background:var(--color-glow)}
}
.day-toast-undo:active{background:var(--color-glow-2)}
@media (min-width: 641px) and (max-width: 767px){
  .day-cols{width:100%;max-width:calc(640px + 2 * var(--gutter));margin-inline:auto}
  .day-sec[data-sec="next"]{border-radius:0;box-shadow:var(--shadow-band-spread);clip-path:inset(0 -100vmax)}
}
@media (min-width: 768px){
  .day-cols{display:grid;grid-template-columns:minmax(0, 1fr) minmax(280px, 0.78fr);column-gap:32px;align-items:start;padding-top:32px}
  .day-cols.is-caught{grid-template-columns:minmax(0, 560px)}
  .day-col{display:flex;flex-direction:column;gap:32px;min-width:0}
  .day-sec[data-sec="next"]{margin:0;padding:20px;border-radius:var(--radius-20)}
  .day-sec[data-sec="next"] .day-sec-h{padding-top:0;border-top:0}
  .day-next-clock{font-size:var(--text-38)}
  .day-toast{bottom:24px}
  .day-sheet{inset:0;margin:auto;width:min(480px, calc(100% - 64px));height:fit-content;border-radius:var(--radius-20)}
  .day-sheet[open]{animation:sheet-pop var(--duration-240) var(--ease-out)}
  .day-sheet-grab{display:none}
  .day-sheet-form{padding:24px}
}
@media (min-width: 1100px){
  .day-cols{grid-template-columns:minmax(0, 1fr) minmax(320px, 360px);column-gap:40px}
  .day-act--wide,.day-row--reply .day-act:not(.day-act--wide){flex:0 0 auto}
}
@media (min-width: 1600px){
  .day-cols{grid-template-columns:minmax(0, 2fr) minmax(0, 1fr)}
  .day-cols > .day-col:first-child{display:block;columns:2;column-gap:40px}
  .day-cols > .day-col:first-child > .day-sec{break-inside:avoid;margin-bottom:32px}
}
@media (display-mode: standalone) and (max-width: 767px){
  .day-toast{bottom:calc(var(--tabbar-h) + max(var(--tabbar-foot), env(safe-area-inset-bottom, 0px)) + 14px)}
}
/* ── style/52-settings.css ── */
.set-state{display:flex;align-items:baseline;gap:10px;font-size:var(--text-17);line-height:1.45;color:var(--color-ink)}
.set-dot{flex:none;width:10px;height:10px;border-radius:var(--radius-round);background:var(--color-done-mark);translate:0 -1px}
.set-state[data-state="off"] .set-dot{background:var(--color-ink-3)}
.set-state[data-state="held"] .set-dot{background:var(--color-soon-mark)}
.set-state[data-state="bad"] .set-dot{background:var(--color-urgent-mark)}
.set-state + .btn,.set-state + .set-error + .btn{margin-top:14px}
.set-go{margin-top:14px}
.set-error{margin-top:10px;font-size:var(--text-15);font-weight:var(--weight-bold);color:var(--color-urgent)}
.set-more .picon{flex:none}
.set-signout{display:flex;justify-content:center;margin-bottom:24px}
/* ── style/55-crm.css ── */
.crm-search{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;max-width:46rem}
.crm-qbox{position:relative;display:flex;flex:1 1 12rem;min-width:0}
.crm-qbox input{flex:1;min-width:0;padding-left:40px}
.crm-qicon{position:absolute;left:14px;top:50%;translate:0 -50%;width:18px;height:18px;color:var(--color-ink-3);pointer-events:none}
.crm-search .select{flex:none;max-width:11rem}
.crm-due{white-space:nowrap}
.crm-due.on{color:var(--color-soon);font-weight:var(--weight-bold)}
.crm-cols,.crm-col{display:contents}
.crm-facts{margin:0 0 16px}
.crm-listing{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:10px 14px;background:var(--color-soft);border-radius:var(--radius-14);font-size:var(--text-15)}
.crm-listing-lbl{color:var(--color-ink-2);font-weight:var(--weight-bold);font-size:var(--text-12);text-transform:uppercase;letter-spacing:0.07em}
.crm-listing a{display:inline-flex;align-items:center;gap:6px;color:var(--color-navy);font-weight:var(--weight-bold)}
.crm-listing a .fi{width:0.85em;height:0.85em}
.crm-stages{display:grid;grid-template-columns:repeat(3, 1fr);gap:1px;width:100%;background:var(--color-line);border:1px solid var(--color-line);border-radius:var(--radius-14);overflow:hidden}
.crm-stages > *{border-radius:0!important;border:0!important}
.crm-stages--2{grid-template-columns:repeat(2, 1fr)}
.frow{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:0 10px}
.frow--3{grid-template-columns:repeat(3, minmax(0, 1fr))}
.crm-board{display:flex;gap:10px;overflow-x:auto;align-items:flex-start;padding-bottom:8px}
.crm-bcol{flex:1;min-width:13.5rem;background:var(--color-well);border-radius:var(--radius-20)}
.crm-bhead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px 6px}
.crm-bhead .lbl{display:inline-flex;align-items:center;gap:8px}
.crm-bhead[data-stage] .lbl::before{content:"";width:10px;height:10px;border-radius:var(--radius-round);background:var(--color-stage-lost)}
.crm-bhead[data-stage="new"] .lbl::before{background:var(--color-stage-new)}
.crm-bhead[data-stage="contacted"] .lbl::before{background:var(--color-stage-contacted)}
.crm-bhead[data-stage="showing"] .lbl::before{background:var(--color-stage-showing)}
.crm-bhead[data-stage="offer"] .lbl::before{background:var(--color-stage-offer)}
.crm-bhead[data-stage="closed"] .lbl::before{background:var(--color-stage-closed)}
.crm-bbody{padding:6px 8px 8px;display:flex;flex-direction:column;gap:8px;min-height:3rem}
.crm-bcard{display:block;background:var(--color-page);border-radius:var(--radius-14);padding:12px 14px;color:var(--color-ink);transition-property:box-shadow,background-color;transition-duration:var(--duration-120);transition-timing-function:var(--ease-out)}
.crm-bcard:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.crm-bname{display:block;font-weight:var(--weight-bold);font-size:var(--text-16);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-bmeta{display:block;margin-top:2px;font-size:var(--text-14);color:var(--color-ink-2)}
.crm-bempty{margin:0;padding:8px 6px;font-size:var(--text-14);color:var(--color-ink-3);text-align:center}
@media (hover: hover) and (pointer: fine){
  .crm-bcard:hover{text-decoration:none;box-shadow:var(--shadow-ring)}
}
.crm-bcard:active{background:var(--color-press)}
.crm-note-add{display:flex;gap:8px;align-items:flex-start;padding:14px 18px;border-bottom:1px solid var(--color-line)}
.crm-note-add textarea{flex:1;min-width:0;resize:vertical;line-height:1.45}
.crm-ev{padding:12px 18px;border-bottom:1px solid var(--color-line)}
.crm-ev:last-child{border-bottom:0}
.crm-ev-meta{display:flex;align-items:baseline;gap:8px;font-size:var(--text-13);color:var(--color-ink-3)}
.crm-ev-kind{font-weight:var(--weight-heavy);text-transform:uppercase;letter-spacing:0.06em;color:var(--color-ink-2)}
.crm-ev-kind--enquiry{color:var(--color-navy)}
.crm-ev-kind--system{color:var(--color-ink-3)}
.crm-ev-body{margin-top:4px;font-size:var(--text-16);line-height:1.5;white-space:pre-wrap;overflow-wrap:break-word}
.crm-int{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 18px;border-bottom:1px solid var(--color-line);font-size:var(--text-15)}
.crm-int a,.crm-int > span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-int-add{display:flex;gap:8px;padding:14px 18px}
.crm-int-add .select{flex:1;min-width:0}
.crm-quick{display:flex;flex-direction:column;gap:8px}
.crm-quick-row{display:flex;align-items:center;gap:8px}
.crm-quick-lbl{flex:1;min-width:0;font-size:var(--text-15);color:var(--color-ink-2)}
.crm-danger{text-align:center;margin-top:20px}
@media (min-width: 768px){
  .crm-cols{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:0 28px;align-items:start}
  .crm-col{display:block;min-width:0}
}
@media (min-width: 1360px){
  .crm-bcol{min-width:0}
}
/* ── style/60-listings.css ── */
.lthumb{flex:none;width:68px;height:48px;border-radius:var(--radius-10);object-fit:cover;background:var(--color-soft)}
span.lthumb{display:inline-flex;align-items:center;justify-content:center;color:var(--color-ink-3)}
.lprice{font-weight:var(--weight-bold);color:var(--color-ink)}
.lphoto-main{display:block;width:100%;max-width:22rem;aspect-ratio:16 / 10;object-fit:cover;border-radius:var(--radius-14);background:var(--color-soft)}
div.lphoto-main{display:flex;align-items:center;justify-content:center;color:var(--color-ink-3);font-size:var(--text-15)}
.lphoto-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}
.lphoto-form input[type="file"]{flex:1 1 12rem;min-width:0;font-size:var(--text-15);color:var(--color-ink);height:auto;min-height:44px;padding:6px 8px;border:1px dashed var(--color-edge);border-radius:var(--radius-10);background:none}
.lgallery{display:grid;grid-template-columns:repeat(auto-fill, minmax(7.5rem, 1fr));gap:10px;margin-top:14px}
.lg-item img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--radius-10);background:var(--color-soft)}
.lg-item > div{margin-top:2px;text-align:center}
.lg-item .btn{min-height:32px;font-size:var(--text-14)}
/* ── style/65-foreclosures.css ── */
@media (min-width: 1100px) and (hover: hover) and (pointer: fine){
  .main--cap{height:100svh;padding-bottom:0;overflow:hidden;display:flex;flex-direction:column}
    .main--cap .content{flex:1;min-height:0;display:flex;flex-direction:column;padding-bottom:20px}
  .main--cap .content > *{flex:none}
  .main--cap .content > .panel{flex:0 1 auto;min-height:0;margin-bottom:0}
  .main--cap .panel .table-wrap{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--color-edge) transparent}
  .main--cap thead th{position:sticky;top:0;z-index:var(--z-raised);background:var(--color-page);border-bottom:0;box-shadow:var(--shadow-head-rule)}
}
.fc-photo{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:var(--color-soft)}
.pcap{padding:8px 18px;font-size:var(--text-13);color:var(--color-ink-2);border-bottom:1px solid var(--color-line)}
.fc-tabwrap{overflow-x:auto;scrollbar-width:none;margin-bottom:16px}
.fc-tabwrap::-webkit-scrollbar{display:none}
.spec-strip{display:flex;flex-wrap:wrap;gap:14px 24px;padding:14px 18px;border-bottom:1px solid var(--color-line)}
.spec{display:flex;align-items:center;gap:10px}
.spec .fi{width:20px;height:20px;color:var(--color-navy)}
.spec b{display:block;font-size:var(--text-18);font-weight:var(--weight-heavy);line-height:1.1;letter-spacing:-0.01em;font-variant-numeric:tabular-nums}
.spec span{display:block;font-size:var(--text-12);text-transform:uppercase;letter-spacing:0.07em;color:var(--color-ink-2);font-weight:var(--weight-heavy);margin-top:2px}
.upload{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:14px;padding:24px 16px 22px;border:1.5px dashed var(--color-edge);border-radius:var(--radius-20);background:var(--color-well);text-align:center;cursor:pointer;transition-property:border-color,background-color;transition-duration:var(--duration-120);transition-timing-function:var(--ease-out)}
.upload[data-over],.upload[data-chosen]{border-color:var(--color-navy);background:var(--color-soft)}
.upload:has(.upload-input:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}
.upload-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-bottom:4px;border-radius:var(--radius-round);background:var(--color-page);color:var(--color-navy)}
.upload-icon .fi{width:20px;height:20px}
.upload-text{font-size:var(--text-16);font-weight:var(--weight-bold);color:var(--color-ink);overflow-wrap:anywhere}
.upload-hint{font-size:var(--text-14);color:var(--color-ink-2)}
.upload-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
@media (hover: hover) and (pointer: fine){
  .upload:hover{border-color:var(--color-navy);background-image:linear-gradient(var(--color-veil),var(--color-veil))}
}
.upload:active{background-image:linear-gradient(var(--color-veil-2),var(--color-veil-2))}
.steps{list-style:none;margin:0;padding:0;counter-reset:step;display:flex;flex-direction:column;gap:12px}
.steps li{position:relative;counter-increment:step;padding-left:38px;min-height:26px;font-size:var(--text-16);line-height:1.5;color:var(--color-ink-2)}
.steps li::before{content:counter(step);position:absolute;left:0;top:-1px;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-round);background:var(--color-navy);font-size:var(--text-13);font-weight:var(--weight-heavy);color:var(--color-on-navy)}
.steps b{color:var(--color-ink)}
/* ── style/70-logs.css ── */
.lhead{flex-wrap:wrap;row-gap:6px;background:var(--color-page);border-bottom:1px solid var(--color-line)}
.live-tag{display:inline-flex;align-items:center;gap:6px;margin-right:6px;padding:3px 10px;border-radius:var(--radius-pill);background:var(--color-done-tint);font-size:var(--text-13);font-weight:var(--weight-heavy);color:var(--color-done)}
.live-dot{width:8px;height:8px;border-radius:var(--radius-round);background:var(--color-done-mark)}
.lsep{width:1px;height:24px;background:var(--color-line);margin:0 2px;flex:none}
.fchips{display:flex;gap:6px}
.logbody{flex:1;min-height:0;overflow-y:auto;padding:12px 18px;font-family:var(--font-log);font-size:var(--text-13);line-height:1.6;background:var(--color-well);overflow-wrap:break-word;scrollbar-width:thin;scrollbar-color:var(--color-edge) transparent}
.lhead,.logbody{padding-left:var(--gutter)}
.logbody::-webkit-scrollbar{width:8px}
.logbody::-webkit-scrollbar-thumb{background:var(--color-edge);border-radius:var(--radius-6)}
.logline{margin:0 -8px;padding:0 8px;border-radius:var(--radius-6);color:var(--color-ink-2)}
@media (hover: hover) and (pointer: fine){
  .logline:hover{background:var(--color-veil)}
}
.logline .lts{color:var(--color-ink-3)}
.logline .lsrc{color:var(--color-navy)}
.logline.warn{color:var(--color-soon)}
.logline.error{color:var(--color-urgent)}
.log-source{max-width:18ch}
/* ── style/90-design-system.css ── */
.ds-toc{display:flex;flex-wrap:wrap;gap:4px 14px;margin-bottom:1rem;font-size:var(--text-14);font-weight:var(--weight-bold)}
.ds-tokens{display:grid;grid-template-columns:repeat(auto-fill, minmax(16rem, 1fr));margin:0 -1px -1px 0}
.ds-tokens--text{grid-template-columns:minmax(0, 1fr)}
.ds-token{display:flex;flex-direction:column;gap:0.5rem;min-width:0;padding:0.75rem 0.95rem;border-right:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}
.ds-tokens--text .ds-token{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.3fr);align-items:center;gap:0.4rem 1.5rem}
.ds-token-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.ds-token-name{font-size:var(--text-14);font-weight:var(--weight-bold)}
.ds-token-value{font-size:var(--text-14);color:var(--color-ink-2);overflow-wrap:anywhere}
.ds-token-note{margin-top:4px;font-size:var(--text-14);line-height:1.5;color:var(--color-ink-2)}
.ds-uses{font-size:var(--text-13);color:var(--color-ink-3)}
.ds-uses summary{cursor:pointer;width:max-content;border-radius:var(--radius-6)}
@media (hover: hover) and (pointer: fine){
  .ds-uses summary:hover{background:var(--color-veil)}
}
.ds-uses summary:active{background:var(--color-veil-2)}
.ds-uses p{margin-top:4px;line-height:1.6;overflow-wrap:anywhere}
.ds-swatch{display:block;height:2.6rem;border:1px solid var(--color-line);border-radius:var(--radius-20)}
.ds-sample{display:block;line-height:1.3;color:var(--color-ink)}
.ds-box{display:block;width:4rem;height:2.6rem;border:1px solid var(--color-edge);background:var(--color-page)}
.ds-pair{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:1.9rem;border:1px solid var(--color-line);border-radius:var(--radius-6);font-weight:var(--weight-bold)}
.ctable .ds-wrap{white-space:normal}
.ds-specimens{display:flex;flex-direction:column;gap:1.1rem}
.ds-spec{display:flex;flex-direction:column;gap:0.5rem}
.ds-spec-body{display:flex;flex-wrap:wrap;align-items:center;gap:0.6rem}
.ds-wide{width:100%}
.ds-band{margin-bottom:20px;padding:20px;border-radius:var(--radius-20);background:var(--color-navy)}
.ds-bands{display:grid;gap:16px;margin-bottom:20px}
.ds-bands .band{border-radius:var(--radius-20)}
