
:root{
  --bg:#06111f;
  --bg2:#091827;
  --panel:#0b1a2a;
  --panel2:#0e2135;
  --border:#1d3b58;
  --text:#f5f9ff;
  --muted:#8ea8c4;
  --cyan:#31d6ff;
  --teal:#21e2ba;
  --green:#18e39b;
  --yellow:#ffd52a;
  --orange:#ff9e2a;
  --red:#ff5f6d;
  --blue:#458cff;
  --purple:#9b5cff;
  --pink:#ff6eb6;
  --shadow:0 16px 40px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:
  radial-gradient(circle at 80% 0%, rgba(40,100,255,.10), transparent 32%),
  radial-gradient(circle at 10% 30%, rgba(0,220,255,.08), transparent 28%),
  var(--bg);
  color:var(--text);font-family:Inter,system-ui,sans-serif;
}
button,input,select{font:inherit}
.app-shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.sidebar{
  position:sticky;top:0;height:100vh;padding:22px 14px;border-right:1px solid #17324b;
  background:linear-gradient(180deg,#071522 0%,#07111d 100%);
}
.brand{display:flex;gap:10px;align-items:center;padding:6px 8px 24px}
.brand-mark{
  width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:24px;
  background:linear-gradient(135deg,var(--teal),var(--blue));box-shadow:0 0 24px rgba(32,219,255,.25)
}
.brand-title{font-size:13px;font-weight:700}
.brand-sub{font-size:9px;color:#4aa5ff;letter-spacing:.14em;margin-top:4px}
.nav{display:grid;gap:8px}
.nav-item{
  width:100%;border:1px solid transparent;background:transparent;color:#c3d4e8;text-align:left;
  padding:12px 14px;border-radius:10px;cursor:pointer;display:flex;gap:10px;align-items:center
}
.nav-item:hover,.nav-item.active{background:linear-gradient(90deg,rgba(32,211,255,.14),rgba(65,86,255,.16));border-color:#1d4f8c;color:white}
.goal-card{
  position:absolute;left:14px;right:14px;bottom:18px;padding:16px;border:1px solid #1c3f64;border-radius:14px;
  background:linear-gradient(180deg,rgba(14,38,67,.8),rgba(7,18,33,.9));
}
.eyebrow{color:var(--teal);font-size:12px;font-weight:700}
.goal-big{font-size:14px;font-weight:800;margin:8px 0 14px;color:#2bb7ff}
.goal-card p{font-size:12px;color:#c3d4e8;line-height:1.6}
.mini-bars{display:flex;align-items:end;gap:5px;height:72px}
.mini-bars i{flex:1;background:linear-gradient(180deg,#7158ff,#1d3f92);border-radius:4px 4px 0 0}
.mini-bars i:nth-child(1){height:20%}.mini-bars i:nth-child(2){height:35%}.mini-bars i:nth-child(3){height:48%}.mini-bars i:nth-child(4){height:58%}.mini-bars i:nth-child(5){height:72%}.mini-bars i:nth-child(6){height:90%}

.main{padding:22px;min-width:0}
.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px}
.topbar h1{margin:0;font-size:28px;letter-spacing:-.03em}
.topbar p{margin:6px 0 0;color:var(--muted);font-size:13px}
.top-actions{display:flex;align-items:center;gap:8px}
.status-dot{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px;margin-right:6px}
.status-dot span{width:8px;height:8px;background:var(--green);border-radius:50%;box-shadow:0 0 10px var(--green)}
.btn{border:1px solid #264866;border-radius:9px;padding:9px 12px;cursor:pointer;color:#d9ebff;background:#0d2032}
.btn:hover{filter:brightness(1.12)}
.btn.primary{background:linear-gradient(135deg,#0dd7c7,#3579ff);border-color:transparent;color:white;font-weight:700}
.btn.ghost{background:#0b1b2b}
.btn.danger-ghost{background:#21141c;border-color:#653242;color:#ffbac0}

.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.kpi-card{
  min-height:92px;padding:15px;border-radius:12px;background:linear-gradient(180deg,#0b1b2c,#081724);
  border:1px solid var(--border);box-shadow:var(--shadow);position:relative;overflow:hidden
}
.kpi-card:before{content:"";position:absolute;inset:auto -20px -30px auto;width:100px;height:100px;border-radius:50%;filter:blur(30px);opacity:.13}
.kpi-card.purple:before{background:var(--purple)} .kpi-card.teal:before{background:var(--teal)}
.kpi-card.yellow:before{background:var(--yellow)} .kpi-card.cyan:before{background:var(--cyan)} .kpi-card.blue:before{background:var(--blue)}
.kpi-label{display:block;color:#b7cae0;font-size:11px;margin-bottom:7px}
.kpi-card strong{display:block;font-size:16px}
.kpi-card small{color:var(--muted);font-size:10px}
.progress{height:7px;background:#21364d;border-radius:999px;margin:10px 0 5px;overflow:hidden}
.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--blue));border-radius:999px}

.main-grid{display:grid;grid-template-columns:1.05fr 1.45fr;gap:12px;margin-bottom:12px}
.bottom-grid{display:grid;grid-template-columns:1.1fr 1fr .9fr;gap:12px;margin-bottom:12px}
.panel{
  background:linear-gradient(180deg,rgba(11,27,43,.97),rgba(8,23,36,.97));
  border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow);padding:14px;min-width:0
}
.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
.panel-head h2{font-size:15px;margin:0}
.panel-head p,.panel-head span{font-size:10px;color:var(--muted);margin:4px 0 0}
.btc-main{display:grid;grid-template-columns:1fr 180px;gap:14px;align-items:center}
.coin-name{font-size:12px;color:#dce8f5}
.btc-price{font-weight:800;font-size:38px;margin-top:8px;letter-spacing:-.04em}
.btc-sub{display:flex;gap:18px;margin-top:9px;color:var(--muted);font-size:11px}
.btc-sub b.positive{color:var(--green)} .btc-sub b.negative{color:var(--red)}
.traffic-wrap{display:grid;place-items:center}
.traffic-light{
  width:150px;height:150px;border-radius:50%;display:grid;place-items:center;text-align:center;padding:24px;border:1px solid #685e21;
  background:radial-gradient(circle,rgba(255,213,42,.18),rgba(255,213,42,.04) 58%,rgba(0,0,0,.15));
  box-shadow:0 0 38px rgba(255,213,42,.14)
}
.traffic-light.green{border-color:#1e765d;background:radial-gradient(circle,rgba(24,227,155,.18),rgba(24,227,155,.04) 58%,rgba(0,0,0,.15))}
.traffic-light.red{border-color:#77313d;background:radial-gradient(circle,rgba(255,95,109,.18),rgba(255,95,109,.04) 58%,rgba(0,0,0,.15))}
.traffic-dot{width:30px;height:30px;border-radius:50%;background:var(--yellow);box-shadow:0 0 25px rgba(255,213,42,.8)}
.traffic-light.green .traffic-dot{background:var(--green);box-shadow:0 0 25px rgba(24,227,155,.8)}
.traffic-light.red .traffic-dot{background:var(--red);box-shadow:0 0 25px rgba(255,95,109,.8)}
.traffic-light strong{font-size:18px;color:var(--yellow)}
.traffic-light.green strong{color:var(--green)} .traffic-light.red strong{color:var(--red)}
.traffic-light small{font-size:10px;color:#d9e1eb}
.btc-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}
.btc-metrics div{background:#091827;border:1px solid #173551;border-radius:9px;padding:10px}
.btc-metrics span{display:block;color:var(--muted);font-size:9px}.btc-metrics strong{font-size:13px}

.coin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.coin-card{border:1px solid #21435f;border-radius:10px;padding:11px;background:linear-gradient(180deg,#0d2031,#091827);position:relative;overflow:hidden}
.coin-card.signal{border-color:#1e8f71;box-shadow:0 0 0 1px rgba(24,227,155,.1),0 0 22px rgba(24,227,155,.06)}
.coin-card .top{display:flex;align-items:center;justify-content:space-between;gap:6px}
.coin-ident{display:flex;gap:8px;align-items:center}
.coin-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:linear-gradient(135deg,#3f73ff,#9b5cff)}
.coin-symbol{font-size:12px;font-weight:800}.coin-full{font-size:9px;color:var(--muted);display:block;margin-top:2px}
.badge{padding:4px 7px;border-radius:999px;font-size:8px;font-weight:800;border:1px solid #715e16;color:var(--yellow);background:#292410}
.badge.starter{border-color:#247c65;color:var(--green);background:#102a24}
.badge.buy{border-color:#245b8b;color:#69afff;background:#102337}
.badge.heavy{border-color:#68419a;color:#b98aff;background:#21152f}
.badge.invalid{border-color:#76303c;color:#ff8690;background:#2b151a}
.coin-price{font-size:18px;font-weight:800;margin:10px 0 8px}
.coin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.coin-stats span,.coin-bottom span{font-size:8px;color:var(--muted);display:block}
.coin-stats b,.coin-bottom b{font-size:10px}
.positive{color:var(--green)!important}.negative{color:var(--red)!important}
.coin-bottom{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;border-top:1px solid #17334b;margin-top:9px;padding-top:8px}
.coin-bottom .wide{grid-column:1/-1}
.coin-card canvas{width:100%;height:28px;margin-top:8px}

.allocation-wrap{display:grid;grid-template-columns:160px 1fr;gap:16px;align-items:center}
.donut{width:150px;height:150px;border-radius:50%;position:relative;background:conic-gradient(var(--purple) 0 22%,var(--teal) 22% 42%,var(--blue) 42% 58%,var(--red) 58% 70%,var(--cyan) 70% 78%,var(--pink) 78% 84%,#60738c 84% 100%)}
.donut:after{content:"";position:absolute;inset:30px;background:#091827;border-radius:50%}
.donut-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center;z-index:2}
.donut-center strong{font-size:13px}.donut-center span{font-size:9px;color:var(--muted)}
.allocation-list{display:grid;gap:7px}
.alloc-row{display:grid;grid-template-columns:10px 1fr auto auto;gap:8px;align-items:center;font-size:10px;border-bottom:1px solid #163046;padding-bottom:5px}
.alloc-dot{width:8px;height:8px;border-radius:50%}.alloc-row span:nth-child(3){color:#e2edf9;font-weight:700}.alloc-row span:last-child{color:var(--muted)}

.rule-list{display:grid;gap:6px}
.rule{display:grid;grid-template-columns:100px 1fr;gap:8px;padding:8px 9px;border:1px solid #173551;border-radius:8px;background:#0a1927}
.rule b{font-size:9px}.rule span{font-size:9px;color:#b8c9da}
.rule.yellow b{color:var(--yellow)} .rule.green b{color:var(--green)} .rule.blue b{color:#69afff}.rule.purple b{color:#b98aff}.rule.red b{color:#ff8690}
.discipline-box{margin-top:8px;background:#0d2134;border:1px solid #183953;border-radius:8px;padding:8px}
.discipline-box p{font-size:9px;color:#bcd0e4;margin:4px 0}

.alerts-list{display:grid;gap:9px;max-height:280px;overflow:auto}
.alert-item{padding:9px;border:1px solid #17344c;border-radius:8px;background:#0a1927}
.alert-item .alert-title{font-size:10px;font-weight:700}
.alert-item .alert-time{font-size:8px;color:var(--muted);float:right}
.alert-item p{font-size:9px;color:#a9bfd5;margin:5px 0 0;line-height:1.45}

.trade-panel,.thesis-panel{margin-top:12px}
.trade-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px}
.trade-form input,.trade-form select{
  width:100%;background:#071522;color:white;border:1px solid #21435e;border-radius:8px;padding:10px
}
.trade-table-wrap{overflow:auto;margin-top:12px}
table{width:100%;border-collapse:collapse;font-size:10px}
th,td{text-align:left;padding:9px;border-bottom:1px solid #173048;color:#cfe0f2}
th{color:#7fa0bd;font-weight:600}
.table-btn{background:#2a151d;color:#ffb0b8;border:1px solid #5f2a35;border-radius:6px;padding:5px 7px;cursor:pointer}
.thesis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.thesis-card{border:1px solid #173651;border-radius:9px;padding:10px;background:#091827}
.thesis-card h3{font-size:11px;margin:0 0 7px}.thesis-card p{font-size:9px;color:#a9bfd3;line-height:1.5;margin:0}
footer{display:flex;justify-content:space-between;gap:18px;color:#587995;font-size:9px;padding:18px 3px}

code{color:#8cd6ff}
@media (max-width:1200px){
  .kpi-grid{grid-template-columns:repeat(3,1fr)}
  .main-grid{grid-template-columns:1fr}
  .bottom-grid{grid-template-columns:1fr 1fr}
  .coin-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:850px){
  .app-shell{grid-template-columns:1fr}
  .sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid #17324b}
  .nav{grid-template-columns:repeat(3,1fr)} .goal-card{display:none}
  .main{padding:14px}.topbar{flex-direction:column}.kpi-grid{grid-template-columns:1fr 1fr}
  .bottom-grid{grid-template-columns:1fr}.coin-grid{grid-template-columns:1fr 1fr}
  .trade-form{grid-template-columns:1fr 1fr}
  .allocation-wrap{grid-template-columns:1fr}.donut{margin:auto}
  .thesis-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .nav{grid-template-columns:1fr 1fr}
  .kpi-grid{grid-template-columns:1fr}
  .coin-grid{grid-template-columns:1fr}
  .btc-main{grid-template-columns:1fr}.traffic-light{width:125px;height:125px}
  .btc-metrics{grid-template-columns:1fr}
  .trade-form{grid-template-columns:1fr}
  .thesis-grid{grid-template-columns:1fr}
  footer{flex-direction:column}
}


/* =========================================================
   V1.1 READABILITY UPGRADE
   Larger typography + roomier cards for desktop and mobile
   ========================================================= */

body{
  font-size:16px;
}

.main{
  padding:26px;
}

.brand-title{font-size:15px}
.brand-sub{font-size:10px}
.nav-item{font-size:15px;padding:14px 15px}

.eyebrow{font-size:14px}
.goal-big{font-size:17px;line-height:1.35}
.goal-card p{font-size:14px}

.topbar h1{
  font-size:32px;
  line-height:1.15;
}
.topbar p{
  font-size:15px;
  line-height:1.5;
}
.status-dot{font-size:14px}
.btn{font-size:14px;padding:10px 14px}

.kpi-grid{
  gap:12px;
  margin-bottom:16px;
}
.kpi-card{
  min-height:112px;
  padding:18px;
}
.kpi-label{
  font-size:13px;
  margin-bottom:9px;
}
.kpi-card strong{
  font-size:19px;
  line-height:1.3;
}
.kpi-card small{
  font-size:12px;
  line-height:1.4;
}
.progress{height:9px}

.panel{
  padding:17px;
}
.panel-head{
  margin-bottom:15px;
}
.panel-head h2{
  font-size:18px;
  line-height:1.25;
}
.panel-head p,
.panel-head span{
  font-size:12px;
  line-height:1.45;
}

.coin-name{font-size:14px}
.btc-price{
  font-size:44px;
  margin-top:10px;
}
.btc-sub{
  font-size:13px;
  gap:22px;
}
.traffic-light{
  width:165px;
  height:165px;
}
.traffic-light strong{font-size:21px}
.traffic-light small{font-size:12px;line-height:1.3}

.btc-metrics{
  gap:10px;
  margin-top:18px;
}
.btc-metrics div{padding:13px}
.btc-metrics span{font-size:11px}
.btc-metrics strong{font-size:15px}

.coin-grid{gap:10px}
.coin-card{
  padding:14px;
  min-height:235px;
}
.coin-icon{
  width:32px;
  height:32px;
  font-size:14px;
}
.coin-symbol{font-size:14px}
.coin-full{
  font-size:11px;
  margin-top:3px;
}
.badge{
  padding:5px 8px;
  font-size:10px;
}
.coin-price{
  font-size:23px;
  margin:12px 0 10px;
}
.coin-stats{
  gap:8px;
}
.coin-stats span,
.coin-bottom span{
  font-size:10px;
  line-height:1.3;
}
.coin-stats b,
.coin-bottom b{
  font-size:12px;
  line-height:1.35;
}
.coin-bottom{
  gap:9px;
  margin-top:12px;
  padding-top:11px;
}

.allocation-wrap{
  grid-template-columns:180px 1fr;
  gap:20px;
}
.donut{
  width:170px;
  height:170px;
}
.donut:after{inset:34px}
.donut-center strong{font-size:16px}
.donut-center span{font-size:11px}
.allocation-list{gap:9px}
.alloc-row{
  grid-template-columns:12px 1fr auto auto;
  gap:9px;
  font-size:12px;
  padding-bottom:7px;
}
.alloc-dot{width:10px;height:10px}

.rule-list{gap:8px}
.rule{
  grid-template-columns:120px 1fr;
  gap:10px;
  padding:10px 11px;
}
.rule b{font-size:11px}
.rule span{
  font-size:11px;
  line-height:1.4;
}
.discipline-box{
  margin-top:10px;
  padding:10px;
}
.discipline-box p{
  font-size:11px;
  line-height:1.45;
  margin:5px 0;
}

.alerts-list{
  gap:11px;
  max-height:330px;
}
.alert-item{padding:11px}
.alert-item .alert-title{font-size:12px}
.alert-item .alert-time{font-size:10px}
.alert-item p{
  font-size:11px;
  line-height:1.55;
  margin-top:7px;
}

.trade-form input,
.trade-form select{
  font-size:14px;
  padding:12px;
}
table{font-size:12px}
th,td{padding:11px}

.thesis-card{
  padding:13px;
}
.thesis-card h3{
  font-size:13px;
  margin-bottom:8px;
}
.thesis-card p{
  font-size:11px;
  line-height:1.6;
}

footer{
  font-size:11px;
  line-height:1.5;
}

/* More breathing room on large desktop screens */
@media (min-width:1400px){
  .app-shell{grid-template-columns:250px 1fr}
  .sidebar{padding:24px 16px}
  .main{padding:28px}
  .topbar h1{font-size:34px}
  .coin-card{min-height:245px}
}

/* Keep text comfortably readable on tablets */
@media (max-width:1200px){
  body{font-size:15px}
  .topbar h1{font-size:30px}
  .coin-price{font-size:21px}
}

/* Mobile readability */
@media (max-width:850px){
  .main{padding:16px}
  .topbar h1{font-size:28px}
  .topbar p{font-size:14px}
  .panel-head h2{font-size:17px}
  .coin-card{min-height:auto}
  .coin-symbol{font-size:15px}
  .coin-full{font-size:12px}
  .coin-stats span,.coin-bottom span{font-size:11px}
  .coin-stats b,.coin-bottom b{font-size:13px}
}

@media (max-width:560px){
  .topbar h1{font-size:26px}
  .kpi-card strong{font-size:18px}
  .btc-price{font-size:38px}
  .coin-price{font-size:22px}
  .rule{grid-template-columns:1fr}
}
