:root{--color-canvas: #f5f5f5;--color-paper: #ffffff;--color-surface-alt: #fafafa;--color-ink: #0a0a0a;--color-ink-soft: #171717;--color-ink-2: #404040;--color-mid-gray: #737373;--color-hairline: #e5e5e5;--color-hairline-strong: #d4d4d4;--color-ember: #e7000b;--color-hover: rgba(10, 10, 10, .04);--color-ring: #a3a3a3;--radius-md: 6px;--radius-lg: 10px;--radius-xl: 14px;--radius-2xl: 18px;--radius-3xl: 24px;--shadow-subtle: 0 0 0 1px rgba(23, 23, 23, .05), 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-pop: 0 0 0 1px rgba(23, 23, 23, .05), 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--focus-ring: 0 0 0 3px rgba(163, 163, 163, .35);--font-sans: "Geist Variable", "Pretendard Variable", Pretendard, "Malgun Gothic", "맑은 고딕", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: Consolas, "D2Coding", "Malgun Gothic", monospace;--bg: var(--color-canvas);--card: var(--color-paper);--line: var(--color-hairline);--ink: var(--color-ink);--sub: var(--color-mid-gray);--brand: var(--color-ink-soft);--brand-soft: var(--color-canvas);--ok: #15803d;--ok-soft: #f0fdf4;--warn: #b45309;--warn-soft: #fffbeb;--bad: var(--color-ember);--bad-soft: #fef2f2;--radius: var(--radius-3xl)}*{box-sizing:border-box;margin:0;padding:0;font-family:var(--font-sans)}body{background:var(--bg);color:var(--ink);font-size:14px;line-height:1.43;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{cursor:pointer;font-size:14px;color:inherit}input,select,textarea{font-size:14px}input[type=checkbox],input[type=radio]{accent-color:var(--color-ink-soft)}::placeholder{color:var(--color-mid-gray);opacity:1}::selection{background:var(--color-hairline)}:focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}:where(input:not([type=checkbox],[type=radio],[type=color],[type=range],[type=file]),select,textarea){font-family:inherit;color:var(--color-ink);background-color:var(--color-paper);border:1px solid var(--color-hairline);border-radius:var(--radius-2xl);padding:6px 12px;outline:none;transition:border-color .15s,box-shadow .15s,background-color .15s}:where(input:not([type=checkbox],[type=radio],[type=color],[type=range],[type=file]),select,textarea):focus{background-color:var(--color-paper);border-color:var(--color-ring);box-shadow:var(--focus-ring)}:where(select:not([multiple])){-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23737373' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:16px}:where(input,select,textarea):disabled{opacity:.5;cursor:not-allowed}.boot{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--sub)}#login{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--color-canvas)}.login-card{background:var(--color-paper);border:1px solid var(--line);border-radius:var(--radius-3xl);padding:32px 28px 28px;width:380px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-subtle)}.login-card h1{font-size:24px;font-weight:600;line-height:1.33;letter-spacing:-.6px;margin-bottom:4px}.login-card p{color:var(--sub);font-size:14px;margin-bottom:12px}.login-card label{display:block;font-size:13px;font-weight:500;color:var(--ink);margin:16px 0 6px}.login-card input{width:100%;height:40px;padding:8px 14px;background:var(--color-canvas);border:1px solid transparent;border-radius:var(--radius-2xl)}.login-card button{width:100%;height:40px;margin-top:24px;padding:0 16px;background:var(--color-ink);color:var(--color-surface-alt);border:none;border-radius:var(--radius-2xl);font-weight:500}.login-card button:hover{background:#262626}.login-card button:disabled{opacity:.5}.login-err{margin-top:14px;background:var(--bad-soft);color:var(--bad);padding:8px 12px;border-radius:var(--radius-xl);font-size:13px}.login-hint{margin-top:16px;font-size:12px;color:var(--sub);text-align:center;line-height:1.5}#app{min-height:100vh}.sidebar{position:fixed;left:0;top:0;bottom:0;width:220px;background:var(--color-surface-alt);color:var(--ink);border-right:1px solid var(--line);padding:20px 12px}.sidebar .logo{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;letter-spacing:-.3px;color:var(--ink);padding:0 8px 14px}.logo-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-lg);background:var(--color-ink);color:var(--color-surface-alt);font-size:14px;font-weight:600;letter-spacing:0;flex:none}.nav-item{display:flex;align-items:center;gap:9px;padding:5px 12px;border-radius:var(--radius-2xl);margin-top:1px;color:var(--color-ink-2);cursor:pointer}.nav-item:hover{background:var(--color-hover);color:var(--ink)}.nav-item.active{background:var(--color-ink-soft);color:var(--color-surface-alt);font-weight:500}.main{margin-left:220px;padding:24px 32px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.topbar h2{font-size:24px;font-weight:600;line-height:1.33;letter-spacing:-.6px}.who{display:flex;align-items:center;gap:8px;color:var(--sub);font-size:14px}.who button{height:32px;background:var(--color-paper);border:1px solid var(--line);border-radius:var(--radius-2xl);padding:0 12px;font-size:13px;font-weight:500;color:var(--ink)}.who button:hover{background:var(--color-canvas)}.who .push-toggle.on{border-color:var(--color-hairline-strong)}.push-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.push-banner .muted{color:var(--sub);font-size:13px;margin-top:2px}.push-banner-actions{display:flex;gap:6px;flex:none}@media (max-width: 480px){.push-banner{flex-direction:column;align-items:stretch}.push-banner-actions .btn{flex:1}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-subtle)}.mb16{margin-bottom:16px}.grid{display:grid;gap:16px}.stat-grid{grid-template-columns:repeat(4,1fr);margin-bottom:16px}.stat{display:flex;flex-direction:column;gap:6px}.stat .lbl{color:var(--sub);font-size:13px;font-weight:500}.stat .val{font-size:30px;font-weight:600;line-height:1.2;letter-spacing:-.75px;font-variant-numeric:tabular-nums}.val.brand{color:var(--brand)}.val.ok,td.ok{color:var(--ok)}.val.warn,td.warn{color:var(--warn)}td.bold{font-weight:600}td.muted{color:var(--sub)}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.section-title{font-size:16px;font-weight:600;letter-spacing:-.2px;margin-bottom:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;background:var(--color-ink);color:var(--color-surface-alt);border:1px solid transparent;border-radius:var(--radius-2xl);padding:0 16px;font-weight:500;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s}.btn:hover:not(:disabled){background:#262626}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:var(--color-paper);color:var(--ink);border:1px solid var(--line)}.btn.ghost:hover:not(:disabled){background:var(--color-canvas)}.btn.ok{background:var(--color-ink)}.btn.bad{background:var(--bad);color:#fff}.btn.bad:hover:not(:disabled){background:#c10007}.btn.sm{min-height:30px;padding:0 12px;font-size:13px;margin-left:4px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line)}th{color:var(--sub);font-size:13px;font-weight:500}td{font-size:14px}.clickrow{cursor:pointer}.clickrow:hover{background:var(--color-surface-alt)}.pill{display:inline-block;padding:1px 8px;border:1px solid transparent;border-radius:var(--radius-2xl);font-size:12px;font-weight:500;line-height:1.5;white-space:nowrap}.pill.pending{background:var(--warn-soft);color:var(--warn);border-color:#fde68a}.pill.approved{background:var(--ok-soft);color:var(--ok);border-color:#bbf7d0}.pill.rejected{background:var(--bad-soft);color:var(--bad);border-color:#fecaca}.pill.cancelled{background:var(--color-canvas);color:var(--sub)}.type-tag{display:inline-block;padding:1px 8px;border-radius:var(--radius-2xl);font-size:12px;font-weight:500;background:var(--color-canvas);color:var(--color-ink-soft)}.empty{color:var(--sub);text-align:center;padding:30px;font-size:14px}.bar{display:inline-block;vertical-align:middle;width:90px;height:8px;background:var(--line);border-radius:var(--radius-2xl)}.bar-fill{display:block;height:8px;background:var(--brand);border-radius:var(--radius-2xl)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:50;display:flex;align-items:center;justify-content:center}.modal{background:var(--color-paper);border:1px solid var(--line);border-radius:var(--radius-3xl);box-shadow:var(--shadow-pop);width:480px;max-width:94vw;max-height:90vh;overflow:auto;padding:24px}.modal h3{font-size:18px;font-weight:600;letter-spacing:-.3px;margin-bottom:16px}.field{margin-bottom:14px}.approve-filters{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1fr auto;gap:10px;align-items:end}.approve-filters .field{margin-bottom:0}@media (max-width: 900px){.approve-filters{grid-template-columns:1fr 1fr}}.proj-filters{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:10px;align-items:end}.proj-filters .field{margin-bottom:0}@media (max-width: 900px){.proj-filters{grid-template-columns:1fr 1fr}}.field label{display:block;font-size:13px;font-weight:500;color:var(--ink);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;min-height:38px;padding:8px 12px;background-color:var(--color-canvas);border:1px solid transparent;border-radius:var(--radius-2xl)}.field select{padding-right:32px}.field input:focus,.field select:focus,.field textarea:focus{background-color:var(--color-paper);border-color:var(--color-ring);box-shadow:var(--focus-ring)}.field input[type=checkbox],.field input[type=radio]{width:auto;min-height:0}.field textarea{resize:vertical;min-height:150px;line-height:1.55;border-radius:var(--radius-xl)}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.calc-box{background:var(--color-canvas);color:var(--ink);border-radius:var(--radius-xl);padding:10px 14px;font-size:14px;font-weight:500}.d-row{display:flex;padding:10px 2px;border-bottom:1px solid var(--line);font-size:14px}.d-row:last-of-type{border-bottom:none}.d-k{width:84px;color:var(--sub);flex-shrink:0}.d-v{flex:1;line-height:1.55;white-space:pre-wrap;word-break:break-word}.cal-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}.cal-head button{height:30px;background:var(--color-paper);border:1px solid var(--line);border-radius:var(--radius-2xl);padding:0 12px;font-size:13px;font-weight:500}.cal-head button:hover{background:var(--color-canvas)}.cal-head .mon{font-size:18px;font-weight:600;letter-spacing:-.3px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-dow{text-align:center;font-size:12px;color:var(--sub);font-weight:500;padding:4px 0}.cal-cell{min-height:96px;background:var(--color-paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:5px 6px}.cal-cell.dim{background:var(--color-surface-alt)}.cal-cell .dnum{font-size:12px;color:var(--sub);font-variant-numeric:tabular-nums}.cal-cell.today .dnum{background:var(--color-ink);color:var(--color-surface-alt);border-radius:50%;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-weight:500}.cal-cell.sat .dnum{color:#2563eb}.cal-cell.sun .dnum{color:var(--color-ember)}.cal-ev{font-size:11px;margin-top:3px;padding:2px 6px;border-radius:var(--radius-md);background:var(--ok-soft);color:var(--ok);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-ev.pending{background:var(--warn-soft);color:var(--warn)}.cal-ev.more{background:var(--color-canvas);color:var(--sub)}.cal-dow.sat{color:#2563eb}.cal-dow.sun{color:var(--color-ember)}.legend{display:flex;gap:16px;margin-top:12px;font-size:13px;color:var(--sub)}.legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:middle}.legend .lg-ok:before{background:var(--ok)}.legend .lg-pn:before{background:var(--warn)}.row-off td{opacity:.5}.row-off td:last-child{opacity:1}.modal.wide{width:680px}.emp-meta{color:var(--sub);font-size:13px;margin-bottom:16px}.mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px}.mini-stat{background:var(--color-canvas);border-radius:var(--radius-xl);padding:12px 10px;text-align:center}.mini-stat .m-lbl{font-size:12px;color:var(--sub)}.mini-stat .m-val{font-size:20px;font-weight:600;letter-spacing:-.4px;margin-top:3px;font-variant-numeric:tabular-nums}.editor-wrap{border:1px solid var(--line);border-radius:var(--radius-xl);overflow:hidden}.editor-toolbar{display:flex;align-items:center;gap:4px;padding:6px 8px;background:var(--color-surface-alt);border-bottom:1px solid var(--line)}.editor-toolbar button{background:var(--color-paper);border:1px solid var(--line);border-radius:var(--radius-md);width:32px;height:28px}.editor-toolbar button:hover{background:var(--color-canvas)}.editor-hint{margin-left:auto;font-size:12px;color:var(--sub)}.editor{min-height:200px;max-height:360px;overflow-y:auto;padding:12px 14px;font-size:14px;line-height:1.63;outline:none}.editor img{max-width:100%}.post-content{line-height:1.63;font-size:14px;margin:6px 0 18px;word-break:break-word}.post-content img{max-width:100%}.file-drop{display:flex;align-items:center;gap:12px;padding:18px;border:1px dashed var(--color-hairline-strong);border-radius:var(--radius-xl);background:var(--color-surface-alt);cursor:pointer;transition:background .15s,border-color .15s;-webkit-user-select:none;user-select:none}.file-drop:hover{background:var(--color-canvas);border-color:var(--color-ring)}.file-drop.over{background:var(--color-canvas);border-color:var(--color-ink);border-style:solid}.file-drop-icon{font-size:26px}.file-drop-text{flex:1}.file-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.file-row{font-size:13px;padding:8px 12px;background:var(--color-surface-alt);border:1px solid var(--line);border-radius:var(--radius-lg)}a.file-row{color:var(--ink);text-decoration:none;display:block}a.file-row:hover{background:var(--color-canvas)}.post-title{font-size:24px;font-weight:600;line-height:1.33;letter-spacing:-.6px;margin:6px 0 4px}.board-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:12px}.board-tab{height:32px;background:var(--color-paper);border:1px solid var(--line);border-radius:var(--radius-2xl);padding:0 14px;font-size:13px;font-weight:500;color:var(--ink)}.board-tab:hover{background:var(--color-canvas)}.board-tab.active{background:var(--color-ink-soft);color:var(--color-surface-alt);border-color:var(--color-ink-soft)}.tab-count{font-size:11px;opacity:.65;margin-left:5px}.sidebar{overflow-y:auto}.nav-group{width:fit-content;margin:12px 0 4px 6px;padding:1px 10px;border-radius:var(--radius-2xl);background:var(--color-hairline);color:var(--color-ink-2);font-size:12px;font-weight:600;letter-spacing:.6px}.nav-item.nav-sub{font-size:14px}.nav-empty{font-size:13px;color:var(--sub);padding:6px 12px}.file-row-edit{display:flex;justify-content:space-between;align-items:center}.file-x{background:none;border:none;color:var(--bad);font-size:13px;padding:0 4px}.login-opts{display:flex;gap:18px;margin-top:16px}.login-opts label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:400;color:var(--sub);margin:0;cursor:pointer}.login-opts input{width:auto;height:auto;margin:0}.cat-filter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.cat-chip{height:28px;background:var(--color-paper);border:1px solid var(--line);border-radius:var(--radius-2xl);padding:0 12px;font-size:13px;font-weight:500;color:var(--ink)}.cat-chip:hover{background:var(--color-canvas)}.cat-chip.active{background:var(--color-ink-soft);color:var(--color-surface-alt);border-color:var(--color-ink-soft)}.inline-add{display:flex;gap:8px}.reply-row{border-top:1px solid var(--line);padding:10px 2px}.reply-meta{font-size:13px;color:var(--sub);margin-bottom:4px;display:flex;align-items:center;gap:8px}.reply-meta strong{color:var(--ink);font-weight:600}.reply-content{font-size:14px;white-space:pre-wrap;line-height:1.5;word-break:break-word}.reply-x{background:none;border:none;color:var(--bad);font-size:12px;padding:0}.reply-form{margin-top:14px}.reply-form textarea{width:100%;min-height:64px;padding:10px 14px;background-color:var(--color-canvas);border:1px solid transparent;border-radius:var(--radius-xl);resize:vertical;line-height:1.5}.reply-form textarea:focus{background-color:var(--color-paper);border-color:var(--color-ring)}.check-label{display:flex;align-items:center;gap:7px}.check-label input{width:auto;margin:0}.reply-child{margin-left:24px}.reply-arrow{color:var(--sub);margin-right:2px}.parent-link{font-size:13px;color:var(--sub);cursor:pointer;margin-bottom:8px}.parent-link:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.proj-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.proj-bar{position:relative;background:var(--line);border-radius:var(--radius-2xl);height:8px;overflow:hidden}.proj-bar-fill{display:block;height:100%;background:var(--brand);border-radius:var(--radius-2xl);transition:width .3s}.proj-pct{font-size:12px;color:var(--sub);margin-left:6px;font-variant-numeric:tabular-nums}.pill.s-계획,.pill.s-제안중{background:var(--color-paper);color:var(--color-ink-soft);border-color:var(--line)}.pill.s-진행중{background:var(--color-ink-soft);color:var(--color-surface-alt)}.pill.s-완료{background:var(--color-canvas);color:var(--color-ink-2)}.pill.s-보류{background:transparent;color:var(--sub);border:1px dashed var(--color-hairline-strong)}.pill.s-협상중{background:var(--warn-soft);color:var(--warn);border-color:#fde68a}.pill.s-수주{background:var(--ok-soft);color:var(--ok);border-color:#bbf7d0}.pill.s-실패,.pill.s-취소{background:var(--bad-soft);color:var(--bad);border-color:#fecaca}.task-row{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid var(--line);font-size:14px}.task-row:last-child{border-bottom:none}.task-row input[type=checkbox]{width:auto;margin:0}.task-title{flex:1}.task-title.done{text-decoration:line-through;color:var(--sub)}.task-due{font-size:12px;color:var(--sub)}.gantt-wrap{margin-top:8px}.gantt-toolbar{display:flex;align-items:center;justify-content:space-between;padding:6px 4px 10px;gap:8px}.gantt-title{font-weight:600;font-size:16px;letter-spacing:-.2px;color:var(--ink)}.gantt-tools{display:flex;gap:6px}.gantt{display:grid;grid-template-columns:380px 1fr;border:1px solid var(--line);border-radius:var(--radius-xl);overflow:hidden;background:var(--color-paper)}.gantt-left{border-right:1px solid var(--line);background:var(--color-surface-alt);overflow:hidden}.gantt-head{height:56px;border-bottom:1px solid var(--line);background:var(--color-canvas);font-size:12px}.gantt-head-left{display:grid;grid-template-columns:1fr 90px 60px;align-items:end;padding:0 0 6px}.gantt-head-left .col-title,.gantt-head-left .col-assignee,.gantt-head-left .col-progress{padding:0 8px;font-weight:500;color:var(--sub)}.gantt-head-left .col-assignee,.gantt-head-left .col-progress{text-align:center}.gantt-body{position:relative}.gantt-row{display:grid;grid-template-columns:1fr 90px 60px;align-items:center;border-bottom:1px solid #f0f0f0;font-size:13px}.gantt-row .col-title{display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-row .caret{display:inline-block;width:14px;cursor:pointer;color:var(--sub);font-size:11px;-webkit-user-select:none;user-select:none}.gantt-row .num{color:var(--sub);font-size:12px;margin-right:4px}.gantt-row .tname{cursor:pointer}.gantt-row .tname:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.gantt-row .tname.done{text-decoration:line-through;color:#a3a3a3}.gantt-row .col-assignee,.gantt-row .col-progress{text-align:center;color:var(--color-ink-2);font-size:12px}.gantt-head-right{position:relative}.month-row{position:relative;height:26px;border-bottom:1px solid var(--line);background:var(--color-canvas)}.month-cell{position:absolute;top:0;height:26px;line-height:26px;text-align:center;font-weight:500;color:var(--color-ink-2);font-size:12px;border-right:1px solid var(--color-hairline-strong)}.day-row{position:relative;height:30px;display:flex}.day-cell{height:30px;border-right:1px solid #f0f0f0;display:flex;align-items:center;justify-content:center;font-size:11px;color:#525252;box-sizing:border-box}.day-cell.we{background:var(--color-canvas);color:#a3a3a3}.day-cell .dn{font-size:11px}.gantt-timeline{position:relative}.grid-bg{position:absolute;top:0;left:0;right:0;bottom:0;display:flex}.grid-col{height:100%;border-right:1px solid var(--color-canvas);box-sizing:border-box}.grid-col.we{background:var(--color-surface-alt)}.today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--color-ember);z-index:3;box-shadow:0 0 0 1px #e7000b1f}.bar-row{position:absolute;left:0;right:0}.bar{position:absolute;top:6px;height:22px;border-radius:var(--radius-md);color:#fff;font-size:11px;line-height:22px;cursor:pointer;overflow:hidden;box-shadow:0 1px 2px #00000014}.bar.parent{opacity:.85}.bar-fill{position:absolute;top:0;left:0;bottom:0;background:#00000047}.bar-label{position:relative;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-label-out{position:absolute;top:0;line-height:34px;font-size:12px;font-weight:500;color:var(--color-ink-2);white-space:nowrap;pointer-events:none;z-index:2}.gantt-left{display:flex;flex-direction:column}.gantt-left .gantt-body{flex:1 0 auto}.gantt-scrollpad{flex:0 0 auto;border-top:1px solid transparent}.gantt-right{overflow-x:auto;overflow-y:hidden}.gantt-hint{margin-left:10px;font-size:12px;font-weight:400;color:var(--sub);letter-spacing:0}.gantt-row .grip{flex:none;width:12px;text-align:center;font-size:11px;letter-spacing:-2px;color:#bdbdbd;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.gantt-row .grip.off{cursor:default}.gantt-row:hover .grip:not(.off){color:var(--sub)}.gantt-row.dragging{opacity:.45}.gantt-drop-line{position:absolute;left:0;right:0;height:2px;margin-top:-1px;background:var(--color-ink);z-index:4;pointer-events:none}.gantt-row .tname{min-width:0;overflow:hidden;text-overflow:ellipsis}.gantt-more{margin-left:auto;flex:none;padding:0 6px;border:0;background:none;color:var(--sub);font-size:14px;line-height:1;opacity:0}.gantt-row:hover .gantt-more{opacity:1}@media (hover: none){.gantt-more{opacity:1}}.gantt-row .editable{cursor:pointer;align-self:stretch;display:flex;align-items:center;justify-content:center}.gantt-row .editable:hover{background:var(--color-canvas)}.gantt-inline{width:100%;min-width:0;height:26px;padding:0 6px;font-size:12px;color:var(--ink);background:var(--color-paper);border:1px solid var(--color-ring);border-radius:4px}.today-line{pointer-events:none}.bar.draggable{cursor:grab;touch-action:none}.bar.dragging{box-shadow:0 0 0 2px #00000040}.bar-h{position:absolute;top:0;bottom:0;z-index:1;cursor:ew-resize}.bar-h.l{left:0}.bar-h.r{right:0}.bar-label-out.dragging{color:var(--ink);font-weight:600}.bar-row.drawable{cursor:crosshair}.bar-row.drawable:hover{background:#00000006}body.gantt-dragging,body.gantt-dragging *{-webkit-user-select:none!important;user-select:none!important}.hamburger{display:none;background:var(--color-paper);border:1px solid var(--line);width:36px;height:36px;border-radius:var(--radius-2xl);font-size:16px;cursor:pointer;margin-right:8px}.sidebar-backdrop{display:none}@media (max-width: 900px){.hamburger{display:inline-flex;align-items:center;justify-content:center}.sidebar{position:fixed;top:0;left:0;bottom:0;width:240px;transform:translate(-100%);transition:transform .25s ease;z-index:100;overflow-y:auto}.sidebar.open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:99}#app,body,#root{display:block}.main{margin-left:0!important;width:100%!important;padding:12px!important}.topbar{flex-wrap:wrap;gap:8px}.topbar h2{font-size:20px;letter-spacing:-.4px}.topbar .who{font-size:12px;gap:6px}.topbar .who button{height:28px;padding:0 10px;font-size:12px}.grid.stat-grid,.proj-grid{grid-template-columns:1fr 1fr!important}.stat .val{font-size:24px;letter-spacing:-.6px}.row2{grid-template-columns:1fr!important}.modal{width:calc(100% - 24px)!important;max-width:100%!important;max-height:90vh;overflow-y:auto}.card{padding:14px;border-radius:var(--radius-xl)}.card table{display:block;overflow-x:auto;white-space:nowrap}.gantt{grid-template-columns:220px 1fr!important}.gantt-row,.gantt-head-left{grid-template-columns:1fr 60px 50px!important}}@media (max-width: 480px){.proj-grid{grid-template-columns:1fr!important}.gantt{grid-template-columns:180px 1fr!important}.topbar .who span{display:none}}.tabs{display:inline-flex;gap:2px;margin-bottom:16px;padding:3px;background:var(--line);border-radius:var(--radius-2xl)}.tab{height:30px;padding:0 16px;background:transparent;border:none;cursor:pointer;font-size:14px;font-weight:500;color:#525252;border-radius:15px;transition:background-color .15s,color .15s}.tab.active{color:var(--ink);background:var(--color-paper);box-shadow:var(--shadow-subtle)}.tab:hover{color:var(--ink)}.tag{display:inline-block;padding:1px 8px;border-radius:var(--radius-2xl);background:var(--color-canvas);color:var(--color-ink-2);font-size:12px;font-weight:500}.sales-list .clickrow:hover td{background:var(--color-surface-alt)}.sales-list td.ok{color:var(--ok);font-weight:600}.sales-list td.warn{color:var(--warn);font-weight:600}.sales-pay{width:100%;margin-top:4px}.sales-pay th{font-size:12px;color:var(--sub);padding:6px 4px;text-align:left}.sales-pay td{padding:4px}.sales-pay td input{width:100%;padding:4px 8px;border:1px solid var(--line);border-radius:var(--radius-lg);font-size:13px}.sales-add input{background:var(--color-canvas)!important}.pagination{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 0;flex-wrap:wrap}.pagination .page-info{font-size:13px;color:var(--sub);font-variant-numeric:tabular-nums}.pagination select{padding:4px 30px 4px 12px;border:1px solid var(--line);border-radius:var(--radius-2xl);font-size:13px}.overview-greeting{font-size:16px;margin-bottom:16px;color:var(--color-ink-2)}.ov-h{font-size:16px;font-weight:600;letter-spacing:-.2px;margin:24px 0 10px 2px;color:var(--ink)}.ov-link{cursor:pointer}.ov-link:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.ov-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 900px){.ov-2col{grid-template-columns:1fr}}.cal-ev.trip{background:#f5f3ff!important;color:#6d28d9!important;border-left:3px solid #8b5cf6}.cal-ev.project{background:#eff6ff!important;color:#1d4ed8!important;border-left:3px solid #3b82f6}.cal-filters{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:8px 4px 12px;font-size:13px}.cal-filters label{display:flex;align-items:center;gap:4px;cursor:pointer}.cal-filters input[type=checkbox]{margin:0}.cal-proj-pick{position:relative}.cal-proj-pick summary{cursor:pointer;padding:4px 12px;border:1px solid var(--line);background:var(--color-paper);border-radius:var(--radius-2xl);font-size:13px;font-weight:500;color:var(--ink)}.cal-proj-pick summary:hover{background:var(--color-canvas)}.cal-proj-list{position:absolute;top:calc(100% + 4px);left:0;z-index:10;background:var(--color-paper);border:1px solid var(--line);border-radius:var(--radius-xl);padding:8px;box-shadow:var(--shadow-pop);max-height:280px;overflow-y:auto;min-width:220px;display:flex;flex-direction:column;gap:4px}.cal-proj-list label{display:flex;align-items:center;gap:6px;font-size:13px}.cal-proj-list .btn{margin:2px 0}.cal-ev.task{background:var(--color-canvas);color:var(--color-ink-2);border-left:3px solid #a3a3a3}.cal-proj-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:2px}.cal-proj-row{display:flex;align-items:center;gap:6px}.ov-cal .cal-ev{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;word-break:break-all;line-height:1.2;height:auto;padding:1px 4px;margin-top:2px;margin-bottom:0}.ov-cal .cal-cell{min-height:75px;height:auto!important;padding:3px 4px}.ov-cal .cal-grid{grid-auto-rows:minmax(75px,auto);gap:4px}.ov-cal .cal-head{margin-bottom:10px}.ov-cal .cal-dow{padding:2px 0}.post-images{display:flex;flex-direction:column;gap:16px;margin:0 0 18px}.post-image{margin:0}.post-image img{display:block;max-width:100%;height:auto;border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--color-paper)}.post-image figcaption{font-size:12px;margin-top:5px}.post-image figcaption a{color:var(--sub);text-decoration:none}.post-image figcaption a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.wh-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.wh-crumbs{flex:1;min-width:200px;font-size:14px}.wh-crumb{cursor:pointer;color:var(--sub)}.wh-crumb:hover{color:var(--ink)}.wh-crumb.cur{color:var(--ink);font-weight:500;cursor:default}.wh-crumb.cur:hover{text-decoration:none}.wh-sep{color:var(--color-hairline-strong);margin:0 6px}.wh-search{display:flex;gap:4px}.wh-search input{width:200px;height:30px;padding:0 12px;background:var(--color-paper);border:1px solid var(--line);border-radius:var(--radius-2xl)}.wh-layout{display:grid;grid-template-columns:var(--wh-tree-w, 240px) 12px minmax(0,1fr);align-items:start}@media (max-width: 900px){.wh-layout{grid-template-columns:minmax(0,1fr);gap:12px}.wh-resizer{display:none}.wh-side-scroll{max-height:50vh}}.wh-side{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:12px 4px 12px 8px}.wh-side-scroll{flex:1;min-height:0;overflow:auto;padding-right:4px}.wh-side-scroll,.wh-body{scrollbar-width:thin;scrollbar-color:var(--color-hairline-strong) transparent}.wh-resizer{position:relative;cursor:col-resize;touch-action:none;outline:none}.wh-resizer:before{content:"";position:absolute;top:12px;bottom:12px;left:5px;width:2px;border-radius:2px;background:transparent;transition:background-color .15s}.wh-resizer:after{content:"";position:absolute;top:50%;left:4px;width:4px;height:32px;margin-top:-16px;border-radius:4px;background:var(--color-hairline-strong);transition:background-color .15s}.wh-resizer:hover:before,.wh-resizer:focus-visible:before{background:var(--color-ring)}.wh-resizer.on:before,.wh-resizer.on:after{background:var(--color-ink)}.wh-resizer:hover:after{background:var(--color-ring)}body.is-col-resizing,body.is-col-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}@media (min-width: 901px){.main.main-fill{height:100vh;display:flex;flex-direction:column}.main.main-fill>*{flex:none}.main.main-fill>.wh-layout{flex:1 1 auto;min-height:0;grid-template-rows:minmax(0,1fr);align-items:stretch}.main-fill .wh-body{min-height:0;overflow-y:auto;padding:1px 4px 8px 1px}}.wh-side-head{font-size:12px;font-weight:500;letter-spacing:.6px;color:var(--sub);padding:0 6px 8px}.wh-tree-row{display:flex;align-items:center;gap:3px;padding:5px 8px;border-radius:var(--radius-lg);cursor:pointer;font-size:13px;white-space:nowrap;overflow:hidden}.wh-tree-row:hover{background:var(--color-surface-alt)}.wh-tree-row.active{background:var(--color-canvas);color:var(--ink);font-weight:600}.wh-tree-caret{width:12px;flex:0 0 12px;color:var(--sub);font-size:10px}.wh-tree-name{overflow:hidden;text-overflow:ellipsis}.wh-table{width:100%}.wh-table th{font-size:13px}.wh-table td{vertical-align:middle}.wh-table td.muted{white-space:nowrap}.wh-name{cursor:pointer}.wh-name:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.wh-missing{opacity:.55}.wh-badge{display:inline-block;margin-left:6px;font-size:11px;font-weight:500;padding:1px 7px;border-radius:var(--radius-2xl);background:var(--color-canvas);color:var(--sub)}.wh-badge.bad{background:var(--bad-soft);color:var(--bad)}.wh-actions{text-align:right;white-space:nowrap}.wh-actions .lnk{background:none;border:0;color:var(--color-ink-2);cursor:pointer;font-size:13px;padding:2px 5px;text-decoration:none}.wh-actions .lnk:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.wh-actions .lnk.bad{color:var(--bad)}.wh-picker{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-xl);padding:6px;margin-top:6px}.wh-uploads{position:fixed;right:18px;bottom:18px;width:320px;max-height:46vh;overflow:auto;background:var(--color-paper);border:1px solid var(--line);border-radius:var(--radius-3xl);box-shadow:var(--shadow-pop);padding:16px 18px;z-index:60}.wh-uploads-head{font-size:12px;font-weight:500;letter-spacing:.6px;color:var(--sub);margin-bottom:8px}.wh-upload{margin-bottom:12px}.wh-upload:last-child{margin-bottom:0}.wh-upload-top{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:4px}.wh-upload-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wh-upload-sub{font-size:12px;margin-top:3px}.wh-progress{height:6px;background:var(--line);border-radius:999px;overflow:hidden}.wh-progress-fill{height:100%;background:var(--brand);border-radius:999px;transition:width .2s}.wh-progress-fill.bad{background:var(--bad)}.wh-meter{height:10px;background:var(--line);border-radius:999px;overflow:hidden;margin:6px 0}.wh-meter-fill{height:100%;background:var(--brand);border-radius:999px}.file-row-wrap{display:flex;align-items:center;gap:8px}.file-row-wrap .file-row{flex:1}.file-row-wrap .lnk{background:none;border:0;color:var(--color-ink-2);cursor:pointer;font-size:13px;padding:2px 6px;white-space:nowrap}.file-row-wrap .lnk:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.file-row-wrap .lnk.bad{color:var(--bad)}.modal .wh-modal-input{min-height:38px;padding:8px 12px;background-color:var(--color-canvas);border:1px solid transparent;border-radius:var(--radius-2xl)}.modal .wh-modal-input:focus{background-color:var(--color-paper);border-color:var(--color-ring)}.wh-row[draggable=true]{cursor:grab}.wh-row[draggable=true]:active{cursor:grabbing}.wh-row:hover{background:var(--color-surface-alt)}.wh-row.drop-over>td{background:var(--color-canvas);box-shadow:inset 0 0 0 2px var(--color-ink)}.wh-row.drop-over>td:first-child{border-radius:var(--radius-lg) 0 0 var(--radius-lg)}.wh-row.drop-over>td:last-child{border-radius:0 var(--radius-lg) var(--radius-lg) 0}.wh-tree-row.drop-over{background:var(--color-canvas);box-shadow:inset 0 0 0 2px var(--color-ink)}.wh-crumb.drop-over{background:var(--color-paper);color:var(--ink);box-shadow:0 0 0 2px var(--color-ink);border-radius:var(--radius-md);padding:1px 5px}.wh-hint{font-size:12px}.wh-tools{display:flex;flex-wrap:wrap;gap:6px}.wh-tools .btn{white-space:nowrap}@media (pointer: coarse){.wh-folder-up{display:none}}.wh-menu{position:fixed;z-index:80;min-width:190px;background:var(--color-paper);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-pop);padding:4px}.wh-menu-item{display:flex;align-items:center;gap:9px;width:100%;background:none;border:0;text-align:left;padding:7px 10px;border-radius:var(--radius-lg);font-size:14px;color:var(--ink);cursor:pointer}.wh-menu-item:hover:not(:disabled){background:var(--color-canvas);color:var(--ink)}.wh-menu-item:disabled{opacity:.38;cursor:default}.wh-menu-item.danger{color:var(--bad)}.wh-menu-item.danger:hover:not(:disabled){background:var(--bad-soft);color:var(--bad)}.wh-menu-icon{width:17px;flex:0 0 17px;text-align:center;font-size:13px}.wh-menu-sep{height:1px;background:var(--line);margin:4px -4px}.wh-eye{background:none;border:0;cursor:pointer;font-size:12px;opacity:0;margin-left:6px;padding:0 3px;transition:opacity .12s}.wh-row:hover .wh-eye{opacity:.55}.wh-eye:hover{opacity:1!important}.wh-row.wh-flash>td{animation:wh-flash 1.2s ease-in-out 3}@keyframes wh-flash{0%,to{background:transparent}50%{background:#fef3c7}}.wh-toast{position:fixed;left:50%;bottom:32px;transform:translate(-50%);z-index:300;padding:10px 18px;border-radius:var(--radius-2xl);background:var(--color-ink);color:#fff;font-size:13px;box-shadow:0 6px 20px #0000002e;pointer-events:none}.btn.warn{border-color:#fde68a;background:var(--warn-soft);color:var(--warn)}.btn.warn:hover:not(:disabled){background:#fef3c7}.wh-eye{text-decoration:none;color:inherit;display:inline-block}.wh-eye:hover{text-decoration:none}.chip-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.chip-div{width:1px;height:22px;background:var(--color-hairline-strong);margin:0 6px;flex:none}.card-head .chip-sel{min-width:112px}.chip-n{display:inline-block;margin-left:6px;padding:0 6px;border-radius:var(--radius-2xl);font-size:11px;line-height:16px;background:var(--color-canvas);color:var(--sub);font-variant-numeric:tabular-nums}.cat-chip.active .chip-n{background:#ffffff2e;color:#fff}.modal-wide{width:940px}.modal-wide .stat .val{font-size:18px;letter-spacing:-.3px;white-space:nowrap}.modal-wide .stat{padding:12px 14px;border-radius:var(--radius-xl);box-shadow:none}.modal-wide .btn{white-space:nowrap}.sale-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;margin-bottom:14px;font-size:14px}.sale-meta>div{display:flex;align-items:center;gap:8px;min-height:24px}.sale-meta>div.wide{grid-column:1 / -1;align-items:flex-start}.sale-meta .lbl{flex:none;width:44px;color:var(--sub);font-size:13px}.doc-text{width:100%;min-height:200px;max-height:60vh;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-xl);font-family:var(--font-mono);font-size:13px;line-height:1.65;-moz-tab-size:4;tab-size:4;resize:vertical;outline:none}.doc-text:focus{border-color:var(--color-ring);box-shadow:var(--focus-ring)}.err{background:var(--bad-soft);color:var(--bad);border:1px solid #fecaca;border-radius:var(--radius-xl);padding:9px 12px;font-size:13px;line-height:1.5;white-space:pre-wrap}.editor-toolbar{flex-wrap:wrap}.tb-div{width:1px;height:20px;background:var(--line);margin:0 4px;flex:none}.editor-toolbar .tb-size{height:28px;padding:0 24px 0 8px;border:1px solid var(--line);border-radius:var(--radius-md);background-color:var(--color-paper);background-position:right 6px center;background-size:14px;font-size:12px;width:auto}.editor-toolbar .tb-color{width:34px;height:28px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0}.tb-color-a{font-size:12px;font-weight:700;line-height:1;border-radius:2px;padding:0 2px}.tb-color-bar{display:block;width:16px;height:3px;border-radius:2px}.tb-pop-wrap{position:relative;display:inline-flex}.color-pop{position:absolute;top:32px;left:0;z-index:60;background:var(--color-paper);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-pop);padding:8px}.color-grid{display:grid;grid-template-columns:repeat(3,22px);gap:5px}.color-cell{width:22px;height:22px;border:1px solid rgba(10,10,10,.15);border-radius:var(--radius-md);padding:0;cursor:pointer}.color-cell:hover{outline:2px solid var(--color-ink);outline-offset:1px}.color-clear{margin-top:7px;width:100%;border:1px solid var(--line);background:var(--color-paper);border-radius:var(--radius-md);padding:4px 0;font-size:12px;color:var(--ink);cursor:pointer;white-space:nowrap}.color-clear:hover{background:var(--color-canvas)}.modal-doc{display:flex;flex-direction:column;position:relative;width:940px;height:660px;min-width:420px;min-height:320px;max-width:96vw;max-height:92vh;overflow:hidden;resize:both}.modal-doc.is-full{width:100vw!important;height:100vh!important;max-width:100vw;max-height:100vh;border-radius:0;resize:none}.modal-doc .doc-body{flex:1;min-height:0;display:flex;flex-direction:column}.modal-doc .doc-view,.modal-doc .doc-text{flex:1;min-height:0;max-height:none}.modal-doc .editor-wrap{flex:1;min-height:0;display:flex;flex-direction:column}.modal-doc .editor-toolbar{flex:none}.modal-doc .editor{flex:1;min-height:0;max-height:none;overflow-y:auto}.modal-doc:after{content:"";position:absolute;right:8px;bottom:8px;width:12px;height:12px;pointer-events:none;background:linear-gradient(135deg,transparent 45%,var(--color-hairline-strong) 45%,var(--color-hairline-strong) 55%,transparent 55%),linear-gradient(135deg,transparent 70%,var(--color-hairline-strong) 70%,var(--color-hairline-strong) 80%,transparent 80%)}.modal-doc.is-full:after{display:none}.doc-view{border:1px solid var(--line);border-radius:var(--radius-xl);padding:18px 20px;min-height:200px;max-height:58vh;overflow:auto;font-size:14px;line-height:1.7;background:var(--color-paper)}.doc-view img{max-width:100%;height:auto}.doc-view table{border-collapse:collapse}.doc-view td,.doc-view th{border:1px solid var(--color-hairline-strong);padding:5px 8px}.doc-view-pre{font-family:var(--font-mono);font-size:13px;white-space:pre-wrap;word-break:break-word;margin:0}.ok-note{background:var(--ok-soft);color:var(--ok);border:1px solid #bbf7d0;border-radius:var(--radius-xl);padding:9px 12px;font-size:13px}button.wh-eye{background:none;border:none;padding:0 3px;cursor:pointer;font-size:inherit}.ai-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:16px}.ai-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:16px}.ai-card{display:flex;flex-direction:column;gap:14px}.ai-card.is-stale .ai-meter{opacity:.5}.ai-card-head{display:flex;align-items:center;gap:10px}.ai-who{flex:1;min-width:0;display:flex;flex-direction:column}.ai-who b{font-size:15px;font-weight:600;letter-spacing:-.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-who span{font-size:12px;color:var(--sub)}.ai-provider{display:inline-block;padding:1px 8px;border:1px solid var(--line);border-radius:var(--radius-2xl);font-size:12px;font-weight:500;white-space:nowrap;flex:none}.ai-provider.gpt{background:var(--color-ink-soft);border-color:var(--color-ink-soft);color:var(--color-surface-alt)}.ai-provider.claude{background:var(--color-paper);color:var(--ink)}.ai-card-meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--sub)}.ai-meter-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:13px;color:var(--color-ink-2)}.ai-meter-top b{font-size:30px;font-weight:600;line-height:1.2;letter-spacing:-.75px;color:var(--ink);font-variant-numeric:tabular-nums}.ai-meter.sm .ai-meter-top b{font-size:16px;letter-spacing:-.2px}.ai-meter-top b.warn{color:var(--warn)}.proj-bar-fill.warn{background:var(--warn)}.ai-meter-sub{margin-top:6px;font-size:12px;color:var(--sub)}.ai-empty-meter{padding:18px 0;text-align:center;font-size:13px;color:var(--sub)}.ai-card-foot{margin-top:auto;padding-top:10px;border-top:1px solid var(--line);font-size:12px;color:var(--sub)}.ai-bar-right{display:flex;align-items:center;gap:6px}.ai-bar-right .btn.sm{margin-left:0}.ai-manage-note{margin:-4px 0 14px}.ai-card.is-hidden{border-style:dashed;border-color:var(--color-hairline-strong);background:var(--color-surface-alt);box-shadow:none}.pill.ai-hidden-pill{background:var(--color-paper);color:var(--sub);border:1px dashed var(--color-hairline-strong)}.ai-card-admin{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:10px;border-top:1px solid var(--line)}.ai-switch{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.ai-switch input{width:16px;height:16px;margin:0}.btn.ghost.ai-del{color:var(--bad)}.btn.ghost.ai-del:hover:not(:disabled){background:var(--bad-soft)}.ai-of{font-size:14px;font-weight:400;letter-spacing:0;color:var(--sub)}.ai-daily td{vertical-align:middle}.ai-daily-email{font-weight:500;margin-right:6px}.ai-daily-name{font-size:12px}.ai-num{font-variant-numeric:tabular-nums;white-space:nowrap}.ai-note{margin-top:12px;font-size:12px;line-height:1.6;color:var(--sub)}.ai-note code{font-family:var(--font-mono);font-size:12px;padding:0 4px;border-radius:var(--radius-md);background:var(--color-canvas);color:var(--ink)}.ai-tabs{margin-bottom:16px}.ai-tab-lock{margin-left:6px;padding:0 6px;border-radius:var(--radius-2xl);background:var(--color-canvas);color:var(--sub);font-size:11px;font-weight:500}.ais-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.ais-bar select{height:34px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-2xl);background:var(--color-paper)}.ais-bar-right{margin-left:auto;display:flex;gap:6px}.ais-bar-right .btn.sm{margin-left:0}.ais-nav{display:flex;align-items:center;gap:6px}.ais-nav .btn.sm{margin-left:0;min-width:32px;padding:0 8px}.ais-nav b{min-width:104px;text-align:center;font-variant-numeric:tabular-nums}.ais-loading{opacity:.55;transition:opacity .15s}.ais-empty-note{margin:0 0 14px}.ais-scroll{overflow-x:auto}.ais-heat{border-collapse:separate;border-spacing:2px;width:auto;min-width:100%;font-variant-numeric:tabular-nums}.ais-heat th,.ais-heat td{padding:0;border:0;text-align:center;font-size:12px}.ais-heat thead th{color:var(--sub);font-weight:500}.ais-heat th.ais-d{min-width:28px;height:36px;cursor:pointer;border-radius:var(--radius-md);line-height:1.2}.ais-heat-m th.ais-d{min-width:54px}.ais-heat th.ais-d small{display:block;font-size:10px;color:#a3a3a3}.ais-heat th.ais-d.we{color:var(--color-ink-2);background:var(--color-surface-alt)}.ais-heat th.ais-d.future{opacity:.45}.ais-heat th.ais-d.sel{background:var(--color-ink);color:#fff}.ais-heat th.ais-d.sel small{color:#d4d4d4}.ais-heat th.ais-d:hover:not(.sel){background:var(--color-canvas)}.ais-heat td.ais-c{height:34px;border-radius:var(--radius-md);cursor:pointer;color:var(--ink)}.ais-heat tbody td.ais-c:hover{box-shadow:inset 0 0 0 2px var(--color-ink)}.ais-heat td.ais-c.sel{box-shadow:inset 0 0 0 1px var(--color-hairline-strong)}.ais-heat tfoot td{height:32px;color:var(--sub)}.ais-heat tfoot td.ais-c{cursor:default}.ais-heat .ais-acct{position:sticky;left:0;z-index:1;background:var(--color-paper);min-width:160px;max-width:220px;padding-right:10px;text-align:left}.ais-heat tfoot .ais-acct{font-weight:500;padding-left:4px}.ais-heat .ais-sum{position:sticky;right:0;z-index:1;background:var(--color-paper);min-width:70px;padding-left:10px;text-align:right;font-weight:600;white-space:nowrap}.ais-heat thead .ais-sum,.ais-heat thead .ais-acct{font-weight:500}.ais-who{display:flex;align-items:center;gap:8px;min-width:0;padding:2px 4px;border-radius:var(--radius-md)}.ais-who.link{cursor:pointer}.ais-who.link:hover{background:var(--color-canvas)}.ais-who-txt{display:flex;flex-direction:column;min-width:0;line-height:1.25}.ais-who-txt b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ais-who-txt small{font-size:11px;color:var(--sub)}.ais-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:var(--color-ink-2)}.ais-ramp{display:inline-flex;gap:2px}.ais-ramp i{width:12px;height:12px;border-radius:3px}.ais-acct-pick{display:flex;align-items:center;gap:10px;margin-bottom:16px}.ais-acct-pick label{font-size:13px;color:var(--sub)}.ais-acct-pick select{min-width:320px;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-2xl);background:var(--color-paper)}.aic-chart{position:relative;width:100%}.aic-chart svg{display:block;overflow:visible}.aic-chart rect:focus{outline:none}.aic-axis{font-size:11px;fill:#8a8a8a;font-variant-numeric:tabular-nums}.aic-val{font-size:11px;font-weight:600;fill:var(--ink);font-variant-numeric:tabular-nums}.aic-tip{position:absolute;z-index:5;transform:translate(-50%,-100%);pointer-events:none;display:flex;flex-direction:column;gap:2px;min-width:120px;padding:8px 10px;background:var(--color-paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 6px 18px #0000001a;font-size:12px;color:var(--color-ink-2);white-space:nowrap}.aic-tip b{font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums}.aic-tip-row{display:flex;align-items:center;gap:6px}.aic-tip-row b{font-size:12px;min-width:38px}.aic-tip-row i,.aic-legend i{display:inline-block;width:12px;height:2px;border-radius:1px;flex:none}.aic-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:12px;color:var(--color-ink-2)}.aic-legend span{display:inline-flex;align-items:center;gap:6px}.aic-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.aic-head .muted{font-size:13px}.aic-notes{margin:-6px 0 14px}.aic-guide{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-6px 0 14px;padding:10px 14px;border-radius:var(--radius-lg);background:#fef9c3;color:var(--color-ink-2)}.aic-guide .btn.sm{margin-left:auto}.aic-error{margin-top:4px;font-size:12px;color:var(--bad)}.aic-table td{vertical-align:middle}.aic-help summary{cursor:pointer;font-weight:500}.aic-help ul{margin:12px 0 0;padding-left:18px;font-size:13px;line-height:1.7;color:var(--color-ink-2)}
