:root{--row-h: 44px;--pad-x: 16px;--pad-y: 12px;--gap: 12px;--card-pad: 20px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--bg: #fafaf9;--bg-soft: #f5f5f4;--surface: #ffffff;--surface-2: #fafaf9;--border: #e7e5e4;--border-strong: #d6d3d1;--text: #0c0a09;--text-2: #44403c;--text-3: #78716c;--text-4: #a8a29e;--accent: #ea580c;--accent-soft: #fff7ed;--accent-strong: #c2410c;--accent-fg: #ffffff;--ok: #16a34a;--ok-soft: #f0fdf4;--warn: #d97706;--warn-soft: #fffbeb;--danger: #dc2626;--danger-soft: #fef2f2;--info: #2563eb;--info-soft: #eff6ff;--shadow-sm: 0 1px 2px rgba(12, 10, 9, .04), 0 1px 1px rgba(12, 10, 9, .03);--shadow-md: 0 2px 6px rgba(12, 10, 9, .06), 0 8px 24px -8px rgba(12, 10, 9, .08);--shadow-lg: 0 12px 40px -8px rgba(12, 10, 9, .18);--t-fast: .12s;--t-med: .22s;--t-slow: .36s;--ease: cubic-bezier(.22, 1, .36, 1);--font-sans: "Noto Sans Thai", "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, monospace}[data-theme=dark]{--bg: #0a0a0a;--bg-soft: #111111;--surface: #141414;--surface-2: #1a1a1a;--border: #262626;--border-strong: #333333;--text: #fafafa;--text-2: #d4d4d4;--text-3: #a3a3a3;--text-4: #737373;--accent: #fb923c;--accent-soft: rgba(251, 146, 60, .12);--accent-strong: #fdba74;--accent-fg: #0a0a0a;--ok: #4ade80;--ok-soft: rgba(74, 222, 128, .12);--warn: #fbbf24;--warn-soft: rgba(251, 191, 36, .12);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .12);--info: #60a5fa;--info-soft: rgba(96, 165, 250, .12);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 2px 6px rgba(0, 0, 0, .4), 0 8px 24px -8px rgba(0, 0, 0, .5);--shadow-lg: 0 16px 48px -8px rgba(0, 0, 0, .7)}[data-density=compact]{--row-h: 36px;--pad-x: 12px;--pad-y: 8px;--gap: 8px;--card-pad: 14px}[data-density=comfortable]{--row-h: 52px;--pad-x: 20px;--pad-y: 16px;--gap: 16px;--card-pad: 28px}[data-radius=sharp]{--r-sm: 2px;--r-md: 3px;--r-lg: 4px;--r-xl: 6px}[data-radius=round]{--r-sm: 10px;--r-md: 14px;--r-lg: 20px;--r-xl: 28px}[data-motion=off] *{animation-duration:0ms!important;transition-duration:0ms!important}[data-motion=subtle]{--t-fast: 80ms;--t-med: .14s;--t-slow: .2s}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv11";letter-spacing:-.005em}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}.mono{font-family:var(--font-mono);font-feature-settings:"zero","ss01"}::selection{background:var(--accent);color:var(--accent-fg)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--text-4)}.app{display:grid;grid-template-columns:248px 1fr;height:100vh;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sb-brand{padding:18px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border)}.sb-logo{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--accent),#f97316);display:grid;place-items:center;color:var(--accent-fg);font-weight:700;font-size:14px;letter-spacing:-.02em;box-shadow:0 4px 12px -4px var(--accent);position:relative;overflow:hidden}.sb-logo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.3) 50%,transparent 60%);animation:shimmer 4s linear infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.sb-brand-text{display:flex;flex-direction:column;line-height:1.15;min-width:0;flex:1}.sb-brand-text b{font-weight:600;letter-spacing:-.015em;font-size:13.5px;white-space:nowrap}.sb-brand-text small{color:var(--text-3);font-size:11px;white-space:nowrap}.sb-nav{flex:1;overflow-y:auto;padding:12px 10px;display:flex;flex-direction:column;gap:2px}.sb-section{padding:14px 10px 6px;font-size:10.5px;font-weight:600;color:var(--text-4);text-transform:uppercase;letter-spacing:.08em}.sb-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-md);font-size:13px;color:var(--text-2);cursor:pointer;position:relative;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease);-webkit-user-select:none;user-select:none;white-space:nowrap}.sb-item>span:not(.badge):not(.ico){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.sb-item:hover{background:var(--bg-soft);color:var(--text)}.sb-item.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:500}[data-theme=dark] .sb-item.active{color:var(--accent)}.sb-item.active:before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;background:var(--accent);border-radius:0 3px 3px 0}.sb-item .ico{width:16px;height:16px;flex-shrink:0;opacity:.9}.sb-item .badge{margin-left:auto;font-size:10.5px;font-weight:600;background:var(--danger);color:#fff;padding:1px 6px;border-radius:999px;font-family:var(--font-sans)}.sb-item .badge.muted{background:var(--border-strong);color:var(--text-2)}.sb-user{border-top:1px solid var(--border);padding:12px;display:flex;align-items:center;gap:10px}.sb-user .avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#ea580c);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600}.sb-user-info{flex:1;line-height:1.2;min-width:0}.sb-user-info b{font-size:12.5px;font-weight:600;display:block}.sb-user-info small{font-size:11px;color:var(--text-3)}.main{display:flex;flex-direction:column;overflow:hidden;min-width:0}.topbar{height:56px;border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;padding:0 24px;gap:16px;flex-shrink:0}.crumb{font-size:12.5px;color:var(--text-3);display:flex;align-items:center;gap:8px}.crumb b{color:var(--text);font-weight:600}.crumb .sep{color:var(--text-4)}.search{flex:1;max-width:360px;display:flex;align-items:center;gap:8px;background:var(--bg-soft);border:1px solid transparent;padding:6px 10px;border-radius:var(--r-md);transition:border-color var(--t-fast),background var(--t-fast)}.search:focus-within{border-color:var(--accent);background:var(--surface)}.search input{border:0;background:transparent;outline:none;flex:1;color:var(--text);font-size:13px}.search input::placeholder{color:var(--text-4)}.search .kbd{font-family:var(--font-mono);font-size:10px;padding:1px 5px;border-radius:4px;background:var(--surface);border:1px solid var(--border);color:var(--text-3)}.topbar-right{display:flex;align-items:center;gap:8px;margin-left:auto}.icon-btn{width:34px;height:34px;border-radius:var(--r-md);background:transparent;border:1px solid transparent;color:var(--text-2);display:grid;place-items:center;transition:background var(--t-fast),color var(--t-fast);position:relative}.icon-btn:hover{background:var(--bg-soft);color:var(--text)}.icon-btn.theme-toggle:hover{color:var(--accent)}.icon-btn.theme-toggle svg{transition:transform var(--t-fast) var(--ease)}.icon-btn.theme-toggle:hover svg{transform:rotate(15deg)}.icon-btn .dot{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 2px var(--surface);animation:pulse 2s var(--ease) infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.7}}.content{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0}.sp-layout{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden;gap:8px}.sp-layout>.tabs{margin-bottom:8px}.tickets-layout{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.tickets-toolbar{flex-shrink:0}.tickets-scroll{flex:1;overflow-y:auto;min-height:0}.submod-layout{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.submod-toolbar{flex-shrink:0}.submod-scroll{flex:1;overflow-y:auto;min-height:0}.proj-layout{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.proj-header{flex-shrink:0;display:flex;flex-direction:column;gap:10px;padding-bottom:4px}.proj-summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 18px;display:flex;flex-direction:column;gap:12px;border-left:3px solid var(--accent)}.proj-summary-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--text-2)}.proj-meta-item{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.proj-meta-sep{width:1px;height:13px;background:var(--border-strong);flex-shrink:0}.proj-summary-bottom{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.proj-task-stats{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1;min-width:0}.proj-task-stat-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--r-sm);font-size:11.5px}.proj-task-stat-label{color:var(--text-3)}.proj-task-stat-count{font-weight:600;color:var(--text)}.proj-summary-progress{display:flex;align-items:center;gap:12px;flex-shrink:0;min-width:260px}.proj-body{flex:1;overflow:hidden;min-height:0;display:flex;flex-direction:column}.ms-accordion{border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;background:var(--surface)}.ms-accordion-bar{width:100%;display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--bg-soft);border:none;cursor:pointer;text-align:left;transition:background var(--t-fast)}.ms-accordion-bar:hover{background:color-mix(in srgb,var(--accent) 5%,var(--bg-soft))}.ms-accordion-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);flex-shrink:0}.ms-accordion-chips{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:0}.ms-accordion-toggle{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:500;color:var(--text-3);flex-shrink:0;margin-left:auto;padding:3px 8px;border-radius:var(--r-sm);transition:background var(--t-fast),color var(--t-fast)}.ms-accordion-bar:hover .ms-accordion-toggle{background:var(--surface);color:var(--text)}.ms-accordion-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:14px;border-top:1px solid var(--border);background:var(--bg-soft)}.proj-view-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:auto;padding:0 0 24px;display:flex;flex-direction:column;gap:20px}.page{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:20px;min-height:0;scroll-behavior:smooth;animation:pageIn var(--t-med) var(--ease) both}@keyframes pageIn{0%{transform:translateY(6px)}to{transform:translateY(0)}}[data-motion=off] .page{animation:none}.page>*{flex-shrink:0}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-title{font-size:22px;font-weight:600;letter-spacing:-.02em;margin:0}.page-subtitle{font-size:13px;color:var(--text-3);margin:4px 0 0}.page-actions{display:flex;gap:8px;align-items:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--card-pad);transition:border-color var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast)}.card.hov:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.card-tight{padding:14px 16px}.card-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin:0 0 12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;font-weight:500;transition:all var(--t-fast) var(--ease);white-space:nowrap}.btn:hover{background:var(--bg-soft);border-color:var(--border-strong)}.btn:active{transform:scale(.98)}.btn.primary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn.primary:hover{background:var(--text-2)}[data-theme=dark] .btn.primary{background:var(--text);color:var(--bg)}.btn.accent{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);box-shadow:0 1px #ffffff26 inset,0 1px 2px #ea580c40}.btn.accent:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn.ghost{border-color:transparent}.btn.danger{color:var(--danger);border-color:var(--danger-soft)}.btn.danger:hover{background:var(--danger-soft)}.btn.sm{padding:4px 8px;font-size:12px}.btn.icon{padding:6px}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500;background:var(--bg-soft);color:var(--text-2);border:1px solid var(--border);white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}.badge.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.badge.danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.badge.info{background:var(--info-soft);color:var(--info);border-color:transparent}.badge.accent{background:var(--accent-soft);color:var(--accent-strong);border-color:transparent}[data-theme=dark] .badge.accent{color:var(--accent)}.badge.solid{background:var(--text);color:var(--bg);border-color:transparent}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px;position:relative;overflow:hidden;transition:transform var(--t-fast),box-shadow var(--t-fast),border-color var(--t-fast)}.stat:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.stat-label{font-size:12px;color:var(--text-3);display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden}.stat-value{font-size:30px;font-weight:600;letter-spacing:-.025em;margin-top:6px;font-feature-settings:"tnum";line-height:1.1}.stat-sub{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:12px;color:var(--text-3)}.stat-spark{position:absolute;right:0;bottom:0;opacity:.5;pointer-events:none}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:600;font-size:11px;flex-shrink:0;font-family:var(--font-sans)}.avatar.lg{width:40px;height:40px;font-size:13px}.avatar.xl{width:56px;height:56px;font-size:18px}.avatar.sm{width:22px;height:22px;font-size:10px}.avatar-stack{display:flex}.avatar-stack>*{margin-left:-6px;box-shadow:0 0 0 2px var(--surface)}.avatar-stack>*:first-child{margin-left:0}.task-tbl-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:auto}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;font-weight:500;color:var(--text-3);font-size:11.5px;padding:10px 14px;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em;background:var(--surface);position:sticky;top:0;z-index:2;box-shadow:0 1px 0 var(--border)}.tbl td{padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.tbl td.nowrap,.tbl th.nowrap{white-space:nowrap}.tbl tr.tr-row{cursor:pointer;transition:background var(--t-fast)}.tbl tr.tr-row:hover{background:var(--bg-soft)}.tbl tr:last-child td{border-bottom:0}.drag-handle-cell{width:28px;padding:0 4px 0 8px!important;cursor:grab}.drag-handle{display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;color:var(--text-4);cursor:grab;-webkit-user-select:none;user-select:none;padding:4px 2px;border-radius:var(--r-sm);transition:color var(--t-fast),background var(--t-fast)}.drag-handle:hover{color:var(--text-2);background:var(--bg-soft)}.drag-handle:active{cursor:grabbing}.tbl tr.row-dragging{opacity:.45;background:var(--accent-soft)!important}.tbl tr.row-drag-over td:first-child{box-shadow:inset 0 3px 0 var(--accent)}.tbl tr.row-drag-over>td{background:color-mix(in srgb,var(--accent) 6%,transparent)}.bar{height:6px;background:var(--bg-soft);border-radius:999px;overflow:hidden;position:relative}.bar>span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width var(--t-slow) var(--ease);position:relative}.bar>span:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:barShimmer 2.4s linear infinite}[data-motion=off] .bar>span:after{display:none}@keyframes barShimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.bar.ok>span{background:var(--ok)}.bar.warn>span{background:var(--warn)}.bar.danger>span{background:var(--danger)}.bar.thick{height:10px}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:100;animation:scrimIn var(--t-med) var(--ease)}@keyframes scrimIn{0%{opacity:0}to{opacity:1}}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);z-index:101;width:min(900px,92vw);max-height:86vh;display:flex;flex-direction:column;overflow:hidden;animation:modalIn var(--t-med) var(--ease)}@keyframes modalIn{0%{opacity:0;transform:translate(-50%,-46%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.modal-h{padding:18px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-h h3{margin:0;font-size:16px;font-weight:600;letter-spacing:-.015em}.modal-body{padding:20px 24px;overflow-y:auto;flex:1}.drawer{position:fixed;top:0;right:0;bottom:0;background:var(--surface);border-left:1px solid var(--border);width:min(96vw,max(560px,min(55vw,880px)));z-index:101;display:flex;flex-direction:column;animation:drawerIn var(--t-med) var(--ease);box-shadow:var(--shadow-lg)}@keyframes drawerIn{0%{transform:translate(8%);opacity:0}to{transform:translate(0);opacity:1}}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto;flex-shrink:0}.tab{padding:9px 14px;font-size:13px;color:var(--text-3);border:0;background:transparent;position:relative;font-weight:500;white-space:nowrap;transition:color var(--t-fast);cursor:pointer}.tab:hover,.tab.active{color:var(--text)}.tab.active:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;background:var(--accent);border-radius:2px}.pill-tabs{display:inline-flex;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--r-md);padding:3px;gap:2px}.pill-tabs button{border:0;background:transparent;padding:5px 12px;font-size:12.5px;color:var(--text-3);border-radius:calc(var(--r-md) - 2px);transition:all var(--t-fast);font-weight:500;white-space:nowrap}.pill-tabs button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.pill-tabs button:hover:not(.active){color:var(--text)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;color:var(--text-2);font-weight:500}.input,.select,.textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:8px 12px;font-size:13px;color:var(--text);outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast);width:100%}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.textarea{resize:vertical;min-height:80px;font-family:inherit}.ss-wrap{position:relative;width:100%}.ss-trigger{display:flex;align-items:center;gap:8px;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:8px 10px 8px 12px;font-size:13px;color:var(--text);text-align:left;cursor:pointer;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.ss-trigger:hover{border-color:var(--border-strong)}.ss-trigger.open{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ss-trigger .ss-val{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-trigger .ss-ph{flex:1;color:var(--text-4)}.ss-trigger .ss-chev{color:var(--text-3);transition:transform var(--t-fast);flex-shrink:0}.ss-trigger.open .ss-chev{transform:rotate(180deg)}.ss-trigger .ss-left{color:var(--text-3);flex-shrink:0;display:inline-flex}.ss-clear{width:18px;height:18px;border-radius:4px;display:grid;place-items:center;color:var(--text-3);flex-shrink:0}.ss-clear:hover{background:var(--bg-soft);color:var(--text)}.ss-pop{z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column;animation:ssIn var(--t-fast) var(--ease);min-width:220px}.ss-pop.up{animation:ssInUp var(--t-fast) var(--ease)}@keyframes ssIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes ssInUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.ss-search{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border);color:var(--text-3);flex-shrink:0}.ss-search input{flex:1;border:0;background:transparent;outline:none;font-size:13px;color:var(--text);font-family:inherit}.ss-search input::placeholder{color:var(--text-4)}.ss-x{width:18px;height:18px;border:0;background:transparent;display:grid;place-items:center;color:var(--text-3);border-radius:4px;cursor:pointer}.ss-x:hover{background:var(--bg-soft);color:var(--text)}.ss-list{overflow-y:auto;padding:4px;flex:1;min-height:0}.ss-group{padding:8px 10px 4px;font-size:10.5px;font-weight:600;color:var(--text-4);text-transform:uppercase;letter-spacing:.06em}.ss-opt{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--r-sm);cursor:pointer;font-size:13px;color:var(--text-2);transition:background var(--t-fast)}.ss-opt:hover,.ss-opt.focus{background:var(--bg-soft);color:var(--text)}.ss-opt.sel{color:var(--accent);font-weight:500}[data-theme=dark] .ss-opt.sel{color:var(--accent)}.ss-opt-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-opt-hint{font-size:11px;color:var(--text-4);font-family:var(--font-sans);flex-shrink:0;white-space:nowrap}.ss-opt>svg{color:var(--accent);flex-shrink:0}.ss-empty{padding:16px 10px;font-size:12.5px;color:var(--text-3);text-align:center}.ss-dot{width:8px;height:8px;border-radius:50%;background:var(--text-3);flex-shrink:0;box-shadow:0 0 0 2px transparent;transition:box-shadow var(--t-fast)}.ss-dot.tone-ok{background:var(--ok)}.ss-dot.tone-info{background:var(--info)}.ss-dot.tone-warn{background:var(--warn)}.ss-dot.tone-danger{background:var(--danger);animation:ssDotPulse 1.8s var(--ease) infinite}.ss-dot.tone-muted{background:var(--text-4)}@keyframes ssDotPulse{0%,to{box-shadow:0 0 0 0 var(--danger-soft)}50%{box-shadow:0 0 0 4px var(--danger-soft)}}.ss-tone-ico{flex-shrink:0}.ss-tone-ico.tone-ok{color:var(--ok)}.ss-tone-ico.tone-info{color:var(--info)}.ss-tone-ico.tone-warn{color:var(--warn)}.ss-tone-ico.tone-danger{color:var(--danger)}.ss-tone-ico.tone-muted{color:var(--text-3)}.btn.has-tone{display:inline-flex;align-items:center;gap:6px}.btn.has-tone .btn-dot{width:7px;height:7px;border-radius:50%;background:var(--text-3);flex-shrink:0}.btn.has-tone.tone-ok .btn-dot{background:var(--ok)}.btn.has-tone.tone-info .btn-dot{background:var(--info)}.btn.has-tone.tone-warn .btn-dot{background:var(--warn)}.btn.has-tone.tone-danger .btn-dot{background:var(--danger);animation:ssDotPulse 1.8s var(--ease) infinite}.btn.has-tone.tone-muted .btn-dot{background:var(--text-4)}.btn.has-tone.is-on.tone-ok{background:var(--ok-soft);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 30%,var(--border))}.btn.has-tone.is-on.tone-info{background:var(--info-soft);color:var(--info);border-color:color-mix(in srgb,var(--info) 30%,var(--border))}.btn.has-tone.is-on.tone-warn{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 35%,var(--border))}.btn.has-tone.is-on.tone-danger{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--border))}.btn.has-tone.is-on.tone-muted{background:var(--bg-soft);color:var(--text);border-color:var(--border-strong)}.ss-trigger.has-tone.tone-ok{border-color:color-mix(in srgb,var(--ok) 30%,var(--border));background:color-mix(in srgb,var(--ok) 6%,var(--surface))}.ss-trigger.has-tone.tone-info{border-color:color-mix(in srgb,var(--info) 30%,var(--border));background:color-mix(in srgb,var(--info) 6%,var(--surface))}.ss-trigger.has-tone.tone-warn{border-color:color-mix(in srgb,var(--warn) 35%,var(--border));background:color-mix(in srgb,var(--warn) 7%,var(--surface))}.ss-trigger.has-tone.tone-danger{border-color:color-mix(in srgb,var(--danger) 35%,var(--border));background:color-mix(in srgb,var(--danger) 6%,var(--surface))}.ss-trigger.has-tone .ss-val{font-weight:500}.ss-trigger.has-tone.tone-ok .ss-val{color:var(--ok)}.ss-trigger.has-tone.tone-info .ss-val{color:var(--info)}.ss-trigger.has-tone.tone-warn .ss-val{color:var(--warn)}.ss-trigger.has-tone.tone-danger .ss-val{color:var(--danger)}.ss-trigger.has-tone.tone-muted .ss-val{color:var(--text-2)}.ss-opt>.ss-dot,.ss-opt>.ss-tone-ico{margin-right:2px}.hour-stepper{display:inline-flex;align-items:stretch;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;height:38px}.hour-stepper.is-disabled{opacity:.55;pointer-events:none}.hour-stepper .hs-btn{width:36px;display:grid;place-items:center;background:transparent;border:0;color:var(--text-2);cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}.hour-stepper .hs-btn:hover:not(:disabled){background:var(--bg-soft);color:var(--accent)}.hour-stepper .hs-btn:disabled{opacity:.35;cursor:not-allowed}.hour-stepper .hs-val{display:inline-flex;align-items:center;justify-content:center;gap:1px;min-width:70px;padding:0 12px;border-left:1px solid var(--border);border-right:1px solid var(--border);background:var(--bg-soft);line-height:1}.hour-stepper .hs-num{font-size:14px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;line-height:1}.hour-stepper .hs-unit{font-size:12px;font-weight:500;color:var(--text-3);line-height:1}.qr-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c14c7;z-index:300;display:grid;place-items:center;padding:32px;animation:qrLbIn var(--t-fast) var(--ease);cursor:zoom-out}.qr-lightbox img{display:block;max-width:calc(90vw - 32px);max-height:calc(90vh - 32px);width:auto;height:auto;background:#fff;padding:16px;border-radius:var(--r-md);box-shadow:var(--shadow-lg);cursor:default}.qr-lightbox-close{position:absolute;top:18px;right:18px;width:36px;height:36px;border-radius:50%;border:0;background:#ffffff1f;color:#fff;cursor:pointer;display:grid;place-items:center;transition:background var(--t-fast)}.qr-lightbox-close:hover{background:#ffffff38}.qr-lightbox-hint{position:absolute;bottom:18px;left:50%;transform:translate(-50%);color:#ffffffb3;font-size:12px;letter-spacing:.02em;-webkit-user-select:none;user-select:none}@keyframes qrLbIn{0%{opacity:0}to{opacity:1}}.tbl tr.sub-row td{padding-top:6px;padding-bottom:6px;font-size:12.5px;border-bottom:1px dashed var(--border)}.tbl tr.sub-row:hover td{background:color-mix(in srgb,var(--accent) 4%,transparent)}.tbl tr.sub-row td:first-child{border-left:3px solid var(--accent-soft)}.collapse-header{display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;padding:4px 6px;margin-left:-6px;border-radius:var(--r-sm);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);cursor:pointer;font-family:inherit;transition:background var(--t-fast),color var(--t-fast)}.collapse-header:hover{background:var(--bg-soft);color:var(--text)}.dp-wrap{position:relative;width:100%}.dp-trigger{display:flex;align-items:center;gap:8px;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:8px 10px 8px 12px;font-size:13px;color:var(--text);text-align:left;cursor:pointer;transition:border-color var(--t-fast),box-shadow var(--t-fast);font-family:inherit}.dp-trigger:hover{border-color:var(--border-strong)}.dp-trigger.open{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.dp-trigger.is-disabled{opacity:.55;cursor:not-allowed;background:var(--bg-soft)}.dp-trigger .dp-icon{color:var(--text-3);flex-shrink:0}.dp-trigger .dp-val{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.dp-trigger .dp-ph{flex:1;color:var(--text-4)}.dp-trigger .dp-clear{width:18px;height:18px;border-radius:4px;display:grid;place-items:center;color:var(--text-3);flex-shrink:0;cursor:pointer}.dp-trigger .dp-clear:hover{background:var(--bg-soft);color:var(--text)}.dp-pop{z-index:200;width:296px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:10px;display:flex;flex-direction:column;gap:8px;animation:dpIn var(--t-fast) var(--ease)}.dp-pop.up{animation:dpInUp var(--t-fast) var(--ease)}@keyframes dpInUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes dpIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dp-head{display:flex;align-items:center;gap:4px;padding:2px 2px 8px;border-bottom:1px solid var(--border)}.dp-head-mid{flex:1;display:flex;align-items:center;justify-content:center;gap:6px}.dp-head-btn{border:0;background:transparent;font-size:13.5px;font-weight:600;color:var(--text);padding:4px 8px;border-radius:var(--r-sm);cursor:pointer;font-family:inherit}.dp-head-btn:hover{background:var(--bg-soft);color:var(--accent)}.dp-nav{width:28px;height:28px;display:grid;place-items:center;border:0;background:transparent;border-radius:var(--r-sm);color:var(--text-2);cursor:pointer}.dp-nav:hover{background:var(--bg-soft);color:var(--text)}.dp-week{display:grid;grid-template-columns:repeat(7,1fr);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-4);text-align:center;padding:0 2px}.dp-week span{padding:4px 0;font-weight:600}.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:0 2px}.dp-day{border:0;background:transparent;font-size:12.5px;color:var(--text);height:34px;border-radius:var(--r-sm);cursor:pointer;font-family:var(--font-sans);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;transition:background var(--t-fast),color var(--t-fast)}.dp-day:hover:not(:disabled){background:var(--bg-soft)}.dp-day.out{color:var(--text-4)}.dp-day.today:not(.selected){color:var(--accent);font-weight:600;position:relative}.dp-day.today:not(.selected):after{content:"";position:absolute;left:50%;bottom:4px;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--accent)}.dp-day.selected{background:var(--accent);color:var(--accent-fg);font-weight:600}.dp-day.selected:hover{background:var(--accent-strong)}.dp-day.disabled{opacity:.3;cursor:not-allowed}.dp-month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:6px 2px}.dp-mcell{border:0;background:transparent;font-size:12.5px;color:var(--text);padding:10px;border-radius:var(--r-sm);cursor:pointer;font-family:inherit}.dp-mcell:hover{background:var(--bg-soft)}.dp-mcell.selected{background:var(--accent);color:var(--accent-fg);font-weight:600}.dp-time-row{display:flex;align-items:center;gap:8px;padding:8px 4px;border-top:1px solid var(--border);color:var(--text-3)}.dp-time-input{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:6px 10px;font:inherit;font-size:13px;font-family:var(--font-sans);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text);outline:none}.dp-time-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.dp-foot{display:flex;align-items:center;gap:6px;padding-top:8px;border-top:1px solid var(--border)}.dp-foot-btn{border:0;background:transparent;font-size:12px;font-weight:500;color:var(--text-3);padding:6px 10px;border-radius:var(--r-sm);cursor:pointer;font-family:inherit}.dp-foot-btn:hover{background:var(--bg-soft);color:var(--text)}.dp-foot-btn.accent{color:var(--accent)}.dp-foot-btn.accent:hover{background:var(--accent-soft)}.alert{border-radius:var(--r-lg);padding:12px 16px;display:flex;align-items:center;gap:12px;border:1px solid var(--border);background:var(--surface);position:relative;overflow:hidden}.alert .ico{width:18px;height:18px;flex-shrink:0}.alert.danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.alert.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.alert.info{background:var(--info-soft);color:var(--info);border-color:transparent}.alert b{color:inherit;font-weight:600}.alert .text{flex:1;color:var(--text);font-size:13px}.alert.danger .text b{color:var(--danger)}.alert.warn .text b{color:var(--warn)}.flex-row{display:flex;align-items:center;gap:8px}.col{display:flex;flex-direction:column}.spacer{flex:1}.mono-num{font-family:var(--font-sans);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.muted{color:var(--text-3)}.hr{height:1px;background:var(--border);margin:16px 0;border:0}.grid{display:grid;gap:var(--gap)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-5{grid-template-columns:repeat(5,1fr)}.grid.cols-6{grid-template-columns:repeat(6,1fr)}@media (max-width: 1100px){.grid.cols-4,.grid.cols-5,.grid.cols-6{grid-template-columns:repeat(2,1fr)}}.prio{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:500}.prio:before{content:"";width:8px;height:8px;border-radius:2px}.prio.critical:before{background:var(--danger);box-shadow:0 0 0 2px var(--danger-soft)}.prio.high:before{background:var(--warn);box-shadow:0 0 0 2px var(--warn-soft)}.prio.medium:before{background:var(--info);box-shadow:0 0 0 2px var(--info-soft)}.prio.low:before{background:var(--text-4)}.sla{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:11.5px;padding:2px 6px;border-radius:4px;background:var(--bg-soft);color:var(--text-2)}.sla.danger{background:var(--danger-soft);color:var(--danger);animation:slaPulse 1.6s var(--ease) infinite}.sla.warn{background:var(--warn-soft);color:var(--warn)}@keyframes slaPulse{0%,to{opacity:1}50%{opacity:.6}}.kanban{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px}.kanban-col{background:var(--bg-soft);border-radius:var(--r-lg);padding:12px;display:flex;flex-direction:column;gap:10px;min-height:200px;border:2px solid transparent;transition:border-color var(--t-fast),background var(--t-fast)}.kanban-col.drag-over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--bg-soft))}.kanban-col-h{display:flex;align-items:center;justify-content:space-between;padding:0 4px;font-size:12px;font-weight:600;color:var(--text-2);margin-bottom:2px}.kanban-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:12px;cursor:grab;transition:transform var(--t-fast),box-shadow var(--t-fast),opacity var(--t-fast);-webkit-user-select:none;user-select:none}.kanban-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.kanban-card:active{cursor:grabbing}.kanban-card.dragging{opacity:.35;transform:scale(.97);box-shadow:none}.kanban-card.saving{opacity:.6;pointer-events:none}.kanban-card .title{font-size:13px;font-weight:500;margin-bottom:8px}.kanban-drop-hint{flex:1;min-height:60px;border:2px dashed var(--border);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:11.5px;color:var(--text-4);transition:border-color var(--t-fast),color var(--t-fast),background var(--t-fast)}.kanban-drop-hint.active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent)}.heat{display:grid;grid-template-columns:140px repeat(5,1fr);gap:4px;align-items:center}.heat-cell{height:28px;border-radius:4px;display:grid;place-items:center;font-size:11px;font-family:var(--font-sans);font-variant-numeric:tabular-nums;color:var(--text-3);transition:transform var(--t-fast)}.heat-cell:hover{transform:scale(1.05)}.heat-cell.h0{background:var(--bg-soft)}.heat-cell.h1{background:var(--ok-soft);color:var(--ok)}.heat-cell.h2{background:var(--warn-soft);color:var(--warn)}.heat-cell.h3{background:var(--danger-soft);color:var(--danger);font-weight:600}.gantt-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:clip;display:flex;flex-direction:column}.gantt-head-row{display:flex;flex-shrink:0;position:sticky;top:0;z-index:6;border-bottom:2px solid var(--border);background:var(--surface);box-shadow:0 2px 8px #0000000f}.gantt-label-head{flex-shrink:0;display:flex;align-items:center;padding:0 14px;border-right:1px solid var(--border);background:var(--surface);z-index:2}.gantt-head-scroll{flex:1;overflow:hidden;position:relative}.gantt-head-inner{position:relative;height:56px}.gantt-head-ranges{position:absolute;top:0;left:0;right:0;height:28px;border-bottom:1px solid var(--border);background:var(--bg-soft);overflow:hidden}.gantt-head-days{position:absolute;bottom:0;left:0;right:0;height:28px;overflow:hidden}.gantt-range-cell{position:absolute;top:0;bottom:0;display:flex;align-items:center;padding:0 10px;font-size:10.5px;font-weight:700;letter-spacing:.05em;color:var(--text-3);border-right:1px solid var(--border);white-space:nowrap;overflow:hidden;box-sizing:border-box}.gantt-day-cell{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;cursor:default}.gantt-day-cell.ws{border-left:1px solid var(--border)}.gantt-day-num{font-size:10.5px;font-family:var(--font-mono);color:var(--text-4);line-height:1;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center}.gantt-day-cell.today .gantt-day-num{background:var(--accent);color:#fff;font-weight:700;font-size:10px}.gantt-today-chip{position:absolute;top:50%;transform:translate(-50%,-50%);background:var(--accent);color:#fff;font-size:8.5px;font-weight:800;letter-spacing:.08em;padding:2px 6px;border-radius:3px;z-index:3;pointer-events:none;white-space:nowrap}.gantt-head-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3)}.gantt-body-row{display:flex}.gantt-label-col{flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--surface);z-index:2;padding-bottom:8px}.gantt-label-row{height:52px;display:flex;align-items:center;gap:8px;padding:0 14px;border-bottom:1px solid var(--border);background:var(--surface);transition:background var(--t-fast)}.gantt-label-row:last-child{border-bottom:0}.gantt-label-row.gantt-row-alt{background:var(--bg-soft)}.gantt-label-row:hover{background:color-mix(in srgb,var(--accent) 5%,var(--surface))}.gantt-ms-label-row{height:62px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.gantt-task-meta{flex:1;min-width:0}.gantt-task-name{display:block;font-size:12.5px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-task-ms{display:block;font-size:10.5px;color:var(--text-4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.gantt-body-scroll{flex:1;overflow-x:auto;overflow-y:hidden;padding-bottom:8px;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.gantt-body-scroll::-webkit-scrollbar{height:6px}.gantt-body-scroll::-webkit-scrollbar-track{background:transparent}.gantt-body-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.gantt-body-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-4)}.gantt-track{position:relative}.gantt-track-row{height:52px;position:relative;border-bottom:1px solid var(--border);transition:background var(--t-fast);overflow:visible}.gantt-track-row:last-child{border-bottom:0}.gantt-track-row.gantt-row-alt{background:var(--bg-soft)}.gantt-track-row:hover{background:color-mix(in srgb,var(--accent) 5%,var(--surface))}.gantt-ms-track-row{height:62px}.gantt-day-vline{position:absolute;top:0;bottom:0;width:1px;background:var(--border);opacity:.3;pointer-events:none;z-index:0}.gantt-week-vline{position:absolute;top:0;bottom:0;width:1px;background:var(--border);opacity:.7;pointer-events:none;z-index:0}.gantt-today-col{position:absolute;top:0;bottom:0;background:color-mix(in srgb,var(--accent) 7%,transparent);pointer-events:none;z-index:0}.gantt-today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);opacity:.85;z-index:2;pointer-events:none;transform:translate(-50%)}.gantt-bar{position:absolute;top:50%;transform:translateY(-50%);height:30px;border-radius:999px;display:flex;align-items:center;padding:0 10px 0 5px;gap:6px;min-width:6px;z-index:1;overflow:hidden;box-shadow:0 2px 6px #0003;transition:filter var(--t-fast),box-shadow var(--t-fast);cursor:default}.gantt-bar:hover{filter:brightness(1.1);box-shadow:0 4px 14px #00000047;z-index:3}.gantt-bar-av{flex-shrink:0;display:flex;align-items:center}.gantt-bar-av .avatar{box-shadow:0 0 0 2px #ffffff59}.gantt-bar-lbl{font-size:11.5px;font-weight:600;color:#fff;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;text-shadow:0 1px 2px rgba(0,0,0,.18)}.gantt-ms-pin{position:absolute;top:50%;transform:translate(-50%,-58%);display:flex;flex-direction:column;align-items:center;gap:5px;z-index:2;cursor:default}.gantt-ms-diamond{width:14px;height:14px;border-radius:3px;background:var(--accent);transform:rotate(45deg);flex-shrink:0;box-shadow:0 0 0 2px var(--surface),0 2px 6px #0003}.gantt-ms-pin.done .gantt-ms-diamond{background:var(--ok)}.gantt-ms-pin.delayed .gantt-ms-diamond{background:var(--danger)}.gantt-ms-name{font-size:9.5px;font-weight:500;color:var(--text-2);white-space:nowrap;max-width:80px;overflow:hidden;text-overflow:ellipsis;text-align:center}.gantt-legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:10px 16px;border-top:1px solid var(--border);background:var(--bg-soft);flex-shrink:0}.gantt-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text-3)}.gantt-legend-dot{width:12px;height:8px;border-radius:999px;flex-shrink:0}.count{display:inline-block;font-variant-numeric:tabular-nums}.glow{position:relative}.glow:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,var(--accent),transparent 50%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:0;transition:opacity var(--t-med)}.glow:hover:before{opacity:1}.live{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text-3);font-weight:500}.live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 var(--ok);animation:live 2s var(--ease) infinite}@keyframes live{0%{box-shadow:0 0 #16a34a80}70%{box-shadow:0 0 0 6px #16a34a00}to{box-shadow:0 0 #16a34a00}}.code{font-family:var(--font-mono);font-size:11.5px;background:var(--bg-soft);padding:1px 6px;border-radius:4px;color:var(--text-2);border:1px solid var(--border);white-space:nowrap}.empty{text-align:center;padding:40px 20px;color:var(--text-3)}.empty-ico{width:48px;height:48px;border-radius:12px;background:var(--bg-soft);display:grid;place-items:center;margin:0 auto 12px;color:var(--text-4)}.toast-wrap{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;flex-direction:column;gap:8px}.toast{background:var(--text);color:var(--bg);padding:10px 14px;border-radius:var(--r-md);box-shadow:var(--shadow-lg);font-size:13px;font-weight:500;animation:toastIn var(--t-med) var(--ease);display:flex;align-items:center;gap:10px;max-width:360px}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.grid-bg{background-image:linear-gradient(to right,var(--border) 1px,transparent 1px),linear-gradient(to bottom,var(--border) 1px,transparent 1px);background-size:32px 32px;background-position:-1px -1px;-webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 80%);mask-image:radial-gradient(ellipse at center,black 30%,transparent 80%)}.login{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:grid;place-items:center;z-index:50;overflow:hidden}.login-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(to right,var(--border) 1px,transparent 1px),linear-gradient(to bottom,var(--border) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse 60% 50% at 50% 40%,black,transparent);mask-image:radial-gradient(ellipse 60% 50% at 50% 40%,black,transparent);opacity:.6}.login-bg:after{content:"";position:absolute;top:30%;left:50%;transform:translate(-50%);width:520px;height:280px;background:radial-gradient(ellipse at center,var(--accent-soft),transparent 70%);opacity:.9}.login-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:36px;width:min(420px,92vw);box-shadow:var(--shadow-lg)}.login-shell{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--bg);z-index:1}.login-card{display:flex;flex-direction:column;gap:14px}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:8px}.login-brand b{display:block;font-size:15px}.login-brand small{display:block;color:var(--text-3);font-size:12px;margin-top:2px}.login-field{display:flex;flex-direction:column;gap:6px}.login-field span{font-size:12px;font-weight:500;color:var(--text-2)}.login-field input{width:100%;box-sizing:border-box;padding:10px 12px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--r-md);font:inherit;font-size:14px;transition:border-color var(--t-fast) var(--ease)}.login-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.login-input-group{display:flex;align-items:stretch;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease);overflow:hidden}.login-input-group:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.login-input-group input{flex:1;min-width:0;background:transparent;border:0;padding:10px 4px 10px 12px;font:inherit;font-size:14px;color:var(--text);outline:none}.login-input-group input:focus{box-shadow:none;border:0}.login-suffix{display:flex;align-items:center;padding:0 12px 0 4px;font-size:13px;color:var(--text-3);background:var(--bg-soft);border-left:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;user-select:none}.login-error{background:var(--danger-soft);color:var(--danger);padding:10px 12px;border-radius:var(--r-md);font-size:13px}.login-submit{padding:11px 14px;background:var(--accent);color:var(--accent-fg);border:0;border-radius:var(--r-md);font:inherit;font-weight:600;cursor:pointer;transition:background var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease)}.login-submit:hover:not(:disabled){background:var(--accent-strong)}.login-submit:disabled{opacity:.5;cursor:not-allowed}.login-hint{color:var(--text-3);font-size:11px;text-align:center;margin-top:4px}.login-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sb-user .sb-logout{background:transparent;border:0;color:var(--text-3);cursor:pointer;padding:6px;border-radius:var(--r-sm);display:grid;place-items:center;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.sb-user .sb-logout:hover{background:var(--surface-2);color:var(--danger)}.cmdk-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0c0a0966;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;animation:cmdk-fade var(--t-fast) var(--ease)}[data-theme=dark] .cmdk-backdrop{background:#0009}@keyframes cmdk-fade{0%{opacity:0}to{opacity:1}}.cmdk{width:min(640px,92vw);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column;animation:cmdk-pop var(--t-med) var(--ease)}@keyframes cmdk-pop{0%{transform:translateY(-8px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.cmdk-input{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}.cmdk-input input{flex:1;border:0;outline:0;background:transparent;font:inherit;font-size:14px;color:var(--text)}.cmdk-list{max-height:50vh;overflow-y:auto;padding:6px 0}.cmdk-row{display:flex;align-items:center;gap:10px;padding:9px 14px;cursor:pointer;font-size:13px;transition:background var(--t-fast) var(--ease)}.cmdk-row.active{background:var(--surface-2)}.cmdk-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmdk-hint{color:var(--text-3);font-size:11.5px;white-space:nowrap;font-family:var(--font-mono)}.cmdk-empty{padding:24px;text-align:center;color:var(--text-3);font-size:13px}.cmdk-footer{display:flex;gap:14px;padding:8px 14px;border-top:1px solid var(--border);font-size:11px;color:var(--text-3)}.cmdk-footer .kbd{margin-right:4px}.login-link{background:transparent;border:0;color:var(--accent);cursor:pointer;font:inherit;font-size:12.5px;padding:4px;text-align:center}.login-link:hover{text-decoration:underline}.login-ok{background:var(--ok-soft);color:var(--ok);padding:10px 12px;border-radius:var(--r-md);font-size:13px}.idle-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0c0a0999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center}[data-theme=dark] .idle-backdrop{background:#000c}.idle-card{width:min(420px,92vw);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:22px}.idle-title{font-size:16px;font-weight:600;margin-bottom:8px}.idle-body{font-size:13px;color:var(--text-2);line-height:1.5}.loghours-prompt{position:fixed;bottom:20px;right:20px;z-index:50;display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border:1px solid var(--border-strong);border-left:3px solid var(--accent);border-radius:var(--r-md);box-shadow:var(--shadow-md);max-width:480px;animation:cmdk-pop var(--t-med) var(--ease)}.loghours-prompt-icon{width:32px;height:32px;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex-shrink:0}.loghours-prompt-body{flex:1;min-width:0}.loghours-prompt-title{font-size:13px;font-weight:600;margin-bottom:2px}.loghours-prompt-sub{font-size:11.5px;color:var(--text-3)}.notif-badge{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;background:var(--danger);color:#fff;font-size:9.5px;font-weight:600;border-radius:999px;padding:0 4px;display:grid;place-items:center;border:2px solid var(--surface);font-family:var(--font-sans)}.notif-pop{position:absolute;top:calc(100% + 8px);right:0;width:min(380px,90vw);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);z-index:60;overflow:hidden;animation:cmdk-pop var(--t-med) var(--ease)}.notif-head{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border);font-size:13px}.notif-list{max-height:60vh;overflow-y:auto}.notif-empty{padding:28px 14px;text-align:center;color:var(--text-3);font-size:13px}.notif-row{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--t-fast) var(--ease)}.notif-row:hover{background:var(--bg-soft)}.notif-row.unread{background:var(--accent-soft)}.notif-row.unread:hover{background:var(--accent-soft);filter:brightness(.96)}.notif-row:last-child{border-bottom:0}.notif-dot{width:8px;height:8px;border-radius:999px;margin-top:7px;background:var(--text-4);flex-shrink:0}.notif-dot.mention{background:var(--accent)}.notif-dot.assignment{background:var(--info)}.notif-dot.escalation{background:var(--danger)}.notif-dot.watch{background:var(--ok)}.notif-title{font-size:13px;font-weight:500;line-height:1.4}.notif-body{font-size:11.5px;color:var(--text-3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.notif-time{font-size:10.5px;color:var(--text-4);margin-top:4px;font-family:var(--font-sans)}.md-body{font-size:13.5px;line-height:1.65;color:var(--text-2)}.md-body p{margin:0 0 12px}.md-body p:last-child{margin-bottom:0}.md-body h1,.md-body h2,.md-body h3{margin:16px 0 8px;line-height:1.3;color:var(--text)}.md-body h1{font-size:18px}.md-body h2{font-size:16px}.md-body h3{font-size:14px}.md-body code{font-family:var(--font-mono);font-size:.88em;background:var(--bg-soft);padding:1px 5px;border-radius:4px;border:1px solid var(--border)}.md-body pre{font-family:var(--font-mono);font-size:12px;background:var(--bg-soft);padding:12px;border-radius:var(--r-md);border:1px solid var(--border);overflow-x:auto;margin:8px 0}.md-body pre code{background:transparent;padding:0;border:0}.md-body ul,.md-body ol{margin:0 0 12px;padding-left:22px}.md-body li{margin:4px 0}.md-body a{color:var(--accent);text-decoration:underline}.md-body blockquote{border-left:3px solid var(--border-strong);margin:8px 0;padding:4px 12px;color:var(--text-3)}.md-body table{border-collapse:collapse;margin:8px 0;font-size:12.5px}.md-body th,.md-body td{border:1px solid var(--border);padding:6px 10px}.md-body th{background:var(--bg-soft)}.md-body hr{border:0;border-top:1px solid var(--border);margin:16px 0}.md-body img{max-width:100%;border-radius:var(--r-sm)}.kb-suggest{margin-top:6px;padding:6px;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--r-sm)}.kb-suggest-title{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;padding:2px 6px}.kb-suggest-row{display:flex;gap:8px;align-items:center;padding:4px 6px;font-size:12px;cursor:pointer;border-radius:4px}.kb-suggest-row:hover{background:var(--surface)}.timer-pill{display:inline-flex;align-items:center;gap:8px;padding:4px 4px 4px 10px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:999px;font-size:12px}.timer-dot{width:8px;height:8px;border-radius:999px;background:var(--accent);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.timer-time{font-weight:600;color:var(--accent-strong)}.timer-ref{font-size:10.5px}.hours-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;font-size:11.5px;color:var(--text-2)}.hours-pill .mono-num{font-weight:600;color:var(--text)}.hours-pill.ok{border-color:var(--ok);background:var(--ok-soft)}.hours-pill.warn{border-color:var(--warn);background:var(--warn-soft)}.lh-root{display:flex;flex-direction:column;gap:20px}.lh-sticky-header{position:sticky;top:-24px;z-index:10;background:var(--bg);margin:-24px -24px 0;padding:24px 24px 0;border-bottom:1px solid var(--border)}.lh-nav{display:flex;gap:4px;border-bottom:2px solid var(--border);margin:8px 0 0}.lh-nav-btn{display:inline-flex;align-items:center;padding:8px 16px;font-size:13px;font-weight:500;color:var(--text-3);background:transparent;border:0;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;white-space:nowrap;transition:color var(--t-fast),border-color var(--t-fast);font-family:inherit}.lh-nav-btn:hover{color:var(--text)}.lh-nav-btn.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.lh-template-banner{display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--accent-soft);border:1.5px solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:var(--r-lg)}.lh-template-banner-icon{width:44px;height:44px;border-radius:var(--r-md);background:var(--accent);color:var(--accent-fg);display:grid;place-items:center;flex-shrink:0}.lh-col-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px 3px 10px;border-radius:999px;font-size:11.5px;cursor:default;transition:opacity var(--t-fast)}.lh-col-chip:hover{opacity:.8}.lh-col-chip.req{background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);color:var(--accent-strong)}.lh-col-chip.opt{background:var(--bg-soft);border:1px solid var(--border);color:var(--text-3)}.lh-col-chip code{font-family:var(--font-mono);font-size:11px;font-weight:600}.lh-col-chip-tag{font-size:9.5px;font-weight:700;letter-spacing:.03em;opacity:.7}.loghours-form-card{padding:20px}.loghours-form-icon{width:38px;height:38px;border-radius:var(--r-md);display:grid;place-items:center;flex-shrink:0;transition:background var(--t-fast),color var(--t-fast)}.loghours-field-label{font-size:10.5px;font-weight:600;color:var(--text-4);text-transform:uppercase;letter-spacing:.06em}.loghours-cat-row{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.loghours-cat-chips{display:flex;flex-wrap:wrap;gap:5px}.loghours-cat-chip{font-size:11.5px;font-weight:600;padding:4px 12px;border-radius:999px;border:1.5px solid transparent;cursor:pointer;transition:transform var(--t-fast),box-shadow var(--t-fast),background var(--t-fast),color var(--t-fast);white-space:nowrap}.loghours-cat-chip:hover:not(.active){transform:translateY(-1px);box-shadow:var(--shadow-sm)}.loghours-cat-chip.active{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.loghours-ticket-chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:400;padding:3px 10px;background:var(--bg-soft);color:var(--text-2);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:background var(--t-fast),border-color var(--t-fast);max-width:200px}.loghours-ticket-chip:hover{background:var(--surface);border-color:var(--accent);color:var(--text)}.loghours-ticket-chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}[data-theme=dark] .loghours-ticket-chip.active{color:var(--accent)}.loghours-toggle-group{display:flex;flex-direction:column;gap:5px}.loghours-toggle-row{display:flex;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--border);width:fit-content}.loghours-toggle-btn{padding:5px 14px;font-size:12px;font-weight:500;background:var(--surface);color:var(--text-3);border:0;cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}.loghours-toggle-btn:hover{background:var(--bg-soft);color:var(--text)}.loghours-toggle-btn.on-accent{background:var(--accent);color:var(--accent-fg)}.loghours-toggle-btn.on{background:var(--text);color:var(--bg)}.loghours-ot-toggle{display:inline-flex;align-items:center;gap:0;cursor:pointer;-webkit-user-select:none;user-select:none}.loghours-ot-toggle input{display:none}.loghours-ot-track{width:34px;height:20px;border-radius:999px;background:var(--border);position:relative;transition:background var(--t-fast);flex-shrink:0}.loghours-ot-toggle input:checked+.loghours-ot-track{background:var(--warn)}.loghours-ot-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform var(--t-fast)}.loghours-ot-toggle input:checked~.loghours-ot-track .loghours-ot-thumb{transform:translate(14px)}.loghours-submit-row{display:flex;align-items:center;gap:14px}.loghours-day-bar{height:5px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:2px}.loghours-day-bar>div{height:100%;border-radius:3px}.loghours-save-btn{min-width:110px;transition:all var(--t-fast)}.loghours-save-btn.saved{background:var(--ok)!important;border-color:var(--ok)!important}@keyframes loghours-pop{0%{transform:scale(.9);opacity:.6}to{transform:scale(1);opacity:1}}.loghours-today-card{padding:18px}.loghours-entry-card{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;transition:border-color var(--t-fast),transform var(--t-fast);animation:loghours-pop var(--t-med) ease}.loghours-entry-card:hover{border-color:var(--border-strong);transform:translate(2px)}.loghours-entry-bar{width:4px;flex-shrink:0}.loghours-entry-body{flex:1;padding:9px 12px;min-width:0}.loghours-entry-top{display:flex;align-items:flex-start;gap:10px}.loghours-entry-hours{font-size:14px;font-weight:700;flex-shrink:0;font-feature-settings:"tnum";letter-spacing:-.02em}.loghours-dropzone{border:2px dashed var(--border);border-radius:var(--r-lg);padding:48px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;transition:border-color var(--t-fast),background var(--t-fast)}.loghours-dropzone.drag-over{border-color:var(--accent);background:var(--accent-soft)}.loghours-hist-stat{position:relative;padding:14px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.loghours-hist-stat:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--r-lg) var(--r-lg) 0 0}.loghours-hist-stat-info:before{background:var(--info)}.loghours-hist-stat-ok:before{background:var(--ok)}.loghours-hist-stat-warn:before{background:var(--warn)}.loghours-hist-stat-accent:before{background:var(--accent)}.loghours-hist-stat-val{font-size:24px;font-weight:700;letter-spacing:-.03em;font-feature-settings:"tnum";line-height:1}.loghours-hist-stat-label{font-size:11px;color:var(--text-4);margin-top:3px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.loghours-hist-stat-sub{font-size:11px;color:var(--ok);font-weight:600;margin-top:2px}.loghours-hist-stat-info .loghours-hist-stat-val{color:var(--info)}.loghours-hist-stat-ok .loghours-hist-stat-val{color:var(--ok)}.loghours-hist-stat-warn .loghours-hist-stat-val{color:var(--warn)}.loghours-hist-stat-accent .loghours-hist-stat-val{color:var(--accent)}.loghours-date-divider{display:flex;align-items:center;gap:10px;margin-bottom:7px}.loghours-date-label{font-size:12px;font-weight:700;color:var(--text-2);white-space:nowrap}.loghours-date-line{flex:1;height:1px;background:var(--border)}.loghours-date-total{font-size:11.5px;font-weight:600;color:var(--text-3);white-space:nowrap;font-feature-settings:"tnum"}.loghours-hist-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface);transition:background var(--t-fast);min-width:0}.loghours-hist-row:hover{background:var(--bg-soft)}.loghours-hist-cat-bar{width:4px;height:32px;border-radius:2px;flex-shrink:0}.loghours-hist-hours{font-size:13.5px;font-weight:700;flex-shrink:0;font-feature-settings:"tnum";min-width:34px;text-align:right}.log-heatmap-grid{display:grid;grid-template-columns:100px repeat(var(--cols, 7),1fr) 54px;gap:4px 5px;align-items:center}.log-heatmap-name{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--text-2);overflow:hidden;padding-right:4px}.log-heatmap-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-heatmap-daylabel{display:flex;flex-direction:column;align-items:center;font-size:10px;color:var(--text-4);line-height:1.3;padding-bottom:2px}.log-heatmap-daylabel span:last-child{font-weight:600;color:var(--text-3)}.log-heatmap-daylabel.today span:last-child{color:var(--accent)}.log-heatmap-daylabel.wknd{opacity:.55}.log-heatmap-cell{height:24px;border-radius:var(--r-sm);transition:transform var(--t-fast),opacity var(--t-fast);cursor:default}.log-heatmap-cell:hover{transform:scale(1.12);opacity:.85}.log-heatmap-cell.logged{background:var(--ok)}.log-heatmap-cell.missing{background:var(--danger-soft);border:1.5px solid var(--danger)}.log-heatmap-cell.wknd{background:var(--bg-soft);border:1px solid var(--border)}.log-heatmap-cell.today-col{outline:2px solid var(--accent);outline-offset:1px}.log-heatmap-count{font-size:11px;font-weight:600;text-align:right;padding-left:4px;white-space:nowrap}.log-heatmap-count.bad{color:var(--danger)}.log-heatmap-count.good{color:var(--ok)}.log-heatmap-legend{display:flex;align-items:center;gap:12px;margin-top:10px;font-size:11px;color:var(--text-4)}.lh-dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:3px;vertical-align:middle}.lh-dot.logged{background:var(--ok)}.lh-dot.missing{background:var(--danger-soft);border:1.5px solid var(--danger)}.lh-dot.wknd{background:var(--bg-soft);border:1px solid var(--border)}.mytask-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:12px}.mytask-header-text .page-title{margin-bottom:4px}.mytask-allclear{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--ok-soft);color:var(--ok);border-radius:var(--r-lg);font-size:13px;font-weight:600;border:1px solid color-mix(in srgb,var(--ok) 25%,transparent)}.mytask-stat{position:relative;display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;transition:transform var(--t-fast),box-shadow var(--t-fast),border-color var(--t-fast)}.mytask-stat:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--r-lg) var(--r-lg) 0 0}.mytask-stat:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.mytask-stat-icon-wrap{width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;flex-shrink:0}.mytask-stat-val{font-size:30px;font-weight:700;line-height:1;letter-spacing:-.03em;font-feature-settings:"tnum"}.mytask-stat-label{font-size:11px;color:var(--text-4);margin-top:3px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.mytask-stat-info:before{background:var(--info)}.mytask-stat-danger:before{background:var(--danger)}.mytask-stat-warn:before{background:var(--warn)}.mytask-stat-ok:before{background:var(--ok)}.mytask-stat-info .mytask-stat-icon-wrap{background:var(--info-soft);color:var(--info)}.mytask-stat-danger .mytask-stat-icon-wrap{background:var(--danger-soft);color:var(--danger)}.mytask-stat-warn .mytask-stat-icon-wrap{background:var(--warn-soft);color:var(--warn)}.mytask-stat-ok .mytask-stat-icon-wrap{background:var(--ok-soft);color:var(--ok)}.mytask-stat-info .mytask-stat-val{color:var(--info)}.mytask-stat-danger .mytask-stat-val{color:var(--danger)}.mytask-stat-warn .mytask-stat-val{color:var(--warn)}.mytask-stat-ok .mytask-stat-val{color:var(--ok)}@keyframes mytask-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--danger) 35%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--danger) 0%,transparent)}}.mytask-stat.pulse-danger{animation:mytask-pulse 2.4s ease-in-out infinite}.mytask-filter-row{display:flex;align-items:center;gap:10px;margin-bottom:14px}.mytask-filter-tabs{display:inline-flex;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--r-md);padding:3px;gap:2px}.mytask-filter-tabs button{display:flex;align-items:center;gap:6px;border:0;background:transparent;padding:5px 11px;font-size:12.5px;color:var(--text-3);font-weight:500;border-radius:calc(var(--r-md) - 2px);transition:all var(--t-fast);white-space:nowrap;cursor:pointer}.mytask-filter-tabs button:hover:not(.active){color:var(--text);background:var(--surface)}.mytask-filter-tabs button[data-tone=accent].active{background:var(--accent);color:var(--accent-fg);box-shadow:var(--shadow-sm)}.mytask-filter-tabs button[data-tone=danger].active{background:var(--danger);color:#fff;box-shadow:var(--shadow-sm)}.mytask-filter-tabs button[data-tone=warn].active{background:var(--warn);color:#fff;box-shadow:var(--shadow-sm)}.mytask-filter-tabs button[data-tone=ok].active{background:var(--ok);color:#fff;box-shadow:var(--shadow-sm)}.mytask-filter-tabs button[data-tone=blocked].active{background:var(--danger);color:#fff;box-shadow:var(--shadow-sm)}.mytask-filter-tabs button[data-tone=muted].active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.mtf-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;background:var(--border);border-radius:999px;font-size:10px;font-weight:700;padding:0 4px;transition:background var(--t-fast),color var(--t-fast)}.mytask-filter-tabs button.active .mtf-count{background:#ffffff4d;color:inherit}[data-tone=muted].active .mtf-count{background:var(--border-strong);color:var(--text-2)}.mytask-list{display:flex;flex-direction:column;gap:8px}.mytask-card{position:relative;display:flex;align-items:stretch;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;transition:transform var(--t-fast),box-shadow var(--t-fast),border-color var(--t-fast)}.mytask-card:hover{transform:translate(3px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.mytask-card.overdue{background:color-mix(in srgb,var(--danger) 4%,var(--surface));border-color:color-mix(in srgb,var(--danger) 30%,var(--border))}.mytask-card.soon{background:color-mix(in srgb,var(--warn) 4%,var(--surface));border-color:color-mix(in srgb,var(--warn) 25%,var(--border))}.mytask-card.is-done{opacity:.65}.mytask-card.is-done:hover{opacity:1}.mytask-prio-bar{width:4px;flex-shrink:0;border-radius:var(--r-sm) 0 0 var(--r-sm)}.mytask-card-body{flex:1;min-width:0;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.mytask-card-top{display:flex;align-items:flex-start;gap:10px;justify-content:space-between}.mytask-card-name-wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;flex:1}.mytask-card-name{font-size:13.5px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mytask-urgent-chip{display:inline-flex;align-items:center;gap:3px;font-size:9.5px;font-weight:700;letter-spacing:.06em;color:var(--danger);background:var(--danger-soft);border:1px solid color-mix(in srgb,var(--danger) 25%,transparent);border-radius:var(--r-sm);padding:1px 6px;animation:mytask-badge-blink 1.6s ease-in-out infinite}.mytask-soon-chip{display:inline-flex;align-items:center;gap:3px;font-size:9.5px;font-weight:700;letter-spacing:.06em;color:var(--warn);background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 25%,transparent);border-radius:var(--r-sm);padding:1px 6px}@keyframes mytask-badge-blink{0%,to{opacity:1}50%{opacity:.55}}.mytask-project-pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;color:var(--accent-strong);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:999px;padding:2px 10px 2px 7px;white-space:nowrap;cursor:pointer;flex-shrink:0;transition:opacity var(--t-fast),background var(--t-fast)}.mytask-project-pill:hover{opacity:.75}[data-theme=dark] .mytask-project-pill{color:var(--accent)}.mytask-card-bottom{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mytask-prio-chip{font-size:10.5px;font-weight:700;letter-spacing:.04em;padding:2px 9px;border-radius:999px}.mytask-status-wrap{display:flex;align-items:center;gap:6px}.mytask-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.mytask-card-spacer{flex:1;min-width:8px}.mytask-due-col{display:flex;flex-direction:column;align-items:flex-end;min-width:70px}.mytask-due-date{font-size:12px;font-weight:600;font-feature-settings:"tnum"}.mytask-due-sub{font-size:10.5px;font-weight:600}.mytask-hours-col{display:flex;flex-direction:column;align-items:flex-end;min-width:76px}.mytask-hours-label{font-size:11.5px;font-variant-numeric:tabular-nums}.mytask-mini-bar{width:72px;height:5px;background:var(--border);border-radius:3px;margin-top:4px;overflow:hidden}.mytask-mini-bar-fill{height:100%;border-radius:3px;transition:width var(--t-med)}.sb-user-util{position:absolute;bottom:-2px;right:-2px;background:var(--surface);border:2px solid var(--surface);border-radius:999px;width:14px;height:14px;display:grid;place-items:center}.sb-user-util.ok{background:var(--ok)}.sb-user-util.warn{background:var(--warn)}.sb-user-util.danger{background:var(--danger)}
