.ad-slot{width:100%;min-height:96px;margin:22px 0}.ad-slot-placeholder{display:grid;place-items:center;border:1px dashed #cadbd0;border-radius:8px;background:#f8fbf9;color:#7b8f82;font-size:13px;font-weight:700}.page-shell{width:min(100%,520px);min-height:100vh;margin:0 auto;padding:18px 16px 32px;background:#f6fbf7}.hero-section{display:grid;grid-template-columns:1fr 92px;gap:16px;align-items:center;margin-bottom:18px;padding:24px 20px;border:1px solid rgba(59,129,77,.14);border-radius:8px;background:linear-gradient(135deg,#fffffff7,#ecf9eff7),#fff;box-shadow:0 10px 28px #20503014}.eyebrow,.section-kicker{margin:0;color:#2b9348;font-size:12px;font-weight:800;letter-spacing:0}.hero-copy h1{margin:5px 0 0;color:#143b27;font-size:27px;line-height:1.22;letter-spacing:0;word-break:keep-all}.hero-copy p:last-child{margin:11px 0 0;color:#5f7467;font-size:14px;line-height:1.55;word-break:keep-all}.hero-icon{width:86px;height:86px;border-radius:8px;object-fit:contain;box-shadow:0 8px 18px #2050301f}.panel,.message,.empty-state,.site-footer{margin-bottom:18px}.panel{padding:18px 16px;border-radius:8px;background:#fff;box-shadow:0 8px 24px #1f3a2912}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-heading h2{margin:2px 0 0;color:#173f2a;font-size:20px;line-height:1.25;letter-spacing:0}.icon-button{display:inline-grid;width:38px;height:38px;place-items:center;border:0;border-radius:8px;background:#edf8f0;color:#1f8f3d}.buy-row{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:16px}.field{display:grid;gap:7px;color:#4d6355;font-size:13px;font-weight:800}.field input,.field select{width:100%;min-height:52px;border:1px solid #d9e6dd;border-radius:8px;outline:none;background:#f9fcfa;color:#173f2a;font-size:16px;font-weight:750;padding:0 14px}.field input:focus,.field select:focus{border-color:#2f9f49;box-shadow:0 0 0 3px #2f9f4921}.input-with-unit{position:relative}.input-with-unit input{padding-right:44px}.input-with-unit b{position:absolute;right:14px;top:50%;color:#7a8f82;transform:translateY(-50%)}.price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.compact-field input{min-height:48px}.primary-button{display:inline-flex;width:100%;min-height:54px;align-items:center;justify-content:center;gap:8px;margin-top:16px;border:0;border-radius:8px;background:#1f8f3d;color:#fff;font-size:17px;font-weight:850;box-shadow:0 9px 16px #1f8f3d30}.primary-button:active,.icon-button:active{transform:translateY(1px)}.message{padding:15px 16px;border-radius:8px;font-size:14px;line-height:1.45}.error-message{background:#fff0f0;color:#c23d3d}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px}.result-card{min-width:0;padding:14px 10px;border-radius:8px;background:#1f8f3d;color:#fff}.result-card span{display:block;margin-bottom:6px;color:#ffffffc7;font-size:12px;font-weight:750}.result-card strong{display:block;overflow-wrap:anywhere;font-size:18px;line-height:1.25}.counter{color:#7a8f82;font-size:13px;font-weight:800;white-space:nowrap}.chart-frame{overflow:hidden;border:1px solid #dce9df;border-radius:8px;background:linear-gradient(180deg,#effaf2cc,#fffffff5),#fbfefc}.chart-frame svg{display:block;width:100%;height:auto}.chart-grid-line{stroke:#dbe9df;stroke-width:1}.chart-axis-text,.chart-label{fill:#6f8175;font-size:11px;font-weight:750}.chart-label{text-anchor:middle}.chart-range-area{fill:url(#rangeGradient)}.chart-expected-line{fill:none;stroke:#258b3f;stroke-linecap:round;stroke-linejoin:round;stroke-width:4}.chart-actual-line{fill:none;stroke:#1b4a35;stroke-dasharray:4 5;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5}.chart-dot{fill:#fff;stroke:#258b3f;stroke-width:2.5}.chart-best-dot{fill:#2ea84f;stroke:#c8f2d1;stroke-width:5}.chart-actual-dot{fill:#163d2a}.chart-best-line{stroke:#2ea84f52;stroke-width:11;stroke-linecap:round}.chart-callout rect{fill:#1f8f3d}.chart-callout text{fill:#fff;font-size:10px;font-weight:850;text-anchor:middle}.chart-legend{display:flex;flex-wrap:wrap;gap:10px;padding:0 14px 14px;color:#6f8175;font-size:12px;font-weight:750}.chart-legend span{display:inline-flex;align-items:center;gap:5px}.chart-legend i{display:inline-block;width:16px;height:8px;border-radius:999px}.legend-range{background:#45b75b3d}.legend-line,.legend-actual{height:3px!important}.legend-line{background:#258b3f}.legend-actual{background:repeating-linear-gradient(90deg,#1b4a35 0,#1b4a35 4px,transparent 4px,transparent 7px)}.pattern-list,.candidate-list{display:grid;gap:10px}.pattern-row,.candidate-card{display:grid;gap:12px;align-items:center;border:1px solid #dfece3;border-radius:8px;background:#fcfffd}.pattern-row{grid-template-columns:1fr auto;padding:13px 14px}.pattern-row strong,.candidate-card strong{display:block;color:#173f2a;font-weight:850}.pattern-row span{display:block;margin-top:3px;color:#738477;font-size:13px}.pattern-row b{color:#1f8f3d;font-size:18px}.candidate-card{grid-template-columns:1fr auto;padding:14px}.candidate-card p{margin:4px 0 0;color:#738477;font-size:13px;line-height:1.35}.candidate-price{text-align:right}.candidate-price span{display:block;color:#718277;font-size:12px;white-space:nowrap}.candidate-price b{display:block;color:#228640;font-size:16px;white-space:nowrap}.empty-state{display:flex;align-items:center;gap:10px;padding:15px 16px;border-radius:8px;background:#edf8f0;color:#3f6d4b}.empty-state p{margin:0;font-size:14px;line-height:1.45}.site-footer{color:#6f8175;font-size:12px;line-height:1.5}.site-footer p{margin:7px 0 0}@media(min-width:760px){body{background:radial-gradient(circle at top left,rgba(58,174,82,.12),transparent 32rem),#eef5f0}.page-shell{margin-top:24px;margin-bottom:24px;border-radius:8px;box-shadow:0 20px 50px #1f3a2917}}@media(max-width:370px){.page-shell{padding-right:12px;padding-left:12px}.hero-section{grid-template-columns:1fr}.hero-icon{display:none}.price-grid,.summary-grid,.candidate-card{grid-template-columns:1fr}.candidate-price{text-align:left}.chart-legend{gap:7px;font-size:11px}}:root{font-family:Pretendard,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#163d2a;background:#eef5f0;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{min-width:320px;background:#eef5f0}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}#root{min-height:100vh}
