/* SlateKit — design tokens + base. One file, no dependencies. */
:root{
  --sk-bg:#ffffff; --sk-bg-soft:#f6f6f8; --sk-bg-raised:#ffffff;
  --sk-ink:#101014; --sk-ink-2:#55555e; --sk-ink-3:#8e8e96;
  --sk-line:#e7e7ec; --sk-accent:#0a84ff; --sk-accent-ink:#ffffff;
  --sk-good:#1f9d55; --sk-warn:#b7791f; --sk-bad:#d64545;
  --sk-radius:16px; --sk-radius-sm:11px;
  --sk-shadow:0 1px 2px rgba(16,16,20,.05),0 8px 24px rgba(16,16,20,.07);
  --sk-font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;
  --sk-serif:ui-serif,"New York",Georgia,serif;
  --sk-mono:ui-monospace,"SF Mono",Menlo,monospace;
  --sk-max:880px;
}
@media (prefers-color-scheme:dark){
  :root{
    --sk-bg:#000000; --sk-bg-soft:#141417; --sk-bg-raised:#1c1c21;
    --sk-ink:#f2f2f5; --sk-ink-2:#aeaeb6; --sk-ink-3:#6d6d74;
    --sk-line:#26262b;
    --sk-shadow:0 1px 2px rgba(0,0,0,.5),0 10px 28px rgba(0,0,0,.45);
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--sk-bg);color:var(--sk-ink);font-family:var(--sk-font);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--sk-accent);text-decoration:none}
.sk-page{max-width:var(--sk-max);margin:0 auto;padding:0 18px calc(48px + env(safe-area-inset-bottom))}
.sk-muted{color:var(--sk-ink-2)} .sk-faint{color:var(--sk-ink-3)}
.sk-num{font-variant-numeric:tabular-nums}
.sk-hide-scroll{scrollbar-width:none;-ms-overflow-style:none}
.sk-hide-scroll::-webkit-scrollbar{display:none}
/* ---------- components (light DOM, restyle freely) ---------- */
sk-hero{display:block;position:relative;margin:0 -18px 18px;height:180px;overflow:hidden;border-radius:0 0 22px 22px;background:var(--sk-bg-soft)}
sk-hero img{width:100%;height:100%;object-fit:cover}
sk-hero .sk-hero-title{position:absolute;left:18px;bottom:14px;font-family:var(--sk-serif);font-weight:700;font-size:26px;letter-spacing:-.01em;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.45)}
sk-hero:not([image]){height:auto;padding:34px 18px 16px}
sk-hero:not([image]) .sk-hero-title{position:static;color:var(--sk-ink);text-shadow:none}
sk-section{display:block;margin:26px 0 12px}
sk-section>.sk-sec-title{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sk-ink-3);margin:0 2px 10px}
sk-grid{display:grid;gap:12px;grid-template-columns:repeat(var(--cols,2),1fr)}
@media (max-width:560px){sk-grid{grid-template-columns:repeat(min(var(--cols,2),2),1fr)}}
sk-card{display:block;background:var(--sk-bg-raised);border:1px solid var(--sk-line);border-radius:var(--sk-radius);overflow:hidden;box-shadow:var(--sk-shadow);cursor:pointer;transition:transform .15s ease}
sk-card:active{transform:scale(.985)}
sk-card>img,.sk-card-img{width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--sk-bg-soft)}
sk-card .sk-card-body{padding:12px 14px 14px}
sk-card .sk-card-title{font-weight:600;font-size:16px;margin:0}
sk-card .sk-card-sub{color:var(--sk-ink-2);font-size:13.5px;margin:3px 0 0}
sk-stat{display:block;background:var(--sk-bg-raised);border:1px solid var(--sk-line);border-radius:var(--sk-radius-sm);padding:12px 14px;box-shadow:var(--sk-shadow)}
sk-stat .sk-stat-value{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}
sk-stat .sk-stat-label{font-size:12px;color:var(--sk-ink-3);margin-top:2px}
sk-stat[tone=good] .sk-stat-value{color:var(--sk-good)} sk-stat[tone=warn] .sk-stat-value{color:var(--sk-warn)} sk-stat[tone=bad] .sk-stat-value{color:var(--sk-bad)}
.sk-chips{display:flex;gap:8px;overflow-x:auto;padding:2px}
.sk-chip{flex:none;border:1px solid var(--sk-line);background:var(--sk-bg-raised);color:var(--sk-ink-2);border-radius:999px;padding:7px 14px;font-size:13.5px;font-family:inherit;cursor:pointer}
.sk-chip[aria-pressed=true]{background:var(--sk-ink);color:var(--sk-bg);border-color:var(--sk-ink)}
sk-tabs{display:block}
sk-tabs .sk-tabbar{display:flex;gap:18px;overflow-x:auto;border-bottom:1px solid var(--sk-line);scrollbar-width:none}
sk-tabs .sk-tabbar::-webkit-scrollbar{display:none}
sk-tabs .sk-tabbar button{flex:none;background:none;border:none;padding:10px 2px;font-family:inherit;font-size:15px;color:var(--sk-ink-3);cursor:pointer;border-bottom:2px solid transparent}
sk-tabs .sk-tabbar button[aria-selected=true]{color:var(--sk-ink);font-weight:600;border-bottom-color:var(--sk-accent)}
sk-tabs .sk-tabpane{display:none;padding-top:14px} sk-tabs .sk-tabpane.on{display:block}
sk-gallery{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px;scrollbar-width:none}
sk-gallery::-webkit-scrollbar{display:none}
sk-gallery img{flex:none;width:min(78vw,340px);aspect-ratio:4/3;object-fit:cover;border-radius:var(--sk-radius-sm);scroll-snap-align:start;background:var(--sk-bg-soft)}
sk-table{display:block;overflow-x:auto;border:1px solid var(--sk-line);border-radius:var(--sk-radius-sm);scrollbar-width:none}
sk-table::-webkit-scrollbar{display:none}
sk-table table{border-collapse:collapse;width:100%;font-size:13.5px}
sk-table th{ text-align:left;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--sk-ink-3);font-weight:600}
sk-table th,sk-table td{padding:9px 12px;border-bottom:1px solid var(--sk-line);white-space:nowrap}
sk-table tr:last-child td{border-bottom:none}
sk-table td.r,sk-table th.r{text-align:right;font-variant-numeric:tabular-nums}
sk-list{display:block;border:1px solid var(--sk-line);border-radius:var(--sk-radius);overflow:hidden;background:var(--sk-bg-raised);box-shadow:var(--sk-shadow)}
sk-list .sk-li{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--sk-line);cursor:pointer}
sk-list .sk-li:last-child{border-bottom:none}
sk-list .sk-li .sk-li-main{flex:1;min-width:0}
sk-list .sk-li .sk-li-title{font-weight:600;font-size:15px}
sk-list .sk-li .sk-li-sub{font-size:13px;color:var(--sk-ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
sk-button,button.sk-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:none;border-radius:12px;padding:11px 18px;font-family:inherit;font-size:15px;font-weight:600;background:var(--sk-accent);color:var(--sk-accent-ink);cursor:pointer}
sk-button[variant=soft],button.sk-btn.soft{background:var(--sk-bg-soft);color:var(--sk-ink)}
sk-button[variant=ghost],button.sk-btn.ghost{background:none;color:var(--sk-accent)}
sk-button:disabled{opacity:.5}
sk-input{display:block;margin-bottom:12px}
sk-input .sk-input-label{font-size:13px;color:var(--sk-ink-2);margin:0 2px 6px}
sk-input input,sk-input textarea,sk-input select{width:100%;border:1px solid var(--sk-line);background:var(--sk-bg-raised);color:var(--sk-ink);border-radius:12px;padding:11px 13px;font-family:inherit;font-size:16px;outline:none}
sk-input input:focus,sk-input textarea:focus{border-color:var(--sk-accent)}
sk-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px}
sk-toggle .sk-toggle-label{font-size:15px}
sk-toggle button{flex:none;width:48px;height:28px;border:none;border-radius:999px;background:var(--sk-line);position:relative;cursor:pointer;transition:background .2s}
sk-toggle button::after{content:'';position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}
sk-toggle button[aria-checked=true]{background:var(--sk-good)} sk-toggle button[aria-checked=true]::after{transform:translateX(20px)}
sk-progress{display:block;height:6px;border-radius:999px;background:var(--sk-line);overflow:hidden}
sk-progress .sk-progress-bar{height:100%;border-radius:999px;background:var(--sk-accent);transition:width .4s ease}
sk-timeline{display:block;position:relative;padding-left:18px}
sk-timeline::before{content:'';position:absolute;left:4px;top:6px;bottom:6px;width:2px;background:var(--sk-line)}
sk-timeline .sk-tl-item{position:relative;padding:0 0 18px 14px}
sk-timeline .sk-tl-item::before{content:'';position:absolute;left:-18px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--sk-accent)}
sk-timeline .sk-tl-when{font-size:12px;color:var(--sk-ink-3)}
sk-timeline .sk-tl-title{font-weight:600;font-size:15px;margin-top:1px}
sk-timeline .sk-tl-body{font-size:13.5px;color:var(--sk-ink-2);margin-top:2px}
sk-avatar{display:inline-flex;width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--sk-bg-soft);align-items:center;justify-content:center;font-weight:700;color:var(--sk-ink-2)}
sk-avatar img{width:100%;height:100%;object-fit:cover}
sk-empty{display:block;text-align:center;padding:44px 20px;color:var(--sk-ink-3)}
sk-empty .sk-empty-title{font-size:16px;font-weight:600;color:var(--sk-ink-2)}
sk-sheet{position:fixed;inset:0;z-index:50;display:none}
sk-sheet.on{display:block}
sk-sheet .sk-sheet-bg{position:absolute;inset:0;background:rgba(0,0,0,.35);animation:skfade .18s ease}
sk-sheet .sk-sheet-card{position:absolute;left:0;right:0;bottom:0;background:var(--sk-bg-raised);border-radius:22px 22px 0 0;padding:14px 18px calc(20px + env(safe-area-inset-bottom));animation:skup .24s cubic-bezier(.2,.9,.3,1);max-height:82vh;overflow-y:auto}
@keyframes skfade{from{opacity:0}} @keyframes skup{from{transform:translateY(40px);opacity:.6}}
.sk-toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(28px + env(safe-area-inset-bottom));z-index:60;background:var(--sk-ink);color:var(--sk-bg);padding:11px 18px;border-radius:999px;font-size:14px;font-weight:600;box-shadow:var(--sk-shadow);animation:skfade .2s ease;max-width:86vw;text-align:center}
