:root{--bg:#fff;--bg-secondary:#f7f7f5;--bg-tertiary:#efefed;--bg-hover:rgba(55,53,47,.04);--bg-active:rgba(55,53,47,.08);--border:rgba(55,53,47,.09);--border-med:rgba(55,53,47,.16);--text:#1a1a1a;--text-secondary:#787774;--text-tertiary:#aeacaa;--accent:#7b61ff;--accent-hover:#6a50ee;--status-backlog-bg:rgba(55,53,47,.08);--status-backlog-text:#787774;--status-progress-bg:rgba(123,97,255,.2);--status-progress-text:#6d4ee6;--status-review-bg:rgba(245,158,11,.22);--status-review-text:#c2410c;--status-done-bg:rgba(16,185,129,.2);--status-done-text:#047857;--priority-high-bg:rgba(239,68,68,.2);--priority-high-text:#b91c1c;--priority-med-bg:rgba(245,158,11,.22);--priority-med-text:#c2410c;--priority-low-bg:rgba(55,53,47,.06);--priority-low-text:#787774;--r-sm:5px;--r-md:8px;--r-lg:12px}[data-theme=dark]{--bg:#191919;--bg-secondary:#111;--bg-tertiary:#222;--bg-hover:hsla(0,0%,100%,.05);--bg-active:hsla(0,0%,100%,.09);--border:hsla(0,0%,100%,.07);--border-med:hsla(0,0%,100%,.12);--text:#e3e3e0;--text-secondary:#8a8884;--text-tertiary:#575553;--accent:#9780ff;--accent-hover:#a892ff;--status-backlog-bg:hsla(0,0%,100%,.08);--status-backlog-text:#8a8884;--status-progress-bg:rgba(151,128,255,.24);--status-progress-text:#b8a8ff;--status-review-bg:rgba(251,191,36,.22);--status-review-text:#fcd34d;--status-done-bg:rgba(52,211,153,.22);--status-done-text:#6ee7b7;--priority-high-bg:rgba(248,113,113,.24);--priority-high-text:#fca5a5;--priority-med-bg:rgba(251,191,36,.22);--priority-med-text:#fcd34d;--priority-low-bg:hsla(0,0%,100%,.06);--priority-low-text:#8a8884}*{box-sizing:border-box}body{background:var(--bg-secondary);color:var(--text);font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin:0}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:9999px}.btn{align-items:center;background:var(--bg);border:1px solid var(--border-med);border-radius:var(--r-sm);color:var(--text);cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;height:36px;justify-content:center;padding:0 14px;text-decoration:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{background:var(--priority-high-bg);border:1px solid rgba(239,68,68,.2);color:var(--priority-high-text)}.input{border:1px solid var(--border-med);border-radius:var(--r-sm);height:40px;padding:0 12px;width:100%}.auth-layout-shell{align-items:center;background:var(--bg);display:flex;justify-content:center;min-height:100vh}.auth-route-full{min-height:100vh}.login-page,.member-picker{padding:24px;width:min(440px,100%)}.login-panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:0 10px 30px #0000000d;padding:28px}form{gap:12px}form,label{display:grid}label{color:var(--text-secondary);font-size:13px;gap:6px}.login-panel h1,.member-picker h1{margin:0 0 8px}.login-panel p,.member-picker p{color:var(--text-secondary);margin:0 0 20px}.member-grid{display:grid;gap:10px;margin-top:16px}.member-card{align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;display:flex;gap:10px;padding:12px}.member-card:hover{background:var(--bg-hover)}.app-shell{display:flex;min-height:100vh}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;width:240px}.sidebar-top{border-bottom:1px solid var(--border);display:flex;gap:10px;padding:16px}.workspace-logo-wrap{align-items:center;background:var(--bg-tertiary);border-radius:var(--r-sm);display:flex;flex-shrink:0;height:28px;justify-content:center;overflow:hidden;width:28px}.workspace-logo{display:block;height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.workspace-info{display:flex;flex-direction:column;gap:1px}.workspace-name{color:var(--text);font-size:14px;font-weight:600;line-height:1.2}.workspace-meta{color:var(--text-tertiary);font-size:11px;line-height:1.2;margin:0}.sidebar-nav{display:grid;gap:4px;padding:8px}.nav-item{align-items:center;border-radius:var(--r-sm);color:var(--text-secondary);display:flex;gap:8px;padding:6px 8px;text-decoration:none}.nav-item.active,.nav-item:hover{background:var(--bg-active);color:var(--text)}.nav-icon{align-items:center;color:#37352f73;display:flex}.nav-item.active .nav-icon{color:var(--accent)}.nav-badge{background:var(--bg-tertiary);border-radius:3px;color:var(--text-tertiary);font-family:JetBrains Mono,monospace;font-size:11px;margin-left:auto;padding:1px 6px}.sidebar-sep{background:var(--border);height:1px;margin:6px 0}.nav-muted{color:var(--text-tertiary)}.sidebar-bottom{border-top:1px solid var(--border);display:flex;flex-direction:column;margin-top:auto}.sidebar-logout{align-items:center;background:transparent;border:0;border-bottom:1px solid var(--border);border-radius:0;color:var(--text-secondary);cursor:pointer;display:flex;font:inherit;font-size:13px;font-weight:500;justify-content:flex-start;margin:0;padding:10px 16px;text-align:left;width:100%}.sidebar-logout:hover{background:var(--bg-hover);color:var(--text)}.sidebar-user{display:flex;gap:8px;padding:12px 16px}.user-info{display:flex;flex-direction:column;gap:1px;min-width:0}.user-name{color:var(--text);font-size:13px;font-weight:500;line-height:1.2}.user-email{color:var(--text-tertiary);font-size:11px;line-height:1.2}.content-shell{display:flex;flex:1;flex-direction:column;min-width:0}.topbar{background:var(--bg);border-bottom:1px solid var(--border);height:56px;justify-content:space-between;padding:0 20px}.topbar,.topbar-left{align-items:center;display:flex}.topbar-left{flex:1;gap:8px;min-width:0}.topbar-right{align-items:center;display:flex}.topbar-heading{color:var(--text);font-size:20px;font-weight:600;line-height:1;margin:0;white-space:nowrap}.topbar-sep{font-size:18px;font-weight:300;margin:0 2px;opacity:.5}.topbar-crumb,.topbar-sep{color:var(--text-tertiary);line-height:1}.topbar-crumb{font-size:14px;font-weight:400;white-space:nowrap}.topbar-right{gap:8px}.top-search-wrap{min-width:220px;position:relative}.top-search{color:var(--text);height:34px;padding:0 10px;width:220px}.top-search,.top-search-dropdown{background:var(--bg);border:1px solid var(--border-med);border-radius:var(--r-sm)}.top-search-dropdown{box-shadow:var(--shadow-md);left:0;max-height:min(360px,70vh);overflow-y:auto;padding:4px 0;position:absolute;right:0;top:calc(100% + 4px);z-index:100}.top-search-hit{align-items:flex-start;background:transparent;border:0;color:var(--text);cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:2px;margin:0;padding:8px 12px;text-align:left;width:100%}.top-search-hit:focus-visible,.top-search-hit:hover{background:var(--bg-tertiary);outline:none}.top-search-hit-title{font-size:13px;font-weight:500;line-height:1.25}.top-search-hit-meta{display:flex;flex-wrap:wrap;gap:6px 10px}.top-search-foot,.top-search-hit-meta{color:var(--text-tertiary);font-size:11px}.top-search-foot{border-top:1px solid var(--border);margin:0;padding:8px 12px 6px}.top-search-empty{margin:0;padding:12px}.theme-cycle-btn,.top-search-empty{color:var(--text-secondary);font-size:13px}.theme-cycle-btn{background:var(--bg);border:1px solid var(--border-med);border-radius:var(--r-sm);cursor:pointer;font-weight:500;height:34px;padding:0 12px;white-space:nowrap}.theme-cycle-btn:hover{background:var(--bg-tertiary);color:var(--text)}.kanban-wrap{display:flex;gap:16px;overflow:auto;padding:16px}.kanban-column{min-width:280px;width:280px}.kanban-column-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.kanban-column h3{font-size:15px;margin:0}.column-count{background:var(--bg-tertiary);border-radius:9999px;color:var(--text-tertiary);font-size:11px;padding:2px 6px}.task-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:10px;padding:12px}.task-card h4{font-size:14px;margin:0 0 10px}.task-card footer{align-items:center;color:var(--text-tertiary);display:flex;font-size:12px;justify-content:space-between;margin-top:8px}.task-card-tags{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.tag-chip{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;color:var(--text-secondary)}.priority-badge,.priority-pill,.tag-chip{align-items:center;display:inline-flex;font-size:11px;height:20px;padding:0 8px}.priority-badge,.priority-pill{border-radius:4px;text-transform:capitalize}.priority-high{background:var(--priority-high-bg);color:var(--priority-high-text)}.priority-med{background:var(--priority-med-bg);color:var(--priority-med-text)}.priority-low{background:var(--priority-low-bg);color:var(--priority-low-text)}.progress{margin-bottom:8px}.progress-meta{color:var(--text-tertiary);font-size:11px;margin-bottom:4px}.progress-track{background:var(--bg-tertiary);border-radius:999px;height:4px}.progress-fill{background:var(--accent);border-radius:999px;height:100%}.task-meta{color:var(--text-tertiary);font-size:11px}.kanban-page,.task-detail-page,.tasks-page,.team-page,.timeline-page{padding:16px 20px}.timeline-header-row{color:var(--text-tertiary);display:grid;font-size:12px;grid-template-columns:2fr 1fr 1fr 1fr;margin-bottom:8px}.timeline-grid{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);padding:10px}.timeline-row{border-bottom:1px solid var(--border);display:grid;gap:12px;grid-template-columns:2fr 3fr;padding:10px 6px}.timeline-row:last-child{border-bottom:0}.timeline-task-title{font-size:14px}.timeline-bar{border-radius:var(--r-sm);font-size:12px;padding:8px 10px}.lane-backlog{background:var(--status-backlog-bg);color:var(--status-backlog-text)}.lane-progress{background:var(--status-progress-bg);color:var(--status-progress-text)}.lane-review{background:var(--status-review-bg);color:var(--status-review-text)}.lane-done{background:var(--status-done-bg);color:var(--status-done-text)}.tasks-table{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.tasks-head,.tasks-row{align-items:center;display:grid;gap:10px;grid-template-columns:2fr 1fr 1fr 1fr 1fr;padding:12px 14px}.tasks-head{color:var(--text-tertiary);font-size:11px;text-transform:uppercase}.tasks-head,.tasks-row{border-bottom:1px solid var(--border)}.tasks-row{color:var(--text);text-decoration:none}.tasks-row:last-child{border-bottom:0}.tasks-row:hover{background:var(--bg-hover)}.status-pill{border-radius:999px;display:inline-flex;font-size:11px;padding:3px 8px;text-transform:capitalize;width:-moz-fit-content;width:fit-content}.status-backlog{background:var(--status-backlog-bg);color:var(--status-backlog-text)}.status-in_progress{background:var(--status-progress-bg);color:var(--status-progress-text)}.status-review{background:var(--status-review-bg);color:var(--status-review-text)}.status-done{background:var(--status-done-bg);color:var(--status-done-text)}.team-header h3{margin:0 0 4px}.team-header p{color:var(--text-secondary);margin:0 0 16px}.team-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.team-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);display:flex;gap:10px;padding:14px}.team-card h4{font-size:14px;margin:0 0 4px}.team-card p{color:var(--text-tertiary);font-size:12px;margin:0}.task-detail-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);max-width:720px;padding:20px}.task-detail-top{align-items:center;display:flex;justify-content:space-between}.task-detail-card h1{font-size:24px;margin:12px 0 8px}.task-detail-card p{color:var(--text-secondary);margin:0 0 14px}.avatar{background:var(--accent);border-radius:var(--r-sm);color:#fff;display:inline-flex;font-size:11px;font-weight:600;height:26px;width:26px}.avatar,.mobile-nav-toggle{align-items:center;justify-content:center}.mobile-nav-toggle{background:transparent;border:0;border-radius:var(--r-sm);color:var(--text);cursor:pointer;display:none;flex-shrink:0;height:40px;margin:0 4px 0 -4px;padding:0;width:40px;-webkit-tap-highlight-color:transparent}.mobile-nav-toggle:hover{background:var(--bg-hover)}.sidebar-backdrop{background:#00000061;display:none;inset:0;position:fixed;z-index:199;-webkit-tap-highlight-color:transparent}.sidebar-backdrop--visible{display:block}@media(max-width:768px){.mobile-nav-toggle{display:inline-flex}.app-shell{position:relative}.sidebar{border-right:1px solid var(--border);bottom:0;box-shadow:none;left:0;max-width:100%;position:fixed;top:0;transform:translate(-100%);transition:transform .22s ease;width:min(288px,88vw);z-index:200}.sidebar.sidebar--open{box-shadow:8px 0 32px #00000024;transform:translate(0)}.content-shell{min-width:0;width:100%}.topbar{flex-wrap:wrap;height:auto;min-height:56px;padding:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));row-gap:8px}.topbar-left{flex:1 1 auto;gap:6px;min-width:0}.topbar-heading{flex:1 1 auto;font-size:17px;min-width:0;overflow:hidden;text-overflow:ellipsis}.topbar-crumb,.topbar-sep{display:none}.topbar-right{flex:1 1 100%;flex-wrap:wrap;gap:8px;justify-content:flex-end}.top-search-wrap{flex:1 1 160px;max-width:100%;min-width:0}.top-search{font-size:16px;max-width:none;min-height:40px;width:100%}.theme-cycle-btn{font-size:12px;min-height:40px;padding:0 10px}.top-search-dropdown{left:0;max-width:calc(100vw - 24px);right:auto;width:min(100vw - 24px,360px)}.kanban-page,.task-detail-page,.tasks-page,.team-page,.timeline-page{padding:12px max(12px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.nav-item{padding:8px 10px}.nav-item,.sidebar-logout{min-height:44px}.auth-layout-shell{box-sizing:border-box;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}}@media(min-width:769px){.sidebar-backdrop{display:none!important;pointer-events:none!important}}
