:root{--ink:#18231e;--muted:#777e79;--line:#e5e8e5;--green:#355741;--soft:#f4f6f3;--background:#fff;--foreground:#18231e;--blue:#5b8195;--orange:#b58e69;--radius:8px;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;font-size:14px;line-height:1.5}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--green);outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:clamp(30px,3.1vw,46px);letter-spacing:-1.7px;line-height:1.16;font-weight:600}h2{font-size:20px;letter-spacing:-.5px;line-height:1.3}h3{font-size:18px;letter-spacing:-.3px}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:12px}.error{color:#a12f24;font-size:13px;margin:10px 0}.app-shell{max-width:1800px;margin:auto;min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;height:80px;border-bottom:1px solid var(--line);padding:0 44px;gap:40px}.brand{display:flex;align-items:center;gap:12px;font-size:23px;letter-spacing:-.8px;font-weight:600;flex-shrink:0}.brand img{object-fit:contain}.app-header nav{height:100%;display:flex;gap:30px;padding-left:34px;border-left:1px solid var(--line)}.nav-link{display:flex;align-items:center;height:100%;font-size:14px;color:#6d746f;position:relative}.nav-link.active{color:var(--green);font-weight:600}.nav-link.active:after{content:"";height:2px;background:var(--green);position:absolute;bottom:-1px;left:0;right:0}.header-right{margin-left:auto;display:flex;gap:24px;align-items:center;font-size:12px;color:var(--muted)}.header-right form{margin:0}.text-button{border:0;background:transparent;padding:4px 0;color:var(--muted);font-size:12px}.text-button:hover{color:var(--green);text-decoration:underline}main#main{padding:34px 44px 24px;flex:1}.page-heading{margin-bottom:30px}.page-heading p{font-size:16px;color:var(--muted);margin-top:9px}.model-workspace{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:28px;align-items:start}.model-column{min-width:0}.house-model{display:block;width:100%;height:940px;border:0;background:white}.document-sidebar{border-left:1px solid var(--line);padding-left:26px;min-height:670px}.document-sidebar h2{font-size:19px;margin:6px 0 6px}.all-docs{display:block;color:var(--green);font-size:12px;margin-bottom:25px}.doc-row{display:flex;gap:14px;align-items:center;border-bottom:1px solid var(--line);padding:21px 8px;transition:background .15s;min-width:0}.doc-row:hover{background:var(--soft)}.file-icon{border:1px solid #d1d8d0;border-radius:3px;width:29px;height:35px;display:flex;align-items:center;justify-content:center;color:var(--green);flex-shrink:0;font-size:19px}.row-copy{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}.row-copy strong{font-size:13px;font-weight:500;line-height:1.4}.row-meta{color:var(--muted);font-size:11px}.row-arrow{color:#869087;font-size:15px;flex-shrink:0}.doc-row.selected{background:#f0f4ee}.doc-row.selected .row-copy strong{color:var(--green);font-weight:600}.sidebar-note{font-size:12px;line-height:1.7;color:var(--muted);margin-top:25px}.app-footer{border-top:1px solid var(--line);margin:0 44px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px;padding:22px 0;gap:20px}.app-footer>div{display:flex;gap:23px}.app-footer strong{font-weight:500;color:#4d574f}.app-footer>div span{border-left:1px solid var(--line);padding-left:23px}.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;border:1px solid #dce1db;background:#fff;color:var(--ink);padding:11px 17px;border-radius:5px;white-space:nowrap;font-size:13px;min-height:42px;transition:background .15s}.button:hover{background:var(--soft)}.button.primary{background:var(--green);border-color:var(--green);color:white}.button.primary:hover{background:#294633}.docs-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.field{border:1px solid #dce1db;border-radius:5px;padding:11px 13px;background:white;color:var(--ink);width:100%;min-width:0;min-height:43px}.field::placeholder{color:#929a93}.library-toolbar{display:flex;gap:12px;padding:0 0 24px;border-bottom:1px solid var(--line);align-items:center}.search-field{flex:1}.category-select{width:220px}.order-select{width:180px}.checklist{font-size:12px;color:#5b665d;padding:12px 0}.checklist label{display:flex;gap:6px;align-items:center}.checklist input{accent-color:var(--green);width:15px;height:15px}.archive-toggle{padding:0 2px}.library-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,42%);gap:35px;align-items:start}.document-list-column{min-width:0}.list-caption{font-size:11px;color:var(--muted);padding:20px 8px 5px}.document-preview{border-left:1px solid var(--line);padding:24px 0 0 30px;position:sticky;top:20px;min-width:0}.detail-kicker{display:flex;justify-content:space-between;font-size:11px;gap:15px;margin-bottom:12px}.document-detail h2{font-size:24px;line-height:1.3;margin-bottom:15px}.detail-meta{display:flex;justify-content:space-between;gap:14px;align-items:center;font-size:11px;margin-bottom:18px;flex-wrap:wrap}.doc-status{color:var(--green);background:var(--soft);padding:4px 8px;border-radius:3px}.preview-link{display:flex;border:1px solid var(--line);border-radius:5px;background:#f5f6f3;height:330px;align-items:center;justify-content:center;overflow:hidden;padding:16px}.pdf-preview{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 3px 18px #18231e12}.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin:19px 0 10px}.document-note{font-size:12px;color:#727c74;line-height:1.7;padding:16px 0;border-bottom:1px solid var(--line)}.document-management{display:flex;gap:20px;margin:18px 0;flex-wrap:wrap}.version-history{border-top:1px solid var(--line);padding:14px 0;color:#69766b;font-size:12px}.version-history summary{cursor:pointer}.history-row{display:flex;justify-content:space-between;gap:14px;padding:12px 0}.history-row strong{font-weight:500}.source-path{overflow-wrap:anywhere;font-size:11px;padding-top:14px}.empty-detail,.empty-list{padding:65px 20px;text-align:center;color:var(--muted)}.empty-detail p,.empty-list p{font-size:12px;margin-top:10px}.empty-icon{font-size:35px;display:block;margin-bottom:15px}.management-message{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;max-width:90vw;border-radius:6px;font-size:12px;box-shadow:0 8px 30px #0002;z-index:20}.management-message:not(:empty){padding:13px 22px}.modal{position:fixed;inset:0;background:#18231e55;display:flex;justify-content:center;align-items:center;z-index:50;padding:25px;backdrop-filter:blur(3px)}.modal-panel{background:white;padding:30px;width:550px;max-width:100%;max-height:92vh;overflow:auto;border-radius:10px;box-shadow:0 12px 80px #0002}.modal-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:8px}.close-button{font-size:27px;border:0;background:transparent;color:var(--muted);line-height:1}.modal-panel>label,.form-columns label{display:block;font-size:12px;color:#59675c;margin:17px 0 7px}.modal-panel>p{font-size:12px}.upload-zone{display:flex;justify-content:center;text-align:center;align-items:center;border:1px dashed #bbc9ba;background:#f8faf7;border-radius:6px;min-height:100px;margin-top:20px;cursor:pointer}.upload-zone>div{display:flex;flex-direction:column;gap:6px}.upload-zone strong{font-weight:500;font-size:13px}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.modal-panel textarea{resize:vertical;min-height:75px}.modal-panel .checklist label{font-size:12px}.upload-result .error{margin-bottom:14px}.skip-link{position:fixed;top:-100px;background:white;padding:10px;z-index:99}.skip-link:focus{top:10px}.login-body{display:flex;min-height:100vh;align-items:center;justify-content:center;background:white}.login-panel{width:380px;padding:40px 24px;z-index:1}.login-panel .brand{margin-bottom:65px}.login-panel h1{font-size:38px;letter-spacing:-1.3px;margin-bottom:15px}.login-panel>p{color:var(--muted);font-size:14px;line-height:1.8;margin-bottom:30px}.login-panel form label{display:block;font-size:12px;color:#5a675d;margin:18px 0 7px}.login-panel .button{margin-top:23px;width:100%;justify-content:space-between}.login-foot{display:block;color:#909891;font-size:11px;margin-top:35px}.login-drawing{width:470px;height:500px;margin-left:100px;background:#f4f6f2;position:relative;border-radius:5px;overflow:hidden}.login-drawing:before{content:"";position:absolute;width:570px;height:200px;border-top:1px solid #bbc6b5;transform:rotate(-22deg);bottom:-20px;left:-10px}.house-line{position:absolute;left:100px;top:185px;width:250px;height:130px;border:1px solid #789276;transform:skewY(-12deg)}.house-line:before{content:"";position:absolute;left:55px;top:35px;width:140px;height:95px;border:1px solid #789276;border-bottom:0}.house-line:after{content:"";position:absolute;left:10px;top:145px;width:300px;border-top:1px solid #9aad93}.login-drawing>span{position:absolute;bottom:35px;left:35px;font-size:11px;color:#789276}
/* Dash 4 dropdowns inherit the same quiet form styling. */
.dash-dropdown{font-size:12px;min-width:0}.Select-control{border-color:#dce1db!important;min-height:43px!important;border-radius:5px!important}.Select-placeholder,.Select-value{line-height:41px!important}.Select-input{height:41px!important}
@media(min-width:1550px){.model-workspace{grid-template-columns:minmax(0,1fr) 320px}.house-model{height:980px}.model-scene{height:600px}}
@media(max-width:1100px){.app-header{padding:0 26px;gap:28px}main#main{padding:30px 26px 22px}.app-footer{margin:0 26px}.model-workspace{grid-template-columns:minmax(0,1fr) 240px;gap:20px}.document-sidebar{padding-left:18px}.house-model{height:1040px}.header-caption{display:none}.library-workspace{gap:22px}.document-preview{padding-left:22px}.library-toolbar{flex-wrap:wrap}.search-field{flex-basis:100%}.category-select{flex:1}.order-select{flex:1}.app-header nav{padding-left:26px;gap:26px}}
@media(max-width:760px){.app-header{height:69px;padding:0 20px;gap:24px}.brand{font-size:21px;gap:8px}.brand img{width:28px}.app-header nav{border:0;padding:0;gap:22px}.nav-link{font-size:12px}.header-right{gap:0}.header-right .text-button{font-size:10px}main#main{padding:25px 20px 20px}.page-heading{margin-bottom:24px}.page-heading p{font-size:13px;line-height:1.7;max-width:310px}.model-workspace{display:block}.house-model{height:1120px}.document-sidebar{border-left:0;padding-left:0;padding-top:24px;min-height:0;border-top:1px solid var(--line)}.document-sidebar h2{font-size:20px}.document-sidebar .doc-row{padding:17px 4px}.sidebar-note{margin:18px 0}.app-footer{margin:0 20px;font-size:10px;align-items:flex-start}.app-footer>span{display:none}.docs-heading{align-items:flex-start;flex-direction:column;gap:18px}.docs-heading .button{font-size:12px;padding:9px 14px}.library-workspace{display:flex;flex-direction:column-reverse;gap:10px}.document-preview{position:static;width:100%;border:0;padding:20px 0;border-bottom:1px solid var(--line)}.document-list-column{width:100%}.preview-link{height:240px}.document-detail h2{font-size:22px}.document-management{margin:12px 0}.document-note{font-size:11px}.library-toolbar{gap:8px;padding-bottom:18px}.category-select{min-width:170px}.order-select{min-width:140px}.archive-toggle{padding:8px}.modal{padding:12px}.modal-panel{padding:23px 20px}.modal-panel .form-columns{grid-template-columns:1fr;gap:0}.login-drawing{display:none}.login-panel{width:360px}.login-panel .brand{margin-bottom:50px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.file-icon{border:0;border-radius:0;object-fit:contain}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* The 3D workspace gets the full working width; project documents stay one step away. */
#model-page .page-heading h1{font-size:clamp(29px,2.7vw,38px);letter-spacing:-1.35px}
#model-page .page-heading{margin-bottom:24px}
#model-page .model-workspace{display:block}
#model-page .house-model{height:780px;background:white}
#model-page .document-sidebar{margin-top:14px;min-height:0;border:1px solid #e0e6df;border-radius:7px;padding:12px 17px;display:grid;grid-template-columns:135px minmax(0,1fr) 145px;gap:15px;align-items:center}
#model-page .document-sidebar h2{font-size:12px;margin:0;letter-spacing:-.2px;grid-column:1;grid-row:1}
#model-page .document-sidebar .all-docs{font-size:11px;margin:0;grid-column:3;grid-row:1;text-align:right}
#model-page #featured-docs{grid-column:2;grid-row:1;display:flex;align-items:stretch;min-width:0}
#model-page .document-sidebar .doc-row{border-bottom:0;border-left:1px solid #e5eae2;padding:5px 12px;gap:8px;flex:1;min-width:0;align-items:center}
#model-page .document-sidebar .file-icon{width:18px;height:23px}
#model-page .document-sidebar .row-copy strong{font-size:10px;line-height:1.5;font-weight:400}
#model-page .document-sidebar .row-meta,#model-page .document-sidebar .row-arrow,#model-page .sidebar-note{display:none}
@media(max-width:1100px){#model-page .document-sidebar{grid-template-columns:120px minmax(0,1fr);gap:10px}#model-page .document-sidebar .all-docs{grid-column:1;grid-row:2;text-align:left}#model-page #featured-docs{grid-column:2;grid-row:1 / 3;flex-wrap:wrap}#model-page .document-sidebar .doc-row{flex-basis:30%;padding:7px 10px}}
@media(max-width:760px){#model-page .page-heading h1{font-size:30px;letter-spacing:-1.2px}#model-page .document-sidebar{display:block;padding:18px 16px;margin-top:15px}#model-page .document-sidebar h2{font-size:15px;margin-bottom:12px}#model-page #featured-docs{display:block}#model-page .document-sidebar .doc-row{padding:12px 0;border-left:0;border-bottom:1px solid #edf0e9}#model-page .document-sidebar .file-icon{width:21px;height:25px}#model-page .document-sidebar .row-copy strong{font-size:12px}#model-page .document-sidebar .all-docs{margin-top:15px;font-size:12px}}
#model-page .document-sidebar .row-copy strong{font-size:11px}
@media(max-width:380px){.app-header{gap:13px;padding:0 15px}.app-header .brand{font-size:18px;gap:6px}.app-header .brand img{width:24px}.app-header nav{gap:14px}.app-header .nav-link{font-size:11px}.header-right .text-button{font-size:9px}}
