:root{--sans:system-ui, "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", Consolas, monospace;--bg:#f7f5ff;--bg-grad-1:#f3efff;--bg-grad-2:#fdf2f8;--panel:#fff;--text:#4a4458;--text-h:#2a2440;--muted:#8b8499;--border:#ece8f6;--border-soft:#f2eefb;--primary:#7c3aed;--primary-d:#6d28d9;--primary-soft:#f3efff;--normal:#10b981;--normal-soft:#ecfdf5;--normal-border:#bbf7d0;--caution:#f59e0b;--caution-soft:#fffbeb;--caution-border:#fde68a;--pink:#f472b6;--shadow-sm:0 1px 3px #503c820f;--shadow-md:0 8px 28px #5b3ca814;--radius:20px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:16px/1.55 var(--sans);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(1200px 600px at 100% -10%, var(--bg-grad-2) 0%, transparent 55%), radial-gradient(1100px 700px at -10% 0%, var(--bg-grad-1) 0%, transparent 50%), var(--bg);background-attachment:fixed}h1,h2,h3{color:var(--text-h);letter-spacing:-.4px;margin:0}p{margin:0}code{font-family:var(--mono);background:var(--primary-soft);color:var(--primary-d);border-radius:6px;padding:1px 6px;font-size:.85em}button,input{font-family:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.app{max-width:1120px;margin:0 auto;padding:24px 18px 48px}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:10px 4px 22px;display:flex}.brand{align-items:center;gap:14px;display:flex}.brand-mark{width:54px;height:54px;box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#ede9fe,#fce7f3);border-radius:16px;place-items:center;font-size:30px;line-height:1;display:grid}.brand-text h1{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:23px;font-weight:800;display:flex}.brand-sub{color:var(--primary);font-size:16px;font-weight:700}.brand-tag{color:var(--muted);margin-top:3px;font-size:13.5px}.badges{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.badge{white-space:nowrap;letter-spacing:.1px;border-radius:999px;padding:5px 11px;font-size:11px;font-weight:700}.badge-demo{color:#fff;letter-spacing:.6px;background:linear-gradient(135deg,#f472b6,#fb7185);box-shadow:0 4px 12px #f472b64d}.badge-soft{background:var(--primary-soft);color:var(--primary-d)}.layout{grid-template-columns:380px 1fr;align-items:start;gap:18px;display:grid}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:22px}.form{flex-direction:column;gap:14px;display:flex}.field-row{gap:12px;display:flex}.field{flex-direction:column;flex:1;gap:7px;display:flex}.field label{color:var(--text-h);padding-left:2px;font-size:13px;font-weight:700}.input-affix{align-items:center;display:flex;position:relative}.input-affix input{border:1.5px solid var(--border);min-height:56px;color:var(--text-h);-moz-appearance:textfield;background:#fcfbff;border-radius:14px;width:100%;padding:14px 42px 14px 16px;font-size:22px;font-weight:700;transition:border-color .15s,box-shadow .15s,background .15s}.input-affix input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input-affix input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.input-affix input:focus{border-color:var(--primary);background:#fff;outline:none;box-shadow:0 0 0 4px #7c3aed24}.affix{color:var(--muted);pointer-events:none;font-size:15px;font-weight:700;position:absolute;right:16px}.btn{cursor:pointer;border:none;border-radius:14px;min-height:52px;padding:14px 16px;font-size:15.5px;font-weight:700;transition:transform .12s,filter .15s,background .15s,box-shadow .15s}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:linear-gradient(135deg, var(--primary), #9333ea);color:#fff;box-shadow:0 8px 20px #7c3aed47}.btn-primary:hover:not(:disabled){filter:brightness(1.05)}.btn-secondary{color:#9d174d;background:linear-gradient(135deg,#fbcfe8,#fde68a)}.btn-secondary:hover{filter:brightness(1.02)}.btn-ghost{background:var(--primary-soft);color:var(--primary-d)}.btn-ghost:hover{background:#ece5ff}.error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;margin-top:12px;padding:10px 12px;font-size:13.5px}.result-card{border:1.5px solid var(--border);background:#faf9ff;border-radius:16px;margin-top:18px;padding:18px;transition:border-color .2s,background .2s}.result-card.sev-normal{border-color:var(--normal-border);background:linear-gradient(180deg, var(--normal-soft), #fff)}.result-card.sev-caution{border-color:var(--caution-border);background:linear-gradient(180deg, var(--caution-soft), #fff)}.result-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.result-when{color:var(--text-h);font-size:16px;font-weight:800}.result-chips{gap:6px;display:flex}.chip{border-radius:999px;align-items:center;gap:5px;padding:5px 11px;font-size:11.5px;font-weight:700;display:inline-flex}.chip-dot{background:currentColor;border-radius:50%;width:7px;height:7px}.chip-example{color:#6d28d9;background:#ede9fe}.chip-normal{color:#047857;background:#d1fae5}.chip-caution{color:#b45309;background:#fef3c7}.result-main{margin:16px 0 8px}.result-pct{align-items:baseline;gap:10px;display:flex}.result-pct-label{color:var(--muted);font-size:13px;font-weight:700}.result-pct-value{letter-spacing:-1.5px;color:var(--text-h);font-size:40px;font-weight:800;line-height:1}.sev-normal .result-pct-value{color:var(--normal)}.sev-caution .result-pct-value{color:var(--caution)}.result-bar{margin-top:14px}.result-bar-track{background:#ece9f5;border-radius:999px;height:10px;overflow:hidden}.result-bar-fill{border-radius:999px;height:100%;transition:width .5s cubic-bezier(.22,1,.36,1)}.fill-normal{background:linear-gradient(90deg,#34d399,#10b981)}.fill-caution{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.result-bar-meta{color:var(--muted);margin-top:7px;font-size:13px;font-weight:600}.result-interp{color:var(--text);margin-top:6px;font-size:14px;line-height:1.6}.actions{gap:10px;margin-top:16px;display:flex}.actions .btn{flex:1}.share-msg{color:var(--primary-d);background:var(--primary-soft);border-radius:12px;margin-top:10px;padding:10px 12px;font-size:13px}.chart-head h2{font-size:18px;font-weight:800}.chart-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:12.5px;display:flex}.lg{vertical-align:middle;border-top-style:solid;border-top-width:3px;border-radius:2px;width:16px;height:0;margin-left:8px;display:inline-block}.chart-legend>.lg:first-child{margin-left:0}.lg-p50{border-top-color:#7c3aed}.lg-band{border-top:3px dotted #a78bfa}.lg-dot{border:none;border-radius:50%;width:11px;height:11px;box-shadow:0 0 0 3px #10b98126}.chart-wrap{border:1px solid var(--border-soft);border-radius:14px;margin:12px 0;overflow:hidden}.growth-chart{width:100%;height:auto;display:block}.data-note{color:var(--muted);border-top:1px dashed var(--border);padding-top:12px;font-size:12px;line-height:1.65}.app-footer{text-align:center;margin-top:22px}.disclaimer{text-align:left;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow-sm);background:#fffc;border-radius:14px;align-items:center;gap:9px;max-width:760px;padding:13px 18px;font-size:13px;font-weight:500;line-height:1.55;display:inline-flex}.disclaimer-icon{background:var(--primary-soft);width:22px;height:22px;color:var(--primary);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:800;display:grid}.foot-meta{color:var(--muted);margin-top:12px;font-size:12px}@media (width<=880px){.layout{grid-template-columns:1fr}.app-header{flex-direction:column;align-items:flex-start}.badges{justify-content:flex-start}.chart-panel{order:-1}}@media (width<=520px){.app{padding:18px 14px 36px}.panel{border-radius:18px;padding:18px}.result-pct-value{font-size:36px}.actions{flex-direction:column}.disclaimer{width:100%}}@media (width<=360px){.field-row{flex-direction:column}}
