:root{--bg: #f6f8fb;--card: #ffffff;--card-2: #f1f5fb;--border: #e5eaf0;--border-strong: #d6deea;--text: #111827;--text-dim: #64748b;--text-mute: #94a3b8;--blue: #1677ff;--blue-strong: #0958d9;--blue-soft: #e8f1ff;--green: #16a34a;--green-soft: #e7f6ec;--orange: #f59e0b;--orange-soft: #fff7e6;--red: #dc2626;--red-soft: #fef2f2;--violet: #7c3aed;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .05);--shadow-md: 0 2px 8px rgba(16, 24, 40, .06);--radius: 16px;--radius-sm: 12px;color-scheme:light;font-family:Pretendard,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Apple SD Gothic Neo,Malgun Gothic,Roboto,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg);-webkit-tap-highlight-color:transparent}.num,.hero-total,.summary-value,.row .v,.kv b,.kv span,.badge{font-variant-numeric:tabular-nums}.app{max-width:1140px;margin:0 auto;padding:20px 24px calc(28px + env(safe-area-inset-bottom,0px))}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.brand h1{font-size:22px;margin:0;font-weight:800;letter-spacing:-.5px}.brand-sub{margin:3px 0 0;font-size:13px;color:var(--text-dim)}.header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.account{font-size:13px;color:var(--text-dim);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{font-size:12px;padding:5px 11px;border-radius:999px;border:1px solid var(--border);color:var(--text-dim);background:var(--card)}.badge.sync{border-color:#cfe5d6;background:var(--green-soft);color:var(--green)}.badge.local{border-color:#fde0a8;background:var(--orange-soft);color:#b45309}.top-nav{display:flex;gap:4px;background:var(--card);border:1px solid var(--border);border-radius:999px;padding:5px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.top-nav button{flex:1;border:none;background:transparent;color:var(--text-dim);padding:9px 14px;border-radius:999px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:7px}.top-nav button.active{background:var(--blue);color:#fff;box-shadow:0 2px 6px #1677ff4d}.top-nav button svg{width:17px;height:17px}.bottom-nav{display:none}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:var(--shadow-sm)}.card h2{font-size:14px;margin:0 0 14px;color:var(--text-dim);font-weight:600}.hero{text-align:center;padding:30px 20px}.hero .label{font-size:14px;color:var(--text-dim);font-weight:500}.hero .total{font-size:clamp(34px,8vw,54px);font-weight:800;letter-spacing:-1.5px;line-height:1.08;margin:8px 0 4px;word-break:keep-all}.hero .total .unit{font-size:.42em;color:var(--text-dim);margin-left:6px;font-weight:700}.remaining{margin-top:8px;font-size:15px;font-weight:600}.remaining.over{color:var(--green)}.remaining.left{color:var(--text-dim)}.remaining .num{font-size:19px;font-weight:800;color:var(--text)}.remaining.over .num{color:var(--green)}.progress{height:10px;border-radius:999px;background:var(--card-2);overflow:hidden;margin-top:16px}.progress>div{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),#4d96ff);transition:width .45s ease}.progress.done>div{background:linear-gradient(90deg,var(--green),#34d399)}.hero-ratio{margin-top:8px;font-size:13px;color:var(--text-dim);font-weight:600}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.summary-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}.summary-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.summary-icon{width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.summary-icon svg{width:17px;height:17px}.summary-icon.kr{background:var(--blue-soft);color:var(--blue)}.summary-icon.us{background:var(--red-soft);color:var(--red)}.summary-icon.fx{background:#f3e8ff;color:var(--violet)}.summary-label{font-size:13px;color:var(--text-dim);font-weight:600}.summary-value{font-size:22px;font-weight:800;letter-spacing:-.5px;word-break:keep-all}.summary-value .unit{font-size:.6em;color:var(--text-dim);margin-left:3px;font-weight:700}.summary-sub{margin-top:4px;font-size:12px;color:var(--text-mute);font-variant-numeric:tabular-nums}.dash-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.dash-cols .card{margin-bottom:0}.rows{display:flex;flex-direction:column;gap:0}.row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:11px 0;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:none}.row .k{color:var(--text-dim);font-size:14px}.row .v{font-size:16px;font-weight:700;text-align:right}.refresh-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.refresh-info{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-dim)}.refresh-info .live{color:var(--green);font-weight:700}.refresh-info .delayed{color:var(--orange);font-weight:700}.banner{border-radius:var(--radius-sm);padding:11px 14px;font-size:13px;margin-bottom:16px;border:1px solid;line-height:1.5}.banner.warn{background:var(--orange-soft);border-color:#fde68a;color:#b45309}.banner.info{background:var(--blue-soft);border-color:#bdd8ff;color:var(--blue-strong)}button{font:inherit;cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--card);color:var(--text);padding:11px 16px;font-weight:600;transition:filter .15s,background .15s}button:hover{background:var(--card-2)}button:active{filter:brightness(.97)}button.primary{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:700}button.primary:hover{background:var(--blue-strong)}button.ghost{background:transparent;border-color:var(--border);color:var(--text-dim)}button.ghost:hover{background:var(--card-2)}button.danger{color:var(--red);border-color:#fecaca;background:var(--red-soft)}button.danger:hover{background:#fee2e2}button.block{width:100%}button.sm{padding:7px 12px;font-size:13px;border-radius:10px}button:disabled{opacity:.55;cursor:default}.btn-refresh{display:inline-flex;align-items:center;gap:7px;flex-shrink:0}label.field{display:block;margin-bottom:12px;font-size:13px;color:var(--text-dim);font-weight:600}input,select{font:inherit;width:100%;margin-top:6px;padding:11px 13px;border-radius:10px;border:1px solid var(--border-strong);background:var(--card);color:var(--text)}input:focus,select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.field-row{display:flex;gap:10px}.field-row>*{flex:1}.item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:10px;background:var(--card)}.item:last-child{margin-bottom:0}.item .meta{min-width:0}.item .name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item .sub{font-size:12.5px;color:var(--text-dim);margin-top:3px;font-variant-numeric:tabular-nums}.item .actions{display:flex;gap:6px;flex-shrink:0}.tag{display:inline-block;font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;margin-right:7px;background:var(--card-2);color:var(--text-dim)}.tag.kr{background:var(--blue-soft);color:var(--blue)}.tag.us{background:var(--red-soft);color:var(--red)}.notified{color:var(--green);font-size:12.5px;font-weight:600}.empty{text-align:center;color:var(--text-mute);padding:22px 0;font-size:14px}.search-results{display:flex;flex-direction:column;gap:8px;margin-top:14px}.search-results .result{text-align:left;border:1px solid var(--border);background:var(--card);padding:12px 14px;border-radius:var(--radius-sm)}.search-results .result:hover{border-color:var(--blue);background:var(--blue-soft)}.search-results .result .name{font-weight:700}.search-results .result .sub{font-size:12.5px;color:var(--text-dim);margin-top:3px}.preview{margin-top:16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-2)}.preview-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.preview-head .name{font-weight:800}.preview .sub{font-size:12.5px;color:var(--text-dim);margin:5px 0 12px}.kv{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 0;font-size:14px;border-bottom:1px solid var(--border)}.kv span:first-child{color:var(--text-dim)}.kv.total{border-bottom:none;margin-top:6px;font-size:15px}.kv.total b{text-align:right}.kv .krw{font-size:12px;color:var(--text-dim);font-weight:400}.confirm-box{margin-top:12px;padding:14px;border:1px solid var(--blue);border-radius:var(--radius-sm);background:var(--blue-soft)}.confirm-msg{font-size:14px;margin-bottom:12px;line-height:1.55}.item.editing{flex-direction:column;align-items:stretch}.edit-box{margin-top:12px}.muted{color:var(--text-dim);font-size:12.5px}.right{text-align:right}.spin{animation:spin .9s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:820px){.summary-grid{grid-template-columns:1fr 1fr}.summary-grid .summary-card:nth-child(3){grid-column:1 / -1}.dash-cols{grid-template-columns:1fr}.dash-cols .card{margin-bottom:0}}@media(max-width:560px){.app{padding:16px 16px calc(78px + env(safe-area-inset-bottom,0px))}.app-header{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:14px}.header-right{width:100%}.account{flex:1;max-width:none}.top-nav{display:none}.summary-grid{grid-template-columns:1fr;gap:12px}.summary-grid .summary-card:nth-child(3){grid-column:auto}.summary-card{display:flex;align-items:center;justify-content:space-between}.summary-head{margin-bottom:0}.summary-body{text-align:right}.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0px);z-index:20}.bottom-nav button{flex:1;border:none;border-radius:0;background:transparent;color:var(--text-mute);padding:9px 0 8px;font-size:11px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:3px}.bottom-nav button:hover{background:transparent}.bottom-nav button.active{color:var(--blue)}.bottom-nav button svg{width:22px;height:22px}}
