:root{--bg: #f3efe6;--bg-accent: #e7eef1;--ink: #1c2833;--muted: #5a6570;--panel: rgba(255, 252, 247, .92);--line: rgba(28, 40, 51, .1);--teal: #0e7490;--teal-deep: #155e75;--up: #0f7a4c;--down: #b42318;--shadow: 0 18px 50px rgba(28, 40, 51, .08);--radius: 18px;font-family:DM Sans,system-ui,sans-serif;color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,#d7ebe9 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#f0e2c8 0%,transparent 50%),var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input{font:inherit}.app{max-width:1440px;margin:0 auto;padding:20px 18px 40px}.hero{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:28px;flex-wrap:wrap}.compact-hero{align-items:center;margin-bottom:18px}.compact-hero h1{font-size:clamp(2rem,4vw,2.8rem)}.eyebrow{margin:0 0 6px;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--teal-deep);font-weight:600}.brand-block h1{margin:0;font-size:clamp(2.6rem,6vw,4.2rem);line-height:.95;letter-spacing:-.04em;color:var(--teal-deep)}.tagline{margin:10px 0 0;max-width:36ch;color:var(--muted)}.stats{display:flex;gap:18px;align-items:end;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}.stats>div{display:flex;flex-direction:column;gap:4px;min-width:110px}.stats span{font-size:.78rem;color:var(--muted)}.stats strong{font-size:1.05rem}.ghost{border:1px solid var(--line);background:transparent;border-radius:999px;padding:8px 14px;cursor:pointer;color:var(--muted)}.ghost:hover{color:var(--ink);border-color:var(--ink)}.layout{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.layout.dashboard{grid-template-columns:minmax(0,1.25fr) minmax(320px,.9fr);align-items:start}.left-stack{display:flex;flex-direction:column;gap:14px;min-width:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;min-height:unset}.market-panel .table-scroll,.portfolio-panel .table-scroll-sm{max-height:280px}.tools-panel{max-height:420px;overflow:auto}.panel-title{margin:0;font-size:1.05rem;letter-spacing:-.02em}.sticky-detail{position:sticky;top:12px}.holding-compare{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}.holding-compare>div{border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:#fff}.holding-compare span{display:block;font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.holding-compare strong{font-size:.92rem}.portfolio-table{font-size:.86rem}.portfolio-table th,.portfolio-table td{padding:8px;white-space:nowrap}.pnl-pct{font-size:.8em}.empty.tight{padding:10px 4px;margin:0;font-size:.9rem}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.tabs,.side-toggle,.range-tabs,.quick-row{display:flex;gap:6px;flex-wrap:wrap}.tabs button,.range-tabs button,.side-toggle button,.quick-row button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 12px;cursor:pointer;color:var(--muted)}.tabs button.active,.range-tabs button.active{background:var(--teal);border-color:var(--teal);color:#fff}.side-toggle button.active.buy{background:var(--up);border-color:var(--up);color:#fff}.side-toggle button.active.sell{background:var(--down);border-color:var(--down);color:#fff}.status-line{font-size:.8rem;color:var(--muted)}.error-text{color:var(--down)}.table-scroll{overflow:auto;max-height:min(70vh,640px)}.market-table{width:100%;border-collapse:collapse;font-size:.92rem}.market-table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fffdf9}.market-table td{padding:10px;border-bottom:1px solid rgba(28,40,51,.05);vertical-align:middle}.market-table tbody tr{cursor:pointer}.market-table tbody tr:hover,.market-table tbody tr.selected{background:#0e74900f}.coin-cell{display:flex;gap:10px;align-items:center}.coin-cell img{border-radius:50%;background:#fff}.coin-cell strong{display:block}.coin-cell span,.muted{color:var(--muted);font-size:.85rem}.coin-cell.large h2{margin:0;font-size:1.35rem}.price-line{margin:4px 0 0;font-size:1.4rem}.mono{font-family:IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums}.up{color:var(--up)}.down{color:var(--down)}.flat{color:var(--muted)}.detail-head{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:12px;flex-wrap:wrap}.chart-wrap{position:relative;height:200px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:linear-gradient(180deg,#f8fbfd,#f4f1ea);margin-bottom:14px}.chart-canvas{width:100%;height:100%}.chart-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted);z-index:1;pointer-events:none}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:16px}.metrics>div{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}.metrics span{display:block;font-size:.72rem;color:var(--muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}.trade-panel{border-top:1px solid var(--line);padding-top:14px}.trade-form{display:grid;gap:10px;margin-top:10px}.trade-form label{display:grid;gap:6px;font-size:.85rem;color:var(--muted)}.trade-form input{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}.trade-meta{display:flex;justify-content:space-between;gap:8px;font-size:.82rem;color:var(--muted)}.submit{border:0;border-radius:12px;padding:12px 14px;color:#fff;cursor:pointer;font-weight:600}.submit.buy{background:var(--up)}.submit.sell{background:var(--down)}.msg{margin:8px 0 0;font-size:.88rem}.msg.error{color:var(--down)}.msg.ok{color:var(--up)}.disclaimer{margin:8px 0 0;font-size:.75rem;color:var(--muted)}.empty{color:var(--muted);padding:24px 8px}.recs-disclaimer{margin:0 0 14px;font-size:.86rem;color:var(--muted);line-height:1.45}.recs-list{display:grid;gap:12px}.rec-card{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.rec-card.buy{border-left:4px solid var(--up)}.rec-card.sell{border-left:4px solid var(--down)}.rec-top{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.rec-coin{display:flex;gap:8px;align-items:center;border:0;background:transparent;padding:0;cursor:pointer;text-align:left;color:inherit}.rec-coin img{border-radius:50%}.rec-badge{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:4px 8px;border-radius:999px;font-weight:600}.rec-badge.buy{background:#0f7a4c1f;color:var(--up)}.rec-badge.sell{background:#b423181a;color:var(--down)}.rec-card h3{margin:0 0 6px;font-size:1.05rem}.rec-card p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.45}.rec-meta{display:flex;flex-wrap:wrap;gap:10px 14px;margin:12px 0;font-size:.82rem}.rec-apply{border:0;border-radius:12px;padding:10px 12px;color:#fff;cursor:pointer;font-weight:600;width:100%}.rec-apply.buy{background:var(--up)}.rec-apply.sell{background:var(--down)}.recs-watch{margin-top:16px;color:var(--muted);font-size:.88rem}.recs-watch summary{cursor:pointer;margin-bottom:8px}.recs-watch ul{margin:0;padding-left:18px}.recs-watch li{margin-bottom:8px;line-height:1.4}.recs-watch button{border:0;background:transparent;color:var(--teal-deep);font-weight:600;cursor:pointer;padding:0}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 24px}.auth-card h1{margin:0;color:var(--teal-deep);font-size:2.6rem;letter-spacing:-.04em}.auth-toggle{margin:18px 0 8px}.user-line{margin:6px 0 0;color:var(--muted);font-size:.88rem}.admin-create{margin-bottom:14px}.admin-create-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-create select{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}.admin-actions{display:flex;flex-wrap:wrap;gap:6px}.admin-actions button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 8px;cursor:pointer;font-size:.78rem}.admin-actions button.danger{color:var(--down)}@media(max-width:1100px){.holding-compare{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-create-grid{grid-template-columns:1fr}}@media(max-width:960px){.layout,.layout.dashboard{grid-template-columns:1fr}.sticky-detail{position:static}.market-panel .table-scroll,.portfolio-panel .table-scroll-sm{max-height:360px}.holding-compare,.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
