
/* Core: hidden state must win over all normal component display styles. */
@layer dc-visibility-guard{[hidden]:not([hidden="until-found"]){display:none!important}}
.unit-page-head{display:flex;justify-content:space-between;gap:16px;margin:10px 0}
.unit-page-actions{display:flex;align-items:center;gap:10px;margin-left:auto}
.unit-batch-table:not(.is-editing) .unit-code-input,.unit-batch-table:not(.is-editing) .unit-planned-column>div{visibility:hidden}
.app-layout>.client-main:only-child{margin:0!important;width:100%!important}
.mobile-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.mobile-actions .button{min-height:72px;display:flex;align-items:center;justify-content:center;font-size:18px}.mobile-only{display:none}.audit-drawer{position:fixed;inset:0 0 0 auto;width:min(520px,100%);background:#fff;z-index:1000;box-shadow:-8px 0 30px #13253f33;padding:20px;overflow:auto}.audit-backdrop{position:fixed;inset:0;background:#0005;z-index:999}@media(max-width:700px){button,.button,input,select{min-height:44px}.desktop-only{display:none!important}.mobile-only{display:block}.mobile-actions{grid-template-columns:1fr}.mobile-actions .button{min-height:64px}.mobile-sticky{position:sticky;bottom:0;background:#fff;padding:10px;box-shadow:0 -4px 16px #13253f1f;z-index:20}.receipt-card{border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:10px;background:#fff}.receipt-card strong{display:block;margin-bottom:5px}}
:root{--navy:#13253f;--navy2:#1d3555;--green:#6faf45;--gold:#f5b942;--line:#dce3e8;--muted:#657483;--bg:#f5f7fa;--entity-product-bg:#dceeff;--entity-product-fg:#185d91;--entity-supplier-bg:#ffe8cc;--entity-supplier-fg:#934f0b;--entity-store-bg:#e2f4e8;--entity-store-fg:#287a3b;--entity-category-bg:#efe4ff;--entity-category-fg:#6c3aa5;--entity-tag-bg:#fff0c7;--entity-tag-fg:#855b00;}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#17202a;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif}.app-layout{display:flex;min-height:100vh}.client-sidebar{width:245px;display:flex;flex-direction:column;background:var(--navy);color:#fff;padding:19px 14px;position:fixed;inset:0 auto 0 0;overflow:auto;border-right:3px solid var(--gold)}.client-brand{padding:0 10px 18px;border-bottom:1px solid #ffffff22}.client-brand strong{font-size:22px}.client-brand small{display:block;color:#a9d48d;margin-top:5px}.client-menu{margin-top:15px;flex:1}.client-menu a,.client-menu summary{display:block;color:#dfe9f3;text-decoration:none;padding:10px 12px;border-radius:8px;cursor:pointer}.client-menu .nav-icon{display:inline-block;width:22px;margin-right:4px;text-align:center;font-family:"Segoe UI Symbol","Noto Sans Symbols",sans-serif;font-weight:700}.client-menu a:hover,.client-menu summary:hover{background:var(--navy2);color:#fff}.client-main{width:calc(100% - 245px);max-width:none;margin:0 0 0 245px;padding:22px}.support-banner{background:#fff3cd;border:1px solid #f0d47b;border-radius:8px;padding:10px 14px;margin-bottom:14px;color:#725400}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:16px;box-shadow:0 3px 14px #13253f0b}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.stat{grid-column:span 3}.stat strong{font-size:28px;color:var(--navy)}h1{font-size:25px;margin:0 0 16px}h2{font-size:19px;margin:0 0 12px}.muted{color:var(--muted)}table{width:100%;border-collapse:collapse}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left}th{background:#edf3f8}.num{text-align:right}button,.button{display:inline-block;padding:9px 14px;border:0;border-radius:8px;background:var(--navy);color:#fff;text-decoration:none;cursor:pointer}.green,.dc-save-action{background:var(--green)}.secondary,.dc-disable-action{background:#687887}.danger,.dc-delete-action{background:#b42318}input,select,textarea{width:100%;padding:9px 10px;border:1px solid #bcc9d6;border-radius:7px}.field{display:flex;flex-direction:column;gap:5px}.toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:12px 0}.pill{display:inline-block;padding:3px 8px;border-radius:999px;background:#e8f5ee;color:#4f8f2f;font-size:12px}.entity-badge{display:inline-block;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:750;line-height:1.25;white-space:nowrap}.entity-product{background:var(--entity-product-bg)!important;color:var(--entity-product-fg)!important}.entity-supplier{background:var(--entity-supplier-bg)!important;color:var(--entity-supplier-fg)!important}.entity-store{background:var(--entity-store-bg)!important;color:var(--entity-store-fg)!important}.entity-category{background:var(--entity-category-bg)!important;color:var(--entity-category-fg)!important}.entity-tag{background:var(--entity-tag-bg)!important;color:var(--entity-tag-fg)!important}.scroll{overflow:auto}.empty{padding:26px;text-align:center;color:var(--muted)}.api-note{border-left:4px solid var(--green);padding:10px 13px;background:#f2f8ef}.item-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 42px;gap:8px;margin:7px 0}@media(max-width:850px){.client-sidebar{position:static;width:100%}.app-layout{display:block}.client-main{width:100%;margin:0;padding:14px}.stat{grid-column:span 6}.item-row{grid-template-columns:1fr 1fr}.item-row>*:nth-child(1){grid-column:1/-1}.grid>.field{grid-column:1/-1!important}}@media(max-width:520px){.stat{grid-column:1/-1}.client-main{padding:10px}.card{padding:14px}table{min-width:720px}}
dialog.card{position:fixed;top:48px;bottom:auto;margin:0 auto;max-height:calc(100vh - 96px);overflow:auto}
.support-banner{display:none!important}
.dc-toast-host{position:fixed;right:20px;top:20px;z-index:1400;display:grid;gap:8px}.dc-toast{max-width:420px;padding:12px 15px;border-radius:9px;background:#13253f;color:#fff;box-shadow:0 8px 24px #13253f44}.dc-toast.error{background:#b42318}.dc-confirm{width:min(520px,calc(100vw - 24px));border:0;border-radius:14px;padding:0;box-shadow:0 18px 60px #13253f55}.dc-confirm::backdrop{background:#13253f88}.dc-confirm-body{padding:22px}.dc-confirm-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}dialog.dc-dialog .dc-confirm-body,dialog.dc-dialog .dialog-body{padding:0!important}dialog.dc-dialog .dc-dialog-footer{margin-top:16px}.dc-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:0 0 16px}.dc-summary>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:0 3px 14px #13253f0b;min-width:0}.dc-summary span{display:block;color:var(--muted);margin-bottom:5px;font-size:14px}.dc-summary strong{display:block;font-size:23px;line-height:1.25;color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dc-summary small{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}@media(max-width:700px){.dc-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dc-summary>div{padding:12px 14px}.dc-summary strong{font-size:19px}}/* BR-UI-71200-002：共用合計數字卡 */.dc-tab-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:6px;border-radius:999px;background:#e07b00;color:#fff;font-size:12px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}:is([data-dc-selected="true"],[aria-current="page"])>.dc-tab-count{background:#fff;color:#c26a00}.reconciliation-earlier-range{margin:0 0 12px}/* BR-UI-71200-004：分頁旁的待處理數字 */dialog .dc-import-mode{display:inline-flex;margin:0 0 14px}.dc-import-steps{list-style:none;margin:0;padding:0;display:grid;gap:14px}.dc-import-steps>li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;align-items:start}.dc-import-step-no{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e7eef5;color:var(--navy);font-weight:800;font-variant-numeric:tabular-nums}.dc-import-step-body{display:grid;gap:8px;min-width:0;padding-top:3px}.dc-import-step-actions{display:flex;gap:8px;flex-wrap:wrap}.dc-import-skip{display:flex;align-items:center;gap:8px;font-weight:400}.dc-import-skip input{width:auto;min-height:0}/* BR-PRD-71202-002：商品匯入先選新增或修改，兩個步驟 */.dc-file{position:relative;display:flex;align-items:center;gap:10px;width:100%;min-width:0;min-height:36px;padding:3px 12px 3px 3px;border:1px solid #bcc9d6;border-radius:7px;background:#fff;box-sizing:border-box;cursor:pointer}html body .dc-file>input[type=file]:is(#dc-none,input){position:absolute!important;inset:0!important;width:100%!important;max-width:none!important;height:100%!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;opacity:0!important;cursor:pointer;z-index:1}.dc-file-button{flex:none;display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:6px;background:#687887;color:#fff;font-size:14px;font-weight:600;white-space:nowrap}.dc-file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-weight:400}.dc-file.dc-file-chosen .dc-file-name{color:#17202a}.dc-file:hover .dc-file-button{background:#56656f}.dc-file:focus-within{border-color:#2376bd;box-shadow:0 0 0 3px #2376bd22}@media (pointer:coarse),(max-width:700px){.dc-file{min-height:44px}.dc-file-button{height:36px}}/* BR-UI-71202-002：共用上傳欄位中文 */.dc-import-log{margin:16px 0 0;padding:12px 0 0;border-top:1px solid var(--line)}.dc-import-log h3{margin:0 0 8px;font-size:15px}.dc-import-log ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:220px;overflow:auto}.dc-import-log li{display:grid;gap:2px;font-size:13px;line-height:1.5}.dc-import-log-head{display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--muted)}.dc-import-log-file{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dc-import-log-result{color:#17202a}.dc-import-log li.is-blocked .dc-import-log-result{color:#b42318}.dc-import-log-empty{color:var(--muted);font-size:13px}/* BR-PRD-71202-003：匯入視窗「最近匯入」 */body .sidebar-utilities button#dcLogDownload.dc-download-action{background:transparent!important;color:inherit!important;font-size:inherit!important}/* BR-OPS-71202-001：左側「下載操作紀錄」跟問題幫手同樣式（放在共用樣式，不另外多一個檔） */html body dialog.dc-focus-quiet :is(button,a,summary):focus,html body dialog :is(button,a.button,summary):focus:not(:focus-visible){outline:none!important;box-shadow:none!important}/* BR-UI-71198-002：用滑鼠／手指打開視窗時不顯示焦點框線，只有用鍵盤（Tab）才顯示 */html body dialog.dc-dialog>.dc-dialog-header>button.dc-close-icon{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;max-height:30px!important;padding:0!important}.dc-navigation-loading{position:fixed;inset:0;width:100vw;height:100vh;z-index:1500;background:#f5f7fa;display:flex;align-items:center;justify-content:center;isolation:isolate}.dc-navigation-loading{display:none!important}.dc-spinner{display:inline-block;width:18px;height:18px;margin-right:9px;border:3px solid #dce3e8;border-top-color:#2376bd;border-radius:50%;animation:dc-spin .7s linear infinite;vertical-align:middle}@keyframes dc-spin{to{transform:rotate(360deg)}}
@media(max-width:700px){dialog.card{top:16px;max-height:calc(100vh - 32px);width:calc(100vw - 20px)!important}}

/* v70.121 mobile web core: same routes/data, mobile-first presentation for store operations. */
.dc-mobile-topbar{display:none}.dc-mobile-backdrop{display:none}
@media(max-width:850px){
 body.dc-mobile-web{padding-top:58px}
 body.dc-mobile-web button,body.dc-mobile-web .button{display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;line-height:1.2!important}
 body.dc-mobile-web .field,body.dc-mobile-web label,body.dc-mobile-web form,body.dc-mobile-web .toolbar>*{min-width:0}
 body.dc-mobile-web input:not([type=checkbox]):not([type=radio]),body.dc-mobile-web select,body.dc-mobile-web textarea,body.dc-mobile-web .dc-search-select{max-width:100%!important;min-width:0!important}
 body.dc-mobile-web input[type=search],body.dc-mobile-web input[type=text]{overflow:hidden;text-overflow:ellipsis}
 body.dc-mobile-web .app-layout{display:block;min-height:calc(100vh - 58px)}
 body.dc-mobile-web .client-main{width:100%!important;margin:0!important;padding:12px!important}
 body.dc-mobile-web .client-sidebar{display:flex!important;position:fixed!important;z-index:1300;left:0;top:0;bottom:0;width:min(82vw,310px)!important;height:100vh;padding:16px 12px!important;transform:translateX(-105%);transition:transform .2s ease;overflow-y:auto;box-shadow:10px 0 30px #13253f33}
 body.dc-mobile-web.dc-mobile-menu-open .client-sidebar{transform:translateX(0)}
 body.dc-mobile-web .dc-mobile-topbar{display:flex;position:fixed;z-index:1250;left:0;right:0;top:0;height:58px;align-items:center;gap:10px;padding:8px 12px;background:var(--navy);color:#fff;border-bottom:3px solid var(--gold)}
 .dc-mobile-menu-button{width:44px;min-width:44px;height:44px;min-height:44px;padding:0!important;background:#ffffff16!important;border:1px solid #ffffff33!important;font-size:22px;line-height:1}
 .dc-mobile-topbar-title{min-width:0;display:grid;line-height:1.2}.dc-mobile-topbar-title strong{font-size:16px}.dc-mobile-topbar-title small{font-size:11px;color:#c8d6e2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 body.dc-mobile-web .dc-mobile-backdrop{position:fixed;z-index:1290;inset:0;background:#13253f77}
 body.dc-mobile-web.dc-mobile-menu-open .dc-mobile-backdrop{display:block}
 body.dc-mobile-web .client-brand{padding-bottom:12px}
 body.dc-mobile-web .client-menu a,body.dc-mobile-web .client-menu summary{min-height:44px;display:flex;align-items:center}
 body.dc-mobile-web .client-menu details a{min-height:42px}
 body.dc-mobile-web #issueHelperButton{right:12px!important;bottom:12px!important;padding:11px 13px!important;font-size:13px}
}
@media(max-width:700px){
 body.dc-mobile-web h1{font-size:22px;margin-bottom:12px}
 body.dc-mobile-web h2{font-size:18px}
 body.dc-mobile-store-flow .card{padding:12px;border-radius:10px;margin-bottom:12px}
 body.dc-mobile-store-flow .grid{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
 body.dc-mobile-store-flow .grid>*{grid-column:1/-1!important;width:100%!important;max-width:none!important}
 body.dc-mobile-store-flow .field,body.dc-mobile-store-flow label.field{width:100%!important;max-width:none!important}
 body.dc-mobile-store-flow input,body.dc-mobile-store-flow select,body.dc-mobile-store-flow textarea{font-size:16px;min-height:44px}
 body.dc-mobile-store-flow .toolbar{align-items:stretch;gap:8px}
 body.dc-mobile-store-flow .toolbar>button,body.dc-mobile-store-flow .toolbar>.button{min-height:44px}
 body.dc-mobile-store-flow .scroll{overflow:visible}
 body.dc-mobile-store-flow table.dc-mobile-card-table:not([data-dc-mobile-products]){min-width:0!important;border-collapse:separate;border-spacing:0 10px;background:transparent}
 body.dc-mobile-store-flow table.dc-mobile-card-table:not([data-dc-mobile-products]) thead{display:none}
 body.dc-mobile-store-flow table.dc-mobile-card-table:not([data-dc-mobile-products]) tbody{display:block}
 body.dc-mobile-store-flow table.dc-mobile-card-table:not([data-dc-mobile-products]) tbody tr{display:block;background:#fff;border:1px solid var(--line);border-radius:10px;padding:7px 10px;box-shadow:0 2px 8px #13253f0a;margin-bottom:10px}
 body.dc-mobile-store-flow table.dc-mobile-card-table:not([data-dc-mobile-products]):not(.dc-confirm-compact) tbody td{display:grid;grid-template-columns:minmax(92px,38%) 1fr;gap:10px;align-items:start;width:100%!important;padding:8px 2px!important;border-bottom:1px solid #edf1f4!important;text-align:left!important;white-space:normal!important}
 body.dc-mobile-store-flow table.dc-mobile-card-table:not([data-dc-mobile-products]):not(.dc-confirm-compact) tbody td:last-child{border-bottom:0!important}
 body.dc-mobile-store-flow table.dc-mobile-card-table:not([data-dc-mobile-products]):not(.dc-confirm-compact) tbody td::before{content:attr(data-dc-label);font-size:12px;font-weight:700;color:var(--muted);line-height:1.45}
 body.dc-mobile-store-flow table.dc-mobile-card-table:not([data-dc-mobile-products]):not(.dc-confirm-compact) tbody td[data-dc-label="" ]::before{display:none}
 body.dc-mobile-store-flow table.dc-mobile-card-table:not([data-dc-mobile-products]):not(.dc-confirm-compact) tbody td.num{text-align:left!important}
 body.dc-mobile-store-flow table.dc-mobile-card-table:not([data-dc-mobile-products]) tfoot{display:block;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px}
 body.dc-mobile-store-flow .item-row{grid-template-columns:1fr!important}
 body.dc-mobile-store-flow .item-row>*{grid-column:1!important;width:100%!important}
 body.dc-mobile-store-flow dialog.card{width:calc(100vw - 16px)!important;max-width:none!important;padding:12px!important}
 body.dc-mobile-store-flow .dc-report-title-row,body.dc-mobile-store-flow .inventory-page-head,body.dc-mobile-store-flow .receipt-page-actions{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:8px!important}
 body.dc-mobile-store-flow .dc-report-actions,body.dc-mobile-store-flow .filter-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;width:100%!important}
 body.dc-mobile-store-flow .dc-report-actions>.button,body.dc-mobile-store-flow .filter-actions>*{width:100%!important;text-align:center!important}
 body.dc-mobile-store-flow .dc-report-filter,body.dc-mobile-store-flow .adjustment-filter,body.dc-mobile-store-flow .transfer-filter{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;padding:12px!important}
 body.dc-mobile-store-flow .dc-report-filter>*,body.dc-mobile-store-flow .adjustment-filter>*,body.dc-mobile-store-flow .transfer-filter>*{grid-column:1!important;width:100%!important;max-width:none!important}
 body.dc-mobile-store-flow .dc-report-pagination{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;align-items:stretch!important}
 body.dc-mobile-store-flow .dc-report-pagination>div{display:flex!important;gap:8px!important;flex-wrap:wrap!important}
 body.dc-mobile-store-flow .dc-report-pagination .button{flex:1 1 120px!important;text-align:center!important}
 body.dc-mobile-store-flow .card.scroll{overflow:visible!important;padding:10px!important}
 body.dc-mobile-store-flow .toolbar{flex-wrap:wrap!important}
 body.dc-mobile-store-flow .toolbar>input,body.dc-mobile-store-flow .toolbar>select{flex:1 1 100%!important;max-width:none!important}

}
