:root{--font-sans:"Pretendard Variable",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic","Segoe UI",Roboto,sans-serif;--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;--text-xs:.8125rem;--text-sm:.875rem;--text-base:.9375rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--lh-tight:1.25;--lh-normal:1.6;--bg:#f6f8fa;--surface:#fff;--surface-2:#eef1f5;--surface-3:#e6eaf0;--border:#d8dde5;--border-strong:#c3cad4;--border-interactive:#828c9e;--ink:#1a2230;--ink-muted:#586374;--ink-subtle:#6b7686;--accent:#0f766e;--accent-hover:#0b5c55;--accent-active:#094a44;--accent-soft:#e3f1ef;--accent-ink:#0a4f49;--success:#15803d;--success-ink:#0f6631;--success-soft:#e8f4ec;--danger:#be123c;--danger-soft:#fbe9ee;--warn:#985209;--warn-soft:#fbf0e0;--neutral-ink:#586374;--neutral-soft:#eef1f5;--demo-ink:#8a5a00;--demo-soft:#fbf1da;--demo-border:#e6cd8f;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:999px;--shadow-sm:0 1px 2px rgba(26,34,48,.06),0 1px 1px rgba(26,34,48,.04);--shadow-md:0 2px 8px rgba(26,34,48,.08),0 1px 3px rgba(26,34,48,.05);--shadow-lg:0 10px 28px rgba(26,34,48,.12),0 2px 6px rgba(26,34,48,.06);--ring:0 0 0 3px rgba(15,118,110,.32);--dur:.16s;--ease:cubic-bezier(.22,.61,.36,1);--z-sticky:100;--z-dropdown:200;--z-modal:400;--z-toast:600;--z-tooltip:800;--container:1120px}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--lh-normal);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01";word-break:keep-all;overflow-wrap:break-word}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}main{max-width:var(--container);padding:var(--sp-6)var(--sp-6)var(--sp-16);margin:0 auto}@media (max-width:640px){main{padding:var(--sp-4)var(--sp-4)var(--sp-12)}}section{margin-bottom:var(--sp-8)}h1{font-size:var(--text-xl);letter-spacing:-.01em;font-weight:700;line-height:var(--lh-tight);color:var(--ink);margin-bottom:var(--sp-4);text-wrap:balance}h2{font-size:var(--text-lg);letter-spacing:-.005em;font-weight:600;line-height:var(--lh-tight);color:var(--ink);margin:var(--sp-8)0 var(--sp-3);text-wrap:balance}h3{font-size:var(--text-md);margin:var(--sp-5)0 var(--sp-2);font-weight:600}p{text-wrap:pretty}p.lead{color:var(--ink-muted);font-size:var(--text-md);max-width:68ch}a{color:var(--accent);text-underline-offset:2px}a:hover{color:var(--accent-hover)}strong{font-weight:600}small{font-size:var(--text-xs)}.muted{color:var(--ink-muted)}.subtle{color:var(--ink-subtle)}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}table{border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;font-size:var(--text-sm);font-variant-numeric:tabular-nums;overflow:hidden}th,td{padding:var(--sp-2)var(--sp-3);text-align:left;border-bottom:1px solid var(--border)}th{background:var(--surface-2);color:var(--ink-muted);font-weight:600;font-size:var(--text-xs);letter-spacing:.01em;white-space:nowrap}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background var(--dur)var(--ease)}tbody tr:hover{background:var(--surface-2)}td{color:var(--ink);vertical-align:middle}label{color:var(--ink)}.field{gap:var(--sp-1);font-size:var(--text-sm);color:var(--ink-muted);flex-direction:column;font-weight:500;display:flex}form.row,.row{gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;align-items:end;display:flex}input:not([type=checkbox]):not([type=radio]),select,textarea{font:inherit;font-size:var(--text-sm);color:var(--ink);padding:var(--sp-2)var(--sp-3);background:var(--surface);border:1px solid var(--border-interactive);border-radius:var(--radius-sm);min-height:40px;transition:border-color var(--dur)var(--ease),box-shadow var(--dur)var(--ease)}textarea{resize:vertical;min-height:72px;line-height:1.5}input::placeholder,textarea::placeholder{color:var(--ink-subtle)}input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:var(--ink-subtle)}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}input:not([type=checkbox]):not([type=radio]):focus-visible{border-color:var(--accent);box-shadow:var(--ring);outline:none}select:focus-visible{border-color:var(--accent);box-shadow:var(--ring);outline:none}textarea:focus-visible{border-color:var(--accent);box-shadow:var(--ring);outline:none}input[type=date],input[type=time],input[type=number]{font-variant-numeric:tabular-nums}select{cursor:pointer}input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;vertical-align:-3px;flex-shrink:0;margin:0}input[type=checkbox]:focus-visible{box-shadow:var(--ring);outline:none}input[type=radio]:focus-visible{box-shadow:var(--ring);outline:none}.check-group{gap:var(--sp-2);flex-wrap:wrap;display:flex}.check{align-items:center;gap:var(--sp-2);padding:7px var(--sp-3);font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:border-color var(--dur)var(--ease),background var(--dur)var(--ease),color var(--dur)var(--ease);line-height:1;display:inline-flex}.check:hover{border-color:var(--border-interactive);background:var(--surface-2)}.check:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-weight:500}button{font:inherit;font-size:var(--text-sm);justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-3)var(--sp-4);background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;min-height:40px;transition:background var(--dur)var(--ease),box-shadow var(--dur)var(--ease),transform var(--dur)var(--ease),border-color var(--dur)var(--ease);border:1px solid transparent;font-weight:600;line-height:1;display:inline-flex}button:hover{background:var(--accent-hover)}button:active{background:var(--accent-active);transform:translateY(1px)}button:focus-visible{box-shadow:var(--ring);outline:none}button:disabled{background:var(--surface-3);color:var(--ink-subtle);cursor:not-allowed;transform:none}button.secondary{background:var(--surface);color:var(--ink);border-color:var(--border-interactive)}button.secondary:hover{background:var(--surface-2);border-color:var(--ink-subtle)}button.secondary:active{background:var(--surface-3)}button.secondary:disabled{background:var(--surface-2);color:var(--ink-subtle);border-color:var(--border)}button.ghost{color:var(--accent);background:0 0;border-color:transparent}button.ghost:hover{background:var(--accent-soft)}button.sm{min-height:32px;padding:var(--sp-1)var(--sp-3);font-size:var(--text-xs)}button.danger{background:var(--danger)}button.danger:hover{filter:brightness(.92)}nav.tabs{gap:var(--sp-1);margin-bottom:var(--sp-6);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}nav.tabs a{padding:var(--sp-3)var(--sp-4);color:var(--ink-muted);font-size:var(--text-sm);transition:color var(--dur)var(--ease),border-color var(--dur)var(--ease),background var(--dur)var(--ease);border-radius:var(--radius-sm)var(--radius-sm)0 0;border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:500;text-decoration:none}nav.tabs a:hover{color:var(--ink);background:var(--surface-2)}nav.tabs a.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}nav.tabs a:focus-visible{box-shadow:var(--ring);border-radius:var(--radius-sm);outline:none}.notice{align-items:flex-start;gap:var(--sp-2);background:var(--accent-soft);color:var(--accent-ink);padding:var(--sp-3)var(--sp-4);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--sp-4);border:1px solid transparent;display:flex}.notice.demo{background:var(--demo-soft);color:var(--demo-ink);border-color:var(--demo-border)}.notice.warn{background:var(--warn-soft);color:var(--warn)}.notice.danger{background:var(--danger-soft);color:var(--danger)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-5);box-shadow:var(--shadow-sm)}.card-mono{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-5);white-space:pre-wrap;max-width:460px;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink);box-shadow:var(--shadow-sm);line-height:1.7;overflow-x:auto}.badge{padding:3px var(--sp-2);font-size:var(--text-xs);border-radius:var(--radius-full);background:var(--neutral-soft);color:var(--neutral-ink);white-space:nowrap;align-items:center;gap:6px;font-weight:600;line-height:1.4;display:inline-flex}.badge:before{content:"";opacity:.8;background:currentColor;border-radius:50%;width:6px;height:6px}.badge.plain:before{display:none}.badge.demo{background:var(--demo-soft);color:var(--demo-ink)}.badge.ops{background:var(--accent-soft);color:var(--accent-ink)}.badge.success{background:var(--success-soft);color:var(--success-ink)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.neutral{background:var(--surface-2);color:var(--ink-muted)}.appbar{align-items:center;gap:var(--sp-3);padding:var(--sp-2)0 var(--sp-4);flex-wrap:wrap;display:flex}.wordmark{align-items:center;gap:var(--sp-2);font-weight:700;font-size:var(--text-md);letter-spacing:-.02em;color:var(--ink);text-decoration:none;display:inline-flex}.wordmark:hover{color:var(--ink)}.wordmark .mark{background:var(--accent);border-radius:3px;width:10px;height:10px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}.appbar .spacer{flex:auto}.appbar .exit{font-size:var(--text-xs);color:var(--ink-muted);text-decoration:none}.appbar .exit:hover{color:var(--accent)}.appbar form.exit-logout{margin:0;display:inline-flex}.appbar button.exit{cursor:pointer;background:0 0;border:none;min-height:auto;padding:0;font-weight:500;line-height:1}.appbar button.exit:hover{color:var(--accent);background:0 0}.appbar button.exit:disabled{color:var(--ink-subtle);cursor:default;background:0 0}.page-head{align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;display:flex}.page-head h1{margin-bottom:0}.chat-frame{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--sp-4);background:var(--surface);overflow:hidden}.chat-head{align-items:center;gap:var(--sp-3);padding:var(--sp-3)var(--sp-4);border-bottom:1px solid var(--border);display:flex}.chat-head .avatar{background:var(--accent);color:#fff;width:34px;height:34px;font-weight:700;font-size:var(--text-sm);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.chat-head .who{font-weight:600;font-size:var(--text-sm);color:var(--ink)}.chat-head .sub{font-size:var(--text-xs);color:var(--ink-subtle)}.chat-thread{gap:var(--sp-3);padding:var(--sp-4);background:var(--surface-2);flex-direction:column;min-height:340px;max-height:62vh;display:flex;overflow-y:auto}.chat-row{flex-direction:column;max-width:82%;display:flex}.chat-row.agent{align-self:flex-start;align-items:flex-start}.chat-row.me{align-self:flex-end;align-items:flex-end}.bubble{padding:var(--sp-2)var(--sp-3);font-size:var(--text-sm);white-space:pre-wrap;word-break:break-word;line-height:1.55}.bubble.agent{background:var(--surface);color:var(--ink);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:4px 14px 14px}.bubble.me{color:#1c1c1c;background:#fee500;border-radius:14px 4px 14px 14px}.chat-meta{margin-top:var(--sp-1)}.chat-meta .chip{border-radius:var(--radius-full);font-size:var(--text-xs);background:var(--accent-soft);color:var(--accent-ink);align-items:center;gap:5px;padding:2px 8px;font-weight:600;display:inline-flex}.chat-meta .chip.plain{background:var(--surface-3);color:var(--ink-muted)}.chat-meta .chip.err{background:var(--danger-soft);color:var(--danger)}.typing{padding:10px var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:4px 14px 14px;align-self:flex-start;gap:4px;display:inline-flex}.typing span{background:var(--ink-subtle);border-radius:50%;width:6px;height:6px;animation:1.2s infinite chat-blink}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes chat-blink{0%,60%,to{opacity:.3}30%{opacity:1}}.preset-row{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.preset-row .lbl{width:100%;font-size:var(--text-xs);color:var(--ink-subtle);margin-bottom:2px}.upload-zone{align-items:center;gap:var(--sp-2);padding:var(--sp-10)var(--sp-6);text-align:center;border:1.5px dashed var(--border-interactive);border-radius:var(--radius-lg);background:var(--surface-2);color:var(--ink-muted);transition:border-color var(--dur)var(--ease),background var(--dur)var(--ease);flex-direction:column;display:flex}.upload-zone.drag{border-color:var(--accent);background:var(--accent-soft)}.upload-zone .hint{font-size:var(--text-sm)}.summary-stats{gap:var(--sp-3);margin:var(--sp-4)0;flex-wrap:wrap;display:flex}.stat{padding:var(--sp-3)var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex:130px}.stat .k{font-size:var(--text-xs);color:var(--ink-subtle)}.stat .v{font-size:var(--text-xl);color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700}.stat.new .v{color:var(--accent)}.stat.upd .v{color:var(--warn)}.stat.unknown .v{color:var(--danger)}.token-list{gap:var(--sp-2);flex-wrap:wrap;display:flex}.token-list .t{font-size:var(--text-xs);padding:3px var(--sp-2);border-radius:var(--radius-full);background:var(--danger-soft);color:var(--danger);font-variant-numeric:tabular-nums}.auth-wrap{padding:var(--sp-12)0;justify-content:center;display:flex}.auth-card{width:100%;max-width:400px}.auth-card h1{margin-bottom:var(--sp-2)}.otp-input{text-align:center;font-family:var(--font-mono);font-size:var(--text-lg);letter-spacing:.4em;text-indent:.4em;font-variant-numeric:tabular-nums}.auth-resend{gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.period-toggle{gap:var(--sp-1);margin-bottom:var(--sp-3);display:inline-flex}.week-nav{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.week-nav strong{font-variant-numeric:tabular-nums;color:var(--ink);padding:0 var(--sp-1)}.card-label{font-size:var(--text-xs);color:var(--ink-subtle);margin-bottom:var(--sp-2);font-weight:600}.copy-row{align-items:center;gap:var(--sp-3);margin-top:var(--sp-4);flex-wrap:wrap;display:flex}.copy-row .hint{font-size:var(--text-xs);color:var(--ink-muted)}.summary-metrics{gap:var(--sp-3);flex-direction:column;max-width:460px;display:flex}.summary-metrics .metric-row{justify-content:space-between;align-items:baseline;gap:var(--sp-4);flex-wrap:wrap;display:flex}.summary-metrics .metric-key{font-size:var(--text-sm);color:var(--ink-muted);font-weight:600}.summary-metrics .metric-val{font-size:var(--text-sm);color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}.summary-empty{max-width:460px;color:var(--ink-muted);font-size:var(--text-sm)}.summary-note{font-size:var(--text-xs);color:var(--ink-muted)}.landing-head{padding:var(--sp-4)0;justify-content:space-between;align-items:center;display:flex}.hero{padding:var(--sp-10)0 var(--sp-10)}.hero h1{font-size:var(--text-3xl);letter-spacing:-.03em;margin-bottom:var(--sp-3);max-width:20ch}.hero .tag{color:var(--ink-muted);font-size:var(--text-lg);margin-bottom:var(--sp-3)}.hero .ctx{color:var(--ink-subtle);font-size:var(--text-sm);max-width:60ch;line-height:1.7}.hero-cta{gap:var(--sp-3);margin-top:var(--sp-6);flex-wrap:wrap;display:flex}.hero-cta button{min-height:46px;padding:0 var(--sp-5);font-size:var(--text-sm)}.feature-list{gap:var(--sp-5)var(--sp-8);border-top:1px solid var(--border);padding-top:var(--sp-8);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.feature-list .f .n{color:var(--ink);margin-bottom:var(--sp-1);font-weight:600;display:block}.feature-list .f .d{font-size:var(--text-sm);color:var(--ink-muted);line-height:1.6}.staff-add{gap:var(--sp-2);margin:var(--sp-3)0 var(--sp-4);flex-wrap:wrap;align-items:center;display:flex}.staff-add input[type=email]{flex:240px}.table-wrap{overflow-x:auto}.staff-table td,.staff-table th{white-space:nowrap}.staff-table tr.is-inactive td{color:var(--ink-subtle)}.staff-muted{color:var(--ink-muted)}.staff-you{margin-left:var(--sp-2);font-size:var(--text-xs);color:var(--accent-ink);background:var(--accent-soft);border-radius:var(--radius-sm);padding:1px 6px;font-weight:600}.staff-badge{font-size:var(--text-xs);border-radius:999px;padding:2px 8px;font-weight:600;display:inline-block}.staff-badge.on{color:var(--accent-ink);background:var(--accent-soft)}.staff-badge.off{color:var(--ink-muted);background:var(--surface-3)}.staff-actions{gap:var(--sp-2);justify-content:flex-end;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}
