@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--gold: #cfae74;--gold-light: #e8d9b8;--gold-dark: #a3853f;--silver: #b7c0c9;--silver-dark: #7d8896;--bg: #11121a;--bg-card: #171823;--bg-input: #1e2030;--text: #ece9e4;--text-muted: #94909f;--border: #2a2c3c;--green: #7fb88f;--red: #c2707b;--accent: #cfae74;--gold-soft: rgba(207, 174, 116, .16);--silver-soft: rgba(183, 192, 201, .14);--crimson-soft: rgba(194, 112, 123, .16);--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "Fraunces", serif;--font-mono: "IBM Plex Mono", monospace}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100vh}a{color:var(--gold);text-decoration:none}a:hover{text-decoration:underline}input,select,textarea,button{font-family:inherit;font-size:inherit}.topbar{position:fixed;top:0;left:0;right:0;height:56px;background:var(--bg-card);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px;z-index:100;gap:32px}.topbar .brand{display:flex;align-items:center;gap:8px}.topbar .brand .brand-logo{height:36px;width:auto}.topbar .brand .brand-text{display:flex;flex-direction:column;line-height:1.2}.topbar .brand .brand-name{position:relative;font-family:var(--font-display);font-weight:600;font-size:26px;color:var(--gold);letter-spacing:.5px}.topbar .brand .brand-tagline{font-size:13px;color:var(--text-muted);letter-spacing:.3px}.topbar .brand .brand-beta{position:absolute;bottom:-23px;right:5px;font-family:var(--font-ui);font-size:26px;font-weight:700;text-transform:uppercase;color:#c0392b;background:#c0392b14;border:3px solid #c0392b;border-radius:8px;padding:0 5px;line-height:1.3;transform:rotate(-35deg);letter-spacing:.5px;pointer-events:none}.topbar nav{display:flex;gap:4px}.topbar nav a{color:var(--text-muted);padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;transition:all .15s}.topbar nav a:hover,.topbar nav a.active{color:var(--text);background:var(--bg-input);text-decoration:none}.topbar .user-info{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text-muted)}.topbar .user-info button{background:none;border:1px solid var(--border);color:var(--text-muted);padding:6px 12px;border-radius:6px;cursor:pointer;font-size:12px}.topbar .user-info button:hover{border-color:var(--gold);color:var(--gold)}.main{margin-top:56px;padding:24px;max-width:1400px;margin-left:auto;margin-right:auto}.main.main-wide{max-width:1800px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:24px;margin-bottom:16px}.card h2{font-family:var(--font-display);font-size:18px;font-weight:600;margin-bottom:16px;color:var(--text)}.card h3{font-size:13px;font-weight:600;letter-spacing:.04em;margin-bottom:12px;color:var(--text-muted)}.form-group{position:relative;margin-bottom:16px}.form-group label{display:block;font-size:13px;color:var(--text-muted);margin-bottom:6px;font-weight:500}.form-group input,.form-group select{width:100%;padding:8px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:14px}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--gold)}.pw-wrapper{position:relative;display:flex;align-items:center}.pw-wrapper input{padding-right:40px}.pw-toggle{position:absolute;right:4px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .15s}.pw-toggle:hover{color:var(--text)}.pw-strength{margin-top:8px}.pw-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.pw-fill{height:100%;border-radius:2px;transition:width .2s ease,background .2s ease}.pw-steps{display:flex;gap:4px;margin-top:6px}.pw-step{flex:1;height:3px;border-radius:2px;background:var(--border);transition:background .2s ease}.pw-tooltip{position:absolute;z-index:50;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.6;box-shadow:0 8px 24px #0006;min-width:220px;top:calc(100% - 12px);left:0}.pw-criterion{display:flex;align-items:center;gap:6px}.pw-criterion-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:10px;font-weight:700;border-radius:50%;flex-shrink:0}.pw-criterion.met .pw-criterion-icon{background:var(--green);color:#11121a}.pw-criterion.unmet .pw-criterion-icon{background:var(--red);color:#fff}.pw-criterion.met{color:var(--green)}.pw-criterion.unmet{color:var(--text-muted)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary:disabled{background:var(--border);border-color:var(--border);color:var(--text-muted)}.btn-primary:disabled:hover{background:var(--border);border-color:var(--border);color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--bg-input);color:var(--text);transition:all .15s;gap:6px}.btn:hover{border-color:var(--gold);color:var(--gold)}.btn-bv{background:#3f6b48;color:#fff;border-color:#3f6b48;white-space:nowrap}.btn-bv:hover{background:#335939;border-color:#335939;color:#fff}.btn-primary{background:var(--gold);color:var(--bg);border-color:var(--gold)}.btn-primary:hover{background:var(--gold-dark);border-color:var(--gold-dark);color:#fff}.btn-danger{border-color:var(--red);color:var(--red)}.btn-danger:hover{background:var(--red);color:#fff}.btn-sm{padding:4px 10px;font-size:12px}.btn-lg{padding:12px 28px;font-size:16px;font-weight:600}.onboarding-banner{background:linear-gradient(135deg,var(--gold-soft),var(--bg-card));border:1px solid var(--gold-dark);border-radius:10px;padding:36px 24px;margin-bottom:16px;text-align:center}.onboarding-banner h2{font-family:var(--font-display);font-size:22px;font-weight:600;color:var(--gold);margin-bottom:8px}.onboarding-banner p{color:var(--text-muted);font-size:14px;margin-bottom:24px;max-width:480px;margin-left:auto;margin-right:auto;line-height:1.6}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}.stat-card{background:var(--bg-input);border:1px solid var(--border);border-radius:10px;padding:16px}.stat-card .stat-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.stat-card .stat-value{font-family:var(--font-display);font-size:24px;font-weight:500;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--text)}.stat-card .stat-value.gold{color:var(--gold)}.stat-card .stat-value.silver{color:var(--silver)}.stat-card .stat-value.total{color:var(--text)}.stat-card .stat-value.positive{color:var(--green)}.stat-card .stat-value.negative{color:var(--red)}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}table th,table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border)}table th{color:var(--text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}table th.sort-asc:after{content:" ▲";font-size:10px}table th.sort-desc:after{content:" ▼";font-size:10px}table tbody tr:hover{background:var(--bg-input)}table th.lot-col,table td.lot-col{background:#cfae740f}tr.lot-row-1{background:#ffffff05}tr.lot-row-1:hover{background:var(--bg-input)}.tx-right{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.tx-filters{display:flex;gap:24px;margin-bottom:16px;flex-wrap:wrap}.tx-filter-group label{display:block;font-size:12px;color:var(--text-muted);margin-bottom:6px;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.tx-filter-btns{display:flex;gap:4px;flex-wrap:wrap}.tx-filter-btns .btn.active{background:var(--gold);color:var(--bg);border-color:var(--gold)}.tx-checkboxes{display:flex;gap:16px;align-items:center;height:32px}.tx-checkbox{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:13px}.tx-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--gold);cursor:pointer}.tx-batch-lot{margin-bottom:12px;background:var(--bg-card);border:1px solid var(--gold);border-radius:6px;padding:10px 14px}.tx-batch-lot-inner{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tx-batch-count{font-size:13px;font-weight:600;color:var(--gold);white-space:nowrap}.tx-batch-input{padding:6px 10px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);font-size:13px;width:200px}.tx-batch-error{font-size:12px;color:var(--red)}.tx-col-num{width:32px;text-align:center;color:var(--text-muted);font-size:12px}.tx-col-cb{width:32px;text-align:center}.tx-col-cb input[type=checkbox]{width:16px;height:16px;accent-color:var(--gold);cursor:pointer}.tx-gold{color:var(--gold);font-weight:600}.tx-silver{color:var(--silver);font-weight:600}.tx-buy{color:var(--green)}.tx-sell{color:var(--red)}.tx-lot-input{padding:6px 10px;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;width:160px}.tx-lot-input:focus{outline:none;border-color:var(--gold)}.tx-summary{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap;justify-content:flex-end}.tx-summary-card{border:1px solid var(--border);border-radius:8px;padding:10px 16px;display:flex;flex-direction:column;gap:2px;min-width:130px}.tx-summary-card.gold{background:#cfae742e;border-color:#cfae7459}.tx-summary-card.silver{background:#b7c0c92e;border-color:#b7c0c959}.tx-summary-card.buy .tx-summary-value{color:var(--green)}.tx-summary-card.sell .tx-summary-value{color:#c9974f}.breakdown-buy{color:var(--green)}.breakdown-sell{color:#c9974f}.tx-summary-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:var(--text-muted)}.tx-summary-value{font-family:var(--font-mono);font-size:16px;font-weight:700}.tx-summary-breakdown{font-size:11px;font-weight:500;color:var(--text-muted)}.tx-summary-premium{font-size:11px;font-weight:500;color:var(--gold);margin-top:2px}@media(max-width:768px){.form-row{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}.topbar nav{display:none}.tx-filters{flex-direction:column;gap:12px}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center}.auth-box{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:40px;width:100%;max-width:420px}.auth-box h1{font-family:var(--font-display);font-size:26px;font-weight:600;letter-spacing:.01em;color:var(--gold);text-align:center;margin-bottom:24px}.auth-box .error{background:#c2707b1f;border:1px solid var(--red);color:var(--red);padding:10px;border-radius:6px;margin-bottom:16px;font-size:13px}.auth-box .success{background:#70c27b1f;border:1px solid var(--green);color:var(--green);padding:10px;border-radius:6px;margin-bottom:16px;font-size:13px}.auth-box .info{text-align:center;margin-top:16px;font-size:13px;color:var(--text-muted)}.auth-social{margin-top:20px}.auth-divider{display:flex;align-items:center;text-align:center;margin-bottom:16px;color:var(--text-muted);font-size:12px}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid var(--border)}.auth-divider span{padding:0 12px}.btn-social{display:flex;align-items:center;justify-content:center;width:100%;padding:10px 16px;margin-bottom:10px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--bg-input);color:var(--text);text-decoration:none;transition:all .15s;gap:10px}.btn-social:hover{background:var(--bg-card);border-color:var(--text-muted)}.btn-social .social-icon{display:flex;align-items:center;line-height:0}.btn-social-google:hover{border-color:#4285f4}.btn-social-github:hover{border-color:#f0f6fc}.btn-social-facebook:hover{border-color:#1877f2}.fade-enter-active,.fade-leave-active{transition:opacity .5s ease}.fade-enter-from,.fade-leave-to{opacity:0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:24px;width:90%;max-width:500px;max-height:80vh;overflow-y:auto}.modal h2{margin-bottom:20px}.toast{position:fixed;bottom:24px;right:24px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:12px 20px;font-size:13px;z-index:300;animation:slideIn .2s ease}.toast.success{border-color:var(--green);color:var(--green)}.toast.error{border-color:var(--red);color:var(--red)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:14px;height:14px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}.verify-banner{background:var(--gold-soft);border:1px solid var(--gold);border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:13px;color:var(--gold-light);text-align:center;line-height:1.5}.chart-card{margin-top:16px}.chart-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:12px}.chart-header h3{margin-bottom:0}.holdings-charts-row{display:flex;gap:16px;margin-bottom:16px}.holdings-charts-row .chart-card{flex:1;min-width:0;margin-bottom:0}.holdings-charts-row .chart-wrapper{position:relative;height:300px;width:100%}#latestHoldingsValueChart,#latestHoldingsWeightChart,#weightGoldChart,#weightSilverChart,#valueChart,#ratioChart,#priceHistoryGoldChart,#priceHistorySilverChart,#ratioHoldingsChart,#ratioHoldingsWeightChart,#priceGrowthChart{position:absolute;top:0;right:0;bottom:0;left:0}.chart-wrapper{position:relative;height:400px;width:100%}.weight-chart-card .chart-wrapper,.price-history-card .chart-wrapper{height:280px}.latest-holdings-delta{display:flex;justify-content:center;padding:12px 16px 0;gap:24px}.delta-item{text-align:center}.delta-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:4px}.delta-value{font-family:var(--font-mono);font-size:14px;font-weight:600;display:flex;flex-wrap:wrap;gap:2px 6px;justify-content:center}.delta-value .positive{color:var(--green)}.delta-value .negative{color:var(--red)}.delta-value .gold{color:var(--gold)}.delta-value .silver{color:var(--silver)}.portfolio-tabs{display:flex;gap:4px;margin-bottom:0;border-bottom:1px solid var(--border);padding:0 4px}.tab-btn{background:none;border:none;color:var(--text-muted);padding:10px 20px;font-size:14px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--gold);border-bottom-color:var(--gold)}.tab-content{border-top-left-radius:0;border-top-right-radius:0}.upload-file-list{margin-bottom:16px;border:1px solid var(--border);border-radius:6px;overflow:hidden}.upload-file-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);font-size:13px}.upload-file-item:last-child{border-bottom:none}.upload-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.upload-file-size{color:var(--text-muted);font-size:12px;white-space:nowrap}.upload-file-status{font-size:12px;font-weight:500;white-space:nowrap}.upload-status-uploading{color:var(--gold)}.upload-status-done{color:var(--green)}.upload-status-error{color:var(--red)}.app-footer{text-align:center;padding:16px 24px 24px;font-size:11px;color:var(--text-muted);opacity:.5}.app-footer-sep{margin:0 6px}.prefs-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.prefs-grid .card{max-width:500px}@media(max-width:768px){.prefs-grid{grid-template-columns:1fr}}.est-ratio-label{text-align:center;font-size:13px;color:var(--text-muted);margin-top:6px;font-weight:500}.est-spot-rates{display:flex;gap:24px;margin-bottom:16px}.est-spot-rate{font-size:13px;color:var(--text-muted)}.est-spot-rate span{color:var(--text);font-family:var(--font-mono);font-weight:500}.est-results{margin-top:20px}.est-result-row{display:flex;align-items:baseline;gap:16px;padding:10px 0;border-top:1px solid var(--border)}.est-result-row:first-child{border-top:none}.est-result-label{font-size:14px;font-weight:600;min-width:150px}.est-result-label.gold{color:var(--gold)}.est-result-label.silver{color:var(--silver)}.est-result-value{font-family:var(--font-mono);font-size:14px;color:var(--text)}.est-result-detail{font-size:12px;color:var(--text-muted);margin-top:4px}.trade-toggle{display:flex;gap:4px;margin-bottom:20px}.trade-toggle .btn{flex:1;border:1px solid var(--border);background:var(--bg-input);color:var(--text-muted);font-size:13px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:all .15s}.trade-toggle .btn:hover{border-color:var(--gold);color:var(--text)}.trade-toggle .btn.active{background:var(--gold-soft);border-color:var(--gold);color:var(--gold);font-weight:600}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;background:var(--border);border-radius:3px;outline:none;border:none;padding:0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--gold);cursor:pointer;border:2px solid var(--bg-card)}input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--gold);cursor:pointer;border:2px solid var(--bg-card)}.liquidation-slider-wrap{display:flex;align-items:center;gap:8px;margin-bottom:8px}.liquidation-slider-label{font-size:12px;color:var(--text-muted);min-width:40px;text-align:right;font-variant-numeric:tabular-nums}.liquidation-diff{font-size:12px;color:var(--red);margin-bottom:6px}.liquidation-slider{height:6px;background:linear-gradient(to right,var(--green),var(--red))}.liquidation-slider::-webkit-slider-runnable-track{height:6px;background:linear-gradient(to right,var(--green),var(--red));border-radius:3px}.liquidation-slider::-moz-range-track{height:6px;background:linear-gradient(to right,var(--green),var(--red));border-radius:3px}.liquidation-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 16'%3E%3Cpolygon points='9,16 0,0 18,0' fill='%2394909f'/%3E%3Cline x1='6' y1='4' x2='6' y2='9' stroke='%231e2030' stroke-width='1.2' stroke-linecap='round'/%3E%3Cline x1='9' y1='2.5' x2='9' y2='9' stroke='%231e2030' stroke-width='1.2' stroke-linecap='round'/%3E%3Cline x1='12' y1='4' x2='12' y2='9' stroke='%231e2030' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center;cursor:pointer;margin-top:-5px;border:none}.liquidation-slider::-moz-range-thumb{width:18px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 16'%3E%3Cpolygon points='9,16 0,0 18,0' fill='%2394909f'/%3E%3Cline x1='6' y1='4' x2='6' y2='9' stroke='%231e2030' stroke-width='1.2' stroke-linecap='round'/%3E%3Cline x1='9' y1='2.5' x2='9' y2='9' stroke='%231e2030' stroke-width='1.2' stroke-linecap='round'/%3E%3Cline x1='12' y1='4' x2='12' y2='9' stroke='%231e2030' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center;cursor:pointer;margin-top:-5px;border:none}.private-eye-btn{background:none;border:1px solid var(--border);color:var(--text-muted);padding:6px 8px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.private-eye-btn:hover{border-color:var(--gold);color:var(--gold)}.private-eye-blur .stat-card,.private-eye-blur .liquidation-slider-wrap,.private-eye-blur .chart-card,.private-eye-blur .main .card,.private-eye-blur .holdings-charts-row .chart-card,.private-eye-blur .portfolio-tabs,.private-eye-blur .tab-content{filter:blur(9.6px);-webkit-user-select:none;user-select:none;pointer-events:none}
