@font-face {
	font-family: 'Geist';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url(/static/fonts/geist-normal-400-700-latin-ext.woff2) format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Geist';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url(/static/fonts/geist-normal-400-700-latin.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Newsreader';
	font-style: normal;
	font-weight: 400 500;
	font-display: swap;
	src: url(/static/fonts/newsreader-normal-400-500-latin-ext.woff2) format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Newsreader';
	font-style: normal;
	font-weight: 400 500;
	font-display: swap;
	src: url(/static/fonts/newsreader-normal-400-500-latin.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--color-bg: #f4f5f3;
	--color-surface: #ffffff;
	--color-surface-2: #eaecea;
	--color-ink: #15181a;
	--color-ink-2: #4c5358;
	--color-ink-3: #61686d;
	--color-line: #dde0dd;
	--color-line-strong: #b8beba;
	--color-track: #dde1de;
	--color-accent: #1d6b57;
	--color-accent-strong: #14503f;
	--color-accent-ink: #ffffff;
	--color-accent-soft: #dcede6;
	--color-accent-mid: #8cc2af;
	--color-ok: #2f7d57;
	--color-warn: #8a5300;
	--color-warn-soft: #f8ead3;
	--color-danger: #b3261e;
	--color-danger-soft: #f9e5e2;
	--color-focus: #2457d6;
	--font-serif: 'Newsreader', Georgia, serif;
	--font-sans: 'Geist', system-ui, sans-serif;
	--size-xs: 12px;
	--size-sm: 13px;
	--size-base: 15px;
	--size-md: 17px;
	--size-lg: 20px;
	--size-xl: 28px;
	--size-numeral: clamp(40px, 5vw, 60px);
	--weight-regular: 400;
	--weight-medium: 500;
	--weight-semibold: 600;
	--leading-tight: 1;
	--leading-snug: 1.2;
	--leading-normal: 1.4;
	--leading-relaxed: 1.55;
	--tracking-tight: -0.02em;
	--tracking-snug: -0.01em;
	--tracking-none: 0;
	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-5: 24px;
	--space-6: 32px;
	--space-7: 48px;
	--space-8: 64px;
	--space-9: 96px;
	--radius-s: 4px;
	--radius-m: 8px;
	--radius-l: 14px;
	--radius-pill: 999px;
	--opacity-disabled: 0.45;
	--dur-fast: 120ms;
	--dur: 200ms;
	--ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--z-nav: 20;
	--scheme: light;
	--form-w: 440px;
}

@media (prefers-color-scheme: dark) {
:root {
	--color-bg: #111315;
	--color-surface: #191c1f;
	--color-surface-2: #22262a;
	--color-ink: #eef0ee;
	--color-ink-2: #b3babe;
	--color-ink-3: #8d959a;
	--color-line: #2a2f33;
	--color-line-strong: #3e454a;
	--color-track: #2d3337;
	--color-accent: #7fd4b8;
	--color-accent-strong: #a6e4cf;
	--color-accent-ink: #0b261e;
	--color-accent-soft: #1a3730;
	--color-accent-mid: #3a7766;
	--color-ok: #6fd19b;
	--color-warn: #f2b35b;
	--color-warn-soft: #3a2c16;
	--color-danger: #ff9a8f;
	--color-danger-soft: #3a1f1c;
	--color-focus: #8fb2ff;
	--scheme: dark;
}
}


*,*::before,*::after{box-sizing:border-box}
html{color-scheme:var(--scheme)}
body{margin:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--size-base);line-height:var(--leading-relaxed);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4,p,dl,dd,figure{margin:0}
h1,h2,h3,h4{font-weight:inherit}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit;text-underline-offset:0.2em;text-decoration-thickness:1px}
a:hover{color:var(--color-accent)}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-s)}
time,.num,.text-numeral,.text-numeral-ui{font-variant-numeric:tabular-nums lining-nums}
.icon{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--color-ink-3)}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{50%{opacity:0.35}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.text-numeral {
	font-family: var(--font-serif);
	font-size: var(--size-numeral);
	font-weight: var(--weight-regular);
	line-height: var(--leading-tight);
	letter-spacing: var(--tracking-tight);
}

.text-heading-serif {
	font-family: var(--font-serif);
	font-size: var(--size-xl);
	font-weight: var(--weight-regular);
	line-height: var(--leading-snug);
	letter-spacing: var(--tracking-snug);
}

.text-heading {
	font-family: var(--font-sans);
	font-size: var(--size-md);
	font-weight: var(--weight-semibold);
	line-height: var(--leading-snug);
	letter-spacing: var(--tracking-snug);
}

.text-numeral-ui {
	font-family: var(--font-sans);
	font-size: var(--size-xl);
	font-weight: var(--weight-semibold);
	line-height: var(--leading-tight);
	letter-spacing: var(--tracking-tight);
}

.text-small {
	font-family: var(--font-sans);
	font-size: var(--size-sm);
	font-weight: var(--weight-regular);
	line-height: var(--leading-normal);
	letter-spacing: var(--tracking-none);
}

.text-label {
	font-family: var(--font-sans);
	font-size: var(--size-sm);
	font-weight: var(--weight-medium);
	line-height: var(--leading-snug);
	letter-spacing: var(--tracking-none);
}

/* nav */
.nav{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-3) var(--space-6);background:var(--color-bg);border-bottom:1px solid var(--color-line)}
.nav__brand{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-serif);font-size:var(--size-lg);font-weight:var(--weight-medium);letter-spacing:var(--tracking-snug);text-decoration:none;color:var(--color-ink)}
.nav__brand .icon{width:22px;height:22px;color:var(--color-accent)}
.nav__links{display:flex;gap:var(--space-1)}
.nav__link{display:flex;align-items:center;gap:var(--space-2);min-height:36px;padding:0 var(--space-3);border-radius:var(--radius-m);color:var(--color-ink-2);font-size:var(--size-sm);font-weight:var(--weight-medium);text-decoration:none;transition:background var(--dur-fast)}
.nav__link:hover{background:var(--color-surface-2);color:var(--color-ink)}
.nav__link:focus-visible{outline:2px solid var(--color-focus);outline-offset:0}
.nav__link:active{background:var(--color-line)}
.nav__link[aria-current=page]{color:var(--color-ink);background:var(--color-surface-2)}
.nav__link[aria-current=page] .icon{color:var(--color-accent)}
.nav__meta{margin-left:auto;display:flex;align-items:center;gap:var(--space-3)}
@media (max-width:720px){.nav{padding:var(--space-2) var(--space-4)}
.nav__links{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-nav);flex-direction:row;justify-content:space-around;padding:var(--space-1) var(--space-2) calc(var(--space-1) + env(safe-area-inset-bottom));background:var(--color-surface);border-top:1px solid var(--color-line)}
.nav__link{flex-direction:column;gap:2px;min-width:72px;min-height:52px;justify-content:center;font-size:var(--size-xs)}
.nav__link[aria-current=page]{background:transparent}
.nav__wide{display:none}}

/* button */
.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:36px;padding:0 var(--space-4);border-radius:var(--radius-m);border:1px solid var(--color-line-strong);background:var(--color-surface);color:var(--color-ink);font-size:var(--size-sm);font-weight:var(--weight-medium);line-height:1;white-space:nowrap;text-decoration:none;cursor:pointer;transition:background var(--dur-fast),border-color var(--dur-fast),transform var(--dur-fast)}
.button:hover{background:var(--color-surface-2);color:var(--color-ink)}
.button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.button:active{transform:translateY(1px)}
.button:disabled{opacity:var(--opacity-disabled);cursor:not-allowed;transform:none}
.button--primary{background:var(--color-accent);border-color:transparent;color:var(--color-accent-ink)}
.button--primary:hover{background:var(--color-accent-strong);color:var(--color-accent-ink)}
.button--ghost{background:transparent;border-color:transparent;color:var(--color-ink-2)}
.button--ghost:hover{background:var(--color-surface-2)}
.button--danger{color:var(--color-danger)}
.button--danger:hover{background:var(--color-danger-soft);border-color:var(--color-danger);color:var(--color-danger)}
.button--small{min-height:30px;padding:0 var(--space-3);font-size:var(--size-xs)}
.button--icon{width:36px;padding:0}
.button--small.button--icon{width:30px}
.button--block{width:100%;min-height:44px}
.button__spinner{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin 0.8s linear infinite}
.button--loading{cursor:progress}
@media (max-width:720px){.button{min-height:40px}.button--small{min-height:36px}.button--small.button--icon,.button--icon{width:40px}.button--block{min-height:48px}}

/* form-field */
.form-field{display:grid;gap:6px;min-width:0;align-content:start}
.form-field__label{font-size:var(--size-sm);font-weight:var(--weight-medium);line-height:var(--leading-snug);color:var(--color-ink)}
.form-field__label span{font-weight:var(--weight-regular);color:var(--color-ink-3)}
.form-field__hint{font-size:var(--size-xs);line-height:var(--leading-normal);color:var(--color-ink-3)}
.form-field__error{display:flex;gap:6px;align-items:flex-start;font-size:var(--size-xs);line-height:var(--leading-normal);font-weight:var(--weight-medium);color:var(--color-danger)}
.form-field__error .icon{width:14px;height:14px;margin-top:1px}
.form-field--error .form-field__label{color:var(--color-danger)}

/* panel */
.panel{display:grid;gap:var(--space-4);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-l)}
.panel--flush{gap:0;padding:0}
.panel__row{padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-line)}
.panel__row:first-child{border-top:0}
.panel--danger{border-color:var(--color-danger);box-shadow:inset 3px 0 0 var(--color-danger)}
@media (max-width:720px){.panel{padding:var(--space-4);border-radius:var(--radius-m)}.panel--flush{padding:0}.panel__row{padding:var(--space-4)}}

/* badge */
.badge{display:inline-flex;align-items:center;gap:5px;min-height:22px;padding:0 7px;border-radius:var(--radius-s);background:var(--color-surface-2);color:var(--color-ink-2);font-size:var(--size-xs);font-weight:var(--weight-medium);line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}
.badge .icon{width:12px;height:12px}
.badge--outline{background:transparent;box-shadow:inset 0 0 0 1px var(--color-line-strong)}

/* disclosure */
.disclosure{border-top:1px solid var(--color-line)}
.disclosure__summary{display:flex;align-items:center;gap:var(--space-3);min-height:52px;cursor:pointer;list-style:none;border-radius:var(--radius-s)}
.disclosure__summary::-webkit-details-marker{display:none}
.disclosure__summary::before{content:"";flex:none;width:7px;height:7px;margin:0 4px 3px 2px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform var(--dur) var(--ease)}
.disclosure[open]>.disclosure__summary::before{transform:rotate(45deg);margin-bottom:5px}
.disclosure__summary:hover{color:var(--color-accent-strong)}
.disclosure__summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.disclosure__summary:active{opacity:0.8}
.disclosure--quiet{border-top:0}
.disclosure--quiet>.disclosure__summary{display:inline-flex;min-height:32px;font-size:var(--size-sm);font-weight:var(--weight-medium);color:var(--color-ink-2)}
.disclosure--quiet>.disclosure__body{padding:var(--space-2) 0 0}

/* field */
.field{display:flex;align-items:center;gap:var(--space-2);min-width:0;min-height:40px;padding:0 var(--space-3);border:1px solid var(--color-line-strong);border-radius:var(--radius-m);background:var(--color-surface);color:var(--color-ink-3);transition:border-color var(--dur-fast)}
.field:hover{border-color:var(--color-ink-3)}
.field:focus-within{outline:2px solid var(--color-focus);outline-offset:1px;border-color:transparent}
.field__input{flex:1;width:100%;min-width:0;align-self:stretch;border:0;background:transparent;color:var(--color-ink);font-size:var(--size-sm);outline:none;padding:0}
.field__input::placeholder{color:var(--color-ink-3)}
.field__input:disabled{cursor:not-allowed}
.field__input[readonly]{color:var(--color-ink-2)}
.field:has(.field__input:disabled){opacity:var(--opacity-disabled)}
.field:has(.field__input[readonly]){background:var(--color-surface-2);border-color:var(--color-line)}
.field__spinner{width:16px;height:16px;flex:none;border-radius:50%;border:2px solid var(--color-accent);border-right-color:transparent;animation:spin 0.8s linear infinite}
.field--large{min-height:52px;padding:0 var(--space-4);gap:var(--space-3);border-radius:var(--radius-l)}
.field--large .field__input{font-size:var(--size-md)}
.field--large>.icon{width:20px;height:20px}
.field--error{border-color:var(--color-danger)}
@media (max-width:720px){.field{min-height:44px}.field--large{min-height:52px}.field__input{font-size:16px}}

/* table */
.table{width:100%;border-collapse:collapse;font-size:var(--size-sm);font-variant-numeric:tabular-nums}
.table th,.table td{padding:0 var(--space-3);text-align:left;white-space:nowrap}
.table thead th{height:32px;font-size:var(--size-xs);font-weight:var(--weight-medium);color:var(--color-ink-3);border-bottom:1px solid var(--color-line)}
.table td{height:38px;border-bottom:1px solid var(--color-line)}
.table tbody tr:hover td{background:var(--color-surface-2)}
.table .table__muted{color:var(--color-ink-3)}
.table .table__num{text-align:right}

/* chip */
.chip{display:inline-flex;align-items:center;gap:var(--space-2);min-height:28px;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--color-line);background:var(--color-surface);color:var(--color-ink-2);font-size:var(--size-xs);font-weight:var(--weight-medium);line-height:1;white-space:nowrap;text-decoration:none}
.chip__dot{width:7px;height:7px;border-radius:50%;background:var(--color-ok);flex:none}
.chip--idle .chip__dot{background:transparent;box-shadow:inset 0 0 0 1.5px var(--color-ink-3)}
.chip--error{background:var(--color-danger-soft);border-color:transparent;color:var(--color-danger)}
.chip--error .chip__dot{background:currentColor}
.chip .icon{width:14px;height:14px}
button.chip{cursor:pointer;min-height:32px;transition:background var(--dur-fast),border-color var(--dur-fast)}
button.chip:hover{border-color:var(--color-line-strong);background:var(--color-surface-2)}
button.chip:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
button.chip:active{transform:translateY(1px)}
button.chip:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}
@media (max-width:720px){button.chip{min-height:40px;padding:0 var(--space-4)}}

/* banner */
.banner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-4);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border-radius:var(--radius-m);background:var(--color-surface-2);color:var(--color-ink)}
.banner>.icon{color:var(--color-ink-2)}
.banner__text{flex:1 1 260px;min-width:0;font-size:var(--size-sm);line-height:var(--leading-normal)}
.banner__text strong{font-weight:var(--weight-semibold)}
.banner--danger{background:var(--color-danger-soft)}
.banner--warn{background:var(--color-warn-soft)}
.banner--warn>.icon{color:var(--color-warn)}
.banner--danger>.icon,.banner--danger .banner__text strong{color:var(--color-danger)}

/* check */
.check{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px var(--space-3);align-items:start;cursor:pointer}
.check__box{appearance:none;display:grid;place-items:center;width:20px;height:20px;margin:1px 0 0;border:1.5px solid var(--color-line-strong);border-radius:var(--radius-s);background:var(--color-surface);cursor:pointer;transition:background var(--dur-fast),border-color var(--dur-fast)}
.check__box::after{content:"";width:10px;height:5px;margin-top:-2px;border-left:2px solid var(--color-accent-ink);border-bottom:2px solid var(--color-accent-ink);transform:rotate(-45deg);opacity:0}
.check__box:hover{border-color:var(--color-ink-3)}
.check__box:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
.check__box:active{transform:scale(0.94)}
.check__box:checked{background:var(--color-accent);border-color:var(--color-accent)}
.check__box:checked::after{opacity:1}
.check__box:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}
.check__label{font-size:var(--size-sm);font-weight:var(--weight-medium);line-height:var(--leading-snug);padding-top:2px}
.check__hint{grid-column:2;font-size:var(--size-xs);line-height:var(--leading-normal);color:var(--color-ink-3)}

