:root {
  color-scheme: dark;
  --bg:#070914;
  --panel:rgba(15,22,43,.68);
  --panel2:rgba(255,255,255,.08);
  --text:#f5f8ff;
  --muted:#aab4d6;
  --line:rgba(255,255,255,.15);
  --cyan:#63e8ff;
  --violet:#9d7cff;
  --pink:#ff6bd6;
  --lime:#b7ff68;
}
*{box-sizing:border-box} body{margin:0;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 18% 15%,rgba(99,232,255,.2),transparent 28%),radial-gradient(circle at 82% 24%,rgba(157,124,255,.22),transparent 30%),linear-gradient(135deg,#050711,#0b1023 58%,#120820);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif} body:before{content:"";position:fixed;inset:0;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:54px 54px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),transparent 80%);pointer-events:none}.orb{position:fixed;border-radius:999px;filter:blur(6px);opacity:.65;pointer-events:none}.orb-a{width:280px;height:280px;right:-70px;top:120px;background:radial-gradient(circle,var(--pink),transparent 65%);animation:float 8s ease-in-out infinite}.orb-b{width:220px;height:220px;left:-80px;bottom:80px;background:radial-gradient(circle,var(--cyan),transparent 65%);animation:float 10s ease-in-out infinite reverse}@keyframes float{50%{transform:translate3d(0,-28px,0) scale(1.08)}}.shell{position:relative;max-width:1160px;margin:0 auto;padding:30px 20px 80px}.nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:54px}.brand{display:flex;align-items:center;gap:12px;font-weight:900;letter-spacing:.02em}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:14px;background:linear-gradient(135deg,var(--cyan),var(--violet));box-shadow:0 0 32px rgba(99,232,255,.35);color:#06101b}.nav-pill{border:1px solid var(--line);border-radius:999px;padding:9px 14px;background:rgba(255,255,255,.06);color:var(--lime);font-size:12px;font-weight:900;letter-spacing:.14em}.hero{display:grid;grid-template-columns:1.08fr .92fr;gap:34px;align-items:center}.eyebrow{color:var(--cyan);font-size:13px;font-weight:900;letter-spacing:.16em}.hero h1{margin:12px 0 18px;font-size:clamp(42px,7vw,76px);line-height:1.02;letter-spacing:-.065em}.hero h1 span{background:linear-gradient(90deg,#fff,var(--cyan),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}.lead{max-width:680px;color:var(--muted);font-size:18px;line-height:1.75}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}button{border:0;border-radius:999px;padding:14px 18px;font-weight:900;color:var(--text)}.primary{background:linear-gradient(135deg,var(--cyan),var(--violet));color:#06101b;box-shadow:0 14px 44px rgba(99,232,255,.22)}.ghost{background:rgba(255,255,255,.08);border:1px solid var(--line)}.dashboard-card{position:relative;min-height:420px;border:1px solid var(--line);border-radius:34px;padding:28px;background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.04));box-shadow:0 30px 100px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.18);backdrop-filter:blur(18px);overflow:hidden}.dashboard-card:before{content:"";position:absolute;inset:-40%;background:conic-gradient(from 180deg,transparent,var(--cyan),transparent,var(--pink),transparent);animation:spin 8s linear infinite;opacity:.28}.dashboard-card>*{position:relative}.card-top{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;font-weight:900;letter-spacing:.12em}.card-top strong{color:var(--lime)}.balance{margin:76px 0 28px;font-size:44px;font-weight:950;letter-spacing:-.05em}.pulse-line{height:118px;border-radius:24px;background:linear-gradient(180deg,rgba(99,232,255,.18),rgba(157,124,255,.06));position:relative;overflow:hidden}.pulse-line span{position:absolute;left:-20%;top:48%;width:140%;height:3px;background:linear-gradient(90deg,transparent,var(--cyan),var(--pink),transparent);filter:drop-shadow(0 0 14px var(--cyan));animation:wave 2.8s ease-in-out infinite}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.metrics div{padding:16px;border-radius:20px;background:rgba(255,255,255,.07);border:1px solid var(--line)}small{display:block;color:var(--muted);margin-bottom:7px}.metrics b{font-size:18px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:36px}.tile{border:1px solid var(--line);border-radius:28px;padding:22px;background:var(--panel);backdrop-filter:blur(14px)}.tile.active{background:linear-gradient(145deg,rgba(99,232,255,.18),rgba(157,124,255,.12))}.num{color:var(--cyan);font-weight:950}.tile h2{margin:12px 0 8px}.tile p{margin:0;color:var(--muted);line-height:1.65}@keyframes spin{to{transform:rotate(360deg)}}@keyframes wave{50%{transform:translateY(-24px) skewY(-4deg)}}@media(max-width:860px){.hero{grid-template-columns:1fr}.dashboard-card{min-height:320px}.cards{grid-template-columns:1fr}.nav{margin-bottom:34px}.balance{margin-top:46px}}

/* Star cursor + subtle stardust trail */
body, button, a { cursor: none; }
.star-cursor {
  position: fixed;
  left: 0;
  top: 0;
  width: 24px;
  height: 24px;
  pointer-events: none;
  z-index: 20001;
  transform: translate(-50%, -50%);
  filter: drop-shadow(0 0 10px rgba(99,232,255,.95)) drop-shadow(0 0 18px rgba(255,107,214,.55));
  transition: width .16s ease, height .16s ease, opacity .2s ease;
}
.star-cursor svg { width: 100%; height: 100%; display: block; }
.star-cursor.is-pressing { width: 18px; height: 18px; }
.star-cursor.is-hidden { opacity: 0; }
.stardust {
  position: fixed;
  width: 7px;
  height: 7px;
  pointer-events: none;
  z-index: 20000;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #fff 0 18%, var(--cyan) 22% 45%, transparent 70%);
  clip-path: polygon(50% 0%, 61% 34%, 98% 35%, 68% 56%, 79% 91%, 50% 70%, 21% 91%, 32% 56%, 2% 35%, 39% 34%);
  animation: stardust-pop .72s ease-out forwards;
  filter: drop-shadow(0 0 8px rgba(99,232,255,.8));
}
@keyframes stardust-pop {
  0% { opacity: .95; transform: translate(-50%, -50%) scale(1) rotate(0deg); }
  100% { opacity: 0; transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(.2) rotate(130deg); }
}
@media (hover: none), (pointer: coarse) {
  body, button, a { cursor: auto; }
  .star-cursor, .stardust { display: none; }
}

.signup-section{margin-top:44px}.section-head{max-width:760px;margin-bottom:18px}.section-head h2{font-size:38px;margin:8px 0 10px;letter-spacing:-.04em}.section-head p{color:var(--muted);line-height:1.7}.signup-card{display:grid;gap:14px;border:1px solid var(--line);border-radius:32px;padding:24px;background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.045));backdrop-filter:blur(16px);box-shadow:0 30px 100px rgba(0,0,0,.24)}label{display:grid;gap:8px;color:#eaf2ff;font-weight:800}input,select{width:100%;border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:14px 15px;background:rgba(4,8,18,.72);color:var(--text);outline:none;font-size:15px}input:focus,select:focus{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(99,232,255,.12)}.split{display:grid;grid-template-columns:1fr 1fr;gap:14px}.full{width:100%;margin-top:4px}.result{min-height:80px;margin:0;padding:16px;border-radius:18px;background:rgba(0,0,0,.28);border:1px solid var(--line);color:var(--muted);white-space:pre-wrap;overflow:auto}@media(max-width:760px){.split{grid-template-columns:1fr}.section-head h2{font-size:30px}}


.field-error{min-height:18px;color:#ff7a9e;font-size:13px;font-weight:800}.input-error{border-color:#ff5f8f!important;box-shadow:0 0 0 4px rgba(255,95,143,.16)!important}.modal-backdrop{position:fixed;inset:0;display:none;place-items:center;padding:22px;background:rgba(2,5,14,.68);backdrop-filter:blur(12px);z-index:10000}.modal-backdrop.is-open{display:grid}.modal-card{width:min(420px,100%);border:1px solid rgba(255,255,255,.18);border-radius:30px;padding:28px;background:linear-gradient(145deg,rgba(20,30,58,.96),rgba(9,13,28,.96));box-shadow:0 30px 120px rgba(0,0,0,.55),0 0 60px rgba(99,232,255,.16);text-align:center}.modal-icon{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 16px;border-radius:22px;background:linear-gradient(135deg,var(--cyan),var(--violet));color:#06101b;font-size:34px;font-weight:950}.modal-card h2{margin:0 0 10px;font-size:27px}.modal-card p{margin:0 0 22px;color:var(--muted);line-height:1.65}

.split{align-items:start}.split label{align-self:start}.field-hint{min-height:18px;font-size:13px;font-weight:800}.field-hint.ok{color:var(--lime)}.field-hint.bad{color:#ff7a9e}

.ledger-panel{margin-top:18px;border:1px solid var(--line);border-radius:28px;padding:20px;background:rgba(255,255,255,.07);backdrop-filter:blur(14px)}.ledger-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.ledger-head h3{margin:0;font-size:22px}.summary-strip{margin:14px 0;padding:14px 16px;border-radius:18px;background:rgba(0,0,0,.22);border:1px solid var(--line);color:var(--muted);font-weight:800}.transaction-list{display:grid;gap:10px}.transaction-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:rgba(4,8,18,.48)}.transaction-main b{display:block}.transaction-main small{color:var(--muted)}.transaction-amount{font-weight:950}.transaction-amount.income{color:var(--lime)}.transaction-amount.expense{color:#ff8aa8}.mini-danger{border:1px solid rgba(255,122,158,.35);background:rgba(255,122,158,.1);color:#ffd9e3;border-radius:999px;padding:8px 11px;font-weight:900}

.kb-preview-table-wrap{overflow:auto;max-height:520px;border-radius:18px;border:1px solid var(--line)}.kb-preview-table{width:100%;border-collapse:collapse;min-width:1280px;background:rgba(0,0,0,.16)}.kb-preview-table th,.kb-preview-table td{padding:10px;border-bottom:1px solid rgba(255,255,255,.09);text-align:left;vertical-align:top}.kb-preview-table th{position:sticky;top:0;background:rgba(12,18,38,.96);z-index:1;color:var(--cyan)}.kb-preview-table input,.kb-preview-table select{border-radius:12px;padding:9px 10px}.kb-preview-table .amount-input{width:120px}.kb-preview-table .date-input{width:136px}.kb-preview-table .category-input{width:120px}.kb-preview-table .desc-input{width:180px}.kb-preview-table .memo-input{width:170px}.kb-preview-table .branch-input{width:140px}.kb-preview-table .balance-input{width:130px}.dup-badge{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:900}.dup-badge.ok{background:rgba(183,255,104,.12);color:var(--lime)}.dup-badge.bad{background:rgba(255,122,158,.14);color:#ff8aa8}

.readonly-field{opacity:.72;background:rgba(255,255,255,.045)!important;color:var(--muted)!important;cursor:not-allowed!important}

.ledger-tools{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.compact-label{font-size:12px;color:var(--muted);gap:5px}.compact-label input{min-width:160px}.modal-icon.danger{background:linear-gradient(135deg,#ff7a9e,#ffbd6b);color:#22050b}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.danger-button{background:linear-gradient(135deg,#ff7a9e,#ffbd6b)!important;color:#22050b!important}@media(max-width:760px){.ledger-head{align-items:stretch;flex-direction:column}.ledger-tools{display:grid;grid-template-columns:1fr 1fr}.compact-label{grid-column:1/-1}.modal-actions{grid-template-columns:1fr}}

.mini-edit{border:1px solid rgba(99,232,255,.35);background:rgba(99,232,255,.1);color:#d8fbff;border-radius:999px;padding:8px 11px;font-weight:900;margin-right:6px}.wide-modal{width:min(680px,100%);text-align:left}.wide-modal .modal-icon,.wide-modal h2{text-align:center}.modal-form{display:grid;gap:12px}.overview-cards{scroll-margin-top:24px}

.flow-caption{margin:10px 0 0;color:var(--muted);font-size:13px;font-weight:800}.pulse-line[data-flow="negative"] span{background:linear-gradient(90deg,#63e8ff,#ff7a9e,#ffbd6b)}.pulse-line[data-flow="positive"] span{background:linear-gradient(90deg,#63e8ff,#b7ff68,#8b5cf6)}.pulse-line[data-level="1"] span{animation-duration:4.8s}.pulse-line[data-level="2"] span{animation-duration:4.1s}.pulse-line[data-level="3"] span{animation-duration:3.4s}.pulse-line[data-level="4"] span{animation-duration:2.7s}.pulse-line[data-level="5"] span{animation-duration:2.1s}.pulse-line[data-level="6"] span{animation-duration:1.6s}

.curved-flow{background:radial-gradient(circle at 18% 28%,rgba(99,232,255,.2),transparent 34%),linear-gradient(180deg,rgba(99,232,255,.15),rgba(157,124,255,.07));}
.curved-flow svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.curved-flow .flow-glow,.curved-flow .flow-wave{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.curved-flow .flow-glow{stroke:rgba(99,232,255,.24);stroke-width:18;filter:blur(9px);animation:curve-breathe 3.8s ease-in-out infinite}
.curved-flow .flow-wave{stroke:url(#unused);stroke:#63e8ff;stroke-width:4;stroke-dasharray:90 42;filter:drop-shadow(0 0 12px #63e8ff);animation:curve-flow 2.8s linear infinite,curve-float 4.2s ease-in-out infinite}
.curved-flow .flow-dot{position:absolute;width:11px;height:11px;border-radius:999px;background:#fff;box-shadow:0 0 18px #63e8ff,0 0 34px #ff7a9e;offset-path:path('M -40 70 C 55 18 128 102 218 58 S 380 35 462 68 S 610 76 640 38');offset-distance:0%;animation:dot-flow 2.8s linear infinite}
.pulse-line[data-flow="positive"] .flow-wave{stroke:#b7ff68;filter:drop-shadow(0 0 13px #b7ff68)}
.pulse-line[data-flow="negative"] .flow-wave{stroke:#ff7a9e;filter:drop-shadow(0 0 13px #ff7a9e)}
.pulse-line[data-flow="positive"] .flow-dot{box-shadow:0 0 18px #b7ff68,0 0 34px #63e8ff}.pulse-line[data-flow="negative"] .flow-dot{box-shadow:0 0 18px #ff7a9e,0 0 34px #ffbd6b}
@keyframes curve-flow{to{stroke-dashoffset:-132}}@keyframes curve-float{50%{transform:translateY(-10px) scaleY(1.08)}}@keyframes curve-breathe{50%{opacity:.72;transform:translateY(-5px)}}@keyframes dot-flow{to{offset-distance:100%}}
.pulse-line[data-level="1"] .flow-wave,.pulse-line[data-level="1"] .flow-dot{animation-duration:4.8s,4.2s}.pulse-line[data-level="2"] .flow-wave,.pulse-line[data-level="2"] .flow-dot{animation-duration:4.1s,4.2s}.pulse-line[data-level="3"] .flow-wave,.pulse-line[data-level="3"] .flow-dot{animation-duration:3.4s,4.2s}.pulse-line[data-level="4"] .flow-wave,.pulse-line[data-level="4"] .flow-dot{animation-duration:2.7s,4.2s}.pulse-line[data-level="5"] .flow-wave,.pulse-line[data-level="5"] .flow-dot{animation-duration:2.1s,4.2s}.pulse-line[data-level="6"] .flow-wave,.pulse-line[data-level="6"] .flow-dot{animation-duration:1.6s,4.2s}

/* service deploy polish */
.nav-links{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.nav-links a{color:var(--muted);text-decoration:none;border:1px solid var(--line);background:rgba(255,255,255,.055);border-radius:999px;padding:9px 13px;font-size:12px;font-weight:900}.nav-links a:hover{color:var(--text);border-color:rgba(99,232,255,.45)}.signup-section{scroll-margin-top:28px}.section-head{display:grid;gap:8px}.section-head h2{letter-spacing:-.03em}.section-head p{max-width:760px}.status-card{white-space:normal!important;line-height:1.55}.status-card.ok{border-color:rgba(183,255,104,.35);background:rgba(183,255,104,.1);color:#e9ffd4}.status-card.bad{border-color:rgba(255,122,158,.38);background:rgba(255,122,158,.12);color:#ffe0e8}.status-card.info{border-color:rgba(99,232,255,.25);background:rgba(99,232,255,.09);color:#dffbff}.signup-card{box-shadow:0 22px 80px rgba(0,0,0,.18)}.ledger-panel{box-shadow:0 20px 70px rgba(0,0,0,.16)}.transaction-item{transition:transform .18s ease,border-color .18s ease,background .18s ease}.transaction-item:hover{transform:translateY(-1px);border-color:rgba(99,232,255,.34);background:rgba(8,14,30,.64)}.kb-preview-table th{font-size:13px}.kb-preview-table input:focus,.kb-preview-table select:focus,input:focus,select:focus{outline:none;border-color:rgba(99,232,255,.58);box-shadow:0 0 0 4px rgba(99,232,255,.12)}@media(max-width:760px){.nav{align-items:flex-start;gap:12px;flex-direction:column}.nav-links{width:100%}.nav-links a{flex:1;text-align:center}.nav-pill{margin-left:auto}.actions .primary,.actions .ghost{flex:1}}

/* page tab navigation */
.page-view{display:none;animation:page-fade .22s ease}.page-view.is-active{display:block}.nav-links a.is-active{color:#06101b;background:linear-gradient(135deg,var(--cyan),var(--violet));border-color:transparent;box-shadow:0 10px 30px rgba(99,232,255,.18)}@keyframes page-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-view .signup-section:first-child{margin-top:18px}.page-view[data-page="account"]{display:none;grid-template-columns:1fr;gap:22px}.page-view[data-page="account"].is-active{display:grid}.page-view[data-page="account"] .signup-section{margin-top:18px}
@media(min-width:980px){.page-view[data-page="account"].is-active{grid-template-columns:1fr 1fr;align-items:start}.page-view[data-page="account"] #login,.page-view[data-page="account"] #signup{margin-top:18px}}

/* account signup modal */
.account-actions{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.055);text-align:center}.account-actions p{margin:0 0 10px;color:var(--muted);font-weight:800}.signup-modal-card{position:relative;width:min(760px,calc(100vw - 28px));max-height:calc(100vh - 36px);overflow:auto;text-align:left;padding:24px}.modal-close{position:absolute;right:16px;top:14px;width:38px;height:38px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid var(--line);color:var(--text);font-size:22px;line-height:1;padding:0}.modal-close:hover{background:rgba(255,255,255,.16)}.modal-signup-section{margin:0!important}.modal-signup-section .section-head{text-align:left;padding-right:36px}.modal-signup-section .signup-card{box-shadow:none;background:rgba(255,255,255,.06)}
@media(min-width:980px){.page-view[data-page="account"].is-active{grid-template-columns:minmax(320px,720px);justify-content:center}.page-view[data-page="account"] #login{margin-top:18px}}

/* account profile */
.is-hidden{display:none!important}.account-profile{gap:18px;border:1px solid var(--line);border-radius:28px;padding:24px;background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.055));box-shadow:0 22px 80px rgba(0,0,0,.18)}.profile-head{display:flex;align-items:center;gap:16px}.profile-avatar{display:grid;place-items:center;width:64px;height:64px;border-radius:24px;background:linear-gradient(135deg,var(--cyan),var(--violet));color:#06101b;font-size:28px;font-weight:950;box-shadow:0 14px 38px rgba(99,232,255,.24)}.profile-head h3{margin:4px 0 4px;font-size:28px}.profile-head p{margin:0;color:var(--muted)}.profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.profile-grid div{padding:15px;border:1px solid var(--line);border-radius:18px;background:rgba(0,0,0,.18)}.profile-grid b{font-size:17px}@media(max-width:620px){.profile-grid{grid-template-columns:1fr}.profile-head{align-items:flex-start}}

.compact-status:empty{display:none!important}

.savings-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 22px;padding:22px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(135deg,rgba(99,232,255,.13),rgba(255,107,214,.08));box-shadow:0 24px 80px rgba(0,0,0,.16)}.savings-panel h3{margin:6px 0 8px;font-size:24px}.savings-panel p{margin:0;color:var(--muted);font-weight:800}.savings-amount{font-size:28px;font-weight:950;color:var(--cyan);white-space:nowrap}.mini-readonly{display:inline-block;margin-top:8px;padding:7px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:900}@media(max-width:720px){.savings-panel{align-items:flex-start;flex-direction:column}.savings-amount{font-size:24px}}

.savings-panel ul{margin:10px 0 0;padding-left:18px;color:var(--muted);font-weight:800}.savings-panel li{margin:4px 0;list-style:disc}.savings-panel b{color:var(--text)}
