:root{font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#203c35;background:#f4f5f0;font-synthesis:none;--bg:#f4f5f0;--surface:#fff;--ink:#203c35;--muted:#6c7973;--line:#dfe5dc;--accent:#176d53;--soft:#edf4ec;--warning:#8b5420;--shadow:0 12px 36px #163b3010;color-scheme:light}:root[data-theme=dark]{--bg:#101c19;--surface:#1c2b26;--ink:#e7eee7;--muted:#a6b7ad;--line:#374a40;--accent:#8fdbb5;--soft:#243a2c;--warning:#f0bb81;color-scheme:dark}@media(prefers-color-scheme:dark){:root[data-theme=system]{--bg:#101c19;--surface:#1c2b26;--ink:#e7eee7;--muted:#a6b7ad;--line:#374a40;--accent:#8fdbb5;--soft:#243a2c;--warning:#f0bb81;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer;color:var(--ink);border:1px solid var(--line);background:var(--surface);border-radius:10px;min-height:44px;padding:10px 15px;touch-action:manipulation}button:hover{border-color:var(--accent)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:disabled{opacity:.45;cursor:default}h1,h2,h3,p{margin:0}h1{font-size:36px;letter-spacing:-1.5px;margin-top:12px;font-weight:650}h2{font-size:21px;letter-spacing:-.5px}h3{font-size:17px}p{line-height:1.7}small{font-size:12px}header{max-width:1280px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:25px 32px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);font-size:23px;font-weight:650;letter-spacing:-.7px}.brand small{display:block;font-size:11px;letter-spacing:1px;margin-top:3px;color:var(--muted);font-weight:400}.brand-icon{background:#153c32;color:#edf5eb;font-size:34px;border-radius:12px;width:48px;height:48px;text-align:center;line-height:45px}.header-actions{display:flex;gap:8px}.header-actions button{background:transparent}main{max-width:1280px;margin:auto;padding:35px 32px 20px}.headline{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.7px;color:var(--muted)}.mode{font-size:12px;border:1px solid var(--line);padding:9px 14px;border-radius:30px;color:var(--accent)}.simulation{color:var(--warning)}.status-bar{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border:1px solid var(--line);border-radius:16px;margin-bottom:30px;padding:22px 0;box-shadow:var(--shadow)}.status-bar>div{padding:0 25px;border-right:1px solid var(--line);position:relative}.status-bar>div:last-child{border:0}.status-bar span{display:block;font-size:12px;color:var(--muted);margin-bottom:10px}.status-bar strong{font-size:32px;font-weight:600;line-height:1}.status-bar small{font-size:11px;color:var(--muted);font-weight:400;margin-left:7px}.status-bar button{display:block;font-size:11px;border:0;padding:0;min-height:28px;margin-top:5px;color:var(--accent)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px}.inventory,.recommendation,.prediction,.tools{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px}.section-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.section-top h2{margin-top:6px}.switch{display:flex;background:var(--bg);padding:4px;border-radius:12px;flex-shrink:0}.switch button{padding:6px 12px;background:transparent;border:0;font-size:12px}.switch button.active{background:var(--ink);color:var(--surface)}.legend{display:flex;gap:15px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-bottom:20px}.buildings{display:grid;grid-template-columns:1fr 1fr;gap:20px}.building-head{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--ink);padding-bottom:10px}.building-head span{font-size:11px;color:var(--accent)}.building>p{font-size:11px;color:var(--muted);margin:8px 0 14px}.floor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.floor{position:relative;text-align:left;min-height:87px;padding:10px;background:var(--soft);border-color:transparent;border-radius:8px}.floor strong{display:block;font-size:19px;font-weight:650}.floor strong small{font-size:10px;margin-left:2px;font-weight:400}.floor>span:not(.roof){font-size:10px;display:block;margin-top:6px}.floor em{position:absolute;right:6px;top:9px;font-size:9px;font-style:normal;color:var(--muted)}.floor.taken{background:var(--bg);color:var(--muted);border:1px dashed var(--line)}.floor.mine{background:var(--ink);color:var(--surface);border:1px solid var(--ink)}.floor.mine em{color:var(--surface)}.floor.best{outline:2px solid var(--accent);outline-offset:-2px}.roof{display:block!important;font-size:9px;margin-top:5px;color:var(--warning)}.hint{font-size:12px;color:var(--muted);margin-top:15px;line-height:1.7}aside{display:flex;flex-direction:column;gap:18px}.recommendation h2,.prediction h2{margin:8px 0 20px}.recommend{width:100%;display:flex;flex-direction:column;gap:8px;text-align:left;margin-bottom:10px;padding:16px}.recommend strong{font-size:19px}.recommend>span:last-child{font-size:11px;color:var(--muted)}.recommend.primary{background:#153c32;color:#f2f6e9;border-color:#153c32}.recommend.primary .eyebrow,.recommend.primary>span:last-child{color:#bed5c4}.prediction{background:var(--soft)}.prediction>p{font-size:12px;color:var(--muted)}.prediction>strong{display:block;font-size:21px;margin:10px 0}.combo{font-size:12px;line-height:1.9;border-top:1px solid var(--line);padding-top:12px;margin-bottom:16px}.prediction button{background:transparent}.tools{margin-top:24px;padding:0;overflow:hidden}.tabs{display:flex;border-bottom:1px solid var(--line);padding:10px 20px;gap:8px}.tabs button{border:0;background:transparent;font-size:13px}.tabs .active{color:var(--accent);background:var(--soft)}.tool-content{padding:24px}.solid{background:var(--ink);color:var(--surface);border-color:var(--ink)}.records{margin-top:16px;max-height:330px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px}.records button{display:flex;justify-content:space-between;gap:10px;font-size:12px;text-align:left}.records button span:last-child{color:var(--muted);font-size:10px}.empty{font-size:13px;padding:20px 0;color:var(--muted)}.form-row{display:flex;gap:15px;margin:15px 0}.form-row>label{flex:1;min-width:0}label{display:block;font-size:13px}input:not([type=checkbox]):not([type=range]),select,textarea{display:block;width:100%;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--bg);margin:7px 0 16px}textarea{min-height:85px;resize:vertical}.check{display:flex;align-items:center;gap:10px;min-height:44px}input[type=checkbox]{width:19px;height:19px;accent-color:var(--accent);flex-shrink:0}.button-row{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tool-content>h3{margin-top:22px}.plans{margin:15px 0}.plan{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;align-items:center;gap:12px;margin-bottom:8px}.plan span{flex:1;min-width:0;overflow-wrap:anywhere}.plan small{display:block;color:var(--muted);margin-top:5px}.weights{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin:22px 0}.weights input{display:block;width:100%;margin:15px 0;accent-color:var(--accent)}.weights output{font-size:18px}details{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}summary{cursor:pointer;min-height:40px;font-size:13px;font-weight:600}details p{font-size:13px;margin:8px 0}footer{margin-top:24px;color:var(--muted);font-size:11px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}footer p{width:100%}footer button{border:0;background:transparent;color:var(--accent);font-size:11px;min-height:35px}dialog{width:min(560px,calc(100% - 24px));max-height:90dvh;overflow:auto;border:1px solid var(--line);border-radius:18px;padding:30px;background:var(--surface);color:var(--ink);box-shadow:0 20px 100px #0004}dialog::backdrop{background:#0a211aa0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}dialog h2{margin:10px 35px 15px 0}dialog h3{margin:10px 0}dialog>.close{position:absolute;right:12px;top:12px;border:0;background:transparent;font-size:24px}.notice,.warning{font-size:13px;background:var(--soft);padding:12px;border-radius:8px;margin:12px 0}.warning{color:var(--warning)}.score-parts>div{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.score-parts small{display:block;color:var(--muted);margin-top:4px}fieldset{border:1px solid var(--line);border-radius:8px;margin:15px 0}.comparison{display:grid;grid-template-columns:1fr 1fr;gap:15px}.comparison section{min-width:0;overflow-wrap:anywhere}.comparison p{margin:10px 0}.chosen{background:var(--soft);padding:18px;border-radius:10px}.sim-banner{display:flex;gap:15px;align-items:center;flex-wrap:wrap;border:1px solid var(--warning);padding:15px;border-radius:10px;font-size:12px;margin-bottom:20px}.sim-banner button{margin-left:auto}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%);z-index:99;background:var(--ink);color:var(--surface);border-radius:10px;padding:15px 22px;font-size:13px;max-width:calc(100% - 24px);width:max-content;box-shadow:var(--shadow)}hr{border:0;border-top:1px solid var(--line);margin:25px 0}@media(max-width:1050px){.workspace{grid-template-columns:minmax(0,1fr) 260px}.floor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory,.recommendation,.prediction{padding:18px}.section-top{flex-wrap:wrap}.weights{grid-template-columns:1fr 1fr}}@media(max-width:760px){header{padding:16px}.brand{font-size:20px}.brand-icon{width:40px;height:40px;font-size:29px;line-height:37px}.header-actions button{padding:8px 10px;font-size:11px}main{padding:24px 14px 16px}h1{font-size:27px;letter-spacing:-1px}.headline{align-items:flex-start;gap:10px;margin-bottom:20px}.headline .eyebrow{font-size:9px}.mode{font-size:10px;padding:7px 9px;white-space:nowrap}.status-bar{grid-template-columns:1fr 1fr;padding:0;margin-bottom:20px}.status-bar>div{padding:16px;border-bottom:1px solid var(--line)}.status-bar>div:nth-child(2){border-right:0}.status-bar>div:nth-child(3){border-bottom:0}.status-bar strong{font-size:28px}.status-bar small{font-size:10px}.workspace{display:flex;flex-direction:column;gap:18px}.inventory{padding:17px 12px}.inventory .section-top{padding:0 3px;gap:12px}.inventory h2{font-size:19px}.switch button{font-size:11px;padding:5px 9px}.legend{gap:10px;font-size:9px}.buildings{gap:12px}.floor-grid{gap:6px}.floor{padding:9px 7px;min-height:88px}.floor strong{font-size:20px}.floor em{font-size:8px;right:5px}.floor>span:not(.roof){font-size:9px}.floor .roof{font-size:8px}.building-head h3{font-size:16px}.building-head span{font-size:10px}aside{display:grid;grid-template-columns:1fr;gap:14px}.recommendation{padding:20px}.recommend{padding:14px}.recommendation h2{margin-bottom:14px}.recommendation .recommend:not(.primary){display:inline-flex;width:calc(50% - 5px);vertical-align:top}.recommendation .recommend:nth-of-type(2){margin-right:6px}.recommend:not(.primary) strong{font-size:15px}.recommend .eyebrow{font-size:9px;letter-spacing:1px}.tools{margin-top:18px}.tabs{padding:8px;gap:0}.tabs button{font-size:12px;padding:8px 12px;flex:1}.tool-content{padding:18px 14px}.records{grid-template-columns:1fr}.form-row{gap:10px}.plans .plan{gap:8px;padding:10px}.plan button{font-size:11px;padding:7px}.plan strong{font-size:12px}.weights{gap:18px}dialog{padding:24px 18px}.button-row button{flex:1;font-size:12px}.comparison{gap:12px}footer{font-size:10px}.hint{font-size:11px}}.mobile-recommend{display:none}@media(max-width:760px){.mobile-recommend{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:8px 14px;margin-bottom:18px;font-size:12px}.mobile-recommend button{border:0;background:transparent;color:var(--accent);font-weight:650}.tool-content .button-row{display:grid;grid-template-columns:1fr 1fr}.tool-content .button-row button{font-size:12px;min-height:48px}.dialog-message{position:sticky;bottom:0}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s}dialog[open]{animation:appear .15s ease-out}@keyframes appear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}
