:root{--bg: #ffffff;--bg-2: #f4f7fb;--fg: #17255c;--muted: #6b7794;--accent: #17255c;--accent-2: #4ec3a5;font-family:Malgun Gothic,system-ui,-apple-system,Segoe UI,Roboto,Apple SD Gothic Neo,sans-serif;color:var(--fg);background:var(--bg)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;height:100%}.landing{position:relative;min-height:100vh;display:grid;place-items:center;overflow:hidden;background:var(--bg)}.landing__glow{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(700px 460px at 50% 40%,rgba(78,195,165,.14),transparent 70%);filter:blur(24px);opacity:0;animation:glow-in 2.4s ease-out .3s forwards}.landing__stage{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;padding:24px;text-align:center}.landing__logo{max-width:min(80vw,520px);height:auto;opacity:0;transform:scale(.86) translateY(12px);filter:drop-shadow(0 10px 30px rgba(23,37,92,0));animation:logo-in 1.5s cubic-bezier(.16,1,.3,1) .2s forwards}.landing__tagline{margin:28px 0 0;font-size:clamp(15px,2.4vw,20px);color:var(--muted);letter-spacing:.01em;opacity:0;animation:fade-up .9s ease-out 1.1s forwards}.landing__enter{margin-top:34px;padding:14px 40px;font-size:16px;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:999px;cursor:pointer;opacity:0;box-shadow:0 8px 24px #17255c40;transition:transform .15s ease,box-shadow .2s ease,background .2s ease;animation:fade-up .9s ease-out 1.5s forwards}.landing__enter:hover{transform:translateY(-2px);background:#1e2f73;box-shadow:0 12px 32px #17255c59}.landing__enter:active{transform:translateY(0)}.landing__note{margin-top:22px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#6b7794a6;opacity:0;animation:fade-up .9s ease-out 1.9s forwards}.appbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px clamp(16px,4vw,40px);background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(23,37,92,.08)}.appbar__brand{display:inline-flex;align-items:center;line-height:0}.appbar__logo{height:30px;width:auto}.appbar__nav{display:flex;align-items:center;gap:12px}.appbar__nav .btn{margin-top:0}.appbar__email{font-size:13px;color:var(--muted)}.appbar__link{font-size:14px;font-weight:600;color:var(--fg);text-decoration:none;padding:6px 10px;border-radius:8px}.appbar__link:hover{background:#17255c0f}@media(max-width:560px){.appbar__email{display:none}}.page{min-height:calc(100vh - 55px);display:grid;place-items:center;padding:24px}.page__inner{max-width:640px}.page__lead{color:var(--muted);line-height:1.7}.page__todo{color:var(--fg);line-height:1.9;padding-left:1.1em}.page__back{display:inline-block;margin-top:24px;color:var(--accent);text-decoration:none}.page__back:hover{text-decoration:underline}.page--wide .page__inner{max-width:960px}.card{background:var(--bg-2);border:1px solid rgba(23,37,92,.08);border-radius:14px;padding:20px 24px;margin:18px 0}.form{display:flex;flex-direction:column;gap:8px}.form__label{font-size:14px;font-weight:600;margin-top:10px}.form__input{padding:11px 14px;font-size:15px;border:1px solid rgba(23,37,92,.2);border-radius:10px;background:#fff;color:var(--fg)}.form__input:focus{outline:2px solid var(--accent-2);outline-offset:1px;border-color:var(--accent-2)}.form__hint{font-size:13px;color:var(--muted)}.btn{display:inline-block;padding:12px 26px;font-size:15px;font-weight:600;color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:999px;cursor:pointer;text-decoration:none;text-align:center;transition:background .15s ease;margin-top:12px;align-self:flex-start}.btn:hover{background:#1e2f73}.btn:disabled{opacity:.55;cursor:default}.btn--ghost{background:transparent;color:var(--accent)}.btn--ghost:hover{background:#17255c0f}.btn--sm{padding:6px 14px;font-size:13px;margin-top:0}.btn-row{display:flex;gap:10px;margin:14px 0;flex-wrap:wrap}.btn-row--tight{gap:6px;margin:0}.notice{border-radius:10px;padding:12px 16px;font-size:14px;line-height:1.6;margin:10px 0}.notice--ok{background:#4ec3a51f;border:1px solid rgba(78,195,165,.4)}.notice--info{background:#17255c0d;border:1px solid rgba(23,37,92,.15)}.notice--err{background:#dc4c4c14;border:1px solid rgba(220,76,76,.35);color:#a03030}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12.5px;font-weight:600;background:#17255c14;color:var(--fg)}.badge--pending{background:#f0ad2826;color:#8a6210}.badge--ok{background:#4ec3a52e;color:#16705a}.badge--err{background:#dc4c4c1f;color:#a03030}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{text-align:left;padding:9px 10px;border-bottom:1px solid rgba(23,37,92,.1)}.table th{font-size:13px;color:var(--muted);font-weight:600}.deal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.deal-card{margin:0;display:flex;flex-direction:column;gap:8px}.deal-card--link{text-decoration:none;color:inherit;transition:transform .12s ease,box-shadow .15s ease}.deal-card--link:hover{transform:translateY(-2px);box-shadow:0 8px 20px #17255c1a}.deal-card__badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.deal-card__title{margin:4px 0 0;font-size:18px}.deal-card__meta{margin:0;font-size:13px;color:var(--muted)}.deal-card__summary{margin:0;font-size:14px;line-height:1.6;white-space:pre-line}.review-item{border-top:1px solid rgba(23,37,92,.1);padding:14px 0}.review-item:first-of-type{border-top:none}.review-item__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.scorecard{margin-top:12px;padding:14px 16px;background:#fff;border:1px solid rgba(23,37,92,.12);border-radius:10px}.scorecard__row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:4px 0;font-size:14px}.scorecard__input{width:72px;padding:6px 10px;text-align:center}.scorecard__total{margin:12px 0 4px;font-size:15px}textarea.form__input{resize:vertical;font-family:inherit}@keyframes logo-in{to{opacity:1;transform:scale(1) translateY(0);filter:drop-shadow(0 10px 30px rgba(23,37,92,.18))}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes glow-in{to{opacity:1}}@media(prefers-reduced-motion:reduce){.landing__glow,.landing__logo,.landing__tagline,.landing__enter,.landing__note{animation:none;opacity:1;transform:none;filter:none}}
