:root{--bg:#091321;--glass:rgba(180,218,255,.085);--border:rgba(210,235,255,.18);--text:#f1f8ff;--muted:#9bafc4;--green:#68e5b3;--red:#ffa0ac;--cyan:#74edda;--amber:#ffd18a}
*{box-sizing:border-box}
body{margin:0;background:#070e19;color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;padding:18px}
.dashboard{max-width:1400px;margin:0 auto;padding:22px;border-radius:24px;background:radial-gradient(ellipse at 90% 0%,#285d7280,transparent 45%),radial-gradient(ellipse at 0% 80%,#4b367250,transparent 50%),linear-gradient(135deg,#091827,#101526);border:1px solid var(--border)}
.glass{background:linear-gradient(130deg,rgba(190,225,255,.13),rgba(100,140,185,.035));border:1px solid var(--border);border-radius:17px;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:inset 0 1px #ffffff15,0 12px 30px #00000020}
.hdr{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.logo{font-size:26px;font-weight:800;letter-spacing:.06em}.cy{color:var(--cyan)}
.sub{font-size:11px;letter-spacing:.28em;color:var(--muted);margin-top:4px}
.tag{font-size:12px;padding:7px 14px;border-radius:999px;border:1px solid var(--border);background:var(--glass);color:var(--amber)}
.tag.live{color:var(--green)}
.commodities{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.card{padding:14px 16px}.card .lb{font-size:12px;color:var(--muted);letter-spacing:.08em}
.card .pr{font-size:24px;font-weight:700;margin:6px 0 2px}.up{color:var(--green)}.dn{color:var(--red)}
.meta{font-size:10px;color:var(--muted);opacity:.85;margin-top:4px}
.grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px}
.main{padding:20px;min-width:0}
.mainhead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.sym{font-size:64px;font-weight:800;line-height:1;letter-spacing:.02em}
.cname{color:var(--muted);margin-top:6px}
.pxbox{text-align:right}.px{font-size:34px;font-weight:700}.chg{font-size:15px;font-weight:600}
.chartwrap{position:relative;height:400px;margin-top:16px}
#chart{width:100%;height:100%;display:block}
.tip{position:absolute;pointer-events:none;display:none;font-size:12px;padding:8px 10px;border-radius:10px;background:rgba(9,19,33,.92);border:1px solid var(--border);white-space:nowrap;line-height:1.5}
.srcline{font-size:11px;color:var(--muted);margin-top:6px}
.selector{display:flex;gap:10px;margin-top:14px;overflow-x:auto;padding-bottom:6px}
.selbtn{flex:0 0 auto;min-width:118px;text-align:left;cursor:pointer;color:var(--text);padding:10px 12px;font:inherit}
.selbtn.act{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan) inset}
.selbtn .g{font-size:9px;letter-spacing:.14em;color:var(--muted)}.selbtn .s{font-weight:700;font-size:15px}
.selbtn .nd{font-size:10px;color:var(--muted);height:24px;line-height:24px}
.side{display:flex;flex-direction:column;gap:14px;min-width:0}
#news{display:flex;flex-direction:column;gap:12px}
.news{padding:14px}.news.large{padding:18px}
.news .t{font-weight:700;margin:6px 0}.news.large .t{font-size:19px}
.news .d{font-size:12.5px;color:var(--muted);line-height:1.45}
.imp{font-size:10px;font-weight:700;letter-spacing:.12em;padding:3px 8px;border-radius:999px;border:1px solid}
.imp.HIGH{color:var(--red)}.imp.MED{color:var(--amber)}.imp.LOW{color:var(--cyan)}
.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.chip{font-size:10px;padding:2px 7px;border-radius:6px;background:var(--glass);border:1px solid var(--border);color:var(--muted)}
.chip.tk{color:var(--cyan)}
.warn{font-size:10px;color:var(--amber);margin-top:6px}
.checklist{padding:16px}
.sig{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.sig .w{color:var(--amber);font-weight:800;letter-spacing:.1em}.sig .n{color:var(--red);font-weight:800;letter-spacing:.1em;border:1px solid var(--red);border-radius:8px;padding:2px 8px;font-size:12px}
.ci{display:flex;gap:10px;align-items:center;padding:7px 0;border-top:1px solid rgba(210,235,255,.08);font-size:13px}
.ci .b{width:18px;height:18px;border-radius:6px;border:1px solid var(--border);display:grid;place-items:center;font-size:11px}
.ci.done .b{background:#68e5b333;color:var(--green);border-color:var(--green)}.ci.pending{color:var(--muted)}
.foot{margin-top:16px;font-size:11px;color:var(--muted);text-align:center}
.empty{fill:var(--muted);font-size:14px}
@media(max-width:850px){.grid{grid-template-columns:1fr}.commodities{grid-template-columns:repeat(2,1fr)}.sym{font-size:48px}}
@media(max-width:580px){body{padding:8px}.dashboard{padding:14px;border-radius:18px}.sym{font-size:38px}.px{font-size:24px}.chartwrap{height:300px}.card .pr{font-size:20px}.mainhead{flex-direction:column;align-items:flex-start}.pxbox{text-align:left}}
/* ---- LUKE site additions (mobile-first) ---- */
body{padding:10px}
.dashboard{padding:14px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dp{position:relative}
.dpbtn{cursor:pointer;padding:7px 14px;border-radius:999px;font:600 13px inherit;font-family:inherit;border:1px solid var(--border);color:var(--cyan);background:rgba(116,237,218,.08)}
.dppanel{position:absolute;top:42px;left:0;z-index:50;width:290px;padding:14px;background:rgba(12,24,42,.97);transform-origin:top;animation:sd .18s ease-out}
@keyframes sd{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.dphead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-weight:700;letter-spacing:.1em}
.cb{border-radius:9px;border:1px solid rgba(210,235,255,.12);background:rgba(190,225,255,.05);color:var(--text);font:12px inherit;font-family:inherit;padding:8px 0;cursor:pointer}
.cb.has{border-color:var(--cyan);background:rgba(116,237,218,.12)}.cb.dim{opacity:.32;cursor:default}
.cb.sel{background:var(--cyan);color:#06151a}
.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.dgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.dow{color:var(--muted);font-size:10px;padding:2px 0}
.dot{display:block;width:4px;height:4px;border-radius:4px;background:var(--cyan);margin:2px auto 0}.cb.sel .dot{background:#06151a}
.nodot{display:block;height:6px}
.logo{font-size:18px;letter-spacing:.18em}
.total{text-align:right}.total .lb{font-size:11px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}
.total .v{font-size:24px;font-weight:800}
.banner{padding:12px;color:var(--amber);font-size:13px;margin-bottom:14px;line-height:1.5}
.tks{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.tab{cursor:pointer;padding:8px 13px;border-radius:11px;font:600 13px inherit;font-family:inherit;color:var(--text);background:rgba(190,225,255,.06);border:1px solid var(--border)}
.tab.on{background:var(--cyan);color:#06151a;border-color:var(--cyan)}
.tab.tk.on{background:rgba(116,237,218,.16)}
.symrow{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.symrow .sym{font-size:44px}
.pill{padding:3px 10px;border-radius:999px;font-size:11px;letter-spacing:.12em;color:var(--amber);border:1px solid rgba(255,209,138,.4)}
.layout{display:grid;grid-template-columns:1fr;gap:14px}
.col{display:flex;flex-direction:column;gap:14px;min-width:0}
.box{padding:16px}
.lbl{color:var(--muted);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin-bottom:10px}
.tfs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.cap{color:var(--muted);font-size:12px;margin-bottom:8px}
.shot{display:block;width:100%;border-radius:12px;border:1px solid var(--border);background:#05101c}
.hint{font-size:11px;color:var(--muted);margin-top:6px}
.ord{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid rgba(210,235,255,.08);font-size:13px}
.ord .r{text-align:right;color:var(--muted)}
.note{margin-top:10px;font-size:12px;color:var(--amber);line-height:1.5}
.p{margin:0 0 10px;line-height:1.6;font-size:14px}
.terms{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.term,.logc{padding:12px;border-radius:12px;background:rgba(190,225,255,.05);border:1px solid rgba(210,235,255,.1);font-size:13px;line-height:1.5}
.term b{color:var(--cyan)}
.ls{display:flex;gap:10px;margin-bottom:10px;font-size:13px;line-height:1.5}.ls .n{color:var(--cyan);font-weight:800}
.chk{display:flex;gap:9px;margin-bottom:9px;font-size:13px;line-height:1.5;cursor:pointer}
.chk input{accent-color:var(--cyan);margin-top:3px}.chk.done{opacity:.55}
.loggrid{display:grid;grid-template-columns:1fr;gap:12px}
.sig{margin-top:12px;color:var(--muted);font-size:11px;font-style:italic}
.lb-full{position:fixed;inset:0;z-index:100;background:rgba(3,8,15,.96);overflow:auto;touch-action:pinch-zoom pan-x pan-y;display:none}
.lb-full.open{display:block}.lb-full img{display:block;width:100%;min-width:900px;max-width:none}
.lb-close{position:fixed;top:10px;right:10px;z-index:101;padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:rgba(12,24,42,.9);color:var(--text);font:600 14px inherit;font-family:inherit}
@media(min-width:760px){body{padding:18px}.dashboard{padding:22px}.loggrid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.symrow .sym{font-size:60px}.logo{font-size:22px}}
@media(min-width:1050px){.layout{grid-template-columns:minmax(0,1fr) 360px}.lb-full img{min-width:0}}
.logo{text-transform:uppercase}
