:root{--background:#fff;--surface:#f5f5f4;--line:#d6d3d1;--text:#1c1917;--muted:#57534e;--accent:#1d4ed8;--accent-ink:#fff;--danger:#b91c1c;--warning:#b45309;--font-display:ui-serif, Georgia, serif;--font-body:system-ui, -apple-system, "Segoe UI", sans-serif;--type-xs:12px;--lh-xs:16px;--type-sm:13px;--lh-sm:18px;--type-base:15px;--lh-base:22px;--type-md:17px;--lh-md:24px;--type-lg:20px;--lh-lg:26px;--type-xl:24px;--lh-xl:30px;--type-2xl:30px;--lh-2xl:34px;--type-3xl:38px;--lh-3xl:42px;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-pill:999px;--control-sm:32px;--control-md:44px;--control-lg:52px;--motion-fast:.12s;--motion-base:.18s;--ease:cubic-bezier(.2, .7, .2, 1);--width-form:640px;--width-page:1120px;--width-rail:216px;--width-aside:340px}body{--surface-raised:color-mix(in srgb, var(--surface) 92%, var(--text));--surface-sunken:color-mix(in srgb, var(--background) 70%, var(--surface));--line-subtle:color-mix(in srgb, var(--line) 55%, var(--surface));--line-strong:color-mix(in srgb, var(--line) 70%, var(--text));--text-secondary:color-mix(in srgb, var(--text) 78%, var(--muted));--accent-soft:color-mix(in srgb, var(--accent) 14%, var(--background));--accent-line:color-mix(in srgb, var(--accent) 55%, var(--line));--danger-soft:color-mix(in srgb, var(--danger) 12%, var(--background));--warning-soft:color-mix(in srgb, var(--warning) 14%, var(--background));--success:var(--accent);--success-soft:var(--accent-soft);--info:var(--secondary,var(--muted));--shadow-color:color-mix(in srgb, var(--text) 10%, transparent);--shadow-sm:0 1px 2px var(--shadow-color);--shadow-md:0 1px 2px var(--shadow-color), 0 4px 12px var(--shadow-color);--shadow-lg:0 2px 6px var(--shadow-color), 0 16px 40px color-mix(in srgb, var(--background) 40%, transparent);--focus-ring:0 0 0 2px var(--background), 0 0 0 4px var(--accent)}*{box-sizing:border-box}html,body{margin:0}body{background:var(--background);color:var(--text);font:var(--weight-regular) var(--type-base)/var(--lh-base) var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}a{color:inherit}:focus-visible{box-shadow:var(--focus-ring);outline:none}h1,h2,h3{font-family:var(--font-display);font-weight:var(--weight-bold);letter-spacing:-.005em;margin:0}h1{font-size:var(--type-2xl);line-height:var(--lh-2xl)}h2{font-size:var(--type-lg);line-height:var(--lh-lg)}.muted{color:var(--muted)}.small{font-size:var(--type-sm)}.num,.money,td.num{font-variant-numeric:tabular-nums}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-md);padding:0 var(--space-5);border-radius:var(--radius-md);font:var(--weight-semibold) var(--type-base)/1 var(--font-body);border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm);transition:background var(--motion-fast) var(--ease), border-color var(--motion-fast) var(--ease), transform var(--motion-fast) var(--ease);text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--line-strong);background:var(--surface-raised)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn-primary:hover{background:color-mix(in srgb, var(--accent) 88%, var(--text));border-color:#0000}.btn:disabled,.btn:disabled:hover{opacity:.5;cursor:not-allowed;transform:none}.btn-primary:disabled,.btn-primary:disabled:hover{opacity:1;background:var(--surface-raised);border-color:var(--line);color:var(--muted);box-shadow:none}.btn-ghost{box-shadow:none;border-color:var(--line);color:var(--text);background:0 0}.btn-ghost:hover{background:var(--surface)}.shell{grid-template-columns:var(--width-rail) minmax(0, 1fr);min-height:100vh;display:grid}.shell>*{min-width:0}.rail{border-right:1px solid var(--line);background:var(--surface-sunken);height:100vh;padding:var(--space-5) var(--space-3);flex-direction:column;gap:2px;display:flex;position:sticky;top:0;overflow-y:auto}.rail .brand{align-items:center;gap:var(--space-3);padding:0 var(--space-2);margin-bottom:var(--space-6);font-family:var(--font-brand,var(--font-display));color:var(--accent);font-size:var(--type-md);line-height:1.1;display:flex}.rail .brand img{object-fit:contain;width:32px;height:32px}.rail a{min-height:36px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--type-base);font-weight:var(--weight-medium);align-items:center;text-decoration:none;display:flex}.rail a:hover{background:var(--surface);color:var(--text)}.rail a.on{background:var(--surface-raised);color:var(--text);font-weight:var(--weight-semibold);box-shadow:inset 2px 0 0 var(--accent)}.rail .sub{padding-left:var(--space-6);font-size:var(--type-sm);color:var(--muted)}.rail .foot{gap:var(--space-3);padding:var(--space-3) var(--space-2) 0;border-top:1px solid var(--line-subtle);font-size:var(--type-sm);color:var(--muted);overflow-wrap:anywhere;margin-top:auto;display:grid}.main{padding:var(--space-8) var(--space-6) var(--space-16);max-width:1440px}.head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);display:flex}.head p{margin:var(--space-2) 0 0;color:var(--muted)}.grid2{gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.grid2.wide-left{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.money .row strong{white-space:nowrap}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-sm)}.card h2{margin-bottom:var(--space-3)}.row{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--line-subtle);display:flex}.row:last-child{border-bottom:0}.row label{color:var(--muted);flex:0 auto}.row .chips{flex:1 1 0}.note{color:var(--muted);font-size:var(--type-sm);margin:var(--space-3) 0 0}input[type=text],input[type=email],input[type=number],input[type=password],select,textarea{min-height:var(--control-md);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line);background:var(--background);color:var(--text);font:var(--weight-medium) var(--type-base) var(--font-body);text-align:right;max-width:220px;transition:border-color var(--motion-fast) var(--ease), box-shadow var(--motion-fast) var(--ease)}input[type=text]:hover,input[type=email]:hover,input[type=number]:hover,input[type=password]:hover,select:hover,textarea:hover{border-color:var(--line-strong)}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1;font-weight:var(--weight-regular)}textarea,.wide{text-align:left;width:100%;max-width:none}.chips{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.chip{align-items:center;gap:var(--space-1);min-height:var(--control-sm);padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--line);color:var(--text-secondary);font:var(--weight-medium) var(--type-sm) var(--font-body);cursor:pointer;font-variant-numeric:tabular-nums;transition:background var(--motion-fast) var(--ease), border-color var(--motion-fast) var(--ease);background:0 0;display:inline-flex}.chip:hover{border-color:var(--line-strong);color:var(--text)}.chip.on{background:var(--text);color:var(--background);border-color:var(--text)}.choice{justify-content:space-between;align-items:center;gap:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2);cursor:pointer;text-align:left;width:100%;color:var(--text);font:inherit;background:0 0;display:flex}.choice.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.choice .dot{border:1.5px solid var(--line-strong);border-radius:50%;flex:none;width:20px;height:20px}.choice.on .dot{border:6px solid var(--accent);background:var(--accent-ink)}.toggle{border-radius:var(--radius-pill);background:var(--line);cursor:pointer;border:0;flex:none;width:44px;height:26px;position:relative}.toggle:after{content:"";background:var(--background);width:20px;height:20px;box-shadow:var(--shadow-sm);transition:left var(--motion-base) var(--ease);border-radius:50%;position:absolute;top:3px;left:3px}.toggle.on{background:var(--accent)}.toggle.on:after{background:var(--accent-ink);left:21px}.lock{font-size:var(--type-xs);color:var(--muted);border:1px solid var(--line);border-radius:var(--radius-pill);padding:2px var(--space-2);white-space:nowrap}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th,td{text-align:left;padding:var(--space-3) var(--space-3);border-bottom:1px solid var(--line-subtle);vertical-align:top}th{font-size:var(--type-xs);color:var(--muted);font-weight:var(--weight-semibold)}.steps{margin:0;padding:0;list-style:none}.steps li{gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line-subtle);grid-template-columns:110px 1fr auto;align-items:center;display:grid}.badge{white-space:nowrap;font-size:var(--type-xs);line-height:var(--lh-xs);font-weight:var(--weight-semibold);border-radius:var(--radius-pill);padding:2px var(--space-2);text-align:center;background:var(--surface-raised);color:var(--text-secondary);align-items:center;gap:6px;display:inline-flex}.badge.done{background:var(--success-soft);color:var(--text);box-shadow:inset 0 0 0 1px var(--accent-line)}.badge.waiting{background:var(--warning-soft);color:var(--warning)}.badge.skipped{box-shadow:inset 0 0 0 1px var(--line);color:var(--muted);background:0 0}.badge.failed{background:var(--danger-soft);color:var(--danger)}.banner{justify-content:space-between;align-items:center;gap:var(--space-3);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border:1px solid var(--line);background:var(--surface);flex-wrap:wrap;display:flex}.banner .btn{min-height:var(--control-sm);padding:0 var(--space-3);font-size:var(--type-sm)}.banner.error{border-color:color-mix(in srgb, var(--danger) 45%, var(--line));background:var(--danger-soft);color:var(--text);box-shadow:inset 3px 0 0 var(--danger)}.banner.ok{border-color:var(--accent-line);background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.skel{background:linear-gradient(90deg, var(--surface), var(--surface-raised), var(--surface));border-radius:var(--radius-md);background-size:200% 100%;height:120px;animation:1.4s ease-in-out infinite sk}@keyframes sk{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skel{animation:none}*{transition:none!important}}.form{gap:var(--space-1);display:grid}.scroll{overflow-x:auto}.form .row input,.form .row select{text-align:left;width:100%;max-width:320px}@media (max-width:820px){.shell{grid-template-columns:minmax(0,1fr)}.rail{z-index:10;align-items:center;gap:var(--space-1);border-right:0;border-bottom:1px solid var(--line);height:auto;padding:var(--space-2) var(--space-4);scrollbar-width:none;background:color-mix(in srgb, var(--background) 92%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(8px);backdrop-filter:saturate(1.4)blur(8px);flex-flow:row;position:sticky;top:0;overflow-x:auto}.rail::-webkit-scrollbar{display:none}.rail .brand{margin:0 var(--space-2) 0 0;flex:none;padding:0}.rail .brand span{display:none}.rail a{white-space:nowrap;flex:none;min-height:34px}.rail a.on{box-shadow:inset 0 -2px 0 var(--accent);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.rail .sub{padding-left:var(--space-3)}.rail .foot{display:none}.scroll td .muted{word-break:break-all}.main{padding:var(--space-5) var(--space-4) var(--space-12)}.grid2,.grid2.wide-left{grid-template-columns:minmax(0,1fr)}table.stack thead{display:none}table.stack,table.stack tbody,table.stack tr,table.stack td{width:100%;display:block}table.stack tr{padding:var(--space-3) 0;border-bottom:1px solid var(--line-subtle)}table.stack td{border:0;padding:2px 0;text-align:left!important}h1{font-size:var(--type-xl);line-height:var(--lh-xl)}.head{flex-direction:column}.steps li{grid-template-columns:1fr auto}.steps li .detail{grid-column:1/-1}table{font-size:var(--type-sm)}}.home{text-align:center;place-items:center;min-height:100vh;padding:32px 16px;display:grid}.home img{width:160px;height:auto}.home h1{font-family:var(--font-brand,var(--font-display));color:var(--accent);font-size:var(--type-3xl);line-height:var(--lh-3xl);margin-top:var(--space-4)}.home p{max-width:560px;margin:var(--space-3) auto 0}.rail a.group{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.rail a.group[aria-expanded=true]{color:var(--text)}.rail a.group span{border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);width:6px;height:6px;margin-right:var(--space-1);font-size:0;transform:rotate(-45deg)}.rail a.group[aria-expanded=true] span{transform:rotate(45deg)}@media (max-width:820px){.rail a.group span{display:none}}.topbar,.shell-icon{display:none}.shell-icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;flex:none;width:16px;height:16px}.wordmark{align-items:center;gap:var(--space-2);min-width:0;color:var(--accent);font-family:var(--font-brand,var(--font-display));font-size:var(--type-md);line-height:var(--lh-md);text-decoration:none;display:inline-flex}.wordmark img{object-fit:contain;flex:none;width:28px;height:28px}.wordmark-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sheet{border:0;border-left:1px solid var(--line);background:var(--surface);width:min(320px,88vw);max-width:100vw;height:100dvh;max-height:100dvh;color:var(--text);box-shadow:var(--shadow-lg);margin:0 0 0 auto;padding:0}.sheet::backdrop{background:color-mix(in srgb, var(--text) 32%, transparent)}.sheet-in{min-height:100%;padding:var(--space-3) var(--space-3) var(--space-5);flex-direction:column;display:flex}.sheet-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:0 0 var(--space-3) var(--space-2);margin-bottom:var(--space-2);border-bottom:1px solid var(--line-subtle);min-height:52px;display:flex}.sheet-close{width:var(--control-md);height:var(--control-md);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:inline-grid}.sheet-close:hover{background:var(--surface-raised);color:var(--text)}.sheet .shell-icon{width:20px;height:20px;display:block}.sheet-nav{gap:2px;display:grid}.sheet-nav a{min-height:var(--control-md);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--type-base);font-weight:var(--weight-medium);align-items:center;text-decoration:none;display:flex}.sheet-nav a:hover{background:var(--surface-raised);color:var(--text)}.sheet-nav a.on{background:var(--surface-raised);color:var(--text);font-weight:var(--weight-semibold);box-shadow:inset 2px 0 0 var(--accent)}.sheet-nav a.in{color:var(--text)}.sheet-nav a.sub{min-height:40px;padding-left:var(--space-6);font-size:var(--type-sm);color:var(--muted)}.sheet-nav a.sub.on{color:var(--text)}.sheet-group{padding:var(--space-1) 0;border-top:1px solid var(--line-subtle);margin-top:var(--space-1);gap:2px;display:grid}.sheet-foot{gap:var(--space-3);padding:var(--space-4) var(--space-2) 0;border-top:1px solid var(--line-subtle);font-size:var(--type-sm);color:var(--muted);overflow-wrap:anywhere;margin-top:auto;display:grid}@media (max-width:1023px){.shell-admin{--topbar-h:56px;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);align-content:start}.shell-admin>.rail{display:none}.shell-admin .topbar{z-index:20;align-items:center;gap:var(--space-4);height:var(--topbar-h);padding:0 var(--space-4) 0 var(--space-6);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--background) 94%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);display:flex;position:sticky;top:0}.shell-admin .topbar .wordmark{flex:auto}.shell-admin .topbar.has-logo .wordmark-name{display:none}.topbar-links{flex:none;align-items:center;gap:2px;height:100%;display:none}.topbar-links a{height:100%;padding:0 var(--space-3);white-space:nowrap;color:var(--text-secondary);font-size:var(--type-sm);font-weight:var(--weight-medium);align-items:center;text-decoration:none;display:inline-flex;box-shadow:inset 0 -2px #0000}.topbar-links a:hover{color:var(--text)}.topbar-links a.on{color:var(--text);font-weight:var(--weight-semibold);box-shadow:inset 0 -2px 0 var(--accent)}.menu-btn{align-items:center;gap:var(--space-2);min-height:36px;padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface);color:var(--text);font:var(--weight-medium) var(--type-sm) var(--font-body);cursor:pointer;flex:none;display:inline-flex}.menu-btn:hover{border-color:var(--line-strong)}.menu-btn .shell-icon{display:block}.shell-admin>.main{padding:var(--space-6) var(--space-6) var(--space-12)}}@media (min-width:760px) and (max-width:1023px){.topbar-links{display:flex}.shell-admin .topbar .wordmark{flex:0 auto;max-width:220px}.shell-admin .topbar .menu-btn{margin-left:auto}}@media (max-width:640px){.shell-admin .topbar{padding:0 var(--space-3) 0 var(--space-4)}.shell-admin>.main{padding:var(--space-5) var(--space-4) var(--space-12)}}
