/* Guangcun shared visual system. Loaded last; page-specific layouts remain intact. */
:root{
 --gc-primary:#2563eb;--gc-primary-hover:#1d4ed8;--gc-text:#243650;--gc-secondary:#60748f;
 --gc-muted:#788da7;--gc-border:#e2e9f3;--gc-bg:#f5f7fb;--gc-surface:#fff;
 --gc-soft:#eef4ff;--gc-success:#23846b;--gc-danger:#b64760;--gc-warning:#986f2e;
 --gc-radius:12px;--gc-control:8px;--gc-shadow:0 8px 28px #23436a06;
}
body.ui-page{margin:0;background:var(--gc-bg);color:var(--gc-text);font:14px/1.6 "Segoe UI","Microsoft YaHei",sans-serif;letter-spacing:0;display:block;min-height:100vh}
body.ui-page *{box-sizing:border-box}
body.ui-page [hidden]{display:none!important}
body.ui-page button,body.ui-page input,body.ui-page textarea,body.ui-page select{font-family:inherit}
body.ui-page a{color:inherit;text-decoration:none}
body.ui-page button:focus-visible,body.ui-page a:focus-visible{outline:3px solid #a5c4ff;outline-offset:3px}
body.ui-page button:disabled{cursor:not-allowed}
body.ui-page h1,body.ui-page h2,body.ui-page h3{color:var(--gc-text);font-weight:650;letter-spacing:0}
body.ui-page h1{font-size:28px;line-height:1.4}
body.ui-page h2{font-size:18px;line-height:1.5}
body.ui-page h3{font-size:15px;line-height:1.6}
body.ui-page .eyebrow{font-size:10px;letter-spacing:2px;color:#8097b7;font-weight:600}
body.ui-page > header{height:78px;max-width:none;margin:0;padding:0 max(28px,calc((100vw - 1280px)/2));background:white;border-bottom:1px solid var(--gc-border);display:flex;align-items:center;justify-content:space-between;gap:22px}
body.ui-page .brand{display:flex;align-items:center;gap:11px;letter-spacing:1px;font-size:21px;font-weight:700;padding:0;flex-shrink:0;color:var(--gc-text)}
body.ui-page .brand small{display:block;font-size:8px;line-height:1.5;font-weight:500;letter-spacing:1.2px;color:#8a9bb1;margin-top:3px}
body.ui-page .brand>span,body.ui-page .brand-icon.brand-gc,body.ui-page .brand-mark{display:grid;place-items:center;width:38px;height:40px;border-radius:10px;background:linear-gradient(140deg,#2563eb,#3c9cd4);color:white;font:600 23px "Microsoft YaHei",sans-serif;letter-spacing:0;box-shadow:none;flex-shrink:0}
body.ui-page:not(.ui-shell):not(.ui-auth)>main{width:calc(100% - 56px);max-width:1280px;margin:26px auto 32px;padding:30px;background:#fff;border:1px solid var(--gc-border);border-radius:14px;box-shadow:var(--gc-shadow)}
body.ui-page[data-page="payment"]>main{max-width:840px}
body.ui-page[data-page="instrument-credits"]>main{max-width:1080px}
body.ui-page .ui-global-nav{display:flex;gap:6px;align-items:center;min-height:54px;margin:0;padding:7px max(28px,calc((100vw - 1280px)/2));background:white;border-bottom:1px solid var(--gc-border);overflow-x:auto;white-space:nowrap}
body.ui-page .ui-global-nav a{font-size:12px;padding:8px 14px;border-radius:7px;color:var(--gc-secondary);flex-shrink:0}
body.ui-page .ui-global-nav a:hover{background:#f4f7fc;color:var(--gc-primary)}
body.ui-page .ui-global-nav a[aria-current="page"]{color:var(--gc-primary);background:var(--gc-soft);font-weight:650}
body.ui-page .ui-session{display:flex;align-items:center;gap:13px;font-size:12px;color:var(--gc-muted);min-width:0}
body.ui-page .ui-session span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ui-page .ui-session button,body.ui-page .ui-session a{background:none;border:0;padding:0;font-size:12px;color:var(--gc-primary);white-space:nowrap}
body.ui-page .ui-session .ui-session-note{font-size:11px;color:var(--gc-muted)}
body.ui-page #accountControls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;line-height:1.6;color:var(--gc-secondary);max-width:460px}
body.ui-page #accountControls a,body.ui-page #accountControls button{font-size:11px;color:var(--gc-primary);line-height:1.7;margin:0;padding:0;border:0;background:none}
body.ui-page label{font-size:12px;font-weight:500;color:#506782}
body.ui-page input:not([type=checkbox]):not([type=radio]):not([type=file]),body.ui-page select{min-height:42px;border:1px solid #dce5f1;border-radius:var(--gc-control);background:#fcfdff;color:var(--gc-text);font-size:13px;box-shadow:none}
body.ui-page textarea{border:1px solid #dce5f1;border-radius:var(--gc-control);background:#fcfdff;color:var(--gc-text);font-size:13px;line-height:1.8;padding:11px 12px;box-shadow:none}
body.ui-page input::placeholder,body.ui-page textarea::placeholder{color:#9aaabe}
body.ui-page input:focus,body.ui-page select:focus,body.ui-page textarea:focus{outline:0;border-color:#80a8f7;box-shadow:0 0 0 3px #2563eb0d}
body.ui-page input[type=checkbox],body.ui-page input[type=radio]{accent-color:var(--gc-primary)}
body.ui-page :is(.primary,.submit,.small-submit){background:var(--gc-primary);border:1px solid var(--gc-primary);border-radius:var(--gc-control);color:white;font-size:13px;font-weight:550;min-height:42px;box-shadow:none}
body.ui-page :is(.primary,.submit,.small-submit):hover:not(:disabled){background:var(--gc-primary-hover);border-color:var(--gc-primary-hover)}
body.ui-page :is(.secondary,.ghost,.action-link){border:1px solid #dce6f5;border-radius:var(--gc-control);background:#f7faff;color:#436fAD;font-size:12px;box-shadow:none}
body.ui-page .danger,body.ui-page .submit.danger{color:var(--gc-danger);border-color:#ebcbd4;background:#fff1f4}
body.ui-page .submit.danger:hover:not(:disabled){background:#fbe3e9;border-color:#e0a6b6;color:#99384f}
body.ui-page :is(.hint,.subtle,.intro-text,.description,.footnote,.settings-hint,.option-dialog-hint,.recovery-hint){color:var(--gc-muted);font-size:12px;line-height:1.85}
body.ui-page :is(.panel,.service-card,.request-card,.coupon-card,.order-row,.lot-card,.template-card,#lotDetail,#orderDetail){border-color:var(--gc-border);border-radius:var(--gc-radius);box-shadow:none}
body.ui-page :is(.notice,.coupon-notice,.message,.info-lines){background:#f3f7fe;border-color:#e1eaf9;color:#6983a6;border-radius:8px;font-size:12px;line-height:1.85}
body.ui-page :is(.workflow-notice,.help-note,.invoice-wait){background:#fff8e9;border-color:#f1e3c4;color:#967747;border-radius:8px;font-size:12px;line-height:1.85}
body.ui-page :is(.error,.recovery-error,#error,#formError,.workflow-notice.red){background:#fff2f4;color:var(--gc-danger);border-radius:8px;font-size:12px;line-height:1.85}
body.ui-page :is(.state-tag,.detail-status,.demo-badge){background:var(--gc-soft);color:#537bb7;border-radius:5px;font-size:11px;line-height:1.6}
body.ui-page :is(.state-tag.scrapped,.scrap-metric){color:var(--gc-danger)}
body.ui-page .state-tag.scrapped{background:#fff0f3}
body.ui-page .state-tag.delivered{background:#edf8f3;color:var(--gc-success)}
body.ui-page :is(.lot-card.active,.order-row.active,.project.selected){background:#f5f8ff;border-color:#8caff3}
body.ui-page :is(.workspace-tabs,.coupon-tabs){gap:23px;border-color:var(--gc-border)}
body.ui-page :is(.workspace-tabs,.coupon-tabs) button{font-size:13px}
body.ui-page :is(.workspace-tabs,.coupon-tabs) button.active{color:var(--gc-primary);border-bottom-color:var(--gc-primary)}
body.ui-page dialog{border:1px solid var(--gc-border);border-radius:14px;box-shadow:0 24px 90px #18396626;padding:26px;color:var(--gc-text)}
body.ui-page dialog::backdrop{background:#19324e55;backdrop-filter:blur(3px)}
body.ui-page dialog h2{font-size:21px;line-height:1.5}
body.ui-page .dialog-actions{gap:12px;border-color:var(--gc-border)}
body.ui-page .dialog-actions>button:not(.submit){border-radius:8px;font-size:12px;background:#f5f8fd;border:1px solid #dce6f4;color:#6482ac}
body.ui-page .empty,body.ui-page .empty-coupons,body.ui-page .catalog-empty{font-size:13px;color:#8b9eb6;line-height:1.9}
body.ui-page table{border-collapse:collapse}
body.ui-page thead th{background:#f6f8fc;color:#7287a4;font-weight:500;font-size:12px;border-color:var(--gc-border)}
body.ui-page td{font-size:13px;border-color:#eaf0f7}
body.ui-page>footer{max-width:1280px;margin:0 auto;padding:2px 28px 25px;font-size:11px;line-height:1.8;color:#94a5bc;text-align:center}
/* Shared side rail for the existing customer and staff workspaces. */
body.ui-shell .sidebar{width:240px;background:#fff;border-right:1px solid var(--gc-border);color:var(--gc-text);padding:28px 20px;z-index:5}
body.ui-shell .sidebar .brand{padding:0 8px;margin-bottom:26px}
body.ui-shell .sidebar nav{display:grid;gap:5px}
body.ui-shell .sidebar :is(.nav,.nav-item){display:flex;align-items:center;gap:11px;width:100%;font-size:13px;line-height:1.6;padding:12px;border-radius:8px;background:transparent;border:0;color:var(--gc-secondary);text-align:left;box-shadow:none;margin:0}
body.ui-shell .sidebar :is(.nav,.nav-item):hover{background:#f5f8fe;color:var(--gc-primary)}
body.ui-shell .sidebar :is(.nav,.nav-item).active{background:var(--gc-soft);color:var(--gc-primary);font-weight:650;box-shadow:none}
body.ui-shell .sidebar-foot{border-color:var(--gc-border);color:#7890ac;font-size:12px}
body.ui-shell .sidebar-foot small{color:#9aabc0}
body.ui-shell main{margin-left:240px}
body.ui-page[data-page="index"]{--teal:var(--gc-primary);--teal2:#6097f2;--navy:#fff;--muted:var(--gc-muted)}
body.ui-page[data-page="index"] main{padding:0 32px 40px}
body.ui-page[data-page="index"] header{height:100px;border-bottom:0;gap:20px}
body.ui-page[data-page="index"] .user span{display:inline;width:auto;height:auto;border-radius:0;background:none;color:#617894;font-weight:500}
body.ui-page[data-page="index"] .hero{background:linear-gradient(110deg,#edf4ff,#f5f9ff);border:1px solid #dee9fa;color:var(--gc-text);box-shadow:none;border-radius:14px;min-height:170px;padding:28px 32px}
body.ui-page[data-page="index"] .hero p{color:#718aae;font-size:13px;line-height:1.85}
body.ui-page[data-page="index"] .hero h2{font-size:27px}
body.ui-page[data-page="index"] .hero-date{background:white;border-color:#dce7f8;color:#6685b0;font-size:14px}
body.ui-page[data-page="index"] .hero:after{border-color:#d7e7fd66}
body.ui-page[data-page="index"] .metric{border-color:var(--gc-border);border-radius:12px;box-shadow:none}
body.ui-page[data-page="index"] .metric strong{color:var(--gc-primary)}
body.ui-page[data-page="test-order"] main{padding:0}
body.ui-page[data-page="test-order"] main>header{height:78px;padding:0 32px;background:white;border-bottom:1px solid var(--gc-border)}
body.ui-page[data-page="test-order"] .page-content{padding:30px 32px 0;max-width:1450px}
body.ui-page[data-page="test-order"] .workspace{margin-top:0}
body.ui-page[data-page="test-order"] .project h3{font-size:14px}
body.ui-page[data-page="test-order"] .project p{font-size:11px;color:var(--gc-muted)}
body.ui-page[data-page="test-order"] .quantity input{height:26px;min-height:0;font-size:12px;border:0;border-radius:0;background:none}
body.ui-page[data-page="test-order"] .quantity{height:28px}
body.ui-page[data-page="test-order"] .search input{min-height:0;height:auto;border:0;background:none;box-shadow:none;font-size:12px}
body.ui-page[data-page="test-order"] .profile{margin-top:20px;border-color:var(--gc-border)}
body.ui-page[data-page="test-order"] .sidebar #accountControls{display:block;font-size:11px}
/* Authentication pages keep their two-column composition, using the same controls. */
body.ui-auth>main{max-width:1140px;margin:30px auto;min-height:650px;border-radius:16px;border-color:var(--gc-border);box-shadow:var(--gc-shadow)}
body.ui-auth .intro{background:linear-gradient(145deg,#edf4ff,#f1f7fd)}
body.ui-auth .intro h1{font-size:35px;line-height:1.65;letter-spacing:1px}
body.ui-auth .login-card h2{font-size:27px}
body.ui-auth .login-card>p{font-size:12px;color:var(--gc-muted)}
@media(max-width:1100px){
 body.ui-shell .sidebar{width:205px;padding:24px 14px}
 body.ui-shell main{margin-left:205px}
 body.ui-shell .sidebar .brand{font-size:18px;gap:9px;padding:0}
 body.ui-shell .sidebar .brand small{font-size:7px}
 body.ui-page:not(.ui-shell):not(.ui-auth)>main{width:calc(100% - 40px);padding:24px}
 body.ui-auth>main{margin:24px 22px}
 body.ui-page>header{padding:0 24px}
 body.ui-page .ui-global-nav{padding:7px 24px}
}
@media(max-width:750px){
 body.ui-page h1{font-size:24px}
 body.ui-page>header{height:auto;min-height:74px;padding:16px 20px;gap:14px;flex-wrap:wrap}
 body.ui-page .brand{font-size:20px}
 body.ui-page .brand>span,body.ui-page .brand-icon.brand-gc,body.ui-page .brand-mark{width:33px;height:35px;font-size:20px}
 body.ui-page .ui-global-nav{min-height:48px;padding:6px 14px;gap:3px}
 body.ui-page .ui-global-nav a{font-size:11px;padding:7px 11px}
 body.ui-page:not(.ui-shell):not(.ui-auth)>main{width:calc(100% - 28px);margin:18px auto 24px;padding:20px;border-radius:12px}
 body.ui-page #accountControls{font-size:11px;gap:9px}
 body.ui-shell .sidebar{position:static;width:100%;padding:18px 20px;border-right:0;border-bottom:1px solid var(--gc-border)}
 body.ui-shell .sidebar .brand{margin:0 0 14px;font-size:20px}
 body.ui-shell .sidebar nav{display:flex;gap:5px;overflow:auto;padding-bottom:3px}
 body.ui-shell .sidebar :is(.nav,.nav-item){width:auto;white-space:nowrap;padding:8px 11px;font-size:12px;flex-shrink:0}
 body.ui-shell .sidebar>.nav-item{display:inline-flex;margin:4px 4px 0 0;font-size:11px}
 body.ui-shell .sidebar :is(.sidebar-foot,.side-note,.workspace,.nav-label,.profile){display:none}
 body.ui-shell main{margin-left:0}
 body.ui-page[data-page="index"] main{padding:0 18px 28px}
 body.ui-page[data-page="index"] header{height:auto;min-height:96px;padding:19px 0;flex-wrap:wrap}
 body.ui-page[data-page="index"] .hero{padding:24px;min-height:160px}
 body.ui-page[data-page="index"] .hero h2{font-size:23px}
 body.ui-page[data-page="test-order"] main>header{height:60px;padding:0 20px}
 body.ui-page[data-page="test-order"] .page-content{padding:25px 16px 0}
 body.ui-auth>main{margin:20px 14px;min-height:0}
 body.ui-auth .intro h1{font-size:25px;line-height:1.5}
 body.ui-page dialog{padding:21px;border-radius:12px}
 body.ui-page dialog h2{font-size:19px}
}
@media(prefers-reduced-motion:reduce){body.ui-page *{scroll-behavior:auto!important;transition:none!important}}
body.ui-page :is(.page-title,.wafer-heading,.order-heading,.coupon-heading,.catalog-head) p{font-size:13px;line-height:1.85;color:var(--gc-muted)}
body.ui-page[data-page="foundry"] main>nav,body.ui-page[data-page="mpw"] main>nav{border:0;margin:18px 0;justify-content:flex-end;gap:10px}
body.ui-page[data-page="foundry"] main>nav>a,body.ui-page[data-page="mpw"] main>nav>a{display:none}
body.ui-page[data-page="foundry"] main>nav>button,body.ui-page[data-page="mpw"] main>nav>button{border:1px solid #dce6f5;border-radius:7px;padding:8px 12px;background:#f7faff;color:#547bab;font-size:12px}
@media(max-width:750px){body.ui-page[data-page="test-order"] .sidebar .profile{display:flex;border-top:0;margin:10px 0 0;padding:0}body.ui-page[data-page="test-order"] .sidebar #accountControls{display:flex;font-size:11px;gap:10px}body.ui-page[data-page="test-order"] .sidebar .profile>.avatar{display:none}}
body.ui-page[data-page="test-order"] .search input[type="search"]{border:0;min-height:0;background:none;box-shadow:none}
body.ui-page .ui-legacy-header-links{display:none}
body.ui-page .ui-global-nav{flex-wrap:nowrap}
body.ui-page[data-page="instrument-credits"]{max-width:1080px;margin:36px auto;padding:0 24px}
/* ICP registration supplied by the site owner for lab.lumistor.com. */
body.ui-page footer:has(.icp-registration){flex-wrap:wrap}
body.ui-page .icp-registration{display:block;flex:0 0 100%;width:100%;text-align:center;padding:12px 0 4px;font-size:12px;line-height:1.8;color:#70829c}
body.ui-page .icp-registration a{color:inherit;text-decoration:none}
body.ui-page .icp-registration a:hover{color:var(--gc-primary);text-decoration:underline}
body.ui-page .compliance-footer{padding:18px 0;text-align:center}
