@import"https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@400;600;700&family=Noto+Sans+SC:wght@400;500;700&display=swap";:root{--bg: #ffffff;--brand: #f58a1f;--brand-2: #ffb347;--brand-soft: #ffe6c7;--border: #f2a24b;--text: #2c2c2c;--text-2: #6b6b6b;--shadow-1: 0 6px 18px rgba(245, 138, 31, .18);--radius-card: 18px;--radius-pill: 24px;--font-title: "M PLUS Rounded 1c", "Noto Sans SC", sans-serif;--font-body: "Noto Sans SC", "M PLUS Rounded 1c", sans-serif;--type-lesson: #ffd7a1;--type-work: #ffe48b;--type-outing: #aee7dd;--type-gift: #bfe9a8;--type-consultation: #bfd9ff;--type-special: #f3c49c;--type-audition: #f4a9c0;--type-visual: #ffd3dc;--type-vocal: #ffe9b6;--type-dance: #cfe6ff;--type-assist: #d8f1d4}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-body);color:var(--text);background:var(--bg);line-height:1.5}img{display:block;max-width:100%}a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer}button:focus-visible{outline:2px solid rgba(245,138,31,.6);outline-offset:2px}#app{min-height:100vh}.app{min-height:100vh;background-image:radial-gradient(circle at 10% 20%,rgba(245,138,31,.1),transparent 40%),radial-gradient(circle at 90% 0%,rgba(255,179,71,.12),transparent 35%),linear-gradient(120deg,rgba(245,138,31,.05),transparent 40%)}.container{width:min(1200px,92%);margin:0 auto}.app-header{background:#fff;border-bottom:1px solid rgba(245,138,31,.15);position:sticky;top:0;z-index:50}.app-header:after{content:"";display:block;height:3px;background:linear-gradient(90deg,var(--brand),var(--brand-2))}.header-inner{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr);align-items:center;gap:16px;padding:10px 0}.header-brand{display:flex;align-items:center;gap:8px;font-family:var(--font-title)}.brand-text{font-weight:700;letter-spacing:.08em;color:var(--brand);text-transform:uppercase;font-size:15px}.header-nav{display:flex;align-items:center;justify-content:center;gap:18px}.nav-item{position:relative;font-size:13px;padding:6px 4px;color:var(--text);transition:color .2s ease}.nav-item:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:transparent;border-radius:999px}.nav-item:hover{color:var(--brand)}.nav-item.active{color:var(--brand);font-weight:600}.nav-item.active:after{background:var(--brand)}.header-actions{min-height:24px}.app-shell{display:block;padding:16px 0 40px}.app-main{display:flex;flex-direction:column;gap:24px}.page{display:flex;flex-direction:column;gap:18px}.library-page{display:flex;flex-direction:column;gap:20px}.library-panel .panel-head{align-items:flex-start;flex-wrap:wrap}.library-actions{display:flex;gap:10px}.library-code{margin:12px 0 18px;display:flex;flex-direction:column;gap:8px}.library-textarea{width:100%;border-radius:12px;border:1px solid rgba(245,138,31,.2);padding:10px 12px;font-size:12px;font-family:var(--font-body);resize:vertical}.library-status{font-size:12px;color:var(--text-2)}.library-grid{margin-top:8px}.library-controls{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.library-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text)}.library-level{display:flex;align-items:center;gap:8px}.library-level-options{display:flex;flex-wrap:wrap;gap:6px}.library-level-chip{border-radius:999px;border:1px solid rgba(245,138,31,.3);padding:4px 10px;font-size:12px;color:var(--text);background:#fff;transition:all .2s ease}.library-level-chip.active{background:var(--brand);border-color:var(--brand);color:#fff}.library-level-chip:disabled{opacity:.4;cursor:not-allowed}.library-card.is-unowned{opacity:1;filter:grayscale(1)}.library-card.is-owned{box-shadow:0 12px 22px #f58a1f29}.library-card.is-unowned .card-body{color:var(--text-2)}.setup-page{display:flex;flex-direction:column;gap:26px;padding-top:4px;position:relative}.setup-layout{display:grid;grid-template-columns:minmax(420px,720px) minmax(0,1fr);gap:26px;align-items:start}.setup-column{display:flex;flex-direction:column;gap:26px}.setup-spacer{min-height:100%}.setup-panel{background:#fff;border-radius:22px;padding:20px 22px;border:1px solid rgba(245,138,31,.12);box-shadow:0 18px 36px #f58a1f14;position:relative}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.idol-panel{text-align:center;align-self:center;width:min(100%,320px)}.idol-panel .section-header h2{font-size:20px}.idol-panel .section-header p{font-size:12px}.support-panel .section-header h2{font-size:18px}.idol-panel .panel-head,.support-panel .panel-head{justify-content:center}.idol-panel .section-header,.support-panel .section-header{text-align:center;width:100%}.option-panel{min-height:220px;opacity:.3}.page-section{background:#fff;border-radius:var(--radius-card);padding:16px;box-shadow:var(--shadow-1);border:1px solid rgba(245,138,31,.12)}.idol-section{max-width:760px;margin:0 auto}.section-header h2{margin:0 0 6px;font-family:var(--font-title);font-size:20px}.section-header p{margin:0;color:var(--text-2);font-size:14px}.hint-pill{padding:4px 10px;background:var(--brand-soft);border-radius:999px;font-size:12px;color:var(--brand);font-weight:600}.filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0}.filter-bar.compact{margin:0 0 16px}.filter-label{font-size:13px;color:var(--text-2)}.chip{border:1px dashed rgba(245,138,31,.4);background:#f58a1f14;border-radius:999px;padding:6px 12px;font-size:12px;color:var(--brand)}.chip:disabled{opacity:.7;cursor:not-allowed}.slot-grid{display:grid;gap:12px;margin-top:10px}.idol-slot-grid{grid-template-columns:minmax(140px,170px);justify-content:center}.support-slot-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}.slot-card{--slot-ratio: 16 / 9;border:1px solid rgba(245,138,31,.18);border-radius:16px;padding:10px;background:linear-gradient(180deg,#fffffff2,#fff8f0f2);display:flex;flex-direction:column;gap:6px;text-align:left;position:relative;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.slot-card:hover{border-color:#f58a1f8c;transform:translateY(-3px);box-shadow:0 10px 20px #f58a1f26}.slot-card.auto-slot{cursor:default;background:#f58a1f0d}.slot-card.auto-slot:hover{transform:none;box-shadow:none}.slot-media{width:100%;height:auto;aspect-ratio:var(--slot-ratio);border-radius:12px;background:#f58a1f1f;display:grid;place-items:center;overflow:hidden;position:relative}.slot-media img{width:100%;height:100%;object-fit:cover}.slot-placeholder{width:30px;height:30px;border-radius:50%;background:#fffc;display:grid;place-items:center;font-size:18px;color:var(--brand);font-weight:600}.slot-placeholder.muted{color:#f58a1f99}.slot-info{display:flex;flex-direction:column;gap:4px}.support-slot-badges,.support-card-badges,.idol-slot-badges,.idol-card-badges{position:absolute;inset:0;pointer-events:none;--badge-inset: 12px}.badge-icon{position:absolute;width:auto;height:24px}.badge-icon.rarity{top:var(--badge-inset);left:var(--badge-inset)}.badge-icon.type{top:var(--badge-inset);right:var(--badge-inset)}.badge-text{position:absolute;top:var(--badge-inset);right:var(--badge-inset);padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;color:#fff;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);max-width:70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge-level{position:absolute;left:var(--badge-inset);bottom:var(--badge-inset);padding:2px 6px;border-radius:999px;font-size:11px;font-weight:700;color:#fff;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.support-slot .slot-info,.idol-slot .slot-info{align-items:center;text-align:center}.slot-title{font-weight:600;font-size:12px}.slot-subtitle{font-size:10px;color:var(--text-2)}.idol-slot{--slot-ratio: 1024 / 1820;padding:14px}.idol-slot .slot-media{border-radius:16px;background:#f58a1f14}.idol-slot .slot-media img{transform:scale(1.5);transform-origin:top}.support-slot{--slot-ratio: 1820 / 1024}.idol-slot .slot-title{font-size:13px}.idol-slot .slot-subtitle{font-size:11px;font-weight:700}.slot-clear{position:absolute;top:6px;right:6px;border:none;background:#00000014;border-radius:999px;padding:2px 6px;font-size:9px;color:var(--text);cursor:pointer}.stat-row.compact{font-size:11px;gap:6px}.modal-backdrop{position:fixed;inset:0;background:#13131366;display:flex;align-items:center;justify-content:center;padding:24px;z-index:100}.modal-panel{width:min(1100px,95vw);max-height:90vh;background:#fff;border-radius:20px;box-shadow:var(--shadow-1);display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(245,138,31,.15)}.modal-title{font-family:var(--font-title);font-size:18px;font-weight:600}.modal-close{border:none;background:#0000000f;width:32px;height:32px;border-radius:999px;font-size:18px;line-height:1}.modal-body{padding:16px 20px 20px;overflow:auto}.filter-panel{display:flex;flex-direction:column;gap:14px;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid rgba(245,138,31,.15)}.filter-group{display:flex;flex-direction:column;gap:8px}.filter-title{font-size:12px;color:var(--text-2);text-transform:uppercase;letter-spacing:.08em}.filter-options{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{border:1px solid rgba(245,138,31,.35);background:#f58a1f14;border-radius:999px;padding:6px 14px;font-size:12px;color:var(--brand);transition:all .2s ease}.filter-chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.picker-grid .card-tile{min-height:220px;animation:none}.picker-grid .support-card-tile{min-height:auto}.picker-grid .card-title{font-size:13px}.card-grid{display:grid;gap:16px}.idol-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.support-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.card-tile{--card-ratio: 16 / 9;border:1px solid rgba(245,138,31,.12);border-radius:var(--radius-card);overflow:hidden;background:#fff;text-align:left;padding:0;display:flex;flex-direction:column;min-height:260px;transition:transform .2s ease,box-shadow .2s ease;animation:riseIn .45s ease both;animation-delay:var(--delay, 0s)}.card-tile:not(.is-disabled):hover{transform:translateY(-4px);box-shadow:var(--shadow-1)}.card-tile.is-selected{border:2px solid var(--brand);box-shadow:0 0 0 3px #f58a1f26}.card-tile.is-disabled{opacity:.45;cursor:not-allowed}.card-media{position:relative;width:100%;height:auto;aspect-ratio:var(--card-ratio);background:linear-gradient(135deg,#f58a1f33,#ffb34726);display:flex;align-items:center;justify-content:center}.idol-card-tile{--card-ratio: 1024 / 1820}.support-card-tile{--card-ratio: 1820 / 1024;min-height:auto}.card-media img{width:100%;height:100%;object-fit:cover}.card-media-placeholder{width:80%;height:70%;border-radius:16px;background:#ffffff80}.card-body{padding:14px;display:flex;flex-direction:column;gap:6px}.card-title{font-weight:600;font-size:14px}.card-meta{color:var(--text-2);font-size:12px}.stat-row{display:flex;gap:8px;font-size:12px;color:var(--text-2)}.badge{position:absolute;top:12px;left:12px;padding:4px 8px;border-radius:999px;font-size:11px;background:#ffffffd9}.badge+.badge{top:12px;left:auto;right:12px}.library-card .badge-icon{width:auto;height:26px}.support-card-tile .badge-icon{width:auto;height:20px}.idol-card-tile .badge-icon,.idol-slot .badge-icon{width:auto;height:18px}.support-slot .badge-icon{width:auto;height:20px}.support-slot .badge-level{font-size:10px;padding:2px 6px}.library-card .support-card-badges{--badge-inset: 14px}.support-card-tile .support-card-badges{--badge-inset: 12px}.support-slot .support-slot-badges,.idol-slot .idol-slot-badges{--badge-inset: 10px}.idol-card-tile .idol-card-badges{--badge-inset: 12px}.badge.rarity-n{background:#f2f2f2;color:#555}.badge.rarity-r{background:#fef3c7;color:#b45309}.badge.rarity-sr{background:#e0f2fe;color:#1d4ed8}.badge.rarity-ssr{background:#fde68a;color:#b45309}.badge.type-visual{background:var(--type-visual);color:#b45a6b}.badge.type-vocal{background:var(--type-vocal);color:#b77800}.badge.type-dance{background:var(--type-dance);color:#1e4b8f}.badge.type-assist{background:var(--type-assist);color:#2f6b2f}.segmented{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.segmented-btn{border:1px solid rgba(245,138,31,.3);border-radius:999px;padding:6px 14px;background:#fff;font-size:13px;transition:all .2s ease}.segmented-btn.active{background:var(--brand);color:#fff;border-color:var(--brand)}.week-list{display:flex;flex-direction:column;gap:16px;margin-top:16px}.week-card{border-radius:16px;border:1px solid rgba(245,138,31,.15);padding:16px;background:#fff;animation:riseIn .45s ease both;animation-delay:var(--delay, 0s)}.week-header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px}.week-title{font-weight:600}.week-subtitle{color:var(--text-2);font-size:12px}.week-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.week-option{border-radius:16px;border:1px solid rgba(0,0,0,.08);background:#fff;padding:10px;text-align:left;transition:all .2s ease}.week-option-visual{height:70px;border-radius:12px;background:#f58a1f33;margin-bottom:8px;position:relative;overflow:hidden}.week-option-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.6),transparent)}.week-option-label{font-size:13px;font-weight:600}.week-option.is-selected{border:2px solid var(--brand);background:#f58a1f14}.type-lesson .week-option-visual{background:var(--type-lesson)}.type-work .week-option-visual{background:var(--type-work)}.type-outing .week-option-visual{background:var(--type-outing)}.type-gift .week-option-visual{background:var(--type-gift)}.type-consultation .week-option-visual{background:var(--type-consultation)}.type-special .week-option-visual{background:var(--type-special)}.type-audition .week-option-visual{background:var(--type-audition)}.page-actions{display:flex;justify-content:flex-end}.page-actions.split{justify-content:space-between}.primary-btn,.ghost-btn{border-radius:var(--radius-pill);padding:10px 20px;font-size:14px;border:1px solid transparent}.primary-btn{background:var(--brand);color:#fff}.primary-btn:disabled{opacity:.6;cursor:not-allowed}.ghost-btn{background:#fff;border-color:#f58a1f66;color:var(--brand)}.result-list{display:flex;flex-direction:column;gap:16px}.result-card{border-radius:16px;padding:16px;border:1px solid rgba(245,138,31,.15);background:#fff;animation:riseIn .45s ease both;animation-delay:var(--delay, 0s)}.result-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.result-title{font-weight:600}.result-score{color:var(--text-2);font-size:12px}.result-summary{display:flex;gap:12px;font-size:12px;color:var(--text-2);margin-bottom:12px}.result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.result-item{border-radius:12px;border:1px solid rgba(245,138,31,.12);padding:10px;background:#fff;display:flex;flex-direction:column;gap:6px}.result-image{height:100px;border-radius:10px;overflow:hidden;background:#f58a1f26}.result-image img{width:100%;height:100%;object-fit:cover}.result-name{font-size:12px;font-weight:600}.result-effects{font-size:11px;color:var(--text-2);display:flex;flex-direction:column;gap:4px}.empty-state{padding:32px;text-align:center;color:var(--text-2);background:#f58a1f14;border-radius:12px}@keyframes riseIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.app-shell{display:block}.setup-panel{padding:18px}.setup-layout{grid-template-columns:1fr;gap:20px;align-items:stretch}.setup-column{gap:20px}.setup-spacer{display:none}}@media(max-width:768px){.header-inner{grid-template-columns:1fr;justify-items:center;text-align:center}.header-nav{flex-wrap:wrap;gap:12px}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.picker-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.picker-grid .card-tile{min-height:200px}.week-header{flex-direction:column;align-items:flex-start}.page-actions.split{flex-direction:column;gap:12px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
