:root{--ink:#15181a;--ink2:#3a4044;--muted:#66706a;--faint:#9aa39d;--line:#e3e6e2;--line2:#d5d9d4;--canvas:#f6f7f5;--chip:#f0f2ef;--white:#fff;--accent:#2f8f5b;--accent-ink:color-mix(in oklab, var(--accent) 72%, black);--accent-tint:color-mix(in oklab, var(--accent) 10%, white);--accent-tint2:color-mix(in oklab, var(--accent) 20%, white);--red:#b3261e;--red-tint:#fde3e1;--blue:#1c4f9b;--blue-tint:#d9e6f5;--purple:#6b3fd1;--purple-tint:#ede6fb;--amber:#8a5a00;--amber-tint:#fff3d6;--shadow-card:0 1px 2px #15181a0a;--shadow-pop:0 24px 60px #15181a2e;--radius:8px;color:var(--ink);-webkit-font-smoothing:antialiased;font-family:DM Sans,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body{background:var(--canvas);min-height:100%;margin:0;padding:0}body{font-size:14px;line-height:1.45}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input,textarea,select{font:inherit;color:inherit}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.faint{color:var(--faint)}.mono{font-family:ui-monospace,Menlo,monospace}.accent-text{color:var(--accent-ink);font-weight:600}.row{align-items:center;gap:10px;display:flex}.col{flex-direction:column;display:flex}.grow{flex:1;min-width:0}.spacer{margin-left:auto}.nowrap{white-space:nowrap}.link{color:var(--accent-ink);font-weight:600}.link:hover{text-decoration:underline}.logo-mark{background:var(--accent);border-radius:5px;flex:none;place-items:center;width:20px;height:20px;display:grid;overflow:hidden}.logo-mark img{object-fit:cover;width:100%;height:100%}.logo-bars{align-items:flex-end;gap:1.4px;height:46%;display:flex}.logo-bars span{background:#fff;border-radius:1px;width:13%;min-width:2.4px}.logo-bars span:first-child{opacity:.55;height:45%}.logo-bars span:nth-child(2){height:100%}.logo-bars span:nth-child(3){opacity:.8;height:70%}.brand{color:var(--ink);white-space:nowrap;align-items:center;gap:10px;font-size:15px;font-weight:700;display:flex}.topnav{border-bottom:1px solid var(--line);height:60px;color:var(--muted);z-index:40;background:#fff;align-items:center;gap:28px;padding:0 32px;font-size:14px;display:flex;position:sticky;top:0}.topnav .divider{background:var(--line);width:1px;height:22px}.navlink{white-space:nowrap;border-bottom:2px solid #0000;padding:19px 0}.navlink:hover{color:var(--ink)}.navlink.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.count-badge{background:var(--accent);color:#fff;border-radius:999px;margin-left:4px;padding:1px 7px;font-size:11px;font-weight:700}.prod-pill{background:var(--chip);color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;font-weight:600;display:flex}.prod-dot{border-radius:999px;flex:none;width:16px;height:16px}.search-trigger{border:1px solid var(--line);width:240px;height:36px;color:var(--faint);background:var(--canvas);border-radius:8px;align-items:center;margin-left:auto;padding:0 12px;font-size:13px;display:flex}.icon-btn{width:34px;height:34px;color:var(--muted);border-radius:999px;place-items:center;display:grid;position:relative}.icon-btn:hover{background:var(--chip);color:var(--ink)}.dot-badge{background:var(--red);border:2px solid #fff;border-radius:999px;width:8px;height:8px;position:absolute;top:5px;right:6px}.avatar{border-radius:999px;flex:none;place-items:center;width:32px;height:32px;font-size:11px;font-weight:700;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.top-progress{background:var(--accent);z-index:100;height:2px;animation:1.2s ease-out forwards progress;position:fixed;top:0;left:0}@keyframes progress{0%{width:0}to{width:85%}}.page{max-width:1200px;margin:0 auto;padding:32px 32px 64px}.page-head{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.page-title{letter-spacing:-.025em;color:var(--ink);font-size:30px;font-weight:600}.page-sub{color:var(--muted);margin-top:6px;font-size:14px}.section-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.crumbs{color:var(--muted);font-size:13px}.crumbs b{color:var(--ink)}.btn{white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;height:40px;padding:0 16px;font-size:14px;font-weight:600;transition:background .12s,opacity .12s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;font-weight:700}.btn-primary:hover:not(:disabled){background:var(--accent-ink)}.btn-secondary{border-color:var(--line2);color:var(--ink);background:#fff}.btn-secondary:hover:not(:disabled){background:var(--canvas)}.btn-dark{background:var(--ink);color:#fff}.btn-danger{background:var(--red);color:#fff;font-weight:700}.btn-ghost{color:var(--muted)}.btn-ghost:hover{color:var(--ink);background:var(--chip)}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-lg{height:48px;font-size:15px}.btn-block{width:100%}.spinner{border:2px solid;border-right-color:#0000;border-radius:999px;flex:none;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.field{flex-direction:column;gap:8px;display:flex}.field-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.field-label span{letter-spacing:0;text-transform:none;font-weight:400}.input,.select,.textarea{border:1px solid var(--line2);width:100%;height:44px;color:var(--ink);background:#fff;border-radius:8px;outline:none;padding:0 14px;font-size:14px}.textarea{resize:vertical;height:auto;min-height:96px;padding:12px 14px;line-height:1.55}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--faint) 50%), linear-gradient(135deg, var(--faint) 50%, transparent 50%);background-position:calc(100% - 18px) 19px,calc(100% - 13px) 19px;background-repeat:no-repeat;background-size:5px 5px;padding-right:34px}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.input-lg{height:48px;font-size:15px}.input-prefix{border:1px solid var(--line2);background:#fff;border-radius:8px;align-items:center;height:44px;display:flex;overflow:hidden}.input-prefix span{color:var(--faint);white-space:nowrap;padding:0 2px 0 14px;font-size:14px}.input-prefix input{border:0;outline:none;flex:1;min-width:0;height:100%;padding:0 14px 0 0;font-size:14px}.check{color:var(--muted);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:inline-flex}.check input{accent-color:var(--accent);width:15px;height:15px}.error-text{color:var(--red);font-size:13px}.hint{color:var(--faint);font-size:12px;line-height:1.5}.switch{flex:none;width:36px;height:20px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0;position:absolute}.switch span{background:var(--line2);cursor:pointer;border-radius:999px;transition:background .15s;position:absolute;inset:0}.switch span:after{content:"";background:#fff;border-radius:999px;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.switch input:checked+span{background:var(--accent)}.switch input:checked+span:after{transform:translate(16px)}.switch input:disabled+span{opacity:.5;cursor:not-allowed}.code-inputs{gap:8px;display:flex}.code-inputs input{border:1px solid var(--line2);text-align:center;text-transform:uppercase;border-radius:8px;outline:none;flex:1;min-width:0;height:52px;font:600 20px ui-monospace,monospace}.code-inputs input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.tag-input{border:1px solid var(--line2);background:#fff;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;min-height:44px;padding:6px 10px;display:flex}.tag-input input{border:0;outline:none;flex:1;min-width:140px;height:30px;font-size:14px}.tag{background:var(--chip);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:600;display:inline-flex}.tag button{color:var(--faint);font-size:12px}.card{border:1px solid var(--line);box-shadow:var(--shadow-card);background:#fff;border-radius:12px}.card-pad{padding:20px}.card-title{color:var(--ink);font-size:15px;font-weight:600}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.grid4{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.rcard{border:1px solid var(--line);box-shadow:var(--shadow-card);background:#fff;border-radius:12px;flex-direction:column;gap:12px;min-height:170px;padding:18px;transition:border-color .12s,box-shadow .12s;display:flex}.rcard:hover{border-color:var(--line2);box-shadow:0 4px 14px #15181a0f}.rcard.focused{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.labels{letter-spacing:.04em;text-transform:uppercase;flex-wrap:wrap;gap:8px;font-size:11px;font-weight:700;display:flex}.rtitle{color:var(--ink);text-wrap:pretty;font-size:16px;font-weight:600;line-height:1.35}.rdesc{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.rfoot{color:var(--muted);align-items:center;gap:10px;margin-top:auto;font-size:12px;display:flex}.vote{border:1px solid var(--line2);color:var(--ink);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:700;transition:transform .1s;display:inline-flex}.vote:hover:not(:disabled){border-color:var(--accent)}.vote:active:not(:disabled){transform:scale(.96)}.vote.voted{background:var(--accent);border-color:var(--accent);color:#fff}.vote:disabled{opacity:.6;cursor:not-allowed}.mini-avatar{border-radius:999px;flex:none;place-items:center;width:24px;height:24px;font-size:9px;font-weight:700;display:grid}.chip{background:var(--chip);color:var(--muted);white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.chip-red{background:var(--red-tint);color:var(--red)}.chip-amber{background:var(--amber-tint);color:var(--amber)}.chip-blue{background:var(--blue-tint);color:var(--blue)}.chip-green{background:var(--accent-tint);color:var(--accent-ink)}.chip-purple{background:var(--purple-tint);color:var(--purple)}.pill{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:999px;align-items:center;gap:7px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}.pill.selected{border:2px solid var(--ink);padding:7px 11px}.status-dot{border-radius:999px;flex:none;width:8px;height:8px;display:inline-block}.official{letter-spacing:.04em;color:var(--accent-ink);background:var(--accent-tint);border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.seg{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.seg a,.seg button{color:var(--muted);white-space:nowrap;border-radius:7px;padding:7px 12px;font-weight:500}.seg a:hover,.seg button:hover{color:var(--ink)}.seg .on{background:var(--ink);color:#fff;font-weight:600}.seg .on:hover{color:#fff}.toggle-group{border:1px solid var(--line2);background:#fff;border-radius:8px;display:inline-flex;overflow:hidden}.toggle-group a,.toggle-group button{height:34px;color:var(--muted);align-items:center;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.toggle-group .on{background:var(--ink);color:#fff}.filter-select{border:1px solid var(--line2);appearance:none;background:#fff;background-image:linear-gradient(45deg, transparent 50%, var(--faint) 50%), linear-gradient(135deg, var(--faint) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 15px) 15px,calc(100% - 10px) 15px;background-repeat:no-repeat;background-size:5px 5px;border-radius:8px;height:34px;padding:0 30px 0 12px;font-size:13px;font-weight:600}.filter-select.plain{color:var(--muted);background-color:#0000;border:0;font-weight:500}.overlay{z-index:80;background:#15181a59;place-items:center;padding:16px;animation:.12s ease-out fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.dialog{width:520px;max-width:100%;max-height:calc(100vh - 32px);box-shadow:var(--shadow-pop);background:#fff;border-radius:14px;padding:28px;animation:.14s ease-out pop;overflow:auto}@keyframes pop{0%{opacity:0;transform:translateY(6px)scale(.98)}}.dialog-wide{width:640px}.dialog-head{align-items:flex-start;gap:12px;display:flex}.dialog-title{letter-spacing:-.015em;color:var(--ink);font-size:20px;font-weight:600}.dialog-sub{color:var(--muted);margin-top:6px;font-size:14px;line-height:1.5}.dialog-close{color:var(--faint);margin-left:auto;padding:4px;font-size:18px;line-height:1}.dialog-body{flex-direction:column;gap:16px;margin-top:22px;display:flex}.dialog-foot{justify-content:flex-end;align-items:center;gap:10px;margin-top:24px;display:flex}.menu-wrap{position:relative}.menu{border:1px solid var(--line);min-width:240px;box-shadow:var(--shadow-pop);z-index:60;background:#fff;border-radius:12px;padding:6px;animation:.1s ease-out pop;position:absolute;top:calc(100% + 6px)}.menu-right{right:0}.menu-label{color:var(--faint);letter-spacing:.06em;padding:8px 10px 4px;font-size:11px;font-weight:700}.menu-item{color:var(--ink);text-align:left;border-radius:8px;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:14px;display:flex}.menu-item:hover,.menu-item.hl{background:var(--canvas)}.menu-item .sub{color:var(--muted);font-size:12px}.menu-sep{background:var(--line);height:1px;margin:6px 4px}.kbd{color:var(--muted);background:var(--chip);border:1px solid var(--line);white-space:nowrap;border-radius:5px;padding:2px 6px;font:600 11px ui-monospace,Menlo,monospace}.toasts{z-index:120;flex-direction:column;gap:10px;width:360px;max-width:calc(100vw - 32px);display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--ink);color:#fff;box-shadow:var(--shadow-pop);border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;animation:.15s ease-out pop;display:flex}.toast-icon{border-radius:999px;flex:none;place-items:center;width:20px;height:20px;margin-top:1px;font-size:11px;font-weight:700;display:grid}.toast .t-sub{color:#aab3ac;margin-top:2px;font-size:13px}.toast .t-action{color:color-mix(in oklab, var(--accent) 50%, white);white-space:nowrap;font-weight:700}.toast .t-x{color:#6b726d}.empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:64px 24px;display:flex}.empty-icon{background:var(--accent-tint);width:56px;height:56px;color:var(--accent-ink);border-radius:14px;place-items:center;margin-bottom:6px;font-size:22px;display:grid}.empty-title{letter-spacing:-.015em;font-size:20px;font-weight:600}.empty-text{color:var(--muted);max-width:420px;font-size:14px;line-height:1.55}.dashed{border:1px dashed var(--line2);border-radius:12px}.skel{background:linear-gradient(90deg,#eceee9 0%,#f4f6f3 50%,#eceee9 100%) 0 0/200% 100%;border-radius:6px;animation:1.3s linear infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.detail{grid-template-columns:minmax(0,1fr) 320px;min-height:calc(100vh - 60px);display:grid}.detail-main{max-width:860px;padding:32px 40px 64px}.detail-side{border-left:1px solid var(--line);background:#fff;padding:28px 24px}.detail-title{letter-spacing:-.025em;margin-top:10px;font-size:30px;font-weight:600;line-height:1.2}.detail-body{color:var(--ink2);white-space:pre-wrap;margin-top:18px;font-size:15px;line-height:1.65}.kv{grid-template-columns:90px 1fr;gap:10px;font-size:13px;display:grid}.kv dt{color:var(--muted)}.kv dd{color:var(--ink);margin:0;font-weight:600}.comment{gap:12px;display:flex}.comment-box{border:1px solid var(--line);background:#fff;border-radius:12px;flex:1;min-width:0;padding:14px 16px}.comment-box.official{border-color:var(--accent)}.comment-box.internal{background:var(--amber-tint);border-color:#f0dca6}.comment-body{color:var(--ink);white-space:pre-wrap;word-wrap:break-word;margin-top:6px;font-size:14px;line-height:1.6}.timeline{flex-direction:column;gap:14px;display:flex}.timeline div{grid-template-columns:12px 1fr;gap:8px;font-size:13px;display:grid}.attachment{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:inline-flex}.dropzone{border:1.5px dashed var(--line2);text-align:center;color:var(--muted);background:#fff;border-radius:10px;padding:18px;font-size:13px;transition:border-color .12s,background .12s}.dropzone.over{border-color:var(--accent);background:var(--accent-tint)}.kanban{grid-auto-columns:minmax(260px,1fr);grid-auto-flow:column;gap:14px;padding-bottom:12px;display:grid;overflow-x:auto}.kcol{border-radius:12px;flex-direction:column;gap:10px;min-height:200px;padding:4px;transition:background .12s;display:flex}.kcol.over{background:var(--accent-tint);outline:1.5px dashed var(--accent)}.kcol-head{align-items:center;gap:8px;padding:4px 4px 2px;font-size:13px;font-weight:700;display:flex}.kcard{border:1px solid var(--line);cursor:grab;box-shadow:var(--shadow-card);background:#fff;border-radius:10px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.kcard:active{cursor:grabbing}.kcard.dragging{opacity:.4}.kcard .ktitle{font-size:14px;font-weight:600;line-height:1.35}.drop-hint{border:1.5px dashed var(--accent);background:var(--accent-tint);color:var(--accent-ink);text-align:center;border-radius:10px;padding:14px;font-size:13px;font-weight:600}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 16px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:14px 16px}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#fafbf9}.admin{grid-template-columns:200px minmax(0,1fr);gap:32px;display:grid}.admin-nav{flex-direction:column;align-self:start;gap:2px;display:flex;position:sticky;top:92px}.admin-nav a{color:var(--muted);border-radius:8px;padding:8px 12px;font-size:14px}.admin-nav a:hover{color:var(--ink);background:var(--chip)}.admin-nav a.on{color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-card);background:#fff;font-weight:600}.stat{padding:16px 18px}.stat-label{color:var(--muted);font-size:12px}.stat-value{letter-spacing:-.02em;margin-top:4px;font-size:28px;font-weight:600}.setting-row{border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:16px 20px;display:flex}.setting-row:last-child{border-bottom:0}.setting-title{font-size:14px;font-weight:600}.setting-sub{color:var(--muted);margin-top:2px;font-size:13px}.drag-handle{color:var(--faint);cursor:grab;-webkit-user-select:none;user-select:none;letter-spacing:-2px}.check-circle{border:1.5px solid var(--line2);border-radius:999px;flex:none;place-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:grid}.check-circle.done{background:var(--accent);border-color:var(--accent);color:#fff}.steps{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.step-num{background:var(--chip);width:22px;height:22px;color:var(--muted);border-radius:999px;place-items:center;font-size:11px;font-weight:700;display:grid}.step-num.on{background:var(--ink);color:#fff}.step-num.done{background:var(--accent);color:#fff}.step-line{background:var(--line);flex:1;min-width:16px;height:1px}.choice{border:1px solid var(--line);cursor:pointer;text-align:left;background:#fff;border-radius:10px;align-items:flex-start;gap:12px;width:100%;padding:14px 16px;display:flex}.choice.on{border:2px solid var(--ink);padding:13px 15px}.choice-radio{border:1.5px solid var(--line2);color:#fff;border-radius:999px;flex:none;place-items:center;width:18px;height:18px;margin-top:1px;font-size:10px;display:grid}.choice.on .choice-radio{background:var(--ink);border-color:var(--ink)}.type-card{border:1px solid var(--line);text-align:left;background:#fff;border-radius:10px;flex-direction:column;flex:1;gap:4px;padding:14px;display:flex}.type-card.on{border:2px solid var(--ink);padding:13px}.type-card b{font-size:14px}.type-card span{color:var(--muted);font-size:12px}.login{background:#fff;grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.login-hero{background:var(--ink);color:#f4f6f3;flex-direction:column;padding:44px 56px;display:flex;position:relative;overflow:hidden}.login-hero .brand{color:#f4f6f3;font-size:16px}.login-hero h1{letter-spacing:-.03em;margin-top:auto;font-size:56px;font-weight:600;line-height:1.02}.login-hero p{color:#aab3ac;max-width:420px;margin-top:20px;font-size:17px;line-height:1.5}.login-stats{color:#aab3ac;gap:28px;margin-top:40px;font-size:13px;display:flex}.login-stats b{color:#f4f6f3;font-size:22px;font-weight:600;display:block}.ring{border:1px solid #ffffff14;border-radius:999px;position:absolute}.login-form{background:var(--canvas);place-items:center;padding:48px;display:grid}.login-box{width:380px;max-width:100%}.notice{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:10px;align-items:flex-start;gap:12px;padding:14px;font-size:13px;line-height:1.5;display:flex}.notice-icon{background:var(--accent-tint);width:28px;height:28px;color:var(--accent-ink);border-radius:999px;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.notice.warn .notice-icon{background:var(--red-tint);color:var(--red)}.center-screen{background:var(--canvas);place-items:center;min-height:100vh;padding:24px;display:grid}.onb{background:#fff;flex-direction:column;min-height:100vh;display:flex}.onb-head{padding:24px 32px}.onb-main{flex:1;place-items:center;padding:24px;display:grid}.eyebrow{letter-spacing:.08em;color:var(--accent-ink);text-transform:uppercase;font-size:12px;font-weight:700}.hero-title{letter-spacing:-.03em;text-align:center;font-size:44px;font-weight:600;line-height:1.08}.feature-tile{border:1px solid var(--line);text-align:left;box-shadow:var(--shadow-card);background:#fff;border-radius:12px;padding:18px}.feature-tile .ic{background:var(--accent-tint);width:30px;height:30px;color:var(--accent-ink);border-radius:8px;place-items:center;font-size:13px;font-weight:700;display:grid}.dots{justify-content:center;gap:6px;display:flex}.dots span{background:var(--line2);border-radius:999px;width:6px;height:6px}.dots span.on{background:var(--accent);width:18px}.checklist{border:1px solid var(--line);box-shadow:var(--shadow-card);background:#fff;border-radius:12px;padding:20px 22px}.cl-item{border-top:1px solid var(--line);align-items:center;gap:14px;padding:14px 0;display:flex}.cl-num{border:1.5px solid var(--line2);width:26px;height:26px;color:var(--muted);border-radius:999px;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.cl-num.done{background:var(--accent);border-color:var(--accent);color:#fff}.tour-spot{z-index:90;pointer-events:none;border-radius:12px;position:fixed;box-shadow:0 0 0 9999px #15181a80}.tour-pop{z-index:91;width:300px;box-shadow:var(--shadow-pop);background:#fff;border-radius:12px;padding:18px;position:fixed}.popover{z-index:70;width:320px;box-shadow:var(--shadow-pop);border:1px solid var(--line);background:#fff;border-radius:12px;padding:18px;position:fixed;top:72px;right:24px}.notif{border-radius:10px;align-items:flex-start;gap:12px;padding:12px 10px;display:flex}.notif:hover{background:var(--canvas)}.notif.unread{background:color-mix(in oklab, var(--accent) 5%, white)}.notif .ntext{flex:1;font-size:14px;line-height:1.45}.roadmap{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.rm-col{background:#eef0ed;border-radius:12px;flex-direction:column;gap:10px;min-height:300px;padding:12px;display:flex}.rm-head{align-items:center;gap:8px;padding:4px;font-size:13px;font-weight:700;display:flex}.cl-release{border-bottom:1px solid var(--line);grid-template-columns:140px 1fr;gap:24px;padding:28px 0;display:grid}.cl-entry{gap:12px;padding:6px 0;font-size:14px;line-height:1.55;display:flex}.cl-kind{letter-spacing:.04em;flex:none;width:72px;padding-top:2px;font-size:11px;font-weight:700}.bottom-tabs,.mobile-only{display:none}@media (max-width:900px){.topnav{gap:14px;padding:0 16px}.topnav .hide-m,.search-trigger{display:none}.page{padding:20px 16px 96px}.page-title{font-size:24px}.grid3,.grid4,.grid2,.detail{grid-template-columns:1fr}.detail-main{padding:20px 16px}.detail-side{border-left:0;border-top:1px solid var(--line)}.detail-title{font-size:24px}.admin{grid-template-columns:1fr}.admin-nav{flex-direction:row;position:static;overflow-x:auto}.roadmap,.login{grid-template-columns:1fr}.login-hero{display:none}.login-form{padding:24px 16px}.cl-release{grid-template-columns:1fr;gap:8px}.hero-title{font-size:32px}.mobile-only{display:block}.desktop-only{display:none!important}.bottom-tabs{border-top:1px solid var(--line);text-align:center;height:68px;color:var(--faint);z-index:50;background:#fff;grid-template-columns:repeat(4,1fr);padding:8px 0 12px;font-size:11px;font-weight:600;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-tabs a{flex-direction:column;align-items:center;gap:3px;display:flex}.bottom-tabs .bt-ic{font-size:18px;line-height:22px}.bottom-tabs .on{color:var(--accent-ink)}.fab{z-index:50;box-shadow:var(--shadow-pop);border-radius:999px;position:fixed;bottom:84px;right:16px}.toasts{width:auto;bottom:84px;left:16px;right:16px}.dialog{padding:20px}.table-wrap{overflow-x:auto}}.offline-bar{background:var(--ink);color:#fff;justify-content:center;align-items:center;gap:10px;padding:8px 16px;font-size:13px;display:flex}
