:root{--brand:#0072ce;--brand-btn:#0072ce;--brand-strong:#005eaa;--brand-soft:#e7f1fb;--bg:#f2f4f7;--surface:#fff;--surface-2:#f7f9fb;--surface-3:#edf1f5;--line:#e1e6ed;--line-strong:#cbd3de;--text:#151e2b;--text-2:#445063;--text-3:#6b7788;--st-todo:#4f5d70;--st-todo-bg:#eaeef3;--st-doing:#0065b8;--st-doing-bg:#e1eefb;--st-waiting:#955700;--st-waiting-bg:#fcefd3;--st-done:#18773a;--st-done-bg:#e0f3e6;--urgent:#d9480f;--urgent-bg:#fdeadf;--overdue:#c42b2b;--overdue-bg:#fce7e7;--today:#b45900;--today-bg:#fdefdb;--tone-teal:#0a7c75;--tone-teal-bg:#dcf2ef;--tone-blue:#0065b8;--tone-blue-bg:#e1eefb;--tone-violet:#6847d3;--tone-violet-bg:#ede8fc;--tone-rose:#c0285f;--tone-rose-bg:#fbe5ed;--tone-amber:#955700;--tone-amber-bg:#fcefd3;--tone-gray:#5b6677;--tone-gray-bg:#eaeef3;--shadow-1:0 1px 2px #1018280d, 0 1px 3px #1018280f;--shadow-2:0 10px 28px #10182824, 0 2px 6px #10182814;--radius:14px;--topbar-h:60px;--font:"Segoe UI", -apple-system, BlinkMacSystemFont, "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--brand:#5aaaf2;--brand-btn:#0072ce;--brand-strong:#1a85dd;--brand-soft:#16304a;--bg:#0e131a;--surface:#161d26;--surface-2:#1b232e;--surface-3:#232c38;--line:#29333f;--line-strong:#3a4553;--text:#e7ecf2;--text-2:#b2bccb;--text-3:#8591a2;--st-todo:#b0bac7;--st-todo-bg:#252f3c;--st-doing:#72b8f6;--st-doing-bg:#132f4a;--st-waiting:#f0b452;--st-waiting-bg:#382910;--st-done:#5fcb85;--st-done-bg:#13321f;--urgent:#ff8c4f;--urgent-bg:#3b2014;--overdue:#ff7d7d;--overdue-bg:#3d1a1a;--today:#ffb45e;--today-bg:#392810;--tone-teal:#4fd1c5;--tone-teal-bg:#12312f;--tone-blue:#72b8f6;--tone-blue-bg:#132f4a;--tone-violet:#a993f7;--tone-violet-bg:#2a2348;--tone-rose:#f47ba6;--tone-rose-bg:#3a1a28;--tone-amber:#f0b452;--tone-amber-bg:#382910;--tone-gray:#a9b3c1;--tone-gray-bg:#252f3c;--shadow-1:0 1px 2px #00000059;--shadow-2:0 12px 32px #00000080, 0 2px 6px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}.st-todo,.tone-st-todo{--st:var(--st-todo);--st-bg:var(--st-todo-bg)}.st-doing,.tone-st-doing{--st:var(--st-doing);--st-bg:var(--st-doing-bg)}.st-waiting,.tone-st-waiting{--st:var(--st-waiting);--st-bg:var(--st-waiting-bg)}.st-done,.tone-st-done{--st:var(--st-done);--st-bg:var(--st-done-bg)}.tone-teal{--tone:var(--tone-teal);--tone-bg:var(--tone-teal-bg)}.tone-blue{--tone:var(--tone-blue);--tone-bg:var(--tone-blue-bg)}.tone-violet{--tone:var(--tone-violet);--tone-bg:var(--tone-violet-bg)}.tone-rose{--tone:var(--tone-rose);--tone-bg:var(--tone-rose-bg)}.tone-amber{--tone:var(--tone-amber);--tone-bg:var(--tone-amber-bg)}.tone-gray{--tone:var(--tone-gray);--tone-bg:var(--tone-gray-bg)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:15px;line-height:1.55}body.no-scroll{overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--brand);text-underline-offset:2px}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}h1,h2,h3{margin:0}.muted{color:var(--text-3)}.small{font-size:13px;font-weight:500}.center{text-align:center}.pad{padding:24px}.pad-text{color:var(--text-2);margin:4px 0 8px;line-height:1.7}.spacer{flex:1}code{background:var(--surface-3);border-radius:5px;padding:1px 5px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.92em}.btn{white-space:nowrap;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:6px;height:40px;padding:0 16px;font-size:14.5px;font-weight:650;transition:background .15s,border-color .15s;display:inline-flex}.btn.sm{border-radius:9px;height:32px;padding:0 12px;font-size:13.5px}.btn-primary{background:var(--brand-btn);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-strong)}.btn-ghost{background:var(--surface);border-color:var(--line-strong);color:var(--text)}.btn-ghost:hover:not(:disabled){background:var(--surface-3)}.btn-danger{background:var(--overdue);color:#fff}.btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn{width:38px;height:38px;color:var(--text-2);background:0 0;border:0;border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.icon-btn.sm{border-radius:8px;width:28px;height:28px}.link-btn{color:var(--brand);background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:13.5px;font-weight:600;display:inline-flex}.link-btn:hover{text-decoration:underline}.link-btn.danger{color:var(--overdue)}.input{border:1px solid var(--line-strong);background:var(--surface);width:100%;color:var(--text);border-radius:10px;padding:9px 12px;font-size:15px;line-height:1.5}.input.auto{width:auto}select.input{height:40px;padding:0 10px}.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}textarea.input{resize:vertical}.hint{color:var(--text-3);font-size:12.5px}.row{flex-wrap:wrap;gap:8px;margin:12px 0 4px;display:flex}.row-end{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.check-row{align-items:center;gap:10px;margin:6px 0 12px;font-size:14.5px;display:flex}.check-row input{width:18px;height:18px;accent-color:var(--brand-btn)}.badge{background:var(--urgent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex}.segmented{background:var(--surface-3);border-radius:11px;gap:2px;max-width:100%;padding:3px;display:inline-flex}.seg-btn{height:34px;color:var(--text-2);white-space:nowrap;background:0 0;border:0;border-radius:9px;flex:1 1 0;padding:0 12px;font-size:14px;font-weight:600;transition:background .15s,color .15s}.seg-btn:hover{color:var(--text)}.seg-btn.is-on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}.seg-btn.is-on[class*=tone-st-]{background:var(--st-bg);color:var(--st);box-shadow:inset 0 0 0 1.5px var(--st)}.seg-btn.is-on.tone-prio-urgent{background:var(--urgent);color:#fff}.seg-btn.is-on.tone-prio-high{background:var(--urgent-bg);color:var(--urgent);box-shadow:inset 0 0 0 1.5px var(--urgent)}.segmented.compact .seg-btn{height:34px;font-size:13.5px}.dot{background:var(--st,var(--tone));border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.avatar{object-fit:cover;background:var(--surface-3);border-radius:50%;flex:none;display:inline-block}.avatar-fallback{color:#fff;background:var(--tone);justify-content:center;align-items:center;font-weight:700;display:inline-flex}@media (prefers-color-scheme:dark){.avatar-fallback{color:var(--tone);background:var(--tone-bg);box-shadow:inset 0 0 0 1.5px var(--tone)}}.org-tag{height:19px;color:var(--tone);background:var(--tone-bg);white-space:nowrap;border-radius:5px;align-items:center;padding:0 6px;font-size:11.5px;font-weight:700;display:inline-flex}.role-tag{color:var(--brand);border:1px solid;border-radius:5px;padding:0 5px;font-size:11.5px;font-weight:700}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.person-chip{border:1px solid var(--line);background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;max-width:100%;padding:3px 6px 3px 3px;font-size:14px;display:inline-flex}.person-chip.is-inactive{opacity:.6}.person-chip-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.chip-x{color:var(--text-3);background:0 0;border:0;border-radius:50%;padding:2px;display:inline-flex}.chip-x:hover{color:var(--overdue);background:var(--overdue-bg)}.add-chip{border:1px dashed var(--line-strong);height:32px;color:var(--brand);background:0 0;border-radius:999px;align-items:center;gap:4px;padding:0 12px;font-size:13.5px;font-weight:600;display:inline-flex}.add-chip:hover{border-color:var(--brand);background:var(--brand-soft)}.topbar{z-index:30;background:var(--surface);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top);position:sticky;top:0}.topbar-inner{max-width:1480px;height:var(--topbar-h);align-items:center;gap:12px;margin:0 auto;padding:0 20px;display:flex}.brand{min-width:0;color:var(--text);align-items:center;gap:12px;text-decoration:none;display:flex}.brand-logo{flex:none;width:auto;height:26px}.brand-title{border-left:1px solid var(--line-strong);white-space:nowrap;text-overflow:ellipsis;padding-left:12px;font-size:17px;font-weight:700;overflow:hidden}.user-box{position:relative}.avatar-btn{background:0 0;border:0;border-radius:50%;padding:0;display:flex;position:relative}.avatar-badge{border:2px solid var(--surface);background:var(--urgent);color:#fff;text-align:center;border-radius:999px;min-width:19px;height:19px;padding:0 5px;font-size:11px;font-weight:700;line-height:15px;position:absolute;top:-4px;right:-6px}.menu-layer{z-index:50;position:fixed;top:0;bottom:0;left:0;right:0}.menu{z-index:51;border:1px solid var(--line);background:var(--surface);min-width:200px;box-shadow:var(--shadow-2);border-radius:12px;padding:6px;animation:.12s ease-out pop;position:fixed}.user-menu{width:250px;position:absolute;top:46px;right:0}.user-menu-head{border-bottom:1px solid var(--line);gap:2px;margin-bottom:4px;padding:8px 10px 10px;display:grid}.user-menu-head span{color:var(--text-3);font-size:12.5px}.menu-title{color:var(--text-3);padding:6px 10px 4px;font-size:12px;font-weight:600}.menu-item{width:100%;height:42px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:0 10px;font-size:14.5px;display:flex}.menu-item:hover{background:var(--surface-3)}.menu-item.is-on{font-weight:700}.menu-item .badge,.menu-check{color:var(--brand);margin-left:auto}.menu-item .badge{color:#fff}.layout{max-width:1240px;margin:0 auto;padding:18px 20px 120px}.list-pane{min-width:0}.tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.tile{text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:76px;box-shadow:var(--shadow-1);flex-direction:column;gap:2px;padding:11px 14px;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.tile:hover{border-color:var(--line-strong)}.tile-label{color:var(--text-2);align-items:center;gap:5px;font-size:13.5px;font-weight:600;display:inline-flex}.tile-count{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:28px;font-weight:750;line-height:1.15}.tile-urgent{--accent:var(--urgent);--accent-bg:var(--urgent-bg)}.tile-overdue{--accent:var(--overdue);--accent-bg:var(--overdue-bg)}.tile-unread{--accent:var(--brand);--accent-bg:var(--brand-soft)}.tile-mine{--accent:var(--text);--accent-bg:var(--surface-3)}.tile.has-count .tile-count,.tile.has-count .tile-label svg{color:var(--accent)}.tile.is-on{border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 1px var(--accent)}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.search-field{border:1px solid var(--line-strong);background:var(--surface);height:42px;color:var(--text-3);border-radius:12px;flex:260px;align-items:center;gap:8px;padding:0 6px 0 12px;display:flex}.search-field:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.search-field input{min-width:0;height:100%;color:var(--text);background:0 0;border:0;outline:none;flex:1;font-size:15px}.search-field input::-webkit-search-cancel-button{display:none}.list-summary{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:6px 14px;margin:14px 2px 0;font-size:13.5px;display:flex}.list-summary b{color:var(--text-2)}.notice{background:var(--today-bg);color:var(--today);border-radius:10px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 14px;font-size:14px;display:flex}.group{margin-top:22px}.group-head{color:var(--text-2);align-items:center;gap:8px;margin:0 2px 10px;font-size:14.5px;font-weight:700;display:flex}.group-count{background:var(--surface-3);color:var(--text-3);border-radius:999px;padding:0 8px;font-size:12.5px;font-weight:700;line-height:20px}.group-toggle{color:inherit;font:inherit;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;margin:-4px -6px;padding:4px 6px;display:inline-flex}.group-toggle:hover{background:var(--surface-3)}.group-toggle svg{transition:transform .15s;transform:rotate(-90deg)}.group-toggle svg.rot{transform:none}.cards{gap:10px;display:grid}.show-more{width:100%;margin-top:10px}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:0;box-shadow:var(--shadow-1);cursor:pointer;padding:13px 16px 12px;transition:border-color .15s,box-shadow .15s;position:relative}.card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2)}.card.prio-urgent:not(.st-done):before{content:"";background:var(--urgent);border-radius:0 4px 4px 0;width:4px;position:absolute;top:12px;bottom:12px;left:-1px}.card.is-selected{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.card.st-done{background:var(--surface-2);box-shadow:none}.card.st-done .card-title{color:var(--text-2);font-weight:600}.card-top{align-items:center;gap:8px;min-height:28px;display:flex}.card-id{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.prio-tag{border-radius:999px;align-items:center;gap:3px;height:22px;padding:0 8px;font-size:12.5px;font-weight:700;display:inline-flex}.prio-tag.prio-urgent{background:var(--urgent);color:#fff}.prio-tag.prio-high{background:var(--urgent-bg);color:var(--urgent)}.new-tag{background:var(--brand-btn);color:#fff;border-radius:999px;height:20px;padding:0 7px;font-size:12px;font-weight:700;line-height:20px}.upd-tag{color:var(--brand);align-items:center;gap:5px;font-size:12.5px;font-weight:700;display:inline-flex}.upd-tag i{background:var(--brand);border-radius:50%;width:8px;height:8px}.status-pill{background:var(--st-bg);height:28px;color:var(--st);border:0;border-radius:999px;flex:none;align-items:center;gap:2px;margin-left:auto;padding:0 7px 0 11px;font-size:13px;font-weight:700;display:inline-flex}.status-pill:hover{box-shadow:inset 0 0 0 1.5px var(--st)}.card-title{word-break:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:6px 0 10px;font-size:16.5px;font-weight:650;line-height:1.45;display:-webkit-box;overflow:hidden}.card-meta{color:var(--text-2);flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:13.5px;display:flex}.assignees{flex-wrap:wrap;align-items:center;gap:4px 10px;display:inline-flex}.assignee{align-items:center;gap:6px;font-weight:600;display:inline-flex}.assignee.is-inactive{opacity:.55}.more-count{color:var(--text-3);font-size:12.5px;font-weight:700}.unassigned{color:var(--text-3);align-items:center;gap:4px;display:inline-flex}.due-chip{background:var(--surface-3);height:24px;color:var(--text-2);border-radius:7px;align-items:center;gap:4px;padding:0 8px;font-weight:650;display:inline-flex}.due-overdue{background:var(--overdue-bg);color:var(--overdue)}.due-today{background:var(--today-bg);color:var(--today)}.due-soon{color:var(--today)}.due-done{color:var(--text-3);background:0 0;padding:0}.comment-count{color:var(--text-3);align-items:center;gap:4px;font-weight:600;display:inline-flex}.card-comment{background:var(--surface-2);color:var(--text-2);-webkit-line-clamp:2;word-break:break-word;border-radius:9px;-webkit-box-orient:vertical;margin:10px 0 0;padding:7px 10px;font-size:13.5px;display:-webkit-box;overflow:hidden}.card-comment b{color:var(--text);font-weight:650}.card-foot{color:var(--text-3);justify-content:space-between;gap:10px;margin-top:10px;font-size:12.5px;display:flex}.card-foot>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card-foot>span:last-child{flex:none}.empty{border:1px dashed var(--line-strong);background:var(--surface);text-align:center;border-radius:16px;margin-top:20px;padding:44px 20px}.empty-title{margin:0 0 6px;font-size:17px;font-weight:700}.empty .btn{margin-top:14px}.detail-pane{background:var(--surface)}.detail{flex-direction:column;height:100%;min-height:0;display:flex}.detail-head{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:4px;min-height:56px;padding:8px 10px;display:flex}.back-btn{gap:2px;width:auto;padding:0 10px 0 4px;font-size:15px;font-weight:600}.detail-id{color:var(--text-2);font-variant-numeric:tabular-nums;margin-left:4px;font-size:15px;font-weight:750}.save-state{color:var(--text-3);margin-left:8px;font-size:12.5px}.save-state.is-saving{color:var(--brand)}.detail-scroll{overscroll-behavior:contain;flex:1;min-height:0;padding:18px 22px 28px;overflow-y:auto}.detail-title{resize:none;width:calc(100% + 16px);color:var(--text);background:0 0;border:0;border-radius:8px;outline:none;margin:-6px -8px 0;padding:6px 8px;font-size:21px;font-weight:750;line-height:1.4;display:block;overflow:hidden}.detail-title:hover{background:var(--surface-2)}.detail-title:focus{background:var(--surface-2);box-shadow:inset 0 0 0 2px var(--brand)}.detail-sub{color:var(--text-3);margin:6px 0 18px;font-size:13px}.field{gap:7px;margin-bottom:16px;display:grid}.field-label{color:var(--text-3);font-size:13px;font-weight:650}.field-label em{color:var(--urgent);margin-left:4px;font-size:12px;font-style:normal}.detail .segmented,.form .segmented{width:100%;display:flex}.due-field{gap:8px;display:grid}.due-row{align-items:center;gap:8px;display:flex}.date-input{width:auto;min-width:160px;height:40px}.date-box{display:inline-flex;position:relative}.date-face{display:none}@media (pointer:coarse){.date-face{border:1px solid var(--line-strong);background:var(--surface);min-width:160px;height:42px;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:10px;align-items:center;gap:8px;padding:0 14px 0 12px;font-size:16px;display:inline-flex}.date-face svg,.date-face.is-empty{color:var(--text-3)}.date-box .date-input{z-index:1;opacity:0;-webkit-appearance:none;appearance:none;width:100%;min-width:0;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.date-box:focus-within .date-face{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}}.due-weekday{color:var(--text-2);font-size:14px;font-weight:600}.quick-row{flex-wrap:wrap;gap:6px;display:flex}.quick-chip{border:1px solid var(--line-strong);background:var(--surface);height:30px;color:var(--text-2);border-radius:999px;padding:0 12px;font-size:13.5px;font-weight:600}.quick-chip:hover{border-color:var(--brand);color:var(--brand)}.quick-chip.is-on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.detail-section{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}.section-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.section-head h3{font-size:15.5px;font-weight:750}.body-text{white-space:pre-wrap;word-break:break-word;font-size:15.5px;line-height:1.75}.body-empty{border:1px dashed var(--line-strong);width:100%;color:var(--text-3);text-align:left;background:0 0;border-radius:10px;padding:14px}.body-empty:hover{border-color:var(--brand);color:var(--brand)}textarea.body-input,textarea.title-input,textarea.composer-input,.bubble-edit textarea.input,.form textarea.input{resize:none}.timeline{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.tl-activity{color:var(--text-3);align-items:baseline;gap:8px;padding-left:12px;font-size:13px;display:flex}.tl-activity b{color:var(--text-2);font-weight:650}.tl-activity time{white-space:nowrap;margin-left:auto;padding-left:8px}.tl-dot{background:var(--line-strong);border-radius:50%;flex:none;width:7px;height:7px;transform:translateY(-1px)}.tl-comment{align-items:flex-start;gap:10px;display:flex}.bubble{border:1px solid var(--line);background:var(--surface-2);border-radius:4px 14px 14px;flex:1;min-width:0;padding:9px 12px 10px}.tl-comment.is-mine .bubble{background:var(--brand-soft);border-color:#0000}.bubble-head{flex-wrap:wrap;align-items:center;gap:6px;font-size:13.5px;display:flex}.bubble-head time{color:var(--text-3);margin-left:auto;font-size:12.5px}.bubble-body{white-space:pre-wrap;word-break:break-word;margin-top:4px;font-size:15px;line-height:1.65}.bubble-actions{gap:14px;margin-top:6px;display:flex}.bubble-actions .link-btn{color:var(--text-3);font-size:12.5px}.bubble-actions .link-btn:hover{color:var(--brand)}.bubble-actions .link-btn.danger:hover{color:var(--overdue)}.bubble-edit{margin-top:6px}.composer{border-top:1px solid var(--line);background:var(--surface);padding:10px 12px;padding-bottom:max(10px, env(safe-area-inset-bottom));flex-direction:column;flex:none;gap:8px;display:flex}.composer-row{align-items:flex-end;gap:6px;display:flex}.composer-row>.avatar{margin:0 2px 5px 0}.composer-row>.icon-btn{margin-bottom:2px}.composer .hint-error{margin:0}.composer-input{flex:1;min-height:42px;max-height:180px;overflow-y:auto}.send-btn{border-radius:12px;flex:none;width:42px;height:42px;padding:0}.field-hint{margin-left:6px;font-weight:500}.hint-error{color:var(--overdue);margin:2px 0 0;font-weight:600}.file-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.att-pending{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.att-tile{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;height:72px;display:flex;position:relative;overflow:hidden}.att-tile.is-image{width:72px}.att-tile.is-error{border-color:var(--overdue)}.att-tile img{object-fit:cover;width:100%;height:100%}.att-tile-file{width:190px;max-width:100%;color:var(--text-2);grid-template-columns:auto minmax(0,1fr);align-content:center;column-gap:8px;padding:0 30px 0 10px;font-size:13px;display:grid}.att-tile-file svg{color:var(--text-3);grid-row:span 2;align-self:center}.att-tile-name{text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:600;overflow:hidden}.att-size{color:var(--text-3);white-space:nowrap;font-size:12px}.att-state{text-align:center;background:color-mix(in srgb, var(--surface) 65%, transparent);place-items:center;padding:0 6px;font-size:12px;font-weight:700;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.att-failed{color:var(--overdue);background:color-mix(in srgb, var(--overdue-bg) 85%, transparent)}.att-remove{z-index:1;color:#fff;background:#0a10189e;border:0;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;display:inline-flex;position:absolute;top:3px;right:3px}.att-remove:hover{background:var(--overdue)}.spinner{border:2.5px solid var(--line-strong);border-top-color:var(--brand);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}.att-list{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.bubble .att-list{margin-top:8px}.att-thumbs{flex-wrap:wrap;gap:6px;display:flex}.att-thumb{border:1px solid var(--line);background:var(--surface-3);cursor:zoom-in;border-radius:10px;width:96px;height:96px;padding:0;display:block;overflow:hidden}.att-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .15s;display:block}.att-thumb:hover img{transform:scale(1.04)}.att-file{border:1px solid var(--line);background:var(--surface);max-width:100%;color:var(--text);border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:14px;text-decoration:none;display:inline-flex}.att-file:hover{border-color:var(--brand);color:var(--brand)}.att-file>svg{color:var(--text-3);flex:none}.att-file:hover>svg{color:var(--brand)}.att-file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.lightbox{z-index:80;color:#fff;background:#060a10f7;flex-direction:column;animation:.15s ease-out fade;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.lb-bar{padding:10px 12px 6px 18px;padding-top:max(10px, env(safe-area-inset-top));flex:none;align-items:center;gap:8px;display:flex}.lb-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.lb-count{color:#ffffffb3;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.lb-btn{color:#fff;background:#ffffff1a;border:0;border-radius:10px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.lb-btn:hover{background:#ffffff38}.lb-stage{min-height:0;margin-bottom:env(safe-area-inset-bottom);flex:1;position:relative}.lb-img{border-radius:4px;max-width:calc(100% - 144px);max-height:calc(100% - 36px);margin:auto;animation:.16s ease-out pop;position:absolute;top:12px;bottom:24px;left:72px;right:72px;box-shadow:0 12px 40px #00000080}.lb-nav{color:#fff;background:#ffffff24;border:0;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin-top:-24px;padding:0;display:inline-flex;position:absolute;top:50%}.lb-nav:hover{background:#ffffff42}.lb-prev{left:14px}.lb-next{right:14px}.sheet-backdrop{z-index:60;background:#0a101873;justify-content:center;align-items:center;padding:24px;animation:.15s ease-out fade;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.sheet{background:var(--surface);width:min(620px,100%);max-height:min(90dvh,900px);box-shadow:var(--shadow-2);border-radius:18px;flex-direction:column;animation:.16s ease-out pop;display:flex}.sheet-sm{width:min(460px,100%)}.sheet-head{flex:none;justify-content:space-between;align-items:center;gap:8px;padding:14px 12px 8px 22px;display:flex}.sheet-head h2{font-size:18px;font-weight:750}.sheet-body{overscroll-behavior:contain;flex:1;min-height:0;padding:6px 22px 20px;overflow-y:auto}.sheet-foot{border-top:1px solid var(--line);padding:12px 16px;padding-bottom:max(12px, env(safe-area-inset-bottom));flex:none;justify-content:flex-end;gap:8px;display:flex}.form .field{margin-bottom:18px}.title-input{font-size:17px;font-weight:600}.picker-search{z-index:1;box-shadow:0 -8px 0 var(--surface);margin-bottom:4px;position:sticky;top:0}.picker-group{margin-top:10px}.picker-org{color:var(--text-3);padding:6px 6px 4px;font-size:12.5px;font-weight:700}.picker-row{width:100%;min-height:54px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;padding:8px;font-size:15px;display:flex}.picker-row:hover{background:var(--surface-2)}.picker-row.is-on{background:var(--brand-soft)}.picker-name{flex-direction:column;flex:1;min-width:0;font-weight:600;display:flex}.picker-note{color:var(--text-3);font-size:12px;font-weight:500}.picker-check{width:22px;color:var(--brand);display:inline-flex}.new-btn{flex:none}.fab{right:16px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:35;background:var(--brand-btn);color:#fff;border:0;border-radius:999px;align-items:center;gap:6px;height:54px;padding:0 22px 0 18px;font-size:16px;font-weight:750;display:none;position:fixed;box-shadow:0 10px 24px #0072ce59}.toast{left:50%;bottom:calc(90px + env(safe-area-inset-bottom));z-index:90;color:#fff;max-width:calc(100% - 32px);box-shadow:var(--shadow-2);white-space:pre-line;text-align:center;background:#1d2632;border-radius:12px;padding:11px 18px;font-size:14.5px;font-weight:600;animation:.18s ease-out toast-in;position:fixed;transform:translate(-50%)}.toast-error{background:#b42323}.splash{min-height:100dvh;color:var(--text-3);align-content:center;place-items:center;gap:12px;display:grid}.splash img{height:36px}.auth-screen{background:radial-gradient(1200px 500px at 50% -10%, var(--brand-soft), transparent 70%), var(--bg);place-items:center;min-height:100dvh;padding:24px;display:grid}.auth-card{border:1px solid var(--line);background:var(--surface);width:min(420px,100%);box-shadow:var(--shadow-2);text-align:center;border-radius:22px;padding:38px 28px 30px}.auth-logo{height:40px}.auth-avatar{object-fit:cover;border-radius:50%;width:76px;height:76px}.auth-name{color:var(--text-2);margin:8px 0 0;font-weight:650}.auth-card h1{margin:18px 0 10px;font-size:22px;font-weight:750;line-height:1.4}.auth-lead{color:var(--text-2);margin:0;line-height:1.75}.auth-error{background:var(--overdue-bg);color:var(--overdue);border-radius:10px;margin:18px 0 0;padding:10px 12px;font-weight:600}.line-btn{color:#fff;background:#06c755;border-radius:13px;justify-content:center;align-items:center;gap:10px;height:54px;margin-top:26px;font-size:17px;font-weight:750;text-decoration:none;display:flex}.line-btn:hover{background:#05b34c}.auth-note{color:var(--text-3);margin:14px 0 0;font-size:12.5px;line-height:1.6}.auth-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:22px;display:flex}.admin-wrap{max-width:880px;margin:0 auto;padding:16px 20px 80px}.admin-top{align-items:center;gap:12px;display:flex}.admin-top h1{flex:1;font-size:20px;font-weight:750}.panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-1);border-radius:16px;margin-top:16px;padding:18px 20px}.panel h2{align-items:center;gap:8px;margin-bottom:10px;font-size:16.5px;font-weight:750;display:flex}.panel>p{margin:0 0 6px;font-size:14px;line-height:1.65}.admin-row{border-top:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.admin-main{flex:1;min-width:0}.admin-name{flex-wrap:wrap;align-items:center;gap:6px;font-weight:650;display:flex}.admin-sub{color:var(--text-3);overflow-wrap:anywhere;margin-top:2px;font-size:13px}.admin-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.pending-row{align-items:flex-start}.pending-controls{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.pending-controls select{flex:180px;width:auto}.person-row{width:100%;color:var(--text);text-align:left;background:0 0;border-bottom:0;border-left:0;border-right:0;border-radius:0;padding-left:6px;padding-right:6px}.person-row:hover{background:var(--surface-2)}.person-row.is-inactive{opacity:.55}.people-list{margin:0 -6px}.invite-url{display:inline-block}.rejected{margin-top:12px}.rejected summary{cursor:pointer;color:var(--text-3);font-size:14px}.linked-box{background:var(--surface-2);color:var(--text-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:12px;font-size:14px;display:flex}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.97)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}@keyframes slide-up{0%{opacity:.6;transform:translateY(24px)}}@keyframes slide-in{0%{opacity:.6;transform:translate(32px)}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (min-width:1100px){.app:not(.has-detail) .cards{grid-template-columns:repeat(auto-fill,minmax(360px,1fr))}.app.has-detail .layout{grid-template-columns:minmax(0,1fr) minmax(460px,560px);gap:20px;max-width:1480px;display:grid}.detail-pane{top:calc(var(--topbar-h) + 18px);height:calc(100dvh - var(--topbar-h) - 36px);border:1px solid var(--line);box-shadow:var(--shadow-1);border-radius:16px;position:sticky;overflow:hidden}.back-btn{display:none}.detail .field{grid-template-columns:76px minmax(0,1fr);align-items:start;column-gap:12px}.detail .field-label{padding-top:8px}}@media (max-width:1099px){.detail-pane{z-index:40;animation:.18s ease-out slide-up;position:fixed;top:0;bottom:0;left:0;right:0}.detail-head{padding-top:max(8px, env(safe-area-inset-top))}.close-btn{display:none}}@media (min-width:760px) and (max-width:1099px){.app.has-detail:after{content:"";z-index:39;background:#0a101866;position:fixed;top:0;bottom:0;left:0;right:0}.detail-pane{width:min(600px,100%);box-shadow:var(--shadow-2);animation:.18s ease-out slide-in;left:auto}.detail .field{grid-template-columns:76px minmax(0,1fr);align-items:start;column-gap:12px}.detail .field-label{padding-top:8px}}@media (max-width:759px){body{font-size:15px}.input,.search-field input,select.input{font-size:16px}.topbar-inner{gap:10px;height:56px;padding:0 14px}:root{--topbar-h:56px}.brand{gap:10px}.brand-logo{height:22px}.brand-title{padding-left:10px;font-size:16px}.new-btn{display:none}.fab{display:inline-flex}.layout{padding:12px 12px 110px}.tiles{gap:8px}.tile{border-radius:12px;min-height:68px;padding:9px 10px}.tile-label{gap:3px;font-size:12.5px}.tile-label svg{width:14px;height:14px}.tile-count{font-size:24px}.toolbar{gap:8px;margin-top:12px}.search-field{flex-basis:100%}.toolbar .segmented{width:100%}.group{margin-top:20px}.card{padding:12px 14px 11px}.card-title{font-size:16px}.detail-scroll{padding:16px 16px 24px}.detail-title{font-size:20px}.seg-btn{padding:0 6px;font-size:14px}.sheet-backdrop{align-items:flex-end;padding:0}.sheet{border-radius:18px 18px 0 0;width:100%;max-height:94dvh;animation:.2s ease-out slide-up}.sheet-sm{width:100%}.sheet-head{padding:12px 10px 6px 18px}.sheet-body{padding:4px 18px 18px}.sheet-foot .btn{flex:1;height:46px}.composer-row>.avatar{display:none}.att-thumb{width:84px;height:84px}.lb-bar{padding-left:14px}.lb-img{border-radius:0;max-width:100%;max-height:calc(100% - 20px);top:4px;bottom:16px;left:0;right:0}.lb-nav{background:#0a101880;width:40px;height:40px;margin-top:-20px}.lb-prev{left:8px}.lb-next{right:8px}.admin-wrap{padding:12px 12px 80px}.panel{padding:16px 14px}.admin-row{flex-wrap:wrap}.pending-row .admin-actions{justify-content:flex-start;width:100%;padding-left:52px}.user-menu{top:calc(56px + env(safe-area-inset-top));position:fixed;right:10px}}
