/* 25a shared scale, after the accepted masters. Business layouts and specialised controls remain local. */
:root{--yl-body:16px;--yl-small:14px;--yl-title:30px;--yl-h2:21px;--yl-h3:17px;--yl-gutter:24px;--yl-control:40px;--yl-shell:1280px}
html.yl-large{--yl-body:18px;--yl-small:16px;--yl-title:34px;--yl-h2:24px;--yl-h3:19px}
html{scrollbar-gutter:stable}
body.yl-page{font-family:system-ui,"Microsoft YaHei","PingFang SC",sans-serif;font-size:var(--yl-body);line-height:1.6}
.yl-page h1,.yl-page .mast h1,.yl-page .hero h1{font-size:var(--yl-title);line-height:1.3;letter-spacing:-.5px}
.yl-page h2{font-size:var(--yl-h2);line-height:1.4}
.yl-page h3{font-size:var(--yl-h3);line-height:1.45}
.yl-page :is(.sub,.subl,.source,.help,.caption,.micro,.muted,.secondary,.hint,.small,.dim,.field,.wf-field){font-size:var(--yl-small);line-height:1.6}
.yl-page :is(.eyebrow,.ey,.kicker,.trail){font-size:12px;line-height:1.6}
.yl-page :is(button,input,select,textarea){font-family:inherit}
.yl-page :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=range]):not([type=color]):not(.stp *),select,textarea){font-size:var(--yl-body);line-height:1.5;max-width:100%;min-width:0}
.yl-page :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=range]):not([type=color]):not(.stp *),select){min-height:var(--yl-control)}
.yl-page :is(button.btn,button.bt,button.action,button.primary,button.strong,button.ghost,button.pri,.hero-actions button,.actions button,.wf-buttons button,.modalfoot button,.modfoot button,.formfoot button){font-size:var(--yl-small);line-height:1.5;min-height:var(--yl-control);padding:8px 14px;border-radius:8px}
.yl-page :is(.tools,.toolbar,.filters){gap:10px}
.yl-page :is(.tag,.badge,.pill,.scope){font-size:12px;line-height:1.5}
html.yl-large .yl-page :is(.tag,.badge,.pill,.scope,.eyebrow,.ey,.kicker,.trail){font-size:14px}
.yl-page :is(th,td){font-size:var(--yl-small);line-height:1.6}
.yl-page :is(th,td){padding-top:12px;padding-bottom:12px}
.yl-page :is(.box,.panel,.side,.section){border-radius:12px}
/* The outer content uses one width; the specialised grid, matrix, calendar and drawers retain their structure. */
.yl-owner>.page,.yl-owner>.foot,.yl-owner header>.bar-in,
.yl-team>.mast,.yl-team>main,.yl-team>footer,.yl-team header>.nav,
.yl-calendar>main.w,.yl-calendar header>.head,
.yl-customers>main.frame,.yl-customers header>.frame,
.yl-orders>main.frame,.yl-orders header>.frame,
.yl-inventory>.wrap,.yl-inventory header>.wrap,
.yl-information>.deck,.yl-information header>.topin,
.yl-settings>.wrap,.yl-settings header>.topin,
.yl-guide>.deck,.yl-guide header>.topin,
.yl-operations>.page,.yl-operations header>.bar-in,
.yl-login>.page{width:100%;max-width:var(--yl-shell);margin-left:auto;margin-right:auto;padding-left:var(--yl-gutter);padding-right:var(--yl-gutter)}
.yl-page header .brand{font-size:18px;line-height:1.4;gap:10px;letter-spacing:.4px;min-width:0}
.yl-page header .brand :is(small,.env){font-size:12px}
.yl-page header :is(.bar-in,.topin,.head,.frame.top),.yl-team header>.nav{min-height:64px;padding-top:10px;padding-bottom:10px}
.yl-page header :is(.logo,.mark,.brandmark){width:32px;height:32px;flex:0 0 32px}
.yl-page header :is(#actorName,#uname){font-size:var(--yl-small);overflow-wrap:anywhere}
.ylqc-environment{min-height:38px;padding:8px max(var(--yl-gutter),calc((100% - var(--yl-shell))/2 + var(--yl-gutter)));gap:4px 12px;font:13px/1.5 system-ui,sans-serif}
[data-workbench-nav]{max-width:var(--yl-shell);padding:7px var(--yl-gutter);min-height:56px;height:56px;gap:4px;scrollbar-width:thin}
[data-workbench-nav] :is(a,span){font-size:var(--yl-small);line-height:1.5;flex:0 0 auto}
[data-workbench-nav] a{padding:8px 12px;min-height:40px}
#ylReminderSlot{position:relative;max-width:var(--yl-shell);margin:0 auto;min-height:34px;padding:4px var(--yl-gutter);font-size:var(--yl-small);line-height:24px;color:#536e63;background:#f5f8f3}
#ylReminderSlot details{padding:0;background:none}
#ylReminderSlot summary{cursor:pointer}
#ylReminderSlot .yl-reminder-links{position:absolute;z-index:40;right:var(--yl-gutter);top:100%;width:min(360px,calc(100vw - 32px));max-height:50vh;overflow:auto;padding:10px 14px;background:#fff;border:1px solid #d9e4dc;box-shadow:0 8px 24px #163d3120;border-radius:8px}
#ylReminderSlot a{display:block;padding:6px;color:#153f32;white-space:normal}
/* Ordinary dialogs share rhythm; fixed member tabs/footer, 720px composer and right-hand information drawer keep their dimensions. */
.yl-page :is(.modalhead,.modhead,.dhead,.modalfoot,.modfoot,.formfoot){gap:12px}
.yl-page :is(.modalbody,.modbody,.dbody){line-height:1.6}
.yl-orders .layout>section,.yl-page .maincol,.yl-settings .col{min-width:0}
.yl-orders :is(.toolbar,.tools){flex-wrap:wrap}
.yl-orders .search{min-width:0;max-width:100%}
.yl-orders .search input{width:100%;min-width:0}
.yl-login>.page{padding-top:32px}
.yl-login .panel{max-width:640px;margin:0 auto}
@media(max-width:640px){
 :root{--yl-gutter:14px;--yl-title:26px;--yl-control:44px}
 html.yl-large{--yl-title:30px}
 .yl-page header :is(.bar-in,.topin,.head,.frame.top),.yl-team header>.nav{min-height:64px;padding-top:10px;padding-bottom:10px}
 .yl-page header .brand small,.yl-page header .brand .env{display:none}
 .yl-page header .brand{font-size:17px;letter-spacing:0}
 .ylqc-environment{min-height:60px;align-content:center}
 [data-workbench-nav]{height:62px;min-height:62px}
 [data-workbench-nav] a{padding:8px 10px;min-height:40px}
 .yl-page :is(.mast,.intro,.hero,.titleline,.banner){min-width:0}
 .yl-page .guide-grid{grid-template-columns:minmax(0,1fr)}
 .yl-page :is(.field,.wf-field){min-width:0}
 .yl-page :is(.intro,.mast,.titleline){gap:12px}
 .yl-orders .intro{flex-wrap:wrap}
 .yl-orders .tools{width:100%}
 .yl-orders .tools>.search{flex:1 1 100%;width:100%}
 .yl-orders .tools>select{flex:1 1 120px;max-width:100%}
}

/* Stable title alignment and equivalent card rhythm, without moving business controls. */
[data-workbench-nav] a[aria-current=page]{color:#174b3c;background:#e5f0e7;border-color:#c8dacd}
.yl-owner>.page,.yl-information>.deck,.yl-guide>.deck{padding-top:24px}
.yl-owner .heading{margin:4px 0 20px}
.yl-calendar .hero,.yl-customers main>.mast,.yl-orders .intro,.yl-inventory .mast{margin-top:24px;margin-bottom:20px}
.yl-page :is(.eyebrow,.kicker,.ey){margin-bottom:4px}
.yl-calendar .hero h1{margin:0}
.yl-information>.deck>.trail{margin:0 0 4px}
.yl-information .titleline{margin-top:0;margin-bottom:20px}
.yl-information .titleline .ey{display:none}
.yl-settings>.wrap{padding-top:24px}
.yl-settings>.wrap>.trail{margin:0 0 4px}
.yl-settings>.wrap>.banner{margin-top:0;margin-bottom:20px}
@media(max-width:640px){
 .yl-customers .progresscard .no-plan{font-size:20px;white-space:nowrap}
 .yl-customers .progresscard>.action{grid-column:1/-1;justify-self:end}
 .yl-customers .listhead{flex-wrap:wrap;gap:10px}
 .yl-customers .listhead>div:first-child{flex:1 1 100%}
 .yl-customers .listhead>.flex{width:100%;flex-wrap:wrap;gap:6px}
 .yl-customers .listhead .action{white-space:normal;padding:8px 10px;flex:1 1 auto;min-height:44px}
}

.yl-orders .intro{padding-top:0;padding-bottom:0}
.yl-guide .guide h1{margin-top:0;margin-bottom:12px}
.yl-team>.mast{padding-top:24px}


/* 25b: balanced wide-screen composition. Only page chrome and ordinary content surfaces. */
.yl-page{--yl-surface:#fffefa;--yl-edge:#dbe3d9;--yl-faint:#f5f7f1}
.yl-page>header{background:#fffefa;color:#183c34;border-bottom:1px solid var(--yl-edge)}
.yl-page>header .brand{color:#183c34;font-weight:760;letter-spacing:.025em}
.yl-page>header .brand :is(small,.env){color:#60736a;border-color:#d6e0d7}
.yl-page>header .brand :is(.logo,.mark,.brandmark){position:relative;background:#185541;color:#fff8df;border-radius:9px;font-size:0;box-shadow:inset 0 0 0 1px #ffffff12}
.yl-page>header .brand :is(.logo,.mark,.brandmark)::before{content:"银";font:600 22px/1.2 Georgia,"Songti SC","SimSun",serif;display:block}
.yl-page>header .brand :is(.logo,.mark,.brandmark)>svg{display:none}
.yl-page>header :is(#actorName,#uname){color:#4d665a}
.yl-page>header :is(#domain,#environment,#env){background:#eef2eb;color:#587164;border-color:#dce5d9}
.yl-page>header [data-workbench-nav]{background:transparent;border-top:1px solid #edf0e9;gap:6px}
.yl-page>header [data-workbench-nav] a{color:#4b6256;border-radius:8px}
.yl-page>header [data-workbench-nav] a:hover{background:#f0f5ec}
.yl-page>header [data-workbench-nav] a[aria-current=page]{color:#174f3d;background:#e8f0e2;border-color:#d5e3cc}
.yl-page>header #ylReminderSlot{background:transparent;font-size:12px;color:#6c7e71}
.yl-page .eyebrow,.yl-page .ey,.yl-page .kicker{letter-spacing:.11em;color:#607c66}
.yl-page :is(.mast,.intro,.hero,.titleline,.banner)>.sub{max-width:76ch}
.yl-owner>.page{padding-top:30px}
.yl-owner .heading{align-items:center;margin-bottom:26px}
.yl-owner .heading p{max-width:64ch}
.yl-owner .kpis{gap:20px;grid-template-columns:1.25fr 1fr 1fr}
.yl-owner .kpi{min-height:164px;padding:24px 26px 22px;border-radius:16px;box-shadow:0 3px 13px #173e3005}
.yl-owner .kpi label{font-size:14px;font-weight:650;letter-spacing:.02em}
.yl-owner button.kpi strong{font-size:clamp(36px,2.1vw,48px);line-height:1.15;animation:none}
.yl-owner button.kpi .textval{font-size:30px;letter-spacing:-.035em}
.yl-owner .kpi small{font-size:13px;line-height:1.6;max-width:54ch}
.yl-owner .kpi.main{background:#174f3e;border-color:#174f3e}
.yl-owner .kpi.main small{color:#c8ddca}
.yl-owner .owner-adjustments{margin-top:20px;padding:18px 24px;display:grid;grid-template-columns:minmax(250px,1fr) minmax(260px,1.35fr);gap:12px 28px;align-items:center;border-left:3px solid #b7cbaa;background:#f9fbf5;box-shadow:none}
.yl-owner .owner-adjustments h2{font-size:18px;line-height:1.45}
.yl-owner .owner-adjustments p{margin:5px 0 0;font-size:14px;line-height:1.65;color:#5b7163;max-width:76ch}
.yl-owner .owner-adjustment-rows{padding-left:24px;border-left:1px solid #e0e8da}
.yl-owner .owner-adjustment-rows p:first-child{margin-top:0}
.yl-owner .bento{gap:22px;margin-top:24px;align-items:start;grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr)}
.yl-owner .bento>.panel{padding:24px 26px}
.yl-owner .bento h2,.yl-owner .section h2{font-size:20px}
.yl-owner .bento .empty{padding:26px 0 8px;max-width:70ch;font-size:14px;line-height:1.7}
.yl-owner .tour{background:#edf3e7;border-color:#d8e4d0}
.yl-owner .tour p{font-size:15px;line-height:1.75;max-width:48ch;margin:12px 0 20px}
.yl-owner .tour .label{font-size:12px;color:#637b58}
.yl-owner .section{margin-top:24px;padding:24px 26px}
.yl-owner .owner-related-links{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 18px}
.yl-owner a.owner-related-link{display:inline-flex;align-items:center;min-height:40px;padding:9px 14px;color:#42654e;background:#f4f7ef;border:1px solid #e1e8da;border-radius:8px;font-size:14px;line-height:1.5;text-decoration:none}
.yl-owner a.owner-related-link:hover{color:#174f3d;background:#eaf2e3;border-color:#cbdcbc}
.yl-owner a.owner-related-link:focus-visible{outline:3px solid #b88831;outline-offset:3px}
.yl-owner .quick{gap:10px;margin-top:0}
.yl-owner .foot{padding-top:24px;color:#728374}
.yl-calendar .card{border-color:var(--yl-edge);border-radius:16px;box-shadow:0 3px 16px #183e3004}
.yl-calendar .tbar{padding:18px 22px;gap:18px}
.yl-calendar .month-num{font-size:24px;letter-spacing:-.04em}
.yl-calendar .scopeband{padding:9px 22px;background:#f7f9f3;color:#718271}
.yl-calendar .week{min-height:34px;align-items:center;background:#fbfcf8;color:#607464}
.yl-calendar .cell{padding:9px 11px}
.yl-calendar .listhead{padding:20px 22px 14px}
.yl-calendar .listwrap{padding-left:22px;padding-right:22px}
.yl-calendar .empty{padding:24px 12px}
.yl-customers main>.mast,.yl-inventory .mast{margin-bottom:24px}
.yl-customers main>.box,.yl-customers .reccard,.yl-inventory #app>.panel{border-color:var(--yl-edge);box-shadow:0 3px 14px #183e3003}
.yl-customers .progresscard{gap:24px;border-radius:16px}
.yl-customers .progwhy{max-width:76ch}
.yl-customers .recbody{max-width:66ch}
.yl-inventory .inventory-note{max-width:80ch}
.yl-inventory .tablebutton{max-width:44ch}
@media(min-width:1536px){
 :root{--yl-shell:clamp(1280px,calc(100vw - 240px),1840px);--yl-gutter:32px;--yl-title:clamp(30px,1.6vw,36px)}
 html.yl-large{--yl-title:clamp(34px,1.8vw,40px)}
 .yl-page>header :is(.bar-in,.topin,.head,.frame.top),.yl-team>header>.nav{min-height:68px}
 .yl-page :is(.mast,.intro,.hero,.titleline,.banner){margin-bottom:26px}
 .yl-calendar .cell{min-height:clamp(88px,calc((100dvh - 480px)/6),112px)}
 .yl-calendar .listrow{padding-top:14px;padding-bottom:14px}
 .yl-customers .recs{gap:18px}
 .yl-customers .progresscard{padding:24px 28px}
 .yl-inventory #app>.panel{padding:22px 26px}
}
@media(min-width:2100px){
 .yl-owner .kpi{min-height:176px}
 .yl-owner .bento>.panel{padding:28px}
 .yl-owner .section{padding:26px 28px}
 .yl-calendar .cell{padding:12px 14px}
}
html.yl-large .yl-owner .kpi label{font-size:16px}
html.yl-large .yl-owner .kpi small{font-size:15px}
html.yl-large .yl-owner .owner-adjustments p,html.yl-large .yl-owner a.owner-related-link{font-size:16px}
html.yl-large .yl-owner .owner-adjustments h2{font-size:20px}
html.yl-large .yl-owner .tour p{font-size:17px}
@media(max-width:760px){
 .yl-owner .kpis{grid-template-columns:1fr 1fr;gap:10px}
 .yl-owner .kpi{min-height:110px;padding:18px}
 .yl-owner .kpi.main{min-height:132px}
 .yl-owner .bento{grid-template-columns:1fr;gap:14px}
 .yl-owner .owner-adjustments{grid-template-columns:1fr;padding:17px 18px;gap:10px}
 .yl-owner .owner-adjustment-rows{padding-left:0;border-left:0}
 .yl-owner .bento>.panel,.yl-owner .section{padding:20px}
 .yl-owner .heading{margin-bottom:22px}
 .yl-calendar .tbar{padding:12px;gap:10px}
 .yl-calendar .scopeband{padding:7px 12px}
 .yl-calendar .listhead{padding:16px}
 .yl-calendar .listwrap{padding-left:16px;padding-right:16px}
}
@media(max-width:640px){
 .yl-owner>.page{padding-top:24px}
 .yl-owner .kpi{min-height:112px;padding:15px 16px}
 .yl-owner .kpi.main{min-height:138px}
 .yl-owner .kpi small{font-size:12px}
 .yl-owner .kpi label{font-size:13px}
 .yl-owner button.kpi strong{font-size:36px}
 .yl-owner button.kpi .textval{font-size:27px}
 .yl-owner .owner-related-links{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
 .yl-owner a.owner-related-link{font-size:14px}
 .yl-owner .quick{gap:8px}
 .yl-calendar .month-num{font-size:22px}
 .yl-calendar .cell{padding:4px 3px}
 .yl-calendar .week{min-height:26px}
 .yl-customers .progresscard{gap:7px 13px;border-radius:12px}
}

@media(min-width:1536px){
 .yl-owner #app>.section{display:grid;grid-template-columns:minmax(360px,1fr) minmax(550px,1.4fr);gap:16px 26px;align-items:center}
 .yl-owner #app>.section>h2{grid-column:1/-1}
 .yl-owner #app>.section>.owner-related-links{margin:0}
 .yl-owner #app>.section>.quick{justify-content:flex-end}
}
@media(max-width:650px){
 .yl-customers .rec .head{flex-wrap:wrap;align-items:flex-start;gap:8px}
 .yl-customers .rec .head>.customer-name-button{flex:1 1 100%;text-align:left}
 .yl-customers .rec .bar{align-items:flex-start;gap:12px}
 .yl-customers .rec .bar>.caption{flex:1 1 0;min-width:0}
 .yl-customers .rec .bar>button{flex:0 0 auto;white-space:nowrap;align-self:flex-end}
 .yl-calendar .details .listhead{align-items:flex-start}
 .yl-calendar .details .listhead>.seg{flex:0 0 auto}
 .yl-calendar .details .listhead .tab{white-space:nowrap}
 .yl-owner .item>button[data-task]{flex-shrink:0;white-space:nowrap}
 .yl-owner .item>div{min-width:0;overflow-wrap:anywhere}
}
/* 26a: explicit local-test account selector, outside page navigation redraws. */
.yl-test-original-actor{display:none!important}
.yl-test-account-tools{margin-left:auto;display:flex;justify-content:flex-end;min-width:0}
.yl-test-account-box{display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:0;max-width:100%}
html.yl-local-test header .yl-test-account-box>.yl-test-account-label{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;color:#47614f}
.yl-test-account-label>span{flex:none;font-size:11px;font-weight:700;color:#516f42;background:#edf3e6;border:1px solid #d7e3ca;border-radius:5px;padding:3px 6px}
.yl-test-account-label>select{width:260px;max-width:100%;min-width:0;height:38px;padding:6px 28px 6px 10px;border:1px solid #a9c4b3;border-radius:8px;color:#174f3e;background:#fff;font:600 13px/1.5 system-ui,sans-serif;text-overflow:ellipsis}
.yl-test-account-label>select:focus-visible{outline:3px solid #b88831;outline-offset:2px}
.yl-test-account-label>select:disabled{opacity:.65;cursor:wait}
.yl-test-account-message{max-width:330px;white-space:normal;font:12px/1.5 system-ui,sans-serif;color:#84551b;text-align:right;overflow-wrap:anywhere}
.yl-test-account-message:empty{display:none}
.yl-test-account-box>button{font:12px/1.5 system-ui,sans-serif;border:1px solid #c8d6cb;background:#fff;border-radius:5px;padding:4px 8px}
.yl-test-fallback-header{background:#fff;border-bottom:1px solid #d9e4dc}
.yl-test-fallback-row{width:100%;max-width:var(--yl-shell,1280px);margin:auto;padding:12px var(--yl-gutter,24px);display:flex;align-items:center;justify-content:space-between;gap:16px;box-sizing:border-box}
.yl-test-fallback-row>a{font:800 18px/1.5 system-ui,sans-serif;color:#174f3e;text-decoration:none;white-space:nowrap}
.yl-test-login-note{margin:16px 0;color:#536e61;line-height:1.7}
html.yl-local-test .yl-login :is(#loginForm,#recovery){display:none}
@media(max-width:650px){
 html.yl-local-test header .brand{flex-shrink:0;white-space:nowrap}
 html.yl-local-test header :has(>.yl-test-account-box)>:is(.demo,.env,.tag.quiet,.badge,#environment){display:none}
 html.yl-local-test .yl-team .ctx,html.yl-local-test .yl-team .ctx select{min-width:0;max-width:100%}
 .yl-test-account-label{flex-direction:column;align-items:flex-end;gap:3px}
 .yl-test-account-label>select{width:205px;max-width:52vw;height:40px;font-size:12px}
 .yl-test-account-label>span{padding:1px 5px;font-size:10px}
 .yl-test-account-message{max-width:52vw;font-size:11px}
 .yl-test-fallback-row{gap:10px;padding:10px 14px}
}
