:root{--color-brand-human: #F48D6A;--color-brand-inquiry: #F6B443;--color-brand-flow: #A486C7;--color-brand-emotion: #F3A6B5;--color-brand-connection: #344A7C;--color-primary: var(--color-brand-flow);--color-secondary: var(--color-brand-emotion);--color-accent: var(--color-brand-human);--color-warning: var(--color-brand-inquiry);--color-text: var(--color-brand-connection);--color-success: #5BAA73;--color-danger: #D96B6B;--color-background: #F2EDE2;--color-background-alt: #EFE9DD;--color-surface: #FFFFFF;--color-surface-muted: #F8F4EA;--color-border: #E5DECC;--color-border-strong: #C9C0AD;--color-text-muted: #7A7368;--color-text-disabled: #B8B0A2;--color-character-ppuori-primary: var(--color-brand-flow);--color-character-ppuori-accent: var(--color-brand-emotion);--color-character-frank-primary: var(--color-brand-connection);--color-character-frank-accent: var(--color-brand-inquiry);--font-sans: Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: Pretendard, sans-serif;--font-size-caption: 12px;--font-size-small: 14px;--font-size-body: 16px;--font-size-body-lg: 18px;--font-size-body-xl: 20px;--font-size-h3: 20px;--font-size-h2: 24px;--font-size-h1: 32px;--font-size-display: 40px;--font-size-display-lg: 48px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--space-4xl: 64px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-2xl: 32px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(52, 74, 124, .05);--shadow-md: 0 4px 8px rgba(52, 74, 124, .06), 0 2px 4px rgba(52, 74, 124, .04);--shadow-lg: 0 8px 24px rgba(52, 74, 124, .08), 0 4px 8px rgba(52, 74, 124, .04);--shadow-paper: 0 2px 4px rgba(52, 74, 124, .08), 0 1px 2px rgba(52, 74, 124, .04);--shadow-paper-lg: 0 6px 12px rgba(52, 74, 124, .1), 0 2px 4px rgba(52, 74, 124, .06);--shadow-glow-primary: 0 0 24px rgba(164, 134, 199, .4);--shadow-glow-accent: 0 0 24px rgba(244, 141, 106, .5);--duration-instant: .1s;--duration-fast: .2s;--duration-normal: .3s;--duration-slow: .5s;--duration-slower: .8s;--easing-out: cubic-bezier(.16, 1, .3, 1);--easing-in-out: cubic-bezier(.65, 0, .35, 1);--easing-spring: cubic-bezier(.34, 1.56, .64, 1)}body{background:var(--color-background);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-body);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn-primary{background:var(--color-primary);color:var(--color-surface);border-radius:var(--radius-full);padding:var(--space-md) var(--space-xl);font-weight:var(--font-weight-semibold);font-size:var(--font-size-body);border:none;cursor:pointer;transition:transform var(--duration-fast) var(--easing-out),box-shadow var(--duration-fast) var(--easing-out)}.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:active{transform:translateY(0)}.card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-md)}.bubble-character{background:var(--color-character-ppuori-primary);color:var(--color-surface);border-radius:20px 20px 20px 4px;padding:var(--space-lg) 20px;font-size:var(--font-size-body-lg);line-height:var(--line-height-relaxed);max-width:85%}.bubble-user{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:20px 20px 4px;padding:var(--space-lg) 20px;font-size:var(--font-size-body-lg);margin-left:auto;max-width:85%}.mic-button{width:80px;height:80px;border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-md);border:none;cursor:pointer;transition:all var(--duration-fast) var(--easing-out)}.mic-button.is-listening{background:var(--color-accent);color:var(--color-surface);box-shadow:var(--shadow-glow-accent);animation:pulse-glow 1.5s ease-in-out infinite}.mic-button.is-processing{background:var(--color-primary);color:var(--color-surface)}.mic-button.is-disabled{opacity:.5;cursor:not-allowed}@keyframes pulse-glow{0%,to{box-shadow:0 0 #f48d6a80}50%{box-shadow:0 0 0 16px #f48d6a00}}.bloom-bar{height:16px;background:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.bloom-bar-fill{height:100%;background:var(--color-primary);border-radius:var(--radius-full);transition:width var(--duration-slow) var(--easing-out)}*{box-sizing:border-box}body{margin:0;background:var(--color-background);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-body);line-height:var(--line-height-normal)}#app{min-width:1120px}.brand-mark{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.brand-mark--row{flex-direction:row;gap:10px}.brand-mark__sym{width:40px;height:40px;flex:0 0 auto;display:flex;align-items:center;justify-content:center}.brand-mark__sym img{width:100%;height:100%;object-fit:contain}.brand-mark__word{height:22px;opacity:.95}.brand-mark--row .brand-mark__sym{width:34px;height:34px}.brand-mark--row .brand-mark__word{height:19px}.login{min-height:100vh;display:flex;align-items:center;justify-content:center}.login__card{width:380px;padding:var(--space-2xl);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.login__card .brand-mark{margin-bottom:var(--space-lg)}.login__title{margin:0 0 var(--space-xs);font-size:var(--font-size-h2);text-align:center}.login__sub{margin:0 0 var(--space-xl);color:var(--color-text-muted);font-size:var(--font-size-small);text-align:center}.login__field{margin-bottom:var(--space-md)}.login__label{display:block;margin-bottom:var(--space-xs);font-size:var(--font-size-small);color:var(--color-text-muted)}.login__input{width:100%;padding:10px var(--space-md);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--font-size-small)}.login__input:focus{outline:2px solid var(--color-primary);outline-offset:1px}.btn{padding:10px var(--space-lg);border:1px solid transparent;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-surface);font:inherit;font-weight:var(--font-weight-semibold);cursor:pointer}.btn:disabled{opacity:.5;cursor:default}.btn--ghost{background:transparent;border-color:var(--color-border-strong);color:var(--color-text-muted);font-weight:var(--font-weight-regular)}.btn--block{width:100%}.error-text{margin:var(--space-md) 0 0;color:var(--color-danger);font-size:var(--font-size-small);min-height:20px}.shell{max-width:1280px;margin:0 auto;padding:var(--space-xl)}.topbar{display:flex;align-items:center;gap:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.topbar__title{margin:0;font-size:var(--font-size-h3)}.topbar__meta{margin-left:auto;color:var(--color-text-muted);font-size:var(--font-size-caption);text-align:right}.period{display:inline-flex;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);overflow:hidden}.period__btn{padding:6px var(--space-lg);border:0;background:var(--color-surface);color:var(--color-text-muted);font:inherit;font-size:var(--font-size-small);cursor:pointer}.period__btn+.period__btn{border-left:1px solid var(--color-border)}.period__btn.is-active{background:var(--color-primary);color:var(--color-surface);font-weight:var(--font-weight-semibold)}.section{margin-top:var(--space-2xl)}.section__head{display:flex;align-items:baseline;gap:var(--space-md);margin-bottom:var(--space-md)}.section__title{margin:0;font-size:var(--font-size-body-lg);font-weight:var(--font-weight-semibold);display:flex;align-items:center;gap:var(--space-sm)}.section__mark{width:22px;height:22px;object-fit:contain;flex:0 0 auto}.section__meta{margin-left:auto;color:var(--color-text-muted);font-size:var(--font-size-small)}.section__note{margin:0 0 var(--space-md);color:var(--color-text-muted);font-size:var(--font-size-caption)}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl)}.state{padding:var(--space-3xl);text-align:center;color:var(--color-text-muted)}.card-stack,.cards{display:grid;gap:var(--space-lg)}.cards--primary{grid-template-columns:repeat(3,1fr)}.cards--secondary{grid-template-columns:repeat(6,1fr)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-xl)}.cards--secondary .card{padding:var(--space-md) var(--space-lg)}.cards--secondary .card__value{font-size:var(--font-size-h2)}.card--muted{background:var(--color-background-alt)}.card--muted .card__value{color:var(--color-text-disabled)}.card--highlight{border-color:var(--color-warning);background:var(--color-surface-muted)}.card__label{margin:0;color:var(--color-text-muted);font-size:var(--font-size-small)}.card__value{margin:var(--space-xs) 0 0;font-size:var(--font-size-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}.card__sub{margin:var(--space-xs) 0 0;color:var(--color-text-muted);font-size:var(--font-size-caption);min-height:16px}.card__delta{margin-left:var(--space-sm);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);vertical-align:middle}.card__delta--good{color:var(--color-success)}.card__delta--bad{color:var(--color-danger)}.card__delta--flat{color:var(--color-text-muted)}.demo__head{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.demo__target{padding:4px var(--space-md);border-radius:999px;background:var(--color-primary);color:var(--color-surface);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold)}.demo__total{margin-left:auto;color:var(--color-text-muted);font-size:var(--font-size-small)}.demo__row{display:grid;grid-template-columns:80px 1fr 52px 56px;align-items:center;gap:var(--space-md);padding:3px 0}.demo__label{font-size:var(--font-size-small)}.demo__bar{height:18px;background:var(--color-background-alt);border-radius:var(--radius-sm);overflow:hidden}.demo__fill{display:block;height:100%;background:var(--color-border-strong)}.demo__fill--target{background:var(--color-primary)}.demo__pct{text-align:right;font-weight:var(--font-weight-semibold)}.demo__count{text-align:right;color:var(--color-text-muted);font-size:var(--font-size-caption)}.demo__gender{margin:var(--space-lg) 0 0;padding-top:var(--space-md);border-top:1px solid var(--color-border);font-size:var(--font-size-small)}.funnel__row{display:grid;grid-template-columns:110px 1fr 70px 80px;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0}.funnel__label{font-size:var(--font-size-small)}.funnel__bar{height:22px;background:var(--color-background-alt);border-radius:var(--radius-sm);overflow:hidden}.funnel__fill{display:block;height:100%;min-width:2px;background:var(--color-primary)}.funnel__count{text-align:right;font-weight:var(--font-weight-semibold)}.funnel__rate{text-align:right;color:var(--color-text-muted);font-size:var(--font-size-small)}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-small)}.table th,.table td{padding:var(--space-sm) var(--space-md);text-align:right;border-bottom:1px solid var(--color-border)}.table th:first-child,.table td:first-child{text-align:left;color:var(--color-text-muted)}.table thead th{color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.table__strong{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold)}.table__baseline td,.table__baseline th{color:var(--color-text-disabled);font-size:var(--font-size-caption)}.chart{width:100%;height:auto;display:block}.chart__axis{stroke:var(--color-border-strong);stroke-width:1}.chart__grid{stroke:var(--color-border);stroke-width:1}.chart__tick{fill:var(--color-text-muted);font-size:11px}.chart__weekend{fill:var(--color-background-alt)}.chart__line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart__line--signup{stroke:var(--color-primary)}.chart__line--active{stroke:var(--color-accent)}.chart__dot--signup{fill:var(--color-primary)}.chart__dot--active{fill:var(--color-accent)}.chart__legend{margin:var(--space-sm) 0 0;color:var(--color-text-muted);font-size:var(--font-size-caption)}
