@font-face{font-family:NotoThai;src:url('assets/NotoSansThai.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--bg:#f7f8f4;--paper:#fff;--ink:#203b34;--muted:#78847c;--green:#244e40;--line:#e1e6df;--pale:#e9eee6;--accent:#b8ca9c;--orange:#bb8061;font-family:NotoThai,system-ui,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;font-size:14px;line-height:1.7}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible,summary:focus-visible{outline:3px solid #b78047;outline-offset:4px}button{border:0;background:none}h1,h2,h3,p{margin:0}h2{font-size:24px;font-weight:600;letter-spacing:-.5px;line-height:1.5}h3{font-size:16px;font-weight:600}small{font-size:11px}.skip{position:fixed;top:-100px;background:white;z-index:200;padding:12px}.skip:focus{top:10px}.sidebar{width:244px;position:fixed;inset:0 auto 0 0;background:#eef1e9;border-right:1px solid #dfe5da;padding:34px 23px 24px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:11px;align-items:center;font-size:15px;font-weight:650;white-space:nowrap}.brand small{display:block;font-size:7.6px;font-weight:500;letter-spacing:1px;margin-top:2px}.brand-mark{display:grid;place-items:center;background:var(--green);color:#f1f4e8;width:35px;height:40px;border-radius:9px 9px 2px 9px;font-size:27px;font-weight:400}.nav-caption{font-size:11px;letter-spacing:1px;color:#899486;margin:55px 10px 16px}nav{display:grid;gap:7px}nav a{padding:12px 13px;font-size:12px;border-radius:5px;display:flex;align-items:center;gap:12px;color:#647360;transition:background .2s}nav a span{font-size:9px;opacity:.65}nav a b{margin-left:auto;font-weight:400}nav a:hover{background:#e2e8db}nav a.active{background:var(--green);color:#fff}.sidebar-note{margin:auto 10px 25px;padding-top:32px;font-size:8px;letter-spacing:1.2px;color:#68795d}.status-dot{width:6px;height:6px;background:#748e50;display:inline-block;border-radius:50%;margin-right:5px}.sidebar-note p{font-size:18px;line-height:1.8;color:#3e5542;letter-spacing:0;margin:15px 0}.sidebar-note small{font-size:10px;letter-spacing:0;color:#8b9385}.sidebar-download{border-top:1px solid #dbe0d5;padding-top:20px;text-align:left;font-size:11px}.workspace{margin-left:244px}.topbar{height:79px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;font-size:11px}.breadcrumb{color:var(--muted)}.slash{margin:0 15px;color:#bac2b6}.top-actions{display:flex;gap:20px;align-items:center}.draft-tag{font-size:10px;color:#68765e}.draft-tag:before{content:'';display:inline-block;background:#adbd88;width:5px;height:5px;border-radius:50%;margin-right:7px}.button{background:white;border:1px solid #d5ddd1;padding:10px 16px;border-radius:5px;font-size:12px;transition:background .2s}.button:hover{background:#e8eee4}.button.small{font-size:10px;padding:8px 13px}main{max-width:1540px;margin:auto;padding:42px}.anchor{scroll-margin-top:26px;margin-bottom:55px}.heading-row{display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:9px;letter-spacing:1.65px;font-weight:650;color:#718166;margin-bottom:10px}.eyebrow>span{display:inline-block;background:#719253;width:17px;height:2px;vertical-align:middle;margin-right:8px}h1{font-size:clamp(30px,3.1vw,47px);font-weight:550;letter-spacing:-1.7px;line-height:1.43}h1 em{font-style:normal;color:#6d805c}.lead{font-size:12px;color:#74816e;margin-top:18px}.project-stamp{text-align:right;font-size:8px;letter-spacing:1.5px;color:#899580;padding-top:5px}.project-stamp>span{display:block;font-size:74px;line-height:1.2;letter-spacing:-5px;font-weight:200;color:#bcc8b2}.project-stamp small{font-size:7px}.intro-line{display:flex;justify-content:space-between;align-items:center;margin:25px 0 22px;padding-bottom:23px;border-bottom:1px solid var(--line);font-size:11px;color:#7f8879}.text-link{font-size:10px;color:var(--green);font-weight:550;padding:0}.text-link:hover{text-decoration:underline}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:white;border:1px solid var(--line);border-radius:7px;padding:21px 0}.metrics article{padding:0 23px;border-right:1px solid var(--line)}.metrics article:last-child{border:0}.metric-label{font-size:11px;color:#71806c}.metrics article>div{display:flex;align-items:baseline;gap:9px;line-height:1.5;margin:5px 0}.metrics strong{font-size:34px;font-weight:500;letter-spacing:-1.1px}.metrics article>div>span{font-size:11px;color:#7b8975}.metrics small{font-size:9px;color:#909b8b}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.section-heading .eyebrow{margin-bottom:5px}.pill{border:1px solid #dce3d6;border-radius:30px;font-size:9px;padding:5px 10px;white-space:nowrap;color:#78866e}.campus-layout{display:grid;grid-template-columns:minmax(0,1fr) 247px;gap:19px}.viewer-card{background:#eef0e9;border:1px solid #dce2d6;border-radius:7px;overflow:hidden;min-width:0}.viewer-top{display:flex;align-items:center;justify-content:space-between;padding:17px 20px;gap:8px}.viewer-label{font-size:9px;font-weight:600;letter-spacing:1.5px}.viewer-label small{display:block;letter-spacing:0;font-size:9px;font-weight:400;color:#8c9685;margin-top:2px}.segmented{display:flex;background:#e5e9df;padding:3px;border-radius:5px;gap:2px}.segmented button{border-radius:3px;font-size:10px;padding:6px 13px;color:#7c8774;white-space:nowrap}.segmented .selected{background:white;color:var(--green);box-shadow:0 2px 5px #30452c0c}.segmented small{font-size:8px}.canvas-wrap{position:relative;height:370px}canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}canvas:active{cursor:grabbing}.north-label{position:absolute;top:8px;left:22px;text-align:center;font-size:22px;color:#7d8b71;line-height:1;pointer-events:none}.north-label small{display:block;font-size:9px;margin-top:5px}.viewer-controls{position:absolute;right:16px;bottom:48px;display:grid;background:#ffffffdf;border:1px solid #d7dfd0;border-radius:5px;overflow:hidden}.viewer-controls button{width:29px;height:29px;font-size:17px;border-bottom:1px solid #e3e8df}.viewer-controls button:last-child{border:0}.viewer-help{position:absolute;bottom:11px;left:0;right:0;text-align:center;font-size:8px;color:#8b9483;pointer-events:none}.viewer-help span{margin:0 6px}.viewer-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #dce2d6;padding:14px 19px;font-size:8px;gap:10px}.viewer-bottom .text-link{font-size:8px}.legend-swatch{display:inline-block;width:6px;height:6px;background:#e0ddd0;margin:0 4px 0 8px}.legend-swatch:first-child{margin-left:0}.legend-swatch.tan{background:#bd9981}.legend-swatch.green{background:#88a477}.building-panel{background:white;border:1px solid var(--line);border-radius:7px;padding:18px 16px}.panel-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.panel-heading h3{font-size:12px}.panel-heading>span{font-size:7px;color:#94a088}.building-option{display:flex;align-items:center;width:100%;text-align:left;gap:11px;border-radius:5px;padding:11px 9px;margin-bottom:5px;border:1px solid transparent}.building-option:hover{background:#f3f5ef}.building-option.active{background:#eff3e9;border-color:#dce5d2}.building-code{display:grid;place-items:center;width:27px;height:30px;background:#f1f3ec;color:#6b8256;font-size:11px;flex-shrink:0}.building-option.active .building-code{background:#dce6ce}.building-option strong{display:block;font-size:10px;font-weight:550}.building-option small{display:block;font-size:9px;color:#96a08e;margin-top:2px}.building-option .arrow{margin-left:auto;color:#9cac8d;font-size:11px}.building-detail{border-top:1px solid #e6eadd;margin-top:14px;padding-top:15px;font-size:10px;color:#89937e}.building-detail strong{font-size:11px;color:#4f6542;display:block;margin-bottom:5px}.concept-note{display:flex;gap:13px;font-size:10px;color:#87907f;margin-top:16px;max-width:930px}.concept-note>span{color:#8a9e73;font-size:21px;line-height:1.2}.concept-note strong{color:#607451;font-weight:500}.section-stat{font-size:10px;color:#8a967f}.section-stat strong{font-size:23px;font-weight:500;color:#446039;margin-right:5px}.card{background:white;border:1px solid var(--line);border-radius:7px;padding:23px}.card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.card-title h3{font-size:13px}.card-title>span{font-size:9px;color:#8d9784}.space-layout{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:20px}.floor-tabs{display:flex;gap:7px;margin-bottom:21px}.floor-tabs button{font-size:11px;padding:7px 23px;border-radius:4px;background:#f3f5ef;border:1px solid transparent}.floor-tabs button[aria-selected=true]{background:#e3ecdc;border-color:#b9caaa;color:#42622e}.floor-rooms{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.room{min-height:68px;background:#e9eee2;border:1px solid #d8e1ce;border-radius:3px;padding:10px 5px;text-align:center;font-size:10px;display:grid;align-content:center;color:#5d7450}.room.special{background:#f1e9dc;border-color:#e5d9c3;color:#907553}.room small{font-size:8px;color:#929c88}.room-corridor{background:#f2f4ef;padding:7px;text-align:center;font-size:9px;color:#8c9981;margin:7px 0;border:1px dashed #d4ddca}.room-support{font-size:9px;color:#839377;display:flex;justify-content:space-between;gap:10px;padding:6px 0}.floor-card>.muted{margin-top:13px}.muted{color:#8b9683}.small-text{font-size:10px}.space-principles{background:#edf1e7}.space-principles h3{font-size:24px;font-weight:500;line-height:1.6;margin-bottom:18px}.space-principles>div:not(.eyebrow){display:flex;gap:18px;align-items:center;padding:13px 0;border-top:1px solid #dce3d4}.space-principles strong{font-size:26px;font-weight:500;white-space:nowrap}.space-principles strong small{font-size:10px;font-weight:400}.space-principles p{font-size:10px;color:#7a8a6d}.room-details{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:5px}.room-details summary{cursor:pointer;padding:14px 19px;font-size:11px}.room-details summary>span{float:right;font-size:8px;color:#90a17f}.room-details .table-wrap{padding:0 18px 15px}.callout{margin-top:17px;font-size:10px;background:#f3eee3;border-left:2px solid #b89b61;padding:13px 16px;color:#8b795a}.scenario-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:15px}.scenario-bar>div>strong{display:block;font-size:12px;font-weight:500}.scenario-bar>div>small{font-size:9px;color:#88947e}.budget-cards{display:grid;grid-template-columns:1.35fr 1fr;gap:20px;margin-bottom:21px}.budget-hero{background:#244b3d;color:#f1f5e9;border-radius:7px;padding:29px}.budget-hero .eyebrow{color:#a4bb94}.budget-hero>p{font-size:13px;margin-top:18px;color:#d3dfc8}.budget-hero>strong{font-size:58px;line-height:1.5;letter-spacing:-2px;font-weight:450;margin-right:10px}.budget-hero>span{font-size:12px;color:#bdceb2}.budget-hero>small{display:block;font-size:9px;line-height:1.9;color:#a7bfa1}.stacked-bar{display:flex;height:7px;gap:3px;margin:23px 0 12px}.stacked-bar span{height:100%;border-radius:1px}.chart-legend{display:flex;flex-wrap:wrap;gap:10px;font-size:8px;color:#bcceb4}.chart-legend i{display:inline-block;width:5px;height:5px;margin-right:4px}.funding-card{padding:27px}.funding-card h3{font-size:18px;font-weight:500}.funding-number{font-size:12px;color:#849578;margin:11px 0 17px}.funding-number strong{font-size:37px;color:#3f604a;font-weight:500;margin-right:8px;letter-spacing:-1px}.funding-line{display:flex;justify-content:space-between;gap:15px;font-size:11px;padding:10px 0;border-bottom:1px solid var(--line)}.funding-line b{font-weight:550}.funding-card>.muted{margin:13px 0}.subtle-note{background:#f1f4eb;font-size:10px;padding:11px 13px;border-radius:3px;color:#748466}.subtle-note strong{color:#41613d;font-weight:600}.table-card{padding-bottom:8px;margin-bottom:15px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:11px}th{text-align:left;font-weight:500;color:#8b977f;font-size:10px;background:#f7f9f4}td,th{padding:11px 13px;border-bottom:1px solid #e9ede4}td:not(:first-child),th:not(:first-child){text-align:right}td:first-child{max-width:420px}tbody tr:hover{background:#fafbf7}tfoot td,tfoot th{font-size:12px;font-weight:600;border:0;color:#325a3b;background:#ecf2e6;padding-top:15px;padding-bottom:15px}.subtotal td{background:#f4f7ef;color:#5e7950;font-weight:550}.operating-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-bottom:20px}.operating-metrics article>span{font-size:11px;color:#7d8b71}.operating-metrics strong{display:block;font-size:29px;font-weight:500;letter-spacing:-.7px;margin:8px 0}.operating-metrics strong small{font-size:11px;font-weight:400;color:#91a080;letter-spacing:0}.operating-metrics p{font-size:9px;color:#95a088}.operations-bottom{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}.operations-bottom .muted{margin-top:16px}.year-chart{display:flex;align-items:end;gap:16px;height:160px;margin-top:25px;padding:0 7px 25px}.year-bar{flex:1;background:#dde7d2;border-radius:3px 3px 0 0;position:relative;min-height:20px}.year-bar:last-child{background:#7e9b68}.year-bar span{position:absolute;top:-22px;left:0;right:0;text-align:center;font-size:10px;color:#799366}.year-bar small{position:absolute;bottom:-23px;left:0;right:0;text-align:center;font-size:9px;color:#8a987d}.revenue-strip{margin-top:20px;border:1px solid #dce4d4;background:#edf3e6;padding:20px 25px;border-radius:6px;display:flex;align-items:center;justify-content:space-between;gap:16px}.revenue-strip h3{font-size:13px}.revenue-strip p{font-size:10px;color:#8b9b7b}.revenue-strip>strong{font-size:21px;font-weight:500}.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.timeline article{border-top:2px solid #cfdbc2;padding-top:17px;position:relative}.timeline article>span{font-size:10px;display:grid;place-items:center;width:25px;height:25px;background:#e8efdf;border:1px solid #d5e2c6;border-radius:50%;margin-bottom:15px}.timeline small{font-size:9px;color:#95a188}.timeline h3{font-size:14px;margin:5px 0 8px}.timeline p{font-size:10px;color:#87937b}.timeline b{display:block;font-size:9px;font-weight:500;color:#779262;margin-top:13px}.timeline+.muted{margin-top:19px}.save-status{font-size:9px;color:#8e9c81}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 26px}.settings-grid label{display:flex;flex-direction:column;font-size:11px;color:#667b57;gap:7px}.settings-grid .wide{grid-column:1/-1}input:not([type=checkbox]),select{border:1px solid #d9e2d2;border-radius:4px;background:#fbfcf9;color:#38532b;padding:10px 12px;min-width:0;width:100%;font-size:12px}label>small{font-size:9px;color:#95a188}.settings-grid .checkbox-label{flex-direction:row;align-items:start;gap:10px}.checkbox-label input{accent-color:#4f7140;margin-top:6px;width:15px;height:15px}.checkbox-label small{display:block;font-size:9px;color:#8c9b7d;margin-top:3px}.settings-actions{border-top:1px solid var(--line);padding-top:18px;display:flex;align-items:center;gap:20px}.settings-actions>span{font-size:9px;color:#95a188}.assumption-notes{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}.assumption-notes h3{font-size:14px}.assumption-notes ul{padding-left:17px;margin:16px 0 0;font-size:10px;color:#829473}.assumption-notes li{margin-bottom:10px;padding-left:3px}.sources{margin-top:26px;padding:24px 0;border-top:1px solid var(--line)}.source-row{display:flex;gap:15px;margin:17px 0}.source-row>span{font-size:10px;color:#9ca990}.source-row a{font-size:11px;text-decoration:underline;text-underline-offset:3px}.source-row p{font-size:9px;color:#8c9b7d;margin-top:5px;max-width:900px}footer{border-top:1px solid var(--line);padding:22px 0;color:#8e9b81}footer>span{font-size:11px}footer b{font-size:8px;font-weight:400;letter-spacing:1px}footer p{font-size:9px;margin-top:8px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(100px);background:#274e3f;color:white;border-radius:5px;padding:11px 23px;font-size:12px;z-index:100;transition:transform .25s}#toast.show{transform:translateX(-50%) translateY(0)}
.print-only{display:none}
@media(min-width:1600px){.canvas-wrap{height:460px}.building-option{padding:17px 9px}.building-detail{font-size:11px}.brand{font-size:15px}}
@media(max-width:1200px){.sidebar{width:214px;padding-left:17px;padding-right:17px}.workspace{margin-left:214px}main{padding:30px}.topbar{padding:0 30px}.brand{font-size:13px}.brand small{font-size:6.5px}.campus-layout{grid-template-columns:minmax(0,1fr) 215px;gap:13px}.building-panel{padding:15px 10px}.metrics article{padding:0 16px}.metrics small{font-size:8px}.viewer-bottom{flex-wrap:wrap}.project-stamp{display:none}.scenario-bar{flex-wrap:wrap}.budget-hero>strong{font-size:48px}}
@media(max-width:960px){.sidebar{width:185px;padding:25px 12px}.workspace{margin-left:185px}.brand{font-size:11px;gap:7px}.brand small{font-size:5.8px}.brand-mark{width:29px;height:34px;font-size:23px}nav a{font-size:10px;padding:11px 8px;gap:8px}.sidebar-note p{font-size:16px}main{padding:26px}.topbar{padding:0 26px}.draft-tag{display:none}.campus-layout{grid-template-columns:1fr}.building-panel{padding:16px}.building-panel #building-list{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.building-option{gap:7px;margin:0}.building-option strong{font-size:9px}.building-option .arrow{display:none}.building-detail{margin-top:10px;padding-top:10px}.canvas-wrap{height:360px}.space-layout{grid-template-columns:1fr}.space-principles{display:none}.metrics article{padding:0 12px}.metric-label{font-size:10px}.metrics strong{font-size:29px}.metrics small{font-size:7px}.budget-cards{grid-template-columns:1fr 1fr;gap:13px}.funding-card,.budget-hero{padding:21px}.funding-number strong{font-size:30px}.budget-hero>strong{font-size:44px}.operations-bottom{grid-template-columns:1fr}.operating-metrics{gap:10px}.operating-metrics .card{padding:16px}.operating-metrics strong{font-size:23px}.timeline{grid-template-columns:1fr 1fr;gap:30px}.revenue-strip{flex-wrap:wrap}.assumption-notes{grid-template-columns:1fr}.top-actions{gap:8px}.topbar{font-size:9px}}
@media(max-width:680px){.sidebar{position:relative;width:auto;padding:17px 20px;border-right:0;border-bottom:1px solid var(--line);display:block}.brand{font-size:15px}.brand small{font-size:7px}.brand-mark{width:32px;height:37px}.nav-caption,.sidebar-note,.sidebar-download{display:none}nav{display:flex;overflow:auto;margin-top:17px;gap:7px;padding-bottom:3px}nav a{white-space:nowrap;font-size:10px;padding:8px 11px}nav a span,nav a b{display:none}.workspace{margin-left:0}.topbar{height:58px;padding:0 20px}.breadcrumb,.slash{display:none}main{padding:27px 20px}.anchor{margin-bottom:39px;scroll-margin-top:15px}h1{font-size:32px;letter-spacing:-1px}.eyebrow{font-size:8px;letter-spacing:1px}.lead{font-size:11px}.intro-line{gap:12px;align-items:start;margin-top:20px;font-size:10px}.intro-line p{max-width:60%}.intro-line a{font-size:9px}.metrics{grid-template-columns:1fr 1fr;padding:0}.metrics article{padding:15px 18px;border-bottom:1px solid var(--line)}.metrics article:nth-child(2){border-right:0}.metrics article:nth-child(3){border-bottom:0}.metrics article:last-child{border-bottom:0}.metrics small{font-size:8px}.metric-label{font-size:10px}.section-heading{align-items:start;gap:10px;flex-wrap:wrap;margin-bottom:18px}h2{font-size:21px}.pill{font-size:8px}.canvas-wrap{height:320px}.viewer-top{padding:13px}.viewer-label{font-size:8px}.viewer-label small{font-size:8px}.viewer-bottom{padding:12px;font-size:7px}.viewer-help{font-size:7px}.north-label{left:14px}.building-panel #building-list{grid-template-columns:1fr 1fr}.building-option strong{font-size:10px}.card{padding:19px}.space-principles{display:block}.space-principles h3 br{display:none}.space-principles h3{font-size:21px}.room{font-size:9px;min-height:64px}.room small{font-size:7px}.room-support{font-size:8px}.budget-cards{grid-template-columns:1fr}.budget-hero{padding:25px}.budget-hero>strong{font-size:55px}.scenario-bar .segmented{width:100%;justify-content:space-between}.scenario-bar .segmented button{padding:7px 10px;font-size:9px}.scenario-bar>div>small{font-size:8px}.operating-metrics{grid-template-columns:1fr}.operating-metrics .card{display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:15px 19px}.operating-metrics strong{margin:0;text-align:right;font-size:22px}.operating-metrics p{grid-column:1/-1}.card-title{align-items:start;gap:8px}.card-title>span{text-align:right;font-size:8px}.table-card{padding:15px 10px 7px}table{font-size:10px;min-width:500px}th{font-size:9px}td,th{padding:10px 9px}.operations-bottom table{min-width:300px}.room-details summary{font-size:10px}.room-details summary>span{display:none}.settings-grid{grid-template-columns:1fr;gap:19px}.settings-actions{align-items:start;flex-direction:column;gap:10px}.revenue-strip{padding:18px}.revenue-strip>strong{font-size:19px}.timeline h3{font-size:12px}.timeline p{font-size:9px}.timeline b{font-size:8px}.timeline{gap:23px 17px}.section-stat{font-size:9px}.source-row p{font-size:9px}.save-status{font-size:8px}footer p{font-size:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{@page{size:A4;margin:13mm}html,body{background:white!important;font-size:10px;color:#203b34;-webkit-print-color-adjust:exact;print-color-adjust:exact}.no-print,.sidebar,.topbar,.viewer-controls,.viewer-help,.segmented,.floor-tabs,.settings-actions,#toast,.text-link,.skip{display:none!important}.workspace{margin:0}main{padding:0;max-width:none}.anchor{margin-bottom:22px;scroll-margin-top:0}.heading-row{break-inside:avoid}h1{font-size:29px}h2{font-size:18px}.metrics strong{font-size:27px}.metrics small{font-size:8px}.metrics article{padding:0 14px}.metrics{padding:15px 0}.intro-line{margin:14px 0;padding-bottom:12px}.project-stamp{display:block}.project-stamp>span{font-size:55px}.section-heading{margin-bottom:14px}.campus-layout{grid-template-columns:minmax(0,1fr) 180px;gap:12px;break-inside:avoid}.canvas-wrap{height:290px}.building-panel{padding:12px}.building-panel #building-list{display:block}.building-option{padding:8px 5px}.building-option strong{font-size:9px}.building-option small{font-size:8px}.building-detail{font-size:8px}.viewer-bottom{font-size:7px}.viewer-label{font-size:8px}.north-label{font-size:16px}.viewer-top{padding:12px}.space-layout{grid-template-columns:1.8fr 1fr}.space-principles{display:block}.space-principles h3{font-size:18px}.space-principles>div:not(.eyebrow){padding:7px 0}.space-principles strong{font-size:21px}.space-principles p{font-size:8px}.card{padding:15px}.card-title{margin-bottom:12px}.budget-cards{grid-template-columns:1.2fr 1fr;gap:14px;break-inside:avoid}.budget-hero{padding:20px}.budget-hero>strong{font-size:42px}.funding-number strong{font-size:28px}.funding-card h3{font-size:16px}.scenario-bar{display:none}.table-card{padding:10px}.table-wrap{overflow:visible}table{font-size:8px;min-width:0}th{font-size:8px}td,th{padding:6px 8px}tr{break-inside:avoid}thead{display:table-header-group}tfoot{display:table-row-group}tfoot th,tfoot td{font-size:10px}.room-details{display:block}.room-details>summary{font-size:11px;padding:10px}.room-details>.table-wrap{display:block!important}.room-details summary span{display:none}.operations-bottom{grid-template-columns:1fr 1fr}.operating-metrics{grid-template-columns:repeat(3,1fr)}.operating-metrics strong{font-size:23px}.operating-metrics .card{display:block;padding:15px}.operating-metrics p{font-size:8px}.year-chart{height:130px}.timeline{grid-template-columns:repeat(4,1fr);gap:14px;break-inside:avoid}.timeline h3{font-size:11px}.timeline p,.timeline b{font-size:8px}.settings-grid{grid-template-columns:1fr 1fr;gap:12px}.settings-grid label{font-size:9px}.settings-grid input,.settings-grid select{padding:5px 8px;font-size:10px}.assumption-notes{grid-template-columns:1fr 1fr}.assumption-notes li{font-size:8px;margin-bottom:6px}.sources{padding:12px 0}.source-row{margin:11px 0}.source-row a{font-size:9px}.source-row p{font-size:8px}.source-row a:after{content:' (' attr(href) ')';font-size:6px;overflow-wrap:anywhere;display:block}.source-row:nth-child(2) a:after{content:' (spmphet.go.th / เอกสารอาคารมาตรฐาน 2568)'}#investment,#operations,#assumptions{break-before:page}.revenue-strip{break-inside:avoid}.save-status{display:none}footer{padding:12px 0}.room,.floor-card,.card-title,.sources h3{break-inside:avoid}.button{display:none}.overview{margin-bottom:22px}.card.table-card{break-inside:auto}.room-details{break-before:page}.small-text{font-size:8px}.settings-grid small{font-size:8px}}

@media print{.print-only{display:block}.print-model{width:100%;height:100%;object-fit:contain}#campus-canvas{display:none}.print-floors{display:grid;gap:15px;margin:20px 0}.print-floors article{break-inside:avoid}.print-floors h3{font-size:12px;margin:8px 0}.space-layout .floor-card{display:none}.space-layout{display:block}.space-principles{display:none}.north-label{display:none}}

@font-face{font-family:NotoArabic;src:url('assets/NotoSansArabic.ttf') format('truetype');font-weight:100 900;font-display:swap}
.language-picker{display:flex;align-items:center;border:1px solid #d5decf;border-radius:5px;padding:2px;gap:2px;direction:ltr}.language-picker button{padding:3px 7px;font-size:10px;border-radius:3px;line-height:1.8}.language-picker button[lang=ar]{font-family:NotoArabic,sans-serif}.language-picker button.active{background:#264e40;color:#fff}
html[lang=en] h1{font-size:clamp(29px,3.4vw,48px);letter-spacing:-1.5px}html[lang=en] .brand{font-size:14px}html[lang=en] nav a{font-size:11px}html[lang=en] h2{font-size:23px}html[lang=en] .building-option strong{font-size:10px}html[lang=en] .viewer-help{font-size:8px}
html[lang=ar]{font-family:NotoArabic,NotoThai,sans-serif;line-height:1.85}html[lang=ar] .eyebrow,html[lang=ar] .brand small,html[lang=ar] .project-stamp{letter-spacing:0}html[lang=ar] h1{font-size:clamp(29px,3.1vw,44px);letter-spacing:-1px;line-height:1.6}html[lang=ar] h2{font-size:23px}html[lang=ar] .brand{font-size:13px}html[lang=ar] .brand-mark{font-size:25px}html[lang=ar] nav a{font-size:11px}
[dir=rtl] .sidebar{left:auto;right:0;border-right:0;border-left:1px solid #dfe5da}[dir=rtl] .workspace{margin-left:0;margin-right:244px}[dir=rtl] nav a b{margin-left:0;margin-right:auto}[dir=rtl] .sidebar-download,[dir=rtl] .building-option,[dir=rtl] th{text-align:right}[dir=rtl] .project-stamp{text-align:left}[dir=rtl] .metrics article{border-right:0;border-left:1px solid var(--line)}[dir=rtl] .metrics article:last-child{border-left:0}[dir=rtl] .building-option .arrow{margin-left:0;margin-right:auto}[dir=rtl] .canvas-wrap{direction:ltr}[dir=rtl] .building-detail strong{font-size:11px}[dir=rtl] .budget-hero>strong{margin-right:0;margin-left:10px}[dir=rtl] td:not(:first-child),[dir=rtl] th:not(:first-child){text-align:left}[dir=rtl] .callout{border-left:0;border-right:2px solid #b89b61}[dir=rtl] .assumption-notes ul{padding-left:0;padding-right:17px}[dir=rtl] .year-chart{direction:ltr}[dir=rtl] input[type=number]{direction:ltr;text-align:right}[dir=rtl] .room-details summary>span{float:left}[dir=rtl] .viewer-label{letter-spacing:0}[dir=rtl] .sidebar-note{letter-spacing:0}[dir=rtl] .sidebar-note p{font-size:16px}
@media(max-width:1200px){[dir=rtl] .workspace{margin-right:214px}}
@media(max-width:960px){[dir=rtl] .workspace{margin-right:185px}html[lang=en] .brand{font-size:11px}html[lang=ar] .brand{font-size:11px}.top-actions{gap:7px}.topbar>div:first-child{display:none}.topbar{justify-content:flex-end}}
@media(max-width:680px){[dir=rtl] .workspace{margin-right:0}[dir=rtl] .sidebar{border-left:0}[dir=rtl] .metrics article:nth-child(2){border-left:0}html[lang=en] .brand,html[lang=ar] .brand{font-size:15px}html[lang=en] h1,html[lang=ar] h1{font-size:31px}html[lang=en] h2,html[lang=ar] h2{font-size:20px}html[lang=ar] .building-option strong{font-size:10px}html[lang=en] .viewer-bottom{font-size:7px}.topbar{justify-content:space-between}.top-actions{width:100%;justify-content:space-between}.topbar .button.small{font-size:9px}[dir=rtl] .metrics article:nth-child(3){border-left:1px solid var(--line)}.viewer-bottom>div{line-height:2}.brand small{font-size:7px}}
@media print{[dir=rtl] .workspace{margin:0!important}.language-picker{display:none!important}html[lang=ar] h1,html[lang=en] h1{font-size:29px}html[lang=ar] h2,html[lang=en] h2{font-size:18px}html[lang=ar] .budget-hero>strong{font-size:38px}.print-floors .room{min-height:48px;font-size:8px}.print-floors .room small{font-size:7px}.print-floors h3{font-size:10px}.print-floors .room-corridor,.print-floors .room-support{font-size:8px}.print-floors{gap:10px}.print-floors article{break-inside:avoid}.brand{font-size:12px}}

@media print{#spaces{break-before:page}.building-panel{min-width:0;overflow-wrap:anywhere}.campus-layout{grid-template-columns:minmax(0,1fr) minmax(0,180px)}.section-heading{break-after:avoid}.print-floors>.small-text{margin:0 0 8px}}

.boarding-intro{font-size:12px;color:#74816e;margin:-5px 0 22px}.boarding-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0}.dorm-room{border:3px solid #b4c3a6;border-bottom:3px dashed #b4c3a6;display:grid;grid-template-columns:1fr 1fr;gap:14px 42px;padding:20px;min-height:230px;background:#f8f9f3;margin-bottom:14px}.dorm-bed{padding:13px 10px;border:1px solid #c5d4b9;border-radius:4px;background:linear-gradient(90deg,#d5e0c8 25%,#e8eddf 25%);font-size:11px;text-align:center}.dorm-room-center,.dorm-storage{grid-column:1/-1;text-align:center;font-size:10px;color:#799066}.dorm-storage{border-top:5px solid #d7c9b1;padding-top:8px}.boarding-care{background:#edf1e7}.boarding-care h3{font-size:20px;font-weight:500}.boarding-care ul{font-size:11px;color:#728367;padding-inline-start:20px}.boarding-care li{margin-bottom:12px}.boarding-costs{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.boarding-costs .card{background:#244b3d;color:#edf3e6}.boarding-costs .card>span{font-size:12px;color:#d3dfc8}.boarding-costs strong{display:block;font-size:35px;font-weight:500;margin:10px 0}.boarding-costs small{font-size:12px}.boarding-costs p{font-size:10px;color:#b9c9ae}.boarding-settings{border:1px solid #d9e2d2;border-radius:5px;padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:20px}.boarding-settings legend{font-size:13px;font-weight:550;padding:0 9px}.boarding-settings .wide{grid-column:1/-1}.canvas-wrap{height:445px}.building-option{padding:9px 7px}.building-detail{font-size:9px}.sidebar-note{margin-bottom:15px;padding-top:18px}.sidebar-note p{font-size:16px}#boarding-layout-note{padding:12px}#boarding-meal-note{margin-top:12px}
@media(max-width:960px){.canvas-wrap{height:390px}.boarding-layout{grid-template-columns:1fr}.boarding-intro{font-size:11px}}
@media(max-width:680px){.boarding-costs,.boarding-settings{grid-template-columns:1fr}.boarding-costs strong{font-size:30px}.canvas-wrap{height:340px}.boarding-intro{font-size:10px}.boarding-settings{padding:15px}.boarding-metrics .card{display:block}.boarding-metrics strong{text-align:start;margin-top:6px}.dorm-room{min-height:230px}}
@media print{#boarding{break-before:page}.boarding-layout{grid-template-columns:1fr 1fr}.boarding-costs{grid-template-columns:1fr 1fr}.boarding-settings{grid-template-columns:1fr 1fr}.boarding-intro{font-size:9px}.boarding-care h3{font-size:14px}.boarding-care li{font-size:8px;margin-bottom:7px}.dorm-room{min-height:180px;padding:10px;gap:8px 25px}.dorm-bed{font-size:8px;padding:8px}.dorm-room-center,.dorm-storage{font-size:8px}.boarding-costs strong{font-size:26px}.boarding-costs p{font-size:8px}.boarding-costs .card>span{font-size:10px}.canvas-wrap{height:365px}#boarding .room-details{break-before:page}.boarding-costs,.boarding-layout{break-inside:avoid}.building-option{padding:6px 4px}.boarding-settings{break-inside:avoid}.boarding-settings legend{font-size:11px}}

@media print{#roadmap{break-inside:avoid}html[lang=en] .source-row:nth-child(2) a:after{content:" (spmphet.go.th / standard building types 2568)"}html[lang=ar] .source-row:nth-child(2) a:after{content:" (spmphet.go.th / أنماط المباني القياسية 2568)"}}
