/* Shared screen layout for public pages and the internal workspace. */
@media screen{
 html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
 body{min-width:0}
 img,video,svg{max-width:100%}
 button,input,select,textarea{font-size:16px}
 button,.btn,.button,.choice{min-height:44px;white-space:normal;overflow-wrap:anywhere;touch-action:manipulation}
 input:not([type=checkbox]):not([type=radio]),select,textarea{min-width:0;max-width:100%;font-size:16px}
 input[type=checkbox],input[type=radio]{min-width:20px;min-height:20px;flex-shrink:0}
 textarea{resize:vertical}
 h1,h2,h3,p,.tag,.badge,.notice,.meta,.service-breadcrumb{overflow-wrap:anywhere}
 .wrap,.container,.workspace,.panel,.card,.grid>*,.split>*,.gallery-grid>*,.footer-grid>*{min-width:0}
 .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .split{grid-template-columns:repeat(2,minmax(0,1fr))}
 .nav-items,header .nav nav{flex-wrap:wrap;column-gap:20px;row-gap:5px}
 .nav-items>a,header .nav nav>a{display:inline-flex;align-items:center;min-height:44px}
 .navigation .brand,header .nav>.logo{flex-shrink:0}
 .nav,.navigation{min-width:0}
 .gallery-card h2{font-size:clamp(20px,2vw,24px)}
 .gallery-media video{object-fit:contain}
 .service-page .row,#productsGrid .row,.workspace .row{flex-wrap:wrap}
 .service-page .card button,#productsGrid .order{width:100%}
 .card .price{font-size:clamp(20px,2vw,25px)}
 .tech-scene{width:min(100%,340px);max-width:100%;margin-inline:auto;overflow:hidden}
 .tech-scene .orbit{width:82%;height:auto;aspect-ratio:1}
 .tech-scene .orbit-three{width:94%;height:auto;aspect-ratio:1}
 .hero-panel{overflow:hidden}
 .quote-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:40px}
 .quote-layout>*,.chat-heading>*{min-width:0}
 .chat-heading{flex-wrap:wrap}
 .chat-heading .text-button{min-height:44px}
 .chat-panel #messages{max-height:min(40vh,360px);overscroll-behavior:contain}
 .consent{min-height:44px;align-items:flex-start}
 .consent input{margin-top:2px}
 dialog{max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
 dialog p{overflow-wrap:anywhere}
 .shell{grid-template-columns:240px minmax(0,1fr)}
 .side{position:sticky;top:0;height:100vh;height:100dvh;min-height:0;align-self:start;overflow-y:auto;overscroll-behavior:contain}
 .side-header{display:flex;align-items:center;justify-content:space-between;gap:16px}
 .side .side-menu-toggle{display:none}
 .side .side-menu-content{display:block}
 .workspace{padding:32px;max-width:1600px}
 .workspace .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .workspace .toolbar{gap:12px}
 .workspace .toolbar input{flex:1 1 240px;min-width:0}
 .workspace .toolbar button{white-space:normal}
 .workspace .table{max-width:100%;overflow:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
 .workspace .table:focus-visible{outline:3px solid #2459d3;outline-offset:3px}
 .workspace table{min-width:680px}
 .workspace th,.workspace td{overflow-wrap:anywhere;vertical-align:top}
 .workspace td .row{justify-content:flex-start;gap:8px;min-width:125px}
 .workspace td button{padding:10px 13px}
 .workspace .stats{grid-template-columns:repeat(3,minmax(0,1fr))}
 .workspace .stat strong{font-size:clamp(24px,3vw,32px)}
 .modal-backdrop{padding:20px;overflow-y:auto;align-items:center}
 .editor{min-width:0;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overscroll-behavior:contain;scroll-padding-block:20px}
 .editor .row{align-items:flex-start}
 .editor h2{font-size:clamp(21px,3vw,27px)}
 .editor-actions{flex-wrap:wrap;gap:10px}
 .line-editor{grid-template-columns:minmax(0,1fr) 100px 130px 44px}
 .line-editor label{min-width:0}
 .line-editor button{min-width:44px;min-height:44px}
}
@media screen and (min-width:1400px){.workspace .grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media screen and (max-width:1100px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-layout{gap:28px}.service-page .split{gap:22px}}
@media screen and (max-width:1023px){
 .shell{display:block}.side{position:relative;height:auto;overflow:visible;padding:16px 24px;min-height:0}
 .side .side-header>.logo{font-size:27px}
 .side .side-menu-toggle{display:block;width:auto;margin:0;padding:9px 15px;border:1px solid #6b829f;min-height:44px}
 .side .side-menu-content{display:none}
 .side .side-menu-content.is-open{display:block;padding-top:8px}
 .side .side-menu-content>p{display:block}
 .side .admin-category{width:100%}
 .side .admin-category-items{display:flex;flex-wrap:wrap;gap:6px}
 .side .admin-category-items button{width:auto;min-height:44px;margin:0}
 .side .admin-navigation>button{min-height:44px}
 .workspace{padding:28px 24px}
}
@media screen and (max-width:900px){
 .quote-layout,.service-page .section>.split{grid-template-columns:minmax(0,1fr)}
 .quote-layout{gap:24px;padding-top:40px}
 .intro{align-items:flex-start;flex-wrap:wrap}
 .service-page form .split{grid-template-columns:repeat(2,minmax(0,1fr))}
 .editor .split{grid-template-columns:minmax(0,1fr);gap:14px}
 .footer-grid{gap:28px}
}
@media screen and (max-width:767px){
 .navigation{align-items:flex-start;gap:8px;padding-block:16px}
 .nav-items{width:100%;justify-content:flex-start;gap:5px 24px}
 .navigation .brand small{font-size:8px;letter-spacing:.5px;white-space:normal}
 header .nav{gap:5px 18px;flex-wrap:wrap;padding-block:16px}
 header .nav nav{gap:5px 20px}
 .hero{padding-top:36px;padding-bottom:32px}
 .hero h1{font-size:clamp(38px,9vw,62px);letter-spacing:-1.7px}
 .hero .lead{font-size:17px;margin-block:22px}
 .hero-panel{max-width:440px;padding:20px}
 .tech-scene{height:280px}
 .core{width:120px;height:120px}
 .core-top{font-size:38px}
 .scene-label{font-size:8px;letter-spacing:.5px}
 .cta{padding:24px;align-items:flex-start;flex-direction:column}
 .floating-quote{position:static;display:flex;justify-content:center;margin:20px auto 32px;width:calc(100% - 40px);max-width:400px}
 .workspace .quick{align-items:stretch}
 .workspace .quick>button{flex:1 1 220px}
 .workspace .line-editor{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:10px}
 .workspace .line-editor label:first-child{grid-column:1/-1}
 .workspace .line-editor input{min-width:0}
 .workspace .line-editor label{margin:5px 0 12px}
 .workspace .line-editor button{margin-bottom:12px}
 .modal-backdrop{padding:12px}
 .editor{padding:22px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}
}
@media screen and (max-width:639px){
 .grid,.workspace .grid,.gallery-grid{grid-template-columns:minmax(0,1fr)}
 .wrap{padding-inline:20px}
 .workspace{padding:22px 16px}
 .side{padding:14px 18px}
 .side .admin-category-items{flex-direction:column;align-items:stretch}
 .side .admin-category-items button{width:100%}
 .workspace .stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .workspace .stat{padding:14px 10px}
 .workspace .stat span{font-size:12px}
 .workspace .stat strong{font-size:24px}
 .workspace .toolbar{flex-direction:column;align-items:stretch}
 .workspace .toolbar input{flex:auto;max-width:none}
 .workspace .toolbar>button,.workspace .toolbar>a{width:100%;text-align:center}
 .service-page form .split,.split{grid-template-columns:minmax(0,1fr)}
 .service-page .section{padding-block:30px}
 .service-page .service-lead{font-size:19px}
 .service-description{font-size:16px}
 .intro{padding-top:36px}
 .intro h1,.service-page h1{font-size:clamp(34px,9vw,48px);letter-spacing:-1.3px}
 .tabs{gap:8px}.tabs button{padding:10px 13px}
 .bottom{padding:24px;align-items:flex-start;flex-direction:column}
 .pad{padding:20px}
 .gallery-info{padding:20px}
 .chat-panel{padding:18px}
 .chat-heading strong{font-size:15px}
 .chat-heading .text-button{padding-inline:8px}
 .quote-title{font-size:clamp(36px,10vw,48px)}
 .quote-layout .actions{gap:12px;align-items:stretch;flex-direction:column}
 .quote-layout .actions a{text-align:center}
 .bubble.user{margin-left:16px}
 .editor-actions>button{flex:1 1 130px}
 .login{margin:28px 16px;padding:24px!important;max-width:calc(100% - 32px)}
 .login h1{font-size:clamp(32px,9vw,40px)!important}
 .public-footer{padding-bottom:40px}
 .public-footer .footer-wrap{padding-inline:20px}
 .footer-bottom{gap:16px}
 .footer-bottom a{display:inline-flex;align-items:center;min-height:44px}
}
@media screen and (max-height:500px){.modal-backdrop{align-items:flex-start}.editor{max-height:calc(100dvh - 24px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

@media screen{.ui-icon{width:20px;height:20px;flex:none;display:block}.nav-items>a,header .nav nav>a{gap:8px}.side .admin-navigation>button,.side .admin-category-items button,.side .side-menu-toggle{display:flex;align-items:center;gap:10px}.side .side-menu-toggle{display:none}.side .menu-label{display:flex;align-items:center;gap:10px;min-width:0}.side .admin-category-items .ui-icon{width:18px;height:18px}.side .admin-category-items button{display:flex}.side .admin-category-items button span{min-width:0;text-align:left}}
@media screen and (max-width:1023px){.side .side-menu-toggle{display:flex}.nav-items,header .nav nav{column-gap:16px}}
@media screen and (max-width:380px){.nav-items>a,header .nav nav>a{gap:5px;font-size:14px}.nav-items,header .nav nav{column-gap:12px}.ui-icon{width:18px;height:18px}}

/* Existing CADGT artwork, shared by the public site and internal workspace. */
.brand-image{display:block;width:190px;max-width:100%;height:auto;aspect-ratio:3/1;object-fit:contain;margin-block:-12px}
.logo:has(.brand-image){display:inline-flex;align-items:center;max-width:100%;min-height:44px}
.logo .brand-image{width:168px;margin-block:-9px}
.brand:has(.brand-image){display:flex;flex-direction:column;align-items:flex-start;max-width:100%}
.brand small{font-size:8px;letter-spacing:.13em;line-height:1.5;margin-top:2px}
@media(max-width:639px){.brand-image{width:160px;margin-block:-10px}.logo .brand-image{width:145px}.brand small{max-width:190px;font-size:7px}}

.core .core-logo{display:block;width:126px;height:auto;align-self:center;position:relative;z-index:1;max-width:90%}
