/* ==========================================================
   SHARE MARKET GYAN — IPO CALENDAR
   Dedicated stylesheet for tools/ipo-calendar.html
========================================================== */

.ipo-calendar-page{width:100%;background:#f8fafc;color:#0f172a}
.ipo-calendar-section{padding:38px 0 70px}
.ipo-calendar-container{max-width:1200px}

.ipo-page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:34px 0 28px}
.ipo-page-intro-text{max-width:820px}
.ipo-page-intro .section-tag{display:inline-flex;align-items:center;padding:6px 12px;margin-bottom:12px;border-radius:999px;background:#e8f0ff;color:#2563eb;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.ipo-page-intro h2{margin:0 0 10px;font-family:"Poppins",sans-serif;font-size:clamp(30px,4vw,42px);line-height:1.15;font-weight:800;color:#0f172a}
.ipo-page-intro p{max-width:760px;margin:0;color:#64748b;font-size:15px;line-height:1.7}
.ipo-live-indicator{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;padding:9px 13px;border:1px solid #bbf7d0;border-radius:999px;background:#f0fdf4;color:#166534;font-size:12px;font-weight:800;white-space:nowrap}
.ipo-live-dot{width:8px;height:8px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.12)}

.ipo-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px;border:1px solid #e2e8f0;border-radius:16px;background:#fff;box-shadow:0 5px 20px rgba(15,23,42,.05);margin-bottom:14px}
.ipo-search-wrap{position:relative;flex:1 1 330px;min-width:240px}
.ipo-search-wrap i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none}
.ipo-search-wrap input{width:100%;height:46px;padding:0 14px 0 42px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#0f172a;font:500 14px/1.2 inherit;outline:none;transition:border-color .2s,box-shadow .2s}
.ipo-search-wrap input::placeholder{color:#94a3b8}
.ipo-search-wrap input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.ipo-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ipo-filter-btn{min-height:38px;padding:0 13px;border:1px solid #dbe3ec;border-radius:999px;background:#fff;color:#475569;font:700 12px/1 inherit;cursor:pointer;transition:all .2s ease}
.ipo-filter-btn:hover{border-color:#93c5fd;color:#2563eb;background:#f8fbff}
.ipo-filter-btn.active{border-color:#2563eb;background:#2563eb;color:#fff;box-shadow:0 3px 8px rgba(37,99,235,.18)}
.ipo-filter-btn:focus-visible{outline:3px solid rgba(37,99,235,.18);outline-offset:2px}

.ipo-data-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;margin-bottom:20px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}
.ipo-data-status{display:inline-flex;align-items:center;gap:8px;color:#64748b;font-size:12px}
.ipo-data-status i{color:#2563eb}
.ipo-data-status strong{color:#334155}

.ipo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.ipo-card{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid #e2e8f0;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(15,23,42,.05);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.ipo-card:hover{transform:translateY(-3px);border-color:#bfdbfe;box-shadow:0 12px 28px rgba(15,23,42,.09)}
.ipo-card::before{content:"";display:block;height:3px;background:#2563eb}
.ipo-card.ipo-status-upcoming::before{background:#2563eb}
.ipo-card.ipo-status-open::before{background:#16a34a}
.ipo-card.ipo-status-closed::before{background:#f59e0b}
.ipo-card.ipo-status-listed::before{background:#64748b}

.ipo-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:19px 19px 15px}
.ipo-company{min-width:0}
.ipo-company h2{margin:0 0 5px;color:#0f172a;font-family:"Poppins",sans-serif;font-size:17px;line-height:1.35;font-weight:750;overflow-wrap:anywhere}
.ipo-pricing{display:block;color:#64748b;font-size:11px;font-weight:700;line-height:1.4}
.ipo-status{flex:0 0 auto;display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.03em;white-space:nowrap}
.ipo-status-upcoming{background:#eff6ff;color:#1d4ed8}
.ipo-status-open{background:#ecfdf5;color:#15803d}
.ipo-status-closed{background:#fffbeb;color:#b45309}
.ipo-status-listed{background:#f1f5f9;color:#475569}

.ipo-price-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 19px 15px}
.ipo-price-box{padding:12px;border:1px solid #e5eaf0;border-radius:10px;background:#f8fafc}
.ipo-label{display:block;margin-bottom:5px;color:#64748b;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.ipo-price-box strong{display:block;color:#0f172a;font-size:14px;line-height:1.35;overflow-wrap:anywhere}

.ipo-dates{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0 19px;padding:13px 0;border-top:1px solid #eef2f7;border-bottom:1px solid #eef2f7}
.ipo-date{padding:0 10px;border-right:1px solid #eef2f7}
.ipo-date:first-child{padding-left:0}
.ipo-date:last-child{padding-right:0;border-right:0}
.ipo-date strong{display:block;color:#334155;font-size:12px;line-height:1.4;white-space:nowrap}

.ipo-financials{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:14px 19px}
.ipo-financials>div{min-width:0}
.ipo-financials span,.ipo-detail span,.ipo-manager span{display:block;margin-bottom:4px;color:#94a3b8;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.ipo-financials strong{display:block;color:#334155;font-size:11px;line-height:1.35;overflow-wrap:anywhere}

.ipo-details{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;padding:0 19px 16px}
.ipo-detail{min-width:0;padding:10px;border-radius:9px;background:#f8fafc}
.ipo-detail strong{display:block;color:#334155;font-size:11px;line-height:1.4;overflow-wrap:anywhere}

.ipo-card-footer{margin-top:auto;padding:13px 19px;border-top:1px solid #eef2f7;background:#fcfdff}
.ipo-manager strong{display:block;color:#475569;font-size:11px;line-height:1.45;overflow-wrap:anywhere}

.ipo-loading,.ipo-empty,.ipo-error{grid-column:1/-1;padding:65px 20px;text-align:center;border:1px solid #e2e8f0;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(15,23,42,.04)}
.ipo-spinner,.ipo-empty-icon,.ipo-error-icon{width:54px;height:54px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;border-radius:50%;font-size:22px}
.ipo-spinner{background:#eff6ff;color:#2563eb}
.ipo-empty-icon{background:#f1f5f9;color:#64748b}
.ipo-error{border-color:#fecaca;background:#fffafa}
.ipo-error-icon{background:#fee2e2;color:#dc2626}
.ipo-loading p,.ipo-empty p,.ipo-error p{max-width:520px;margin:0 auto;color:#64748b;font-size:13px;line-height:1.6}
.ipo-empty h3,.ipo-error h3{margin:0 0 7px;font-family:"Poppins",sans-serif;font-size:19px;color:#0f172a}
.ipo-retry{margin-top:18px;min-height:40px;padding:0 17px;border:0;border-radius:9px;background:#2563eb;color:#fff;font:700 13px inherit;cursor:pointer;transition:background .2s ease}
.ipo-retry:hover{background:#1d4ed8}

.ipo-information{display:flex;align-items:flex-start;gap:13px;margin-top:22px;padding:17px 18px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}
.ipo-information-icon{flex:0 0 auto;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#eff6ff;color:#2563eb}
.ipo-information h3{margin:1px 0 5px;color:#334155;font-size:14px;font-weight:800}
.ipo-information p{margin:0;color:#64748b;font-size:11px;line-height:1.65}

@media(max-width:1050px){.ipo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ipo-page-intro{align-items:flex-start;flex-direction:column}.ipo-controls{align-items:stretch}.ipo-search-wrap{flex-basis:100%}}
@media(max-width:700px){.ipo-calendar-section{padding:25px 0 48px}.ipo-page-intro{padding:22px 0}.ipo-page-intro h2{font-size:30px}.ipo-page-intro p{font-size:14px}.ipo-live-indicator{align-self:flex-start}.ipo-controls{padding:13px;border-radius:12px}.ipo-filters{width:100%;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.ipo-filter-btn{flex:0 0 auto}.ipo-data-bar{align-items:flex-start;flex-direction:column;gap:8px}.ipo-grid{grid-template-columns:1fr;gap:14px}.ipo-card-top{padding:17px 16px 14px}.ipo-price-row,.ipo-financials{padding-left:16px;padding-right:16px}.ipo-dates{margin-left:16px;margin-right:16px}.ipo-details{padding-left:16px;padding-right:16px}.ipo-card-footer{padding-left:16px;padding-right:16px}.ipo-information{padding:14px}}
@media(max-width:420px){.ipo-price-row{grid-template-columns:1fr}.ipo-dates{grid-template-columns:1fr;gap:10px}.ipo-date,.ipo-date:first-child,.ipo-date:last-child{padding:0;border-right:0}.ipo-financials{grid-template-columns:1fr 1fr}.ipo-financials>div:last-child{grid-column:1/-1}.ipo-details{grid-template-columns:1fr}.ipo-card-top{gap:8px}.ipo-company h2{font-size:15px}}
