:root{--canvas: #131211;--card: #1b1a18;--card-hover: #242220;--raised: #22211e;--well: #2a2825;--hairline: #2e2c29;--hairline-strong: #3a3733;--text: #ecebe7;--text-2: #a9a6a0;--text-3: #6f6c66;--accent: #7c8cff;--accent-soft: rgba(124, 140, 255, .14);--danger: #ff8a7a;--shadow: 0 12px 32px rgba(0, 0, 0, .45);--radius: 12px;--gutter: 18px;--ease: cubic-bezier(.2, .7, .3, 1);--t: .14s;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:var(--canvas);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.muted{color:var(--text-2)}.error{color:var(--danger);margin:0 0 12px}.center-text{text-align:center;margin-top:48px}.btn{min-height:44px;padding:0 18px;border-radius:10px;cursor:pointer;background:var(--card);border:1px solid var(--hairline);transition:background var(--t) var(--ease),border-color var(--t) var(--ease)}.btn:hover{background:var(--card-hover)}.btn-primary{background:var(--accent);border-color:transparent;color:#0f1020;font-weight:600}.btn-primary:hover{background:#8e9bff}.btn-primary:disabled{opacity:.5;cursor:default}.btn-quiet{min-height:36px;background:transparent;border-color:transparent;color:var(--accent);font-weight:600}.btn-quiet:hover{background:var(--accent-soft)}.icon-btn{display:inline-grid;place-items:center;flex:none;width:36px;height:36px;padding:0;border:0;border-radius:9px;background:transparent;color:var(--text-2);cursor:pointer;transition:background var(--t) var(--ease),color var(--t) var(--ease)}.icon-btn:hover{background:var(--card-hover);color:var(--text)}.center{min-height:100vh;min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:12px;padding:24px;text-align:center}.signin{display:grid;justify-items:center;gap:8px}.signin h1{margin:12px 0 0;font-size:28px;font-weight:650;letter-spacing:-.01em}.signin .muted{margin:0 0 20px}.signin .btn-primary{min-width:200px}.fine{color:var(--text-3);font-size:13px;margin:8px 0 0}.mark{display:block;flex:none;border-radius:22%}.shell{max-width:1280px;margin:0 auto;padding:max(14px,env(safe-area-inset-top)) max(var(--gutter),env(safe-area-inset-right)) max(96px,calc(env(safe-area-inset-bottom) + 80px)) max(var(--gutter),env(safe-area-inset-left))}.top{display:flex;align-items:center;gap:8px;min-height:52px;margin-bottom:18px}.top .mark{margin-right:6px}.tabs{display:flex;align-items:center;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{position:relative;flex:none;min-height:44px;padding:0 14px;border:0;border-radius:10px;background:transparent;color:var(--text-2);font-weight:550;cursor:pointer;white-space:nowrap;transition:color var(--t) var(--ease),background var(--t) var(--ease);-webkit-touch-callout:none;user-select:none}.tab:hover{color:var(--text);background:var(--card)}.tab.is-active{color:var(--text)}.tab.is-active:after{content:"";position:absolute;left:14px;right:14px;bottom:6px;height:2px;border-radius:2px;background:var(--accent)}.tab-add{display:grid;place-items:center;width:40px;padding:0;color:var(--text-3)}.search{display:flex;align-items:center;gap:6px;flex:0 1 220px;min-width:0;height:36px;padding:0 4px 0 10px;border:1px solid var(--hairline);border-radius:10px;background:var(--card);color:var(--text-3);transition:border-color var(--t) var(--ease),flex-basis var(--t) var(--ease)}.search:focus-within,.search.has-text{border-color:var(--hairline-strong);flex-basis:280px;color:var(--text-2)}.search input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:14px}.search input::-webkit-search-cancel-button{display:none}.search .icon-btn{width:28px;height:28px}.edit-toggle{display:none}.edit-toggle.is-on{color:var(--accent);background:var(--accent-soft)}.avatar{width:36px;height:36px;flex:none;margin-left:2px;border-radius:50%;border:1px solid var(--hairline);background:var(--card);color:var(--text-2);font-weight:600;font-size:14px;cursor:pointer}.avatar:hover{color:var(--text);background:var(--card-hover)}.menu{z-index:40;min-width:210px;max-width:min(320px,calc(100vw - 16px));padding:6px;background:var(--raised);border:1px solid var(--hairline-strong);border-radius:var(--radius);box-shadow:var(--shadow);animation:pop var(--t) var(--ease)}.menu-floating{position:fixed}.menu-item{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:0 10px;text-align:left;border:0;border-radius:8px;background:transparent;cursor:pointer;font-size:14px}.menu-item:hover:not(:disabled),.menu-item:focus-visible{background:var(--card-hover);outline:none}.menu-item:disabled{color:var(--text-3);cursor:default}.menu-item.is-danger{color:var(--danger)}.menu-icon{display:grid;place-items:center;width:16px;color:var(--text-3)}.menu-item.is-danger .menu-icon{color:inherit}.menu-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-check{color:var(--accent);font-size:13px}.menu-sep{height:1px;margin:5px 6px;background:var(--hairline)}@keyframes pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}}@media (pointer: coarse){.menu-item{min-height:44px}}.popover{position:fixed;z-index:45;width:340px;max-width:calc(100vw - 16px);padding:14px 16px 16px;background:var(--raised);border:1px solid var(--hairline-strong);border-radius:14px;box-shadow:var(--shadow);animation:pop var(--t) var(--ease)}.popover-title{margin-bottom:10px;font-size:13px;font-weight:600;color:var(--text-2)}.popover.is-sheet{inset:auto 0 0;width:auto;max-width:none;max-height:85dvh;overflow-y:auto;border-radius:16px 16px 0 0;border-bottom:0;padding-bottom:max(16px,env(safe-area-inset-bottom));animation:rise .18s var(--ease)}@media (min-width: 640px){.popover.is-sheet{left:50%;right:auto;bottom:auto;top:18vh;width:380px;transform:translate(-50%);border-radius:14px;border-bottom:1px solid var(--hairline-strong);animation:pop var(--t) var(--ease)}}.scrim{position:fixed;inset:0;z-index:44;background:#00000073;animation:fade var(--t) var(--ease)}@keyframes rise{0%{transform:translateY(24px);opacity:0}}@keyframes fade{0%{opacity:0}}.form{display:grid;gap:10px}.field{display:grid;gap:4px}.field>span{font-size:12px;color:var(--text-3)}.field em{font-style:normal;margin-left:6px}.field input,.field select,.field textarea{width:100%;min-height:40px;padding:8px 10px;border-radius:9px;border:1px solid var(--hairline-strong);background:var(--canvas);color:var(--text);font-size:15px;outline:none;transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease)}.field textarea{resize:vertical;line-height:1.4}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.form-actions .btn{min-height:40px}@media (pointer: coarse){.form-actions .btn,.field input,.field select{min-height:44px}.field input,.field select,.field textarea,.search input{font-size:16px}}.move-list{display:grid;gap:8px;max-height:50vh;overflow-y:auto;margin:0 -6px}.move-head{padding:2px 10px;font-size:12px;color:var(--text-3)}.move-empty{padding:6px 10px;font-size:13px}.grid{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:var(--gutter);align-items:start}@media (max-width: 1023px){.grid[aria-busy]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 639px){.grid[aria-busy]{grid-template-columns:minmax(0,1fr)}.grid[aria-busy] .col:nth-child(n+2){display:none}}.col{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gutter);align-content:start;min-width:0;min-height:60px;border-radius:var(--radius);transition:background var(--t) var(--ease)}.is-dragging .col.is-over{background:var(--accent-soft)}.hint{grid-column:1 / -1;margin:4px 0 0;color:var(--text-3);font-size:14px;text-align:center}.card{background:var(--card);border:1px solid var(--hairline);border-radius:var(--radius);transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease)}.card-inner{padding:6px 6px 8px}.card.is-target{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.card.is-ghost,li.is-ghost{opacity:.35}.card.is-lifted{box-shadow:var(--shadow);transform:scale(1.02);border-color:var(--hairline-strong);padding:6px;overflow:hidden}.card-head{display:flex;align-items:center;gap:2px;min-height:40px;margin:-6px -6px 6px;padding:4px 6px 4px 8px;background:var(--raised);border-bottom:1px solid var(--hairline);border-radius:var(--radius) var(--radius) 0 0;-webkit-touch-callout:none;user-select:none}.card-title{flex:0 1 auto;min-width:0;margin:0;padding:0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default;color:var(--text);font-size:14px;font-weight:650;font-variant-caps:all-small-caps;letter-spacing:.06em}.card-count{flex:1;min-width:0;color:var(--text-3);font-size:12px;font-variant-numeric:tabular-nums}.card-tools{display:flex;opacity:0;transition:opacity var(--t) var(--ease)}.card-tools .icon-btn{width:30px;height:30px}.card:hover .card-tools,.card:focus-within .card-tools{opacity:1}.collapse{display:grid;place-items:center;width:24px;height:28px;padding:0;border:0;background:transparent;color:var(--text-3);cursor:pointer;border-radius:6px}.collapse svg{transition:transform var(--t) var(--ease)}.collapse.is-collapsed svg{transform:rotate(-90deg)}.collapse:hover{color:var(--text)}.card-empty{margin:2px 10px 6px;color:var(--text-3);font-size:14px}.inline-edit{flex:1;font-variant-caps:all-small-caps;letter-spacing:.06em;min-width:0;height:30px;padding:0 6px;border:1px solid var(--accent);border-radius:7px;background:var(--canvas);color:var(--text);font-size:14px;font-weight:650;outline:none}.links{list-style:none;margin:0;padding:0}.links li{position:relative}.link{display:flex;align-items:center;gap:10px;min-height:38px;padding:6px 8px;border-radius:8px;color:var(--text);text-decoration:none;transition:background var(--t) var(--ease);-webkit-touch-callout:none;-webkit-user-drag:none}.link:hover{background:var(--card-hover)}.link.is-lifted{background:var(--raised);box-shadow:var(--shadow);transform:scale(1.02);cursor:grabbing;border:1px solid var(--hairline-strong)}.link-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14.5px}.link{position:relative}.link-host{position:absolute;right:0;top:0;bottom:0;display:flex;align-items:center;max-width:45%;padding:0 10px 0 28px;border-radius:0 8px 8px 0;background:linear-gradient(to right,transparent,var(--card-hover) 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-3);font-size:12px;opacity:0;pointer-events:none;transition:opacity var(--t) var(--ease)}.link:hover .link-host,.link:focus-visible .link-host{opacity:1}.icon{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:var(--well);overflow:hidden}.icon img{width:20px;height:20px}.tile{color:#fff;font-size:12px;font-weight:700}.handle{display:none;place-items:center;width:28px;height:32px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--text-3);cursor:grab;touch-action:none}.handle-link{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:40px;height:40px}.is-editing .handle{display:grid}.is-editing .link{padding-right:44px}.is-editing .card-tools{opacity:1}@media (hover: hover){.card-head{cursor:grab}.link{cursor:pointer}.is-dragging,.is-dragging *{cursor:grabbing!important}}@media (hover: none){.link{min-height:44px;user-select:none}.link-host{display:none}.card-tools{opacity:1}.edit-toggle{display:inline-grid}.search{flex-basis:40px}.search:focus-within,.search.has-text{flex-basis:100%}}@media (max-width: 639px){.top{flex-wrap:wrap}.tabs{order:5;flex-basis:100%;margin:0 -6px}.search{margin-left:auto}.add-menu{display:none}}.fab{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,calc(env(safe-area-inset-bottom) + 6px));z-index:30;display:none;place-items:center;width:56px;height:56px;border:0;border-radius:18px;background:var(--accent);color:#0f1020;box-shadow:0 10px 28px #00000080;cursor:pointer}@media (max-width: 639px){.fab{display:grid}}.skeleton{display:grid;gap:10px;padding:14px 16px}.sk-title,.sk-row{border-radius:6px;background:var(--well);animation:pulse 1.4s ease-in-out infinite}.sk-title{width:40%;height:12px;margin-bottom:4px}.sk-row{height:22px}.sk-row:nth-child(odd){width:80%}@keyframes pulse{50%{opacity:.45}}.toasts{position:fixed;left:50%;bottom:max(20px,calc(env(safe-area-inset-bottom) + 8px));transform:translate(-50%);z-index:50;display:grid;gap:8px;justify-items:center;width:max-content;max-width:calc(100vw - 32px);pointer-events:none}.toast{display:flex;align-items:center;gap:8px;min-height:44px;padding:4px 6px 4px 16px;border-radius:12px;background:var(--raised);border:1px solid var(--hairline-strong);box-shadow:var(--shadow);animation:rise .18s var(--ease);font-size:14px;pointer-events:auto}.toast>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60vw}@media (max-width: 639px){.toasts{bottom:max(88px,calc(env(safe-area-inset-bottom) + 82px))}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
