@font-face{font-family:Fira Sans;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/fira-sans-400.woff2)format("woff2")}@font-face{font-family:Fira Sans;font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/fira-sans-500.woff2)format("woff2")}@font-face{font-family:Fira Sans;font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/fira-sans-600.woff2)format("woff2")}@font-face{font-family:Fira Sans;font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/fira-sans-700.woff2)format("woff2")}@font-face{font-family:Fira Code;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/fira-code-400.woff2)format("woff2")}@font-face{font-family:Fira Code;font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/fira-code-500.woff2)format("woff2")}@font-face{font-family:Fira Code;font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/fira-code-600.woff2)format("woff2")}:root{--bg:#f2f4f8;--panel:#fff;--panel2:#edf0f5;--border:#dce1ea;--border-strong:#1e3a5f;--text:#101828;--muted:#5b6472;--navy:#1e3a5f;--navy-deep:#16304f;--navy-dim:#1e3a5f12;--accent:#047857;--accent-dim:#0596691a;--warn:#b45309;--warn-dim:#b453091a;--danger:#dc2626;--danger-dim:#dc262614;--radius:12px;--radius-sm:8px;--radius-xs:6px;--shadow-1:0 1px 2px #1018280d;--shadow-2:0 1px 2px #1018280d, 0 4px 12px -2px #10182812;--shadow-3:0 2px 4px #1018280f, 0 12px 28px -8px #10182824;--ring:0 0 0 3px #1e3a5f2e}*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:var(--text);background:radial-gradient(900px 420px at 85% -120px, #1e3a5f0f, transparent 60%), radial-gradient(700px 380px at -10% 0, #0478570d, transparent 55%), var(--bg);background-attachment:fixed;font-family:Fira Sans,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.55}a{color:inherit;text-decoration:none}button{font:inherit}::placeholder{color:var(--muted);opacity:1}::selection{background:#1e3a5f29}:focus-visible{outline:2px solid var(--navy);outline-offset:2px;border-radius:var(--radius-xs)}.wrap{max-width:1100px;margin:0 auto;padding:28px 20px 40px;animation:.24s both page-in}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.page-title{letter-spacing:-.015em;margin:0 0 4px;font-size:26px;font-weight:700}.page-sub{color:var(--muted);max-width:72ch;margin:0 0 20px;font-size:14px}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1)}.card-pad{padding:18px 20px}.card-link{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);transition:border-color .16s,box-shadow .2s,transform .2s;display:block}.card-link:hover{box-shadow:var(--shadow-2);border-color:#1e3a5f73;transform:translateY(-1px)}.btn{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;min-height:40px;box-shadow:var(--shadow-1);justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:500;transition:border-color .14s,background .14s,color .14s,box-shadow .18s,transform .12s;display:inline-flex}.btn:hover{box-shadow:var(--shadow-2);border-color:#1e3a5f80}.btn:active{box-shadow:var(--shadow-1);transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default;box-shadow:var(--shadow-1);transform:none}.btn-primary{background:linear-gradient(180deg, #24466f, var(--navy) 55%, var(--navy-deep));border-color:var(--navy-deep);color:#fff;font-weight:600;box-shadow:0 1px 2px #1018282e,inset 0 1px #ffffff1f}.btn-primary:hover{background:linear-gradient(#2a4e7b,#1b3557 55%,#132b47);border-color:#132b47;box-shadow:0 2px 6px #1018283d,inset 0 1px #ffffff1f}.btn-danger{color:var(--danger);background:var(--panel);border-color:#dc262673}.btn-danger:hover{background:var(--danger-dim);border-color:var(--danger)}.btn-ghost{color:var(--muted);box-shadow:none;background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--text);background:var(--navy-dim);box-shadow:none;border-color:#0000}.input,.select{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:40px;color:var(--text);padding:8px 12px;font-family:inherit;font-size:16px;transition:border-color .14s,box-shadow .14s}.input:hover,.select:hover{border-color:#1e3a5f59}.input:focus,.select:focus{border-color:var(--navy);box-shadow:var(--ring);outline:none}.label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px;font-size:12px;font-weight:600;display:block}.badge{font-variant-numeric:tabular-nums;border-radius:var(--radius-xs);background:var(--panel2);border:1px solid var(--border);color:var(--text);white-space:nowrap;padding:2px 8px;font-family:Fira Code,ui-monospace,monospace;font-size:11.5px;display:inline-block}.badge-ok{background:var(--accent-dim);color:var(--accent);border-color:#0596694d}.badge-warn{background:var(--warn-dim);color:var(--warn);border-color:#b453094d}.badge-danger{background:var(--danger-dim);color:var(--danger);border-color:#dc26264d}a.badge{transition:border-color .14s,box-shadow .14s}a.badge:hover{border-color:var(--navy);box-shadow:var(--shadow-1)}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);text-align:left;border-bottom:2px solid var(--border-strong);background:var(--panel);padding:9px 10px;font-size:11px;font-weight:600}.table td{border-bottom:1px solid var(--border);padding:10px}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background .12s}.table tbody tr:hover{background:var(--navy-dim)}.table-scroll{-webkit-overflow-scrolling:touch;border-radius:var(--radius);overflow-x:auto}.table-scroll .table th{z-index:1;position:sticky;top:0}@media (max-width:640px){.table-scroll>.table{min-width:560px}}.card-thumb{aspect-ratio:5/7;object-fit:cover;border:1px solid var(--border);background:var(--panel2);width:72px;box-shadow:var(--shadow-1);border-radius:5px;transition:transform .16s,box-shadow .16s;display:block}.card-thumb:hover{box-shadow:var(--shadow-2);transform:scale(1.04)}.card-hover-preview{aspect-ratio:5/7;object-fit:contain;z-index:1000;border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow-3);pointer-events:none;border-radius:10px;animation:.14s both preview-in;position:fixed}@keyframes preview-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}.card-thumb-ph{aspect-ratio:5/7;border:1px solid var(--border);background:repeating-linear-gradient(45deg, transparent 0 6px, #10182808 6px 12px), var(--panel2);border-radius:5px;width:72px;display:block}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.stat{background:var(--panel);border:1px solid var(--border);border-top:3px solid var(--navy);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:14px 16px}.stat-num{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-family:Fira Code,ui-monospace,monospace;font-size:27px;font-weight:700;line-height:1.2}.stat-label{color:var(--muted);font-size:12px}.fill{background:var(--panel2);border-radius:999px;height:8px;overflow:hidden}.fill>i{background:linear-gradient(90deg, #2a4e7b, var(--navy));border-radius:999px;height:100%;transition:width .3s;display:block}.grid-binders{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.actions-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.muted{color:var(--muted)}.mono{font-variant-numeric:tabular-nums;font-family:Fira Code,ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace}.site-header{z-index:50;-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--border);background:#ffffffd1;position:sticky;top:0;box-shadow:0 1px 8px #1018280a}.site-header-inner{align-items:center;gap:18px;max-width:1100px;margin:0 auto;padding:10px 20px;display:flex}.brand{color:var(--text);white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.brand-mark{background:linear-gradient(160deg, #24466f, var(--navy-deep));color:#fff;width:28px;height:28px;box-shadow:inset 0 1px 0 #ffffff2e, var(--shadow-1);border-radius:8px;justify-content:center;align-items:center;font-family:Fira Code,ui-monospace,monospace;font-size:14px;font-weight:700;line-height:1;display:inline-flex}.brand-name{letter-spacing:-.01em;font-size:17px;font-weight:700}.site-nav{align-items:center;gap:4px;min-width:0;display:flex}.nav-link{color:var(--muted);white-space:nowrap;align-items:center;padding:6px 2px;font-size:14px;transition:color .14s;display:inline-flex;position:relative}.nav-link:hover{color:var(--text)}.nav-link.active{color:var(--text);font-weight:600}.nav-link.active:after{content:"";background:var(--navy);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:0;right:0}.nav-count{background:var(--warn-dim);min-width:18px;color:var(--warn);text-align:center;vertical-align:1px;border:1px solid #b453094d;border-radius:999px;margin-left:6px;padding:0 5px;font-family:Fira Code,ui-monospace,monospace;font-size:11px;font-weight:600;line-height:16px;display:inline-block}.header-search{flex:0 280px;min-width:0;margin-left:auto;transition:flex-basis .18s;display:flex;position:relative}.header-search:focus-within{flex-basis:360px}.header-search .input{background:var(--panel2);border-color:#0000;border-radius:999px;width:100%;max-width:none;min-height:36px;padding:6px 30px 6px 34px}.header-search .input:hover{border-color:#1e3a5f4d}.header-search .input:focus{background:var(--panel)}.header-user{color:var(--muted);white-space:nowrap;align-items:center;gap:10px;font-size:13px;display:flex}.header-user strong{color:var(--text);font-weight:600}.header-user .btn{min-height:32px;padding:4px 12px;font-size:13px}.nav-tools{align-items:center;gap:12px;display:flex}.nav-tools .nav-link{font-size:13px}.nav-sep{background:var(--border);flex-shrink:0;width:1px;height:20px}.header-search-icon{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.kbd{color:var(--muted);background:var(--panel);border:1px solid var(--border);pointer-events:none;border-radius:4px;padding:0 5px;font-family:Fira Code,ui-monospace,monospace;font-size:11px;line-height:16px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.avatar{background:var(--panel2);border:1px solid var(--border);width:28px;height:28px;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;font-family:Fira Code,ui-monospace,monospace;font-size:11px;font-weight:600;display:inline-flex}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:26px 0 10px;font-size:13px;font-weight:600}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:26px 0 10px;display:flex}.section-head .section-title{margin:0}.task-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.task{background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--navy);border-radius:var(--radius);box-shadow:var(--shadow-1);grid-template-columns:52px 1fr auto;align-items:center;gap:14px;padding:14px 18px 14px 15px;display:grid}.task-num{font-variant-numeric:tabular-nums;min-width:52px;height:42px;color:var(--navy);background:var(--navy-dim);border-radius:var(--radius-sm);justify-content:center;align-items:center;font-family:Fira Code,ui-monospace,monospace;font-size:22px;font-weight:700;line-height:1;display:inline-flex}.task-title{align-items:center;gap:7px;margin:0;font-size:15px;font-weight:600;display:flex}.task-note{color:var(--muted);max-width:66ch;margin:2px 0 0;font-size:13px}.task-jumps{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.task-actions{justify-self:end;align-items:center;gap:8px;display:flex}.task-warn{border-left-color:var(--warn)}.task-warn .task-num{color:var(--warn);background:var(--warn-dim)}.task-danger{border-left-color:var(--danger)}.task-danger .task-num{color:var(--danger);background:var(--danger-dim)}.task-done{background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow-1);align-items:flex-start;gap:14px;padding:18px 20px;display:flex}.task-done-mark{background:var(--accent-dim);width:40px;height:40px;color:var(--accent);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.task-done-title{margin:0;font-size:15px;font-weight:600}.task-done-note{color:var(--muted);margin:2px 0 0;font-size:13px}.task-done-links{color:var(--muted);margin:10px 0 0;font-size:13px}.task-done-links a{color:var(--navy);text-underline-offset:3px;text-decoration:underline}.stat-quiet{border-top:1px solid var(--border)}.stat-quiet .stat-num{font-size:22px}.stat-meta{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:12px 0 0;font-size:13px;display:flex}.steck-step{grid-template-columns:minmax(220px,300px) 1fr;align-items:start;gap:24px;display:grid}.steck-img img{aspect-ratio:5/7;object-fit:contain;background:var(--panel2);width:100%;box-shadow:var(--shadow-2);border-radius:10px;display:block}.steck-img-ph{aspect-ratio:5/7;border:1px dashed var(--border);background:var(--panel2);width:100%;color:var(--muted);border-radius:10px;place-items:center;font-size:13px;display:grid}.steck-slot{letter-spacing:-.01em;color:var(--navy);background:var(--navy-dim);border-radius:var(--radius);padding:10px 16px;font-size:clamp(28px,5vw,44px);font-weight:700;line-height:1.1;display:inline-block}.steck-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px;display:grid}.steck-cell{text-align:left;cursor:pointer;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);font:inherit;color:inherit;padding:8px;transition:border-color .14s,box-shadow .18s,opacity .14s;display:block;position:relative}.steck-cell:hover{box-shadow:var(--shadow-2);border-color:#1e3a5f73}.steck-cell img{aspect-ratio:5/7;object-fit:cover;background:var(--panel2);border-radius:6px;width:100%;display:block}.steck-cell-slot{color:var(--navy);margin-top:6px;font-size:13px;font-weight:700;display:block}.steck-cell-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.steck-cell.is-done{opacity:.45}.steck-cell.is-done .steck-cell-slot{color:var(--muted)}.steck-cell-mark{background:var(--accent);color:#fff;width:34px;height:34px;box-shadow:var(--shadow-2);border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:10px;right:10px}@media (max-width:640px){.steck-step{grid-template-columns:1fr;gap:16px}.steck-img{max-width:240px;margin:0 auto}.steck-grid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (max-width:640px){.wrap{padding:16px 14px 28px}.site-header-inner{flex-wrap:wrap;gap:10px;padding:8px 12px}.brand{order:1}.header-user{order:2;margin-left:auto}.header-search{flex:1 0 100%;order:3;margin-left:0}.header-search:focus-within{flex-basis:100%}.header-search .input{max-width:none;font-size:16px}.kbd{display:none}.site-nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:0 auto;order:4;min-width:0;overflow-x:auto}.site-nav::-webkit-scrollbar{display:none}.nav-tools{flex:none;order:5;margin-left:auto}.nav-sep,.nav-sep-user{display:none}.nav-link{padding:8px 6px}.site-header-inner{row-gap:6px}.task{grid-template-columns:44px 1fr;gap:10px;padding:12px 14px}.task-num{min-width:44px;height:38px;font-size:19px}.task-actions{grid-column:1/-1}.task-actions .btn{width:100%}}@media (min-width:641px){.header-search .input{font-size:14px}}.zd-backdrop{z-index:60;background:#0f172073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.zd-sheet{background:var(--panel);border:1px solid var(--border);border-radius:10px;width:min(480px,100%);padding:16px 18px;box-shadow:0 12px 40px #00000047}.zd-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.zd-row{gap:4px;display:grid}.zd-row .select{width:100%}@media (pointer:coarse){.zd-backdrop{align-items:flex-end;padding:0}.zd-sheet{width:100%;padding-bottom:max(18px, env(safe-area-inset-bottom));border-radius:14px 14px 0 0}.zd-sheet .btn,.zd-sheet .select{min-height:44px;font-size:15px}}
