/* Presentation only: retain controls, content and business sequence. */
:root{--yw-ink:#20382f;--yw-muted:#63766e;--yw-line:#dce5df;--yw-surface:#fff;--yw-back:#f3f6f4;--yw-green:#2d614b;--yw-side:220px}
body{margin:0;background:var(--yw-back);color:var(--yw-ink);font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif;font-size:15px;line-height:1.65}
#app{box-sizing:border-box;padding:20px;max-width:1680px;margin:auto}
#app *,#app *:before,#app *:after{box-sizing:border-box}
#app h1{font-size:26px;line-height:1.35;margin:0 0 12px;font-weight:650}
#app h2{font-size:21px;line-height:1.4;margin:0 0 12px}
#app h3{font-size:17px;line-height:1.5;margin:0 0 10px}
#app p{overflow-wrap:anywhere}
#app input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),#app textarea,#app select{font:inherit;max-width:100%;border-radius:8px;border-color:var(--yw-line);min-height:42px}
#app input[type=checkbox],#app input[type=radio]{width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;flex:0 0 18px;margin:0 8px 0 0;accent-color:var(--yw-green)}
#app textarea{min-height:100px;resize:vertical}
#app button{font:inherit;line-height:1.45;border-radius:8px;min-height:40px;white-space:normal;overflow-wrap:anywhere}
#app button:focus-visible,#app input:focus-visible,#app textarea:focus-visible,#app select:focus-visible{outline:2px solid var(--yw-green);outline-offset:2px}
#app .pr-shell,#app .nw-shell,#app .ov-shell,#app .rec-shell{min-width:0;align-items:start}
#app :is(.pr-sidebar,.nw-sidebar,.ov-sidebar,.rec-sidebar,.me-sidebar){width:var(--yw-side);min-width:var(--yw-side);max-width:var(--yw-side);padding:24px 16px;background:#fff;border-right:1px solid var(--yw-line)}
#app :is(.pr-sidebar,.nw-sidebar,.ov-sidebar,.rec-sidebar,.me-sidebar) nav{display:flex;flex-direction:column;gap:6px}
#app :is(.pr-sidebar,.nw-sidebar,.ov-sidebar,.rec-sidebar,.me-sidebar) nav :is(button,a){width:100%;min-height:44px;padding:10px 12px;margin:0;text-align:left}
#app :is(.pr-main,.nw-main,.ov-main,.rec-main,.me-main){min-width:0;padding:28px;overflow-wrap:anywhere}
#app .yw-choice-toggle{min-height:44px;padding:10px 36px 10px 12px}
#app .yw-choice-tools{display:flex;gap:8px;padding:0 0 8px}
#app .yw-choice-tools button{padding:6px 12px;min-height:34px}
#app .wm-card,#app .wm-module{border-radius:10px;padding:18px;margin:12px 0;background:#fff}
#app .wm-insert{font-size:12px;min-height:28px}
#app .wm-help{font-size:13px;color:var(--yw-muted);margin:6px 0}
#app table{font-size:14px;width:100%;border-collapse:separate;border-spacing:0}
#app th,#app td{padding:14px 16px;vertical-align:middle;overflow-wrap:anywhere}
#app .yw-return-tools{gap:8px;margin-bottom:16px}
#app .yw-preview-shell{padding:24px;background:var(--yw-back)}
#app .yw-preview-banner{font-size:14px;padding:12px 16px;border-radius:8px}
#app .wm-media{max-width:100%;height:auto}
@media(max-width:760px){#app{padding:10px}#app h1{font-size:23px}#app h2{font-size:19px}#app :is(.pr-sidebar,.nw-sidebar,.ov-sidebar,.rec-sidebar,.me-sidebar){width:100%;min-width:0;max-width:none;border-right:0;border-bottom:1px solid var(--yw-line);padding:14px}#app :is(.pr-sidebar,.nw-sidebar,.ov-sidebar,.rec-sidebar,.me-sidebar) nav{flex-direction:row;flex-wrap:wrap;gap:4px}#app :is(.pr-sidebar,.nw-sidebar,.ov-sidebar,.rec-sidebar,.me-sidebar) nav :is(button,a){width:auto;font-size:13px;padding:8px}#app :is(.pr-main,.nw-main,.ov-main,.rec-main,.me-main){padding:16px}#app table{display:block;overflow-x:auto}#app .yw-preview-shell{padding:14px}#app .wm-card,#app .wm-module{padding:14px}#app input,#app textarea,#app select{min-width:0}#app .pr-shell,#app .nw-shell,#app .ov-shell,#app .rec-shell{grid-template-columns:minmax(0,1fr)}}

/* All existing admin shells share a direct aside; preserve their DOM and routes. */
#app > div{font-family:inherit}
#app [class]:has(>aside){display:grid;grid-template-columns:var(--yw-side) minmax(0,1fr);align-items:stretch;min-width:0}
#app [class]>aside{box-sizing:border-box;width:var(--yw-side);min-width:var(--yw-side);max-width:var(--yw-side);padding:24px 16px;background:#fff;border-right:1px solid var(--yw-line)}
#app [class]>aside nav{display:flex;flex-direction:column;gap:6px}
#app [class]>aside nav :is(a,button){box-sizing:border-box;width:100%;min-height:44px;padding:10px 12px;margin:0;text-align:left;font-size:15px;line-height:24px}
#app [class]:has(>aside)>main{min-width:0;padding:28px}
@media(max-width:760px){#app [class]:has(>aside){grid-template-columns:minmax(0,1fr)}#app [class]>aside{width:100%;max-width:none;min-width:0;padding:14px;border-right:0;border-bottom:1px solid var(--yw-line)}#app [class]>aside nav{flex-direction:row;flex-wrap:wrap}#app [class]>aside nav :is(a,button){width:auto;font-size:13px;line-height:20px;padding:8px}#app [class]:has(>aside)>main{padding:16px}}

/* Match the existing shell selector so its older column width cannot overlap content. */
#app > :is(#affairs-home-prototype,#affairs-work-management,#affairs-records,#affairs-people-review,#affairs-sections,#affairs-export-review,#affairs-import-center-review) > :is(.ag-shell,.am-shell,.ar-shell,.pr-shell,.sc-shell,.ex-shell,.ic-shell){grid-template-columns:var(--yw-side) minmax(0,1fr)}
@media(max-width:760px){#app > :is(#affairs-home-prototype,#affairs-work-management,#affairs-records,#affairs-people-review,#affairs-sections,#affairs-export-review,#affairs-import-center-review) > :is(.ag-shell,.am-shell,.ar-shell,.pr-shell,.sc-shell,.ex-shell,.ic-shell){grid-template-columns:minmax(0,1fr)}}

/* work-management-filter-position-only: no changes outside this filter row. */
#app #affairs-work-management .am-toolbar>label:has(>input[data-name-filter]){flex-direction:column;align-items:stretch}
#app #affairs-work-management .am-toolbar>label>input[data-name-filter]{margin:6px 0;min-height:44px}
#app #affairs-work-management .am-toolbar .yw-choice-panel{position:absolute;top:100%;left:0;right:0;z-index:30;box-shadow:0 6px 18px rgb(32 56 47 / 14%)}

/* work-list-entry-presentation-only: reuse existing action handlers. */
#app #affairs-work-management .wm-list-work{display:grid;grid-template-columns:minmax(0,1fr) 64px;align-items:center;gap:12px 14px;min-width:0}
#app #affairs-work-management .wm-list-code{display:flex;flex-direction:column;align-items:center;gap:4px}
#app #affairs-work-management .wm-list-qr{display:block;width:44.8px;height:44.8px;min-height:44.8px;padding:0;border:0;border-radius:0;background:transparent;color:#17241e}
#app #affairs-work-management .wm-list-qr svg{display:block;width:44.8px;height:44.8px}
#app #affairs-work-management .wm-list-state{grid-column:1 / -1;display:flex;align-items:center;gap:10px}
#app #affairs-work-management .wm-list-state .wm-work-state{margin:0}
#app #affairs-work-management .wm-list-switch{position:relative;flex:0 0 38px;width:38px;height:22px;min-height:22px;padding:0;border:0;border-radius:12px;background:#bec6c1}
#app #affairs-work-management .wm-list-switch>span{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff}
#app #affairs-work-management .wm-list-switch[aria-checked=true]{background:var(--yw-green)}
#app #affairs-work-management .wm-list-switch[aria-checked=true]>span{left:19px}
#app #affairs-work-management .wm-list-switch:disabled{opacity:.5}
#app #affairs-work-management .wm-list-actions{display:grid;grid-template-columns:max-content max-content max-content;justify-content:start;gap:12px 18px}
#app #affairs-work-management .wm-list-delete{grid-column:auto;color:#a83232}

/* Center the whole cycle column with its existing header. */
#app #affairs-work-management .am-columns>span:nth-child(2),#app #affairs-work-management .am-cycle{text-align:center}

/* Unified phone-sized scan previews; management preview containers only. */
#app :is(
 .yw-preview-shell > [data-preview-content],
 :is(#affairs-create-work,#affairs-creation-entry) [data-wm-preview-host]:not(:empty),
 :is(#affairs-create-work,#affairs-creation-entry) [data-ce-scan-body]:not(:empty),
 :is(#affairs-create-work,#affairs-creation-entry) [data-normal-preview-content]:not(:empty),
 :is(#affairs-create-work,#affairs-creation-entry) #affairs-workflow-builder [data-preview]:not([hidden]),
 :is(#affairs-create-work,#affairs-creation-entry) #affairs-repair-settings .rs-preview,
 :is(#affairs-create-work,#affairs-creation-entry) :is([data-intake-view],[data-request-view]):has([data-view="preview"][aria-pressed="true"]) [data-content],
 :is(#affairs-create-work,#affairs-creation-entry) [data-reservation-view]:has(:is([data-view="booking"],[data-view="feedback"])[aria-pressed="true"]) [data-content]
):not([data-ce-scan-body] *,[data-wm-preview-host] *,[data-normal-preview-content] *) {
 box-sizing:border-box;
 width:min(100%,390px);
 max-width:390px;
 min-width:0;
 height:auto;
 min-height:0;
 aspect-ratio:390 / 844;
 overflow:auto;
 margin:16px auto;
 border:1px solid #dce3db;
 border-radius:16px;
 background:var(--yw-bg,#f5f6f3);
 overscroll-behavior:contain;
}
#app :is(
 .yw-preview-shell > [data-preview-content],
 :is(#affairs-create-work,#affairs-creation-entry) [data-wm-preview-host]:not(:empty),
 :is(#affairs-create-work,#affairs-creation-entry) [data-ce-scan-body]:not(:empty),
 :is(#affairs-create-work,#affairs-creation-entry) [data-normal-preview-content]:not(:empty),
 :is(#affairs-create-work,#affairs-creation-entry) #affairs-workflow-builder [data-preview]:not([hidden]),
 :is(#affairs-create-work,#affairs-creation-entry) #affairs-repair-settings .rs-preview,
 :is(#affairs-create-work,#affairs-creation-entry) :is([data-intake-view],[data-request-view]):has([data-view="preview"][aria-pressed="true"]) [data-content],
 :is(#affairs-create-work,#affairs-creation-entry) [data-reservation-view]:has(:is([data-view="booking"],[data-view="feedback"])[aria-pressed="true"]) [data-content]
):not([data-ce-scan-body] *,[data-wm-preview-host] *,[data-normal-preview-content] *) > * {box-sizing:border-box;min-width:0;max-width:100%;}

/* Scan-preview viewport only; existing management layout is unchanged. */
[data-preview-content]:has(>iframe[data-scan-preview-frame]),[data-wm-preview-host]:has(>iframe[data-scan-preview-frame]){box-sizing:border-box;width:min(100%,390px);max-width:390px;aspect-ratio:390/844;height:auto;overflow:hidden;margin:16px auto;}

[data-preview-content]:has(>[data-scan-preview-stages]){aspect-ratio:auto;height:auto;overflow:visible;}

/* QR export controls only. */
#affairs-work-management .am-columns{position:relative;padding-right:130px}
#affairs-work-management .am-columns .wm-export-qr{position:absolute;right:12px;top:50%;transform:translateY(-50%);font:inherit;padding:6px 10px;white-space:nowrap}
#affairs-people-review .pr-qr-export{display:flex;justify-content:flex-end;margin:-8px 0 12px}
@media(max-width:670px){#affairs-work-management .am-columns:has(.wm-export-qr){display:block;min-height:44px}#affairs-work-management .am-columns:has(.wm-export-qr)>span{display:none}}

/* Work-list columns and copy action only. */
@media(min-width:671px){
#app #affairs-work-management .am-columns,#app #affairs-work-management .am-row{grid-template-columns:minmax(230px,1fr) 90px 130px 304px;gap:12px;padding:13px 18px}
#app #affairs-work-management .am-columns>span:nth-child(4){text-align:left}
#app #affairs-work-management .wm-list-work{align-items:start}
}
#app #affairs-work-management .wm-list-actions{grid-template-columns:repeat(4,max-content);gap:12px 16px}
@media(max-width:1100px) and (min-width:671px){#app #affairs-work-management .am-columns,#app #affairs-work-management .am-row{grid-template-columns:minmax(160px,1fr) 65px 90px 250px;gap:10px;padding:13px 12px}#app #affairs-work-management .wm-list-actions{gap:12px 9px}}
@media(max-width:670px){#app #affairs-work-management .wm-list-work{align-items:start}#app #affairs-work-management .wm-list-actions{display:flex;flex-wrap:wrap;gap:12px 18px}}

#app #affairs-work-management .wm-list-actions{justify-content:space-between}
