
:root {
  color-scheme: light dark;
  --font-sans: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --color-brand: #04384c;
  --color-brand-hover: #0a4d66;
  --color-brand-soft: #e2eef2;
  --color-on-brand: #ffffff;
  --color-accent: #0b7c93;
  --color-focus: #0b7c93;
  --color-bg: #f4f6f7;
  --color-surface: #ffffff;
  --color-surface-sunken: #eaeff1;
  --color-surface-raised: #ffffff;
  --color-scrim: rgb(14 29 36 / .4);
  --color-text: #0e1d24;
  --color-text-muted: #4f626b;
  --color-border: #dbe3e7;
  --color-border-input: #84979f;
  --color-filled-bg: #eef6f8;
  --color-ok-text: #1f6b4a;
  --color-ok-bg: #e6f3ec;
  --color-warn-text: #7a4b00;
  --color-warn-bg: #fcf0d6;
  --color-warn-line: #c98a12;
  --color-danger-text: #a3221b;
  --color-danger-bg: #fce9e7;
  --color-danger-line: #d14a40;
  --color-mark-check-bg: #fff1c9;
  --color-mark-check-text: #6e4300;
  --color-mark-check-line: #c98a12;
  --color-mark-missing-bg: #fde4e1;
  --color-mark-missing-text: #9c1f18;
  --color-mark-missing-line: #d14a40;
  --color-row-editing-bg: #e2eef2;
  --color-row-link-bg: #eef5f7;
  --color-drop-bg: #f8fbfc;
  --shadow-1: 0 1px 2px rgb(4 56 76 / .08);
  --shadow-2: 0 10px 30px rgb(4 56 76 / .16), 0 2px 6px rgb(4 56 76 / .08);
  --shadow-3: 0 16px 40px rgb(4 56 76 / .22), 0 2px 8px rgb(4 56 76 / .10);
  --font-size-xs: 12px;
  --font-size-sm: 13px;
  --font-size-md: 15px;
  --font-size-input: 16px;
  --font-size-output: 16px;
  --font-size-lg: 17px;
  --font-size-xl: 20px;
  --line-height-tight: 1.35;
  --line-height-body: 1.6;
  --line-height-output: 1.85;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-pill: 999px;
  --tap-min: 44px;
  --header-height: 56px;
  --pane-output-width: clamp(320px, 38%, 520px);
  --pane-list-width: clamp(380px, 46%, 680px);
  --duration-fast: 120ms;
  --duration-base: 200ms;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --color-on-accent: #fff;
  --color-header-bg: #04384c; --color-header-text: #fff; --color-header-muted: #bcd4dc;
  --color-header-line: #04384c; --color-header-hover: rgb(255 255 255 / .12); --color-header-focus: #fff;
  --color-dock: #04384c; --color-dock-text: #ffffff; --color-dock-on: #ffffff; --color-dock-on-text: #04384c; --color-dock-focus: #7cc7de;
  --color-logo-ring: rgb(255 255 255 / .30);
  --color-search-bg: #fff; --color-search-line: #84979f;
  --color-yes-bg: #04384c; --color-on-yes: #fff;
  --color-selected-bg: #e2eef2; --color-selected-line: #04384c;
  --color-pending-line: #84979f;
  --color-match-bg: #fff1c9; --color-match-text: #0e1d24;
  --color-sev-strong-bg: #a3221b; --color-on-sev-strong: #fff;
  --color-toast-bg: #0e1d24; --color-toast-text: #fff; --color-toast-action: #7cc7de;
  --color-shelf-badge-bg: #e2eef2; --color-shelf-badge-text: #04384c;
  --cat-teal-bg: #e2eef2; --cat-teal-text: #04384c;
  --cat-rose-bg: #fbe6e3; --cat-rose-text: #8f2a22;
  --cat-amber-bg: #fbefd0; --cat-amber-text: #6b4400;
  --cat-violet-bg: #ece7f8; --cat-violet-text: #4b2f8a;
  --cat-blue-bg: #e1e9fa; --cat-blue-text: #1f3f8f;
  --cat-pink-bg: #fbe5f0; --cat-pink-text: #8a2860;
  --cat-green-bg: #e0f1e4; --cat-green-text: #1d5e36;
  --color-fav: #b7791f; --color-fav-bg: #fff1c9; --color-fav-text: #6e4300; --color-fav-line: #c98a12;
  --color-recent: #3b5bb5;
  --color-done: #2b8558;
  --shadow-strip: 0 6px 16px rgb(4 56 76 / .08);
  --font-size-2xl: 24px; --font-size-result: 28px; --line-height-note: 1.75;
  --space-10: 40px; --radius-control: 10px; --tap-comfort: 52px;
  --duration-feedback: 2400ms;
  --safe-top: env(safe-area-inset-top, 0px); --safe-bottom: env(safe-area-inset-bottom, 0px);
}
@media (prefers-color-scheme: dark) {
  :root {
    --color-brand: #7cc7de;
    --color-brand-hover: #a3dbeb;
    --color-brand-soft: #16323c;
    --color-on-brand: #04222e;
    --color-accent: #5cc8de;
    --color-focus: #5cc8de;
    --color-bg: #000000;
    --color-surface: #1c1c1c;
    --color-surface-sunken: #000000;
    --color-surface-raised: #2c2c2c;
    --color-scrim: rgb(0 0 0 / .55);
    --color-text: #ffffff;
    --color-text-muted: #d4d4d4;
    --color-border: #666666;
    --color-border-input: #a0a0a0;
    --color-filled-bg: #262626;
    --color-ok-text: #74d3a5;
    --color-ok-bg: #10291f;
    --color-warn-text: #f2c46d;
    --color-warn-bg: #2e2411;
    --color-warn-line: #b8862a;
    --color-danger-text: #ff9e93;
    --color-danger-bg: #3a1715;
    --color-danger-line: #e0665c;
    --color-mark-check-bg: #3a2c0c;
    --color-mark-check-text: #ffd27a;
    --color-mark-check-line: #e0a93a;
    --color-mark-missing-bg: #43191a;
    --color-mark-missing-text: #ffb1a8;
    --color-mark-missing-line: #ff8a7e;
    --color-row-editing-bg: #16323c;
    --color-row-link-bg: #262626;
    --color-drop-bg: #0a0a0a;
    --shadow-1: 0 1px 2px rgb(0 0 0 / .5);
    --shadow-2: 0 10px 30px rgb(0 0 0 / .6), 0 2px 6px rgb(0 0 0 / .4);
    --shadow-3: 0 12px 40px rgb(0 0 0 / .7), 0 2px 8px rgb(0 0 0 / .5);
    --color-on-accent: #04222e;
    --color-header-bg: #1c1c1c; --color-header-text: #ffffff; --color-header-muted: #d4d4d4;
    --color-header-line: #666666; --color-header-hover: rgb(255 255 255 / .06); --color-header-focus: #5cc8de;
    --color-dock: #2c2c2c; --color-dock-text: #ffffff; --color-dock-on: #ffffff; --color-dock-on-text: #04222e; --color-dock-focus: #5cc8de;
    --color-logo-ring: rgb(255 255 255 / .10);
    --color-search-bg: #2c2c2c; --color-search-line: #a0a0a0;
    --color-yes-bg: #2a6a80; --color-on-yes: #fff;
    --color-selected-bg: #16323c; --color-selected-line: #7cc7de;
    --color-pending-line: #a0a0a0;
    --color-match-bg: #3a2c0c; --color-match-text: #ffd27a;
    --color-sev-strong-bg: #ff9e93; --color-on-sev-strong: #2b0705;
    --color-toast-bg: #e4edf0; --color-toast-text: #0b1519; --color-toast-action: #0b5e70;
    --color-shelf-badge-bg: #16323c; --color-shelf-badge-text: #a3dbeb;
    --cat-teal-bg: #16323c; --cat-teal-text: #a3dbeb;
    --cat-rose-bg: #3a1f1d; --cat-rose-text: #ffb1a8;
    --cat-amber-bg: #33260f; --cat-amber-text: #f2c46d;
    --cat-violet-bg: #2a2340; --cat-violet-text: #cdbdf5;
    --cat-blue-bg: #1b2a4a; --cat-blue-text: #b3c7f5;
    --cat-pink-bg: #3a1f2f; --cat-pink-text: #f5b5d6;
    --cat-green-bg: #14301f; --cat-green-text: #9fe0b5;
    --color-fav: #f2c46d; --color-fav-bg: #3a2c0c; --color-fav-text: #ffd27a; --color-fav-line: #e0a93a;
    --color-recent: #8fb0ff;
    --color-done: #74d3a5;
    --shadow-strip: 0 6px 16px rgb(0 0 0 / .45);
  }
}
@media (prefers-reduced-motion: reduce) {
  :root { --duration-fast: 0ms; --duration-base: 0ms; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: var(--color-bg); color: var(--color-text); font-family: var(--font-sans); }
[hidden] { display: none !important; }
html:not(.is-ready) .app { visibility: hidden; animation: app-reveal 0s 2s forwards; }
@keyframes app-reveal { to { visibility: visible; } }
.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;font-family:var(--font-sans);font-size:var(--font-size-md);line-height:var(--line-height-body);background:var(--color-bg);color:var(--color-text);-webkit-text-size-adjust:100%;text-size-adjust:100%}
.app__main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}
.app a{color:var(--color-brand)}
.app a:hover{color:var(--color-brand-hover)}
.sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.icon{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.icon--sm{width:14px;height:14px}
.app :focus-visible,.toast :focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}
.app label:has(> input:is([type=radio],[type=checkbox]):focus-visible){outline:3px solid var(--color-focus);outline-offset:2px}
.app label > input:is([type=radio],[type=checkbox]):focus-visible{outline:0}
.app{-webkit-tap-highlight-color:transparent}
.app :is(button,summary,label:has(input[type=radio],input[type=checkbox])){-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.site-header{flex:none;display:flex;align-items:center;gap:var(--space-3);min-height:var(--header-height);padding:calc(var(--space-2) + env(safe-area-inset-top)) calc(var(--space-4) + env(safe-area-inset-right)) var(--space-2) calc(var(--space-4) + env(safe-area-inset-left));background:var(--color-surface);border-bottom:1px solid var(--color-border)}
.site-header__brand{display:flex;align-items:center;gap:var(--space-3);min-width:0}
.site-header__icon{width:32px;height:32px;border-radius:8px;flex:none;display:block}
.site-header__link-icon{width:20px;height:20px;border-radius:5px;flex:none;display:block}
.site-header__name{margin:0;min-width:0;font-size:var(--font-size-lg);font-weight:700;line-height:var(--line-height-tight);color:var(--color-brand);letter-spacing:.02em}
.app .site-header__link{margin-left:auto;display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--tap-min);padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text-muted);text-decoration:none;text-align:right;line-height:1.3}
.site-header__link-short{display:none}
.app .site-header__link:hover{color:var(--color-brand);background:var(--color-surface-sunken)}
body::before{content:"";position:fixed;top:0;left:0;right:0;height:var(--safe-top);background:var(--color-header-bg);z-index:20;pointer-events:none}
.app-header{flex:none;display:flex;align-items:center;gap:10px;min-height:calc(var(--header-height) + var(--safe-top));padding:var(--safe-top) calc(var(--space-4) + env(safe-area-inset-right, 0px)) 0 calc(var(--space-4) + env(safe-area-inset-left, 0px));background:var(--color-header-bg);color:var(--color-header-text);border-bottom:1px solid var(--color-header-line)}
.app-header__brand{display:flex;align-items:center;gap:10px;min-width:0;margin:0}
.app-header__title{font-size:var(--font-size-lg);font-weight:700;letter-spacing:.02em;white-space:nowrap}
.app-logo{display:block;flex:none;box-shadow:0 0 0 1px var(--color-logo-ring)}
.app-header__brand .app-logo{width:30px;height:30px;border-radius:7px}
.app-header__chevron{flex:none}
.app .app-header__back{display:flex;align-items:center;gap:var(--space-2);min-height:var(--tap-min);min-width:0;margin-left:calc(var(--space-2) * -1);padding:0 10px 0 var(--space-1);border-radius:var(--radius-control);color:inherit;text-decoration:none}
.app .app-header__back:hover{color:inherit;background:var(--color-header-hover)}
.app .app-header__back:active{background:var(--color-header-hover)}
.app .app-header__back:focus-visible{outline:3px solid var(--color-header-focus);outline-offset:2px}
.app-header__back .app-logo{width:28px;height:28px;border-radius:6px}
.app-header__back .app-header__title{font-size:var(--font-size-input)}
.toast{position:fixed;left:var(--space-4);right:var(--space-4);bottom:calc(48px + var(--safe-bottom));z-index:30;display:flex;align-items:center;gap:var(--space-3);max-width:480px;min-height:48px;margin:0 auto;padding:2px var(--space-2) 2px var(--space-4);border-radius:var(--radius-md);background:var(--color-toast-bg);color:var(--color-toast-text);font-size:14px;line-height:1.5;box-shadow:var(--shadow-2)}
.toast--off{opacity:0;pointer-events:none}
@media (min-width: 960px){ .toast{bottom:calc(var(--space-6) + var(--safe-bottom))} }
.toast__text{flex:1;min-width:0;padding:var(--space-2) 0;overflow-wrap:anywhere}
.toast .toast__action:focus-visible{outline-color:var(--color-toast-action)}
.toast__action{flex:none;min-height:var(--tap-min);padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-toast-action);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap-min);min-width:var(--tap-min);padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-sm);background:none;color:var(--color-text);font:inherit;font-size:var(--font-size-md);font-weight:600;line-height:1.2;cursor:pointer;white-space:nowrap;transition:background-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}
.btn--primary{background:var(--color-brand);color:var(--color-on-brand)}
.btn--primary:hover{background:var(--color-brand-hover)}
.btn--secondary{background:var(--color-surface);border-color:var(--color-border-input)}
.btn--secondary:hover{background:var(--color-surface-sunken)}
.btn--ghost{color:var(--color-text-muted);font-weight:500}
.btn--ghost:hover{background:var(--color-surface-sunken);color:var(--color-text)}
.btn--danger{background:var(--color-danger-text);color:var(--color-surface)}
.btn:disabled{background:var(--color-surface-sunken);color:var(--color-text-muted);border-color:transparent;cursor:not-allowed}
.btn--ghost:disabled{background:none;opacity:.5}
.btn--primary:not(:disabled):active{background:var(--color-brand-hover)}
.btn--secondary:not(:disabled):active,.btn--ghost:not(:disabled):active{background:var(--color-surface-sunken)}
.app .site-header__link:active{background:var(--color-surface-sunken)}
.btn--lg{min-height:52px;font-size:var(--font-size-lg);padding:0 var(--space-6)}
.count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:var(--radius-pill);background:var(--color-brand-soft);color:var(--color-brand);font-size:var(--font-size-xs);font-weight:700;font-variant-numeric:tabular-nums;line-height:1}
.input{width:100%;min-height:var(--tap-min);padding:0 var(--space-3);border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--font-size-input);line-height:1.4}
.input::placeholder{color:var(--color-text-muted);opacity:1}
.input:hover{border-color:var(--color-text-muted)}
.input:disabled{background:var(--color-surface-sunken);border-color:var(--color-border)}
.app .input:focus-visible{outline:3px solid var(--color-focus);outline-offset:0;border-color:var(--color-focus)}
textarea.input{padding:var(--space-2) var(--space-3);line-height:var(--line-height-body);resize:vertical}
.field-label{font-size:var(--font-size-sm);font-weight:700}
.copy-wrap{position:relative}
.copy-status{position:absolute;right:0;bottom:calc(100% + var(--space-2));display:inline-flex;align-items:center;gap:var(--space-1);margin:0;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--color-text);color:var(--color-bg);font-size:var(--font-size-sm);font-weight:700;white-space:nowrap;pointer-events:none;transition:opacity var(--duration-base) var(--ease)}
.copy-status[data-on=false]{opacity:0}
@media (max-width: 479.98px) {
  .site-header__link-long{display:none}
  .site-header__link-short{display:inline}
}
@media (min-width: 768px) {
  .app{height:100vh;height:100dvh}
  .app__main{overflow:auto}
}
main.index{--pad-l:calc(var(--space-4) + env(safe-area-inset-left, 0px));--pad-r:calc(var(--space-4) + env(safe-area-inset-right, 0px));display:flex;flex-direction:column;gap:var(--space-5);width:100%;max-width:none;min-width:0;margin:0;padding:var(--space-4) var(--pad-r) calc(var(--space-6) + var(--space-1) + var(--safe-bottom)) var(--pad-l)}
.index a{color:var(--color-text);text-decoration:none}
.index a:hover{color:var(--color-text)}
.index ul{margin:0;padding:0;list-style:none}
.name-head{font-weight:700}
.index-top{display:contents}
.index-bar{position:fixed;left:max(16px,env(safe-area-inset-left, 0px));right:max(16px,env(safe-area-inset-right, 0px));bottom:max(6px,env(safe-area-inset-bottom, 0px));z-index:20;display:flex;gap:8px}
.tabs{flex:1 1 0;min-width:0;display:flex;height:48px;border-radius:24px;background:var(--color-dock);box-shadow:var(--shadow-2)}
.tab{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:5px;height:48px;margin:0;padding:4px;border:0;border-radius:24px;background:transparent;color:var(--color-dock-text);font:inherit;font-size:13px;font-weight:700;line-height:1;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent}
.tab[aria-selected=true]{background:var(--color-dock-on);background-clip:content-box;color:var(--color-dock-on-text)}
.tab:focus-visible{outline:3px solid var(--color-dock-focus);outline-offset:-3px}
.tab__icon{flex:none;width:20px;height:20px}
.tab[aria-selected=true] .tab__icon{fill:currentColor}
.tab[aria-selected=true] .tab__lines{stroke:var(--color-dock-on)}
.tab__lb{min-width:0;overflow:hidden;text-overflow:ellipsis}
.search-fab{flex:none;display:grid;place-items:center;width:48px;height:48px;margin:0;padding:0;border:0;border-radius:50%;background:var(--color-dock);color:var(--color-dock-text);box-shadow:var(--shadow-2);cursor:pointer;-webkit-tap-highlight-color:transparent}
.search-fab svg{width:22px;height:22px}
.search-fab:focus-visible{outline:3px solid var(--color-dock-focus);outline-offset:-3px}
.search-close{flex:none;height:44px;margin:0;padding:0 10px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--color-brand);font:inherit;font-size:14px;font-weight:700;white-space:nowrap;cursor:pointer}
.tabpanel[data-panel="favs"]>*+*{margin-top:var(--space-5)}
@media (max-width: 959.98px) {
  main.index{padding-bottom:calc(max(6px, var(--safe-bottom)) + 48px + 24px)}
  body[data-page="index"] .toast{bottom:calc(max(6px, var(--safe-bottom)) + 48px + 12px)}
  :root:has(body[data-page="index"]){scroll-padding-bottom:calc(max(6px, var(--safe-bottom)) + 48px + 12px)}
  main:not([data-search-open]) .intro{display:none}
  main[data-search-open] .intro{display:flex;flex-direction:row;align-items:center;gap:4px;position:sticky;top:0;z-index:10;margin:calc(var(--space-4) * -1) calc(var(--pad-r) * -1) 0 calc(var(--pad-l) * -1);padding:12px calc(var(--pad-r) - 8px) 12px var(--pad-l);background:var(--color-bg)}
  main[data-search-open] .search{flex:1 1 0;min-width:0;max-width:none}
  main[data-search-open]>.tabpanel,main[data-search-open] .index-bar{display:none}
  main:not([data-search-open])>[data-recent]{display:none}
  main[data-typing] .index-bar{display:none}
  .search-results>li{scroll-margin-top:72px}
  main[data-search-open] a,main[data-search-open] .fav-star{scroll-margin-top:84px}
}
.intro{display:flex;flex-direction:column;gap:var(--space-2)}
.search,.cat-search{position:relative;max-width:640px}
.search__icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}
.search__input,.cat-search__input{display:block;width:100%;margin:0;border:1.5px solid var(--color-search-line);background:var(--color-search-bg);color:var(--color-text);font:inherit;font-size:var(--font-size-input);line-height:1.4;-webkit-appearance:none;appearance:none}
.search__input{height:48px;padding:0 52px 0 42px;border-radius:var(--radius-md)}
.search__input::placeholder,.cat-search__input::placeholder{color:var(--color-text-muted);opacity:1}
.search__input::-webkit-search-cancel-button,.search__input::-webkit-search-decoration,.cat-search__input::-webkit-search-cancel-button,.cat-search__input::-webkit-search-decoration{-webkit-appearance:none;appearance:none;display:none}
.app .search__input:focus-visible,.app .cat-search__input:focus-visible{outline:3px solid var(--color-focus);outline-offset:0;border-color:var(--color-focus)}
.search__clear{position:absolute;top:2px;right:var(--space-1);display:grid;place-items:center;width:var(--tap-min);height:var(--tap-min);padding:0;border:0;border-radius:var(--radius-control);background:transparent;color:var(--color-text-muted);cursor:pointer}
.search__clear:hover,.search__clear:active{background:var(--color-surface-sunken);color:var(--color-text)}
.home{display:flex;flex-direction:column;gap:var(--space-5)}
.shelf__title{display:flex;align-items:center;gap:6px;margin:0 0 10px;font-size:var(--font-size-md);font-weight:700;color:var(--color-text)}
.shelf--favs .shelf__title svg{color:var(--color-fav)}
.shelf--recent .shelf__title svg{color:var(--color-recent)}
.shelf__icon{flex:none}
.shelf--favs .shelf__icon{color:var(--color-brand)}
.shelf--recent .shelf__icon{color:var(--color-text-muted)}
.shelf__head{display:flex;align-items:baseline;gap:var(--space-2);margin:0 0 10px}
.shelf__head .shelf__title{margin:0}
.shelf__hint{font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-muted)}
.shelf__count{font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-muted);font-variant-numeric:tabular-nums}
.shelf__empty{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--space-3);max-width:560px;padding:var(--space-3) 14px;border:1.5px dashed var(--color-border-input);border-radius:var(--radius-md);background:var(--color-drop-bg)}
.shelf__sample{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 var(--space-3);border:1.5px solid var(--color-border-input);border-radius:var(--radius-control);background:var(--color-surface);font-size:var(--font-size-sm);font-weight:700;color:var(--color-text)}
.shelf__empty-text{margin:0;font-size:var(--font-size-sm);line-height:1.5}
.shelf__open{grid-column:1 / -1;justify-self:start;display:inline-flex;align-items:center;min-height:var(--tap-min);padding:0 14px;border:1.5px solid var(--color-border-input);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-accent);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.shelf__open:hover,.shelf__open:active{background:var(--color-surface-sunken)}
.index .fav-rows{margin:0;padding:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px}
.fav-row{display:flex;align-items:stretch;height:52px;border-bottom:1px solid var(--color-border);background:var(--color-surface)}
.fav-row:first-child{border-radius:11px 11px 0 0}
.fav-row:last-child{border-bottom:0;border-radius:0 0 11px 11px}
.fav-row:only-child{border-radius:11px}
.fav-row__link{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:12px;padding:0 12px;border-radius:inherit}
.fav-row__link:hover{color:var(--color-text)}
.fav-row__link:active{background:var(--color-surface-sunken)}
.fav-row__link:focus-visible{outline-offset:-3px}
.fav-row__badge{width:28px;height:28px;border-radius:8px;font-size:14px}
.fav-row__name{flex:1 1 0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px;line-height:1.35}
.fav-handle{flex:none;width:48px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--color-text-muted);touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.fav-row:last-child .fav-handle{border-bottom-right-radius:11px}
.fav-row:first-child .fav-handle{border-top-right-radius:11px}
.fav-rows.is-sorting{user-select:none;-webkit-user-select:none}
.fav-row.is-lifted{position:relative;z-index:25;box-shadow:var(--shadow-2);cursor:grabbing}
.fav-rows.is-sorting .fav-handle{cursor:grabbing}
@media (prefers-reduced-motion: no-preference){ .fav-rows.is-sorting .fav-row:not(.is-lifted){transition:transform .15s} }
.fav-handle:active{background:var(--color-surface-sunken)}
.fav-row .fav-star{width:48px;height:auto;margin:0;border-radius:0}
.fav-row:first-child .fav-star{border-top-right-radius:11px}
.fav-row:last-child .fav-star{border-bottom-right-radius:11px}
.fav-menu{position:fixed;inset:auto 0 0 0;margin:0;width:100%;max-width:none;max-height:100dvh;border:0;border-radius:16px 16px 0 0;background:var(--color-surface);color:var(--color-text);padding:8px calc(8px + env(safe-area-inset-right, 0px)) calc(8px + max(26px,var(--safe-bottom))) calc(8px + env(safe-area-inset-left, 0px))}
.fav-menu::backdrop{background:rgb(14 29 36 / .4)}
@media (prefers-color-scheme: dark){ .fav-menu::backdrop{background:rgb(0 0 0 / .55)} }
.fav-menu__title{margin:0;padding:10px 12px 8px;font-size:13px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fav-menu button{display:flex;align-items:center;gap:12px;width:100%;height:52px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:inherit;font:inherit;font-size:15px;text-align:left;cursor:pointer}
.fav-menu button:active{background:var(--color-surface-sunken)}
.fav-menu button:disabled{color:var(--color-text-muted);opacity:.45;cursor:default}
@media (min-width: 960px) {
  .fav-menu{position:fixed;inset:0;margin:auto;width:360px;max-width:calc(100vw - 32px);height:fit-content;max-height:calc(100dvh - 32px);overflow-y:auto;border-radius:16px;padding:8px}
}
@media (hover: hover) {
  .fav-menu button:hover:not(:disabled){background:var(--color-surface-sunken)}
}
body[data-page="index"]:has(> .toast:not(.toast--off)) :is(.fav-handle, .fav-star){scroll-margin-bottom:calc(var(--toast-h, 64px) + 8px)}
@media (min-width: 960px) {
  body[data-page="index"]:has(> .toast:not(.toast--off)) :is(.fav-handle, .fav-star){scroll-margin-bottom:calc(var(--toast-h, 64px) + var(--space-6) + 8px)}
}
@media print {
  .index-bar,.search-close,.fav-handle,.fav-star,.fav-menu,.toast{display:none!important}
}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,140px),1fr));gap:6px}
.tiles>li{display:flex;min-width:0}
.tile{flex:1;min-width:0;display:flex;align-items:center;gap:8px;min-height:48px;padding:var(--space-1) 10px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text)}
.tile:hover,.tile-mini:hover{border-color:var(--color-border-input)}
[data-fam="teal"]{--fam-bg:var(--cat-teal-bg);--fam-text:var(--cat-teal-text)}
[data-fam="rose"]{--fam-bg:var(--cat-rose-bg);--fam-text:var(--cat-rose-text)}
[data-fam="amber"]{--fam-bg:var(--cat-amber-bg);--fam-text:var(--cat-amber-text)}
[data-fam="violet"]{--fam-bg:var(--cat-violet-bg);--fam-text:var(--cat-violet-text)}
[data-fam="blue"]{--fam-bg:var(--cat-blue-bg);--fam-text:var(--cat-blue-text)}
[data-fam="pink"]{--fam-bg:var(--cat-pink-bg);--fam-text:var(--cat-pink-text)}
[data-fam="green"]{--fam-bg:var(--cat-green-bg);--fam-text:var(--cat-green-text)}
.fav-row__badge,.tile__badge,.cat-nav__badge,.tile-mini__badge,.calc-row__badge{display:grid;place-items:center;flex:none;background:var(--fam-bg,var(--color-shelf-badge-bg));color:var(--fam-text,var(--color-shelf-badge-text));font-weight:700}
.tile__badge{width:24px;height:24px;border-radius:7px;font-size:var(--font-size-sm)}
.tile__count{margin-left:auto;font-size:var(--font-size-xs);line-height:1.3;color:var(--color-text-muted);font-variant-numeric:tabular-nums}
.tile__name{flex:0 1 auto;min-width:0;font-size:var(--font-size-sm);font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.cat-nav{display:none}
.cat-views{min-width:0}
.cat-view{display:flex;flex-direction:column;gap:14px;min-width:0}
.cat-view__back{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--tap-min);margin:calc(var(--space-2) * -1) 0 -6px calc(var(--space-2) * -1);padding:0 10px 0 var(--space-1);border:0;border-radius:var(--radius-control);background:transparent;color:var(--color-accent);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.cat-view__back:hover,.cat-view__back:active{background:var(--color-surface-sunken)}
.cat-view__head{display:flex;align-items:baseline;gap:var(--space-3);min-width:0}
.fav-star{flex:none;display:grid;place-items:center;width:var(--tap-min);height:var(--tap-min);margin:2px 2px 0 0;padding:0;border:0;border-radius:var(--radius-control);background:transparent;color:var(--color-text-muted);cursor:pointer}
.fav-star:hover{background:var(--color-surface-sunken)}
.fav-star svg{width:20px;height:20px}
.fav-star[aria-pressed=true]{color:var(--color-fav)}
.fav-star[aria-pressed=true] svg{fill:currentColor}
.cat-view__title{min-width:0;margin:0;font-size:22px;font-weight:700;line-height:var(--line-height-tight);color:var(--color-text);overflow-wrap:anywhere}
.cat-view__count{flex:none;font-size:14px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}
.cat-search{max-width:none}
.cat-search .search__icon{left:var(--space-3);width:18px;height:18px}
.cat-search__input{height:var(--tap-min);padding:0 var(--space-3) 0 38px;border-radius:var(--radius-control)}
.type-filter{position:relative;display:flex;gap:6px;margin:calc(var(--space-2) * -1) calc(var(--pad-r) * -1) calc(var(--space-2) * -1) calc(var(--pad-l) * -1);padding:var(--space-2) var(--pad-r) var(--space-2) var(--pad-l);overflow-x:auto;scrollbar-width:none;scroll-padding-inline:var(--pad-l)}
.type-filter::-webkit-scrollbar{display:none}
.type-filter__btn{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:var(--tap-min);padding:0 14px;border:1.5px solid var(--color-border-input);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:14px;font-weight:700;white-space:nowrap;cursor:pointer}
.type-filter__btn:hover{background:var(--color-surface-sunken)}
.type-filter__btn[aria-pressed=true]{background:var(--color-brand);border-color:var(--color-brand);color:var(--color-on-brand)}
.type-filter__n{font-size:var(--font-size-xs);font-weight:500;font-variant-numeric:tabular-nums}
.cat-view__zero{margin:0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--font-size-md);font-weight:700;line-height:1.6;text-wrap:pretty}
.calc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}
.calc-list:not(:has(> li:not([hidden]))){display:none}
.calc-list>li{display:flex;min-width:0;margin:-1px 0 0 -1px;border-top:1px solid var(--color-border);border-left:1px solid var(--color-border)}
.calc-row{flex:1;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--space-3);row-gap:2px;align-items:start;padding:11px var(--space-4) var(--space-3);color:var(--color-text)}
.calc-row:hover{background:var(--color-row-link-bg)}
.calc-row:focus-visible{outline-offset:-2px}
.calc-row__name{font-size:var(--font-size-md);line-height:1.45;overflow-wrap:anywhere}
.calc-row__meta{display:flex;gap:var(--space-1);padding-top:2px}
.calc-row__sub{grid-column:1 / -1;font-size:var(--font-size-sm);line-height:1.55;color:var(--color-text-muted);text-wrap:pretty;overflow-wrap:anywhere}
.tag{padding:0 6px;border-radius:5px;font-size:var(--font-size-xs);white-space:nowrap}
.tag--old{font-weight:700;line-height:18px;background:var(--color-warn-bg);color:var(--color-warn-text)}
.tag--type{border:1px solid var(--color-border);font-weight:600;line-height:16px;color:var(--color-text-muted)}
.calc-list mark{border-radius:3px;background:var(--color-match-bg);color:var(--color-match-text);font-weight:700}
main[data-searching]>.tabpanel{display:none}
.search-count{margin:0 0 -10px;font-size:var(--font-size-sm);color:var(--color-text-muted)}
.search-count:empty{margin-bottom:calc(var(--space-5) * -1)}
.search-results{grid-template-columns:minmax(0,1fr);max-width:760px}
.calc-row--hit{grid-template-columns:auto minmax(0,1fr) auto;padding:var(--space-3) var(--space-4)}
.calc-row--hit .calc-row__badge{grid-column:1;grid-row:1 / span 3;width:30px;height:30px;border-radius:var(--radius-sm);font-size:14px}
.calc-row--hit .calc-row__name{grid-column:2;grid-row:1;font-size:var(--font-size-input)}
.calc-row--hit .calc-row__meta{grid-column:3;grid-row:1}
.calc-row--hit .calc-row__sub{grid-column:2 / -1;grid-row:2}
.calc-row__cats{grid-column:2 / -1;grid-row:3;font-size:var(--font-size-xs);color:var(--color-text-muted);overflow-wrap:anywhere}
.search-results>li[data-active]>.calc-row{background:var(--color-row-link-bg)}
.search-results>li[aria-selected=true]>.calc-row{outline:2px solid var(--color-focus);outline-offset:-2px}
.search-empty{display:flex;flex-direction:column;gap:14px;max-width:760px}
.search-empty__msg{margin:0;padding:18px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface);font-size:var(--font-size-input);font-weight:700;line-height:1.6;text-wrap:pretty}
.search-empty__lead{margin:6px 0 0;font-size:14px;font-weight:700;color:var(--color-text-muted)}
.tiles--mini{grid-template-columns:repeat(auto-fill,minmax(min(100%,152px),1fr));gap:var(--space-2)}
.tile-mini{flex:1;min-width:0;display:flex;align-items:center;gap:10px;min-height:var(--tap-comfort);padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text)}
.tile-mini__badge{width:32px;height:32px;border-radius:var(--radius-sm);font-size:var(--font-size-md)}
.tile-mini__name{min-width:0;font-size:14px;font-weight:700;overflow-wrap:anywhere}
@media (min-width: 960px) {
  main.index{--pad-l:calc(var(--space-8) + env(safe-area-inset-left, 0px));--pad-r:calc(var(--space-8) + env(safe-area-inset-right, 0px));max-width:1120px;margin:0 auto;padding-top:28px;padding-bottom:calc(var(--space-10) + var(--safe-bottom))}
  .index-top{display:flex;align-items:center;gap:var(--space-4);position:sticky;top:0;z-index:10;padding-block:var(--space-3);margin-block:calc(var(--space-3) * -1);background:var(--color-bg);box-shadow:0 1px 0 var(--color-border)}
  :root:has(body[data-page="index"]){scroll-padding-top:calc(var(--index-top-h, 0px) + var(--space-3))}
  .index-top .intro{flex:1 1 0;min-width:0}
  .index-bar{position:static;width:320px;flex:none}
  .search-fab,.search-close{display:none}
  .shelf--favs .fav-rows,.shelf--favs .shelf__empty{max-width:720px}
  .cat-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--space-6);align-items:start}
  .cat-nav{display:block;position:sticky;top:calc(var(--index-top-h, 0px) + var(--space-4));max-height:calc(100vh - var(--index-top-h, 0px) - var(--space-4) - var(--space-10));max-height:calc(100dvh - var(--index-top-h, 0px) - var(--space-4) - var(--space-10));padding:var(--space-2);overflow-y:auto;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface)}
  .cat-nav ul{display:flex;flex-direction:column;gap:2px}
  main.index[data-cat-search-active]{display:grid;grid-template-columns:240px minmax(0,1fr);grid-template-rows:auto auto auto auto minmax(0,1fr);column-gap:var(--space-6);row-gap:var(--space-5);align-items:start}
  main.index[data-cat-search-active] > .index-top{grid-column:1 / -1}
  main.index[data-cat-search-active] > .tabpanel,main.index[data-cat-search-active] .cat-layout{display:contents}
  main.index[data-cat-search-active] .cat-nav{grid-column:1;grid-row:2 / -1}
  main.index[data-cat-search-active] .cat-views,main.index[data-cat-search-active] > .search-count,main.index[data-cat-search-active] > .search-results{grid-column:2}
  main.index[data-cat-search-active] .cat-views{grid-row:2}
  main.index[data-cat-search-active] > .search-count{grid-row:3}
  main.index[data-cat-search-active] > .search-results{grid-row:4;width:100%}
  .cat-nav a{display:flex;align-items:center;gap:10px;min-height:var(--tap-min);padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:500}
  .cat-nav a:hover{background:var(--color-row-link-bg)}
  .cat-nav a[aria-current=page]{background:var(--color-brand-soft);color:var(--color-brand);font-weight:700}
  .cat-nav__badge{width:26px;height:26px;border-radius:7px;font-size:var(--font-size-sm)}
  .cat-nav__name{flex:1;min-width:0}
  .cat-nav__count{font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-muted);font-variant-numeric:tabular-nums}
  .cat-nav a[aria-current=page] .cat-nav__count{color:inherit}
  .type-filter{margin-inline:calc(var(--space-2) * -1);padding-inline:var(--space-2);scroll-padding-inline:var(--space-2)}
}
@media print {
  .index-top{position:static}
}
@media (scripting: none) {
  .cat-view + .cat-view{margin-top:var(--space-10)}
}
@media (scripting: none) and (min-width: 960px) {
  .app .cat-layout[data-cat-layout]{display:grid!important}
}
body[data-page="calc"] .app{height:auto}
.calc{--pad-l:calc(var(--space-4) + env(safe-area-inset-left, 0px));--pad-r:calc(var(--space-4) + env(safe-area-inset-right, 0px));display:flex;flex-direction:column;gap:22px;width:100%;max-width:720px;margin:0 auto;padding:14px var(--pad-r) calc(var(--space-6) + var(--safe-bottom)) var(--pad-l)}
.calc > *{min-width:0}
.calc__main{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}
.line-slot{margin:0}
.calc-head{display:flex;align-items:flex-start;gap:var(--space-3)}
.calc-head__text{flex:1;min-width:0}
.calc-head__title{margin:0;font-size:var(--font-size-xl);font-weight:400;line-height:var(--line-height-tight);color:var(--color-text);overflow-wrap:anywhere}
.calc-head__head{font-weight:700}
.calc-head__sub{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);line-height:var(--line-height-body);color:var(--color-text-muted);text-wrap:pretty}
.fav-btn{flex:none;display:inline-flex;align-items:center;gap:5px;min-height:var(--tap-min);margin-top:calc(var(--space-1) * -1);padding:0 10px;border:1.5px solid var(--color-border-input);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);font-weight:700;cursor:pointer;transition:background-color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}
.fav-btn[aria-pressed="true"]{border-color:var(--color-fav-line);background:var(--color-fav-bg);color:var(--color-fav-text)}
.fav-btn .icon,.fav-btn svg{flex:none}
.calc-old{display:flex;align-items:flex-start;gap:10px;margin:0;padding:var(--space-3) 14px;border:1.5px solid var(--color-warn-line);border-radius:var(--radius-md);background:var(--color-warn-bg);color:var(--color-warn-text);font-size:14px;line-height:var(--line-height-body);font-weight:700}
.calc-old svg{flex:none;width:20px;height:20px;margin-top:2px}
.app .calc-old a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.result-strip{position:sticky;top:var(--safe-top);z-index:4;max-height:40vh;max-height:40dvh;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:var(--space-2);margin:0 calc(var(--pad-r) * -1) 0 calc(var(--pad-l) * -1);padding:6px var(--pad-r) var(--space-2) var(--pad-l);background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-strip)}
.result-strip > *{flex-shrink:0}
.result-strip__main{display:flex;align-items:flex-start;gap:var(--space-2)}
.result{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}
.result__line{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;min-height:var(--tap-min)}
.result__label{flex:0 1 auto;max-width:55%;overflow-wrap:break-word;font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-muted)}
.result__line:not(.result__line--solo) > .result__label{min-width:2.8em}
.result__line--solo > .result__label{flex-shrink:0}
.result__body{flex:1 1 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px var(--space-3);min-width:min-content}
.result__figure{display:inline-flex;align-items:center;gap:3px;max-width:100%;white-space:nowrap}
.result__figure--long{white-space:normal}
.result__line--long > .result__body,.result__line--stack > .result__body{flex-basis:100%}
.result__line--long > .result__label,.result__line--stack > .result__label{max-width:100%}
.result__value{white-space:nowrap}
.result__figure--long .result__value,.result__value--long{white-space:normal;overflow-wrap:anywhere}
.result__breakdown{font-size:var(--font-size-xl);font-weight:700;line-height:1.3;color:var(--color-text-muted);white-space:nowrap}
.result__group{margin-top:var(--space-2);font-size:var(--font-size-sm);font-weight:800;line-height:1.4;color:var(--color-text)}
.result > .result__group:first-child{margin-top:0}
.result__value{min-width:0;font-size:var(--font-size-2xl);font-weight:800;line-height:1;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--color-text)}
.result__unit{font-size:var(--font-size-sm);font-weight:700;color:var(--color-text)}
.result__gamma{font-size:var(--font-size-xl);font-weight:800}
.result__gamma-sub{margin-left:2px;font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-muted)}
.result__line--solo .result__gamma{font-size:28px}
.result__verdict{padding:3px 10px;border-radius:var(--radius-control);background:var(--color-brand-soft);color:var(--color-brand);font-size:14px;font-weight:800;line-height:1.3;overflow-wrap:anywhere}
.result__detail{font-size:var(--font-size-sm);color:var(--color-text-muted)}
.result__line--solo .result__value{font-size:40px}
.result__line--solo .result__unit{font-size:var(--font-size-input)}
.result__line--solo .result__verdict{padding:5px var(--space-3);font-size:18px}
.result__line--solo .result__verdict--long{padding:5px 8px;font-size:14px}
.result__pending{font-size:var(--font-size-xl);font-weight:700;line-height:1.3;color:var(--color-text-muted);cursor:pointer}
.result__pending--note{font-size:var(--font-size-md);line-height:1.4}
.result__error{font-size:14px;font-weight:700;line-height:1.4;color:var(--color-danger-text)}
.result__warn{display:flex;align-items:flex-start;gap:6px;margin:0;font-size:var(--font-size-sm);font-weight:700;line-height:1.5;color:var(--color-warn-text)}
.result__warn svg{flex:none;margin-top:1px}
.copy-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:var(--tap-min);height:var(--tap-min);margin-right:-10px;padding:0 10px;border:0;border-radius:var(--radius-control);background:transparent;color:var(--color-accent);font:inherit;font-size:var(--font-size-xs);font-weight:700;white-space:nowrap;cursor:pointer;transition:background-color var(--duration-fast) var(--ease)}
.copy-btn:hover{background:var(--color-surface-sunken)}
.copy-btn:disabled{visibility:hidden}
.copy-btn[data-state="ok"]{color:var(--color-ok-text)}
.copy-btn[data-state="fail"]{color:var(--color-danger-text)}
.result-strip__more{position:sticky;bottom:0;z-index:2;height:0;margin:0;overflow:visible;pointer-events:none}
.result-strip__more[hidden]{display:none}
.result-strip__more > span{position:absolute;right:0;bottom:2px;padding:2px 10px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);box-shadow:var(--shadow-strip);font-size:var(--font-size-xs);font-weight:700;line-height:1.5;color:var(--color-text-muted);white-space:nowrap}
.result-strip__status{position:sticky;bottom:0;z-index:1;margin:0;background:var(--color-surface);font-size:var(--font-size-sm);font-weight:700;line-height:var(--line-height-body)}
.result-strip__status:has([data-copy-status]:empty){display:none}
.result-strip:has(.copy-btn[data-state="ok"]) [data-copy-status]{color:var(--color-ok-text)}
.result-strip:has(.copy-btn[data-state="fail"]) [data-copy-status]{color:var(--color-danger-text)}
.copy-record{display:block;margin-top:var(--space-1);font-weight:600;color:var(--color-text);max-height:calc(40vh - 4.5rem);max-height:calc(40dvh - 4.5rem);overflow-y:auto;overscroll-behavior:contain}
.item-map{position:relative;display:flex;gap:var(--space-1);margin:-7px -6px;padding:7px 6px;list-style:none;overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent)}
.item-map::-webkit-scrollbar{display:none}
.item-map > li{flex:none}
.item-map button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-width:40px;min-height:30px;padding:0 9px;border:1px dashed var(--color-pending-line);border-radius:7px;background:transparent;color:var(--color-text-muted);font:inherit;font-size:var(--font-size-xs);font-weight:700;white-space:nowrap;cursor:pointer}
.item-map button::before{content:"";position:absolute;top:-8px;bottom:-8px;left:-3px;right:-3px}
.item-map [data-state="done"] button{border-color:transparent;border-style:solid;background:var(--color-ok-bg);color:var(--color-ok-text)}
.item-map [data-state="error"] button{border-style:solid;border-color:var(--color-danger-line);background:var(--color-danger-bg);color:var(--color-danger-text)}
.item-map [data-state="skipped"] button{border-style:solid;border-color:var(--color-mark-check-line);background:var(--color-mark-check-bg);color:var(--color-mark-check-text)}
.calc-form{display:flex;flex-direction:column;margin:0}
.calc-form > .calc-section{margin-top:14px}
.calc-form > button[hidden] + .calc-section{margin-top:0}
.calc-section{display:flex;flex-direction:column}
.calc-section__head{display:flex;align-items:center;gap:10px;padding:var(--space-1) 0 var(--space-2)}
.calc-section__title{margin:0;font-size:14px;font-weight:700;letter-spacing:.02em;color:var(--color-brand)}
.calc-section__count{margin-left:auto;padding:1px var(--space-2);border-radius:var(--radius-pill);background:var(--color-surface-sunken);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700;font-variant-numeric:tabular-nums}
.calc-section__count[data-state="complete"]{background:var(--color-ok-bg);color:var(--color-ok-text)}
.field{min-width:0;margin:0;padding:var(--space-2) 0;border:0;border-top:1px solid var(--color-border)}
.field__line{display:flex;flex-wrap:wrap;align-items:center;gap:6px var(--space-3)}
.field__head{flex:1 1 150px;min-width:0;display:flex;align-items:flex-start;gap:var(--space-2);margin:0;padding:0}
.field--row .field__head{flex-basis:min(var(--label-basis, 150px), 100%)}
.field__label{flex:0 1 auto;min-width:0;display:block;margin:0;padding:0;font-size:var(--font-size-md);font-weight:600;line-height:1.45;color:var(--color-text);overflow-wrap:anywhere;text-wrap:pretty}
.field--row .field__label{flex:1 1 auto}
.field__optional{margin-left:var(--space-1);font-size:var(--font-size-sm);font-weight:400;color:var(--color-text-muted)}
.field__range{flex:none;align-self:baseline;font-size:var(--font-size-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}
.field__flag{flex:none;padding:1px 7px;border:1px solid var(--color-mark-check-line);border-radius:6px;background:var(--color-mark-check-bg);color:var(--color-mark-check-text);font-size:var(--font-size-xs);font-weight:700;line-height:18px}
.field__hint{margin:6px 0 0 26px;font-size:var(--font-size-sm);line-height:var(--line-height-body);font-weight:400;color:var(--color-text-muted)}
.field > legend.field__head{float:left;width:100%}
.field__status{flex:none;display:grid;place-items:center;width:18px;height:18px;margin-top:2px;border:2px dashed var(--color-pending-line);border-radius:50%;background:transparent}
.field[data-state="pending"] .field__status::after,.field[data-state="skipped"] .field__status::after{content:attr(data-no);font-size:10px;font-weight:700;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}
.field[data-state="skipped"] .field__status::after{color:var(--color-mark-check-text)}
.field[data-state="done"] .field__status{border:2px solid var(--color-done);background:var(--color-done)}
.field[data-state="done"] .field__status::after{content:"";width:4px;height:8px;border:solid var(--color-on-accent);border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}
.field[data-state="error"] .field__status{border:2px solid var(--color-danger-line);background:var(--color-danger-line)}
.field[data-state="error"] .field__status::after{content:"";width:2px;height:9px;background:linear-gradient(var(--color-on-accent),var(--color-on-accent)) top/100% 5px no-repeat,linear-gradient(var(--color-on-accent),var(--color-on-accent)) bottom/100% 2px no-repeat}
.field[data-state="skipped"] .field__status{border:2px solid var(--color-mark-check-line);background:var(--color-mark-check-bg)}
.seg__opt > input,.choice__opt > input,.pick__opt > input,.check > input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.seg{display:flex;flex-wrap:nowrap;max-width:100%;margin-left:auto;border:1.5px solid var(--color-border-input);border-radius:var(--radius-control);background:var(--color-surface)}
.field[data-state="pending"] .seg{border-style:dashed;border-color:var(--color-pending-line)}
.field[data-state="skipped"] .seg{border-color:var(--color-mark-check-line)}
.seg__opt{position:relative;display:flex;flex:0 1 auto;align-items:center;justify-content:center;gap:5px;min-width:60px;min-height:var(--tap-min);padding:0 var(--space-3) 0 11px;background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-md);font-weight:500;line-height:1.2;text-align:center;cursor:pointer;transition:background-color var(--duration-fast) var(--ease)}
.seg__label{min-width:0;overflow-wrap:anywhere}
.seg__pts{flex:none}
.field--yesno .seg__opt{min-width:64px}
.seg__opt + .seg__opt{border-left:1.5px solid var(--color-border)}
.seg__opt:first-child{border-radius:8.5px 0 0 8.5px}
.seg__opt:last-child{border-radius:0 8.5px 8.5px 0}
.seg__opt:has(input:checked){background:var(--color-selected-bg);font-weight:700}
.seg__opt:has(input[value="yes"]:checked){background:var(--color-yes-bg);color:var(--color-on-yes)}
.seg__opt:has(input[value="yes"]:checked)::before{content:"";flex:none;width:4px;height:8px;margin:-2px 2px 0 0;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg)}
.seg__pts{font-size:var(--font-size-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}
.seg__opt:has(input[value="yes"]:checked) .seg__pts{color:var(--color-on-yes)}
.choice,.pick{clear:both;display:flex;flex-direction:column;padding-top:var(--space-2)}
.choice{gap:var(--space-1)}
.pick{gap:10px}
.choice__opt,.pick__opt,.check{position:relative;display:flex;align-items:center;gap:10px;min-height:var(--tap-min);border:1.5px solid var(--color-border);border-radius:9px;background:var(--color-surface);color:var(--color-text);font-size:14px;font-weight:500;line-height:1.45;cursor:pointer}
.field[data-state="pending"] .choice__opt,.field[data-state="pending"] .pick__opt{border-style:dashed;border-color:var(--color-pending-line)}
.field[data-state="skipped"] .choice__opt,.field[data-state="skipped"] .pick__opt{border-color:var(--color-mark-check-line)}
.choice__opt:has(input:checked),.pick__opt:has(input:checked),.check:has(input:checked){border-color:var(--color-selected-line);background:var(--color-selected-bg);font-weight:700}
.choice__opt{padding:7px var(--space-3)}
.choice__radio{flex:none;display:grid;place-items:center;width:18px;height:18px;border:2px solid var(--color-border-input);border-radius:50%}
.choice__radio::after{content:"";width:8px;height:8px;border-radius:50%;background:transparent}
.choice__opt:has(input:checked) .choice__radio{border-color:currentColor}
.choice__opt:has(input:checked) .choice__radio::after{background:currentColor}
.choice__label,.pick__label{flex:1;min-width:0;text-wrap:pretty;overflow-wrap:anywhere}
.choice__pts{flex:none;font-size:var(--font-size-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}
.pick__group{display:flex;flex-direction:column;gap:var(--space-1)}
.pick__group-title{margin:0;font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-muted)}
.pick__opt{padding:var(--space-1) 10px var(--space-1) var(--space-1)}
.pick__num{flex:none;display:grid;place-items:center;min-width:46px;height:34px;border-radius:7px;background:var(--color-surface-sunken);color:var(--color-text);font-size:var(--font-size-input);font-weight:700;font-variant-numeric:tabular-nums}
.pick__opt:has(input:checked) .pick__num{background:var(--color-brand);color:var(--color-on-brand)}
.field--checks .field__line{flex-wrap:nowrap;align-items:center}
.field--checks .field__status{margin-top:0}
.check{flex:1;min-width:0;padding:6px var(--space-3)}
.check__box{flex:none;display:grid;place-items:center;width:20px;height:20px;border:2px solid var(--color-border-input);border-radius:5px}
.check:has(input:checked) .check__box{border-color:var(--color-brand);background:var(--color-brand)}
.check:has(input:checked) .check__box::after{content:"";width:5px;height:9px;border:solid var(--color-on-brand);border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}
.check__label{flex:1;min-width:0;overflow-wrap:anywhere}
.num{--bw:1.5px;flex:0 0 148px;min-width:0;margin-left:auto;display:flex;align-items:center;gap:6px;height:var(--tap-min);padding:0 var(--space-3);border:var(--bw) solid var(--color-border-input);border-radius:var(--radius-control);background:var(--color-surface)}
.num:hover{border-color:var(--color-text-muted)}
.num:focus-within{outline:3px solid var(--color-focus);outline-offset:2px}
.field[data-state="done"] .num{background:var(--color-filled-bg)}
.field[data-state="skipped"] .num{border-style:dashed;border-color:var(--color-mark-check-line)}
.field:has(.field__msg[data-level="warning"]:not([hidden])) .num{--bw:2px;border-color:var(--color-warn-line)}
.field[data-invalid] .num{--bw:2px;border-color:var(--color-danger-line)}
.num__input{flex:1;min-width:var(--tap-min);width:0;align-self:stretch;margin:calc(var(--bw) * -1) 0;padding:0;border:0;background:transparent;color:var(--color-text);font:inherit;font-size:var(--font-size-lg);font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.app .num__input:focus-visible{outline:0}
.num__unit{flex:0 1 auto;min-width:0;max-width:60%;font-size:var(--font-size-sm);line-height:1.25;color:var(--color-text-muted);text-align:right;overflow-wrap:anywhere}
.field__msg{display:flex;align-items:flex-start;gap:var(--space-2);margin:var(--space-2) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:14px;font-weight:600;line-height:1.55;overflow-wrap:anywhere}
.field__msg-text{flex:1;min-width:0}
.field__msg::before{content:"";flex:none;width:18px;height:18px;margin-top:2px}
.field__msg[data-level="error"]{background:var(--color-danger-bg);color:var(--color-danger-text)}
.field__msg[data-level="error"]::before{box-sizing:border-box;border:2px solid currentColor;border-radius:50%;background:linear-gradient(currentColor,currentColor) 6px 3px/2px 6px no-repeat,linear-gradient(currentColor,currentColor) 6px 10px/2px 2px no-repeat}
.field__msg[data-level="warning"]{background:var(--color-warn-bg);color:var(--color-warn-text)}
.field__msg[data-level="warning"]::before{height:16px;clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(var(--color-warn-bg),var(--color-warn-bg)) 8px 6px/2px 5px no-repeat,linear-gradient(var(--color-warn-bg),var(--color-warn-bg)) 8px 12px/2px 2px no-repeat,currentColor}
.calc-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:14px}
.calc-actions__fill,.calc-actions__clear{min-height:var(--tap-min);border-radius:var(--radius-control);font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background-color var(--duration-fast) var(--ease)}
.calc-actions__fill{padding:0 14px;border:1.5px solid var(--color-border-input);background:var(--color-surface);color:var(--color-text)}
.calc-actions__clear{display:inline-flex;align-items:center;gap:6px;padding:0 var(--space-3);border:1.5px solid transparent;background:transparent;color:var(--color-text-muted)}
.calc-actions__fill:hover,.calc-actions__clear:hover{background:var(--color-surface-sunken)}
.calc-formula,.calc-table,.calc-table-group{margin-top:10px}
.calc-formula h2,.calc-table h2,.calc-table-group h2,.calc-notes h2{margin:0 0 10px;font-size:var(--font-size-input);font-weight:700;line-height:var(--line-height-tight);color:var(--color-text)}
.calc-formula ul{display:flex;flex-direction:column;gap:10px;margin:0;padding:14px var(--space-4);list-style:none;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}
.calc-formula li{font-size:14px;line-height:var(--line-height-note);text-wrap:pretty;overflow-wrap:anywhere}
.table-wrap{max-width:100%;margin:0;overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}
.data{width:100%;border-collapse:collapse;font-size:14px;line-height:1.5}
.data th{padding:9px 14px;background:var(--color-surface-sunken);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:600;text-align:left}
.data td{padding:10px 14px;border-top:1px solid var(--color-border);vertical-align:top;text-align:left;overflow-wrap:anywhere}
.data td:first-child{font-variant-numeric:tabular-nums}
.data tr[aria-current="true"]{background:var(--color-row-editing-bg)}
.data tr[aria-current="true"] td{font-weight:700}
.now-badge{display:inline-block;margin-left:var(--space-2);padding:1px var(--space-2);border-radius:var(--radius-pill);background:var(--color-brand);color:var(--color-on-brand);font-size:var(--font-size-xs);font-weight:700;line-height:1.5;vertical-align:1px}
.calc-table__foot{margin:var(--space-2) 2px 0;padding:0;list-style:none;font-size:var(--font-size-sm);line-height:var(--line-height-body)}
.calc-table__foot li[aria-current="true"]{font-weight:700}
.calc-table-group{display:flex;flex-direction:column;gap:var(--space-2)}
.calc-table-group h2{margin-bottom:var(--space-1)}
.calc-table--fold{margin:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}
.calc-table--fold summary{display:flex;align-items:center;gap:10px;min-height:var(--tap-min);padding:0 14px;list-style:none;font-size:14px;font-weight:600;cursor:pointer}
.calc-table--fold summary::-webkit-details-marker{display:none}
.calc-table--fold summary::before{content:"";flex:none;width:7px;height:7px;margin:0 3px 0 1px;border:solid var(--color-text-muted);border-width:0 2px 2px 0;transform:rotate(-45deg);transition:transform var(--duration-fast) var(--ease)}
.calc-table--fold[open] summary::before{transform:rotate(45deg)}
.app .calc-table--fold summary:focus-visible{outline-offset:-3px}
.calc-table__fold-title{flex:1;min-width:0;overflow-wrap:anywhere}
.calc-table__fold-now{flex:none;padding:1px var(--space-2);border-radius:var(--radius-pill);background:var(--color-brand-soft);color:var(--color-brand);font-size:var(--font-size-xs);font-weight:700}
.calc-table--fold .table-wrap{border:0;border-radius:0}
.calc-notes{padding:var(--space-4) 18px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}
.calc-notes h2{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}
.calc-notes h2 svg{flex:none;color:var(--color-accent)}
.calc-notes ul{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none}
.calc-notes li{display:grid;grid-template-columns:6px minmax(0,1fr);gap:var(--space-3);font-size:var(--font-size-md);line-height:var(--line-height-note);text-wrap:pretty;overflow-wrap:anywhere}
.calc-notes li::before{content:"";width:6px;height:6px;margin-top:11px;border-radius:2px;background:var(--color-accent)}
.calc-notes--dose{border-color:var(--color-warn-line);border-width:2px;background:var(--color-warn-bg)}
.calc-notes--dose h2,.calc-notes--dose h2 svg{color:var(--color-warn-text)}
.calc-notes--dose li::before{background:var(--color-warn-line)}
.calc-notes__fold > summary{display:block;min-height:var(--tap-min);cursor:pointer}
.calc-notes__fold > summary::after{content:" … Read more ▾";font-weight:700;color:var(--color-warn-text);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.calc-notes__fold[open] > summary{min-height:0;margin-bottom:var(--space-2)}
.calc-notes__fold[open] > summary::after{content:" (Close ▴)"}
.calc-refs h2{margin:0 0 6px;font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-muted)}
.calc-refs ol{display:flex;flex-direction:column;gap:6px;margin:0;padding-left:1.4em;font-size:var(--font-size-xs);line-height:1.7;color:var(--color-text-muted)}
.calc-refs li{overflow-wrap:anywhere}
.app .calc-refs a{color:var(--color-accent)}
.source__kind{margin-left:var(--space-1)}
.source__reuse{margin:var(--space-1) 0 0;font-size:var(--font-size-xs);color:var(--color-text-muted)}
.calc__credit{margin:var(--space-2) 0 0;font-size:var(--font-size-xs);line-height:1.7;color:var(--color-text-muted);overflow-wrap:anywhere}
.calc__checked{margin:var(--space-2) 0 0;font-size:var(--font-size-xs);color:var(--color-text-muted)}
.calc-disclaimer{padding:14px var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-sunken);color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-note)}
.calc-disclaimer p{margin:0;text-wrap:pretty}
.noscript{margin:var(--space-4);color:var(--color-danger-text)}
.nb{white-space:nowrap}
@media (max-width: 959.98px){
  .calc{gap:var(--space-3)}
  .calc__main{display:contents}
  .calc > :is(.calc-aside,.calc-notes,.calc-refs,.calc-disclaimer){margin-top:10px}
}
@media (min-width: 960px){
  .calc{--pad-l:calc(var(--space-8) + env(safe-area-inset-left, 0px));--pad-r:calc(var(--space-8) + env(safe-area-inset-right, 0px));padding-top:var(--space-6)}
  .calc-head__title{font-size:26px}
  .result-strip{margin:0;padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border);border-radius:0 0 14px 14px}
  .calc:has(> .calc-aside){display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);column-gap:var(--space-10);row-gap:0;align-items:start;max-width:1200px}
  .calc:has(> .calc-aside) > *{grid-column:1}
  .calc:has(> .calc-aside) > :not(.calc__main){margin-top:22px}
  .calc:has(> .calc-aside) > .calc-aside{grid-column:2;grid-row:1 / span 4;margin-top:0;position:sticky;top:var(--space-3);max-height:calc(100vh - var(--space-6));max-height:calc(100dvh - var(--space-6));overflow-y:auto;padding:6px 6px var(--space-4) 6px}
  .calc-aside > :first-child{margin-top:0}
}
.install :where(ul, ol, p) { margin: 0; padding: 0; }
.install ul { list-style: none; }
.install { max-width: 640px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); }
.install__summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); min-height: var(--tap-min); padding: var(--space-2) var(--space-3); font-size: var(--font-size-sm); font-weight: 700; color: var(--color-brand); cursor: pointer; border-radius: var(--radius-md); }
.install__summary::-webkit-details-marker { display: none; }
.install__lead { text-wrap: pretty; }
.install__chev { flex: none; color: var(--color-text-muted); transition: transform 0.2s; }
.install[open] .install__chev { transform: rotate(180deg); }
.install__panel { display: grid; gap: var(--space-3); }
.install__body { display: grid; gap: var(--space-3); padding: 0 var(--space-3) var(--space-3); }
.install__merits { display: grid; gap: 2px; font-size: var(--font-size-sm); color: var(--color-text-muted); }
.install__merits li { position: relative; padding-left: 14px; }
.install__merits li::before { content: ""; position: absolute; left: 2px; top: 0.7em; width: 5px; height: 5px; border-radius: 50%; background: var(--color-accent); }
.install__tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--color-border-input); border-radius: var(--radius-md); overflow: hidden; }
.install__tab { min-height: var(--tap-min); border: 0; background: var(--color-surface); font-size: var(--font-size-sm); font-weight: 600; color: var(--color-text-muted); cursor: pointer; }
.install__tab + .install__tab { border-left: 1px solid var(--color-border-input); }
.install__tab[aria-pressed="true"] { background: var(--color-surface-sunken); color: var(--color-text); box-shadow: inset 0 -2px 0 var(--color-brand); }
.install__tab:focus-visible { outline-offset: -3px; }
.install-steps { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); }
.install-step { display: grid; align-content: start; gap: var(--space-2); }
.install-step__text { font-size: var(--font-size-xs); line-height: 1.5; text-wrap: pretty; }
.install-step__num { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; margin-right: 4px; border-radius: 50%; background: var(--color-brand-soft); color: var(--color-brand); font-size: var(--font-size-xs); font-weight: 700; vertical-align: 1px; }
.install__note { font-size: var(--font-size-xs); color: var(--color-text-muted); line-height: 1.55; text-wrap: pretty; }
.install-fig { position: relative; aspect-ratio: 9 / 15; max-width: 120px; width: 100%; justify-self: center; overflow: hidden; border-radius: 14px; background: var(--color-bg); box-shadow: inset 0 0 0 2px var(--color-border-input); font-size: 9px; line-height: 1.2; color: var(--color-text-muted); }
.install-fig__page { position: absolute; inset: 22% 12% 22%; display: grid; align-content: start; gap: 6px; }
.install-fig__page.is-dim { inset: 0; background: var(--color-scrim); }
.install-fig__line { height: 6px; border-radius: 3px; background: var(--color-border-input); opacity: 0.6; }
.install-fig__line.is-short { width: 60%; }
.install-fig__bar { position: absolute; left: 2px; right: 2px; display: flex; align-items: center; justify-content: space-around; gap: 4px; height: 18%; padding: 0 8%; background: var(--color-surface); }
.install-fig__bar.is-bottom { bottom: 2px; border-top: 1px solid var(--color-border); border-radius: 0 0 12px 12px; }
.install-fig__bar.is-top { top: 2px; justify-content: space-between; border-bottom: 1px solid var(--color-border); border-radius: 12px 12px 0 0; }
.install-fig__dot { width: 8px; height: 8px; border-radius: 2px; background: var(--color-border-input); }
.install-fig__url { flex: 1; height: 9px; border-radius: 5px; background: var(--color-surface-sunken); box-shadow: inset 0 0 0 1px var(--color-border); }
.install-fig__word { white-space: nowrap; }
.install-fig__hit { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; border-radius: 50%; color: var(--color-brand); box-shadow: 0 0 0 2px var(--color-accent); background: var(--color-brand-soft); }
.install-fig__hit.is-text { min-width: 0; padding: 0 6px; border-radius: 11px; font-weight: 700; white-space: nowrap; }
.install-ic { width: 13px; height: 13px; flex: none; }
.install-ic path, .install-ic circle { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.install-ic circle { fill: currentColor; stroke: none; }
.install-fig__sheet { position: absolute; left: 2px; right: 2px; bottom: 2px; display: grid; gap: 4px; padding: 8px 6px 10px; border-radius: 10px 10px 12px 12px; background: var(--color-surface); }
.install-fig__menu { position: absolute; top: 6px; right: 4px; left: 6px; display: grid; gap: 4px; padding: 6px; border-radius: 6px; background: var(--color-surface); border: 1px solid var(--color-border); }
.install-fig__row { display: flex; align-items: center; justify-content: space-between; gap: 2px; height: 16px; padding: 0 4px; border-radius: 4px; background: var(--color-surface-sunken); white-space: nowrap; overflow: hidden; }
.install-fig__row.is-hit { justify-content: center; height: 22px; padding: 0 2px; font-size: 8.5px; letter-spacing: -0.02em; color: var(--color-brand); font-weight: 700; background: var(--color-brand-soft); box-shadow: inset 0 0 0 2px var(--color-accent); }
.install-fig__app { position: absolute; top: 34%; left: 0; right: 0; display: grid; justify-items: center; gap: 4px; color: var(--color-text); }
.install-fig__app .app-logo { border-radius: 9px; }
.install-fig__dialog { position: absolute; left: 8%; right: 8%; top: 30%; display: grid; justify-items: center; gap: 4px; padding: 8px 4px; border-radius: 8px; background: var(--color-surface); color: var(--color-text); }
.install-fig__dialog .app-logo { border-radius: 7px; }
.install-fig__btns { display: flex; align-items: center; gap: 4px; margin-top: 2px; color: var(--color-text-muted); }
@media (display-mode: standalone) { .install { display: none; } }
.promo{display:grid;gap:var(--space-1);max-width:640px;padding:var(--space-3) var(--space-4) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}
.promo__title{margin:0;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.04em;color:var(--color-text-muted)}
.promo__list{display:grid;margin:0;padding:0;list-style:none}
.app .promo__link{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-2);min-height:var(--tap-min);margin:0 calc(var(--space-2) * -1);padding:0 var(--space-2);border-radius:var(--radius-control);color:var(--color-text);text-decoration:none}
.app .promo__link:hover{background:var(--color-surface-sunken)}
.app .promo__link > svg{color:var(--color-brand)}
.promo__text{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--space-2);row-gap:0;padding:var(--space-1) 0}
.promo__name{font-size:var(--font-size-sm);font-weight:700;color:var(--color-brand);white-space:nowrap}
.promo__desc{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap}
@media (max-width: 959.98px){ .calc > .promo{margin-top:10px} }
@media (max-width: 319.98px){ .promo__desc{white-space:normal} }
.app-promo{display:grid;gap:var(--space-2);max-width:640px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}
.app-promo__title{margin:0;font-size:var(--font-size-sm);font-weight:700;color:var(--color-brand)}
.app-promo__text{margin:0;font-size:var(--font-size-xs);line-height:1.7;color:var(--color-text-muted)}
.app-promo__stores{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:var(--space-2);margin:0;padding:0;list-style:none}
.app .app-promo__store{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:var(--space-2);min-height:var(--tap-min);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);text-decoration:none}
.app .app-promo__store:hover{background:var(--color-surface-sunken)}
.app .app-promo__store > svg{color:var(--color-brand)}
.app-promo__store-name{font-size:var(--font-size-sm);font-weight:700;white-space:nowrap}
.app-promo__store-note{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap}
.feedback{max-width:640px;margin:0;font-size:var(--font-size-xs);line-height:1.7;color:var(--color-text-muted);text-wrap:pretty}
.app .feedback a{display:inline-block;margin:-14px -10px;padding:14px 10px;color:var(--color-text-muted);text-decoration:underline;text-underline-offset:2px}
.app .feedback a:hover{color:var(--color-brand)}
@media (max-width: 959.98px){ .calc > .feedback{margin-top:2px} }
body[data-page="about"] .app{height:auto}
.about{--pad-l:calc(var(--space-4) + env(safe-area-inset-left, 0px));--pad-r:calc(var(--space-4) + env(safe-area-inset-right, 0px));display:flex;flex-direction:column;gap:var(--space-4);width:100%;max-width:720px;margin:0 auto;padding:var(--space-4) var(--pad-r) calc(var(--space-6) + var(--safe-bottom)) var(--pad-l)}
.about > *{min-width:0}
.about__title{margin:0;font-size:var(--font-size-xl);line-height:var(--line-height-tight);color:var(--color-text)}
.about__lead,.about__section p{margin:0;font-size:var(--font-size-md);line-height:var(--line-height-body);color:var(--color-text);text-wrap:pretty}
.about__section{display:flex;flex-direction:column;gap:var(--space-1)}
.about__section h2{margin:0;font-size:var(--font-size-md);line-height:var(--line-height-tight);color:var(--color-text)}
.about__operator{margin:0;font-size:var(--font-size-xs);line-height:1.7;color:var(--color-text-muted)}
@media (min-width: 960px){ .about{--pad-l:calc(var(--space-8) + env(safe-area-inset-left, 0px));--pad-r:calc(var(--space-8) + env(safe-area-inset-right, 0px));padding-top:var(--space-6)} }
.app-about{max-width:640px;margin:0;font-size:var(--font-size-xs);line-height:1.7;color:var(--color-text-muted)}
.app .app-about a{display:inline-block;margin:-14px -10px;padding:14px 10px;color:var(--color-text-muted);text-decoration:underline;text-underline-offset:2px}
.app .app-about a:hover{color:var(--color-brand)}
.source__kind{display:inline-block}
.tiles:not(.tiles--mini){grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}
@media (max-width:599.98px){.tiles:not(.tiles--mini){grid-template-columns:repeat(2,minmax(0,1fr))}}
.tiles--mini{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}
@media (max-width:599.98px){.tiles--mini{grid-template-columns:repeat(2,minmax(0,1fr))}}
.data td{overflow-wrap:break-word}
.lang-link{max-width:640px;margin:0;font-size:var(--font-size-xs);line-height:1.7;color:var(--color-text-muted)}
.app .lang-link a{display:inline-block;margin:-14px -10px;padding:14px 10px;color:var(--color-text-muted);text-decoration:underline;text-underline-offset:2px}
.app .lang-link a:hover{color:var(--color-brand)}
