@charset "UTF-8";*,*:before,*:after{box-sizing:border-box}.mobile{display:none}.desktop{display:block}html,body{height:100%}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;font-size:16px}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Helvetica Neue,Arial,Noto Sans,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;line-height:1.45;color:var(--txt);background:var(--bg);accent-color:var(--accent)}img,video{max-width:100%;height:auto;display:block}.img-toolbar{height:55px}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--bg: #f7f7f8;--bg-elev: #ffffff;--bg-muted: #f0f1f3;--txt: #1e1f23;--txt-muted: #5a5d67;--border: #e3e5ea;--focus: #4c9ffe;--accent: #2563eb;--accent-contrast: #ffffff;--ok: #16a34a;--ok-contrast: #fff;--warn: #d97706;--warn-contrast: #fff;--err: #dc2626;--err-contrast: #fff;--info: #0ea5e9;--info-contrast: #fff;--radius: 14px;--shadow-1: 0 1px 2px rgba(0,0,0,.06), 0 1px 1px rgba(0,0,0,.04);--shadow-2: 0 6px 16px rgba(0,0,0,.08);--shadow-3: 0 12px 28px rgba(0,0,0,.16);--sp-0: 0;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.25rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-10: 2.5rem;--sp-12: 3rem;--h1: clamp(1.6rem, 2.6vw, 2.2rem);--h2: clamp(1.3rem, 2vw, 1.8rem);--h3: clamp(1.15rem, 1.6vw, 1.4rem);--text: 1rem;--small: .875rem;--ctrl-h: 42px;--ring: 0 0 0 3px rgba(37, 99, 235, .15)}:root[data-theme=dark]{--bg: #0f1115;--bg-elev: #1a1e25;--bg-muted: #12151b;--txt: #eceef3;--txt-muted: #a9afbd;--border: #2a2f39;--focus: #7ab2ff;--accent: #60a5fa;--accent-contrast: #0b1220;--ok: #22c55e;--ok-contrast: #072010;--warn: #f59e0b;--warn-contrast: #221706;--err: #ef4444;--err-contrast: #2a0b0b;--info: #38bdf8;--info-contrast: #06141c;--shadow-1: 0 1px 2px rgba(0,0,0,.4);--shadow-2: 0 6px 16px rgba(0,0,0,.5);--shadow-3: 0 12px 28px rgba(0,0,0,.65)}@media (prefers-color-scheme: dark){:root:not([data-theme]){--bg: #0f1115;--bg-elev: #1a1e25;--bg-muted: #12151b;--txt: #eceef3;--txt-muted: #a9afbd;--border: #2a2f39;--focus: #7ab2ff;--accent: #60a5fa;--accent-contrast: #0b1220;--ok: #22c55e;--ok-contrast: #072010;--warn: #f59e0b;--warn-contrast: #221706;--err: #ef4444;--err-contrast: #2a0b0b;--info: #38bdf8;--info-contrast: #06141c;--shadow-1: 0 1px 2px rgba(0,0,0,.4);--shadow-2: 0 6px 16px rgba(0,0,0,.5);--shadow-3: 0 12px 28px rgba(0,0,0,.65)}}h1,h2,h3{margin:var(--sp-4) 0 var(--sp-2);line-height:1.2}h1{font-size:var(--h1)}h2{font-size:var(--h2)}h3{font-size:var(--h3)}p{margin:0 0 var(--sp-3);font-size:var(--text)}small,.small{font-size:var(--small);color:var(--txt-muted)}.main-nav{display:flex;gap:var(--sp-2);align-items:center}.main-nav a{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .65rem;border-radius:999px;color:var(--txt-muted);border:1px solid transparent;text-decoration:none;line-height:1;transition:background .15s ease,color .15s ease,border-color .15s ease}.main-nav a:hover{background:var(--bg-muted);color:var(--txt);text-decoration:none}.main-nav a.active{color:var(--accent);background:color-mix(in oklab,var(--accent) 14%,transparent);border-color:color-mix(in oklab,var(--accent) 36%,var(--border))}.main-nav .menu-item{width:155px;display:flex;flex-direction:column;align-items:center;font-size:15pt}.main-nav .menu-item .material-symbols-outlined{font-size:29pt}@media (max-width: 760px){.main-nav{overflow-x:auto;scrollbar-width:thin;padding-bottom:.25rem}.main-nav a{white-space:nowrap}}.container{width:min(980px,100%);margin-inline:auto;padding-inline:var(--sp-4)}.stack>*+*{margin-top:var(--sp-4)}.cluster{display:flex;gap:var(--sp-3);flex-wrap:wrap;align-items:center}.grid{display:grid;gap:var(--sp-3)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:var(--sp-4)}.input,.select,.textarea{width:100%;height:var(--ctrl-h);padding:0 var(--sp-3);border-radius:calc(var(--radius) - 6px);border:1px solid var(--border);background:var(--bg-elev);color:var(--txt);outline:none;box-shadow:none;transition:border-color .15s ease,box-shadow .15s ease}.textarea{height:auto;padding:var(--sp-3);min-height:96px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:var(--ring)}.input[disabled],.select[disabled],.textarea[disabled]{opacity:.6;pointer-events:none}.control{display:inline-flex;align-items:center;gap:.5rem}.control input{accent-color:var(--accent)}.btn{--btn-bg: var(--bg-muted);--btn-txt: var(--txt);--btn-bd: var(--border);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:var(--ctrl-h);padding:0 var(--sp-4);border-radius:var(--radius);background:var(--btn-bg);color:var(--btn-txt);border:1px solid var(--btn-bd);box-shadow:var(--shadow-1);cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .04s ease,filter .15s ease,background .15s ease,border-color .15s ease}.btn:hover{filter:brightness(1.03)}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.6;pointer-events:none}.btn.primary{--btn-bg: var(--accent);--btn-txt: var(--accent-contrast);--btn-bd: var(--accent)}.btn.ghost{--btn-bg: transparent;--btn-bd: var(--border)}.btn.danger{--btn-bg: var(--err);--btn-txt: var(--err-contrast);--btn-bd: var(--err)}.btn.ok{--btn-bg: var(--ok);--btn-txt: var(--ok-contrast);--btn-bd: var(--ok)}.btn.warn{--btn-bg: var(--warn);--btn-txt: var(--warn-contrast);--btn-bd: var(--warn)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-elev);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:40}.tabs{display:flex;gap:.5rem;border-bottom:1px solid var(--border)}.tabs .tab{padding:.5rem .75rem;border-radius:10px 10px 0 0;border:1px solid transparent;border-bottom:0;cursor:pointer;color:var(--txt-muted)}.tabs .tab[aria-selected=true]{color:var(--txt);background:var(--bg-elev);border-color:var(--border)}.bottom-nav{position:fixed;bottom:0;z-index:50;width:100%;background:var(--bg-elev);border-top:1px solid var(--border);display:flex;justify-content:space-evenly}.bottom-nav a{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .65rem;border-radius:999px;color:var(--txt-muted);border:1px solid transparent;text-decoration:none;line-height:1;transition:background .15s ease,color .15s ease,border-color .15s ease}.bottom-nav a .material-symbols-outlined{font-size:25pt}.bottom-nav a:hover{background:var(--bg-muted);color:var(--txt);text-decoration:none}.bottom-nav a.active{color:var(--accent);background:color-mix(in oklab,var(--accent) 14%,transparent);border-color:color-mix(in oklab,var(--accent) 36%,var(--border))}.bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;height:56px;color:var(--txt-muted)}.bottom-nav .active{color:var(--accent)}.list{display:grid;gap:var(--sp-2)}.list-item{display:grid;grid-template-columns:1fr auto;align-items:center;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev)}.badge,.pill{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .5rem;border-radius:999px;font-size:.75rem;border:1px solid var(--border);background:var(--bg-muted);color:var(--txt-muted)}.badge.primary{background:color-mix(in oklab,var(--accent) 15%,transparent);color:var(--accent);border-color:color-mix(in oklab,var(--accent) 35%,var(--border))}.badge.ok{background:color-mix(in oklab,var(--ok) 15%,transparent);color:var(--ok);border-color:color-mix(in oklab,var(--ok) 35%,var(--border))}.badge.warn{background:color-mix(in oklab,var(--warn) 15%,transparent);color:var(--warn);border-color:color-mix(in oklab,var(--warn) 35%,var(--border))}.badge.err{background:color-mix(in oklab,var(--err) 15%,transparent);color:var(--err);border-color:color-mix(in oklab,var(--err) 35%,var(--border))}.alert{border-radius:var(--radius);padding:var(--sp-3) var(--sp-4);border:1px solid}.alert.info{background:color-mix(in oklab,var(--info) 12%,var(--bg));color:var(--txt);border-color:color-mix(in oklab,var(--info) 45%,var(--border))}.alert.ok{background:color-mix(in oklab,var(--ok) 12%,var(--bg));color:var(--txt);border-color:color-mix(in oklab,var(--ok) 45%,var(--border))}.alert.warn{background:color-mix(in oklab,var(--warn) 12%,var(--bg));color:var(--txt);border-color:color-mix(in oklab,var(--warn) 45%,var(--border))}.alert.err{background:color-mix(in oklab,var(--err) 12%,var(--bg));color:var(--txt);border-color:color-mix(in oklab,var(--err) 45%,var(--border))}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:.95rem}.table th,.table td{padding:.65rem .75rem;border-bottom:1px solid var(--border)}.table thead th{text-align:left;color:var(--txt-muted);font-weight:600}.table tbody tr:hover{background:var(--bg-muted)}.sheet,.modal{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-3)}.backdrop{position:fixed;inset:0;background:#00000073}.m-0{margin:var(--sp-0)}.mt-0{margin-top:var(--sp-0)}.mr-0{margin-right:var(--sp-0)}.mb-0{margin-bottom:var(--sp-0)}.ml-0{margin-left:var(--sp-0)}.p-0{padding:var(--sp-0)}.pt-0{padding-top:var(--sp-0)}.pr-0{padding-right:var(--sp-0)}.pb-0{padding-bottom:var(--sp-0)}.pl-0{padding-left:var(--sp-0)}.m-1{margin:var(--sp-1)}.mt-1{margin-top:var(--sp-1)}.mr-1{margin-right:var(--sp-1)}.mb-1{margin-bottom:var(--sp-1)}.ml-1{margin-left:var(--sp-1)}.p-1{padding:var(--sp-1)}.pt-1{padding-top:var(--sp-1)}.pr-1{padding-right:var(--sp-1)}.pb-1{padding-bottom:var(--sp-1)}.pl-1{padding-left:var(--sp-1)}.m-2{margin:var(--sp-2)}.mt-2{margin-top:var(--sp-2)}.mr-2{margin-right:var(--sp-2)}.mb-2{margin-bottom:var(--sp-2)}.ml-2{margin-left:var(--sp-2)}.p-2{padding:var(--sp-2)}.pt-2{padding-top:var(--sp-2)}.pr-2{padding-right:var(--sp-2)}.pb-2{padding-bottom:var(--sp-2)}.pl-2{padding-left:var(--sp-2)}.m-3{margin:var(--sp-3)}.mt-3{margin-top:var(--sp-3)}.mr-3{margin-right:var(--sp-3)}.mb-3{margin-bottom:var(--sp-3)}.ml-3{margin-left:var(--sp-3)}.p-3{padding:var(--sp-3)}.pt-3{padding-top:var(--sp-3)}.pr-3{padding-right:var(--sp-3)}.pb-3{padding-bottom:var(--sp-3)}.pl-3{padding-left:var(--sp-3)}.m-4{margin:var(--sp-4)}.mt-4{margin-top:var(--sp-4)}.mr-4{margin-right:var(--sp-4)}.mb-4{margin-bottom:var(--sp-4)}.ml-4{margin-left:var(--sp-4)}.p-4{padding:var(--sp-4)}.pt-4{padding-top:var(--sp-4)}.pr-4{padding-right:var(--sp-4)}.pb-4{padding-bottom:var(--sp-4)}.pl-4{padding-left:var(--sp-4)}.m-5{margin:var(--sp-5)}.mt-5{margin-top:var(--sp-5)}.mr-5{margin-right:var(--sp-5)}.mb-5{margin-bottom:var(--sp-5)}.ml-5{margin-left:var(--sp-5)}.p-5{padding:var(--sp-5)}.pt-5{padding-top:var(--sp-5)}.pr-5{padding-right:var(--sp-5)}.pb-5{padding-bottom:var(--sp-5)}.pl-5{padding-left:var(--sp-5)}.m-6{margin:var(--sp-6)}.mt-6{margin-top:var(--sp-6)}.mr-6{margin-right:var(--sp-6)}.mb-6{margin-bottom:var(--sp-6)}.ml-6{margin-left:var(--sp-6)}.p-6{padding:var(--sp-6)}.pt-6{padding-top:var(--sp-6)}.pr-6{padding-right:var(--sp-6)}.pb-6{padding-bottom:var(--sp-6)}.pl-6{padding-left:var(--sp-6)}.m-7{margin:var(--sp-7)}.mt-7{margin-top:var(--sp-7)}.mr-7{margin-right:var(--sp-7)}.mb-7{margin-bottom:var(--sp-7)}.ml-7{margin-left:var(--sp-7)}.p-7{padding:var(--sp-7)}.pt-7{padding-top:var(--sp-7)}.pr-7{padding-right:var(--sp-7)}.pb-7{padding-bottom:var(--sp-7)}.pl-7{padding-left:var(--sp-7)}.m-8{margin:var(--sp-8)}.mt-8{margin-top:var(--sp-8)}.mr-8{margin-right:var(--sp-8)}.mb-8{margin-bottom:var(--sp-8)}.ml-8{margin-left:var(--sp-8)}.p-8{padding:var(--sp-8)}.pt-8{padding-top:var(--sp-8)}.pr-8{padding-right:var(--sp-8)}.pb-8{padding-bottom:var(--sp-8)}.pl-8{padding-left:var(--sp-8)}.m-9{margin:var(--sp-9)}.mt-9{margin-top:var(--sp-9)}.mr-9{margin-right:var(--sp-9)}.mb-9{margin-bottom:var(--sp-9)}.ml-9{margin-left:var(--sp-9)}.p-9{padding:var(--sp-9)}.pt-9{padding-top:var(--sp-9)}.pr-9{padding-right:var(--sp-9)}.pb-9{padding-bottom:var(--sp-9)}.pl-9{padding-left:var(--sp-9)}.m-10{margin:var(--sp-10)}.mt-10{margin-top:var(--sp-10)}.mr-10{margin-right:var(--sp-10)}.mb-10{margin-bottom:var(--sp-10)}.ml-10{margin-left:var(--sp-10)}.p-10{padding:var(--sp-10)}.pt-10{padding-top:var(--sp-10)}.pr-10{padding-right:var(--sp-10)}.pb-10{padding-bottom:var(--sp-10)}.pl-10{padding-left:var(--sp-10)}.m-11{margin:var(--sp-11)}.mt-11{margin-top:var(--sp-11)}.mr-11{margin-right:var(--sp-11)}.mb-11{margin-bottom:var(--sp-11)}.ml-11{margin-left:var(--sp-11)}.p-11{padding:var(--sp-11)}.pt-11{padding-top:var(--sp-11)}.pr-11{padding-right:var(--sp-11)}.pb-11{padding-bottom:var(--sp-11)}.pl-11{padding-left:var(--sp-11)}.m-12{margin:var(--sp-12)}.mt-12{margin-top:var(--sp-12)}.mr-12{margin-right:var(--sp-12)}.mb-12{margin-bottom:var(--sp-12)}.ml-12{margin-left:var(--sp-12)}.p-12{padding:var(--sp-12)}.pt-12{padding-top:var(--sp-12)}.pr-12{padding-right:var(--sp-12)}.pb-12{padding-bottom:var(--sp-12)}.pl-12{padding-left:var(--sp-12)}.flex{display:flex}.inline-flex{display:inline-flex}.center{display:grid;place-items:center}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.round{border-radius:var(--radius)}.shadow{box-shadow:var(--shadow-2)}.hide{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.form{display:grid;gap:var(--sp-3)}.form-row{display:grid;gap:var(--sp-2)}.form-row.cols-2{grid-template-columns:1fr 1fr}.form-row.cols-3{grid-template-columns:repeat(3,1fr)}.label{font-size:.85rem;color:var(--txt-muted)}.skeleton{--sk: color-mix(in oklab, var(--txt-muted) 12%, transparent);background:linear-gradient(90deg,transparent,var(--sk),transparent);background-size:200% 100%;animation:sk 1.2s infinite linear;border-radius:8px}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width: 1200px){.mobile{display:block}.desktop{display:none}}
