/* Project identity; layout rules are reused from the documented reference. */
:root{--awo-font:Arial,"Microsoft JhengHei","Noto Sans CJK TC",sans-serif}
.brand-mark span{letter-spacing:-1px}.top-actions .language-picker{display:block}.language-picker{margin:0}.language-picker select{font:inherit;max-width:115px;border:1px solid #ccc;border-radius:4px;padding:5px;background:white}.auth-card .language-picker{margin:0 0 16px}.page-editor-header{margin-bottom:0}.grid-shell{min-height:0}.content:has(>.grid-shell){padding:0}.content:has(>.grid-shell)>.status-message{flex:0 0 auto;margin:0}.grid-shell .e-grid{display:flex;flex-direction:column}.grid-shell .e-gridcontent{flex:1;min-height:0;overflow:hidden}.grid-shell .e-gridcontent .e-content{height:100%!important}.grid-shell .e-pager{flex-shrink:0}.member-editor-form .form-card{padding-top:24px;padding-bottom:24px}.validation-summary-valid{display:none}.validation-summary-errors{padding:12px 24px}.dashboard-tile-link{gap:12px}.dashboard-tiles .dashboard-tile-title{font-size:20px;font-weight:700;color:var(--ink)}
@media(max-width:760px){.topbar .brand-mark.compact{padding-left:12px;max-width:100px}.topbar .brand-mark.compact span{font-size:24px}.top-actions .user-name{display:none}.top-actions{gap:6px}.language-picker select{max-width:94px;font-size:12px}.topbar .top-actions .dashboard-home-link{width:28px}.top-actions .link-button{font-size:12px;padding:4px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.site-footer{justify-content:center}}


.grid-shell>.e-grid{height:100%!important}

/* XINJIN logo palette: shared identity for every xalut page. */
:root{
 --xalut-green:#00583e;--xalut-green-dark:#003e2c;--xalut-gold:#c58d2a;
 --xalut-soft:#edf5f1;--awo:var(--xalut-green);--awo-dark:var(--xalut-green-dark);
 --ink:#1d2925;--muted:#59645e;--line:#e3e9e5;--awo-gray:#e3e9e5;--canvas:#fff;
 --color-sf-primary:var(--xalut-green);--color-sf-primary-dark:var(--xalut-green-dark);
 --color-sf-primary-darker:#002e21;--color-sf-primary-light:#b8d8ca;
 --color-sf-primary-lighter:var(--xalut-soft);--color-sf-brand-primary:var(--xalut-green);
 --color-sf-table-bg-color-selected:#e4f0e9;--color-sf-table-bg-color-hover:#f5f8f6;
 --color-sf-content-text-color:var(--ink);
}
body{background:#fff}
.brand-mark{gap:14px}
.brand-mark .xalut-logo{display:block;width:62px;height:68px;object-fit:contain;background:white}
.brand-mark span,.brand-mark.compact span{background:none;color:var(--xalut-green);padding:0;font-size:28px;font-weight:700;letter-spacing:-1px}
.topbar{border-bottom:1px solid var(--line)}
.top-actions{font-weight:500}
.dashboard-tiles>article{border:1px solid var(--line);border-top:3px solid var(--xalut-gold);box-shadow:none;background:#fff}
.dashboard-tiles .dashboard-tile-symbol{color:var(--xalut-green)}
.dashboard-tiles>article:has(a:hover){border-color:var(--xalut-gold);background:#fcfdfc}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.auth-card input:focus{outline:3px solid #00583e20;border-color:var(--xalut-green)}
input[type=checkbox],input[type=radio]{accent-color:var(--xalut-green)}
.e-grid .e-row:hover .e-rowcell{background:#f5f8f6!important}
.e-grid .e-rowcell.e-selectionbackground,.e-grid .e-row.e-selectionbackground .e-rowcell,.e-grid .e-row[aria-selected=true] .e-rowcell{background:#e4f0e9!important}
.password-toggle:hover{background:var(--xalut-soft)}
.auth-shell{background:#fff}
.auth-card{border:1px solid var(--line);border-top:3px solid var(--xalut-gold);box-shadow:0 12px 40px #173c2410}
.auth-card .brand-mark{gap:20px}
.auth-card .xalut-logo{width:80px;height:88px}
.auth-card .session-expired{display:flex;align-items:flex-start;gap:12px;margin:0 0 20px;padding:16px;background:#f0f6f2;border:1px solid #d6e4db;border-left:3px solid var(--xalut-green);border-radius:6px;color:var(--xalut-green);text-align:left}
.session-expired-icon{width:24px;height:24px;flex:0 0 24px}
.session-expired strong{display:block;font-size:15px;line-height:1.5}
.session-expired p{margin:4px 0 0;font-size:14px;line-height:1.5;color:var(--ink)}
.auth-shell footer{color:var(--muted)}
@media(max-width:760px){
 .topbar .brand-mark.compact{max-width:135px;gap:8px}
 .brand-mark .xalut-logo{width:43px;height:54px}
 .topbar .brand-mark.compact span{font-size:23px}
}


.auth-shell>.site-footer{bottom:0;letter-spacing:normal}.legal-text{white-space:pre-line;overflow-wrap:anywhere;line-height:1.6}.auth-shell main{max-height:calc(100dvh - 64px);overflow:auto}
.auth-shell{position:fixed;inset:var(--auth-viewport-top,0px) 0 auto;height:var(--auth-viewport-height,100dvh);min-height:0;grid-template-rows:minmax(0,1fr) 44px}
.auth-shell>main{align-self:center;justify-self:center;max-height:calc(var(--auth-viewport-height,100dvh) - 64px);margin:0;overflow-y:auto}
.auth-shell>.site-footer{position:absolute;bottom:0}

.content:has(>.legal-page){padding:0}.legal-page{width:100%;max-width:1100px;margin:0 auto;padding:28px clamp(16px,5vw,64px) 40px;overflow:auto;min-height:0}.legal-page h1{margin:0 0 20px;font-size:28px}.legal-page .legal-text{line-height:1.65}

#storageGrid .e-table{min-width:1100px}#unitGrid .e-table,#packageGrid .e-table,#groupGrid .e-table{min-width:650px}

.association-editor-tabs a{text-decoration:none;display:inline-block}

/* Shared tile pattern: identical dimensions and icon/title/description in every area. */
.dashboard-tiles{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-items:stretch}
.dashboard-tiles>article{height:100%;min-width:0}
.dashboard-tiles .dashboard-tile-link{display:grid;grid-template-rows:auto auto;align-content:start;gap:8px;height:100%;padding:14px 18px}
.dashboard-tiles .dashboard-tile-heading{display:flex;align-items:center;gap:10px;min-width:0}
.dashboard-tiles .dashboard-tile-symbol{display:flex;align-items:center;flex:0 0 28px;width:28px;height:28px}.dashboard-tiles .dashboard-tile-symbol svg{width:26px;height:26px}
.dashboard-tiles .dashboard-tile-title{margin:0;font-size:19px;line-height:1.2;overflow-wrap:anywhere}
.dashboard-tiles .dashboard-tile-hint{margin:0;color:var(--muted);font-size:14px;line-height:1.4;overflow-wrap:anywhere}
@media(max-width:1000px){.dashboard-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.dashboard-tiles{grid-template-columns:minmax(0,1fr)}}

.article-storage-panel{height:calc(100dvh - 220px);min-height:240px;flex:1;min-width:0}.article-storage-panel>.grid-shell{height:100%}.article-storage-panel[hidden],#editorForm[hidden]{display:none!important}

[data-batch-receipt][hidden],[data-batch-issue][hidden]{display:none!important}

.container-lines-panel{height:clamp(300px,48dvh,620px);min-height:300px;margin-top:16px}.container-lines-panel>.grid-shell{height:100%}

/* Article editor uses the same fixed toolbar/tab frame as profile and association editors. */
.content:has(> #articleTabs){display:flex;flex-direction:column;overflow:hidden;min-height:0}
.content:has(> #articleTabs)>:is(.member-editor-header,.association-editor-tabs,.status-message){flex:0 0 auto}
.content:has(> #articleTabs)>#editorForm{display:block;flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior-y:contain}
.content:has(> #articleTabs)>.article-storage-panel{flex:1 1 0;height:auto;min-height:0;overflow:hidden}

/* Detail editors keep toolbar and tabs fixed; dependent grids live in their own tabs. */
.content:has(> [data-detail-tabs]){display:flex;flex-direction:column;overflow:hidden;min-height:0}
.content:has(> [data-detail-tabs])>:is(.member-editor-header,.association-editor-tabs,.status-message){flex:0 0 auto}
.detail-tab-panel{flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior-y:contain}
.detail-tab-panel[hidden]{display:none!important}
.content>form.user-tab-form{display:flex;flex-direction:column;flex:1 1 0;min-height:0;max-width:none;gap:0;overflow:hidden}
.content>form.user-tab-form[hidden],#loginAreaFields[hidden]{display:none!important}
.user-tab-form>.validation-summary-errors{flex:0 0 auto}
.detail-tab-panel--grid{overflow:hidden;padding-top:12px}
.detail-tab-panel--grid>.container-lines-panel{height:100%;min-height:0;margin-top:0}
.container-lines-panel:has(>.data-quality-notice){display:flex;flex-direction:column}.container-lines-panel:has(>.data-quality-notice)>.data-quality-notice{flex:0 0 auto}.container-lines-panel:has(>.data-quality-notice)>.grid-shell{flex:1 1 auto;min-height:0}

/* Accounting statistics: selectors stay visible while the Syncfusion chart uses the remaining space. */
.statistics-chart-panel{display:flex;flex-direction:column;min-height:0;padding:14px 20px 18px;overflow-y:auto;overscroll-behavior-y:contain}
.statistics-tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 14px;flex:0 0 auto;margin-bottom:12px}
.statistics-tools--four{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.statistics-tools label{display:block;margin-bottom:6px;font-weight:700}
.statistics-tools .e-control-wrapper{width:100%!important}
.statistics-range-action{align-self:end}.statistics-range-action .e-btn{min-height:38px}
.statistics-data-warning{flex:0 0 auto;margin:0 0 12px;padding:10px 14px;border-left:4px solid var(--xalut-gold);background:#fff8e8;color:var(--ink);line-height:1.4}
.statistics-result-count{flex:0 0 auto;margin:0 0 8px;color:#59645f;font-size:.95rem}
.statistics-chart{flex:0 0 clamp(320px,48dvh,480px);min-height:320px;width:100%}
@media(max-width:760px){.statistics-chart-panel{padding:12px 10px 16px}.statistics-tools{grid-template-columns:1fr}.statistics-chart{flex-basis:360px;min-height:360px}}
.data-quality-notice {
  margin: 0.75rem 1.5rem 0;
  padding: 0.75rem 1rem;
  border-left: 4px solid #c49322;
  background: #fff8e6;
  color: #26332d;
}
#articleContainersPanel{display:flex;flex-direction:column}#articleContainersPanel>.validation{flex:0 0 auto}#articleContainersPanel>.grid-shell{flex:1;min-height:0;height:auto}

/* Page-wide status messages follow the editor/grid frame without form gutters. */
.content:has(> .member-editor-header) > .status-message {
 margin: 0;
 width: 100%;
 max-width: none;
 flex: 0 0 auto;
}

#recorderMore[hidden] { display: none !important; }

.stock-delivery-origins{max-height:110px;overflow:auto;white-space:normal}.stock-delivery-origins>div{display:flex;align-items:center;gap:3px;flex-wrap:wrap}.stock-delivery-origins .e-btn{padding:3px 6px}

.site-footer-version{color:var(--ink);font-size:12px;white-space:nowrap}
.site-footer nav{flex-wrap:wrap;justify-content:center;row-gap:2px}
.location-attribution{flex:0 0 auto;padding:4px 12px;font-size:11px;line-height:1.4;text-align:right;color:#56645c}
.location-attribution a{color:inherit}

.login-address-control{display:flex;align-items:center;gap:8px;min-width:0}
.login-address-control>.form-control-help{flex:1;min-width:0}
.login-address-map{display:grid;place-items:center;flex:0 0 32px;height:36px;color:var(--xalut-green)}
.login-address-map[aria-disabled="true"]{opacity:.4;cursor:default}
.login-address-map:focus-visible{outline:2px solid var(--xalut-green);outline-offset:2px;border-radius:3px}

.form-grid>.inventory-save-cell{justify-content:flex-end;align-items:flex-start}
.inventory-inline-save.e-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 24px;border-radius:6px;font-weight:600}
@media(max-width:760px){.inventory-inline-save.e-btn{width:100%;min-height:44px}}

.topbar .top-actions .time-header-link{display:grid;width:44px;height:44px;text-decoration:none;flex-shrink:0}

/* Immediate feedback during account location lookup and navigation. */
.account-action-spinner,.top-actions .account-action-spinner{display:inline-block;position:relative;width:22px;height:22px;margin-right:10px;vertical-align:middle}
.account-action-spinner:has(.e-spin-hide){display:none}
.account-action-spinner .e-spinner-pane .e-spinner-inner .e-path-arc{stroke:currentColor!important}
form[data-account-location][aria-busy="true"] button{cursor:wait}

.topbar .top-actions .time-header-link{display:flex;width:auto;gap:6px;text-decoration:none}.time-header-link small{font-size:11px;font-weight:400;line-height:1.2;max-width:80px}.top-actions .time-header-link svg{flex-shrink:0}

.topbar .top-actions .time-header-link[hidden]{display:none!important}
.topbar .top-actions .time-header-link[data-work-state="Working"]{color:#167344}
.topbar .top-actions .time-header-link[data-work-state="Paused"]{color:#806000;background:#fff3bf;border-radius:6px;padding:0 6px}
.topbar .top-actions .time-header-link[data-work-state="NotStarted"],.topbar .top-actions .time-header-link[data-work-state="Finished"]{color:#b42318}

/* Keep weekday and its time controls together in both user editors. */
.member-editor-form .form-grid.work-schedule-fields{grid-template-columns:120px minmax(0,210px) minmax(0,180px);column-gap:16px}
@media(max-width:600px){.member-editor-form .form-grid.work-schedule-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.work-schedule-fields>div:not(.full):nth-child(3n){grid-column:1/-1}}

.login-address-control{position:relative}
.address-suggestions{position:absolute;z-index:30;top:100%;left:40px;right:0;background:white;border:1px solid var(--line);box-shadow:0 4px 12px #0002;max-height:220px;overflow:auto}
.address-suggestions[hidden]{display:none}
.address-suggestions [role="option"]{padding:12px;cursor:pointer;min-height:44px}
.address-suggestions [aria-selected="true"],.address-suggestions [role="option"]:hover{background:#e5f0eb}
.address-suggestion-status:not(:empty){position:absolute;top:100%;left:40px;right:0;background:white;padding:8px;border:1px solid var(--line);z-index:30;font-size:13px}
.address-loading::after{content:"";position:absolute;right:42px;width:16px;height:16px;border:2px solid #ccc;border-top-color:var(--xalut-green);border-radius:50%;animation:address-spin .8s linear infinite}
@keyframes address-spin{to{transform:rotate(360deg)}}

/* Align address label with the input after the map icon. */
.member-editor-form .form-grid label[for="LoginArea_Address"]{margin-left:40px}

.statistics-source{position:relative;flex:0 0 auto;padding:12px 20px;margin:0;border-bottom:1px solid #dce3df;grid-template-columns:minmax(180px,440px)}
@media(max-width:760px){.statistics-source{padding:10px;grid-template-columns:minmax(0,1fr)}}
/* Central single-line editor control height (project-wide standard). */
.form-grid input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.form-grid select{height:44px;min-height:44px;box-sizing:border-box}
/* Shared async progress, matching the zeiten.org reference. */
.async-action-progress{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.async-action-progress[hidden]{display:none}
.async-action-progress [data-spinner]{position:relative;display:inline-block;width:44px;height:44px;flex:0 0 44px}

/* The VAT warning is persistent by request, outside the scrolling tab panels. */
.customer-vat-check{flex:0 0 auto;min-width:0}
.customer-vat-check>.async-action-progress{margin:0;padding:8px 24px}
.customer-vat-warning{display:flex;align-items:flex-start;gap:10px;background:#fff8db;color:#705400;border-left:4px solid #ba8700;padding:12px 20px;overflow-wrap:anywhere}
.customer-vat-warning[hidden]{display:none!important}
.customer-vat-warning>.e-icons{flex:0 0 auto;margin-top:2px}

.customer-vat-warning[data-state="positive"]{background:#eaf6ed;color:#175c35;border-left-color:#21834b}
.customer-vat-warning[data-state="negative"]{background:#fff0f0;color:#9c1515;border-left-color:#b42318}
.customer-vat-warning-content{min-width:0;flex:1}.customer-vat-address{white-space:pre-line;margin-top:6px}.customer-vat-address[hidden]{display:none}
.vat-comparison-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.vat-comparison-field{margin-bottom:14px}.vat-comparison-field label{display:block}.vat-comparison-field input{width:100%}
@media(max-width:700px){.vat-comparison-columns{grid-template-columns:1fr;gap:16px}}

.vat-field-status{display:inline-block;margin-inline-start:8px;font-size:18px;vertical-align:middle}.vat-field-status--match{color:#21834b}.vat-field-status--mismatch{color:#b42318}.vat-field-status--missing{color:#997300}
.offer-results{display:flex;flex-direction:column;max-height:180px;overflow:auto;gap:4px}.offer-results button{text-align:left;padding:8px;background:white;border:1px solid #d6dfda;color:inherit}.offer-results button:focus{outline:2px solid #155846}.offer-selection{display:flex;gap:8px;align-items:center}.offer-selection:not(:empty){background:#edf5f0;border-radius:16px;padding:4px 12px;width:fit-content;margin-bottom:8px}.offer-selection button{background:transparent;border:0}.offer-stock-search{padding:12px 24px;flex-shrink:0}.offer-stock-search input{width:100%;max-width:700px;min-height:44px}.offer-total{padding:10px 24px;text-align:right;flex-shrink:0;font-weight:bold}
#offerLinesPanel>.container-lines-panel{display:flex;flex-direction:column}#offerLinesPanel>.container-lines-panel>.grid-shell{flex:1 1 auto;min-height:0;height:auto}.offer-stock-search label{display:block;margin-bottom:4px}

#customerVatCompareAction[hidden]{display:none!important}
