:root{--bg:#f3f6f2;--ink:#20242c;--dim:#7d838f;--card:#fff;--accent:#ff7b54;--green:#3f9d58;--red:#ff5a48;--amber:#ffb020;--blue:#4f8ef7;--gray:#b8bdc7;--font:"Arial Rounded MT Bold", ui-rounded, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;accent-color:var(--ink)}html,body{background:var(--bg);height:100%;color:var(--ink);overscroll-behavior-x:none;font-family:var(--font);margin:0;overflow-x:hidden}#root{height:100%}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.col,.modal,.storylist,.labeldrop,.gate-card{scrollbar-width:thin;scrollbar-color:var(--gray) transparent}.app-shell{box-sizing:border-box;flex-direction:column;height:100dvh;display:flex}.app-header{flex:none;justify-content:space-between;align-items:baseline;gap:12px;padding:16px 18px 6px;display:flex}.app-header h1{margin:0;font-size:20px;font-weight:800}.hactions{flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:8px;display:flex}.app-header button{font:inherit;color:var(--ink);border:2px solid var(--ink);cursor:pointer;box-shadow:2px 2px 0 var(--ink);background:#fff;border-radius:10px;padding:4px 12px;font-size:12px;font-weight:800}.app-header button:active{box-shadow:none;transform:translate(2px,2px)}.streak{color:var(--green);font-size:13px;font-weight:800}.notice{border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);background:#fff6cf;border-radius:12px;flex:none;align-items:flex-start;gap:10px;margin:0 18px 4px;padding:8px 12px;font-size:12px;font-weight:700;display:flex}.notice span{flex:1}.notice button{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;flex:none;padding:2px 4px;font-weight:800;line-height:1}.board{scroll-snap-type:x proximity;box-sizing:border-box;flex:auto;align-items:stretch;gap:14px;min-height:0;padding:10px 18px 34px;display:flex;overflow:auto hidden}.col{scroll-snap-align:start;border:2px solid var(--ink);box-sizing:border-box;overscroll-behavior:contain;border-radius:20px;flex:1 1 0;min-width:260px;min-height:110px;padding:0 12px 12px;transition:background .15s;overflow:hidden auto}@media (width<=640px){.col{flex:0 0 min(84vw,340px);min-width:0}}.col.todo{background:#ffe4d3}.col.doing{background:#dcebff}.col.done{background:#dcf3dc}.col.cancelled{background:#e6e4ea}.col.over{filter:brightness(1.06);box-shadow:0 0 0 3px var(--ink) inset}.slot{border:2px dashed var(--ink);box-sizing:border-box;background:#20242c0f;border-radius:14px;margin-bottom:12px}.colhead{z-index:1;background:inherit;border-radius:18px 18px 0 0;align-items:center;gap:8px;margin:0 -12px;padding:14px 16px 10px;font-size:14px;font-weight:800;display:flex;position:sticky;top:0}.colhead .cnt{background:var(--ink);color:#fff;border-radius:999px;padding:2px 8px;font-size:11px}.addbtn{border:2px solid var(--ink);width:24px;height:24px;color:var(--ink);font:inherit;cursor:pointer;box-shadow:2px 2px 0 var(--ink);background:#fff;border-radius:8px;justify-content:center;align-items:center;margin-left:auto;padding:0;font-size:15px;font-weight:800;line-height:1;display:flex;position:relative}.addbtn:active{box-shadow:none;transform:translate(2px,2px)}.addbtn:after{content:"";position:absolute;inset:-8px}.card{background:var(--card);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);-webkit-user-select:none;user-select:none;touch-action:pan-y;cursor:grab;border-radius:14px;margin-bottom:12px;padding:11px 12px 9px;position:relative}.card .grip{touch-action:none;color:var(--dim);cursor:grab;flex:none;padding:0 1px;font-size:15px;line-height:1.2;position:relative}.card .grip:after{content:"";position:absolute;inset:-10px -12px}.card .grip:active{cursor:grabbing}.dragwrap{z-index:20;pointer-events:none;will-change:transform;position:fixed}.card.dragclone{pointer-events:none;cursor:grabbing;margin:0;transition:none;transform:rotate(3deg);box-shadow:10px 14px #20242c59}.card .head{align-items:flex-start;gap:8px;display:flex}.card .emo{flex:none;font-size:18px;line-height:1.3}.card .t{flex:1;font-size:14.5px;font-weight:800;line-height:1.35}.card .age{color:var(--dim);flex:none;padding-top:3px;font-size:10px;font-weight:700}.card .desc{color:var(--dim);margin:6px 0 0 26px;font-size:12px;font-weight:600;line-height:1.45}.card .desc strong{color:var(--ink)}.card .desc code,.check code{color:var(--ink);background:#e9edf2;border:1px solid #d5d9df;border-radius:5px;padding:0 4px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px}.card .desc a,.check a{color:var(--blue);text-underline-offset:2px;font-weight:800;text-decoration:underline}.card .desc .dline.bullet{gap:6px;display:flex}.card .desc .bdot{color:var(--gray)}.prog{align-items:center;gap:8px;margin:9px 0 0 26px;display:flex}.bar{border:2px solid var(--ink);background:#fff;border-radius:999px;flex:1;height:10px;overflow:hidden}.bar i{background:var(--green);border-radius:999px;height:100%;transition:width .35s cubic-bezier(.2,.9,.3,1.2);display:block}.prog .pct{color:var(--dim);font-size:11px;font-weight:800}.chev{border:2px solid var(--ink);cursor:pointer;background:#fff;border-radius:7px;flex:none;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;transition:transform .25s;display:flex;position:relative}.chev:after{content:"";position:absolute;inset:-10px}.card.open .chev{transform:rotate(180deg)}.checks{max-height:0;margin-left:26px;transition:max-height .3s cubic-bezier(.2,.9,.3,1);overflow:hidden}.check{cursor:pointer;align-items:center;gap:8px;padding:10px 0;font-size:12.5px;font-weight:700;display:flex}.check .bx{border:2px solid var(--ink);color:#fff;background:#fff;border-radius:6px;flex:none;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;transition:background .15s;display:flex}.check.on .bx{background:var(--green)}.check.on span{color:var(--dim);text-decoration:line-through}.meta{flex-wrap:wrap;align-items:center;gap:6px;margin:9px 0 0 26px;display:flex}.chip{border:1.5px solid var(--ink);border-radius:999px;padding:2.5px 8px;font-size:10.5px;font-weight:800}.chip.due{color:var(--green);background:#e2f4e0}.chip.ovd{color:var(--red);background:#ffe0dc}.chip.eff{background:#fff}.tag{color:#fff;border-radius:999px;padding:3px 9px;font-size:10.5px;font-weight:800}.slabel{border:1.5px solid var(--ink);border-radius:999px;font-size:10.5px;font-weight:800;display:inline-flex;overflow:hidden}.slabel .k{background:var(--ink);color:#fff;padding:2.5px 7px 2.5px 9px}.slabel .v{color:#fff;padding:2.5px 9px 2.5px 7px}.pdot{border:1.5px solid var(--ink);border-radius:50%;width:10px;height:10px}.card.done-card .t{color:var(--dim);text-decoration:line-through}.card.done-card{opacity:.75}.card.blocked-card{background-image:repeating-linear-gradient(45deg,#20242c12 0 6px,#0000 6px 12px);border-style:dashed}.chip.blk{background:var(--amber);color:var(--ink)}.card.cancelled-card{opacity:.7}.card.cancelled-card .t{color:var(--dim)}.cardacts{flex-wrap:wrap;gap:6px;margin:10px 0 0 26px;display:flex}.cardacts button{font:inherit;color:var(--ink);border:2px solid var(--ink);cursor:pointer;box-shadow:2px 2px 0 var(--ink);background:#fff;border-radius:9px;padding:3px 9px;font-size:10.5px;font-weight:800}.cardacts button:active{box-shadow:none;transform:translate(2px,2px)}.cardacts .purge{background:var(--red);color:#fff}.foot{text-align:center;color:var(--dim);background:linear-gradient(transparent, var(--bg) 45%);pointer-events:none;z-index:3;padding:9px;font-size:11px;font-weight:700;position:fixed;bottom:0;left:0;right:0}.fx{pointer-events:none;z-index:30;position:fixed;inset:0}.modal-backdrop{z-index:40;background:#20242c73;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.modal{border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);box-sizing:border-box;background:#fff;border-radius:16px;width:min(920px,92vw);max-height:92vh;padding:16px 16px 14px;overflow-y:auto}.modal.settings{width:min(680px,92vw)}.modal.ship{width:min(520px,92vw)}.modal.confirm{width:min(460px,92vw)}.modal.adr{width:min(760px,92vw)}.modal h2{margin:0 0 4px;font-size:16px;font-weight:800}.modal h3{border-top:2px solid var(--gray);margin:16px 0 0;padding-top:12px;font-size:13px;font-weight:800}.modal label{letter-spacing:.05em;text-transform:uppercase;color:var(--dim);margin:10px 0 4px;font-size:10.5px;font-weight:800;display:block}.modal input,.modal select,.modal textarea{box-sizing:border-box;width:100%;font:inherit;color:var(--ink);border:2px solid var(--ink);background:#fff;border-radius:10px;padding:7px 10px;font-size:13px;font-weight:600}.modal input:focus,.modal select:focus,.modal textarea:focus{box-shadow:2px 2px 0 var(--ink);outline:none}.modal input:focus-visible,.modal select:focus-visible,.modal textarea:focus-visible,.gate-card input:focus-visible,.debug select:focus-visible{outline:3px solid var(--blue);outline-offset:1px}.modal textarea{resize:vertical;min-height:60px}.modal select,.debug select,.storyrow select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 18px) calc(50% - 1px),calc(100% - 12px) calc(50% - 1px);background-repeat:no-repeat;background-size:6px 6px,6px 6px;padding-right:30px}.modal input[type=date]{font-variant-numeric:tabular-nums}.modal input[type=date]::-webkit-datetime-edit{color:var(--ink)}.modal input[type=date]::-webkit-datetime-edit-fields-wrapper{padding:0}.modal input[type=date]::-webkit-datetime-edit-text{color:var(--dim)}.modal input[type=date]::-webkit-datetime-edit-day-field:not([aria-valuenow]){color:var(--dim)}.modal input[type=date]::-webkit-datetime-edit-month-field:not([aria-valuenow]){color:var(--dim)}.modal input[type=date]::-webkit-datetime-edit-year-field:not([aria-valuenow]){color:var(--dim)}.modal input[type=date]::-webkit-calendar-picker-indicator{box-sizing:content-box;border:2px solid var(--ink);opacity:1;cursor:pointer;background-color:#fff;border-radius:6px;width:11px;height:11px;margin:0 -3px 0 6px;padding:0 3px}.modal input[type=date]::-webkit-calendar-picker-indicator:hover{background-color:#ffe4d3}.modal input[type=date]::-webkit-calendar-picker-indicator:active{background-color:var(--accent)}.modal #f-desc{min-height:168px}.modal #f-checks{min-height:110px}.mrow{gap:10px;display:flex}.mrow>*{flex:1;min-width:0}.mrow>.emoji{flex:0 0 118px}@media (width<=480px){.mrow{flex-wrap:wrap}.mrow>*{flex:40%}.mrow>.emoji{flex:0 0 118px}}.modal .checkline{text-transform:none;letter-spacing:0;color:var(--ink);cursor:pointer;align-items:center;gap:8px;font-size:12px;display:flex}.modal .checkline input[type=checkbox]{width:16px;height:16px;accent-color:var(--ink);flex:none;padding:0}.modal input[type=file]{padding:5px 8px;font-size:12px}.modal input[type=file]::file-selector-button{font:inherit;color:var(--ink);border:2px solid var(--ink);cursor:pointer;box-shadow:2px 2px 0 var(--ink);background:#fff;border-radius:8px;margin-right:8px;padding:2px 9px;font-size:11px;font-weight:800}.modal input[type=file]::file-selector-button:active{box-shadow:none;transform:translate(2px,2px)}.emojifield{flex-wrap:wrap;gap:4px;display:flex;position:relative}.emojinote{color:var(--red);flex:1 0 100%;margin:4px 0 0;font-size:11px;font-weight:700}.emojifield input{text-align:center;flex:1;min-width:0}.emojibtn{font:inherit;color:var(--ink);border:2px solid var(--ink);cursor:pointer;background:#fff;border-radius:10px;flex:none;padding:0 8px;font-size:14px;line-height:1}.emojibtn:active{transform:translate(1px,1px)}.emojipop{z-index:7;border:2px solid var(--ink);max-width:min(352px,84vw);box-shadow:4px 4px 0 var(--ink);background:#fff;border-radius:14px;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden}.emojipop em-emoji-picker{--rgb-background:255, 255, 255;--rgb-color:32, 36, 44;--rgb-input:255, 255, 255;--rgb-accent:255, 123, 84;--color-border:#20242c1f;--color-border-over:#20242c47;--font-family:var(--font);--font-size:13px;--border-radius:12px;--shadow:none;height:380px}.emojipop .mnote{margin:0;padding:10px 12px}.storylist{max-height:46vh;margin-top:6px;padding-right:2px;overflow-y:auto}.storyrow{align-items:center;gap:8px;margin-bottom:8px;display:flex}.storyrow input[type=checkbox]{width:16px;height:16px;accent-color:var(--ink);flex:none;padding:0}.storyrow>input{flex:1;min-width:0}.storyrow>select{flex:0 0 72px}.modal #f-adr{min-height:200px}.modal .actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.modal .actions button{font:inherit;border:2px solid var(--ink);color:var(--ink);cursor:pointer;box-shadow:3px 3px 0 var(--ink);background:#fff;border-radius:10px;padding:7px 14px;font-size:13px;font-weight:800}.modal .actions button:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.modal .actions .save{background:var(--green);color:#fff;margin-left:auto}.modal .actions button:disabled{opacity:.45;cursor:not-allowed;box-shadow:3px 3px 0 var(--ink);transform:none}.modal .actions .save.danger,.modal .actions .del{background:var(--red);color:#fff}.labelbox{position:relative}.labelchips{box-sizing:border-box;border:2px solid var(--ink);cursor:text;background:#fff;border-radius:10px;flex-wrap:wrap;align-items:center;gap:5px;width:100%;min-height:38px;padding:5px 8px;display:flex}.labelchips:focus-within{box-shadow:2px 2px 0 var(--ink)}.modal .labelchips input{border:none;border-radius:0;flex:1;width:auto;min-width:90px;padding:2px}.modal .labelchips input:focus{box-shadow:none}.labelchips .tag,.labelchips .slabel{flex:none}.labelchips .rm{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0 0 0 5px;font-size:11px;font-weight:800;line-height:1}.labeldrop{z-index:5;border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);background:#fff;border-radius:10px;max-height:180px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.labeldrop li{cursor:pointer;border-radius:7px;padding:6px 10px;font-size:12.5px;font-weight:700}.labeldrop li.hi{background:var(--ink);color:#fff}.ai-box{border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);background:#fff4ec;border-radius:12px;margin-top:10px;padding:4px 12px 10px}.ai-box textarea{min-height:40px}.ai-row{align-items:center;gap:10px;margin-top:8px;display:flex}.ai-go{font:inherit;border:2px solid var(--ink);background:var(--accent);color:#fff;cursor:pointer;box-shadow:2px 2px 0 var(--ink);border-radius:10px;padding:5px 12px;font-size:12px;font-weight:800}.ai-go:active{box-shadow:none;transform:translate(2px,2px)}.ai-go:disabled{opacity:.45;cursor:not-allowed;box-shadow:2px 2px 0 var(--ink);transform:none}.ai-stop{font:inherit;border:2px solid var(--ink);color:var(--ink);cursor:pointer;box-shadow:2px 2px 0 var(--ink);background:#fff;border-radius:10px;padding:5px 12px;font-size:12px;font-weight:800}.ai-stop:active{box-shadow:none;transform:translate(2px,2px)}.ai-note{color:var(--dim);font-size:11px;font-weight:700}.busy{color:var(--dim);align-items:center;gap:7px;display:inline-flex}.busy:before{content:"";background:var(--accent);border-radius:50%;flex:none;width:9px;height:9px;animation:1.1s ease-in-out infinite kb-pulse}@keyframes kb-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}.modal [inert]{opacity:.55}.modal input:disabled,.modal select:disabled,.modal textarea:disabled{opacity:.55;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.busy:before{animation:none}.col,.bar i,.checks,.chev,.check .bx,.modal input,.modal select,.modal textarea{transition:none}.card.dragclone{transform:none}}.flash{margin:8px 0 0;font-size:12px;font-weight:700}.flash.ok{color:var(--green)}.flash.err{color:var(--red)}.mnote{color:var(--dim);margin:8px 0 0;font-size:11px;font-weight:700}.mnote code{color:var(--ink);background:#e9edf2;border:1px solid #d5d9df;border-radius:5px;padding:0 4px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10.5px}.who{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:12px;font-weight:700;overflow:hidden}.dot{border:1.5px solid var(--ink);border-radius:50%;flex:none;align-self:center;width:10px;height:10px}.dot.ok{background:var(--green)}.dot.error{background:var(--red)}.dot.expired{background:var(--amber)}.dot.off{background:var(--gray)}.debug{z-index:35;box-sizing:border-box;width:232px;max-width:calc(100vw - 24px);color:var(--ink);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);background:#fff;border-radius:14px;padding:8px 10px 10px;font-size:11px;font-weight:700;position:fixed;bottom:12px;right:12px}.debug-row{align-items:center;gap:8px;margin-top:3px;display:flex}.debug-title{letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.debug-row .k{color:var(--dim)}.debug-row .v{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:800}.debug-row .v.yes{color:var(--green)}.debug-row .v.no{color:var(--dim)}.debug-x{font:inherit;color:var(--ink);border:2px solid var(--ink);cursor:pointer;box-shadow:2px 2px 0 var(--ink);background:#fff;border-radius:8px;margin-left:auto;padding:1px 7px 3px;font-size:13px;font-weight:800;line-height:1}.debug-x:active{box-shadow:none;transform:translate(2px,2px)}.debug label{letter-spacing:.05em;text-transform:uppercase;color:var(--dim);margin:9px 0 4px;font-size:10px;font-weight:800;display:block}.debug select{box-sizing:border-box;width:100%;font:inherit;color:var(--ink);border:2px solid var(--ink);background:#fff;border-radius:10px;padding:5px 8px;font-size:12px;font-weight:700}.debug select:focus{box-shadow:2px 2px 0 var(--ink);outline:none}.debug-note{color:var(--dim);margin:8px 0 0;font-size:10px;font-weight:600;line-height:1.4}.gate{background:var(--bg);justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.gate-card{background:var(--card);border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);box-sizing:border-box;border-radius:20px;width:min(92vw,360px);max-height:88vh;padding:22px 20px 18px;overflow-y:auto}.gate-card h1{margin:0;font-size:28px;font-weight:800}.gate-tagline{color:var(--dim);margin:2px 0 18px;font-size:12px;font-weight:700}.gate-card label{letter-spacing:.05em;text-transform:uppercase;color:var(--dim);margin:10px 0 4px;font-size:10.5px;font-weight:800;display:block}.gate-card input{box-sizing:border-box;width:100%;font:inherit;color:var(--ink);border:2px solid var(--ink);background:#fff;border-radius:10px;padding:7px 10px;font-size:13px;font-weight:600}.gate-card input:focus{box-shadow:2px 2px 0 var(--ink);outline:none}.gate-btn{box-sizing:border-box;width:100%;font:inherit;border:2px solid var(--ink);color:var(--ink);cursor:pointer;box-shadow:3px 3px 0 var(--ink);background:#fff;border-radius:10px;padding:9px 14px;font-size:13px;font-weight:800}.gate-btn:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.gate-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:3px 3px 0 var(--ink);transform:none}.gate-btn.ms{background:var(--blue);color:#fff}.gate-btn.cont{background:var(--green);color:#fff;margin-top:14px}.gate-note{color:var(--dim);margin:6px 0 0;font-size:11px;font-weight:700}.gate-error{color:var(--red);margin:8px 0 0;font-size:12px;font-weight:700}.gate-divider{text-transform:uppercase;letter-spacing:.05em;color:var(--dim);align-items:center;gap:10px;margin:16px 0 6px;font-size:11px;font-weight:800;display:flex}.gate-divider:before,.gate-divider:after{content:"";border-top:2px solid var(--gray);flex:1}.auth-return{text-align:center;max-width:560px;color:var(--ink);margin:0 auto;padding:40px 24px;font-weight:700}.auth-return h1{margin:0 0 16px;font-size:22px}.auth-return p{text-align:left;margin:0 0 12px;font-weight:600;line-height:1.5}.auth-return.bad h1{color:var(--prio1,#ff5a48)}.auth-return code{border:2px solid var(--ink);background:var(--paper);word-break:break-all;padding:1px 5px;font-size:13px}.auth-return .auth-note{opacity:.75;font-size:13px;font-weight:600}
