:root{--accent: #8876ff;--accent-strong: #5641db;--accent-soft: #ebe8ff;--accent-btn: #6a55f0;--accent-btn-hover: #5641db;--lavender: #afafff;--cream: #ffebd8;--peach: #ffd2b6;--red: #c9383f;--red-strong: #a82b32;--red-soft: #fbe9e8;--ink: #1f1b33;--ink-2: #5f5a78;--paper: #f7f6ff;--card: #ffffff;--line: #e3e0f5;--hover: #efedff;--ok: #2f7d4f;--warn: #9a5b00;--warn-soft: #ffebd8;--shadow: 0 10px 30px rgba(31, 27, 51, .16);--radius: 14px;--side: 280px;color-scheme:light}[data-theme=dark]{--accent: #a496ff;--accent-strong: #c2b9ff;--accent-soft: #2c2752;--accent-btn: #a496ff;--accent-btn-hover: #c2b9ff;--lavender: #afafff;--cream: #3a2e24;--peach: #ffd2b6;--red: #e2585e;--red-strong: #ee7479;--red-soft: #3a2021;--ink: #f1effa;--ink-2: #aaa5c4;--paper: #15131f;--card: #1f1c2e;--line: #312d47;--hover: #28243b;--ok: #6cc08c;--warn: #e7b25c;--warn-soft: #3a2c14;--shadow: 0 10px 30px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0;text-align:inherit}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--accent-strong)}h1,h2,p{margin:0}:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}.grow{flex:1;min-width:0}.muted{color:var(--ink-2)}.error{color:var(--red-strong);font-weight:600}.wordmark{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-weight:700;font-size:1.25rem;line-height:1.2;letter-spacing:-.025em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 18px;border-radius:12px;border:1px solid var(--line);background:var(--card);font-weight:600}.btn:hover:not(:disabled){background:var(--hover)}.btn.primary{background:var(--accent-btn);border-color:var(--accent-btn);color:#fff}[data-theme=dark] .btn.primary{color:#15131f}.btn.primary:hover:not(:disabled){background:var(--accent-btn-hover);border-color:var(--accent-btn-hover)}.btn.ghost{border-color:transparent;background:transparent}.btn.danger{color:var(--red-strong)}.btn.danger:not(.ghost){border-color:var(--red)}.btn.small{min-height:38px;padding:0 12px;font-size:.92rem}.btn.round{width:48px;min-width:48px;height:48px;padding:0;border-radius:50%}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;color:var(--ink-2);flex:none}.icon-btn:hover{background:var(--hover);color:var(--ink)}.signin,.splash{min-height:100%;display:grid;place-items:center;padding:24px 16px;padding-bottom:max(24px,env(safe-area-inset-bottom))}.splash{align-content:center;gap:16px;text-align:center}.signin-card{width:100%;max-width:420px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:28px 22px;display:grid;gap:14px;box-shadow:var(--shadow)}.brand{display:flex;align-items:center;gap:10px}.signin h1{font-size:1.5rem}.agree{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:12px;background:var(--paper);border:1px solid var(--line)}.agree input,.check-line input{width:22px;height:22px;accent-color:var(--accent);flex:none;margin:1px 0 0}.signin-options,.signin-form{display:grid;gap:10px}.signin-form label{font-weight:600;font-size:.92rem}.signin-form input,.field input,.field textarea,.field select,.composer input,.search-input{width:100%;min-height:46px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--card)}.signin-form input.code{text-align:center;font-size:1.6rem;letter-spacing:.3em}.note,.banner{padding:12px;border-radius:12px;background:var(--warn-soft);color:var(--ink);display:grid;gap:10px;font-size:.95rem}.banner.bad{background:var(--red-soft)}.banner ul{margin:0;padding-left:18px}.powered{font-size:.85rem;color:var(--ink-2)}.signin-hero{position:relative;overflow:hidden;background:#15131f;min-height:100dvh}.signin-photos{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(3,1fr)}.signin-photos figure{position:relative;margin:0;overflow:hidden}.signin-photos img{width:100%;height:100%;object-fit:cover;display:block}.signin-photos figcaption{position:absolute;left:12px;bottom:12px;z-index:2;padding:4px 10px;border-radius:999px;font-size:.78rem;font-weight:600;color:#fff;background:#15131f99}.signin-photos:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,#15131f9e,#15131fc7 55%,#15131fe6)}.signin-layout{position:relative;z-index:3;width:100%;max-width:1040px;display:grid;gap:22px;justify-items:center}.signin-pitch{color:#fff;width:100%;max-width:420px}.signin-pitch h2{margin:0 0 12px;font-size:2rem;letter-spacing:-.02em}.signin-pitch ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:1.05rem;font-weight:600}.signin-pitch li{display:flex;align-items:center;gap:10px;text-shadow:0 1px 8px rgba(0,0,0,.5)}.signin-pitch li:before{content:"✓";flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--accent-btn);color:#fff;font-size:.85rem;text-shadow:none}[data-theme=dark] .signin-pitch li:before{color:#15131f}@media (max-width: 879px){.signin-hero{align-items:start}.signin-photos{bottom:auto;height:max(340px,40vh)}.signin-photos:after{background:linear-gradient(180deg,#15131f59,#15131fb3 60%,#15131f)}.signin-photos figcaption{display:none}.signin-pitch{padding-top:max(92px,calc(40vh - 250px))}}@media (min-width: 880px){.signin-photos:after{background:linear-gradient(90deg,#15131fdb,#15131f8c 50%,#15131fb8)}.signin-layout{grid-template-columns:1fr 420px;align-items:center;gap:48px;justify-items:stretch}.signin-pitch{max-width:none}.signin-pitch h2{font-size:3rem}.signin-pitch ul{font-size:1.25rem;gap:14px}.signin-pitch li:before{width:30px;height:30px}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:color-mix(in srgb,var(--paper) 88%,transparent);overflow:auto}.shell{height:100dvh;display:flex;overflow:hidden}.side{position:fixed;inset:0 auto 0 0;z-index:40;width:min(86vw,320px);display:flex;flex-direction:column;background:var(--card);border-right:1px solid var(--line);transform:translate(-102%);transition:transform .2s ease;visibility:hidden;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.side.open{transform:none;visibility:visible;box-shadow:var(--shadow)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#1f1b3373}.side-head{display:flex;align-items:center;gap:10px;padding:14px 10px 10px 16px}.side-head .home-link{flex:1}.home-link{color:inherit;text-decoration:none}.side-lists{flex:1;overflow-y:auto;padding:4px 8px;display:grid;gap:2px;align-content:start}.side-item{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:0 12px;border-radius:12px;color:var(--ink)}a.side-item{text-decoration:none}.side-item svg{color:var(--ink-2);flex:none}.side-item .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-item:hover{background:var(--hover)}.side-item.on{background:var(--accent-soft);font-weight:600}.side-item.on svg{color:var(--accent-strong)}.side-item.add{color:var(--accent-strong);font-weight:600}.side-item.add svg{color:var(--accent-strong)}.count{font-size:.82rem;color:var(--ink-2);min-width:24px;text-align:right;font-variant-numeric:tabular-nums}.side-foot{border-top:1px solid var(--line);padding:8px;display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.theme{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;border-radius:12px;background:var(--paper);border:1px solid var(--line)}.theme button{min-height:36px;border-radius:9px;text-align:center;font-size:.9rem;color:var(--ink-2)}.theme button.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 1px 3px #0000001f}.account{display:flex;align-items:center;gap:8px;padding-left:12px}.email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;color:var(--ink-2)}.legal,.hint{font-size:.8rem;color:var(--ink-2);padding:0 12px 4px}.legal a{color:inherit}.main{flex:1;min-width:0;display:flex;flex-direction:column;height:100dvh}.top{display:flex;align-items:center;gap:4px;padding:8px 8px 8px 6px;padding-top:max(8px,env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--paper)}.top h1{font-size:1.15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:6px}.search-input{flex:1;min-width:0;min-height:42px}.sync{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 10px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:.82rem;color:var(--ink-2);white-space:nowrap;flex:none}.sync.ok svg,.status-line.ok svg{color:var(--ok)}.sync.warn,.status-line.warn{color:var(--warn)}.sync.warn{background:var(--warn-soft);border-color:transparent}.sync.bad,.status-line.bad{color:var(--red-strong)}.sync.bad{background:var(--red-soft);border-color:transparent}.spin{animation:spin 1.1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.scroll{flex:1;overflow-y:auto;padding:8px 10px 16px;-webkit-overflow-scrolling:touch}.empty{text-align:center;color:var(--ink-2);padding:48px 20px}.rows{list-style:none;margin:0 auto;padding:0;max-width:760px;display:grid;gap:6px}.row{display:flex;align-items:center;gap:4px;min-height:54px;padding:4px 4px 4px 8px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.rows.dragging .row{transition:transform .15s ease}.rows.dragging .row.lifted{transition:none;position:relative;z-index:5;box-shadow:var(--shadow);border-color:var(--accent)}.tick{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:50%;position:relative}.tick:before{content:"";width:24px;height:24px;border-radius:50%;border:2px solid var(--ink-2)}.tick:hover:before{border-color:var(--accent);background:var(--accent-soft)}.tick.on:before{background:var(--accent);border-color:var(--accent)}.tick.on svg{position:absolute;color:#fff}.row-body{flex:1;min-width:0;display:grid;gap:2px;padding:8px 6px;border-radius:10px}.row-body.static{cursor:default}.row-title{overflow-wrap:anywhere;white-space:pre-wrap}.row.done .row-title{color:var(--ink-2);text-decoration:line-through}.row-meta{display:flex;gap:8px;align-items:center;font-size:.85rem;color:var(--ink-2);min-width:0}.one-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere}.chip{flex:none;padding:1px 8px;border-radius:999px;background:var(--hover);font-size:.8rem}.chip.late{background:var(--red-soft);color:var(--red-strong);font-weight:600}.grip{width:40px;height:44px;flex:none;display:grid;place-items:center;color:var(--ink-2);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;border-radius:10px}.grip:active{cursor:grabbing}.rows.notes .row{align-items:flex-start}.rows.notes .row-title{font-weight:600}.done-head{display:flex;align-items:center;gap:6px;max-width:760px;width:100%;margin:14px auto 6px;padding:8px;min-height:40px;color:var(--ink-2);font-weight:600;font-size:.92rem;border-radius:10px}.done-head:hover{background:var(--hover)}.done-head svg{transition:transform .15s}.done-head svg.turned{transform:rotate(90deg)}.rows.log .day{font-size:.82rem;font-weight:700;color:var(--ink-2);padding:12px 6px 2px;text-transform:uppercase;letter-spacing:.04em}.rows.log .time{flex:none;width:74px;padding-left:4px;font-size:.82rem;color:var(--ink-2);font-variant-numeric:tabular-nums}.bin-head{max-width:760px;margin:4px auto 10px;display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:.9rem}.composer{display:flex;gap:8px;align-items:center;padding:10px;padding-bottom:max(10px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--paper)}.composer input{flex:1;min-width:0;min-height:48px;border-radius:24px;padding:10px 18px}.composer>*{max-width:760px}.composer{justify-content:center}.sheet-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#1f1b3373;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:480px;max-height:92dvh;display:flex;flex-direction:column;background:var(--card);border-radius:20px 20px 0 0;box-shadow:var(--shadow);padding-bottom:env(safe-area-inset-bottom);animation:rise .18s ease}.sheet.wide{max-width:620px}.sheet form{display:contents}@keyframes rise{0%{transform:translateY(24px);opacity:0}}.sheet-head{display:flex;align-items:center;padding:10px 8px 4px 18px}.sheet-head h2{flex:1;font-size:1.1rem}.sheet-body{padding:8px 18px 14px;overflow-y:auto;display:grid;gap:14px}.sheet-head h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-foot{display:flex;justify-content:space-between;gap:10px;padding:10px 18px 16px;border-top:1px solid var(--line)}.field{display:grid;gap:6px;flex:1;min-width:0}.field>span{font-size:.85rem;font-weight:600;color:var(--ink-2)}.field textarea{resize:none;line-height:1.4;overflow:hidden}.field textarea.notes{overflow:auto;resize:vertical;min-height:96px}.field-row{display:flex;gap:10px;flex-wrap:wrap}.check-line{display:flex;gap:10px;align-items:center;font-weight:600;min-height:32px}.kinds{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.kinds button{display:grid;gap:2px;justify-items:start;padding:12px 10px;border:1px solid var(--line);border-radius:12px}.kinds button small{color:var(--ink-2);font-size:.78rem;line-height:1.25}.kinds button.on{border-color:var(--accent);background:var(--accent-soft)}.kinds button.on svg{color:var(--accent-strong)}.status-line{display:flex;align-items:center;gap:8px;font-size:1.05rem}.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0;font-size:.95rem}.facts dt{color:var(--ink-2)}.facts dd{margin:0}.space-pick{display:flex;align-items:center;gap:10px;margin:0 8px 6px;padding:8px 12px;min-height:52px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.space-pick:hover{background:var(--hover)}.space-pick svg{color:var(--ink-2);flex:none}.space-pick .grow{display:grid}.space-pick strong,.space-pick small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.space-pick small{color:var(--ink-2);font-size:.8rem}.plain{list-style:none;margin:0;padding:0;display:grid;gap:4px}.group{display:grid;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.group h3{margin:0;font-size:.85rem;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em}.line{display:flex;align-items:center;gap:8px;min-height:44px}.line .grow{display:grid}.line small{color:var(--ink-2);font-size:.82rem;overflow-wrap:anywhere}.line select{min-height:38px;border-radius:10px;border:1px solid var(--line);background:var(--card);padding:0 8px;max-width:46%}.team-person{padding:8px 12px 10px;border:1px solid var(--line);border-radius:12px}.team-person .line strong{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.chip.shift-state{font-weight:600;background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.chip.shift-state.break{background:var(--warn-soft);color:var(--warn)}.working{display:grid;gap:4px;padding-left:2px}.working.none{margin:0}.working ul{display:grid;gap:4px}.working li{display:flex;align-items:center;gap:8px;font-size:.92rem}.working li .grow{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.working .dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--line)}.working .dot.on{background:var(--accent)}.small-text{font-size:.88rem}.field.narrow{flex:0 0 120px}.field-row.end{align-items:flex-end}fieldset.field{border:0;margin:0;padding:0}fieldset.field>legend{font-size:.85rem;font-weight:600;color:var(--ink-2);margin-bottom:6px;padding:0}.choice{display:flex;align-items:center;gap:8px;min-height:36px}.join-code,.code-input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.12em;font-weight:700}.join-code{font-size:1.15rem;padding:6px 10px;border-radius:10px;background:var(--paper);border:1px dashed var(--ink-2);white-space:nowrap}.code-input{text-transform:uppercase;font-size:1.2rem;text-align:center}.seg{display:inline-flex;padding:3px;border-radius:12px;border:1px solid var(--line);background:var(--card);flex:none}.seg button{width:38px;height:36px;display:grid;place-items:center;border-radius:9px;color:var(--ink-2)}.seg button.on{background:var(--accent-soft);color:var(--accent-strong)}.board{flex:1;min-height:0;display:flex;gap:10px;padding:10px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;align-items:stretch}.column{flex:0 0 84%;max-width:340px;min-width:0;display:flex;flex-direction:column;gap:8px;padding:8px;background:var(--hover);border:1px solid var(--line);border-radius:var(--radius);scroll-snap-align:center;overflow-y:auto}.column.over{border-color:var(--accent);background:var(--accent-soft)}.column-head{display:flex;align-items:center;gap:8px;font-size:.95rem;padding:4px 6px;position:sticky;top:-8px;background:inherit;z-index:1}.column-head .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.column-empty{text-align:center;color:var(--ink-2);font-size:.88rem;padding:14px 0}.dot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--ink-2)}.dot.big{width:26px;height:26px;border:2px solid var(--card);box-shadow:0 0 0 1px var(--line)}.dot.grey{background:#8b87a0}.dot.amber{background:#d99411}.dot.red{background:var(--red)}.dot.green{background:var(--ok)}.dot.teal{background:#1f8a8a}.dot.purple{background:#7b55b5}.cards{list-style:none;margin:0;padding:0;display:grid;gap:6px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;display:grid;position:relative}.card.drop-before:before,.card.drop-after:after{content:"";position:absolute;left:6px;right:6px;height:3px;border-radius:2px;background:var(--accent);pointer-events:none}.card.drop-before:before{top:-5px}.card.drop-after:after{bottom:-5px}.card.lifted{opacity:.5}.card.done .row-title{color:var(--ink-2);text-decoration:line-through}.card-body{display:grid;gap:6px;padding:10px 10px 6px;border-radius:12px 12px 0 0;cursor:grab}.card .move{margin:0 6px 6px;min-height:34px;border-radius:9px;border:1px solid var(--line);background:var(--paper);color:var(--ink-2);font-size:.85rem;padding:0 6px;max-width:calc(100% - 12px)}.chips{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;flex:none}.chip svg{vertical-align:-1px}.chip.pri{text-transform:capitalize}.chip.pri.urgent{background:var(--red);color:#fff;font-weight:600}.chip.pri.high{background:var(--red-soft);color:var(--red-strong);font-weight:600}.chip.pri.medium{background:var(--warn-soft);color:var(--warn)}.avatar{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;flex:none;background:var(--ink);color:var(--paper);font-size:.66rem;font-weight:700}.updates .plain{gap:8px}.update{display:grid;gap:2px;padding:8px 10px;border-radius:12px;background:var(--paper);border:1px solid var(--line)}.update.status{background:transparent;border-style:dashed}.update-head small{color:var(--ink-2);font-size:.8rem}.update-text{white-space:pre-wrap;overflow-wrap:anywhere}.update-status{color:var(--ink-2);font-size:.92rem;display:inline-flex;gap:6px;align-items:center}.sheet form.field-row,.sheet form.comment-box{display:flex}.sheet form.group{display:grid}.comment-box{display:flex;gap:8px}.comment-box input{flex:1;min-width:0;min-height:42px;padding:8px 12px;border-radius:12px;border:1px solid var(--line);background:var(--card)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.tile{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:1;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--hover);color:var(--ink-2);cursor:pointer}.tile img,.tile video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.tile .play{position:absolute;inset:auto auto 6px 6px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#0000009e;color:#fff}.tile.small{width:72px;border-radius:10px}.tile.small .play{width:24px;height:24px}.tile.sending{cursor:default;align-content:center;gap:4px}.tile.sending small{font-size:.78rem}.tile.sending i{position:absolute;left:0;bottom:0;height:4px;background:var(--accent);transition:width .2s}.media-problem{display:flex;align-items:center;gap:8px;margin:0}.media-problem .icon-btn{width:32px;height:32px;flex:none}.hidden-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.field.media{position:relative}.update-media{display:grid;gap:6px;justify-items:start}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;flex-direction:column;background:#100e18;color:#fff}.viewer-bar{display:flex;align-items:center;gap:8px;padding:calc(8px + env(safe-area-inset-top)) 8px 8px 16px;min-height:56px}.viewer-bar small{color:#ffffffb8;font-size:.82rem;white-space:nowrap}.viewer-bar .grow{min-width:0;display:grid}.viewer-bar strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-bar .icon-btn{color:#fff;flex:none}.viewer-bar .icon-btn:hover{background:#ffffff29;color:#fff}.viewer-bar .btn{background:transparent;color:#fff;border-color:#ffffff80;flex:none}.viewer-bar .btn.danger{background:var(--red);border-color:var(--red)}.viewer .banner{margin:0 12px 8px;color:var(--ink)}.viewer-stage{flex:1;min-height:0;display:grid;place-items:center;padding:0 0 env(safe-area-inset-bottom)}.viewer-stage img,.viewer-stage video{max-width:100%;max-height:100%;object-fit:contain}.columns-edit li{display:flex;align-items:center;gap:8px}.columns-edit input{flex:1;min-width:0;min-height:40px}.columns-edit small{width:44px;text-align:center}.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:70;display:flex;align-items:center;gap:14px;max-width:calc(100vw - 24px);padding:12px 16px;background:var(--ink);color:var(--paper);border-radius:12px;box-shadow:var(--shadow);font-size:.95rem}.toast button{color:inherit;font-weight:700;text-decoration:underline;flex:none;min-height:32px}.tabs{display:flex;gap:4px;padding:6px 10px 0;border-bottom:1px solid var(--line);background:var(--paper)}.tabs button{flex:1;max-width:180px;min-height:44px;padding:0 10px;font-weight:600;color:var(--ink-2);border-bottom:3px solid transparent;text-align:center}.tabs button.on{color:var(--accent-strong);border-bottom-color:var(--accent)}.time-tab{display:grid;gap:14px;align-content:start}.time-tab>.group:first-of-type{border-top:0}.today{display:grid;gap:14px;align-content:start}.today>.group:first-of-type{border-top:0}.today .rows{margin:0}.today-check{width:100%;background:none;border:0;padding:4px 6px;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:10px}.today-check:hover{background:var(--accent-soft)}.today-progress{width:72px;height:6px;border-radius:3px;background:var(--line);overflow:hidden;flex:none}.today-progress>span{display:block;height:100%;background:var(--accent)}.clock-card{display:grid;gap:10px;justify-items:center;text-align:center;padding:22px 16px 18px;border-radius:20px;background:var(--card);border:1px solid var(--line)}.clock-card.in{border-color:var(--ok)}.clock-card.break{border-color:#d99411}.clock-state{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ink-2)}.clock-card.in .clock-state .dot{background:var(--ok)}.clock-card.break .clock-state .dot{background:#d99411}.clock-face{font-size:clamp(2.6rem,14vw,4rem);line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.clock-sub{color:var(--ink-2);min-height:1.45em}.clock-actions{display:flex;gap:10px;width:100%;max-width:460px}.btn.big{flex:1;min-height:64px;font-size:1.15rem;border-radius:16px}.btn.stop{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn.stop:hover:not(:disabled){background:var(--ink-2);border-color:var(--ink-2)}.clock-card .banner{width:100%;max-width:460px;text-align:left}.clock-card .banner svg{vertical-align:-3px}.clock-opts{display:grid;gap:4px;color:var(--ink-2);font-size:.92rem}.clock-opts label{display:flex;align-items:center;gap:10px;min-height:40px}.clock-opts input{width:20px;height:20px;accent-color:var(--accent);flex:none}.punch-dot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--ink-2);margin:0 4px}.punch-dot.in,.punch-dot.back{background:var(--ok)}.punch-dot.break{background:#d99411}.punch-dot.out{background:var(--ink)}.time-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.week-nav{display:flex;align-items:center;gap:2px}.week-name{display:grid;text-align:center;min-width:150px;padding:2px 6px;border-radius:10px}.week-name:hover{background:var(--hover)}.week-name small{color:var(--ink-2);font-size:.8rem}.seg.text button{width:auto;padding:0 12px;font-weight:600;font-size:.9rem}.week-sum{margin-top:-6px}.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.month-head{text-align:center;font-size:.78rem;font-weight:600;color:var(--ink-2);padding:2px 0}.month-day{display:flex;flex-direction:column;align-items:stretch;gap:2px;min-height:76px;padding:4px;border-radius:10px;background:var(--card);border:1px solid var(--line);text-align:left;min-width:0}.month-day:hover{border-color:var(--accent)}.month-day.other{opacity:.5}.month-day.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.month-day.off{background:var(--warn-soft)}.month-num{font-weight:700;font-size:.85rem}.month-shift{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;padding:1px 4px;border-radius:6px;background:var(--paper)}.month-shift.mine{background:var(--accent-soft);font-weight:600}.month-shift.open{border:1px dashed var(--line)}.off-line{color:var(--warn);font-weight:600;font-size:.78rem}.requests-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.requests-head h3{margin:0}.requests ul{display:grid;gap:8px}.request{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--card)}.request .grow{display:grid;gap:2px;min-width:180px;flex:1}.request small{color:var(--ink-2);font-size:.82rem;overflow-wrap:anywhere}.req-actions{display:flex;gap:6px}.chip.req-waiting{background:var(--warn-soft);color:var(--warn);font-weight:600}.chip.req-approved{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok);font-weight:600}.chip.req-declined{background:var(--red-soft);color:var(--red-strong);font-weight:600}@media (max-width: 520px){.month-day{min-height:58px;padding:3px}.month-shift{font-size:.66rem;padding:0 2px}}.usual{display:flex;align-items:center;gap:6px;font-size:.9rem;color:var(--ink-2)}.usual input{min-height:38px;padding:4px 8px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink)}.plan-invite{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between}.plan-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}.plan{border-collapse:separate;border-spacing:0;width:100%;min-width:760px;font-size:.88rem}.plan th,.plan td{border-bottom:1px solid var(--line);border-left:1px solid var(--line);padding:6px;vertical-align:top;text-align:left}.plan thead th{background:var(--paper);font-weight:600}.plan thead th strong,.plan thead th small{display:block}.plan thead th small,.plan .who-col small{color:var(--ink-2);font-size:.78rem;font-weight:400}.plan .who-col{position:sticky;left:0;z-index:1;background:var(--card);border-left:0;min-width:120px;max-width:150px}.plan thead .who-col{background:var(--paper)}.plan .who-col strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan .who-col small{display:block}.plan .today{background:color-mix(in srgb,var(--accent) 7%,var(--card))}.plan tbody tr:last-child>*{border-bottom:0}.plan td{min-width:88px}.plan-shift{display:grid;width:100%;padding:5px 6px;margin-bottom:4px;border-radius:8px;text-align:left;background:var(--accent-soft);color:var(--ink);font-weight:600;font-size:.82rem}.plan-shift small{font-weight:400;color:var(--ink-2)}.plan-shift.open{background:var(--paper);border:1px dashed var(--line)}.plan-add{display:grid;place-items:center;width:100%;min-height:30px;border-radius:8px;color:var(--ink-2);border:1px dashed var(--line)}.plan-add:hover{background:var(--hover);color:var(--accent-strong)}.plan-add:disabled{opacity:.4}.link-btn{padding:2px 0;color:var(--accent-strong);font-size:.8rem;font-weight:600;text-decoration:underline}.link-btn:disabled{color:var(--ink-2);text-decoration:none}.open-row .who-col strong{color:var(--ink-2)}.week{display:grid;gap:8px}.day{display:grid;gap:6px;align-content:start;padding:8px 10px 10px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);min-width:0}.day.today{border-color:var(--accent)}.day header{display:flex;align-items:baseline;gap:8px;min-height:36px}.day header span{color:var(--ink-2);font-size:.88rem;flex:1}.day header .icon-btn{width:36px;height:36px;align-self:center;color:var(--accent-strong)}.day.today header strong{color:var(--accent-strong)}.day .none{margin:0}.shift{display:grid;gap:1px;width:100%;padding:8px 10px;border-radius:10px;background:var(--paper);border-left:4px solid var(--line);text-align:left;min-width:0}button.shift:hover{background:var(--hover)}.shift.mine{border-left-color:var(--accent);background:var(--accent-soft)}.shift.open{border-left-style:dashed;color:var(--ink-2)}.shift strong{font-size:.95rem}.shift span,.shift small{overflow-wrap:anywhere}.shift small{color:var(--ink-2);font-size:.82rem}.late-text{color:var(--red-strong)!important;font-weight:600}.sheet-people{gap:8px}.person{border-radius:var(--radius);background:var(--card);border:1px solid var(--line)}.person-head{display:flex;align-items:center;gap:8px;width:100%;min-height:56px;padding:8px 12px;flex-wrap:wrap}.person-head .grow{display:grid;min-width:120px}.person-head small{color:var(--ink-2);font-size:.82rem}.person-hours{font-variant-numeric:tabular-nums;white-space:nowrap}.person-days{display:grid;gap:10px;padding:0 12px 12px}.sheet-day{display:grid;gap:4px;padding-top:8px;border-top:1px solid var(--line)}.sheet-day-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.sheet-day-head span{flex:1;color:var(--ink-2);font-size:.9rem;min-width:120px}.event.voided strong{text-decoration:line-through;color:var(--ink-2)}.event .btn.small{min-height:34px;padding:0 8px}.extras{display:flex!important;align-items:center;gap:10px}.punch-photo img{width:44px;height:44px;object-fit:cover;border-radius:8px;display:block}@media (min-width: 880px){.only-phone{display:none!important}.side{position:static;width:var(--side);transform:none;visibility:visible;flex:none;box-shadow:none}.top{padding:12px 16px}.top h1{font-size:1.35rem;padding-left:0}.scroll{padding:16px 20px 24px}.sheet-wrap{align-items:center;padding:24px}.sheet{border-radius:20px;animation:none}.composer{padding:14px 20px 18px}.toast{bottom:96px}.board{padding:16px 20px;gap:12px;scroll-snap-type:none}.column{flex:1 1 0;min-width:220px;max-width:360px}.tabs{padding:6px 20px 0}.week{grid-template-columns:repeat(7,minmax(0,1fr));align-items:start}.clock-card{padding:30px 20px 24px}.time-tab{max-width:1180px;width:100%}}@media (max-width: 879px){.sync:not(.warn):not(.bad) span{display:none}.sync:not(.warn):not(.bad){padding:0 9px}.seg button{width:34px}}@media (max-width: 380px){.sync span{display:none}.kinds{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90}.tour-dim{position:absolute;top:0;right:0;bottom:0;left:0;background:#15131f8c}.tour-spot{position:absolute;border-radius:12px;box-shadow:0 0 0 9999px #15131f8c,0 0 0 3px var(--accent);pointer-events:none;transition:all .2s ease}.tour-card{position:absolute;display:grid;gap:8px;padding:16px;border-radius:16px;background:var(--card);color:var(--ink);box-shadow:var(--shadow);border:1px solid var(--line)}.tour-card h2{margin:0;font-size:1.1rem}.tour-card p{margin:0;color:var(--ink-2);font-size:.95rem}.tour-count{color:var(--accent-strong);font-weight:600;font-size:.8rem}.tour-foot{display:flex;align-items:center;gap:6px;margin-top:4px}@media (prefers-reduced-motion: reduce){.tour-spot{transition:none}}.checklist-head{display:flex;gap:14px;align-items:center;max-width:760px;margin:4px auto 10px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card, var(--bg))}.checklist-head .grow{display:grid;gap:2px;min-width:0}.checklist-head strong{font-size:1.05rem}.checklist-head small{font-size:.85rem}.meter{flex:none;position:relative;width:120px;height:8px;border-radius:999px;background:var(--hover);overflow:hidden}.meter i{position:absolute;left:0;top:0;bottom:0;background:var(--accent);border-radius:999px;transition:width .2s}.section-head{max-width:760px;margin:14px auto 6px;padding:0 8px;font-size:.82rem;font-weight:700;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em}.checklist-rows .row{flex-wrap:wrap}.checklist-rows .tick{position:relative}.checklist-rows .tick:not(.on) svg{position:absolute;color:var(--ink-2)}.checklist-rows .tick:disabled{opacity:.6;cursor:default}.checklist-rows .tile.small{width:52px;height:52px;flex:none}.checklist-rows .who{white-space:nowrap}.checklist-rows .row.done .row-title{text-decoration:none}.chip.photo{display:inline-flex;gap:4px;align-items:center;background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.chip.bad{background:var(--red-soft);color:var(--red-strong)}.tick-problem{flex-basis:100%;margin:0 0 6px;display:flex;gap:8px;align-items:center}.empty.all-done{padding:18px 20px;font-weight:600;color:var(--ok, var(--ink-2))}@media (max-width: 520px){.meter{width:72px}}.checklist-head .btn.small{gap:6px;flex:none}.print-log{background:var(--paper);z-index:70}.log-tools{position:sticky;top:0;z-index:1;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px max(14px,env(safe-area-inset-left));background:var(--card);border-bottom:1px solid var(--line)}.log-tools .btn.small{gap:6px}.log-last{display:inline-flex;gap:8px;align-items:center;font-size:.9rem;color:var(--ink-2)}.log-last input{min-height:38px;padding:0 8px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font:inherit}.log-page{max-width:820px;margin:16px auto 40px;padding:24px 28px;background:#fff;color:#1d1b26;border:1px solid var(--line);border-radius:14px}.log-head{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;align-items:flex-end;border-bottom:2px solid #1d1b26;padding-bottom:10px;margin-bottom:6px}.log-head h1{margin:0;font-size:1.5rem}.log-head p{margin:2px 0 0}.log-meta{font-size:.82rem;color:#55516a;text-align:right}.log-day{margin-top:16px;break-inside:avoid}.log-day h2{margin:0 0 4px;font-size:1rem;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.log-day h2 small{font-weight:500;color:#55516a;font-size:.85rem}.log-day table{width:100%;border-collapse:collapse;font-size:.9rem}.log-day td{border-top:1px solid #e3e1ec;padding:5px 6px;vertical-align:top}.log-day tr{break-inside:avoid}.log-mark{width:1.4em;font-weight:700}.ticked .log-mark{color:#2f7d4f}.missing .log-mark,.missing .log-who strong{color:#b3262f}.missing{background:#fff4f2}.log-item{min-width:8em}.log-tag{margin-left:6px;padding:0 6px;border:1px solid #c9c5d8;border-radius:6px;font-size:.75rem;color:#55516a;white-space:nowrap}.log-who span{display:block;white-space:nowrap}.log-photos{width:1%;white-space:nowrap}.log-photos img{width:56px;height:56px;object-fit:cover;border-radius:4px;margin-left:4px;border:1px solid #e3e1ec}.log-foot{margin-top:18px;font-size:.75rem;color:#8a86a0;text-align:right}@media (max-width: 520px){.log-last-label{display:none}.log-tools{gap:8px}.log-page{margin:0;border-radius:0;border-width:0;padding:16px 12px}.log-who span{white-space:normal}.log-photos img{width:44px;height:44px}}@media print{@page{margin:12mm}body.log-open>#root{display:none!important}html:has(body.log-open),body.log-open{height:auto;overflow:visible;background:#fff}.print-log{position:static;overflow:visible;background:#fff}.print-log .no-print{display:none!important}.log-page{max-width:none;margin:0;padding:0;border:0;border-radius:0}.missing{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.sheet-body.plan-sheet{grid-template-columns:minmax(0,1fr)}.usage,.usage-head{min-width:0}.usage{display:grid;gap:4px}.usage-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.usage-head small,.usage-note{color:var(--ink-2);font-size:.82rem}.usage-bar{position:relative;display:block;height:10px;border-radius:999px;background:var(--hover);overflow:hidden}.usage-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--accent);border-radius:999px;transition:width .2s}.usage-bar.near i{background:var(--warn)}.usage-bar.full i,.usage-bar.over i{background:var(--red)}.usage-note.full,.usage-note.over{color:var(--red-strong)}.usage-note.near{color:var(--warn)}.stepper .icon-btn{border:1px solid var(--line)}.stepper-n{min-width:2ch;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}.plan-sheet .line .chip{margin-left:8px;vertical-align:middle}.media-note{display:flex;gap:8px;align-items:center}.rows .section-row{font-size:.82rem;font-weight:700;color:var(--ink-2);padding:12px 6px 2px;text-transform:uppercase;letter-spacing:.04em;list-style:none}.task-from{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin:0}.from-template{justify-self:start}.templates .search-input{width:100%}.template-list{display:grid;gap:6px}.template-list .template{display:grid;gap:2px;width:100%;text-align:left;padding:10px 12px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line);cursor:pointer}.template-list .template:hover:not(:disabled){border-color:var(--accent)}.template-list .template small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.place .place-name{margin:0 0 6px}.mini-map{position:relative;overflow:hidden;border-radius:10px;border:1px solid var(--line, #ddd);background:#e8e6f5}.mini-map.tappable{cursor:crosshair;touch-action:manipulation}.mini-map img{position:absolute;width:256px;height:256px;max-width:none;-webkit-user-select:none;user-select:none;pointer-events:none}.map-pin{position:absolute;transform:translate(-50%,-100%);color:var(--red, #CF3A44);pointer-events:none;line-height:0}.map-pin svg{fill:#fff;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}.map-credit{position:absolute;right:0;bottom:0;padding:1px 6px;font-size:.7rem;background:#ffffffd9;color:#333}.map-wrap{position:relative}.map-zoom{position:absolute;top:8px;right:8px;display:flex;flex-direction:column;gap:4px}.map-zoom button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line, #ccc);background:#fff;display:grid;place-items:center;cursor:pointer}.directions{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline;margin:8px 0}.place-search input{flex:1 1 220px;min-width:0}.place-results{list-style:none;margin:0;padding:0;display:grid;gap:4px}.place-results button{width:100%;text-align:left;padding:8px 10px;border-radius:8px;border:1px solid var(--line, #ddd);background:var(--paper, #fff);cursor:pointer}.place-results button:hover{background:var(--hover)}.place-link{align-self:center}.small-print{font-size:.85rem;margin:4px 0}.map-track{position:absolute;left:0;top:0;pointer-events:none}.map-track polyline{fill:none;stroke:var(--accent, #8876FF);stroke-width:4;stroke-linejoin:round;stroke-linecap:round;opacity:.9}.map-stop{position:absolute;transform:translate(-50%,-50%);min-width:26px;height:26px;padding:0 6px;border-radius:13px;border:2px solid #fff;background:var(--red, #CF3A44);color:#fff;font-weight:700;font-size:.8rem;cursor:pointer;box-shadow:0 1px 2px #00000059}.route-embed iframe{width:100%;height:300px;border:1px solid var(--line, #ddd);border-radius:10px;background:#f3f2fa}.route-help{margin:6px 0;font-size:.9rem}.route-help summary{cursor:pointer;color:var(--accent-ink, var(--accent))}.route-help p{margin:6px 0}.list-map{padding:12px 16px 24px;display:grid;gap:10px;align-content:start}.list-map .stops{list-style:none;margin:0;padding:0;display:grid;gap:4px}.list-map .stops button{width:100%;display:flex;gap:10px;align-items:baseline;text-align:left;padding:8px 10px;border-radius:8px;border:1px solid var(--line, #ddd);background:var(--card, #fff);cursor:pointer}.list-map .stops b{color:var(--red, #CF3A44);min-width:1.5em}.gpx-pick input{display:none}.rapp-banner{margin:0 16px 8px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--accent-soft, var(--warn-soft))}
