:root{--paper:#fafaf7;--card:#fff;--ink:#0f1b2d;--ink-2:#33415a;--ink-3:#66728a;--ink-4:#98a2b3;--line:#e3e1da;--line-2:#efede7;--accent:#e8590c;--accent-soft:#fff1e8;--ok:#1e7f4f;--ok-soft:#e8f5ee;--warn:#b7791f;--warn-soft:#fdf5e6;--danger:#c0392b;--danger-soft:#fdecea;--blue:#1d4ed8;--blue-soft:#eaf0fe;--form:#f8dccb;--radius:10px;--shadow:0 1px 2px #0f1b2d0a, 0 4px 16px #0f1b2d0d;--ease:cubic-bezier(.2, .8, .2, 1);--font:"DM Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"DM Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0d1420;--card:#131c2b;--ink:#eef1f6;--ink-2:#c8cfdb;--ink-3:#95a0b4;--ink-4:#66728a;--line:#243046;--line-2:#1b2536;--accent-soft:#2a1a10;--ok-soft:#0f2a1d;--warn-soft:#2a2110;--danger-soft:#2c1412;--blue-soft:#121d36;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#0d1420;--card:#131c2b;--ink:#eef1f6;--ink-2:#c8cfdb;--ink-3:#95a0b4;--ink-4:#66728a;--line:#243046;--line-2:#1b2536;--accent-soft:#2a1a10;--ok-soft:#0f2a1d;--warn-soft:#2a2110;--danger-soft:#2c1412;--blue-soft:#121d36;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--font);font-feature-settings:"tnum" 1, "cv11" 1;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{letter-spacing:-.02em;text-wrap:balance;margin:0;line-height:1.15}h1{font-size:28px;font-weight:650}h2{font-size:19px;font-weight:600}h3{font-size:15px;font-weight:600}p{margin:0}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--ink-3)}.small{font-size:13px}.tiny{font-size:12px}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:20;background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.topbar-inner{align-items:center;gap:22px;max-width:1180px;height:58px;margin:0 auto;padding:0 20px;display:flex}.nav{flex:1;gap:4px;display:flex;overflow-x:auto}.nav a{color:var(--ink-2);white-space:nowrap;border-radius:8px;padding:7px 11px;font-size:14px;font-weight:500}.nav a:hover{background:var(--line-2);text-decoration:none}.nav a.active{color:var(--ink);background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}.main{width:100%;max-width:1180px;margin:0 auto;padding:28px 20px 80px}.narrow{max-width:560px;margin:0 auto}.row{align-items:center;gap:12px;display:flex}.row.wrap{flex-wrap:wrap}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.stack>*+*{margin-top:14px}.stack-lg>*+*{margin-top:24px}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}@media (width<=760px){.grid2,.grid3{grid-template-columns:1fr}h1{font-size:24px}.main{padding:20px 16px 72px}.topbar-inner{gap:12px;padding:0 16px}}.logo{color:var(--ink);letter-spacing:-.02em;align-items:center;gap:9px;font-size:17px;font-weight:700;display:inline-flex}.logo:hover{text-decoration:none}.vial{border:2px solid var(--ink);border-radius:8px;flex:none;width:30px;height:14px;position:relative}.vial:before,.vial:after{content:"";background:var(--ink);width:1.5px;position:absolute;top:-3px;bottom:-3px}.vial:before{left:9px}.vial:after{right:9px}.bubble{background:var(--accent);width:6px;height:6px;animation:settle 1.4s var(--ease) both;border-radius:50%;position:absolute;top:2px;left:11px}@keyframes settle{0%{transform:translate(-8px)}45%{transform:translate(5px)}70%{transform:translate(-2px)}to{transform:translate(0)}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:20px}.card-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.card-body{padding:20px}.hero-card{background:linear-gradient(180deg, var(--card), color-mix(in srgb, var(--card) 85%, var(--paper)));padding:26px}.btn{appearance:none;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;cursor:pointer;transition:transform .16s var(--ease), background .16s, border-color .16s, box-shadow .16s;border-radius:9px;align-items:center;gap:8px;padding:9px 15px;font-size:14px;font-weight:600;line-height:1.2;display:inline-flex;text-decoration:none!important}.btn:hover{border-color:var(--ink-4)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn.primary:hover{box-shadow:0 4px 14px #0f1b2d2e}.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--line-2)}.btn.danger{color:var(--danger)}.btn.lg{border-radius:10px;padding:12px 20px;font-size:15px}.btn.sm{padding:6px 10px;font-size:13px}.field{display:block}.field>label,.field>.flabel,label.field>span{color:var(--ink-2);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field>small{color:var(--ink-3);margin-top:5px;font-size:12px;display:block}input,select,textarea{width:100%;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:9px 11px;transition:border-color .14s,box-shadow .14s}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);outline:none}input[type=checkbox],input[type=radio]{width:auto}textarea{resize:vertical;min-height:120px}.check{align-items:flex-start;gap:9px;font-size:14px;display:flex}.check input{margin-top:3px}.chip{background:var(--line-2);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.chip:before{content:"";opacity:.85;background:currentColor;border-radius:50%;width:6px;height:6px}.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.danger{background:var(--danger-soft);color:var(--danger)}.chip.blue{background:var(--blue-soft);color:var(--blue)}.chip.accent{background:var(--accent-soft);color:var(--accent)}.chip.live:before{animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}.table-wrap{overflow-x:auto}table.t{border-collapse:collapse;width:100%;font-size:14px}table.t th{text-align:left;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 12px;font-size:12px;font-weight:600}table.t td{border-bottom:1px solid var(--line-2);vertical-align:middle;padding:11px 12px}table.t tr:last-child td{border-bottom:none}table.t td.num,table.t th.num{text-align:right;font-variant-numeric:tabular-nums}table.t tr.click{cursor:pointer}table.t tr.click:hover td{background:var(--line-2)}.grid-hours{border-collapse:separate;border-spacing:0;font-size:13px}.grid-hours th,.grid-hours td{text-align:center;padding:4px}.grid-hours th{color:var(--ink-3);font-size:11px;font-weight:600}.grid-hours th .d{color:var(--ink-4);font-weight:500;display:block}.grid-hours input{text-align:center;width:52px;font-family:var(--mono);padding:6px 4px;font-size:13px}.grid-hours input.ot{background:var(--warn-soft)}.grid-hours .lab{text-align:left;color:var(--ink-3);padding-right:8px;font-size:11px;font-weight:600}.tot{font-family:var(--mono);font-weight:600}.tot.good{color:var(--ok)}.tot.bad{color:var(--danger)}.notice{border:1px solid #0000;border-radius:9px;padding:12px 14px;font-size:14px}.notice.ok{background:var(--ok-soft);color:var(--ok)}.notice.warn{background:var(--warn-soft);color:#8a5a12}.notice.danger{background:var(--danger-soft);color:var(--danger)}.notice.info{background:var(--blue-soft);color:var(--blue)}.notice ul{margin:6px 0 0;padding-left:18px}.steps{counter-reset:s;gap:0;margin:0;padding:0;list-style:none;display:flex}.steps li{color:var(--ink-3);flex:1;padding-top:30px;font-size:13px;position:relative}.steps li:before{counter-increment:s;content:counter(s);border:1.5px solid var(--line);background:var(--card);z-index:1;border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;font-weight:600;display:grid;position:absolute;top:0;left:0}.steps li:after{content:"";background:var(--line);height:1.5px;position:absolute;top:12px;left:24px;right:0}.steps li:last-child:after{display:none}.steps li.done{color:var(--ink-2)}.steps li.done:before{content:"✓";background:var(--ok);border-color:var(--ok);color:#fff}.steps li.now{color:var(--ink);font-weight:600}.steps li.now:before{border-color:var(--accent);color:var(--accent)}.checks{margin:0;padding:0;list-style:none}.checks li{border-bottom:1px solid var(--line-2);gap:10px;padding:9px 0;font-size:14px;display:flex}.checks li:last-child{border-bottom:none}.checks .ic{border-radius:50%;flex:none;place-items:center;width:20px;height:20px;margin-top:1px;font-size:12px;font-weight:700;display:grid}.ic.ok{background:var(--ok-soft);color:var(--ok)}.ic.block,.ic.user{background:var(--danger-soft);color:var(--danger)}.ic.review,.ic.warn{background:var(--warn-soft);color:var(--warn)}.ic.info{background:var(--blue-soft);color:var(--blue)}.stat .k{color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:600}.stat .v{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:650}.plan{flex-direction:column;gap:10px;display:flex;position:relative}.plan .price{letter-spacing:-.03em;font-size:30px;font-weight:700}.plan .price small{color:var(--ink-3);font-size:14px;font-weight:500}.plan.hero{border-color:var(--ink);box-shadow:0 10px 30px #0f1b2d1a}.plan .ribbon{background:var(--accent);color:#fff;letter-spacing:.03em;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700;position:absolute;top:-11px;left:18px}.drop{border:1.5px dashed var(--ink-4);text-align:center;background:var(--card);cursor:pointer;border-radius:12px;padding:30px;transition:border-color .16s,background .16s}.drop.over{border-color:var(--accent);background:var(--accent-soft)}.drop strong{margin-bottom:4px;font-size:16px;display:block}.settle{animation:settleIn .32s var(--ease) both}.settle-stagger>*{animation:settleIn .34s var(--ease) both}.settle-stagger>:nth-child(2){animation-delay:40ms}.settle-stagger>:nth-child(3){animation-delay:80ms}.settle-stagger>:nth-child(4){animation-delay:.12s}.settle-stagger>:nth-child(5){animation-delay:.16s}.settle-stagger>:nth-child(n+6){animation-delay:.2s}@keyframes settleIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.proc{align-items:center;gap:18px;display:flex}.proc .sheet{border:1.5px solid var(--ink-4);background:repeating-linear-gradient(180deg, transparent 0 8px, var(--line) 8px 9px);border-radius:6px;width:64px;height:46px;position:relative;overflow:hidden}.proc .sheet:after{content:"";background:var(--accent);opacity:.25;height:9px;animation:scan 1.6s var(--ease) infinite;position:absolute;left:0;right:0}@keyframes scan{0%{top:-9px}to{top:46px}}.skeleton{background:linear-gradient(90deg, var(--line-2), var(--line), var(--line-2));background-size:200% 100%;border-radius:6px;height:14px;animation:1.2s linear infinite sk}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}.toast{background:var(--ink);color:var(--paper);z-index:50;box-shadow:var(--shadow);animation:settleIn .26s var(--ease) both;border-radius:10px;padding:11px 16px;font-size:14px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.divider{background:var(--line);height:1px;margin:18px 0}.kbd{font-family:var(--mono);border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:12px}@media (width<=760px){.hide-sm{display:none!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}
