:root{--surface-0:#f4f1ea;--surface-1:#fbfaf6;--surface-2:#fff;--surface-sunken:#efece3;--ink:#1b1815;--ink-soft:#3d3833;--text-muted:#6b645b;--text-faint:#948c81;--accent:#1f4a3d;--accent-hover:#163a30;--accent-soft:#e6ede9;--accent-contrast:#f7f5ef;--brass:#9a7b4f;--brass-soft:#efe6d7;--line:#e3ddd1;--line-strong:#d3ccbd;--line-faint:#ece7dc;--pos:#1f6b4c;--pos-soft:#e4efe8;--neg:#a23b30;--neg-soft:#f4e4e1;--warn:#9a6a1c;--warn-soft:#f3e8d3;--info:#2c5578;--info-soft:#e3eaf1;--font-display:var(--font-fraunces);--font-sans:var(--font-instrument-sans);--font-mono:var(--font-ibm-plex-mono);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--r-sm:4px;--r-md:8px;--r-lg:12px;--r-xl:18px;--shadow-sm:0 1px 2px #1b18150a, 0 1px 1px #1b181508;--shadow-md:0 4px 16px -6px #1b18151f, 0 2px 6px -3px #1b181514;--shadow-lg:0 24px 60px -20px #1b181547, 0 8px 24px -12px #1b181524;--sidebar-w:268px;--topbar-h:68px;--content-max:1200px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{font-family:var(--font-sans);color:var(--ink);background-color:var(--surface-0);background-image:radial-gradient(1200px 600px at 100% -10%,#1f4a3d0d,#0000 60%),radial-gradient(900px 500px at -10% 110%,#9a7b4f0d,#0000 55%);background-attachment:fixed;min-height:100vh;font-size:15px;line-height:1.6}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-optical-sizing:auto;font-weight:460;line-height:1.12}h1{font-size:clamp(1.9rem,1.4rem + 2vw,2.7rem);font-weight:420}h2{font-size:clamp(1.35rem,1.1rem + 1vw,1.7rem)}h3{font-size:1.2rem}.eyebrow{font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brass);font-size:.72rem;font-weight:600}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.mono{font-family:var(--font-mono);font-feature-settings:"tnum" 1;letter-spacing:-.01em}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.stack{flex-direction:column;display:flex}.row{align-items:center;display:flex}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex:1}.page{max-width:var(--content-max);padding:var(--sp-6) var(--sp-6) var(--sp-9);margin:0 auto}@media (max-width:640px){.page{padding:var(--sp-5) var(--sp-4) var(--sp-8)}}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-6);padding-bottom:var(--sp-5);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.page-head p.lead{color:var(--text-muted);margin-top:var(--sp-2);max-width:60ch}.card{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:var(--sp-5)}.card-head{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--line);display:flex}.card-head h3{font-size:1.05rem}.grid{gap:var(--sp-5);display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:620px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}.btn{--btn-bg:var(--surface-2);--btn-fg:var(--ink);--btn-bd:var(--line-strong);justify-content:center;align-items:center;gap:var(--sp-2);color:var(--btn-fg);background:var(--btn-bg);border:1px solid var(--btn-bd);border-radius:var(--r-md);cursor:pointer;white-space:nowrap;padding:9px 16px;font-size:.9rem;font-weight:550;line-height:1;transition:background .16s,border-color .16s,transform .16s,box-shadow .16s,color .16s;display:inline-flex}.btn:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn svg{width:16px;height:16px}.btn-primary{--btn-bg:var(--accent);--btn-fg:var(--accent-contrast);--btn-bd:var(--accent)}.btn-primary:hover{--btn-bg:var(--accent-hover);--btn-bd:var(--accent-hover)}.btn-ghost{--btn-bg:transparent;--btn-bd:transparent}.btn-ghost:hover{--btn-bg:var(--surface-sunken)}.btn-danger{--btn-fg:var(--neg);--btn-bd:var(--line-strong)}.btn-danger:hover{--btn-bg:var(--neg-soft);--btn-bd:var(--neg)}.btn-lg{padding:12px 22px;font-size:.95rem}.btn-sm{padding:6px 11px;font-size:.82rem}.btn-block{width:100%}.field{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-direction:column;display:flex}.field>label,.field-label{color:var(--ink-soft);letter-spacing:.005em;font-size:.82rem;font-weight:600}.field .req{color:var(--neg);margin-left:2px}.field .hint{color:var(--text-muted);font-size:.78rem}.field .err{color:var(--neg);font-size:.78rem;font-weight:500}.input,.select,.textarea{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--r-md);width:100%;color:var(--ink);appearance:none;padding:10px 12px;font-size:.92rem;transition:border-color .16s,box-shadow .16s,background .16s}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.input:focus,.select:focus,.textarea:focus,.btn:focus-visible,a:focus-visible,[tabindex]:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.btn:focus-visible,a:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);border-radius:var(--r-md)}.textarea{resize:vertical;min-height:88px;line-height:1.5}.select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b645b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.input.is-invalid,.select.is-invalid{border-color:var(--neg)}.input.is-valid{border-color:var(--pos)}.input-affix{align-items:center;display:flex;position:relative}.input-affix .affix{color:var(--text-muted);pointer-events:none;font-size:.9rem;position:absolute}.input-affix .affix-left{left:12px}.input-affix .affix-left~.input{padding-left:30px}.input-affix .affix-right{right:12px}.switch{align-items:center;gap:var(--sp-3);cursor:pointer;display:inline-flex;position:relative}.switch input{opacity:0;width:0;height:0;position:absolute}.switch .track{background:var(--line-strong);border-radius:999px;flex:none;width:42px;height:24px;transition:background .18s}.switch .track:after{content:"";background:var(--surface-2);width:18px;height:18px;box-shadow:var(--shadow-sm);border-radius:50%;transition:transform .18s;position:absolute;top:3px;left:3px}.switch input:checked+.track{background:var(--accent)}.switch input:checked+.track:after{transform:translate(18px)}.switch input:focus-visible+.track{box-shadow:0 0 0 3px var(--accent-soft)}.table-wrap{border-radius:var(--r-lg);width:100%;overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:.9rem}table.data thead th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--line-strong);white-space:nowrap;background:var(--surface-1);padding:10px 16px;font-size:.72rem;font-weight:600}table.data tbody td{border-bottom:1px solid var(--line-faint);vertical-align:middle;padding:13px 16px}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr{transition:background .12s}table.data tbody tr:hover{background:var(--surface-sunken)}table.data td.num,table.data th.num{text-align:right}.row-link{cursor:pointer}.badge{letter-spacing:.02em;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:3px 9px 3px 8px;font-size:.74rem;font-weight:600;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.badge-neutral{color:var(--ink-soft);background:var(--surface-sunken);border-color:var(--line-strong)}.badge-pos{color:var(--pos);background:var(--pos-soft)}.badge-neg{color:var(--neg);background:var(--neg-soft)}.badge-warn{color:var(--warn);background:var(--warn-soft)}.badge-info{color:var(--info);background:var(--info-soft)}.badge-accent{color:var(--accent);background:var(--accent-soft)}.amt-pos{color:var(--pos)}.amt-neg{color:var(--neg)}.alert{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface-1);align-items:flex-start;font-size:.88rem;display:flex}.alert svg{flex:none;width:18px;height:18px;margin-top:1px}.alert-error{color:var(--neg);background:var(--neg-soft);border-color:color-mix(in srgb, var(--neg) 30%, transparent)}.alert-info{color:var(--info);background:var(--info-soft);border-color:color-mix(in srgb, var(--info) 25%, transparent)}.alert-warn{color:var(--warn);background:var(--warn-soft);border-color:color-mix(in srgb, var(--warn) 30%, transparent)}.alert-success{color:var(--pos);background:var(--pos-soft);border-color:color-mix(in srgb, var(--pos) 30%, transparent)}.alert.hidden{display:none}.empty{text-align:center;padding:var(--sp-8) var(--sp-5);align-items:center;gap:var(--sp-3);flex-direction:column;display:flex}.empty .empty-icon{background:var(--accent-soft);width:52px;height:52px;color:var(--accent);margin-bottom:var(--sp-2);border-radius:50%;place-items:center;display:grid}.empty .empty-icon svg{width:24px;height:24px}.empty h3{font-size:1.15rem}.empty p{color:var(--text-muted);max-width:42ch}.modal-backdrop{z-index:60;padding:var(--sp-6) var(--sp-4);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1b18156b;justify-content:center;align-items:flex-start;display:none;position:fixed;inset:0;overflow-y:auto}.modal-backdrop.open{animation:.18s fade-in;display:flex}.modal{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-xl);width:100%;max-width:560px;box-shadow:var(--shadow-lg);margin:auto;animation:.22s cubic-bezier(.16,1,.3,1) modal-in}.modal-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-5) var(--sp-5) var(--sp-4);border-bottom:1px solid var(--line);display:flex}.modal-head h2{font-size:1.35rem}.modal-head p{color:var(--text-muted);margin-top:4px;font-size:.88rem}.modal-body{padding:var(--sp-5)}.modal-foot{justify-content:flex-end;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--line);display:flex}.modal-close{cursor:pointer;color:var(--text-muted);border-radius:var(--r-sm);background:0 0;border:none;padding:4px;line-height:0}.modal-close:hover{color:var(--ink);background:var(--surface-sunken)}#toast-root{top:var(--sp-5);right:var(--sp-5);z-index:90;gap:var(--sp-2);flex-direction:column;max-width:min(380px,100vw - 32px);display:flex;position:fixed}.toast{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-md);border-left-width:3px;align-items:flex-start;font-size:.88rem;animation:.24s cubic-bezier(.16,1,.3,1) toast-in;display:flex}.toast.leaving{animation:.2s forwards toast-out}.toast-title{font-weight:600}.toast-msg{color:var(--text-muted);font-size:.84rem}.toast-success{border-left-color:var(--pos)}.toast-error{border-left-color:var(--neg)}.toast-info{border-left-color:var(--info)}.toast svg{flex:none;width:18px;height:18px;margin-top:1px}.toast-success svg{color:var(--pos)}.toast-error svg{color:var(--neg)}.toast-info svg{color:var(--info)}.hidden{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.divider{background:var(--line);height:1px;margin:var(--sp-5) 0;border:none}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-5{gap:var(--sp-5)}.mt-2{margin-top:var(--sp-2)}.mt-3{margin-top:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.mt-5{margin-top:var(--sp-5)}.mt-6{margin-top:var(--sp-6)}.mb-4{margin-bottom:var(--sp-4)}.text-sm{font-size:.85rem}.text-xs{font-size:.78rem}.text-right{text-align:right}.w-full{width:100%}.skeleton{background:linear-gradient(100deg, var(--surface-sunken) 30%, var(--line-faint) 50%, var(--surface-sunken) 70%);border-radius:var(--r-sm);background-size:200% 100%;animation:1.3s ease-in-out infinite shimmer}.copy-btn{color:var(--text-muted);background:var(--surface-sunken);border:1px solid var(--line-strong);border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:5px;padding:3px 8px;font-size:.76rem;font-weight:550;transition:all .15s;display:inline-flex}.copy-btn:hover{color:var(--accent);border-color:var(--accent)}.copy-btn svg{width:13px;height:13px}.stat-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:.76rem;font-weight:600}.stat-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--ink);font-size:1.7rem;font-weight:500;line-height:1.1}.stat-value.lg{font-size:2.4rem}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes toast-out{to{opacity:0;transform:translate(16px)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.rise{animation:.4s cubic-bezier(.16,1,.3,1) both rise}.rise-1{animation-delay:40ms}.rise-2{animation-delay:80ms}.rise-3{animation-delay:.12s}.rise-4{animation-delay:.16s}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.logo[data-astro-cid-f7espo7c]{align-items:center;gap:10px;display:inline-flex}.logo-word[data-astro-cid-f7espo7c]{font-family:var(--font-display);font-weight:480;font-size:calc(var(--logo-size) * .62);letter-spacing:.01em;color:var(--ink)}
