:root{font-family:system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;color:#263241;background:#f4f6f9;font-size:14px;font-synthesis:none;--line:#e4e8ef;--soft:#f7f9fc;--ink:#263241;--muted:#8390a0;--primary:#5765c9;--hover:#eef0ff}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b6c2ff;outline-offset:2px}h1,h2,p{margin:0}h2{font-size:15px}h1{font-size:25px;letter-spacing:-.8px}a{color:var(--primary)}.app-shell{max-width:1440px;margin:auto;padding:0 23px 48px}.topbar{height:72px;display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--line)}.brand-icon{width:40px;height:40px;background:#6a61d9;color:white;display:grid;place-items:center;border-radius:13px;font-size:20px;font-weight:900}.brand-copy{display:flex;flex-direction:column;gap:1px;margin-right:auto}.brand-copy strong{font-size:15px;letter-spacing:-.2px}.brand-copy span{font-size:11px;color:var(--muted)}.top-pill{background:#eef8f2;border:1px solid #ddede4;color:#3b8869;border-radius:22px;padding:8px 11px;font-size:11px;margin-right:8px}.green-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#3bb67e;margin-right:5px}.btn{border:1px solid transparent;border-radius:9px;min-height:37px;padding:0 12px;white-space:nowrap;font-weight:700;font-size:12px;background:white}.btn-primary{background:var(--primary);color:white}.btn-primary:hover{background:#4754ba}.btn-outline{border-color:#dadfea;background:white;color:#44506a}.btn-outline:hover,.btn-quiet:hover{background:#f0f2fa}.btn-quiet{color:#617086;background:transparent}.intro{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:30px 2px 25px}.intro p{font-size:13px;color:#7d889a;margin-top:9px}.eyebrow{font-size:10px;font-weight:900;color:#7977cc;letter-spacing:1.7px;margin-bottom:8px}.eyebrow span{letter-spacing:0;margin-left:9px;color:#a7acba}.small-note{font-size:11px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 15px;color:#808b9b;white-space:nowrap}.dot-blue{display:inline-block;width:6px;height:6px;border-radius:50%;background:#7a8ad9;margin-right:6px}.separate{margin:0 7px;color:#ced4df}.main-grid{display:grid;grid-template-columns:minmax(570px,1.55fr) minmax(335px,1fr);gap:18px;align-items:start}.right-column{display:flex;flex-direction:column;gap:18px}.panel{background:white;border:1px solid var(--line);border-radius:17px;box-shadow:0 3px 17px rgba(44,53,90,.025);padding:20px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.section-heading{display:flex;align-items:center;gap:10px;min-width:0}.section-n{font-size:11px;font-weight:800;color:#c0c8d2}.count-tag{background:#f2f4f8;color:#788394;padding:4px 9px;border-radius:15px;font-size:11px}.text-button{border:0;background:none;color:var(--primary);font-weight:800;font-size:12px;padding:7px}.text-button:hover{text-decoration:underline}.add-bar{display:flex;align-items:stretch;flex-wrap:wrap;gap:8px;padding:12px;background:#f8f9fc;border:1px solid #edf0f6;border-radius:12px}.search-field{display:flex;align-items:center;gap:7px;border:1px solid #e0e4ec;background:white;border-radius:9px;padding:0 10px;min-height:38px;flex:1;min-width:190px;color:#a2acbb}.search-field input{border:0;min-width:0;width:100%;outline:0;color:#283549;background:transparent}.search-field:focus-within{border-color:#8e9cea;box-shadow:0 0 0 2px #eff1ff}.add-bar select,.party-toolbar select,.boss-selector-label select{background:#fff;border:1px solid #e0e4ec;border-radius:9px;padding:0 9px;min-height:38px;max-width:150px;color:#344256}.add-bar #kindSelect{max-width:92px}.toolbar-secondary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 2px 10px}.muted,.helper{color:#8995a4;font-size:11px;line-height:1.6}.mini-search{min-height:32px;max-width:184px;min-width:100px;font-size:11px}.owner-group{border:1px solid #e8ebf1;border-radius:13px;margin-top:12px;overflow:hidden}.owner-head{display:flex;align-items:center;gap:9px;padding:11px 13px;background:#f8fafc}.owner-bubble{height:28px;width:28px;border-radius:9px;display:grid;place-items:center;background:#eef0ff;color:#6671c7;font-weight:800;font-size:12px}.owner-name{font-size:13px;font-weight:800}.owner-count{color:#a1aabc;font-size:11px}.grow{flex:1}.inline-action{padding:5px 4px;border:0;background:transparent;font-size:11px;color:#8591a0;white-space:nowrap}.inline-action:hover{color:#4453bf}.danger-text:hover{color:#d04f62}.owner-characters{padding:10px;display:flex;flex-direction:column;gap:9px}.character{border:1px solid #e7eaf1;border-radius:12px;background:#fff;overflow:hidden}.character-top{display:flex;align-items:center;gap:12px;padding:12px}.character[draggable=true]{cursor:grab}.character.dragging{opacity:.5}.avatar{width:78px;height:78px;flex:0 0 78px;display:grid;place-items:center;background:linear-gradient(150deg,#f3f5f9,#fafbff);border:1px solid #eef0f4;border-radius:12px;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:contain}.avatar .placeholder{font-size:25px;color:#b1bdd0}.char-info{flex:1;min-width:0}.char-name-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.char-name{font-weight:850;color:#263249;font-size:14px;overflow-wrap:anywhere}.pill{border-radius:14px;padding:3px 7px;font-size:10px;font-weight:800;background:#eef0ff;color:#6770c6}.pill.alt{background:#eef6f3;color:#549078}.char-meta{display:flex;gap:8px;margin:7px 0;color:#8794a4;font-size:11px;flex-wrap:wrap}.power-label{display:flex;gap:7px;align-items:center}.power-label small{font-size:10px;color:#9ba5b4}.power-label strong{font-size:13px;color:#4351aa;letter-spacing:-.2px}.char-buttons{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:5px}.icon-button{background:transparent;border:1px solid #e4e8ef;color:#8793a7;border-radius:8px;min-width:29px;min-height:29px;padding:4px;font-size:12px}.icon-button:hover{color:#505fbe;background:#f3f4fd}.mini-add{border:1px solid #e0e3f3;border-radius:8px;background:#f6f6ff;color:#5967c0;font-weight:800;font-size:10px;padding:7px 8px;white-space:nowrap}.expand-bar{border-top:1px solid #f0f1f5;padding:0 12px 9px;display:flex;align-items:center;justify-content:space-between;gap:8px}.expand-btn{border:0;background:transparent;color:#6875bb;font-size:12px;font-weight:800;padding:10px 4px 2px}.filled-count{font-size:10px;color:#9ca7b8}.ratio-editor{padding:12px;background:#fcfdff;border-top:1px solid #ebedf3}.ratio-editor-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.tabs{display:flex;align-items:center;background:#f1f3f8;border-radius:10px;padding:3px;gap:3px}.tab{border:0;background:none;color:#8793a4;font-size:11px;font-weight:800;padding:7px 12px;border-radius:8px}.tab.active{background:#fff;color:#5360bc;box-shadow:0 1px 6px #dce0ed}.boss-filter{height:33px;width:190px;max-width:100%;background:#fff;border:1px solid #e2e6ee;border-radius:8px;padding:0 10px;font-size:11px;outline:0}.boss-list{max-height:310px;overflow:auto;padding-right:4px;margin-top:9px}.boss-group{border:1px solid #e8ebf2;background:white;border-radius:9px;margin-bottom:6px}.boss-group summary{list-style:none;cursor:pointer;padding:9px 10px;display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700}.boss-group summary::-webkit-details-marker{display:none}.boss-group summary:after{content:'⌄';margin-left:auto;color:#a1aabd}.boss-group[open] summary:after{content:'⌃'}.boss-group .boss-count{font-size:10px;color:#a4afbf;margin-left:4px;font-weight:500}.boss-difficulties{border-top:1px solid #eff1f6;padding:7px 10px;display:grid;gap:6px}.diff-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#6e7a8b}.diff-row input{width:120px;height:33px;text-align:right;padding:0 9px;border-radius:7px;border:1px solid #e4e8ef;color:#354454}.diff-row input:focus{outline:2px solid #b7c2ff}.diff-row input:placeholder-shown{color:#a0aaba}.unit{color:#a7b0bf;margin-left:-30px;pointer-events:none;margin-right:8px}.hint-small{color:#929cab;font-size:10px;margin:8px 1px 1px}.empty{padding:35px 15px;text-align:center;color:#a1aab7;font-size:12px;line-height:1.8}.lookup-preview{margin:12px 0;padding:11px;border:1px solid #dedff4;border-radius:12px;background:#f7f7ff}.lookup-preview[hidden]{display:none}.lookup-inner{display:flex;align-items:center;gap:10px}.lookup-inner .avatar{width:63px;height:63px;flex-basis:63px}.lookup-meta{font-size:11px;color:#8993a6;margin:4px 0}.lookup-actions{margin-left:auto;display:flex;gap:6px}.party-toolbar{display:grid;grid-template-columns:1fr 108px;gap:10px}.stacked-label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:800;color:#7a899c}.stacked-label select{max-width:100%;width:100%}.party-actions{display:flex;justify-content:flex-end;gap:11px;margin-top:6px;margin-bottom:11px}.party-slots{display:flex;flex-direction:column;gap:8px}.slot{border:1px dashed #d9deea;background:#fcfdff;border-radius:10px;min-height:53px;display:flex;align-items:center;gap:11px;padding:7px 12px;transition:.14s}.slot.over{border-color:#6f7ad4;background:#f0f1ff;transform:translateY(-1px)}.slot.filled{border-style:solid;background:#f9faff}.slot-number{font-size:10px;color:#b5beca;font-weight:900;width:21px}.slot .avatar{height:39px;width:39px;flex-basis:39px;border-radius:8px}.slot .avatar .placeholder{font-size:15px}.slot-details{flex:1;min-width:0}.slot-details strong{font-size:12px}.slot-details small{font-size:10px;color:#96a1b1;display:block;margin-top:3px}.slot-placeholder{font-size:11px;color:#a2acba}.slot .slot-remove{border:0;background:transparent;color:#a3acbd;padding:6px}.slot .slot-remove:hover{color:#cf4b67}.party-panel .helper{margin-top:12px;background:#f7f8fc;padding:10px;border-radius:9px}.boss-selector-label{margin-bottom:14px}.boss-selector-label select{max-width:none}.mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px}.mini-stats>div{padding:12px;background:#f5f7fb;border:1px solid #eff1f6;border-radius:11px;display:flex;flex-direction:column;gap:7px}.mini-stats span{font-size:10px;color:#939eac}.mini-stats strong{font-size:20px;letter-spacing:-.4px}.member-ratios{margin-top:12px}.member-ratio{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f0f1f5;padding:8px 2px;font-size:12px}.member-ratio small{color:#a0a9b5;margin-left:6px}.member-ratio strong{color:#4551a7}.member-ratio.missing strong{color:#c8a56e;font-size:11px}.divider{height:1px;background:#e9edf3;margin:17px 0}.time-heading{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px}.time-heading strong{font-size:12px}.time-heading span{font-size:10px;color:#a1abb8}.time-rows{display:flex;flex-direction:column;gap:2px}.time-row{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;font-size:11px;border-radius:7px}.time-row:nth-child(even){background:#fafbfe}.time-row.selected{background:#f0f1ff}.time-row strong{font-size:12px;color:#334160}.time-row.selected strong{color:#515cbd}.warning-note{color:#89795b;background:#fdfaf0;border:1px solid #f2ead2;border-radius:9px;padding:11px;margin-top:13px;font-size:10px;line-height:1.8}.overview-panel{margin-top:18px}.table-scroll{overflow:auto}.overview-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.overview-table th{padding:11px;border-bottom:1px solid #e5e9ef;color:#96a1b0;font-size:11px;font-weight:800;white-space:nowrap;background:#fafbfe}.overview-table td{padding:13px 11px;border-bottom:1px solid #edf0f5;vertical-align:middle}.overview-table tr:last-child td{border-bottom:0}.overview-table strong{color:#4452ad}.tiny-names{font-size:10px;color:#8c97a7;max-width:450px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.muted-badge{font-size:10px;color:#bc9655;background:#fff6e5;border-radius:8px;padding:3px 7px}footer{text-align:center;padding:23px 0;color:#9da7b5;font-size:10px}.toast{position:fixed;bottom:21px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#2d3854;color:white;padding:12px 19px;border-radius:11px;box-shadow:0 5px 22px #56617b33;z-index:100;font-size:12px;max-width:90vw;text-align:center;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.modal{border:1px solid #e4e7ef;border-radius:17px;box-shadow:0 22px 80px #24365f33;padding:23px;width:min(520px,calc(100vw - 28px));color:#334155}.modal::backdrop{background:#1d274078}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.dialog-top h2{font-size:17px}.modal>.muted,.modal form>.muted{margin:0 0 19px}.modal .stacked-label input{border:1px solid #dfe4ee;border-radius:9px;padding:10px;width:100%;color:#364157}.modal .stacked-label input:focus{outline:2px solid #bbc4ff}.modal .stacked-label select{padding:10px;border:1px solid #dfe4ee;border-radius:9px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:21px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid .full{grid-column:1/-1}@media(max-width:1080px){.main-grid{grid-template-columns:1fr}.right-column{display:grid;grid-template-columns:1fr 1fr}.small-note{display:none}}@media(max-width:740px){.app-shell{padding:0 11px 30px}.topbar{flex-wrap:wrap;height:auto;min-height:70px;padding:11px 0}.brand-copy{flex:1}.top-pill{display:none}.intro{padding:22px 2px}.intro h1{font-size:21px}.main-grid{display:block}.right-column{display:flex;margin-top:14px}.panel{padding:14px;border-radius:14px}.add-bar{padding:8px}.add-bar .search-field{flex:1 1 100%}.toolbar-secondary{flex-wrap:wrap}.mini-search{flex:1}.character-top{gap:8px;padding:10px}.avatar{width:62px;height:62px;flex-basis:62px}.char-buttons{gap:4px}.overview-panel{margin-top:14px}.form-grid{grid-template-columns:1fr}}

/* Character image overlays fallback glyph while loaded. */
.avatar{position:relative}.avatar img{position:absolute;inset:0;z-index:1}.muted,.helper,.char-meta,.hint-small{font-size:12px}.owner-count,.inline-action,.member-ratio,.boss-group summary,.diff-row{font-size:12px}.char-name{font-size:15px}.section-heading h2{font-size:16px}

.drag-handle{display:flex;align-items:center;justify-content:center;min-height:24px;border:1px dashed #cbd2e4;color:#8493b0;border-radius:7px;background:#f7f8fc;padding:3px 8px;font-size:10px;font-weight:700;cursor:grab;user-select:none}.drag-handle:active{cursor:grabbing}
@media(max-width:740px){.topbar{justify-content:flex-start}.topbar .brand-copy{flex:1 0 calc(100% - 60px)}.topbar .brand-copy strong,.topbar .brand-copy span{white-space:nowrap}.topbar .btn{min-width:75px}.overview-table{min-width:650px}}

/* v0.3.1 - 파티는 캐릭터 등록 후 표시; 체크박스형 컴팩트 난이도 입력 */
[hidden]{display:none !important}
.main-grid.no-party{grid-template-columns:minmax(0,1fr)}
.main-grid.no-party .library-panel{max-width:1050px;width:100%}
.boss-difficulties{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:8px 10px}
.diff-item{display:flex;align-items:center;gap:5px;width:max-content;max-width:100%;min-height:33px;padding:5px 8px;border:1px solid #e8ebf2;border-radius:8px;background:#f8fafc;color:#657387}
.diff-item.enabled{background:#f3f4ff;border-color:#d8dcf4;color:#4e5db4}
.diff-select{display:flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap;font-size:11px;font-weight:700}
.diff-select input{width:14px;height:14px;margin:0;accent-color:#5967c8;cursor:pointer;flex:0 0 auto}
.diff-value{display:none;align-items:center;gap:3px;margin-left:4px}
.diff-item.enabled .diff-value{display:flex}
.diff-value input{width:75px;min-width:0;height:26px;border-radius:6px;border:1px solid #d6dbed;padding:0 5px;text-align:right;color:#344256;background:#fff;font-size:11px}
.diff-value input:focus{outline:2px solid #b7c2ff}
.diff-value .unit{margin:0;color:#8693a4;font-size:10px;pointer-events:none}
@media(max-width:740px){.main-grid.no-party .library-panel{max-width:none}.diff-item{padding:5px 7px}}


/* v0.4.0 — 명확한 대비, 넓은 터치 영역, 카드 중심의 모바일 퍼스트 UI */
:root{--line:#edf0f4;--soft:#f5f7fa;--ink:#202b3a;--muted:#8792a5;--primary:#3182f6;--hover:#eaf3ff;background:#f5f6f8;color:var(--ink)}
body{background:#f5f6f8;color:var(--ink);-webkit-font-smoothing:antialiased}
h1{font-size:30px;line-height:1.32;letter-spacing:-1.4px;font-weight:850}h2{font-size:18px}
.app-shell{max-width:1480px;padding:0 28px 40px}
.topbar{height:74px;border-color:#e9edf4;gap:10px}
.brand-icon{background:#3182f6;border-radius:15px;box-shadow:0 7px 16px #3182f62b}
.brand-copy strong{font-size:17px}.brand-copy span{font-size:12px}
.btn{border-radius:12px;font-size:13px;min-height:42px;padding:0 14px}
.btn-primary{background:#3182f6;color:#fff}.btn-primary:hover{background:#1b6cdd}
.btn-outline{background:#fff;border-color:#e7ebf2;color:#34465d}
.btn-quiet{color:#66798f}.text-button{color:#3182f6;font-size:13px}
.top-pill{background:#e6f8ed;color:#25965f;border:0;font-weight:700}
.intro{padding:32px 2px 27px}.intro p{font-size:14px;margin-top:9px;color:#778498}
.eyebrow{color:#3182f6;font-size:10px}
.main-grid{grid-template-columns:minmax(0,1.3fr) minmax(370px,1fr);gap:20px}
.right-column{gap:20px;min-width:0}.panel{padding:23px;border:0;border-radius:23px;box-shadow:0 7px 25px rgba(31,48,82,.035)}
.panel-heading{margin-bottom:18px}.section-n{color:#b5c0cd}.count-tag{background:#eaf3ff;color:#2e80ea}
.add-bar{background:#f6f8fb;border-color:#f0f2f6;border-radius:16px;padding:12px;gap:9px}
.search-field,.add-bar select,.party-toolbar select{min-height:43px;border-radius:12px;border-color:#e9edf3}
.search-field{font-size:13px}.search-field:focus-within{border-color:#3182f6;box-shadow:0 0 0 3px #3182f61a}
.owner-group{border:0;overflow:visible;margin-top:22px;border-radius:0}
.owner-head{padding:5px 3px 12px;background:transparent}
.owner-bubble{background:#eaf3ff;color:#3182f6;border-radius:11px;width:32px;height:32px}
.owner-name{font-size:15px}.owner-count{color:#8b9aad}
.owner-characters{padding:0;gap:11px}
.character{border:1px solid #eaf0f6;border-radius:17px;box-shadow:0 1px 5px #1c2d4b08;cursor:default}
.character:hover{border-color:#cfdff9}.character-top{width:100%;background:#fff;border:0;text-align:left;cursor:pointer;align-items:center;gap:14px;padding:15px;border-radius:17px;min-width:0}
.card-opener:hover{background:#f9fbff}.char-info{flex:1;min-width:0}
.avatar{width:82px;height:82px;flex:0 0 82px;border-radius:16px;background:#f2f5fa}
.avatar img{object-fit:contain}.char-name{font-size:17px;color:#1d2c40}
.char-name-line{gap:8px}.char-meta{font-size:12px;margin:6px 0 8px;color:#7c8b9f}
.pill{font-size:10px;background:#eaf3ff;color:#2b7fe9}.pill.alt{background:#eff9f2;color:#3e9d6a}
.open-arrow{font-size:27px;color:#b8c3d0;font-weight:300;align-self:center;margin-left:4px}
.char-stats{display:flex;flex-wrap:wrap;gap:5px;align-items:stretch}
.stat-chip{display:inline-flex;align-items:center;gap:6px;background:#f5f7fa;border-radius:9px;padding:6px 8px;font-size:11px;max-width:100%}
.stat-chip small{font-size:10px;color:#8492a5;white-space:nowrap}.stat-chip b{font-size:12px;color:#34445c;white-space:nowrap;font-variant-numeric:tabular-nums}
.stat-power{background:#eaf3ff}.stat-power b{font-size:13px;color:#2479e6}
.character-actions{border-top:1px solid #f0f2f6;display:flex;align-items:center;gap:7px;padding:8px 14px}
.character-actions .grow{flex:1}.drag-handle{border:0;background:#f5f7fa;min-height:31px;padding:5px 10px;font-size:11px}
.mini-add{border:0;background:#eaf3ff;color:#287ee9;font-size:12px;padding:9px 12px;border-radius:10px}
.inline-action{font-size:12px;padding:6px}.character-actions .icon-button{border:0;min-width:31px;min-height:31px;font-size:15px}
.party-panel .helper{padding:12px;background:#f7f9fc;border-radius:12px;font-size:12px;color:#738398}
.party-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.slot{width:100%;min-width:0;aspect-ratio:1/1;min-height:0;border-radius:17px;border:2px dashed #dce5ee;background:#f8fafc;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;gap:4px;padding:12px 7px;transition:background .15s,border-color .15s}
.slot.filled{border:1px solid #e2eafa;background:#f4f8ff}.slot.over{border-color:#3182f6;background:#e5f1ff;transform:scale(1.025)}
.slot-number{position:absolute;top:8px;left:10px;color:#9bacc1;font-size:11px;width:auto}
.slot .avatar{width:54px;height:54px;flex:none;border-radius:12px}
.slot .slot-details{text-align:center;width:100%;min-width:0;flex:0}.slot-details strong{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.slot-details small{font-size:10px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.slot .slot-remove{position:absolute;top:4px;right:5px;font-size:14px;line-height:1;width:24px;height:24px;padding:0;border-radius:7px}
.slot-plus{font-size:26px;line-height:1;color:#a8bcda}.slot-placeholder{text-align:center;font-size:11px;color:#91a1b5}
.boss-board-controls{display:flex;gap:9px;align-items:center;margin-bottom:15px;justify-content:space-between}
.tabs{border-radius:12px;background:#f3f5f8;gap:2px;flex-shrink:0}.tab{padding:10px 12px;border-radius:9px;font-size:12px;color:#7c8ba0}
.tab.active{color:#277bef;box-shadow:0 2px 8px #223f5a12}.boss-board-controls .boss-filter{width:124px;min-width:0;flex:1;max-width:170px;height:39px;border-radius:11px;font-size:12px}
.boss-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;max-height:350px;overflow:auto;padding:2px 3px 4px}
.boss-tile{background:#f8fafc;border:1px solid #edf0f5;border-radius:16px;padding:9px 7px 11px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:4px;min-width:0;cursor:pointer}
.boss-tile:hover{border-color:#9dbff7;background:#f2f7ff}.boss-tile.active{border-color:#3182f6;background:#eaf3ff;box-shadow:0 0 0 1px #3182f6}
.boss-cover{width:100%;aspect-ratio:1;max-width:104px;display:grid;place-items:center;border-radius:12px;overflow:hidden;background:#edf1f7}
.boss-cover img,.selected-boss-cover img,.boss-small-cover img{width:100%;height:100%;object-fit:cover;display:block}
.boss-tile strong{font-size:12px;line-height:1.4;word-break:keep-all;color:#334358}.boss-tile small{font-size:10px;color:#8998ad;line-height:1.4}
.boss-choose-hint{padding:14px;text-align:center;border-radius:12px;color:#92a0b1;background:#f7f9fb;font-size:12px;margin-top:12px}
#bossComparison{margin-top:15px;padding:15px;background:#f8faff;border:1px solid #e8f0fc;border-radius:18px}
.compare-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
#selectedBossVisual{display:flex;align-items:center;gap:12px}
.selected-boss-cover{width:67px;height:67px;border-radius:14px;overflow:hidden;display:inline-block;flex:0 0 67px}
#selectedBossVisual h3{margin:4px 0 0;color:#263b52;font-size:17px}
#selectedBossVisual small{color:#8091a8;font-size:11px}
.difficulty-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:13px}
.difficulty-chip{border:1px solid #e2e7f0;background:#fff;color:#7888a0;padding:9px 12px;border-radius:10px;font-weight:750;font-size:12px}
.difficulty-chip.active{background:#3182f6;border-color:#3182f6;color:#fff}
.mini-stats>div{border:0;background:#fff}.mini-stats strong{color:#263954;font-size:21px}
.member-ratio{font-size:13px}.time-rows{gap:4px}.time-row{font-size:12px;padding:10px 12px}.time-row.selected{background:#e7f1ff}.time-row.selected strong{color:#2879e8}
.overview-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.overview-item{display:flex;flex-direction:column;gap:11px;border-radius:14px;background:#f7f9fc;padding:14px;min-width:0}.overview-item>strong{font-size:14px;color:#33465b}.overview-item>span{font-size:11px;color:#8e9baa;min-height:20px;line-height:1.5}.overview-item>div{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#3182f6}.overview-item>div b{font-size:15px}.overview-item>div strong{font-size:13px}
.modal{border:0;border-radius:23px;padding:23px;box-shadow:0 24px 80px #16243838}.modal::backdrop{background:#17283e85;backdrop-filter:blur(2px)}
.modal .dialog-top h2{font-size:20px}.modal-footer{margin-top:16px}
.ratio-dialog{width:min(760px,calc(100vw - 36px));max-height:min(87dvh,900px);overflow:hidden;padding:0;display:none;flex-direction:column}
.ratio-dialog[open]{display:flex}.ratio-dialog>.dialog-top{padding:23px 24px 13px;flex:0 0 auto;margin:0}
.ratio-dialog .dialog-close{border:0;font-size:18px;width:35px;height:35px;background:#f4f6f9;border-radius:11px}
.ratio-character-info{display:flex;align-items:center;gap:13px;padding:13px 24px 17px;border-bottom:1px solid #eef1f5;flex:0 0 auto}
.ratio-character-info .avatar{width:73px;height:73px;flex-basis:73px}.ratio-character-info>div{min-width:0}.ratio-character-info>div>strong{font-size:16px}
.ratio-character-info .char-meta{margin:5px 0}.ratio-dialog-body{overflow-y:auto;min-height:0;flex:1}
.ratio-dialog .ratio-editor{border:0;background:#fff;padding:15px 24px}
.ratio-dialog .ratio-editor-head{position:sticky;top:-15px;z-index:3;background:#fff;padding:9px 0 12px}
.ratio-dialog .boss-list{max-height:none;overflow:visible;margin-top:10px;padding:0}
.ratio-dialog .boss-group{border:1px solid #ebeff5;border-radius:12px;margin-bottom:8px;overflow:hidden}
.ratio-dialog .boss-group summary{padding:10px 13px;min-height:51px;gap:9px;font-size:13px;font-weight:800}
.boss-small-cover{width:31px;height:31px;flex:0 0 31px;border-radius:9px;overflow:hidden;display:inline-block}
.ratio-dialog .boss-difficulties{display:flex;flex-wrap:wrap;gap:8px;padding:10px}
.diff-item{border-radius:10px;min-height:36px}.diff-select{font-size:12px}.diff-value input{width:86px;height:29px;font-size:12px}
.ratio-dialog>.modal-footer{flex:0 0 auto;padding:14px 24px 21px;margin:0;border-top:1px solid #eef0f4}
[hidden]{display:none!important}
@media(max-width:1100px){.main-grid{grid-template-columns:minmax(0,1fr)}.right-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.ratio-dialog{max-height:90dvh}}
@media(max-width:800px){
  .app-shell{padding:0 12px 24px}.topbar{gap:6px;height:auto;padding:12px 0}.brand-copy{flex:1}
  .topbar .brand-copy{flex:1 1 150px}.topbar .btn{padding:0 9px;font-size:11px;min-width:0}
  .intro{padding:25px 4px 23px}.intro h1{font-size:24px}.intro p{font-size:13px}
  .panel{padding:17px;border-radius:20px}.main-grid,.right-column{display:flex;flex-direction:column;gap:15px}.library-panel,.party-panel,.estimate-panel{width:100%}
  .add-bar{padding:9px}.add-bar .search-field{flex:1 1 100%}.add-bar select{flex:1;max-width:none}.character-top{padding:12px;gap:10px}
  .avatar{width:66px;height:66px;flex-basis:66px}.char-name{font-size:15px}
  .stat-chip{gap:4px;padding:5px 6px}.stat-chip small{font-size:9px}.stat-chip b{font-size:11px}
  .party-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.slot{border-radius:14px;padding:8px 5px}.slot .avatar{width:44px;height:44px}
  .boss-tiles{grid-template-columns:repeat(3,minmax(0,1fr));max-height:345px}.boss-tile{padding:8px 4px}
  .overview-cards{grid-template-columns:1fr 1fr}.ratio-dialog{width:100%;max-width:100%;max-height:92dvh;height:92dvh;margin:auto 0 0;border-radius:24px 24px 0 0}
  .ratio-dialog>.dialog-top{padding:20px 17px 12px}.ratio-character-info{padding:10px 17px 14px}.ratio-dialog .ratio-editor{padding:12px 17px}
  .ratio-dialog>.modal-footer{padding:11px 17px 16px}.ratio-dialog .ratio-editor-head{top:-12px}
}
@media(max-width:430px){.topbar .brand-copy strong{font-size:15px}.topbar .brand-copy span{font-size:10px}.char-stats{gap:4px}.character-actions{padding:7px 9px;gap:3px}.drag-handle{font-size:10px}.character-actions .inline-action{font-size:11px}.overview-cards{grid-template-columns:1fr}.boss-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.boss-tile strong{font-size:11px}}

/* v0.5.0 — compact Toss-inspired desktop dashboard, larger sprites and clean spacing */
:root{--primary:#3182f6;--ink:#191f28;--muted:#8b95a1;--line:#f0f2f5}
.app-shell{max-width:1550px;padding:0 20px 22px}
.topbar{height:61px;gap:8px}
.topbar .brand-icon{width:47px;height:47px;display:grid;place-items:center;background:#fff4e7;border:1px solid #f3e6cf;border-radius:14px;box-shadow:none;padding:3px;overflow:hidden}
.brand-icon picture,.brand-icon img{display:block;width:100%;height:100%;object-fit:contain}
.brand-copy strong{font-size:18px;letter-spacing:-.6px}.topbar .brand-copy span{font-size:11px;color:#9ba4b1}
.intro{padding:18px 2px 15px}.intro h1{font-size:24px;letter-spacing:-1.1px}.intro p{font-size:12px;margin-top:4px}
.main-grid{grid-template-columns:minmax(390px,1.15fr) minmax(420px,1fr);gap:13px}
.right-column{gap:13px}
.panel{padding:17px;border-radius:20px;box-shadow:0 5px 25px #23364a07}
.panel-heading{margin-bottom:12px}.section-heading h2{font-size:17px}
.add-bar{padding:9px;gap:7px}.search-field,.add-bar select{min-height:39px}.add-bar .btn{min-height:39px;padding:0 10px}
.owner-group{margin-top:14px}.owner-head{padding:3px 3px 9px}.owner-characters{gap:8px}
.character-top{padding:9px 12px;gap:13px}.character-actions{padding:5px 12px}
.character .avatar{width:104px;height:104px;flex:0 0 104px;border-radius:15px;background:#f5f6f8}
.character .avatar img{object-fit:contain;image-rendering:auto}
.char-name{font-size:17px;font-weight:850;color:#191f28}.char-meta{margin:4px 0 7px}
.stat-chip{padding:6px 8px}.stat-chip small{font-size:10px}.stat-chip b{font-size:12px}
.stat-power b{font-size:14px}
.stat-warning{display:block;color:#e47d3d;font-size:10px;padding:4px 2px}
.slot .avatar{width:55px;height:55px;flex:0 0 55px}
.party-slots{gap:7px}.slot{border-radius:14px;padding:9px 5px}
.boss-tiles{max-height:225px;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.boss-tile{border-radius:12px;padding:6px 4px 7px;gap:3px}
.boss-cover{max-width:80px;border-radius:10px}.boss-tile strong{font-size:11px}
.boss-cover picture,.selected-boss-cover picture,.boss-small-cover picture{display:block;width:100%;height:100%}
#bossComparison{padding:12px;margin-top:9px}.time-row{padding:7px 9px}
.ratio-character-info .avatar{width:100px;height:100px;flex:0 0 100px}
.ratio-dialog .boss-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:9px;align-items:start}
.ratio-dialog .boss-group{margin-bottom:8px}
.top-pill{background:#e8f9f1;color:#14966b}
@media(min-width:1200px) and (min-height:730px){
  .main-grid:not(.no-party){height:calc(100dvh - 177px);min-height:540px;max-height:900px;overflow:hidden;align-items:stretch}
  .main-grid:not(.no-party)>.library-panel{min-height:0;display:flex;flex-direction:column}
  .main-grid:not(.no-party) .roster{overflow-y:auto;min-height:0;flex:1;scrollbar-gutter:stable}
  .main-grid:not(.no-party)>.right-column{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr)}
  .main-grid:not(.no-party) .estimate-panel{overflow-y:auto;min-height:0;scrollbar-gutter:stable}
}
@media(max-width:1199px){.main-grid{grid-template-columns:minmax(0,1fr)}.right-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.roster{max-height:none}}
@media(max-width:800px){
  .app-shell{padding:0 11px 20px}.topbar{height:auto;padding:10px 0}
  .topbar .brand-copy{flex:1 1 165px}.topbar .brand-icon{width:44px;height:44px}
  .intro{padding:16px 2px}.intro h1{font-size:21px}.intro p{font-size:12px}
  .main-grid,.right-column{display:flex;flex-direction:column;gap:11px}
  .panel{padding:14px;border-radius:18px}
  .character .avatar{width:92px;height:92px;flex:0 0 92px}
  .character-top{padding:10px;gap:8px}.character-actions{flex-wrap:wrap;gap:4px;padding:6px}
  .boss-tiles{grid-template-columns:repeat(4,minmax(0,1fr));max-height:260px}
  .ratio-dialog .boss-list{display:block}
  .ratio-character-info .avatar{width:85px;height:85px;flex:0 0 85px}
}
@media(max-width:420px){.boss-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.character .avatar{width:86px;height:86px;flex:0 0 86px}.stat-chip{padding:5px 6px;gap:3px}.stat-chip small{font-size:9px}.stat-chip b{font-size:11px}}
/* 3-column dashboard on wide screens: compact party slots and boss selection, no forced page scroll */
@media(min-width:1200px){
  .main-grid:not(.no-party){grid-template-columns:minmax(365px,1.03fr) minmax(0,1.6fr)}
  .main-grid:not(.no-party)>.right-column{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:13px}
  .main-grid:not(.no-party)>.right-column>.panel{min-height:0;overflow-y:auto;scrollbar-gutter:stable}
  .main-grid:not(.no-party) .boss-tiles{grid-template-columns:repeat(3,minmax(0,1fr));max-height:260px}
  .main-grid:not(.no-party) .slot{border-radius:12px}
  .main-grid:not(.no-party) .slot .avatar{width:47px;height:47px;flex-basis:47px}
  .main-grid:not(.no-party) .party-toolbar{gap:5px}
  .main-grid:not(.no-party) .panel-heading{margin-bottom:10px}
  .main-grid:not(.no-party) .party-actions{flex-wrap:wrap;gap:1px}
  .main-grid:not(.no-party) .party-panel .helper{font-size:11px;padding:9px}
}

.overview-dialog{width:min(850px,calc(100vw - 24px));max-height:85dvh;overflow:auto}
.overview-dialog .overview-panel{padding:0;margin:0;box-shadow:none}
.overview-dialog>.btn{margin-top:14px;width:100%}
@media(min-width:1200px) and (min-height:730px){
  .main-grid:not(.no-party){height:calc(100dvh - 270px);min-height:460px}
}
