.shell{grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);height:100dvh;display:grid;overflow:hidden}.shell-main{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.header{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:24px;min-width:0;height:68px;padding:0 20px;display:flex}.brand{flex:0 auto;align-items:center;gap:12px;min-width:0;text-decoration:none;display:flex}.brand-title{letter-spacing:-.02em;white-space:nowrap;font-size:21px;font-weight:800;line-height:1.15}.brand-sub{color:var(--slate);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.brand-mark{color:#1f1f1f;flex:none;display:block}.progress{flex:auto;justify-content:center;align-items:center;gap:12px;min-width:0;display:flex}.progress .bar{background:#e7e2d8;border-radius:999px;flex:none;width:140px;height:8px;overflow:hidden}.progress .fill{background:var(--ink);height:100%;transition:width .4s var(--ease);border-radius:999px}.progress-text{white-space:nowrap;font-size:15px}.progress-text strong{font-weight:800}.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;height:30px;padding:0 12px;font-size:14px;font-weight:650;display:inline-flex}.pill-alarm{background:var(--alarm-wash);color:var(--alarm-ink);box-shadow:inset 0 0 0 1px var(--alarm-line);animation:tick .32s var(--ease)}.pill-alarm strong{color:var(--alarm);font-weight:800}.pill-ok{background:var(--ok-wash);color:var(--ok);animation:tick .42s var(--ease)}@keyframes tick{0%{transform:scale(.94)}60%{transform:scale(1.03)}to{transform:none}}.header-right{flex:none;align-items:center;gap:10px;display:flex}.seg{border:1px solid var(--line);background:#efebe3;border-radius:11px;gap:2px;padding:3px;display:inline-flex}.seg>a,.seg>button{height:34px;color:var(--slate);white-space:nowrap;transition:background .14s var(--ease), color .14s var(--ease);background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 14px;font-size:15px;font-weight:650;text-decoration:none;display:inline-flex}.seg>a:hover,.seg>button:hover{color:var(--ink)}.seg>.on{background:var(--ink);color:#fff}.seg>.on:hover{color:#fff}.avatar{width:38px;height:38px;color:var(--ink);background:#e8e3d9;border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:800;display:grid;position:relative}.conn{background:var(--ok);border:2px solid #fff;border-radius:50%;width:11px;height:11px;transition:background .2s;position:absolute;bottom:-1px;right:-1px}.conn.off{background:#a3a3a3}.strip{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:8px;min-width:0;height:48px;padding:0 16px;display:flex}.strip-scroll{scrollbar-width:none;flex:1;gap:6px;min-width:0;padding:4px 0;display:flex;overflow-x:auto}.strip-scroll.fade-r{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),#0000 100%)}.strip-scroll.fade-l{-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 32px);mask-image:linear-gradient(90deg,#0000 0,#000 32px)}.strip-scroll.fade-l.fade-r{-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 32px calc(100% - 32px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 32px calc(100% - 32px),#0000 100%)}.strip-arrow{border:1px solid var(--line);background:var(--surface);width:30px;height:30px;color:var(--ink);border-radius:50%;flex:none;place-items:center;transition:opacity .14s,width .14s,background .12s;display:grid}.strip-arrow:hover{border-color:var(--line-strong);background:#f7f5f0}.strip-arrow.hidden{opacity:0;pointer-events:none;border-width:0;width:0;min-width:0;margin-right:-8px;padding:0;overflow:hidden}.strip-right{margin-left:8px}.strip-scroll::-webkit-scrollbar{display:none}.pchip{border:1px solid var(--line);background:var(--surface);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:4px;height:30px;padding:0 10px;font-size:13px;font-weight:650;transition:background .12s,border-color .12s;display:inline-flex}.pchip:hover{border-color:var(--line-strong);background:#f7f5f0}.pchip .pcount{color:var(--slate);font-weight:600}.pchip.nobody{background:var(--alarm-wash);border-color:var(--alarm-line);color:var(--alarm-ink)}.pchip.nobody .pcount{color:var(--alarm-ink)}.strip-right{flex:none;align-items:center;gap:10px;display:flex}.select-sm{width:auto;min-width:180px;height:36px;font-size:14px}.board-scroll{scrollbar-width:none;flex:1;min-height:0;overflow:auto hidden}.board-scroll::-webkit-scrollbar{display:none}.hbar{background:var(--track);cursor:pointer;touch-action:none;border-radius:999px;flex:none;height:12px;margin:0 20px;position:relative}.hbar-top{margin-top:10px}.hbar-bottom{margin-bottom:10px}.hbar.hidden{visibility:hidden}.hbar-thumb{background:var(--thumb);border-radius:999px;height:8px;transition:background .12s;position:absolute;top:2px;left:0}.hbar:hover .hbar-thumb{background:#9e9585}.board{align-items:stretch;gap:14px;width:max-content;height:100%;padding:10px 20px;display:flex}.column{width:var(--col-w);background:var(--bg-sunk);border:1px solid var(--line);border-radius:var(--r-xl);flex-direction:column;flex:none;height:100%;padding:12px 10px 10px;transition:box-shadow .2s,background .3s;display:flex}.column.pulse{animation:.9s ease-out outlinePulse}.column.nobody{background:var(--alarm-wash);border-color:var(--alarm-line)}.column.nobody .col-name{color:var(--alarm)}.column.nobody .col-sub,.column.nobody .col-meta{color:var(--alarm-ink)}.column.empty-ok{background:var(--ok-wash);border-color:#c5e1d0}.column.empty-ok .col-name,.column.empty-ok .col-sub,.column.empty-ok .col-hint,.column.empty-ok .col-meta{color:var(--ok)}.col-dragging{opacity:.4}.col-overlay{height:120px;box-shadow:var(--shadow-drag);transform:rotate(1deg)}.col-head{padding:0 4px 10px;position:relative}.col-flash{border-radius:10px;animation:1.2s ease-out flashSoft}@keyframes flashSoft{0%{background:var(--flash)}to{background:0 0}}.col-title-row{align-items:center;gap:4px;display:flex}.handle{color:#9a9284;cursor:grab;touch-action:none;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;width:22px;height:30px;margin-left:-6px;display:grid}.handle:hover{color:var(--ink);background:#1e293b0f}.handle:active{cursor:grabbing}.col-name{letter-spacing:-.015em;overflow-wrap:anywhere;flex:1;min-width:0;margin:0;font-size:20px;font-weight:800;line-height:1.2}.col-menu-btn{color:var(--slate)}.col-sub{color:var(--slate);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:14px;line-height:1.35;display:-webkit-box;overflow:hidden}.col-hint{color:var(--alarm-ink);margin-top:6px;font-size:14px;font-weight:650;line-height:1.35}.col-meta{color:var(--slate);margin-top:6px;font-size:13px;font-weight:650}.col-cards{flex-direction:column;flex:1;gap:10px;min-height:60px;margin:0 -2px;padding:2px 2px 8px;display:flex;overflow:hidden auto}.col-empty{text-align:center;border:1.5px dashed var(--line-strong);color:var(--slate);border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;font-size:14px;line-height:1.4;display:flex}.empty-ok .col-empty{color:var(--ok);border-color:#a9d2b9}.add-card{border:1.5px dashed var(--line-strong);height:42px;color:var(--slate);background:#ffffff80;border-radius:12px;flex:none;justify-content:center;align-items:center;gap:6px;margin-top:8px;font-size:15px;font-weight:650;transition:background .12s,color .12s,border-color .12s;display:flex}.add-card:hover{color:var(--ink);background:#fff;border-color:#b0a898}.nobody .add-card{border-color:var(--alarm-line)}.card-wrap{touch-action:manipulation}.card-wrap.placeholder .card{opacity:.35;box-shadow:none;border-style:dashed;border-color:var(--line-strong)}.card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-card);cursor:pointer;transition:box-shadow .16s var(--ease), opacity .2s var(--ease), transform .16s var(--ease);outline-offset:2px;border:1px solid #1e293b0f;padding:12px 12px 8px;position:relative}.card:hover{box-shadow:var(--shadow-card-hover)}.card.overlay{box-shadow:var(--shadow-drag);cursor:grabbing;width:calc(var(--col-w) - 24px);transform:rotate(1.5deg)}.card.dim{opacity:.28;box-shadow:none}.card.dropped{opacity:.6;border:1px dashed var(--line-strong);box-shadow:none}.card.dropped .card-title{-webkit-text-decoration:line-through #b3ab9c;text-decoration:line-through #b3ab9c}.card-top{align-items:center;min-width:0;display:flex}.card-title{letter-spacing:-.005em;overflow-wrap:anywhere;margin:8px 0 0;font-size:16px;font-weight:700;line-height:1.35}.card-meta{color:var(--slate);gap:3px;margin-top:8px;font-size:13px;font-weight:600;display:grid}.card-meta>div{align-items:center;gap:6px;min-width:0;display:flex}.card-meta svg{opacity:.8;flex:none}.note-line span{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.card.compact{padding:10px 10px 6px}.card.compact .card-title{margin-top:6px;font-size:15px}.card-foot{align-items:center;gap:4px;min-height:30px;margin-top:8px;display:flex}.card-actions{opacity:0;align-items:center;gap:2px;transition:opacity .14s;display:flex}.card:hover .card-actions,.card:focus-within .card-actions,.card:focus .card-actions{opacity:1}@media (hover:none){.card-actions{opacity:1}}.foot-btn{height:28px;color:var(--slate);white-space:nowrap;background:0 0;border:0;border-radius:7px;align-items:center;gap:5px;padding:0 8px;font-size:13px;font-weight:700;display:inline-flex}.foot-btn:hover{color:var(--ink);background:#f3f0ea}.foot-btn.icon{justify-content:center;width:30px;margin:0;padding:0}.editor-grid{grid-template-columns:1fr 1fr;gap:14px 16px;display:grid}.editor-grid .span2{grid-column:span 2}.person-field{text-align:left;cursor:pointer;align-items:center;display:flex}.person-field:disabled{cursor:default;opacity:.7}.kbd-hint{margin-right:4px}.card-history{border-top:1px solid var(--line);padding-top:8px}.hist-list{gap:8px;margin:6px 0 0;padding:0;font-size:14px;list-style:none;display:grid}.hist-list li{grid-template-columns:110px 1fr;gap:10px;display:grid}.hist-time{color:var(--slate);font-size:13px;font-weight:600}@media (width<=640px){.editor-grid{grid-template-columns:1fr}.editor-grid .span2{grid-column:auto}.kbd-hint{display:none}}.page{flex:1;min-height:0;overflow-y:auto}.page-inner{gap:20px;max-width:980px;margin:0 auto;padding:28px 24px 64px;display:grid}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-title{letter-spacing:-.02em;margin:0 0 4px;font-size:28px;font-weight:800}.empty-state{color:var(--slate);text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:16px;justify-items:center;gap:8px;padding:56px 16px;display:grid}.empty-state p{margin:0}.day{gap:8px;display:grid}.day-title{color:var(--slate);letter-spacing:.04em;text-transform:uppercase;margin:8px 0 0;font-size:14px;font-weight:750}.timeline{background:var(--surface);border:1px solid var(--line);border-radius:14px;margin:0;padding:6px 0;list-style:none}.timeline li{grid-template-columns:76px 14px 1fr;align-items:baseline;gap:10px;padding:10px 18px;font-size:15px;display:grid}.timeline li+li{border-top:1px solid #efebe4}.timeline li.clickable{cursor:pointer}.timeline li.clickable:hover{background:#faf8f4}.t-time{color:var(--slate);font-size:14px;font-weight:650}.t-dot{background:var(--line-strong);border-radius:50%;align-self:center;width:8px;height:8px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;gap:12px;padding:18px 20px;display:grid}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.panel-head h2{letter-spacing:-.01em;margin:0;font-size:19px;font-weight:800}.rows{display:grid}.row{border-top:1px solid #efebe4;align-items:center;gap:12px;min-height:58px;padding:10px 0;display:flex}.row:first-child{border-top:0}.row-title{font-weight:700}.toggle{white-space:nowrap;cursor:pointer;align-items:center;gap:6px;display:inline-flex}.toggle input{width:16px;height:16px;accent-color:var(--ink)}.invite-form{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.1fr) minmax(0,1.1fr) auto auto;align-items:center;gap:8px;display:grid}.invite-form .input.bad,.invite-edit .input.bad{border-color:var(--alarm)}.hold-check{white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:14px;font-weight:600;display:inline-flex}.invite-edit{align-items:center;gap:8px;display:flex}.invite-edit .input{flex:1;min-width:0}.tag-held{color:#8a5a00;background:#fdf3dc}@media (width<=1200px){.invite-form{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=900px){.invite-form{grid-template-columns:1fr}}.name-chips{flex-wrap:wrap;gap:6px;display:flex}.name-chip{background:#f1ede6;border-radius:999px;align-items:center;gap:4px;height:30px;padding:0 6px 0 12px;font-size:14px;font-weight:650;display:inline-flex}.name-chip button{width:22px;height:22px;color:var(--slate);background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.name-chip button:hover{color:var(--ink);background:#e3ddd2}.name-add{gap:8px;max-width:480px;display:flex}.sheets-layout{flex:1;grid-template-columns:250px 1fr;min-height:0;display:grid}.sheets-rail{border-right:1px solid var(--line);background:#f7f5f0;flex-direction:column;gap:2px;padding:16px 10px;display:flex;overflow-y:auto}.rail-item{text-align:left;color:var(--ink);background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;padding:9px 12px;font-size:15px;font-weight:650;display:flex}.rail-item:hover{background:#ece8e0}.rail-item.on{background:var(--ink);color:#fff}.rail-item.on .rail-count{color:#ffffffbf}.rail-item.nobody .rail-name{color:var(--alarm)}.rail-item.on.nobody .rail-name{color:#fff}.rail-item.mine{color:var(--ink);background:#e8e3d9;margin-bottom:8px}.rail-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.rail-count{color:var(--slate);font-size:13px}.sheets-main{min-height:0;overflow-y:auto}.sheets-inner{gap:20px;max-width:900px;margin:0 auto;padding:24px 28px 80px;display:grid}.sheets-intro{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.sheets-intro p{color:var(--slate);max-width:520px;margin:0;font-size:15px}.sheet{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px 26px;scroll-margin-top:16px}.sheet-head{align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.sheet-name{letter-spacing:-.02em;margin:0;font-size:28px;font-weight:800;line-height:1.15}.sheet-sub{color:var(--slate);align-items:center;gap:4px;margin-top:4px;font-size:15px;display:flex}.inline-edit{opacity:0;transition:opacity .12s}.sheet-sub:hover .inline-edit{opacity:1}.sheet-empty{color:var(--slate);margin:4px 0 12px}.sheet-group{margin-top:16px}.group-title{color:var(--slate);text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px;font-size:13px;font-weight:800}.sheet-task{cursor:pointer;background:#f8f6f2;border-radius:10px;gap:16px;margin-bottom:6px;padding:12px 14px;transition:background .12s;display:flex}.sheet-task:hover{background:#f1eee8}.task-main{flex:1;min-width:0}.task-title{flex-wrap:wrap;align-items:center;gap:10px;font-weight:700;display:flex}.task-notes{color:var(--ink);opacity:.85;white-space:pre-wrap;margin-top:4px;font-size:14px;font-weight:500}.task-sub{color:var(--slate);margin-top:4px;font-size:13px;font-weight:600}.task-hours{color:var(--slate);white-space:nowrap;font-size:14px;font-weight:700}.sheet-total{border-top:1px solid var(--line);margin-top:16px;padding-top:14px;font-size:17px}.jd{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.jd-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.jd-title{align-items:center;gap:8px;font-size:17px;font-weight:800;display:flex}.stale{color:#8a5a00;font-weight:650}.jd-body{min-height:120px;transition:min-height .3s var(--ease);background:#fbfaf7;border:1px solid #ede9e1;border-radius:12px;padding:20px 22px;font-size:15px}.jd-body.streaming{min-height:320px}.jd-body.streaming>:last-child:after{content:"";background:var(--ink);vertical-align:-2px;width:8px;height:16px;margin-left:3px;animation:1s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.jd-waiting{color:var(--slate);justify-content:center;align-items:center;gap:10px;min-height:320px;display:flex}.jd-empty{border:1.5px dashed var(--line-strong);background:#fbfaf7;border-radius:12px;justify-items:start;gap:8px;padding:20px 22px;display:grid}.jd-empty p{margin:0}@media (width<=860px){.sheets-layout{grid-template-columns:1fr}.sheets-rail{display:none}}.run{color:#fff;z-index:40;background:#172131;flex-direction:column;display:flex;position:fixed;inset:0;overflow:auto}.run-bar{border-bottom:1px solid #ffffff14;flex:none;align-items:center;gap:16px;padding:14px 24px;display:flex}.run-label{font-size:16px;font-weight:800}.run-progress{color:#ffffffb3;font-size:15px;font-weight:650}.run-track{background:#ffffff1f;border-radius:999px;width:160px;height:6px;overflow:hidden}.run-track>div{height:100%;transition:width .3s var(--ease);background:#fff;border-radius:999px}.run-ghost{color:#fff;background:0 0;border:1px solid #ffffff2e;border-radius:10px;align-items:center;gap:8px;height:38px;padding:0 14px;font-size:15px;font-weight:650;display:inline-flex}.run-ghost:hover{background:#ffffff14}.run-ghost:disabled{opacity:.35;cursor:default}.run-ghost.lg{height:44px;padding:0 18px}.run kbd{color:#ffffffbf;background:#ffffff1f;border-radius:5px;padding:1px 6px;font-family:inherit;font-size:12px;font-weight:750}.run-stage{flex-direction:column;flex:1;align-items:center;gap:24px;padding:32px 24px 40px;display:flex}.run-card{width:min(780px,100%);color:var(--ink);animation:slideIn .22s var(--ease);background:#fff;border-radius:20px;padding:28px 32px 30px;box-shadow:0 30px 80px #00000059}@keyframes slideIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:none}}.run-card-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.run-owner{color:var(--slate);font-size:15px}.run-title{letter-spacing:-.02em;margin:16px 0 0;font-size:clamp(28px,3.2vw,40px);font-weight:800;line-height:1.15}.run-meta{color:var(--slate);gap:8px;margin-top:16px;font-size:16px;display:grid}.run-meta>div{align-items:flex-start;gap:8px;display:flex}.run-meta svg{flex:none;margin-top:3px}.run-people{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;width:min(1180px,100%);display:grid}.run-person{text-align:left;color:#fff;background:#ffffff0f;border:1px solid #ffffff24;border-radius:14px;gap:4px;padding:14px 16px;transition:background .12s,transform .1s,border-color .12s;display:grid}.run-person:hover{color:var(--ink);background:#fff;border-color:#fff}.run-person:hover .rp-sub,.run-person:hover .rp-count{color:var(--slate)}.run-person:hover kbd{color:var(--slate);background:#efebe3}.run-person:active{transform:scale(.98)}.rp-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.rp-name{font-size:17px;font-weight:800}.rp-sub{color:#ffffffa6;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.3;display:-webkit-box;overflow:hidden}.rp-count{color:#ffffff8c;font-size:13px;font-weight:650}.run-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.run-chooser,.run-done{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.run-chooser h1,.run-done h1{letter-spacing:-.02em;margin:0;font-size:34px;font-weight:800}.run-chooser p,.run-done p{color:#ffffffb3;margin:0;font-size:17px}.chooser-grid{grid-template-columns:repeat(3,minmax(0,260px));gap:12px;margin-top:16px;display:grid}.chooser{text-align:left;color:#fff;background:#ffffff0f;border:1px solid #ffffff29;border-radius:16px;gap:6px;padding:20px;display:grid}.chooser strong{font-size:18px}.chooser span{color:#ffffffa6;font-size:14px}.chooser:hover:not(:disabled){color:var(--ink);background:#fff}.chooser:hover:not(:disabled) span{color:var(--slate)}.chooser:disabled{opacity:.4;cursor:default}.done-mark{background:var(--ok);width:64px;height:64px;animation:tick .5s var(--ease);border-radius:50%;place-items:center;display:grid}.run-btn-light{color:var(--ink);background:#fff;border-color:#fff;margin-top:12px}@media (width<=760px){.chooser-grid{grid-template-columns:1fr}}.center-panel{place-items:center;min-height:100dvh;padding:24px;display:grid}.signin-bg{background:radial-gradient(1200px 600px at 50% -10%, #fff 0%, var(--bg) 60%)}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:20px;width:min(460px,100%);padding:32px;display:flex;box-shadow:0 1px 2px #1e293b0d,0 18px 50px #1e293b1a}.auth-brand{align-items:center;gap:14px;display:flex}.auth-title{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:800}.auth-sub{color:var(--slate);margin:0;font-size:15px}.auth-icon{background:#f1ede6;border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.input-lg{height:50px;font-size:17px}.btn-lg{border-radius:12px;height:50px;font-size:16px}.err-slot{min-height:20px;color:var(--alarm-ink);font-size:14px;font-weight:600}.code-boxes{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;width:100%;max-width:100%;display:grid}.code-box{box-sizing:border-box;text-align:center;border:1.5px solid var(--line-strong);font-variant-numeric:tabular-nums;background:#fff;border-radius:12px;width:100%;min-width:0;height:60px;padding:0;font-size:26px;font-weight:800;transition:border-color .14s,box-shadow .14s,transform .14s}.code-box:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px #1e293b1f}.code-boxes.ok .code-box{border-color:var(--ok);background:var(--ok-wash)}.code-boxes.bad{animation:.3s shake}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.print-root{color:#000;background:#fff;min-height:100dvh}.print-bar{background:var(--surface);border-bottom:1px solid var(--line);z-index:2;align-items:center;gap:12px;padding:12px 20px;display:flex;position:sticky;top:0}.psheet{color:#000;max-width:7.3in;margin:0 auto;padding:.6in 0;font-size:11pt;line-height:1.4}.psheet+.psheet{border-top:1px dashed #ccc}.psheet header{margin-bottom:14pt}.psheet h1{letter-spacing:-.01em;margin:0;font-size:18pt;font-weight:800}.psub{color:#000;margin-top:2pt;font-size:11pt}.psheet h2{text-transform:uppercase;letter-spacing:.06em;border-bottom:.5pt solid #000;margin:14pt 0 6pt;padding-bottom:2pt;font-size:10pt;font-weight:800}.ptask{break-inside:avoid;padding:4pt 0}.prow{align-items:baseline;gap:6pt;display:flex}.prow span{font-weight:500}.phours{white-space:nowrap;margin-left:auto;font-weight:700}.pnotes{white-space:pre-wrap;margin-top:2pt}.pmeta{margin-top:2pt;font-size:10pt}.ptotal{border-top:.5pt solid #000;margin-top:12pt;padding-top:6pt;font-weight:800}.pjd{break-inside:auto;margin-top:16pt}.pjd .md h2{text-transform:none;letter-spacing:0;border:0;margin:10pt 0 4pt;font-size:11pt}.pjd .md h3{color:#000;font-size:10pt}.psheet footer{color:#000;margin-top:18pt;font-size:9pt}@media print{@page{size:Letter;margin:.6in}html.printing,html.printing body{background:#fff}[data-noprint],.toasts{display:none!important}.psheet{max-width:none;padding:0}.psheet+.psheet{break-before:page;border:0}}@media (width<=1560px){.brand-sub{display:none}}@media (width<=1300px){.progress-text{display:none}.header{gap:16px}}@media (width<=1100px){.progress .bar{display:none}}.col-title-row{min-height:30px}.col-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.card{will-change:transform}.card:active:not(.overlay){transform:scale(.995)}.card:focus-visible{outline:2px solid var(--ink)}.menu-item{transition:background .1s}.add-card:active,.pchip:active,.rail-item:active{transform:translateY(1px)}.sheet{animation:rise .26s var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}@media (width<=900px){.header{gap:10px;padding:0 12px}.brand-title{font-size:17px}.header-right .btn:not(.btn-icon){display:none}.progress{justify-content:flex-start}.strip{padding:0 12px}.strip-right label{display:none}.select-sm{min-width:140px}.hbar{margin:0 12px}.board{padding:10px 12px}:root{--col-w:84vw}.board-scroll{scroll-snap-type:x mandatory}.column{scroll-snap-align:center}}@media (width<=620px){.seg>a{padding:0 10px;font-size:14px}.brand>div:last-child{display:none}.pill{padding:0 10px;font-size:13px}}.col-cards{padding-bottom:18px;-webkit-mask-image:linear-gradient(#000 calc(100% - 18px),#0000);mask-image:linear-gradient(#000 calc(100% - 18px),#0000)}:root{--bg:#f3f0ea;--bg-sunk:#eae6de;--surface:#fff;--line:#ddd7cc;--line-strong:#c9c2b5;--ink:#1e293b;--ink-hover:#334155;--slate:#566170;--muted:#7a8391;--alarm:#b4322b;--alarm-wash:#fbedeb;--alarm-line:#f0c7c2;--alarm-ink:#8e231d;--ok:#2f7a55;--ok-wash:#e6f2eb;--flash:#fff7d6;--track:#e7e2d8;--thumb:#b9b1a3;--r-sm:6px;--r-md:10px;--r-lg:12px;--r-xl:14px;--r-2xl:16px;--shadow-card:0 1px 2px #1e293b0f, 0 2px 8px #1e293b0d;--shadow-card-hover:0 4px 14px #1e293b1a;--shadow-drag:0 12px 28px #1e293b2e;--shadow-pop:0 10px 30px #1e293b29, 0 1px 3px #1e293b14;--shadow-modal:0 24px 60px #1e293b38;--ease:cubic-bezier(.2, 0, 0, 1);--col-w:292px;--font:"Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif}@media (width>=1600px){:root{--col-w:300px}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:16px;font-weight:500;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.tnum{font-variant-numeric:tabular-nums}.noselect{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.slate{color:var(--slate)}.scroll-x::-webkit-scrollbar{width:10px;height:10px}.scroll-y::-webkit-scrollbar{width:10px;height:10px}.scroll-x::-webkit-scrollbar-track{background:var(--track);border-radius:999px}.scroll-y::-webkit-scrollbar-track{background:var(--track);border-radius:999px}.scroll-x::-webkit-scrollbar-thumb{background:var(--thumb);border:2px solid var(--track);border-radius:999px}.scroll-y::-webkit-scrollbar-thumb{background:var(--thumb);border:2px solid var(--track);border-radius:999px}.scroll-y::-webkit-scrollbar-track{background:0 0}.scroll-y::-webkit-scrollbar-thumb{background-clip:padding-box;border-color:#0000}.scroll-x,.scroll-y{scrollbar-color:var(--thumb) var(--track);scrollbar-width:thin}.btn{border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);height:40px;color:var(--ink);white-space:nowrap;transition:background .12s var(--ease), border-color .12s var(--ease), transform 80ms var(--ease), box-shadow .12s var(--ease);justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:15px;font-weight:650;display:inline-flex}.btn:hover{background:#faf8f4;border-color:#b8b0a2}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:default;transform:none}.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn-primary:hover{background:var(--ink-hover);border-color:var(--ink-hover)}.btn-danger{color:var(--alarm)}.btn-danger-fill{background:var(--alarm);border-color:var(--alarm);color:#fff}.btn-danger-fill:hover{background:#9e2b25;border-color:#9e2b25}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:#1e293b0f;border-color:#0000}.btn-sm{border-radius:8px;height:32px;padding:0 12px;font-size:14px}.btn-icon{width:36px;height:36px;padding:0}.btn-icon.btn-sm{width:32px}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.label{color:var(--ink);font-size:14px;font-weight:650}.label .opt{color:var(--slate);font-weight:500}.input,.select,.textarea{border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);width:100%;height:42px;padding:0 12px;font-size:15px;font-weight:500;transition:border-color .12s,box-shadow .12s}.textarea{resize:vertical;height:auto;padding:10px 12px;line-height:1.5}.input:focus,.select:focus,.textarea:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px #1e293b1f}.input::placeholder,.textarea::placeholder{color:var(--muted)}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23566170' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.hint{color:var(--slate);font-size:13px}.warn-text{color:var(--alarm-ink);font-size:13px}.fchip{white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;max-width:100%;height:24px;padding:0 9px;font-size:13px;font-weight:650;display:inline-flex;overflow:hidden}.sbadge{border-radius:var(--r-sm);white-space:nowrap;border:none;align-items:center;gap:6px;height:24px;padding:0 8px;font-size:13px;font-weight:650;display:inline-flex}button.sbadge{cursor:pointer;transition:filter .12s}button.sbadge:hover{filter:brightness(.96)}.sbadge .dot{border-radius:50%;flex:none;width:8px;height:8px}.sbadge.undecided{color:#5f6773;background:#efede8}.sbadge.undecided .dot{box-shadow:inset 0 0 0 1.5px #8a919c}.sbadge.kept{color:#23633f;background:#e3f1e8}.sbadge.kept .dot{background:#2f7a55}.sbadge.transferred{color:#1f4a80;background:#e0eaf7}.sbadge.shared{color:#5a3b8c;background:#eee6f8}.sbadge.shared .dot{background:#7a55b5}.sbadge.dropped{color:#6b6b6b;background:#f1f0ee}.sbadge.dropped .lbl{text-decoration:line-through}.sbadge.dropped .dot{background:#a3a3a3}.tag{border-radius:var(--r-sm);letter-spacing:.04em;height:22px;color:var(--ink);white-space:nowrap;background:#e8e3d9;align-items:center;padding:0 8px;font-size:12px;font-weight:750;display:inline-flex}.pop{z-index:60;background:var(--surface);box-shadow:var(--shadow-pop);min-width:200px;animation:popIn .14s var(--ease);border:1px solid #1e293b14;border-radius:12px;padding:6px;position:fixed}@keyframes popIn{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:none}}.menu-item{text-align:left;width:100%;color:var(--ink);background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:15px;font-weight:600;display:flex}.menu-item:hover,.menu-item.active{background:#f3f0ea}.menu-item.danger{color:var(--alarm)}.menu-item:disabled{opacity:.45;cursor:default;background:0 0}.menu-sep{background:var(--line);height:1px;margin:6px 4px}.menu-label{letter-spacing:.06em;text-transform:uppercase;color:var(--slate);padding:6px 10px 4px;font-size:12px;font-weight:750}.scrim{z-index:50;animation:fadeIn .16s var(--ease);background:#1e293b59;place-items:center;padding:24px;display:grid;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--r-2xl);width:min(640px,100%);max-height:calc(100dvh - 48px);box-shadow:var(--shadow-modal);animation:modalIn .2s var(--ease);overflow:auto}@keyframes modalIn{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:none}}.modal-head{justify-content:space-between;align-items:center;padding:20px 24px 8px;display:flex}.modal-head h2{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:800}.modal-body{gap:16px;padding:8px 24px 16px;display:grid}.modal-foot{border-top:1px solid var(--line);align-items:center;gap:10px;padding:16px 24px 20px;display:flex}.toasts{z-index:80;pointer-events:none;justify-items:center;gap:8px;display:grid;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--ink);color:#fff;box-shadow:var(--shadow-pop);animation:toastIn .22s var(--ease);border-radius:12px;align-items:center;gap:12px;max-width:min(560px,100vw - 32px);padding:12px 16px;font-size:14px;font-weight:600;display:flex}.toast.error{background:#5f1d19}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.skel{background:#e3ded4;border-radius:10px;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes flash{0%{background-color:var(--flash)}to{background-color:var(--surface)}}.flash{animation:1.2s ease-out flash}@keyframes outlinePulse{0%{box-shadow:0 0 #1e293b59}to{box-shadow:0 0 0 10px #1e293b00}}.md h2{letter-spacing:-.01em;margin:20px 0 8px;font-size:18px;font-weight:800}.md h2:first-child{margin-top:0}.md h3{color:var(--slate);text-transform:uppercase;letter-spacing:.04em;margin:14px 0 6px;font-size:15px;font-weight:750}.md p{margin:0 0 10px}.md ul{margin:0 0 10px;padding-left:20px}.md li{margin:4px 0}
