@font-face{font-family:system;src:local("Segoe UI")}
:root{font-family:system,system-ui,sans-serif;color:#34443c;background:#f8efda;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;overscroll-behavior:none}button,a,input{-webkit-tap-highlight-color:transparent}
button{font:inherit;font-weight:650;cursor:pointer;border:1px solid #c9c9b0;color:#34443c;background:#fff9e9;border-radius:7px;padding:8px 13px;min-height:40px;touch-action:manipulation}
button:hover{background:#eee4c7}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d29b3d;outline-offset:2px}
button.active,button.primary{background:#326d62;border-color:#326d62;color:#fff6dc}button:disabled{opacity:.5;cursor:default}
.quiet{background:transparent;border-color:transparent}.top{height:54px;display:flex;align-items:center;padding:0 22px;gap:7px;background:#244e48;color:#fff4d4}.top button{color:#fff4d4}
.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-weight:850;font-size:21px;letter-spacing:2px;margin-right:auto}.brand-icon{font-size:30px;color:#dfb65a}.brand small{font-size:9px;letter-spacing:1px;border:1px solid #a1b494;padding:3px 5px;border-radius:3px;vertical-align:middle}
#app{height:100dvh;min-height:560px;display:flex;flex-direction:column;overflow:hidden}
.stats{display:flex;justify-content:space-evenly;gap:24px;background:#fff9e9;border-bottom:1px solid #d8cbae;padding:10px 20px}.stats div{display:flex;flex-direction:column;min-width:80px}.stats span{font-size:10px;letter-spacing:1.1px;color:#6a7966;font-weight:750}.stats strong{font-size:22px;font-variant-numeric:tabular-nums;line-height:1.35}
#viewport{position:relative;flex:1;min-height:150px;overflow:hidden;background:#9bbfc5}canvas{display:block;width:100%;height:100%;touch-action:none;image-rendering:pixelated}
.view-controls{position:absolute;right:14px;top:14px;display:flex;gap:5px}.view-controls button{background:#fff9e9ed;font-size:20px;width:40px;padding:0;border-color:#bcc4ac}
.beta-note{position:absolute;left:16px;top:17px;color:#284f4c;font-size:10px;font-weight:800;letter-spacing:1.3px;pointer-events:none}
#toast{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);padding:10px 18px;border-radius:8px;background:#244e48f2;color:#fff4d4;max-width:85%;text-align:center;font-size:14px;pointer-events:none;opacity:0;transition:opacity .15s}#toast.visible{opacity:1}
#loading{position:absolute;inset:0;display:grid;place-content:center;background:#f8efda}
.timebar{height:48px;padding:4px 18px;display:flex;gap:16px;align-items:center;background:#f0e5cc;border-top:1px solid #d6c6a4}.speeds{display:flex;gap:4px}.speeds button{min-height:32px;padding:5px 11px}.timebar>span{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.timebar>button{min-height:32px}
.tabs{display:flex;gap:6px;padding:7px 20px 0;background:#fff9e9}.tabs button{border:0;border-radius:7px 7px 0 0;min-height:34px;padding:6px 22px}.tabs .active{background:#ece4cb;color:#244e48}
#panel{height:174px;background:#ece4cb;padding:10px 20px;overflow:auto;flex-shrink:0}.build-tools{display:flex;gap:8px;align-items:center;margin-bottom:10px}.build-tools button{min-height:31px;padding:4px 12px;font-size:12px}.build-tools span{font-size:12px;color:#65755f}.catalog{display:flex;gap:9px;overflow-x:auto;padding-bottom:5px}.catalog button{flex:0 0 123px;text-align:left;height:96px;padding:7px 10px;position:relative}.catalog img{width:48px;height:40px;object-fit:contain;object-position:left;image-rendering:pixelated}.catalog strong,.catalog span{display:block;font-size:12px}.catalog span{font-size:11px;color:#6b7861}.catalog .active span{color:#e0ebc7}.catalog .price{position:absolute;right:8px;top:10px;font-size:11px}
.management-row{display:flex;gap:40px;align-items:center}.management-row label{flex:1;font-size:14px;max-width:520px}.management-row label strong{float:right;font-size:20px}.management-row input{display:block;width:100%;accent-color:#326d62;margin:15px 0}.staffing{display:grid;gap:4px;font-size:14px}.staffing span{font-size:11px}#costs{font-size:12px;margin:10px 0}
.hotel-summary{display:flex;gap:30px;font-size:13px;margin-bottom:12px}.hotel-summary strong{display:block;font-size:22px}#events{font-size:12px;display:grid;gap:6px}
footer{height:27px;display:flex;justify-content:space-between;align-items:center;padding:0 20px;font-size:10px;background:#fff9e9;color:#6b7861;flex-shrink:0}
dialog{width:min(520px,calc(100% - 32px));border:1px solid #c8bea0;border-radius:14px;padding:25px;background:#fff9e9;color:#34443c;box-shadow:0 15px 60px #132c3e44}dialog::backdrop{background:#244e4880}dialog h2{margin:0 0 15px}dialog p,dialog li{font-size:14px;line-height:1.6}dialog ul{padding-left:20px}dialog .actions{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}dialog button{margin-top:6px}.danger{color:#a34c42}
[hidden]{display:none!important}
@media(min-width:1500px){#panel{height:182px}.stats{justify-content:flex-start;gap:75px;padding-left:32px}}
@media(max-width:650px){#app{min-height:520px}.top{height:46px;padding:0 10px}.brand{font-size:17px;gap:6px;letter-spacing:1px}.brand-icon{font-size:24px}.top button{font-size:11px;padding:4px 7px;min-height:36px}.stats{padding:8px 12px;gap:5px;justify-content:space-between}.stats div{min-width:65px}.stats strong{font-size:18px}.stats span{font-size:8px;letter-spacing:.7px}.beta-note{display:none}.view-controls{right:8px;top:8px}.view-controls button{width:34px;min-height:34px}.timebar{padding:4px 8px;gap:6px;height:42px}.speeds button{padding:3px 8px;min-height:32px}.timebar>span{font-size:10px}.timebar>button{font-size:11px;padding:4px 6px}.tabs{padding:5px 10px 0}.tabs button{padding:5px 20px;min-height:31px;font-size:12px}#panel{height:165px;padding:8px 10px}.build-tools{gap:6px;margin-bottom:8px}.build-tools span{font-size:10px;line-height:1.3}.build-tools button{white-space:nowrap;font-size:11px;padding:4px 8px}.catalog button{flex-basis:113px;height:94px}.management-row{gap:18px}.staffing{font-size:12px;min-width:130px}footer{padding:0 10px;font-size:9px;height:24px}#objective{max-width:65%;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hotel-summary{gap:18px;font-size:11px}.hotel-summary strong{font-size:18px}}
