/* ===================================================================
   Gold Analysis Platform — shared stylesheet
   Used by: local Platform, authentication, and administration pages
   =================================================================== */
:root{
  --bg:#0b0d10;
  --card:#14171c;
  --card-border:#262b33;
  --gold:#d4af37;
  --gold-light:#f4e4a6;
  --text:#e8e6e1;
  --muted:#9aa1ab;
  --green:#3ecf8e;
  --red:#e5534b;
}
html[data-theme="light"]{--bg:#f4f5f7;--card:#ffffff;--card-border:#cdd2da;--gold:#8a6b00;--gold-light:#4a3900;--text:#111318;--muted:#555f6d;--green:#087a4d;--red:#bd2722;color-scheme:light}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:'Segoe UI', Tahoma, Arial, sans-serif;
  background:radial-gradient(circle at top, #14161a 0%, #0b0d10 60%);
  color:var(--text);
  padding-bottom:60px;
}
html[data-theme="light"] body{background:radial-gradient(circle at top,#ffffff 0%,#eef1f5 60%)}
html[data-theme="light"] header{background:rgba(255,255,255,.94)}
html[data-theme="light"] .card,html[data-theme="light"] .widget-card,html[data-theme="light"] .factor-card,html[data-theme="light"] .admin-card,html[data-theme="light"] .auth-card{box-shadow:0 5px 18px rgba(20,30,45,.08)}
html[data-theme="light"] .price-card{background:linear-gradient(135deg,#fffdf2,#fff)}
html[data-theme="light"] .gram-item,html[data-theme="light"] select,html[data-theme="light"] input,html[data-theme="light"] button,html[data-theme="light"] .admin-link-grid a{background:#fff;color:#111318}
html[data-theme="light"] #candleChart,html[data-theme="light"] #chartWrap{background:#fff}
html[data-theme="light"] a{color:#6f5300}
html[data-theme="light"] .section-title,html[data-theme="light"] .auth-kicker{color:#725600}
html[data-theme="light"] .badge{background:#e5f6ed;color:#075f3d;border-color:#9ed6ba}
html[data-theme="light"] #marketStatus{background:#fff3d6!important;color:#774d00!important;border-color:#dfbd6d!important}
html[data-theme="light"] .status.ok,html[data-theme="light"] .auth-status.ok{background:#e4f6ec;color:#075f3d;border-color:#9ed6ba}
html[data-theme="light"] .status.err,html[data-theme="light"] .auth-status.error,html[data-theme="light"] .error-msg{background:#fdeaea;color:#922c28;border-color:#e9aaa7}
html[data-theme="light"] .status.pending{background:#fff5d9;color:#684d00;border-color:#dfbd6d}
html[data-theme="light"] .admin-card button.secondary{background:#fff;color:#1b1f25;border-color:#b9c0ca}
html[data-theme="light"] .auth-card button[type=submit]{background:#f6e7aa;color:#3b2d00;border-color:#c5a640}
html[data-theme="light"] .change-up{color:#057149}html[data-theme="light"] .change-down{color:#b4231f}
html[data-theme="light"] .updated,html[data-theme="light"] .sub,html[data-theme="light"] .admin-card p.desc{color:#4f5967}
.theme-toggle{position:fixed;right:18px;bottom:18px;z-index:1000;width:46px;height:46px;padding:0;border-radius:50%;display:grid;place-items:center;font-size:20px;background:#15181d;color:#fff;border:1px solid #39404b;box-shadow:0 8px 25px rgba(0,0,0,.3)}
html[data-theme="light"] .theme-toggle{background:#fff;color:#111;border-color:#b8bec8;box-shadow:0 8px 25px rgba(20,30,45,.18)}
a{color:var(--gold);}

/* ---------- header (platform page) ---------- */
header{
  padding:22px 24px 18px;
  border-bottom:1px solid var(--card-border);
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  position:sticky;
  top:0;
  background:rgba(11,13,16,0.92);
  backdrop-filter:blur(6px);
  z-index:50;
}
header h1{
  margin:0;
  font-size:20px;
  color:var(--gold-light);
  display:flex;
  align-items:center;
  gap:8px;
}
header h1 span.dot{
  width:9px;height:9px;border-radius:50%;background:var(--green);
  box-shadow:0 0 8px var(--green);
  animation:pulse 1.6s infinite;
}
header h1 span.dot.offline{background:var(--red);box-shadow:0 0 8px var(--red);}
@keyframes pulse{0%{opacity:1}50%{opacity:.3}100%{opacity:1}}
.updated{font-size:12px;color:var(--muted);}

/* ---------- layout ---------- */
main{max-width:1180px;margin:0 auto;padding:20px 20px 0;}
.section-title{
  font-size:15px;
  color:var(--gold);
  margin:34px 0 12px;
  display:flex;
  align-items:center;
  gap:8px;
  letter-spacing:.3px;
}
.section-title::after{
  content:"";
  flex:1;
  height:1px;
  background:linear-gradient(to right, var(--card-border), transparent);
}
.cards-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:12px;
}
.card{
  background:var(--card);
  border:1px solid var(--card-border);
  border-radius:12px;
  padding:16px;
}
.grid-2{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;}
@media (max-width:900px){.grid-2{grid-template-columns:1fr;}}
.widget-card{
  background:var(--card);
  border:1px solid var(--card-border);
  border-radius:12px;
  padding:10px;
  overflow:hidden;
}

/* ---------- price cards ---------- */
.price-card{
  background:linear-gradient(135deg,#1a1c14,#14171c);
  border:1px solid #3a3320;
}
.price-card .label{font-size:12px;color:var(--muted);margin-bottom:6px;}
.price-card .value{font-size:26px;font-weight:700;color:var(--gold-light);}
.price-card .sub{font-size:12px;margin-top:6px;color:var(--muted);}
.change-up{color:var(--green);}
.change-down{color:var(--red);}
.sparkline{width:100%;height:50px;display:block;margin-top:8px;}

/* ---------- grams / karat calculator ---------- */
.grams-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:10px;
  margin-top:10px;
}
.gram-item{
  background:#101216;
  border:1px solid var(--card-border);
  border-radius:10px;
  padding:10px 12px;
  text-align:center;
}
.gram-item .k{font-size:12px;color:var(--muted);}
.gram-item .v{font-size:16px;color:var(--gold-light);font-weight:600;margin-top:4px;}

/* ---------- forms ---------- */
select, input, button{
  background:#101216;
  color:var(--text);
  border:1px solid var(--card-border);
  border-radius:8px;
  padding:6px 10px;
  font-size:13px;
}
button{cursor:pointer;}
button:hover{border-color:var(--gold);}
.controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px;}
.badge{
  font-size:11px;padding:2px 8px;border-radius:20px;background:#1c2a22;color:var(--green);border:1px solid #244a34;
}

/* ---------- factors (educational cards) ---------- */
.factors{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:12px;
}
.factor-card{
  background:var(--card);
  border:1px solid var(--card-border);
  border-radius:12px;
  padding:14px 16px;
}
.factor-card h3{margin:0 0 6px;font-size:14px;color:var(--gold-light);display:flex;gap:8px;align-items:center;}
.factor-card p{margin:0;font-size:13px;line-height:1.7;color:var(--muted);}

/* ---------- footer ---------- */
footer{
  max-width:1180px;margin:40px auto 0;padding:16px 20px;
  color:var(--muted);font-size:12px;border-top:1px solid var(--card-border);
  text-align:center;
}

.trade-plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px}.trade-plan-card{background:var(--card);border:1px solid var(--card-border);border-radius:14px;padding:18px}.trade-plan-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.trade-plan-head h2{margin:0;color:var(--gold-light);font-size:18px}.trade-side{padding:5px 12px;border-radius:20px;font-size:12px;font-weight:800}.trade-side.buy{background:#173d2b;color:#5be39b}.trade-side.sell{background:#461f25;color:#ff8b96}.trade-explanation{color:var(--muted);line-height:1.7;min-height:44px}.trade-levels{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.trade-levels div{border:1px solid var(--card-border);border-radius:9px;padding:9px;background:#101216}.trade-levels small{display:block;color:var(--muted);margin-bottom:4px}.trade-levels strong{color:var(--text)}.trade-levels .stop strong{color:#f06a73}.trade-levels .target strong{color:#43d58c}.trade-updated,.trade-empty{margin-top:12px;color:var(--muted);font-size:12px}
html[data-theme="light"] .trade-levels div{background:#f8fafc}html[data-theme="light"] .trade-side.buy{background:#dff6e9;color:#075f3d}html[data-theme="light"] .trade-side.sell{background:#fde7e8;color:#922c28}.trade-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.trade-admin-grid input,.admin-card textarea{display:block;width:100%;margin-top:6px;padding:10px;background:#101216;color:var(--text);border:1px solid var(--card-border);border-radius:8px}.admin-card textarea{font:inherit;margin-bottom:12px}html[data-theme="light"] .trade-admin-grid input,html[data-theme="light"] .admin-card textarea{background:#fff;color:#111318}

/* ---------- errors / status ---------- */
.error-msg{
  background:#2a1414;border:1px solid #5c2626;color:#f2a3a3;
  padding:12px 14px;border-radius:8px;font-size:13px;margin-top:10px;
  line-height:1.6;
}
.error-msg ul{margin:8px 0 0;padding-left:18px;}
.error-msg button{margin-top:8px;background:#3a1c1c;border-color:#5c2626;color:#f2a3a3;}

/* ===================================================================
   Admin page specific
   =================================================================== */
.admin-main{max-width:720px;margin:0 auto;padding:30px 20px 60px;}
.admin-main h1{color:var(--gold-light);font-size:22px;display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.backlink{font-size:13px;margin-bottom:24px;display:inline-block;}
.admin-card{
  background:var(--card);border:1px solid var(--card-border);border-radius:12px;
  padding:20px;margin-bottom:20px;
}
.admin-card h2{margin:0 0 6px;font-size:16px;color:var(--gold-light);}
.admin-card p.desc{margin:0 0 14px;font-size:13px;color:var(--muted);line-height:1.6;}
.admin-card label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;}
.admin-card input[type=password], .admin-card input[type=text]{
  width:100%;background:#101216;color:var(--text);border:1px solid var(--card-border);
  border-radius:8px;padding:10px 12px;font-size:14px;margin-bottom:10px;font-family:monospace;
}
.admin-card .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.admin-card button.secondary{background:#101216;color:var(--text);border-color:var(--card-border);}
.status{font-size:13px;margin-top:10px;padding:8px 12px;border-radius:8px;display:none;}
.status.ok{display:block;background:#1c2a22;color:var(--green);border:1px solid #244a34;}
.status.err{display:block;background:#2a1414;color:#f2a3a3;border:1px solid #5c2626;}
.status.pending{display:block;background:#1c1c14;color:var(--gold-light);border:1px solid #3a3320;}
.keybadge{font-size:12px;color:var(--muted);margin-top:4px;}
.toggle-eye{cursor:pointer;font-size:12px;color:var(--gold);background:none;border:none;padding:4px 8px;}

/* ---------- local authentication ---------- */
.auth-page{min-height:100vh;padding:0;display:grid;place-items:center}.auth-shell{width:min(440px,92vw);padding:30px 0}.auth-card{background:var(--card);border:1px solid var(--card-border);border-radius:16px;padding:28px;box-shadow:0 20px 60px rgba(0,0,0,.35)}.auth-kicker{color:var(--gold);font-size:11px;letter-spacing:.16em;margin:0 0 8px}.auth-card h1{margin:0 0 8px;color:var(--gold-light)}.auth-copy,.auth-switch{color:var(--muted);font-size:13px;line-height:1.6}.auth-card label{display:block;color:var(--muted);font-size:13px;margin:13px 0}.auth-card input{display:block;width:100%;margin-top:6px;padding:11px 12px}.auth-card button[type=submit]{width:100%;padding:11px;margin-top:5px;background:#2a2515;border-color:#5c4b1c;color:var(--gold-light);font-weight:700}.auth-status{display:none;margin-top:12px;padding:9px;border-radius:8px;font-size:13px}.auth-status.ok{display:block;background:#1c2a22;color:var(--green)}.auth-status.error{display:block;background:#2a1414;color:#f2a3a3}.auth-switch{text-align:center;margin:18px 0 0}.admin-main.wide{max-width:1280px}.admin-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}.admin-nav a{padding:8px 12px;border:1px solid var(--card-border);border-radius:8px;text-decoration:none}.users-table-wrap{overflow:auto;margin-top:14px}.users-table{width:100%;border-collapse:collapse;font-size:12px}.users-table th,.users-table td{padding:9px;border-bottom:1px solid var(--card-border);text-align:left;white-space:nowrap}.users-table th{color:var(--muted)}.users-table td:last-child{display:flex;gap:5px;align-items:center}.days-input{width:70px}
