:root{--color-blue-50:#eaf2fe;--color-blue-100:#d3e1fe;--color-blue-200:#a8c1fe;--color-blue-300:#7894ff;--color-blue-400:#4876ee;--color-blue-500:#06f;--color-blue-600:#005eeb;--color-blue-700:#0049b8;--color-blue-800:#003285;--color-blue-900:#001f59;--color-violet-500:#6541f2;--color-violet-400:#9747ff;--color-violet-50:#f0ecfe;--color-cyan-500:#0098b2;--color-red-500:#ff4242;--color-orange-500:#ff5e00;--color-green-500:#00bf40;--color-yellow-500:#ffb800;--color-neutral-0:#fff;--color-neutral-50:#f7f7f8;--color-neutral-100:#f4f4f5;--color-neutral-200:#dbdcdf;--color-neutral-300:#c2c4c8;--color-neutral-400:#aeb0b6;--color-neutral-500:#989ba2;--color-neutral-600:#70737c;--color-neutral-700:#46474b;--color-neutral-800:#2e2f33;--color-neutral-900:#1b1c1e;--color-neutral-950:#171719;--color-neutral-1000:#000;--color-brand-cool-50:#f1f5f8;--primary-normal:#06f;--primary-strong:#005eeb;--primary-heavy:#0049b8;--inverse-primary:#3385ff;--label-normal:#171719;--label-strong:#000;--label-neutral:#2e2f33e0;--label-alternative:#2e2f339c;--label-assistive:#37383c47;--label-disable:#37383c29;--label-inverse:#fff;--background-normal:#fff;--background-alternative:#f7f7f8;--background-elevated:#fff;--background-inverse:#171719;--line-normal:#70737c38;--line-neutral:#70737c29;--line-alternative:#70737c14;--line-strong:#70737c;--interaction-inactive:#70737c14;--interaction-disable:#70737c0d;--status-positive:#00bf40;--status-cautionary:#ffb800;--status-destructive:#ff4242;--accent-redOrange:#ff5e00;--accent-violet:#6541f2;--accent-cyan:#0098b2;--space-2:2px;--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-20:20px;--space-24:24px;--space-32:32px;--space-40:40px;--space-48:48px;--space-64:64px;--space-96:96px;--space-128:128px;--radius-2:2px;--radius-4:4px;--radius-6:6px;--radius-8:8px;--radius-12:12px;--radius-16:16px;--radius-20:20px;--radius-24:24px;--radius-32:32px;--radius-pill:2500px;--radius-circle:50%;--shadow-emphasize:0 1px 4px #00000014, 0 4px 8px #0000000a;--shadow-modal:0 1px 4px #00000014, 0 8px 24px #1717171a;--shadow-floating:0 1px 4px #17171712, 0 4px 16px #1717170f;--shadow-strong:0 4px 24px #1717171f;--font-sans-kr:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", system-ui, sans-serif;--font-display:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-mono:"SF Mono", ui-monospace, "JetBrains Mono", Menlo, Consolas, monospace;--display-1-font:700 64px/1.2 var(--font-sans-kr);--display-1-track:-.027em;--display-2-font:700 56px/1.2 var(--font-sans-kr);--display-2-track:-.027em;--title-1-font:700 36px/1.334 var(--font-sans-kr);--title-1-track:-.027em;--title-2-font:700 28px/1.358 var(--font-sans-kr);--title-2-track:-.024em;--title-3-font:700 24px/1.4 var(--font-sans-kr);--title-3-track:-.022em;--heading-1-font:700 22px/1.4 var(--font-sans-kr);--heading-1-track:-.018em;--heading-2-font:700 20px/1.4 var(--font-sans-kr);--heading-2-track:-.015em;--body-1-strong-font:600 17px/1.5 var(--font-sans-kr);--body-1-strong-track:.001em;--body-1-font:500 17px/1.5 var(--font-sans-kr);--body-1-track:.001em;--body-2-strong-font:600 16px/1.5 var(--font-sans-kr);--body-2-strong-track:.006em;--body-2-font:500 16px/1.5 var(--font-sans-kr);--body-2-track:.006em;--label-1-strong-font:600 15px/1.467 var(--font-sans-kr);--label-1-strong-track:.008em;--label-1-font:500 15px/1.467 var(--font-sans-kr);--label-1-track:.008em;--label-2-strong-font:600 14px/1.428 var(--font-sans-kr);--label-2-strong-track:.014em;--label-2-font:500 14px/1.428 var(--font-sans-kr);--label-2-track:.014em;--caption-1-strong-font:600 13px/1.385 var(--font-sans-kr);--caption-1-strong-track:.018em;--caption-1-font:500 13px/1.385 var(--font-sans-kr);--caption-1-track:.018em;--caption-2-strong-font:600 12px/1.333 var(--font-sans-kr);--caption-2-strong-track:.02em;--caption-2-font:500 12px/1.333 var(--font-sans-kr);--caption-2-track:.02em;--code-font:500 14px/1.5 var(--font-mono)}[data-theme=dark],.theme-dark{--label-normal:#fff;--label-strong:#fff;--label-neutral:#ffffffe0;--label-alternative:#ffffff9c;--label-assistive:#ffffff47;--label-disable:#ffffff29;--label-inverse:#171719;--background-normal:#14191e;--background-alternative:#1b1c1e;--background-elevated:#2e2f33;--background-inverse:#fff;--line-normal:#ffffff29;--line-neutral:#ffffff1a;--line-alternative:#ffffff0f;--primary-normal:#3385ff;--primary-strong:#6da3ff;--inverse-primary:#06f}*{box-sizing:border-box}html,body{height:100%}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans-kr);font:var(--body-2-font);letter-spacing:var(--body-2-track);color:var(--label-normal);background:var(--background-alternative);margin:0}body:has(.app){overflow:hidden}button{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-family:inherit}input,textarea{color:inherit;background:0 0;border:none;outline:none;font-family:inherit}h1{font:var(--title-1-font);letter-spacing:var(--title-1-track);margin:0}h2{font:var(--title-2-font);letter-spacing:var(--title-2-track);margin:0}h3{font:var(--title-3-font);letter-spacing:var(--title-3-track);margin:0}h4{font:var(--heading-1-font);letter-spacing:var(--heading-1-track);margin:0}h5{font:var(--heading-2-font);letter-spacing:var(--heading-2-track);margin:0}p{font:var(--body-2-font);letter-spacing:var(--body-2-track);margin:0}small{font:var(--caption-1-font);letter-spacing:var(--caption-1-track);color:var(--label-alternative)}code,pre{font:var(--code-font)}.app{grid-template-columns:var(--sidebar-w,232px) 1fr;height:100vh;transition:grid-template-columns .26s cubic-bezier(.32,.72,0,1);display:grid}.app.collapsed{--sidebar-w:68px}.app.mobile{grid-template-columns:1fr}.sidebar{background:var(--background-normal);border-right:1px solid var(--line-normal);flex-direction:column;display:flex;position:relative;overflow:hidden}.sidebar-head{align-items:center;gap:10px;height:60px;padding:18px 16px 14px;display:flex}.sidebar-logo{background:var(--label-normal);width:32px;height:32px;color:var(--label-inverse);font:700 15px/1 var(--font-sans-kr);letter-spacing:-.02em;border-radius:10px;flex-shrink:0;place-items:center;display:grid}.sidebar-name{flex-direction:column;gap:2px;min-width:0;display:flex}.sidebar-name b{font:var(--label-1-strong-font);letter-spacing:var(--label-1-strong-track);white-space:nowrap}.sidebar-name span{font:var(--caption-2-font);color:var(--label-alternative);white-space:nowrap}.sidebar-collapse{width:28px;height:28px;color:var(--label-alternative);border-radius:8px;flex-shrink:0;place-items:center;margin-left:auto;transition:background .15s;display:grid}.sidebar-collapse:hover{background:var(--interaction-inactive);color:var(--label-normal)}.sidebar-section{font:var(--caption-2-strong-font);letter-spacing:.08em;text-transform:uppercase;color:var(--label-assistive);white-space:nowrap;padding:14px 20px 8px}.app.collapsed .sidebar-section{opacity:0;height:12px;padding-top:4px}.sidebar-nav{flex-direction:column;gap:2px;padding:6px 12px;display:flex}.nav-item{color:var(--label-neutral);font:var(--label-1-font);letter-spacing:var(--label-1-track);text-align:left;white-space:nowrap;border-radius:8px;align-items:center;gap:12px;width:100%;padding:9px 10px;transition:background .15s,color .15s;display:flex;position:relative}.nav-item:hover{background:var(--interaction-inactive);color:var(--label-normal)}.nav-item.active{background:var(--label-normal);color:var(--label-inverse)}.nav-item.active:hover{background:var(--label-normal)}.nav-item .icon-slot{flex-shrink:0;place-items:center;width:20px;height:20px;display:grid}.nav-item .label{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.app.collapsed .nav-item{justify-content:center;padding:9px}.app.collapsed .nav-item .label,.app.collapsed .nav-item .badge{display:none}.badge{font:var(--caption-2-strong-font);letter-spacing:var(--caption-2-strong-track);background:var(--status-destructive);color:#fff;border-radius:var(--radius-pill);text-align:center;min-width:18px;padding:1px 7px;line-height:1.4}.nav-item.active .badge{color:var(--label-normal);background:#fff}.sidebar-foot{border-top:1px solid var(--line-alternative);margin-top:auto;padding:12px}.sidebar-profile{border-radius:10px;align-items:center;gap:10px;width:100%;padding:8px 10px;transition:background .15s;display:flex}.sidebar-profile:hover{background:var(--interaction-inactive)}.avatar{color:#fff;width:30px;height:30px;font:600 12px/1 var(--font-sans-kr);background:linear-gradient(135deg,#46474b,#171719);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.sidebar-profile .name{font:var(--label-2-strong-font);letter-spacing:var(--label-2-strong-track);text-align:left}.sidebar-profile .sub{font:var(--caption-2-font);color:var(--label-alternative);text-align:left}.app.collapsed .sidebar-profile-text{display:none}.main{flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.topbar{border-bottom:1px solid var(--line-alternative);background:var(--background-normal);flex-shrink:0;align-items:center;gap:16px;height:60px;padding:0 28px;display:flex}.topbar h1{font:var(--title-3-font);letter-spacing:var(--title-3-track);margin:0}.topbar-search{background:var(--background-alternative);width:320px;max-width:40vw;color:var(--label-alternative);border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;margin-left:auto;padding:7px 12px;transition:border-color .15s,background .15s;display:flex}.topbar-search:focus-within{background:var(--background-normal);border-color:var(--line-normal);color:var(--label-normal)}.topbar-search input{font:var(--label-2-font);letter-spacing:var(--label-2-track);color:var(--label-normal);flex:1}.topbar-search input::placeholder{color:var(--label-assistive)}.topbar-search .kbd{font:500 11px/1 var(--font-mono);background:var(--background-normal);border:1px solid var(--line-normal);color:var(--label-alternative);border-radius:4px;padding:3px 6px}.topbar-btn{width:36px;height:36px;color:var(--label-alternative);border-radius:8px;place-items:center;transition:background .15s,color .15s;display:grid;position:relative}.topbar-btn:hover{background:var(--interaction-inactive);color:var(--label-normal)}.topbar-btn .dot{background:var(--status-destructive);border:2px solid var(--background-normal);border-radius:50%;width:7px;height:7px;position:absolute;top:8px;right:8px}.content{flex:1;padding:28px;overflow:hidden auto}.content::-webkit-scrollbar{width:12px}.content::-webkit-scrollbar-thumb{background:#0000001f padding-box content-box;border:3px solid #0000;border-radius:8px}.content::-webkit-scrollbar-thumb:hover{background:#00000038 padding-box content-box;border:3px solid #0000}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-head h2{font:var(--title-2-font);letter-spacing:var(--title-2-track)}.page-head .sub{font:var(--body-2-font);color:var(--label-alternative);margin-top:4px}.card{background:var(--background-normal);border:1px solid var(--line-normal);border-radius:var(--radius-16);padding:24px;transition:box-shadow .2s,transform .2s,border-color .2s}.card.hover:hover{box-shadow:var(--shadow-emphasize);border-color:var(--line-normal);transform:translateY(-2px)}.card.tight{padding:18px}.btn{height:36px;font:var(--label-2-strong-font);letter-spacing:var(--label-2-strong-track);background:var(--label-normal);color:var(--label-inverse);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:0 14px;transition:background .15s,transform .1s;display:inline-flex}.btn:hover{background:var(--label-strong)}.btn:active{transform:translateY(.5px)}.btn.ghost{color:var(--label-normal);border:1px solid var(--line-normal);background:0 0}.btn.ghost:hover{background:var(--interaction-inactive)}.btn.tonal{background:var(--interaction-inactive);color:var(--label-normal)}.btn.tonal:hover{background:#70737c29}.btn.sm{height:30px;font:var(--caption-1-strong-font);padding:0 10px}.btn.lg{height:44px;font:var(--label-1-strong-font);padding:0 20px}.btn.icon-only{width:36px;padding:0}.chip{border-radius:var(--radius-pill);font:var(--caption-1-strong-font);letter-spacing:var(--caption-1-strong-track);background:var(--interaction-inactive);color:var(--label-neutral);align-items:center;gap:4px;padding:3px 8px;display:inline-flex}.chip.primary{background:var(--color-blue-50);color:var(--primary-strong)}.chip.positive{color:#008a2e;background:#00bf401a}.chip.warn{color:#8a6300;background:#ffb80024}.chip.danger{color:#c92a2a;background:#ff42421f}.chip.violet{background:var(--color-violet-50);color:var(--color-violet-500)}.chip.solid{background:var(--label-normal);color:var(--label-inverse)}[data-theme=dark] .chip.positive{color:#4ade80;background:#00bf402e}[data-theme=dark] .chip.warn{color:#facc15;background:#ffb8002e}[data-theme=dark] .chip.danger{color:#fca5a5;background:#ff424233}[data-theme=dark] .chip.primary{color:#93c5fd;background:#06f3}[data-theme=dark] .chip.violet{color:#c4b5fd;background:#6541f240}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}@media (max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}.kpi{background:var(--background-normal);border:1px solid var(--line-normal);border-radius:var(--radius-16);flex-direction:column;gap:6px;padding:22px;transition:box-shadow .2s,transform .2s;display:flex}.kpi:hover{box-shadow:var(--shadow-emphasize);transform:translateY(-2px)}.kpi .lbl{font:var(--label-2-font);letter-spacing:var(--label-2-track);color:var(--label-alternative);align-items:center;gap:6px;display:flex}.kpi .val{font:700 32px/1.15 var(--font-sans-kr);letter-spacing:-.022em;font-variant-numeric:tabular-nums;color:var(--label-normal)}.kpi .delta{font:var(--caption-1-strong-font);letter-spacing:var(--caption-1-strong-track);color:var(--status-positive);align-items:center;gap:4px;display:flex}.kpi .delta.down{color:var(--status-destructive)}.kpi .delta .muted{color:var(--label-assistive);font-weight:500}.dash-grid{grid-template-columns:2fr 1fr;gap:16px;display:grid}@media (max-width:1100px){.dash-grid{grid-template-columns:1fr}}.section-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-head h3{font:var(--heading-2-font);letter-spacing:var(--heading-2-track)}.section-head a{font:var(--label-2-font);letter-spacing:var(--label-2-track);color:var(--label-alternative);cursor:pointer}.section-head a:hover{color:var(--label-normal)}.chart{grid-template-columns:repeat(6,1fr);align-items:end;gap:14px;height:200px;padding:8px 4px 0;display:grid}.chart-col{flex-direction:column;align-items:center;gap:8px;height:100%;display:flex}.chart-bar-wrap{flex:1;align-items:flex-end;width:100%;display:flex}.chart-bar{background:var(--label-normal);border-radius:6px;width:100%;min-height:4px;transition:height .8s cubic-bezier(.32,.72,0,1),background .15s;position:relative}.chart-bar.muted{background:var(--interaction-inactive)}.chart-col:hover .chart-bar.muted{background:var(--line-normal)}.chart-bar-label{font:var(--caption-2-font);color:var(--label-alternative)}.chart-bar-val{font:var(--caption-2-strong-font);white-space:nowrap;color:var(--label-normal);opacity:0;transition:opacity .15s;position:absolute;top:-22px;left:50%;transform:translate(-50%)}.chart-col:hover .chart-bar-val{opacity:1}.list{flex-direction:column;display:flex}.list-row{border-bottom:1px solid var(--line-alternative);cursor:default;align-items:center;gap:12px;padding:12px 4px;transition:background .15s;display:flex}.list-row:last-child{border-bottom:none}.list-row:hover{background:var(--interaction-disable)}.list-row .pill{background:var(--label-normal);border-radius:3px;flex-shrink:0;width:6px;height:36px}.list-row .info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.list-row .info .t{font:var(--label-2-strong-font);letter-spacing:var(--label-2-strong-track);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.list-row .info .m{font:var(--caption-1-font);color:var(--label-alternative);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.list-row .amt{font:600 15px/1 var(--font-sans-kr);font-variant-numeric:tabular-nums}.list-row .time{font:var(--caption-2-font);color:var(--label-alternative);white-space:nowrap}.kanban{grid-template-columns:repeat(5,minmax(260px,1fr));gap:14px;height:100%;min-height:600px;display:grid}@media (max-width:1280px){.kanban{grid-template-columns:repeat(3,minmax(260px,1fr))}}@media (max-width:880px){.kanban{grid-template-columns:1fr}}.column{background:var(--background-alternative);border:1px solid var(--line-alternative);border-radius:var(--radius-12);flex-direction:column;min-height:0;display:flex}.column-head{border-bottom:1px solid var(--line-alternative);align-items:center;gap:8px;padding:14px 14px 10px;display:flex}.column-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.column-head .t{font:var(--label-1-strong-font);letter-spacing:var(--label-1-strong-track);flex:1}.column-head .ct{font:var(--caption-1-strong-font);color:var(--label-alternative);background:var(--background-normal);border:1px solid var(--line-normal);border-radius:var(--radius-pill);padding:1px 8px}.column-body{flex-direction:column;flex:1;gap:8px;padding:10px;display:flex;overflow-y:auto}.kanban-card{background:var(--background-normal);border:1px solid var(--line-normal);cursor:grab;border-radius:10px;flex-direction:column;gap:8px;padding:14px;transition:box-shadow .2s,transform .2s,border-color .2s;display:flex}.kanban-card:hover{box-shadow:var(--shadow-emphasize);border-color:var(--line-strong);transform:translateY(-2px)}.kanban-card .h{justify-content:space-between;align-items:center;gap:8px;display:flex}.kanban-card .client{font:var(--caption-1-strong-font);color:var(--label-alternative);letter-spacing:var(--caption-1-strong-track)}.kanban-card .subj{font:var(--label-2-strong-font);letter-spacing:var(--label-2-strong-track);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.kanban-card .prev{font:var(--caption-1-font);color:var(--label-alternative);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.5;display:-webkit-box;overflow:hidden}.kanban-card .foot{justify-content:space-between;align-items:center;margin-top:2px;display:flex}.kanban-card .amt{font:600 13px/1 var(--font-sans-kr);font-variant-numeric:tabular-nums}.kanban-card .time{font:var(--caption-2-font);color:var(--label-assistive)}.table-wrap{background:var(--background-normal);border:1px solid var(--line-normal);border-radius:var(--radius-12);overflow:hidden}.table-head,.table-row{align-items:center;padding:0 20px;display:grid}.table-head{background:var(--background-alternative);border-bottom:1px solid var(--line-normal);height:44px;font:var(--caption-1-strong-font);letter-spacing:var(--caption-1-strong-track);color:var(--label-alternative);text-transform:uppercase}.table-row{border-bottom:1px solid var(--line-alternative);height:56px;font:var(--label-2-font);letter-spacing:var(--label-2-track);transition:background .15s}.table-row:last-child{border-bottom:none}.table-row:hover{background:var(--interaction-disable)}.table-row .mono{font-variant-numeric:tabular-nums}.client-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.client-card{background:var(--background-normal);border:1px solid var(--line-normal);border-radius:var(--radius-12);cursor:pointer;flex-direction:column;gap:12px;padding:18px;transition:box-shadow .2s,transform .2s,border-color .2s;display:flex}.client-card:hover{box-shadow:var(--shadow-emphasize);border-color:var(--line-strong);transform:translateY(-2px)}.client-card .head{align-items:center;gap:12px;display:flex}.client-card .logo{background:var(--background-alternative);border:1px solid var(--line-normal);width:40px;height:40px;font:700 14px/1 var(--font-sans-kr);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.client-card .name{font:var(--label-1-strong-font);letter-spacing:var(--label-1-strong-track);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.client-card .contact{font:var(--caption-1-font);color:var(--label-alternative)}.client-card .stats{justify-content:space-between;align-items:baseline;display:flex}.client-card .stats .val{font:700 22px/1.1 var(--font-sans-kr);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.client-card .stats .lbl{font:var(--caption-1-font);color:var(--label-alternative)}.cal-grid{grid-template-columns:2fr 1fr;gap:16px;display:grid}@media (max-width:1100px){.cal-grid{grid-template-columns:1fr}}.cal{background:var(--background-normal);border:1px solid var(--line-normal);border-radius:var(--radius-16);overflow:hidden}.cal-head{border-bottom:1px solid var(--line-alternative);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.cal-head .nav{align-items:center;gap:4px;display:flex}.cal-head .nav button{width:30px;height:30px;color:var(--label-alternative);border-radius:8px;place-items:center;transition:background .15s;display:grid}.cal-head .nav button:hover{background:var(--interaction-inactive);color:var(--label-normal)}.cal-week{border-bottom:1px solid var(--line-alternative);grid-template-columns:repeat(7,1fr);display:grid}.cal-week>div{font:var(--caption-1-strong-font);text-align:center;color:var(--label-alternative);padding:10px 0}.cal-days{grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(86px,1fr);display:grid}.cal-day{border-right:1px solid var(--line-alternative);border-bottom:1px solid var(--line-alternative);flex-direction:column;gap:4px;padding:8px;display:flex;position:relative;overflow:hidden}.cal-day:nth-child(7n){border-right:none}.cal-day .d{font:var(--caption-1-strong-font);color:var(--label-neutral);align-self:flex-start}.cal-day.muted .d{color:var(--label-assistive)}.cal-day.today .d{background:var(--label-normal);color:var(--label-inverse);border-radius:50%;place-items:center;width:24px;height:24px;display:grid}.cal-event{font:var(--caption-2-strong-font);letter-spacing:var(--caption-2-strong-track);background:var(--background-alternative);border-left:3px solid var(--label-normal);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:4px;padding:2px 6px;transition:transform .15s;overflow:hidden}.cal-event:hover{transform:translate(2px)}.timeline-event{border-bottom:1px solid var(--line-alternative);gap:12px;padding:12px 4px;display:flex}.timeline-event:last-child{border-bottom:none}.timeline-event .when{font:var(--caption-1-strong-font);color:var(--label-alternative);font-variant-numeric:tabular-nums;flex-shrink:0;width:50px}.timeline-event .pill{background:var(--label-normal);border-radius:2px;flex-shrink:0;width:3px}.timeline-event .body{flex:1;min-width:0}.timeline-event .t{font:var(--label-2-strong-font);letter-spacing:var(--label-2-strong-track)}.timeline-event .m{font:var(--caption-1-font);color:var(--label-alternative);margin-top:2px}.int-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.int-card{background:var(--background-normal);border:1px solid var(--line-normal);border-radius:var(--radius-12);flex-direction:column;gap:12px;padding:18px;transition:box-shadow .2s,transform .2s,border-color .2s;display:flex}.int-card.hover:hover{box-shadow:var(--shadow-emphasize);border-color:var(--line-strong);transform:translateY(-2px)}.int-card .h{align-items:center;gap:12px;display:flex}.int-card .logo{color:#fff;width:36px;height:36px;font:700 14px/1 var(--font-sans-kr);border-radius:10px;place-items:center;display:grid}.int-card .t{font:var(--label-1-strong-font);letter-spacing:var(--label-1-strong-track)}.int-card .cat{font:var(--caption-2-font);color:var(--label-alternative)}.int-card .desc{font:var(--caption-1-font);letter-spacing:var(--caption-1-track);color:var(--label-neutral);line-height:1.5}.int-card .foot{border-top:1px solid var(--line-alternative);justify-content:space-between;align-items:center;padding-top:6px;display:flex}.int-card .foot .ev{font:var(--caption-1-font);color:var(--label-alternative)}.toggle{background:var(--interaction-inactive);border-radius:12px;flex-shrink:0;width:36px;height:20px;transition:background .2s;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s cubic-bezier(.32,.72,0,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.toggle.on{background:var(--label-normal)}.toggle.on:after{transform:translate(16px)}.wf{background:var(--background-normal);border:1px solid var(--line-normal);border-radius:var(--radius-12);align-items:center;gap:18px;padding:18px 20px;transition:box-shadow .2s,transform .2s;display:flex}.wf:hover{box-shadow:var(--shadow-emphasize)}.wf .name{font:var(--label-1-strong-font);letter-spacing:var(--label-1-strong-track);flex-shrink:0;min-width:220px}.wf .steps{font:var(--caption-1-font);color:var(--label-neutral);flex:1;align-items:center;gap:8px;display:flex;overflow-x:auto}.wf .steps .step{background:var(--background-alternative);border:1px solid var(--line-alternative);white-space:nowrap;border-radius:6px;padding:5px 10px}.wf .runs{font:var(--caption-1-font);color:var(--label-alternative);white-space:nowrap}@media (max-width:880px){.wf{flex-direction:column;align-items:flex-start}}.ai-fab{z-index:90;border-radius:var(--radius-pill);background:var(--label-normal);height:52px;color:var(--label-inverse);box-shadow:var(--shadow-floating), 0 0 0 1px #ffffff0d inset;font:var(--label-1-strong-font);letter-spacing:var(--label-1-strong-track);align-items:center;gap:10px;padding:0 18px 0 20px;transition:transform .2s cubic-bezier(.32,.72,0,1),box-shadow .2s;display:flex;position:fixed;bottom:28px;right:28px}.ai-fab:hover{box-shadow:var(--shadow-strong);transform:translateY(-2px)}.ai-fab .kbd{font:500 11px/1 var(--font-mono);letter-spacing:.04em;background:#ffffff26;border-radius:4px;padding:3px 6px}.ai-backdrop{z-index:100;opacity:0;background:#00000052;place-items:center;padding:24px;animation:.2s forwards fadeIn;display:grid;position:fixed;inset:0}@keyframes fadeIn{to{opacity:1}}.ai-modal{background:var(--background-normal);border:1px solid var(--line-normal);border-radius:var(--radius-20);width:min(640px,100%);max-height:80vh;box-shadow:var(--shadow-modal);flex-direction:column;animation:.26s cubic-bezier(.32,.72,0,1) forwards pop;display:flex;overflow:hidden;transform:scale(.94)translateY(8px)}@keyframes pop{to{transform:scale(1)translateY(0)}}.ai-head{border-bottom:1px solid var(--line-alternative);align-items:center;gap:12px;padding:16px 20px;display:flex}.ai-head .badge-ai{background:var(--label-normal);width:32px;height:32px;color:var(--label-inverse);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.ai-head .t{font:var(--label-1-strong-font);letter-spacing:var(--label-1-strong-track)}.ai-head .sub{font:var(--caption-2-font);color:var(--label-alternative);margin-top:2px}.ai-head button{width:32px;height:32px;color:var(--label-alternative);border-radius:8px;place-items:center;margin-left:auto;transition:background .15s;display:grid}.ai-head button:hover{background:var(--interaction-inactive);color:var(--label-normal)}.ai-body{flex-direction:column;flex:1;gap:12px;min-height:280px;padding:16px 20px;display:flex;overflow-y:auto}.ai-msg{gap:10px;animation:.26s cubic-bezier(.32,.72,0,1) msgIn;display:flex}@keyframes msgIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.ai-msg.user{justify-content:flex-end}.ai-msg .bubble{max-width:76%;font:var(--label-2-font);letter-spacing:var(--label-2-track);border-radius:14px;padding:10px 14px;line-height:1.55}.ai-msg .bubble.ai{background:var(--background-alternative);border:1px solid var(--line-alternative);border-bottom-left-radius:4px}.ai-msg .bubble.user{background:var(--label-normal);color:var(--label-inverse);border-bottom-right-radius:4px}.ai-avatar{background:var(--label-normal);width:28px;height:28px;color:var(--label-inverse);border-radius:8px;flex-shrink:0;place-items:center;margin-top:2px;display:grid}.typing-dot{background:var(--label-neutral);border-radius:50%;width:6px;height:6px;animation:1.4s infinite both blink;display:inline-block}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2}40%{opacity:1}}.typing{background:var(--background-alternative);border:1px solid var(--line-alternative);border-radius:14px 14px 14px 4px;align-items:center;gap:4px;padding:12px 14px;display:inline-flex}.ai-suggestion{background:var(--background-alternative);border:1px solid var(--line-alternative);text-align:left;border-radius:10px;align-items:center;gap:10px;width:100%;padding:10px 12px;transition:background .15s,transform .15s,border-color .15s;display:flex}.ai-suggestion:hover{background:var(--background-normal);border-color:var(--line-normal);transform:translate(2px)}.ai-suggestion .ico{background:var(--background-normal);border:1px solid var(--line-normal);width:32px;height:32px;color:var(--label-neutral);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.ai-suggestion .info{flex:1;min-width:0}.ai-suggestion .info .t{font:var(--label-2-strong-font);letter-spacing:var(--label-2-strong-track)}.ai-suggestion .info .m{font:var(--caption-1-font);color:var(--label-alternative);margin-top:2px}.ai-input{border-top:1px solid var(--line-alternative);align-items:flex-end;gap:8px;padding:12px 14px;display:flex}.ai-input textarea{resize:none;min-height:24px;max-height:120px;font:var(--label-2-font);letter-spacing:var(--label-2-track);flex:1;padding:6px 0;line-height:1.5}.ai-input button.send{background:var(--label-normal);width:36px;height:36px;color:var(--label-inverse);border-radius:10px;flex-shrink:0;place-items:center;transition:background .15s,transform .1s;display:grid}.ai-input button.send:hover{background:var(--label-strong)}.ai-input button.send:disabled{background:var(--interaction-disable);color:var(--label-assistive);cursor:not-allowed}.app.ai-sidebar{grid-template-columns:var(--sidebar-w,232px) 1fr 360px}.app.ai-sidebar.collapsed{grid-template-columns:68px 1fr 360px}@media (max-width:1280px){.app.ai-sidebar{grid-template-columns:var(--sidebar-w,232px) 1fr}}.ai-side{background:var(--background-normal);border-left:1px solid var(--line-normal);flex-direction:column;display:flex;overflow:hidden}.cmd-backdrop{z-index:100;background:#0000004d;justify-content:center;padding-top:18vh;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.cmd-modal{background:var(--background-normal);border:1px solid var(--line-normal);border-radius:var(--radius-16);width:min(560px,92vw);height:fit-content;max-height:60vh;box-shadow:var(--shadow-modal);flex-direction:column;animation:.22s cubic-bezier(.32,.72,0,1) forwards pop;display:flex;overflow:hidden;transform:scale(.96)translateY(-8px)}.cmd-input{border-bottom:1px solid var(--line-alternative);color:var(--label-alternative);align-items:center;gap:10px;padding:14px 16px;display:flex}.cmd-input input{font:var(--body-2-font);letter-spacing:var(--body-2-track);color:var(--label-normal);flex:1}.cmd-list{flex-direction:column;gap:2px;padding:8px;display:flex;overflow-y:auto}.cmd-section-lbl{font:var(--caption-2-strong-font);letter-spacing:.08em;text-transform:uppercase;color:var(--label-assistive);padding:12px 12px 6px}.fade-in{animation:.35s cubic-bezier(.32,.72,0,1) pageIn}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.stagger>*{animation:.4s cubic-bezier(.32,.72,0,1) backwards pageIn}.stagger>:first-child{animation-delay:20ms}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.14s}.stagger>:nth-child(5){animation-delay:.18s}.stagger>:nth-child(6){animation-delay:.22s}.stagger>:nth-child(7){animation-delay:.26s}.stagger>:nth-child(8){animation-delay:.3s}.stagger>:nth-child(9){animation-delay:.34s}.stagger>:nth-child(10){animation-delay:.38s}.stagger>:nth-child(11){animation-delay:.42s}.stagger>:nth-child(12){animation-delay:.46s}@media (max-width:880px){.app{grid-template-columns:1fr!important}.sidebar{z-index:80;width:260px;box-shadow:var(--shadow-strong);transition:transform .26s cubic-bezier(.32,.72,0,1);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0)}.topbar h1{font:var(--heading-1-font);letter-spacing:var(--heading-1-track)}.topbar-search{display:none}.content{padding:18px}.page-head{flex-direction:column;align-items:flex-start}.ai-fab{bottom:18px;right:18px}.ai-fab .kbd{display:none}.kpi-grid{grid-template-columns:1fr 1fr;gap:12px}.kpi{padding:16px}.kpi .val{font-size:24px}.mobile-backdrop{z-index:70;background:#0000004d;animation:.2s fadeIn;position:fixed;inset:0}}.mobile-menu-btn{display:none}@media (max-width:880px){.mobile-menu-btn{display:grid}}.profile-menu{background:var(--background-normal);border:1px solid var(--line-normal);box-shadow:var(--shadow-modal);z-index:50;border-radius:10px;padding:4px;animation:.18s cubic-bezier(.32,.72,0,1) pop;position:absolute;bottom:64px;left:12px;right:12px}.profile-menu-item{width:100%;font:var(--label-2-strong-font);color:var(--label-neutral);text-align:left;border-radius:6px;align-items:center;gap:8px;padding:9px 12px;transition:background .12s;display:flex}.profile-menu-item:hover{background:var(--interaction-inactive);color:var(--label-normal)}.login-shell{background:radial-gradient(1200px 600px at 50% -10%, #0066ff0f, transparent 60%), var(--background-alternative);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--background-normal);border:1px solid var(--line-normal);border-radius:var(--radius-20);width:min(440px,100%);box-shadow:var(--shadow-modal);flex-direction:column;gap:18px;padding:36px 32px;display:flex}.login-head{align-items:center;gap:14px;display:flex}.login-logo{background:var(--label-normal);width:44px;height:44px;color:var(--label-inverse);font:700 20px/1 var(--font-sans-kr);letter-spacing:-.02em;border-radius:12px;place-items:center;display:grid}.login-brand{font:var(--title-3-font);letter-spacing:var(--title-3-track)}.login-org{font:var(--caption-1-font);color:var(--label-alternative);margin-top:2px}.login-title{font:var(--title-2-font);letter-spacing:var(--title-2-track);margin-top:6px}.login-sub{font:var(--body-2-font);color:var(--label-alternative);margin-top:-8px}.login-form{flex-direction:column;gap:12px;margin-top:6px;display:flex}.login-field{flex-direction:column;gap:6px;display:flex}.login-field>span{font:var(--label-2-strong-font);letter-spacing:var(--label-2-strong-track);color:var(--label-neutral)}.login-field>input{background:var(--background-alternative);border:1px solid var(--line-normal);height:44px;font:var(--label-1-font);letter-spacing:var(--label-1-track);color:var(--label-normal);border-radius:10px;padding:0 14px;transition:border-color .15s,background .15s}.login-field>input:focus{background:var(--background-normal);border-color:var(--label-normal)}.login-field>input::placeholder{color:var(--label-assistive)}.login-error{font:var(--caption-1-strong-font);color:#c92a2a;background:#ff42421a;border:1px solid #ff42423d;border-radius:8px;padding:10px 12px}.login-submit{justify-content:center;margin-top:4px}.login-submit:disabled{opacity:.5;cursor:not-allowed}.login-foot{border-top:1px solid var(--line-alternative);font:var(--caption-1-font);color:var(--label-alternative);text-align:center;margin-top:8px;padding-top:16px}.login-foot b{color:var(--label-neutral);font:var(--caption-1-strong-font)}[data-theme=dark] .login-error{color:#fca5a5;background:#ff42422e}[data-theme=dark] body{background:#0d1117}[data-theme=dark] .sidebar,[data-theme=dark] .topbar,[data-theme=dark] .card,[data-theme=dark] .kpi,[data-theme=dark] .table-wrap,[data-theme=dark] .cal,[data-theme=dark] .int-card,[data-theme=dark] .client-card,[data-theme=dark] .kanban-card,[data-theme=dark] .ai-modal,[data-theme=dark] .cmd-modal,[data-theme=dark] .wf,[data-theme=dark] .ai-side{background:#14191e}[data-theme=dark] .column,[data-theme=dark] .topbar-search,[data-theme=dark] .ai-suggestion,[data-theme=dark] .ai-msg .bubble.ai,[data-theme=dark] .typing,[data-theme=dark] .table-head,[data-theme=dark] .cal-event,[data-theme=dark] .client-card .logo,[data-theme=dark] .wf .steps .step{background:#0d1117}[data-theme=dark] .nav-item.active{color:#0d1117;background:#fff}[data-theme=dark] .nav-item.active .badge{color:#fff;background:#0d1117}[data-theme=dark] .sidebar-logo,[data-theme=dark] .ai-fab,[data-theme=dark] .btn{color:#0d1117;background:#fff}[data-theme=dark] .btn:hover{background:#e5e7eb}[data-theme=dark] .btn.ghost{color:#fff;background:0 0}[data-theme=dark] .btn.tonal{color:#fff;background:#ffffff0f}[data-theme=dark] .btn.tonal:hover{background:#ffffff1f}[data-theme=dark] .ai-msg .bubble.user,[data-theme=dark] .ai-input button.send{color:#0d1117;background:#fff}[data-theme=dark] .toggle.on{background:#fff}[data-theme=dark] .toggle.on:after{background:#0d1117}[data-theme=dark] .ai-head .badge-ai,[data-theme=dark] .ai-avatar{color:#0d1117;background:#fff}[data-theme=dark] .chart-bar{background:#fff}[data-theme=dark] .cal-day.today .d{color:#0d1117;background:#fff}[data-theme=dark] .list-row .pill{background:#fff}[data-theme=dark] .column-head .ct{background:#14191e}
