:root{--ipl-navy: #0b1e4a;--ipl-navy-2: #19306b;--ipl-saffron: #f7a400;--ipl-saffron-dark: #c98500;--ipl-sky: #eef3fc;--ipl-line: #d9e1ef;--ipl-text: #142033;--ipl-muted: #56627a;--ipl-win: #0f7a4a;--ipl-error: #b4232c;--ipl-radius: 14px;--ipl-shadow: 0 16px 36px rgba(11, 30, 74, 0.1);--primary: #19306b;--primary-dark: #0b1e4a;--border: #d9e1ef;--surface: #ffffff;--shadow-soft: 0 16px 36px rgba(11, 30, 74, 0.1);--surface-muted: #eef3fc;--text-main: #142033;--text-muted: #56627a;}
.ipl-tool{background: #fff;border: 1px solid var(--ipl-line);border-top: 5px solid var(--ipl-saffron);border-radius: var(--ipl-radius);box-shadow: var(--ipl-shadow);padding: 1.25rem;margin: 1.5rem 0 3rem;}
.ipl-byline{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 0.25rem 1rem;font-size: 0.82rem;color: var(--ipl-muted);padding-bottom: 0.85rem;margin-bottom: 1rem;border-bottom: 1px dashed var(--ipl-line);}
.ipl-byline .author-link{color: var(--ipl-navy-2);font-weight: 600;text-decoration: underline;text-underline-offset: 2px;}
.ipl-modes{display: grid;grid-template-columns: repeat(3, 1fr);background: var(--ipl-navy);border-radius: 10px;padding: 0.3rem;gap: 0.3rem;margin-bottom: 1.1rem;}
.ipl-mode input,.ipl-chip input{position: absolute;opacity: 0;pointer-events: none;}
.ipl-mode span{display: block;text-align: center;padding: 0.6rem 0.5rem;border-radius: 7px;color: #c9d4ee;font-weight: 700;font-size: 0.92rem;cursor: pointer;transition: background 0.15s, color 0.15s;}
.ipl-mode input:checked + span{background: var(--ipl-saffron);color: var(--ipl-navy);}
.ipl-mode input:focus-visible + span,.ipl-chip input:focus-visible ~ .ipl-chip-abbr{outline: 2px solid var(--ipl-saffron);outline-offset: 2px;}
.ipl-pool{border: 0;padding: 0;margin: 0 0 1rem;min-width: 0;}
.ipl-pool legend,.ipl-names label{float: none;width: auto;padding: 0;font-size: 0.74rem;font-weight: 700;letter-spacing: 0.08em;text-transform: uppercase;color: var(--ipl-muted);margin-bottom: 0.5rem;}
.ipl-pool-count{text-transform: none;letter-spacing: 0;font-weight: 500;margin-left: 0.4rem;}
.ipl-pool-count b{color: var(--ipl-navy);}
.ipl-presets{display: flex;flex-wrap: wrap;gap: 0.4rem;margin-bottom: 0.7rem;}
.ipl-preset{background: var(--ipl-sky);border: 1px solid var(--ipl-line);border-radius: 999px;padding: 0.3rem 0.8rem;font-size: 0.82rem;font-weight: 600;color: var(--ipl-navy-2);cursor: pointer;}
.ipl-preset:hover{border-color: var(--ipl-navy-2);}
.ipl-preset small{color: var(--ipl-muted);font-weight: 500;margin-left: 0.15rem;}
.ipl-chips{list-style: none;padding: 0;margin: 0;display: grid;grid-template-columns: repeat(5, minmax(0, 1fr));gap: 0.5rem;}
.ipl-chip{position: relative;display: flex;flex-direction: column;gap: 0.15rem;padding: 0.55rem 0.65rem 0.55rem 0.85rem;border: 1px solid var(--ipl-line);border-radius: 9px;cursor: pointer;background: #fff;opacity: 0.5;transition: opacity 0.15s, border-color 0.15s, box-shadow 0.15s;}
.ipl-chip::before{content: "";position: absolute;left: 0;top: 0;bottom: 0;width: 5px;border-radius: 9px 0 0 9px;background: var(--team);}
.ipl-chip:has(input:checked){opacity: 1;border-color: var(--team);box-shadow: 0 2px 6px rgba(11, 30, 74, 0.08);}
.ipl-chip-abbr{font-weight: 800;font-size: 0.95rem;color: var(--ipl-navy);}
.ipl-chip-name{font-size: 0.74rem;color: var(--ipl-muted);line-height: 1.25;}
.ipl-names{margin-bottom: 1rem;}
.ipl-names[hidden]{display: none;}
.ipl-names-head{display: flex;justify-content: space-between;align-items: baseline;gap: 0.5rem;}
.ipl-names label small{text-transform: none;letter-spacing: 0;font-weight: 500;}
.ipl-names textarea{width: 100%;border: 1px solid var(--ipl-line);border-radius: 9px;padding: 0.6rem 0.75rem;font-size: 0.95rem;color: var(--ipl-text);resize: vertical;}
.ipl-names textarea:focus{outline: 2px solid var(--ipl-saffron);border-color: var(--ipl-saffron);}
.ipl-names > small{display: block;margin-top: 0.3rem;font-size: 0.8rem;color: var(--ipl-muted);}
.ipl-link{background: none;border: 0;padding: 0;color: var(--ipl-navy-2);font-size: 0.85rem;font-weight: 700;text-decoration: underline;text-underline-offset: 2px;cursor: pointer;}
.ipl-actions{display: flex;flex-wrap: wrap;align-items: center;gap: 0.6rem 0.75rem;padding-top: 0.25rem;}
.ipl-go{display: inline-flex;align-items: center;gap: 0.5rem;background: var(--ipl-saffron);color: var(--ipl-navy);border: 0;border-radius: 9px;padding: 0.75rem 1.4rem;font-weight: 800;font-size: 1rem;cursor: pointer;transition: background 0.15s;}
.ipl-go:hover{background: var(--ipl-saffron-dark);}
.ipl-go:disabled{opacity: 0.65;cursor: wait;}
.ipl-ghost{display: inline-flex;align-items: center;gap: 0.4rem;background: #fff;border: 1px solid var(--ipl-line);color: var(--ipl-navy-2);border-radius: 9px;padding: 0.7rem 1rem;font-weight: 600;font-size: 0.9rem;cursor: pointer;}
.ipl-ghost.is-done{border-color: var(--ipl-win);color: var(--ipl-win);}
.ipl-status{flex: 1 1 260px;margin: 0;font-size: 0.88rem;color: var(--ipl-muted);}
.ipl-status.is-error{color: var(--ipl-error);font-weight: 600;}
.ipl-stage{margin-top: 1.25rem;background: var(--ipl-sky);border-radius: 12px;padding: 1rem;min-height: 150px;}
.ipl-stage .is-new{animation: ipl-in 0.35s ease both;}
.ipl-card{display: flex;gap: 1.1rem;align-items: flex-start;background: #fff;border-radius: 12px;border-left: 8px solid var(--team);padding: 1.1rem 1.25rem;box-shadow: 0 2px 8px rgba(11, 30, 74, 0.07);}
.ipl-card-badge{flex: 0 0 auto;display: grid;place-items: center;width: 72px;height: 72px;border-radius: 50%;background: var(--team);color: #fff;font-weight: 800;font-size: 1.15rem;letter-spacing: 0.03em;}
.ipl-card-body{min-width: 0;flex: 1;}
.ipl-card-name{font-size: 1.5rem;font-weight: 800;color: var(--ipl-navy);margin: 0 0 0.6rem;}
.ipl-card-facts{display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 0.5rem 1.25rem;margin: 0;}
.ipl-card-facts dt{font-size: 0.72rem;text-transform: uppercase;letter-spacing: 0.07em;color: var(--ipl-muted);font-weight: 700;}
.ipl-card-facts dd{margin: 0;color: var(--ipl-text);font-weight: 600;}
.ipl-card-note{margin: 0.7rem 0 0;font-size: 0.85rem;color: var(--ipl-muted);}
.ipl-tag{display: inline-flex;align-items: center;gap: 0.45rem;background: #fff;border: 1px solid var(--ipl-line);border-left: 5px solid var(--team);border-radius: 7px;padding: 0.35rem 0.6rem;font-size: 0.9rem;min-width: 0;}
.ipl-tag b{color: var(--ipl-navy);}
.ipl-tag span{color: var(--ipl-text);white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}
.ipl-tag.is-win{border-color: var(--ipl-win);border-left-color: var(--team);background: #eaf7f0;font-weight: 700;}
.ipl-order{list-style: none;padding: 0;margin: 0;display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 0.5rem;counter-reset: none;}
.ipl-slot{display: flex;align-items: center;gap: 0.6rem;background: #fff;border-radius: 9px;padding: 0.45rem 0.6rem;animation: ipl-in 0.3s ease both;min-width: 0;}
.ipl-slot-no{flex: 0 0 auto;display: grid;place-items: center;width: 30px;height: 30px;border-radius: 50%;background: var(--ipl-navy);color: var(--ipl-saffron);font-weight: 800;font-size: 0.9rem;}
.ipl-slot-name{font-weight: 700;color: var(--ipl-navy);min-width: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
.ipl-slot .ipl-tag{margin-left: auto;}
.ipl-seeds{list-style: none;padding: 0;margin: 0 0 0.9rem;display: grid;grid-template-columns: repeat(4, minmax(0, 1fr));gap: 0.5rem;}
.ipl-seeds li{display: flex;flex-direction: column;gap: 0.3rem;min-width: 0;}
.ipl-seed-no{font-size: 0.72rem;text-transform: uppercase;letter-spacing: 0.08em;font-weight: 700;color: var(--ipl-muted);}
.ipl-games{display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 0.6rem;}
.ipl-game{background: #fff;border-radius: 10px;padding: 0.75rem 0.85rem;display: flex;flex-wrap: wrap;align-items: center;gap: 0.4rem;animation: ipl-in 0.3s ease both;}
.ipl-game h4{flex: 1 0 100%;margin: 0;font-size: 0.95rem;font-weight: 800;color: var(--ipl-navy);}
.ipl-game-rule{flex: 1 0 100%;margin: 0 0 0.2rem;font-size: 0.78rem;color: var(--ipl-muted);}
.ipl-game-final{border: 2px solid var(--ipl-saffron);}
.ipl-vs{font-size: 0.8rem;font-weight: 700;color: var(--ipl-muted);}
.ipl-champion{margin: 0.9rem 0 0;display: flex;flex-wrap: wrap;align-items: baseline;gap: 0.3rem 0.75rem;background: var(--ipl-navy);color: #fff;border-radius: 10px;padding: 0.85rem 1rem;border-left: 8px solid var(--team);}
.ipl-champion span{font-size: 0.75rem;text-transform: uppercase;letter-spacing: 0.1em;color: var(--ipl-saffron);font-weight: 800;}
.ipl-champion strong{font-size: 1.25rem;}
.ipl-champion small{color: #c9d4ee;}
.ipl-read,.ipl-limits{margin: 0 auto 2.5rem;color: var(--ipl-text);}
.ipl-read h2,.ipl-limits h2{font-size: 1.55rem;font-weight: 800;color: var(--ipl-navy);margin-bottom: 0.75rem;}
.ipl-read p,.ipl-limits li{line-height: 1.7;}
.ipl-trio{display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: 0.9rem;}
.ipl-trio-item{border-top: 4px solid var(--ipl-saffron);background: var(--ipl-sky);border-radius: 0 0 10px 10px;padding: 0.9rem 1rem;}
.ipl-trio-item h3{font-size: 1.05rem;font-weight: 800;color: var(--ipl-navy);margin-bottom: 0.4rem;}
.ipl-trio-item p{margin: 0;font-size: 0.93rem;}
.ipl-table-wrap{overflow-x: auto;margin: 1rem 0;border: 1px solid var(--ipl-line);border-radius: 10px;}
.ipl-table{width: 100%;border-collapse: collapse;font-size: 0.9rem;}
.ipl-table th,.ipl-table td{padding: 0.6rem 0.75rem;border-bottom: 1px solid var(--ipl-line);text-align: left;vertical-align: top;}
.ipl-table thead th{background: var(--ipl-navy);color: #fff;font-size: 0.78rem;text-transform: uppercase;letter-spacing: 0.06em;}
.ipl-table tbody th{white-space: nowrap;color: var(--ipl-navy);}
.ipl-table tbody th small{color: var(--ipl-muted);font-weight: 600;margin-left: 0.2rem;}
.ipl-table tbody tr:last-child th,.ipl-table tbody tr:last-child td{border-bottom: 0;}
.ipl-dot{display: inline-block;width: 10px;height: 10px;border-radius: 50%;background: var(--team);margin-right: 0.45rem;}
.ipl-odds{list-style: none;padding: 0;margin: 1rem 0;display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 0.75rem;}
.ipl-odds li{display: flex;gap: 0.85rem;align-items: flex-start;background: #fff;border: 1px solid var(--ipl-line);border-radius: 10px;padding: 0.8rem 0.9rem;}
.ipl-odds b{flex: 0 0 auto;font-size: 1.35rem;font-weight: 800;color: var(--ipl-navy);min-width: 4.2rem;}
.ipl-odds span{font-size: 0.9rem;line-height: 1.55;}
.ipl-code{background: var(--ipl-navy);color: #e8edf8;border-radius: 10px;padding: 1rem 1.1rem;font-size: 0.85rem;overflow-x: auto;margin: 1rem 0;}
.ipl-code code{color: inherit;}
.ipl-timeline{list-style: none;padding: 0;margin: 1rem 0 0;border-left: 3px solid var(--ipl-saffron);}
.ipl-timeline li{position: relative;padding: 0 0 1rem 1.2rem;}
.ipl-timeline li::before{content: "";position: absolute;left: -8px;top: 0.35rem;width: 13px;height: 13px;border-radius: 50%;background: var(--ipl-navy);border: 2px solid #fff;}
.ipl-year{display: block;font-weight: 800;color: var(--ipl-navy);}
.ipl-timeline p{margin: 0.15rem 0 0;}
.ipl-limits{background: #fff8e6;border: 1px solid #f3dca0;border-radius: 12px;padding: 1.25rem 1.5rem;}
.ipl-limits ul{margin: 0;padding-left: 1.1rem;}
.ipl-limits li{margin-bottom: 0.5rem;}
@keyframes ipl-in{from{opacity: 0;transform: translateY(6px);}to{opacity: 1;transform: none;}}
@media (max-width: 991px){.ipl-chips{grid-template-columns: repeat(3, minmax(0, 1fr));}.ipl-trio{grid-template-columns: 1fr;}}
@media (max-width: 640px){.ipl-tool{padding: 1rem;}.ipl-modes{grid-template-columns: 1fr;}.ipl-chips{grid-template-columns: repeat(2, minmax(0, 1fr));}.ipl-card{flex-direction: column;}.ipl-card-badge{width: 56px;height: 56px;font-size: 1rem;}.ipl-card-facts,.ipl-order,.ipl-games,.ipl-odds{grid-template-columns: 1fr;}.ipl-seeds{grid-template-columns: repeat(2, minmax(0, 1fr));}.ipl-limits{padding: 1rem;}}
@media (prefers-reduced-motion: reduce){.ipl-stage .is-new,.ipl-slot,.ipl-game{animation: none;}}