/* Object Studio: the same small, searchable trait library for every object. */
#modal:has(.objects-modal),#modal:has(.customize-modal){overflow:hidden;max-height:calc(100dvh - 28px)}
#modal-content.objects-modal,#modal-content.customize-modal{display:flex;flex-direction:column;max-height:calc(100dvh - 34px);width:min(1060px,calc(100vw - 36px));max-width:none}
.objects-modal>.modal-title,.customize-modal>.modal-title{flex-shrink:0;min-height:36px}
.objects-modal .object-body{padding:0;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.object-editor-heading{display:flex;align-items:center;gap:17px;padding:22px 26px 20px;border-bottom:1px solid #d8ddcf;background:#faf9ef;flex-shrink:0}
.object-editor-heading h1{font-size:27px;letter-spacing:-.8px;margin:3px 0 4px}
.object-editor-heading p{margin:0;color:#778070;font-size:13px;line-height:1.5}
.object-editor-heading .dialog-eyebrow{font-size:9px;letter-spacing:1px}
.object-sprite-card{display:grid;place-items:center;width:62px;height:62px;flex-shrink:0;background:#e9eedc;border:1px solid #bcc8aa;box-shadow:3px 3px #d8dfc8;border-radius:4px}
.object-sprite-card canvas{width:40px;height:40px;image-rendering:pixelated}
.object-editor-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(300px,1fr);min-height:0;height:min(620px,calc(100dvh - 245px));overflow:hidden}
.object-details,.trait-browser{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:22px 25px}
.object-details{background:#faf9ef}
.objects-modal .object-form-grid{margin:0 0 18px;grid-template-columns:1fr 1fr;gap:12px}
.objects-modal .object-form-grid>div{min-width:0}
.objects-modal .object-form-grid label,.object-details>label{font-size:12px;color:#555f4c;font-weight:600;margin-bottom:8px}
.objects-modal select,.objects-modal input[type=text],.objects-modal input:not([type]){width:100%;min-width:0;font-size:12px;height:38px}
.object-draw-link{font-size:12px;margin:0 0 8px;color:#4158b8}
.object-traits-heading{display:flex;gap:14px;justify-content:space-between;align-items:start;margin:26px 0 14px}
.object-traits-heading .section-label{font-size:9px;color:#77826a}
.object-traits-heading p{font-size:11px;line-height:1.5;color:#77816c;margin:6px 0 0;overflow-wrap:anywhere}
.trait-capacity{flex-shrink:0;font:10px var(--mono);color:#6e7b5f;padding:5px 7px;background:#eaf0dc;border:1px solid #cbd4bc;border-radius:3px}
.objects-modal .trait-list{gap:10px;margin:0}
.objects-modal details.trait-card{padding:0;margin:0;border:1px solid #c7d0bc;background:#fffef8;border-radius:4px;overflow:hidden}
.objects-modal .trait-head{display:flex;align-items:center;gap:10px;margin:0;padding:14px 13px;font-weight:500;list-style:none;cursor:pointer;transition:background .15s}
.objects-modal .trait-head::-webkit-details-marker{display:none}
.objects-modal .trait-head:hover{background:#eff2e5}
.objects-modal .trait-head:focus-visible{outline:3px solid #ef6eab;outline-offset:-3px}
.trait-card-icon{display:grid;place-items:center;width:29px;height:29px;flex-shrink:0;color:#687d52;background:#e7eddb;border:1px solid #cbd6bd;font-size:18px;border-radius:3px}
.trait-card-title{flex:1;min-width:0}
.trait-card-title strong{display:block;font-size:13px;font-weight:650}
.objects-modal .trait-head .trait-card-title small{display:block;font-size:11px;line-height:1.4;margin-top:4px;color:#7f8774;font-weight:400}
.trait-expand{font-size:20px;color:#8a957b;margin-left:auto}
.trait-card[open] .trait-expand{transform:rotate(180deg)}
.trait-card-body{padding:0 14px 11px}
.trait-example{font-size:11px;line-height:1.55;padding:10px 11px;background:#f0f3e7;border-left:2px solid #b9c897;color:#6d7b5d;margin:0 0 13px}
.objects-modal .trait-params{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:0}
.objects-modal .trait-param{margin:0;font-size:12px;min-width:0;gap:7px 10px}
.objects-modal .trait-param>span{font-size:12px;gap:12px;line-height:1.4}
.objects-modal .trait-param>span small{flex-shrink:0;font-size:9px;align-self:center}
.objects-modal .trait-param input[type=range]{accent-color:#657c4c;min-width:0;height:16px;cursor:pointer}
.objects-modal .trait-param output{min-width:38px;padding:3px 5px;text-align:center;background:#eef1e4;border-radius:2px;color:#697858;font-size:10px}
.objects-modal .trait-param select{padding:0 8px;height:36px}
.objects-modal .trait-param.check{background:#f5f6ec;padding:9px 10px;border:1px solid #e0e5d5;border-radius:3px;grid-template-columns:18px 1fr}
.objects-modal .trait-param.check input{width:16px;height:16px;accent-color:#657c4c}
.objects-modal .trait-param textarea{resize:vertical;min-height:82px;line-height:1.5;font-size:12px;margin:0;padding:10px}
.objects-modal .trait-param textarea.code-editor{min-height:190px;background:#27332f;color:#e4eddb;font-size:11px;white-space:pre;overflow:auto}
.trait-ready,.trait-custom-note{font-size:11px;color:#77876b;line-height:1.5;margin:0}
.objects-modal .remove-trait{font-size:10px;color:#96756e;margin-top:13px;padding:3px 0}
.objects-modal .trait-empty{padding:23px 20px;border:1px dashed #c6d0b8;background:#f0f3e6;text-align:center}
.trait-empty>span{display:block;font-size:30px;color:#9aab78;margin-bottom:7px}
.trait-empty strong{display:block;font-size:13px;color:#5c6c4e;font-weight:600}
.trait-empty p{font-size:12px;line-height:1.65;color:#88917d;margin:9px 0 15px}
.trait-empty .button{font-size:11px;box-shadow:1px 1px #c0cab3;color:#5c6c4e}
.objects-modal .object-collision{margin:24px 0 0;padding-top:14px;border-top:1px dashed #ccd4c0}
.objects-modal .object-collision summary{display:flex;gap:10px;margin:0;font-size:12px;color:#718063;align-items:center}
.object-collision summary small{font:8px var(--mono);text-transform:uppercase;letter-spacing:.5px;padding:3px 5px;background:#ebefe0;color:#93a17f}
.object-collision .muted{font-size:11px;line-height:1.5}
.trait-browser{background:#edf1e4;border-left:1px solid #cbd3bf;padding:22px}
.trait-browser-heading .section-label{font-size:9px}
.trait-browser-heading h2{font-size:21px;letter-spacing:-.5px;margin:6px 0}
.trait-browser-heading p{font-size:12px;color:#818d73;line-height:1.6;margin:0 0 16px}
.trait-search-label{font-size:11px;color:#738365;margin-bottom:7px}
#trait-search{display:block;width:100%;height:39px;border:1px solid #b5c39f;border-radius:3px;background:#fffef6;padding:0 11px;font-size:12px;min-width:0}
.trait-categories{display:flex;gap:5px;flex-wrap:wrap;margin:11px 0 16px}
.trait-categories button{font-size:10px;padding:6px 9px;background:#f7f8ef;border:1px solid #cbd5bc;border-radius:3px;color:#7a866a}
.trait-categories button[aria-pressed=true]{background:#657b4e;color:#fffdf1;border-color:#657b4e}
.objects-modal details.trait-recipe-section{border-top:1px dashed #c6d1b8;border-bottom:1px dashed #c6d1b8;padding:13px 0;margin:0 0 14px}
.objects-modal .trait-recipe-section summary{font-size:12px;font-weight:600;color:#61764d;margin:0;cursor:pointer}
.trait-recipe-section summary small{font:8px var(--mono);display:inline;margin-left:8px;color:#94a180;font-weight:400}
.trait-recipe-section>p{font-size:10px;color:#859176;line-height:1.5;margin:11px 0}
.trait-recipes{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.trait-recipes button{display:grid;grid-template-columns:20px 1fr;gap:4px 7px;padding:10px 9px;border:1px solid #ced8c0;border-radius:3px;background:#fafbef;text-align:left;min-width:0}
.trait-recipes button:hover{border-color:#8b9f70;background:#f5f3d9}
.trait-recipes button>span{font-size:18px;grid-row:span 2;color:#92a276;align-self:start}
.trait-recipes strong{font-size:10px;line-height:1.4;font-weight:600;align-self:center}
.trait-recipes small{font-size:9px;line-height:1.4;color:#8b977c}
.trait-result-count{font:9px var(--mono);color:#93a082;letter-spacing:.1px;margin:0 0 10px}
.trait-results{display:grid;gap:7px}
.trait-choice{display:grid;grid-template-columns:29px minmax(0,1fr) 21px;align-items:start;gap:10px;background:#fafbef;border:1px solid #d2dbc4;border-radius:3px;padding:12px 11px;text-align:left;min-width:0}
.trait-choice:hover:not(:disabled){background:#fff7d7;border-color:#bda758}
.trait-choice-icon{display:grid;place-items:center;width:27px;height:27px;font-size:19px;background:#e6eddb;border:1px solid #d4dec6;border-radius:2px;color:#73895b}
.trait-choice strong{display:block;font-size:12px;font-weight:600}
.trait-choice small{font-size:10px;line-height:1.5;color:#82916f;margin-top:5px}
.trait-choice em{font-style:normal;font-size:20px;color:#7e935f;line-height:1.2}
.trait-choice.is-added{opacity:.6;border-style:dashed;grid-template-columns:29px minmax(0,1fr) 47px}
.trait-choice.is-added em{font:9px var(--mono);padding-top:5px;color:#6f8359}
.trait-no-results{padding:20px 12px;text-align:center;color:#7e8d6e;font-size:12px;line-height:1.5}
.trait-no-results .text-button{font-size:11px}
.trait-browser-note{display:block;font-size:10px;line-height:1.7;color:#899778;margin-top:18px}
.object-editor-footer{display:flex;align-items:center;gap:9px;background:#f0f3e6;border-top:1px solid #cbd4c0;padding:15px 24px;flex-shrink:0}
.object-editor-footer>div{flex:1;min-width:0;font-size:11px;color:#899679}
.object-editor-footer .text-button{font-size:11px;color:#947568}
.object-editor-footer .button{font-size:12px;min-height:38px;padding:0 14px;box-shadow:2px 2px #82906e}
/* Customization shares the same fixed chrome and comfortable scrolling body. */
#modal-content.customize-modal{width:min(990px,calc(100vw - 36px))}
.customize-modal .customize-shell{grid-template-columns:215px minmax(0,1fr);min-height:0;height:min(660px,calc(100dvh - 155px));max-height:none;overflow:hidden}
.customize-modal .customize-nav{padding:23px 14px;min-height:0;gap:7px;overscroll-behavior:contain;background:#edf1e4}
.customize-modal .customize-nav>button{gap:10px;font-size:12px;padding:11px 10px;min-width:0;flex-shrink:0;line-height:1.45}
.customize-modal .customize-nav>button>span{flex-shrink:0}
.customize-modal .customize-nav>button .customize-nav-copy{font-size:12px;width:auto;min-width:0}
.customize-nav-copy strong{display:block;font-size:12px;font-weight:600}
.customize-nav-copy small{font-size:10px;color:#89967a;font-weight:400;margin-top:2px;line-height:1.4}
.customize-modal .customize-nav .source-link{font-size:11px;margin:20px 8px 0;line-height:1.5}
.customize-modal .customize-nav .source-link small{margin-top:5px;font-size:9px}
.customize-modal .customize-content{min-width:0;min-height:0;padding:27px 30px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.customize-modal .customize-content h1{font-size:26px;line-height:1.2;margin-top:8px;letter-spacing:-.65px}
.customize-modal .customize-content>p{font-size:12px;line-height:1.65;margin-bottom:20px}
.customize-modal .config-fields{border:1px solid #d2dbc4;border-radius:4px;background:#fffef8;padding:0 15px;margin:18px 0}
.customize-modal .config-field{font-size:12px;gap:12px;padding:12px 0}
.customize-modal .config-field:last-child{border-bottom:0}
.customize-modal .config-field input{width:90px;flex-shrink:0;min-width:0}
.customize-modal .config-field span small{display:block;margin:3px 0 0;font-size:9px}
.customize-modal .check-row{border:1px solid #d7dfcc;border-radius:4px;background:#f0f4e7;padding:12px;margin:13px 0;font-size:12px;line-height:1.5;flex-wrap:wrap;gap:8px}
.customize-modal .check-row input{flex-shrink:0;margin:0}
.customize-modal .check-row small{font-size:10px;line-height:1.5}
.customize-modal .customize-content details{padding:15px;margin:20px 0 0;border:1px solid #d5ddc9;border-radius:4px;background:#f6f8ed}
.customize-modal .customize-content summary{font-size:12px;margin:0 0 13px}
.customize-modal .customize-content summary .muted{font-size:10px}
.customize-modal .customize-content .muted{font-size:11px;line-height:1.6}
.customize-modal .pack-grid,.customize-modal .fx-look-grid{gap:8px;grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0}
.customize-modal .pack-grid strong{font-size:10px;line-height:1.45;overflow-wrap:anywhere}
.customize-modal .advanced-fx-field{grid-template-columns:minmax(100px,1fr) minmax(75px,125px) 44px;font-size:11px;gap:9px}
.customize-modal .customize-footer{flex-shrink:0;padding:15px 23px;gap:15px;min-height:62px}
.customize-modal .customize-footer>span{font-size:11px;line-height:1.5}
.customize-modal .customize-footer .button{font-size:12px;min-height:36px;box-shadow:2px 2px #879770}
@media(max-width:760px){
  #modal-content.objects-modal,#modal-content.customize-modal{width:calc(100vw - 28px);max-height:calc(100dvh - 28px)}
  .object-editor-heading{padding:17px 19px;gap:12px}
  .object-editor-heading h1{font-size:23px}.object-editor-heading p{font-size:11px}.object-sprite-card{width:50px;height:50px}.object-sprite-card canvas{width:32px;height:32px}
  .object-editor-grid{grid-template-columns:minmax(0,1fr);display:block;overflow:auto;height:min(650px,calc(100dvh - 211px));overscroll-behavior:contain}
  .object-details,.trait-browser{overflow:visible;scrollbar-gutter:auto;padding:19px}
  .trait-browser{border-left:0;border-top:1px solid #cbd3bf}
  .objects-modal .object-form-grid{grid-template-columns:1fr 1fr}
  .object-editor-footer{padding:13px 16px;gap:8px}.object-editor-footer>div>span{display:none}.object-editor-footer .button{font-size:11px;padding:0 10px}
  .customize-modal .customize-shell{display:flex;flex-direction:column;height:min(720px,calc(100dvh - 142px));min-height:0;overflow:hidden}
  .customize-modal .customize-nav{flex-direction:row;position:static;overflow:auto;gap:5px;padding:10px;flex-shrink:0;border-right:0;border-bottom:1px solid #cbd4be;min-height:57px}
  .customize-modal .customize-nav .section-label,.customize-modal .source-link,.customize-nav-copy small{display:none}
  .customize-modal .customize-nav>button{padding:7px 10px;font-size:11px;white-space:nowrap;gap:6px}.customize-modal .customize-nav>button>span{font-size:15px;width:auto}.customize-nav-copy strong{font-size:11px}
  .customize-modal .customize-content{padding:21px 20px;flex:1;min-height:0;overflow:auto}.customize-modal .customize-content h1{font-size:23px}
  .customize-modal .customize-footer{padding:12px 17px;gap:12px;min-height:59px}.customize-modal .customize-footer>span{font-size:10px}
}
@media(max-width:420px){
  .objects-modal .object-form-grid{grid-template-columns:1fr}.trait-recipe-section summary small{display:block;margin:5px 0 0}
  .object-editor-heading{padding:15px}.object-editor-heading h1{font-size:22px}.object-editor-heading p{max-width:240px}.object-details,.trait-browser{padding:16px}
  .object-editor-footer{padding:11px 12px;flex-wrap:wrap;justify-content:flex-end}.object-editor-footer>div{flex-basis:100%}.object-editor-footer>div:empty{display:none}
  .customize-modal .pack-grid,.customize-modal .fx-look-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .customize-modal .advanced-fx-field{grid-template-columns:minmax(0,1fr) 43px;gap:8px}.customize-modal .advanced-fx-field>span{grid-column:1/-1}.customize-modal .advanced-fx-field input{grid-column:1}
  .customize-modal .check-row small{margin-left:25px;width:100%}
}
