@font-face{font-family:Space Grotesk;src:url(/fonts/SpaceGrotesk-Variable.woff2)format("woff2-variations");font-weight:300 700;font-display:swap}@font-face{font-family:Roboto Mono;src:url(/fonts/RobotoMono-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Roboto Mono;src:url(/fonts/RobotoMono-Medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Roboto Mono;src:url(/fonts/RobotoMono-Bold.woff2)format("woff2");font-weight:700;font-display:swap}:root{--df-black:#0a0a0a;--df-ink:#161616;--df-graphite:#2b2b2b;--df-charcoal:#4a4a4a;--df-steel:#7a7a7a;--df-smoke:#b8b8b8;--df-mist:#dcdcdc;--df-paper:#f2f2f0;--df-bone:#f7f6f3;--df-white:#fff;--df-orange:#ff6224;--df-orange-ink:#d94a14;--df-pink:#fe24b0;--df-blue:#0031f6;--df-numo-green:#30d66b;--bg-page:var(--df-paper);--bg-elevated:var(--df-white);--bg-inverse:var(--df-black);--fg-1:var(--df-black);--fg-2:var(--df-charcoal);--fg-3:var(--df-steel);--fg-inverse:var(--df-white);--border-hair:1px solid #0a0a0a1f;--border-rule:1px solid var(--df-black);--font-body:"Space Grotesk", "Helvetica Neue", Arial, sans-serif;--font-display:"Roboto Mono", ui-monospace, Menlo, monospace;--font-mono:"Roboto Mono", ui-monospace, Menlo, monospace;--radius:10px;--shadow-card:0 1px 2px #0a0a0a0f, 0 8px 24px #0a0a0a0f}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg-page);color:var(--fg-1);font-family:var(--font-body);-webkit-font-smoothing:antialiased}
.app-shell{background:var(--bg-page);height:100dvh;color:var(--fg-1);font-family:var(--font-body);display:flex;position:relative;overflow:hidden}.app-sidebar{background:var(--df-black);color:#fff;flex-direction:column;flex-shrink:0;width:232px;display:flex}.app-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.app-scroll{flex:1;position:relative;overflow:hidden auto}.nav-item{cursor:pointer;transition:color .15s,background .15s}.nav-item:hover{color:#fff!important}.mono{font-family:var(--font-mono)}.mobile-topbar,.bottom-nav{display:none}.bottom-nav a{min-width:0;color:var(--df-smoke);flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;padding:6px 1px;text-decoration:none;display:flex;position:relative}.bottom-nav a.active{color:#fff}.bottom-nav a>span.lbl{font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:9px;font-weight:600;overflow:hidden}.nav-badge{background:var(--df-orange);color:#fff;font-family:var(--font-mono);border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:700;display:flex}@media (max-width:768px){.app-sidebar{display:none!important}.mobile-topbar{background:var(--df-black);color:#fff;z-index:30;flex-shrink:0;justify-content:space-between;align-items:center;padding:11px 14px;position:sticky;top:0;display:flex!important}.bottom-nav{z-index:80;background:var(--df-black);padding:6px 2px calc(6px + env(safe-area-inset-bottom,0px));border-top:1px solid #ffffff1a;align-items:stretch;position:fixed;bottom:0;left:0;right:0;display:flex!important}.bottom-nav .nav-badge{min-width:15px;height:15px;margin-left:4px;font-size:9px;position:absolute;top:2px;left:50%}.app-scroll{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}}
:root{--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--r-sm:6px;--r-md:9px;--r-lg:13px;--r-pill:999px;--sh-1:0 1px 2px #0a0a0a0f;--sh-2:0 2px 4px #0a0a0a0f, 0 1px 2px #0a0a0a0a;--sh-3:0 6px 16px -6px #0a0a0a24, 0 2px 6px -2px #0a0a0a14;--sh-4:0 18px 48px -12px #0a0a0a47;--sh-focus:0 0 0 3px #ff622447;--ease:cubic-bezier(.22, 1, .36, 1);--fast:.13s;--med:.22s}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}.app-scroll::-webkit-scrollbar{width:10px;height:10px}.df-scroll::-webkit-scrollbar{width:10px;height:10px}.app-scroll::-webkit-scrollbar-thumb{background:#0a0a0a29 padding-box content-box;border:3px solid #0000;border-radius:999px}.df-scroll::-webkit-scrollbar-thumb{background:#0a0a0a29 padding-box content-box;border:3px solid #0000;border-radius:999px}.app-scroll::-webkit-scrollbar-thumb:hover{background:#0a0a0a4d padding-box content-box}.df-scroll::-webkit-scrollbar-thumb:hover{background:#0a0a0a4d padding-box content-box}:focus-visible{box-shadow:var(--sh-focus);border-radius:var(--r-sm);outline:none}.df-eyebrow{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3);font-size:10.5px;font-weight:600}.df-h1{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:25px;font-weight:700}.df-section{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-2);font-size:12px;font-weight:700}.df-mono{font-family:var(--font-mono)}.btn{font-family:var(--font-display);letter-spacing:.03em;cursor:pointer;border-radius:var(--r-sm);white-space:nowrap;transition:background var(--fast) var(--ease), color var(--fast) var(--ease), box-shadow var(--fast) var(--ease), transform var(--fast) var(--ease), border-color var(--fast) var(--ease);-webkit-user-select:none;user-select:none;border:0;justify-content:center;align-items:center;gap:7px;padding:9px 15px;font-size:12.5px;font-weight:600;display:inline-flex}.btn:active{transform:translateY(.5px)scale(.99)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--df-black);color:#fff}.btn-primary:hover{box-shadow:var(--sh-2);background:#000}.btn-orange{background:var(--df-orange);color:#fff}.btn-orange:hover{background:var(--df-orange-ink);box-shadow:0 6px 18px -6px #ff622499}.btn-outline{background:var(--bg-elevated);color:var(--fg-1);box-shadow:inset 0 0 0 1px #0a0a0a29}.btn-outline:hover{box-shadow:inset 0 0 0 1px var(--df-black)}.btn-ghost{color:var(--fg-2);background:0 0}.btn-ghost:hover{color:var(--fg-1);background:#0a0a0a0d}.btn-danger{background:var(--bg-elevated);color:var(--df-orange-ink);box-shadow:inset 0 0 0 1px #d94a144d}.btn-danger:hover{background:var(--df-orange-ink);color:#fff}.btn-sm{padding:6px 11px;font-size:11.5px}.btn-icon{border-radius:var(--r-sm);cursor:pointer;color:var(--fg-3);transition:background var(--fast), color var(--fast);background:0 0;border:0;padding:8px;display:inline-flex}.btn-icon:hover{color:var(--fg-1);background:#0a0a0a0f}.field{border-radius:var(--r-sm);background:var(--bg-elevated);width:100%;font:inherit;color:var(--fg-1);transition:border-color var(--fast), box-shadow var(--fast);border:1px solid #0a0a0a29;padding:9px 11px;font-size:14px}.field:hover{border-color:#0a0a0a4d}.field:focus{border-color:var(--df-orange);box-shadow:var(--sh-focus);outline:none}.field::placeholder{color:var(--fg-4)}select.field{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237a7a7a' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}.label{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--fg-3);margin-bottom:6px;font-size:10.5px;font-weight:600;display:block}.card{background:var(--bg-elevated);border-radius:var(--r-lg);box-shadow:var(--sh-1);border:1px solid #0a0a0a17}.badge{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--r-pill);text-transform:uppercase;align-items:center;gap:5px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.badge-soft{background:var(--df-bone);color:var(--fg-2);border:1px solid #0a0a0a1a}.badge-dark{background:var(--df-black);color:#fff}.chip{font-family:var(--font-display);border-radius:var(--r-pill);cursor:pointer;background:var(--bg-elevated);color:var(--fg-2);transition:all var(--fast) var(--ease);border:1px solid #0a0a0a24;padding:5px 11px;font-size:12px;font-weight:600}.chip:hover{border-color:var(--df-black)}.chip--on{background:var(--df-black);border-color:var(--df-black);color:#fff}.dot{border-radius:999px;flex-shrink:0;width:7px;height:7px}.seg{background:var(--df-bone);border-radius:var(--r-md);border:1px solid #0a0a0a1a;gap:2px;padding:3px;display:inline-flex}.seg-item{font-family:var(--font-display);letter-spacing:.02em;color:var(--fg-2);cursor:pointer;transition:all var(--fast) var(--ease);background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:7px 14px;font-size:12.5px;font-weight:600;text-decoration:none;display:inline-flex}.seg-item:hover{color:var(--fg-1);background:#0a0a0a0a}.seg-item--on,.seg-item--on:hover{background:var(--df-black);color:#fff;box-shadow:var(--sh-1)}.table{border-collapse:collapse;width:100%;font-size:13px}.table thead th{z-index:1;background:var(--df-bone);text-align:left;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--fg-3);white-space:nowrap;-webkit-user-select:none;user-select:none;border-bottom:1px solid #0a0a0a1a;padding:10px 13px;font-size:10.5px;font-weight:700;position:sticky;top:0}.table th.sortable{cursor:pointer}.table th.sortable:hover{color:var(--fg-1)}.table tbody td{white-space:nowrap;border-top:1px solid #0a0a0a12;padding:11px 13px}.table tbody tr{transition:background var(--fast)}.table tbody tr:hover{background:var(--df-bone);cursor:pointer}.table.compact tbody td{padding:5px 13px}.table.compact thead th{padding:7px 13px}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;animation:ov-in var(--med) var(--ease);background:#0a0a0a73;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--bg-elevated);border-radius:var(--r-lg);width:100%;box-shadow:var(--sh-4);animation:modal-in var(--med) var(--ease);max-height:92vh;overflow:auto}.drawer{background:var(--bg-page);width:100%;max-width:560px;height:100dvh;box-shadow:var(--sh-4);z-index:50;animation:drawer-in var(--med) var(--ease);flex-direction:column;display:flex;position:fixed;top:0;right:0}@keyframes ov-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.985)}}@keyframes drawer-in{0%{opacity:.6;transform:translate(24px)}}.avatar{font-family:var(--font-display);background:var(--df-graphite);color:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:inline-flex;overflow:hidden}.toast-wrap{z-index:100;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.toast{background:var(--df-black);color:#fff;border-radius:var(--r-md);box-shadow:var(--sh-4);animation:toast-in var(--med) var(--ease);align-items:center;gap:9px;padding:11px 16px;font-size:13px;font-weight:500;display:flex}.toast .dot{width:8px;height:8px}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}.skel{border-radius:var(--r-sm);background:linear-gradient(90deg,#0a0a0a0f 25%,#0a0a0a1c 37%,#0a0a0a0f 63%) 0 0/400% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes df-spin{to{transform:rotate(360deg)}}.tip{position:relative}.tip:after{content:attr(data-tip);background:var(--df-black);color:#fff;font-family:var(--font-mono);letter-spacing:.03em;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--fast), transform var(--fast);z-index:60;border-radius:5px;padding:4px 8px;font-size:10.5px;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)translateY(3px)}.tip:hover:after{opacity:1;transform:translate(-50%)translateY(0)}.enter{animation:enter var(--med) var(--ease) both}.enter-1{animation-delay:40ms}.enter-2{animation-delay:80ms}.enter-3{animation-delay:.12s}@keyframes enter{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
