/*
Theme Name: MarketPulse News
Description: Stock market news site. Live RSS news, curated external links, and the top 20 Nasdaq gainers, refreshing every 60 seconds.
Version: 1.7.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: marketpulse
*/
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Arial,sans-serif;background:#f6f7f9;color:#14181f;line-height:1.5}
a{color:#1d4ed8}
.mp-wrap{max-width:1360px;margin:0 auto;padding:24px 40px 48px}
.mp-header{background:#0f1a2b;color:#fff}
.mp-header-in{max-width:1360px;margin:0 auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between;min-height:64px;flex-wrap:wrap;gap:12px}
.mp-logo{font-size:20px;font-weight:700;color:#fff;text-decoration:none}
.mp-nav{display:flex;gap:24px;font-size:14px;flex-wrap:wrap}
.mp-nav a{color:#c5cfdd;text-decoration:none}
.mp-nav a:hover{color:#fff}
.mp-hero{padding:32px 0 8px}
.mp-hero h1{font-size:34px;margin:0 0 6px}
.mp-hero p{margin:0;color:#3a4250;max-width:760px}
.mp-sessions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.mp-sessions span{flex:1 1 180px;padding:10px 14px;border:1px solid #d5d9e0;border-radius:10px;background:#fff;font-size:14px;font-weight:600;color:#5b6472}
.mp-sessions small{display:block;font-weight:400;font-size:12px}
.mp-sessions .mp-on{background:#0f1a2b;border-color:#0f1a2b;color:#fff}
.mp-statusbar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #e3e6eb;border-radius:10px;padding:12px 16px;margin:12px 0;font-size:14px}
.mp-dot{width:10px;height:10px;border-radius:50%;background:#9aa3b0;display:inline-block}
.mp-dot-live{background:#12a05c;animation:mppulse 2s infinite}
.mp-dot-busy{background:#d99a00}
.mp-dot-off{background:#c62828}
@keyframes mppulse{70%{box-shadow:0 0 0 8px rgba(18,160,92,0)}0%{box-shadow:0 0 0 0 rgba(18,160,92,.6)}100%{box-shadow:0 0 0 0 rgba(18,160,92,0)}}
.mp-sp{flex:1}
.mp-sub{font-size:12px;color:#5b6472}
.mp-btn{display:inline-block;min-height:36px;padding:7px 14px;border:1px solid #c9ced6;border-radius:8px;background:#fff;color:#14181f;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none}
.mp-btn:hover{background:#f1f3f6}
.mp-notice{padding:10px 14px;border-radius:8px;margin:8px 0;font-size:14px;background:#fff7e0;color:#6b4a00}
.mp-grid{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;margin-top:16px}
.mp-card{background:#fff;border:1px solid #e3e6eb;border-radius:12px;padding:20px}
.mp-gainers{flex:1 1 680px;min-width:0}
.mp-news{flex:0 0 420px;max-height:900px;overflow:auto}
.mp-card h2{font-size:18px;margin:0 0 12px}
.mp-tablebox{overflow-x:auto}
table.mp-table{width:100%;border-collapse:collapse;font-size:14px;min-width:720px}
.mp-table th{text-align:left;padding:10px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#5b6472;border-bottom:1px solid #d5d9e0;background:#f1f3f6;white-space:nowrap}
.mp-table td{padding:12px 10px;border-bottom:1px solid #eef0f3}
.mp-sortbtn{all:unset;cursor:pointer;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit}
.mp-sortbtn:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px}
.mp-up{font-weight:700;color:#0a6a40}
.mp-down{font-weight:700;color:#b3261e}
.mp-badge{margin-left:8px;padding:2px 8px;border-radius:999px;background:#e6f4ec;color:#0a6a40;font-size:11px;font-weight:600}
.mp-flash-up{animation:mpup 1.6s}
.mp-flash-down{animation:mpdn 1.6s}
@keyframes mpup{from{background:#bfe9cf}to{background:transparent}}
@keyframes mpdn{from{background:#f6c9c6}to{background:transparent}}
.mp-tools{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.mp-tools input,.mp-tools select{height:40px;padding:0 12px;border:1px solid #c9ced6;border-radius:8px;font-size:14px;background:#fff;max-width:100%}
.mp-item{padding:12px 0;border-top:1px solid #e3e6eb;font-size:14px}
.mp-item.mp-new{background:#f1f7ff;margin:0 -8px;padding:12px 8px}
.mp-src{display:inline-block;padding:2px 8px;border:1px solid #c9ced6;border-radius:6px;font-size:11px;font-weight:600;color:#3a4250;margin-right:6px}
.mp-tag-new{background:#1d4ed8;color:#fff;border-radius:4px;font-size:10px;font-weight:700;padding:1px 6px;margin-left:6px}
.mp-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.mp-links a{display:block;padding:14px 16px;background:#fff;border:1px solid #e3e6eb;border-radius:10px;text-decoration:none;color:#14181f;font-weight:600}
.mp-links a small{display:block;font-weight:400;color:#5b6472;font-size:12px}
.mp-links a:hover{border-color:#1d4ed8}
.mp-section{margin-top:32px}
.mp-section h2{font-size:20px}
.mp-posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.mp-footer{padding:32px 40px;text-align:center;font-size:13px;color:#5b6472}
.mp-content{background:#fff;border:1px solid #e3e6eb;border-radius:12px;padding:32px}
.mp-toast{position:fixed;right:20px;bottom:20px;background:#0f1a2b;color:#fff;padding:12px 16px;border-radius:10px;font-size:14px;max-width:340px;display:none;z-index:9999}
@media(max-width:700px){.mp-wrap,.mp-header-in{padding-left:16px;padding-right:16px}.mp-hero h1{font-size:26px}.mp-news{flex-basis:100%}}

.mp-fg{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px}
.mp-fc h3{margin:0 0 4px;font-size:16px;display:flex;align-items:center;gap:8px}
.mp-fi{padding:9px 0;border-top:1px solid #eef0f3;font-size:14px}
.mp-fi a{color:#14181f;text-decoration:none}
.mp-fi a:hover{text-decoration:underline}
.mp-fi.mp-new{background:#f1f7ff;margin:0 -8px;padding:9px 8px}

.mp-auth{max-width:440px;margin:48px auto}
.mp-auth h1{margin-top:0}
.mp-auth label{display:block;font-size:13px;font-weight:600;margin:16px 0 4px}
.mp-auth input[type=text],.mp-auth input[type=tel],.mp-auth input[type=password]{width:100%;height:44px;padding:0 14px;border:1px solid #c9ced6;border-radius:8px;font-size:16px}
.mp-auth .mp-check{display:flex;gap:8px;align-items:center;font-weight:400}
.mp-btn-primary{background:#1d4ed8;border-color:#1d4ed8;color:#fff;margin-top:20px;min-height:44px;padding:11px 20px;font-size:14px}
.mp-btn-primary:hover{background:#1a43b8}
.mp-err{background:#fdecec;color:#8a1c1c}
.mp-who{color:#fff}
