.dungeon-editor{display:grid;grid-template-columns:224px minmax(420px,1fr) 220px;grid-template-rows:auto minmax(0,1fr);gap:14px;height:calc(100vh - 44px);overflow:hidden;color:#e7e2d5}.dungeon-editor__header{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;background:#111827;padding:18px 22px;border-bottom:3px solid #f59e0b}.dungeon-editor__header h1{font-family:Georgia,serif;font-size:22px}.dungeon-editor__header span{font:12px ui-monospace,monospace;color:#f59e0b;text-transform:uppercase}.dungeon-editor__actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dungeon-editor__palette,.dungeon-editor__inspector{min-height:0;overflow-y:auto;background:#1f2937;padding:14px;display:flex;flex-direction:column;gap:8px;overscroll-behavior:contain}.dungeon-editor__palette button{min-width:0;background:#334155;color:#e7e2d5;border-color:#475569;text-align:left;display:flex;gap:8px;align-items:center;white-space:nowrap}.dungeon-editor__palette button span{overflow:hidden;text-overflow:ellipsis}.dungeon-editor__palette .is-selected{outline:2px solid #f59e0b}.dungeon-editor__canvas{min-height:0;background:#111827;padding:18px;overflow:auto;overscroll-behavior:contain}.dungeon-editor__canvas-tools{position:sticky;left:0;top:0;display:flex;gap:8px;align-items:center;padding:8px;margin-bottom:10px;background:#111827;color:#cbd5e1;font:12px ui-monospace,monospace;z-index:1;flex-wrap:wrap}.dungeon-editor__canvas-tools label{display:flex;align-items:center;gap:4px}.dungeon-editor__canvas-tools input{width:62px}.dungeon-editor__grid{display:grid;width:max-content;border:1px solid #334155}.map-cell{width:100%;aspect-ratio:1/1;border:1px solid #94a3b822;border-radius:0;padding:0;font:18px/1 "Segoe UI Emoji","Apple Color Emoji",sans-serif;display:grid;place-items:center;-webkit-user-select:none;user-select:none;touch-action:none}.map-cell--floor{background:#e7e2d5}.map-cell--wall{background:#334155}.map-cell--void{background:#020617}.map-cell--hidden_pass{background:#6b7280}.map-cell--hidden{filter:brightness(.18)}.map-cell--error{outline:2px solid #ef4444;outline-offset:-2px}.map-cell--selected{box-shadow:inset 0 0 0 2px #f59e0b}.dungeon-editor__hint{margin:4px 0;color:#cbd5e1;font-size:12px;line-height:1.35}.dungeon-editor__inspector textarea{min-height:110px;width:100%;background:#0f172a;color:#e7e2d5;border:1px solid #475569;font:12px ui-monospace,monospace}.dungeon-editor__status{margin-top:auto;padding:9px;background:#334155;color:#fbbf24;font:12px ui-monospace,monospace}@media(max-width:900px){.dungeon-editor{grid-template-columns:1fr;grid-template-rows:none;height:auto;overflow:visible}.dungeon-editor__header{grid-column:auto}.dungeon-editor__palette,.dungeon-editor__inspector{max-height:none;overflow:visible;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dungeon-editor__canvas{min-height:420px;max-height:calc(100vh - 32px)}}fieldset.dungeon-editor{border:0;padding:0;margin:0;min-width:0}.dungeon-editor__floor-manager{display:flex;flex-wrap:wrap;align-items:end;gap:8px;padding-bottom:12px}.dungeon-editor__floor-manager label{display:grid;gap:4px;flex:1 1 180px}.dungeon-editor__validation{display:block;width:100%;text-align:left;margin-top:8px;overflow-wrap:anywhere}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#20242a;background:#eef1f4}button,input,select,textarea{font:inherit}.fishing-catalog{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));gap:18px;align-items:start}.fishing-catalog section{padding:14px;border:1px solid #d5dde5;border-radius:8px;background:#fff}.fishing-catalog h2{margin-top:0;font-size:18px}.catalog-list{margin:16px 0 0;padding-left:20px;color:#556272;font-size:13px}.catalog-list li{margin:7px 0}@media(max-width:1100px){.fishing-catalog{grid-template-columns:1fr}}button{border:1px solid #c9d0d8;border-radius:6px;background:#fff;color:#20242a;min-height:34px;padding:7px 12px;cursor:pointer}button:hover{border-color:#7f8fa3}button.primary,.primary{background:#226f54;border-color:#226f54;color:#fff}button.danger{background:#fff5f2;border-color:#d07a64;color:#9a321d}button.ghost{background:transparent}input,select,textarea{border:1px solid #c9d0d8;border-radius:6px;background:#fff;color:#20242a;min-height:34px;padding:7px 9px;min-width:0}textarea{min-height:70px;resize:vertical}.app-shell{display:grid;grid-template-columns:244px 1fr;min-height:100vh}.sidebar{background:#1f2933;color:#fff;padding:18px 14px;display:flex;flex-direction:column;gap:18px}.brand{display:flex;flex-direction:column;gap:4px;padding:8px 10px 14px;border-bottom:1px solid rgba(255,255,255,.14)}.brand span{font-size:13px;color:#b7c0ca}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar a{color:#dbe3ec;text-decoration:none;display:grid;grid-template-columns:54px 1fr;align-items:center;min-height:38px;border-radius:6px;padding:0 10px}.sidebar a.active,.sidebar a:hover{background:#334354;color:#fff}.nav-icon{font-size:12px;color:#9eb2c7}.sidebar .ghost{margin-top:auto;color:#fff;border-color:#fff3}.main{min-width:0;padding:22px}.page{display:flex;flex-direction:column;gap:16px}.page header{display:flex;align-items:center;justify-content:space-between}h1{margin:0;font-size:24px;font-weight:650}h2{margin:0 0 10px;font-size:17px}h3{margin:18px 0 8px;font-size:15px}.content,section{min-width:0}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}section,.details,.source-box{background:#fff;border:1px solid #dfe4ea;border-radius:8px;padding:14px}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px}.balance-comparison-heading{display:flex;justify-content:space-between;gap:12px;align-items:start}.balance-comparison-heading .muted{margin:3px 0 0}.balance-comparison-unit{border:1px solid #b9d4c8;background:#edf7f1;color:#226f54;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;letter-spacing:.04em}.balance-delta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:14px 0}.balance-delta{border-left:3px solid #91a4b8;background:#f6f8fa;padding:9px 10px;display:grid;gap:4px}.balance-delta span{font-size:11px;color:#627184}.balance-delta strong{font-size:14px}.balance-delta i{color:#728092;font-style:normal}.balance-delta em{font-style:normal;font-size:12px;font-weight:700;color:#627184}.balance-delta em.positive{color:#147a4d}.balance-delta em.negative{color:#b23a2a}.balance-curve{border-top:1px solid #dfe4ea;padding-top:12px}.balance-curve h3{margin:0}.balance-curve .muted{margin:3px 0 8px}.balance-curve svg{width:100%;height:120px;overflow:visible;background:linear-gradient(180deg,#f7faf9,#fff)}.balance-curve line{stroke:#c9d0d8;stroke-width:1}.balance-curve polyline{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.balance-curve-before{stroke:#7f8fa3;stroke-dasharray:5 4}.balance-curve-after{stroke:#226f54}.balance-curve-key{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:4px 0 0;color:#627184;font-size:12px}.toolbar input{width:min(460px,100%)}.payment-search{flex-wrap:wrap}.payment-search input{width:min(360px,100%)}.payment-categories{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.payment-categories button.active{background:#1d6fd8;border-color:#1d6fd8;color:#fff}.payment-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:10px;color:#627184;font-size:12px}.payment-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);gap:16px}.payment-layout tr{cursor:pointer}.payment-layout tr:hover{background:#f5f8fb}.payment-anomaly{background:#fff8e7}.payment-layout small{display:block;color:#728092;margin-top:3px}.payment-detail{position:sticky;top:16px;align-self:start}.payment-detail dl{display:grid;grid-template-columns:120px 1fr;gap:8px 12px;font-size:13px}.payment-detail dt{color:#728092}.payment-detail dd{margin:0;overflow-wrap:anywhere}.payment-events{padding-left:18px}.payment-events li{display:grid;gap:3px;margin-bottom:12px;font-size:13px}.payment-events time{color:#728092;font-size:12px}.anomaly-text{color:#9a321d;font-weight:650}.empty{color:#728092;padding:16px}@media(max-width:1050px){.payment-layout{grid-template-columns:1fr}.payment-detail{position:static}}.boss-filters{flex-wrap:wrap;align-items:end}.boss-filters label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:#627184}.combat-balance-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;align-items:end}.combat-balance-filters label{display:grid;gap:4px;color:#627184;font-size:12px}.combat-balance-filters input,.combat-balance-filters select{width:100%}.dominance-strip{border-left:5px solid #d49322;background:#fff8e7;display:grid;gap:10px}.dominance-strip>div{display:flex;justify-content:space-between;gap:12px;color:#764d0c}.dominance-strip article{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(220px,1fr) minmax(260px,1.5fr);gap:12px;padding-top:10px;border-top:1px solid #efd9a8}.dominance-strip article span,.dominance-strip article p{margin:0;color:#765f35}.revision-matrix{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}.revision-matrix article{border:1px solid #dfe4ea;border-radius:6px;overflow:hidden}.revision-matrix article>div{display:flex;justify-content:space-between;padding:10px;background:#263746;color:#fff}.revision-matrix article>div span{color:#bed0dc;font-size:12px}.revision-matrix dl{display:grid;grid-template-columns:repeat(4,auto);margin:0;padding:10px;gap:4px 10px}.revision-matrix dt{color:#627184;font-size:11px}.revision-matrix dd{margin:0;font-weight:700}.combat-balance-page td small{display:block;margin-top:3px;color:#728092}@media(max-width:800px){.dominance-strip article{grid-template-columns:1fr}.revision-matrix dl{grid-template-columns:auto 1fr}}.entity-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;align-items:start;margin-bottom:12px}.entity-form button.primary{align-self:stretch}.fish-classification{grid-column:1 / -1;display:grid;grid-template-columns:minmax(150px,.6fr) 1fr;gap:8px 14px;margin:0;padding:9px;border:1px solid #b9d4c8;border-radius:6px;background:#f7fbf8}.fish-classification legend{padding:0 5px;color:#226f54;font-size:12px;font-weight:650}.fish-classification>label,.fish-traits{display:grid;gap:4px;color:#526273;font-size:12px}.fish-traits{grid-template-columns:repeat(auto-fit,minmax(105px,1fr));align-content:end}.fish-traits label{display:flex;align-items:center;gap:4px}@media(max-width:520px){.fish-classification{grid-template-columns:1fr}}.number-label{display:flex;flex-direction:column;gap:3px}.number-label span{font-size:11px;color:#627184}.table-wrap{overflow:auto;border:1px solid #dfe4ea;border-radius:8px;background:#fff}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid #edf0f3;vertical-align:top}th{background:#f7f9fb;color:#526273;font-weight:650;white-space:nowrap}td{max-width:360px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:14px}.metric{border:1px solid #dfe4ea;border-radius:6px;padding:9px;display:flex;flex-direction:column;gap:4px}.metric span,.muted{color:#627184}.metric strong{font-size:15px}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:#1f2933}.login-panel{width:min(420px,100%);background:#fff;border-radius:8px;padding:24px;display:flex;flex-direction:column;gap:14px}.login-panel label{display:flex;flex-direction:column;gap:5px}.eyebrow{margin:0 0 6px;color:#627184;font-size:13px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:#eef1f4;border-radius:8px}.segmented button{border-color:transparent;background:transparent}.segmented button.active{background:#fff;border-color:#d2d8df}.error{background:#fff1f0;border:1px solid #e4a29a;color:#9a321d;border-radius:6px;padding:9px 10px}.error.inline{grid-column:1 / -1}.global-goals-page{gap:20px}.global-goals-page .panel{padding:20px}.goal-editor{border-top:3px solid #226f54}.goal-editor-heading{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:20px}.goal-editor-heading h2,.monster-groups-panel h2{margin-bottom:5px}.goal-editor-heading p,.section-description,.goal-section>p,.reward-tier p{margin:0;color:#627184;font-size:13px;line-height:1.45}.goal-status,.goal-status-draft{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:650;white-space:nowrap}.goal-status-draft{background:#edf2f7;color:#526273}.goal-status-active{background:#e7f5ee;color:#176b47}.goal-status-completed{background:#e7f0fb;color:#285b98}.goal-status-expired,.goal-status-cancelled{background:#f5f0ed;color:#765b4b}.goal-form{display:flex;flex-direction:column;gap:14px}.goal-section{border:1px solid #dfe4ea;border-radius:8px;margin:0;min-width:0;padding:16px}.goal-section legend{padding:0 6px;color:#263c50;font-size:15px;font-weight:700}.goal-section-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;margin-top:14px}.form-field{display:flex;flex-direction:column;gap:5px;color:#334354;font-size:13px;font-weight:650;min-width:0}.form-field>small{color:#728092;font-size:12px;font-weight:400;line-height:1.35}.form-field textarea{min-height:92px}.goal-form-wide{grid-column:1 / -1}.reward-tier-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reward-tier{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;padding:14px;border:1px solid #e2e8ee;border-radius:7px;background:#f9fbfc}.reward-tier>div{grid-column:1 / -1}.reward-tier h3{margin:0 0 3px;color:#263c50}.goal-form-actions{display:flex;justify-content:flex-end}.goal-form-actions .primary{min-width:190px}.monster-groups-panel{display:flex;flex-direction:column;gap:16px}.monster-group-form{display:grid;grid-template-columns:minmax(150px,.65fr) minmax(190px,1fr) minmax(260px,1.7fr) auto;align-items:end;gap:12px}.monster-group-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:8px;list-style:none;margin:0;padding:0}.monster-group-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid #e2e8ee;border-radius:7px}.monster-group-list small,td small{display:block;margin-top:3px;color:#728092;overflow-wrap:anywhere}.activation-panel{border-left:3px solid #d49a37}.ready-message{color:#176b47}.validation-list{color:#9a321d}.activation-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin-top:14px}.muted{color:#627184;margin:4px 0 0}.arena-schedule-panel{display:grid;gap:14px}.arena-day-grid{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:8px}.arena-day{min-height:72px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;text-align:left}.arena-day span{color:#176b47;font-size:13px}.arena-day.disabled{background:#f5f6f7;color:#627184}.arena-day.disabled span{color:#728092}.modal-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:20px;background:#19242f7a}.arena-modal{width:min(480px,100%);background:#fff;border-radius:9px;padding:20px;box-shadow:0 16px 48px #0000003d}.arena-modal h2{margin-top:0}.arena-form{display:grid;gap:14px}.arena-form label{display:grid;gap:5px;color:#334354;font-size:13px;font-weight:650}.checkbox-label{grid-template-columns:auto 1fr;align-items:center}.checkbox-label input{min-height:auto}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.arena-deadline{margin:0;padding:10px;border-left:3px solid #226f54;background:#edf7f1;line-height:1.5}@media(max-width:760px){.goal-editor-heading,.activation-row{align-items:stretch;flex-direction:column;grid-template-columns:1fr}.goal-section-fields,.reward-tier-grid,.reward-tier,.monster-group-form{grid-template-columns:1fr}.goal-form-wide,.reward-tier>div{grid-column:auto}.goal-form-actions .primary{width:100%}.arena-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.source-box{white-space:pre-wrap;overflow:auto;margin:12px 0 0}@media(max-width:920px){.app-shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:2}.sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}.loot-admin{min-height:100vh;background:#f4f0e7;color:#20242a;padding:28px 34px;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.loot-admin__header{display:flex;justify-content:space-between;gap:24px;align-items:end;border-bottom:1px solid #c9bda9;padding-bottom:22px}.loot-admin h1,.loot-admin h2,.loot-admin h3{font-family:Georgia,serif}.loot-admin h1{font-size:38px;margin:5px 0}.loot-admin h2{margin:4px 0;font-size:21px}.loot-admin h3{margin:18px 0 8px}.loot-admin p{color:#6b6258}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.15em;font:11px ui-monospace,monospace;color:#9a5d2e}.loot-admin__header nav{display:flex;gap:8px}.loot-admin__header nav a{color:#6b6258;text-decoration:none;border-bottom:2px solid transparent;padding:9px 10px}.loot-admin__header nav a.active{color:#9a5d2e;border-color:#9a5d2e}.loot-admin__notice{margin:18px 0;padding:11px 14px;background:#fffaf0;border-left:4px solid #c77d3c;font:12px ui-monospace,monospace}.loot-admin__grid{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(400px,1.4fr) minmax(360px,1fr);gap:16px;align-items:start}.loot-panel{background:#fffdf9;border:1px solid #d8cebf;padding:18px;min-width:0;box-shadow:0 4px 16px #6c523014}.loot-panel--editor{grid-column:2}.loot-panel--tables{grid-row:span 2}.loot-panel--boss{grid-column:1/-1}.panel-heading{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:16px}.panel-heading button{white-space:nowrap}.table-list{display:grid;gap:6px}.table-list__item,.monster-picker button{display:grid;text-align:left;gap:4px;width:100%;background:#f8f4ec;border:1px solid #e2d8ca;border-radius:0;padding:11px}.table-list__item span,.monster-picker span,.muted{font-size:12px;color:#86796d}.table-list__item em{font:10px ui-monospace,monospace;color:#9a5d2e;font-style:normal}.table-list__item.active,.monster-picker button.active{border-color:#c77d3c;background:#fff4e5}.status{color:#9d4534!important}.status--on{color:#3c765f!important}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-grid__wide{grid-column:1/-1}.loot-admin label{display:grid;gap:5px;font-size:11px;color:#756a60}.loot-admin input,.loot-admin select,.loot-admin textarea{width:100%;border:1px solid #cfc3b3;border-radius:2px;background:#fff;color:#20242a;padding:8px;min-height:34px}.loot-admin textarea{min-height:70px}.check-label{display:flex!important;align-items:center;grid-template-columns:auto 1fr!important}.check-label input{width:auto}.entry-list,.drop-preview{display:grid;gap:7px;margin-top:16px}.entry-row{display:grid;grid-template-columns:minmax(130px,1.5fr) repeat(4,minmax(55px,.55fr)) auto;gap:6px;align-items:end;padding:8px;background:#f7f3ec;border-top:1px solid #e3d9cc}.number-field{min-width:0}.number-field span{font-size:9px;text-transform:uppercase;letter-spacing:.06em}.number-field input{padding:7px 5px}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px}.toolbar input{flex:1;min-width:120px}.short-input{max-width:90px}.loot-admin button{border:1px solid #cfc3b3;background:#fff;color:#4d4238;border-radius:2px;padding:8px 11px;cursor:pointer}.loot-admin button:hover{border-color:#9a5d2e}.loot-admin button.primary{background:#9a5d2e;border-color:#9a5d2e;color:#fff}.loot-admin button.danger{color:#9d4534}.sum-badge{font:12px ui-monospace,monospace;color:#9a5d2e;background:#fff4e5;padding:6px 8px}.monster-picker{display:grid;gap:5px;max-height:210px;overflow:auto}.drop-form{display:grid;grid-template-columns:1.5fr repeat(4,minmax(60px,.6fr)) auto;gap:6px;align-items:end}.drop-preview>div{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px;background:#f7f3ec;font-size:12px}.drop-preview strong{font:11px ui-monospace,monospace;color:#756a60}.empty-state{padding:25px;background:#f8f4ec;text-align:center}@media(max-width:1200px){.loot-admin__grid{grid-template-columns:1fr 1fr}.loot-panel--editor{grid-column:auto}.loot-panel--boss{grid-column:1/-1}}@media(max-width:760px){.loot-admin{padding:18px}.loot-admin__header{display:block}.loot-admin__header nav{margin-top:15px}.loot-admin__grid{grid-template-columns:1fr}.loot-panel--tables,.loot-panel--editor,.loot-panel--boss{grid-column:auto;grid-row:auto}.entry-row,.drop-form{grid-template-columns:1fr 1fr}.entry-row select,.drop-form select{grid-column:1/-1}}
