:root{--bg:#f8f6f3;--sidebar:#f3eeea;--panel:#fff;--line:#ebe7e3;--text:#3f3a38;--muted:#8d8580;--accent:#ca7c82;--accent-soft:#f3e3e2;--accent-dark:#ad6269;--green:#4f9c78;--danger:#c96066;--shadow:0 5px 20px rgba(67,54,48,.035);font-family:Inter,"Noto Sans TC","Microsoft JhengHei",system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none}
:root.dark{--bg:#171515;--sidebar:#211d1c;--panel:#272322;--line:#3a3432;--text:#f1ece9;--muted:#afa6a1;--accent-soft:#422e30;--shadow:0 10px 28px rgba(0,0,0,.24)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg)}body{min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}button{touch-action:manipulation}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:middle;flex:0 0 auto}.boot{padding:48px;color:var(--muted);text-align:center}
.app{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--sidebar);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:0 8px;overflow-y:auto;z-index:8}.brand{height:56px;display:flex;align-items:center;gap:12px;padding:0 20px;margin-bottom:7px}.brand-mark{width:34px;height:34px;border-radius:11px;background:linear-gradient(145deg,#493d42,#7e666d);color:#fff;display:grid;place-items:center;font-size:18px;box-shadow:0 5px 12px rgba(62,46,51,.14)}.brand h1{font-size:16px;margin:0;letter-spacing:.01em}.brand small{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.15em}.brand.large{height:auto;padding:0;margin:0 0 26px}.brand.large .brand-mark{width:50px;height:50px;font-size:23px}.brand.large h1{font-size:24px}.sidebar nav{display:flex;flex-direction:column;gap:3px}.nav-item,.nav-group-btn,.nav-sub{width:100%;border:0;background:transparent;color:#625b57;display:flex;align-items:center;gap:12px;border-radius:6px;cursor:pointer;text-align:left;transition:.16s}.dark .nav-item,.dark .nav-group-btn,.dark .nav-sub{color:var(--text)}.nav-item,.nav-group-btn{min-height:43px;padding:0 12px;font-size:14px}.nav-item:hover,.nav-group-btn:hover,.nav-item.active,.nav-group.open>.nav-group-btn{background:var(--accent-soft);color:var(--accent-dark)}.nav-item.active{font-weight:600}.nav-group{border-left:3px solid transparent}.nav-group.open{border-left-color:var(--accent)}.nav-group-btn .group-chevron{margin-left:auto;width:15px;height:15px;transition:.18s}.nav-group.expanded .group-chevron,.nav-group.open .group-chevron{transform:rotate(180deg)}.nav-children{display:none;padding:2px 0 4px 14px}.nav-group.expanded .nav-children,.nav-group.open .nav-children{display:block}.nav-sub{height:40px;padding:0 12px;font-size:13px}.nav-sub .icon{width:15px;height:15px}.nav-sub:hover,.nav-sub.active{background:rgba(202,124,130,.12);color:var(--accent-dark)}.disclaimer-link{margin-top:auto;margin-bottom:9px;border-top:1px solid var(--line);border-radius:0;padding-top:10px}
.main{min-width:0}.topbar{height:56px;background:rgba(255,255,255,.87);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 18px 0 16px;position:sticky;top:0;z-index:7;backdrop-filter:blur(12px)}.dark .topbar{background:rgba(39,35,34,.9)}.top-title{font-size:13px;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:4px;position:relative}.icon-btn{width:36px;height:36px;border:0;background:transparent;border-radius:8px;display:grid;place-items:center;cursor:pointer;color:#655e59}.icon-btn:hover{background:var(--accent-soft);color:var(--accent-dark)}.icon-btn .icon{width:17px}.user-btn{height:36px;border:0;background:transparent;padding:0 8px;display:flex;align-items:center;gap:6px;border-radius:8px;cursor:pointer}.user-btn:hover{background:var(--accent-soft)}.user-btn .icon{width:16px}.user-pop{position:absolute;right:0;top:43px;width:150px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(48,38,35,.13);padding:8px;display:none}.user-pop.show{display:block}.user-pop div{padding:8px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line)}.user-pop button{width:100%;border:0;background:transparent;padding:9px;text-align:left;cursor:pointer;color:var(--danger)}
.content{padding:18px 16px 38px;max-width:1500px;margin:0 auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px;min-height:42px}.page-head>div:first-child{min-width:160px}.page-head h2{font-size:21px;margin:0;font-weight:700;letter-spacing:.01em}.page-head p{display:none;margin:4px 0 0;color:var(--muted);font-size:12px}.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.quick{display:flex;border:1px solid var(--line);border-radius:5px;overflow:hidden}.quick-btn{height:34px;border:1px solid var(--line);background:var(--panel);padding:0 13px;cursor:pointer;color:#69615d}.quick .quick-btn{border:0;border-right:1px solid var(--line);border-radius:0}.quick .quick-btn:last-child{border-right:0}.quick-btn.active,.quick-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.date{width:135px}.date-arrow{color:#b3aca7}
.btn{height:35px;border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:0 13px;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;color:#645d59;white-space:nowrap;transition:.15s}.btn:hover{border-color:#d1a0a3;color:var(--accent-dark)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-dark)}.btn.danger{background:#fff;color:var(--danger);border-color:#e6bfc2}.dark .btn.danger{background:transparent}.btn.small{height:29px;padding:0 9px;font-size:12px}.btn.current{border-color:var(--accent);color:var(--accent)}.btn.active{background:var(--accent-soft);border-color:#d9a6aa;color:var(--accent-dark)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn .icon{width:15px}.wide{width:100%}
input,select,textarea{border:1px solid var(--line);background:var(--panel);border-radius:6px;outline:none;transition:.15s}input,select{height:35px;padding:0 11px}textarea{padding:10px;resize:vertical;line-height:1.6}input:focus,select:focus,textarea:focus{border-color:#d39a9e;box-shadow:0 0 0 2px rgba(202,124,130,.09)}input::placeholder,textarea::placeholder{color:#b6afaa}select{min-width:112px}.filterbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filterbar input,.filterbar select{min-width:150px}.filterbar .grow{width:220px}.filterbar .date{min-width:135px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:7px;box-shadow:var(--shadow);overflow:hidden}.bulk-actions{min-height:42px;display:flex;align-items:center;gap:8px;margin:1px 0 8px;color:var(--muted);font-size:12px}
.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;min-width:850px;background:var(--panel)}th,td{height:51px;padding:9px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:13px;white-space:nowrap;max-width:270px;overflow:hidden;text-overflow:ellipsis}th{height:49px;background:rgba(247,244,241,.85);font-weight:600;color:#625b57;position:sticky;top:0;z-index:1}.dark th{background:#2e2927;color:var(--text)}tbody tr:hover td{background:rgba(202,124,130,.035)}tbody tr:last-child td{border-bottom:0}td strong{font-weight:600}.tag,.badge{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border:1px solid var(--line);border-radius:999px;font-size:11px;background:#faf8f6}.dark .tag,.dark .badge{background:#302b29}.badge.yes{background:#edf7f1;color:#39765b;border-color:#d5ebdf}.badge.no{color:#8b827d}.pager-wrap{padding:12px;border-top:1px solid var(--line)}.pager{display:flex;align-items:center;justify-content:flex-end;gap:7px;color:var(--muted);font-size:12px}.pager select{min-width:90px;height:30px}.empty{min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#bbb3ae;font-size:13px}.empty-icon{width:48px;height:48px;border:2px solid #e4ddda;border-radius:12px;display:grid;place-items:center;color:#d0c7c2}.empty-icon .icon{width:25px}.loading{padding:50px;text-align:center;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.stat-card{height:92px;background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:15px 17px;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:space-between}.stat-card:nth-child(n+3){height:84px}.stat-card span{font-size:13px;color:#716965}.stat-card strong{font-size:23px;font-weight:500}.stat-card:nth-child(n+3) strong{font-size:17px;font-weight:600}
.modal-backdrop{position:fixed;inset:0;background:rgba(39,30,29,.38);display:grid;place-items:center;padding:20px;z-index:100}.modal{width:min(560px,100%);max-height:92vh;background:var(--panel);border-radius:10px;box-shadow:0 22px 70px rgba(32,24,23,.28);overflow:hidden;display:flex;flex-direction:column}.modal-head{height:56px;padding:0 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modal-head h3{margin:0;font-size:17px}.modal-form{display:flex;min-height:0;flex-direction:column}.modal-body{padding:18px;overflow:auto}.modal-foot{border-top:1px solid var(--line);padding:12px 18px;display:flex;justify-content:flex-end;gap:8px}.modal-large{min-height:300px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field{display:grid;gap:6px;font-size:12px;color:var(--muted)}.field input,.field select{width:100%;color:var(--text)}.form-section{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.form-section h4{margin:0 0 11px;font-size:13px}.check-row{display:flex;gap:14px;flex-wrap:wrap}.check{display:inline-flex;align-items:center;gap:7px;font-size:13px}.check input{width:16px;height:16px}.modal hr{border:0;border-top:1px solid var(--line);margin:18px 0}.modal h4{font-size:14px}.help{font-size:12px;color:var(--muted);line-height:1.6}.help code{background:var(--accent-soft);padding:2px 5px;border-radius:4px}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 0,#fff 0,var(--bg) 65%)}.dark .login-shell{background:var(--bg)}.login-card{width:min(410px,100%);background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:34px;box-shadow:0 22px 60px rgba(65,49,45,.1)}.login-card .field{margin:14px 0}.login-card .btn{margin-top:9px}.error{background:#fff0f1;border:1px solid #efd1d3;color:#a84d54;padding:10px 12px;border-radius:6px;margin-top:12px;font-size:13px}
.upload-box{position:relative;min-height:155px;border:1px dashed #d9b8ba;background:rgba(202,124,130,.035);border-radius:8px;display:grid;place-items:center;text-align:center;padding:25px;color:var(--muted)}.upload-box input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-title{font-size:16px;color:var(--text);display:flex;align-items:center;gap:8px;justify-content:center}.import-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:20px;max-width:760px}.import-card>.field{margin:15px 0}.preview{margin-bottom:12px}.notice{padding:10px 12px;border-radius:6px;background:#f8f1e8;color:#8b6b3f;font-size:12px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.setting-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:17px;position:relative}.setting-card.wide{grid-column:1/-1}.setting-card h3{font-size:15px;margin:0 0 7px}.setting-card p{font-size:12px;color:var(--muted);margin:0 0 14px;line-height:1.6}.setting-card>.btn{margin-top:14px}.switch-line{position:absolute;right:17px;top:17px}.switch-line input{display:none}.switch{display:inline-block;width:34px;height:19px;background:#d6cfca;border-radius:999px;position:relative;cursor:pointer}.switch:after{content:"";position:absolute;width:15px;height:15px;border-radius:50%;background:#fff;left:2px;top:2px;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:.16s}.switch-line input:checked+.switch{background:var(--accent)}.switch-line input:checked+.switch:after{left:17px}.ip-row{display:flex;gap:8px}.ip-row input{flex:1}.chip-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.chip{display:inline-flex;gap:6px;align-items:center;background:var(--accent-soft);color:var(--accent-dark);padding:5px 8px;border-radius:999px;font-size:12px}.chip button{border:0;background:none;color:inherit;cursor:pointer}.muted{color:var(--muted);font-size:12px}.danger-text{color:var(--danger)!important}.disclaimer{padding:26px;line-height:1.8}.disclaimer h3{margin-top:0}.toast{position:fixed;right:20px;top:72px;background:#31302e;color:#fff;padding:11px 16px;border-radius:7px;box-shadow:0 12px 28px rgba(0,0,0,.18);z-index:200;font-size:13px;animation:toastIn .2s}.toast.error{background:#a94c53}@keyframes toastIn{from{transform:translateY(-6px);opacity:0}to{transform:none;opacity:1}}
@media(max-width:1000px){.app{grid-template-columns:76px minmax(0,1fr)}.sidebar{padding:0 7px}.brand{padding:0 12px}.brand>div:last-child,.nav-item span,.nav-group-btn span,.nav-sub span,.disclaimer-link span{display:none}.nav-item,.nav-group-btn{justify-content:center}.nav-group-btn .group-chevron{display:none}.nav-children{position:absolute;left:72px;margin-top:-42px;width:165px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px;box-shadow:0 14px 28px rgba(0,0,0,.12)}.nav-group:not(.expanded):not(.open) .nav-children{display:none}.nav-sub span{display:block}.cards{grid-template-columns:1fr 1fr}.filterbar input,.filterbar select{min-width:130px}}
@media(max-width:680px){.app{display:block}.sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;height:58px;display:flex;flex-direction:row;overflow-x:auto;border-right:0;border-top:1px solid var(--line);z-index:20}.sidebar .brand,.sidebar .nav-group,.sidebar .disclaimer-link{display:none}.sidebar nav{display:flex;flex-direction:row;width:max-content}.sidebar .nav-item{width:58px;height:56px;padding:0;justify-content:center}.main{padding-bottom:58px}.topbar{padding:0 10px}.content{padding:14px 10px 28px}.page-head{align-items:flex-start;flex-direction:column}.page-actions{width:100%;justify-content:flex-start}.filterbar>*{flex:1;min-width:130px}.cards,.settings-grid{grid-template-columns:1fr}.setting-card.wide{grid-column:auto}.form-grid{grid-template-columns:1fr}.modal-backdrop{padding:8px}.modal{max-height:96vh}.stat-card{height:84px}}

/* trash parity v3 */
.trash-page-head{height:42px;display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.trash-page-head h2{font-size:21px;margin:0}
.trash-delete-all{color:#b8b0ab}
.trash-delete-all:not(:disabled){color:var(--danger)}
.trash-filterbar{display:flex;align-items:center;gap:7px;margin-bottom:14px;min-width:0}
.trash-filterbar>input:not(.date){width:132px}
.trash-filterbar>select{width:174px;min-width:0}
.trash-filterbar .date{width:130px;min-width:120px}
.trash-quick{display:flex;border:1px solid var(--line);border-radius:5px;overflow:hidden;flex:none}
.trash-quick .quick-btn{border:0;border-right:1px solid var(--line);border-radius:0;height:35px;padding:0 10px}
.trash-quick .quick-btn:last-child{border-right:0}
.trash-column-control{position:relative;margin-left:auto}
.trash-column-pop{display:none;position:absolute;right:0;top:41px;width:185px;padding:9px;background:var(--panel);border:1px solid var(--line);border-radius:7px;box-shadow:0 14px 32px rgba(44,33,30,.16);z-index:15}
.trash-column-pop.show{display:grid}
.trash-column-pop label{display:flex;align-items:center;gap:8px;padding:7px 5px;font-size:12px}
.trash-column-pop input{width:15px;height:15px}
.trash-selection-actions{display:none;align-items:center;justify-content:flex-end;gap:8px;margin:0 0 8px;color:var(--muted);font-size:12px}
.trash-selection-actions.show{display:flex}
.trash-panel{min-height:520px}
.trash-panel .table-wrap{min-height:455px}
.trash-panel table{min-width:960px}
.trash-panel .empty-table-row td{height:405px;padding:0}
.trash-panel .empty-table-row:hover td{background:transparent}
.trash-panel .empty{min-height:405px}
.trash-panel .pager-wrap{min-height:55px}
.check-column{width:42px;text-align:center}
.check-column input{width:15px;height:15px}
@media(max-width:1450px){.trash-filterbar{flex-wrap:wrap}.trash-column-control{margin-left:0}}
/* trash parity v3.1 */
.trash-delete-all{height:34px;display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:#aaa29d;padding:0 2px;font-size:13px;cursor:pointer}
.trash-delete-all .icon{width:17px;height:17px}
.trash-delete-all:not(:disabled){color:#a77b7d}
.trash-delete-all:disabled{cursor:default;opacity:.48}
.trash-filterbar{row-gap:8px;margin-bottom:0}
.trash-date-range{height:35px;display:flex;align-items:center;border:1px solid var(--line);background:var(--panel);border-radius:6px;overflow:hidden}
.trash-date-range .date{width:116px;min-width:116px;border:0;border-radius:0;padding:0 9px}
.trash-date-range .date:focus{box-shadow:none}
.trash-date-range .date-arrow{padding:0 2px}
.trash-table-tools{height:55px;display:flex;align-items:center;justify-content:flex-end}
.trash-column-control{margin-left:0}
.trash-columns-btn{height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 10px}
.trash-columns-btn .icon{width:16px;height:16px}
.trash-column-pop{top:38px}
.trash-panel{min-height:0;border:0;box-shadow:none;background:transparent}
.trash-panel .table-wrap{min-height:260px;background:var(--panel)}
.trash-panel .empty-table-row td{height:210px}
.trash-panel .empty{min-height:210px}
.trash-panel .pager-wrap{min-height:52px;border-top:0;padding:12px 0}
.trash-panel table{border-top:1px solid var(--line)}

/* global shell parity v4 */
.brand{gap:14px;padding:0 20px;margin-bottom:7px}
.brand-symbol{width:38px;height:38px;display:grid;place-items:center;color:#493c40;flex:0 0 auto}
.brand-cat{width:38px;height:38px;overflow:visible}
.brand-cat .cat-body{fill:currentColor;stroke:none}
.brand-cat .cat-tail,.brand-cat .cat-paw{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.brand h1{font-size:16px;font-weight:700;white-space:nowrap}
.brand.large{justify-content:center;gap:12px}
.brand.large .brand-symbol{width:48px;height:48px}
.brand.large .brand-cat{width:48px;height:48px}
.brand.large h1{font-size:24px}
.sidebar-toggle{position:fixed;left:208px;top:50%;transform:translateY(-50%) rotate(90deg);width:25px;height:25px;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:#aaa29d;display:grid;place-items:center;cursor:pointer;z-index:20;box-shadow:0 2px 7px rgba(55,44,40,.08);transition:left .18s,transform .18s}
.sidebar-toggle .icon{width:13px;height:13px}
.sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}
.sidebar-collapsed .sidebar{padding:0 7px}
.sidebar-collapsed .brand{padding:0;justify-content:center}
.sidebar-collapsed .brand h1,.sidebar-collapsed .nav-item span,.sidebar-collapsed .nav-group-btn span,.sidebar-collapsed .disclaimer-link span{display:none}
.sidebar-collapsed .brand-symbol{width:36px}
.sidebar-collapsed .nav-item,.sidebar-collapsed .nav-group-btn{justify-content:center}
.sidebar-collapsed .nav-group-btn .group-chevron{display:none}
.sidebar-collapsed .sidebar-toggle{left:64px;transform:translateY(-50%) rotate(-90deg)}
.sidebar-collapsed .nav-group{position:relative}
.sidebar-collapsed .nav-children{display:none;position:fixed;left:72px;width:175px;margin-top:-42px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px;box-shadow:0 14px 28px rgba(0,0,0,.12);z-index:30}
.sidebar-collapsed .nav-group.expanded .nav-children{display:block}
.sidebar-collapsed .nav-sub span{display:block}
.top-title{visibility:hidden;flex:1}
.language-btn{height:36px;border:0;background:transparent;padding:0 5px;display:flex;align-items:center;gap:1px;border-radius:8px;cursor:pointer;color:#655e59}
.language-btn:hover{background:var(--accent-soft);color:var(--accent-dark)}
.language-btn .icon:first-child{width:17px}
.language-btn .icon:last-child{width:12px}
@media(max-width:1000px){.brand h1{display:none}.brand{padding:0;justify-content:center}.sidebar-toggle{display:none}}
@media(max-width:680px){.sidebar-toggle{display:none}}

/* users parity v5 */
.users-page-head{height:42px;display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.users-page-head h2{font-size:21px;margin:0}
.users-filterbar{display:flex;align-items:center;gap:8px;margin-bottom:0}
.users-filterbar input{width:240px}
.users-filterbar select{width:155px}
.users-table-tools{height:55px;display:flex;align-items:center;justify-content:flex-end}
.users-column-control{position:relative}
.users-columns-btn{height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 10px}
.users-columns-btn .icon{width:16px;height:16px}
.users-column-pop{display:none;position:absolute;right:0;top:38px;width:185px;padding:9px;background:var(--panel);border:1px solid var(--line);border-radius:7px;box-shadow:0 14px 32px rgba(44,33,30,.16);z-index:15}
.users-column-pop.show{display:grid}
.users-column-pop label{display:flex;align-items:center;gap:8px;padding:7px 5px;font-size:12px}
.users-column-pop input{width:15px;height:15px}
.users-panel{border:0;box-shadow:none;background:transparent}
.users-panel table{border-top:1px solid var(--line);min-width:980px}
.users-panel .pager-wrap{border-top:0;padding:12px 0}
.users-action-column{min-width:132px}
.users-actions{display:flex;align-items:center;gap:6px}
.user-status-switch{display:inline-block;width:34px;height:19px;position:relative;vertical-align:middle}
.user-status-switch input{position:absolute;opacity:0;pointer-events:none}
.user-status-switch span{display:block;width:34px;height:19px;background:#d7d0cc;border-radius:999px;cursor:pointer;position:relative;transition:.16s}
.user-status-switch span:after{content:"";position:absolute;width:15px;height:15px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:.16s}
.user-status-switch input:checked+span{background:var(--accent)}
.user-status-switch input:checked+span:after{left:17px}
.two-fa-text{font-size:12px;color:#786f6a}
.user-modal{width:min(560px,100%)}
.user-form-grid .field input::placeholder{color:#b6afaa}
.user-permission-section{margin-top:16px}
.permission-row{display:flex;align-items:center;gap:34px;flex-wrap:wrap}
.permission-toggle{display:flex;align-items:center;gap:10px;font-size:13px;cursor:pointer}
.permission-toggle input{position:absolute;opacity:0;pointer-events:none}
.permission-toggle i{display:block;width:34px;height:19px;background:#d7d0cc;border-radius:999px;position:relative;transition:.16s}
.permission-toggle i:after{content:"";position:absolute;width:15px;height:15px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:.16s}
.permission-toggle input:checked+i{background:var(--accent)}
.permission-toggle input:checked+i:after{left:17px}
@media(max-width:680px){.users-filterbar{flex-wrap:wrap}.users-filterbar>*{width:100%!important}.permission-row{gap:18px}}

/* V6 package management parity */
.packages-page-head{height:42px;display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.packages-page-head h2{font-size:21px;margin:0}
.packages-filterbar{display:flex;align-items:center;gap:8px;margin-bottom:0}
.packages-filterbar input{width:280px}
.packages-filterbar select{width:155px}
.packages-table-tools{height:55px;display:flex;align-items:center;justify-content:flex-end}
.packages-column-control{position:relative}
.packages-columns-btn{height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 10px}
.packages-columns-btn .icon{width:16px;height:16px}
.packages-column-pop{display:none;position:absolute;right:0;top:38px;width:190px;padding:9px;background:var(--panel);border:1px solid var(--line);border-radius:7px;box-shadow:0 14px 32px rgba(44,33,30,.16);z-index:15}
.packages-column-pop.show{display:grid}
.packages-column-pop label{display:flex;align-items:center;gap:8px;padding:7px 5px;font-size:12px}
.packages-column-pop input{width:15px;height:15px}
.packages-panel{border:0;box-shadow:none;background:transparent}
.packages-panel table{border-top:1px solid var(--line);min-width:850px}
.packages-panel .table-wrap{min-height:260px;background:var(--panel)}
.packages-panel .empty-table-row td{height:210px;padding:0}
.packages-panel .empty{min-height:210px}
.packages-panel .pager-wrap{border-top:0;padding:12px 0}
.packages-action-column{min-width:190px}
.packages-actions{display:flex;align-items:center;gap:6px}
.package-status-switch{display:inline-flex;align-items:center;cursor:pointer}
.package-status-switch input{position:absolute;opacity:0;pointer-events:none}
.package-status-switch span{width:35px;height:20px;border-radius:999px;background:#d7d0cb;position:relative;transition:.16s}
.package-status-switch span:after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:.16s}
.package-status-switch input:checked+span{background:var(--accent)}
.package-status-switch input:checked+span:after{left:17px}
.package-modal{width:min(520px,100%)}
.package-form-grid{grid-template-columns:1fr}
@media(max-width:680px){.packages-filterbar{flex-wrap:wrap}.packages-filterbar>*{width:100%!important}}

/* V16 package/product catalogue parity */
.packages-table-tools,.product-table-tools{justify-content:space-between}
.selection-toolbar{min-height:36px;display:flex;align-items:center;gap:8px;padding:4px 8px;border:1px solid transparent;border-radius:8px;color:#6d615d;font-size:12px}
.selection-toolbar:not(:empty){background:#fff1f2;border-color:#f0d5d7}.dark .selection-toolbar:not(:empty){background:#3a2d2f;border-color:#604247}
.btn.accent{background:#c97e84;border-color:#c97e84;color:#fff}.btn.accent:hover{background:#b96d74;border-color:#b96d74;color:#fff}
.product-view-btn{background:#6f9db5!important;border-color:#6f9db5!important;color:#fff!important}
.packages-actions .btn.warning,.product-actions .btn.warning{background:#d79864;border-color:#d79864;color:#fff}
.packages-action-column{min-width:300px}
.product-page-head{min-height:61px;display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.product-page-head>div:first-child{display:grid;gap:5px}.product-page-head h2{font-size:21px;margin:0}.product-back{width:max-content;border:0;background:transparent;color:#8b6a61;padding:0;cursor:pointer;font-size:12px}
.product-filterbar{display:flex;align-items:center;gap:8px}.product-filterbar input{width:300px}.product-filterbar .btn{height:35px}.product-filterbar .btn.active{background:#fff1f2;border-color:#d99ba0;color:#a85f66}
.product-table-tools{height:62px;display:flex;align-items:center}
.product-panel{border:0;box-shadow:none;background:transparent;overflow:visible}.product-panel .table-wrap{min-height:260px;background:var(--panel);border-radius:8px 8px 0 0;overflow:auto}.product-panel table{min-width:1450px;border-top:1px solid var(--line)}
.product-panel .empty-table-row td{height:210px;padding:0}.product-panel .empty{min-height:210px}.product-panel .pager-wrap{border-top:0;padding:12px 0}.product-panel .pager>span:first-child{display:none}
.product-name-cell{display:block;max-width:170px;overflow:hidden;text-overflow:ellipsis}.product-type-tag{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:999px;border:1px solid #ecd2bf;background:#fff7f0;color:#be8462;font-size:11px}.dark .product-type-tag{background:#3b302a}
.product-count{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;padding:0 6px;border:1px solid var(--line);border-radius:999px;color:#8a817c;font-size:11px}
.pin-btn{width:28px;height:28px;border:0;background:transparent;color:#c7c0bb;display:grid;place-items:center;cursor:pointer}.pin-btn .icon{width:16px;height:16px}.pin-btn.active{color:var(--accent)}
.product-actions-column{min-width:375px}.product-actions{display:flex;align-items:center;gap:7px}.product-actions .btn{height:29px;padding:0 9px}
.catalog-translation-modal{width:min(540px,100%)}.catalog-translation-grid{display:grid;grid-template-columns:1fr;gap:13px}.catalog-translation-modal .modal-body{padding-bottom:22px}
.product-editor-modal{width:min(520px,100%)}.product-editor-grid{grid-template-columns:1fr}
.catalog-operation-modal{width:min(500px,100%)}.catalog-operation-summary{display:grid;gap:14px;margin-bottom:18px}.catalog-operation-summary>div{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:8px}.catalog-operation-summary span{color:var(--muted);font-size:13px}.catalog-operation-summary strong{font-size:13px;font-weight:500;overflow-wrap:anywhere}.product-operation-grid{grid-template-columns:1fr}
@media(max-width:760px){.product-page-head{align-items:flex-start;gap:12px;flex-direction:column}.product-page-head .page-actions{width:100%;overflow:auto}.product-filterbar{flex-wrap:wrap}.product-filterbar input{width:100%}.product-table-tools{height:auto;min-height:62px;gap:8px}.selection-toolbar{flex-wrap:wrap}.packages-table-tools{height:auto;min-height:55px;gap:8px}}

/* V7 language menu */
.language-wrap{position:relative;display:flex;align-items:center}
.language-pop{display:none;position:absolute;right:-7px;top:42px;width:146px;padding:5px;background:var(--panel);border:1px solid var(--line);border-radius:9px;box-shadow:0 15px 35px rgba(48,38,35,.18);z-index:35}

/* V10 inventory/statistics parity */
.inventory-page-head,.stats-page-head{height:42px;display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.inventory-page-head h2,.stats-page-head h2{font-size:21px;margin:0}
.inventory-filterbar,.stats-filterbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.inventory-filterbar select,.stats-filterbar select{width:190px;max-width:100%}
.inventory-filterbar #inventory-user,.stats-filterbar #stats-user{width:160px}
.inventory-table-tools,.stats-table-tools{height:55px;display:flex;align-items:center;justify-content:flex-end}
.inventory-column-control,.stats-column-control{position:relative}
.inventory-columns-btn,.stats-columns-btn{height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 10px}
.inventory-columns-btn .icon,.stats-columns-btn .icon{width:16px;height:16px}
.inventory-column-pop,.stats-column-pop{display:none;position:absolute;right:0;top:38px;width:190px;padding:9px;background:var(--panel);border:1px solid var(--line);border-radius:7px;box-shadow:0 14px 32px rgba(44,33,30,.16);z-index:15}
.inventory-column-pop.show,.stats-column-pop.show{display:grid}
.inventory-column-pop label,.stats-column-pop label{display:flex;align-items:center;gap:8px;padding:7px 5px;font-size:12px}
.inventory-column-pop input,.stats-column-pop input{width:15px;height:15px}
.inventory-panel,.stats-panel{border:0;box-shadow:none;background:transparent}
.inventory-panel table{border-top:1px solid var(--line);min-width:1080px}
.stats-panel table{border-top:1px solid var(--line);min-width:800px}
.inventory-panel .table-wrap,.stats-panel .table-wrap{min-height:260px;background:var(--panel)}
.inventory-panel .empty-table-row td,.stats-panel .empty-table-row td{height:210px;padding:0}
.inventory-panel .empty,.stats-panel .empty{min-height:210px}
.inventory-panel .pager-wrap,.stats-panel .pager-wrap{border-top:0;padding:12px 0}
.inventory-actions-column{min-width:205px}
.inventory-actions{display:flex;align-items:center;gap:7px}
.btn.success{background:#74a889;border-color:#74a889;color:#fff}
.btn.success:hover{background:#5f9475;border-color:#5f9475;color:#fff}
.btn.warning{color:#ae7841;border-color:#e0c7a9;background:#fffaf3}
.inventory-count{display:inline-flex;min-width:28px;height:24px;align-items:center;justify-content:center;padding:0 8px;border-radius:999px;font-size:12px;border:1px solid var(--line)}
.inventory-count.unassigned{color:#b45f67;background:#fff3f3;border-color:#f0d6d8}
.inventory-count.available{color:#3e7c60;background:#edf7f1;border-color:#d5ebdf}
.inventory-count.used{color:#736b67;background:#f7f4f2}
.inventory-modal-summary{display:grid;gap:16px;margin-bottom:20px}
.inventory-modal-summary>div{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px}
.inventory-modal-summary span{font-size:13px;color:var(--muted)}
.inventory-modal-summary strong{font-size:13px;font-weight:500;overflow-wrap:anywhere}
.inventory-modal-summary+.field,.inventory-modal-summary~.field{margin-top:14px}
.stats-quick{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.stats-quick .quick-btn{border:0;border-right:1px solid var(--line);border-radius:0;height:35px}
.stats-quick .quick-btn:last-child{border-right:0}
.stats-total{margin:16px 0 0;font-size:13px;color:var(--muted)}
@media(max-width:900px){.inventory-filterbar>*,.stats-filterbar>*{flex:1;min-width:145px}.inventory-table-tools,.stats-table-tools{height:48px}.inventory-column-pop,.stats-column-pop{right:0}}
.language-pop.show{display:grid}
.language-pop button{height:34px;border:0;background:transparent;border-radius:7px;padding:0 9px;text-align:left;color:#8a5d4e;font-size:14px;cursor:pointer;white-space:nowrap;font-family:inherit}
.language-pop button:hover{background:var(--accent-soft);color:var(--accent-dark)}
.language-pop button.active{background:#f2f0f0;color:#6f5a52}
.dark .language-pop button.active{background:#383231;color:var(--text)}
.rtl .language-pop{right:auto;left:-7px}
.rtl .language-pop button{text-align:right}
@media(max-width:680px){.language-pop{position:fixed;right:12px;left:auto;top:52px;max-height:calc(100vh - 70px);overflow:auto}.rtl .language-pop{left:12px;right:auto}}

/* V11 · 憑證明細逐項對齊 */
.receipts-page-head{height:34px;display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.receipts-page-head h2{font-size:20px;line-height:32px;font-weight:600;margin:0;color:#7a706a}
.receipts-page-head .page-actions{gap:8px}.receipts-page-head .btn{height:34px;border-radius:6px}
.receipts-filterbar{display:flex;align-items:center;gap:8px;row-gap:8px;flex-wrap:wrap;margin-bottom:12px}
.receipts-filterbar input,.receipts-filterbar select{height:34px;min-width:0}
#receipt-order{width:200px}#receipt-package{width:180px}#receipt-product{width:220px}#receipt-google{width:180px}#receipt-source{width:180px}#receipt-user{width:160px}#receipt-assigned{width:130px}#receipt-used{width:120px}
.receipts-quick{height:34px;display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--panel)}
.receipts-quick .quick-btn{height:32px;border:0;border-right:1px solid var(--line);border-radius:0;padding:0 12px}.receipts-quick .quick-btn:last-child{border-right:0}
.receipts-date-range{width:240px;height:34px;display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;background:var(--panel);overflow:hidden;color:#b2aaa5}
.receipts-date-range input{width:105px;border:0;border-radius:0;padding:0 8px;background:transparent}.receipts-date-range span{width:28px;text-align:center}
.receipts-table-tools{min-height:55px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.receipts-selection-actions{display:none;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:13px}.receipts-selection-actions.show{display:flex}
.receipts-selection-actions .btn{height:34px}
.receipts-column-control{position:relative;margin-left:auto}.receipts-column-control>.btn{height:34px}
.receipts-column-pop{display:none;position:absolute;right:0;top:40px;width:190px;padding:9px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 32px rgba(44,33,30,.16);z-index:35}
.receipts-column-pop.show{display:grid}.receipts-column-pop label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:5px;font-size:13px;cursor:pointer}.receipts-column-pop label:hover{background:var(--accent-soft)}.receipts-column-pop input{width:15px;height:15px}
.receipts-panel{border:0;box-shadow:none;background:transparent;overflow:visible}.receipts-panel .table-wrap{background:var(--panel);border-radius:8px 8px 0 0;overflow:auto}.receipts-panel table{min-width:1160px;border-top:1px solid var(--line)}
.receipts-panel th,.receipts-panel td{height:48px;padding:8px 12px;font-size:13px}.receipts-panel th{height:46px}.receipts-panel .pager-wrap{border-top:0;padding:12px 0}.receipts-panel .pager>span:first-child{display:none}
.receipt-order-cell{display:flex;align-items:center;gap:5px;max-width:235px}.receipt-order-cell>span{overflow:hidden;text-overflow:ellipsis}.receipt-copy{width:24px;height:24px;flex:0 0 24px;border:0;background:transparent;color:#b7aea9;border-radius:5px;display:grid;place-items:center;cursor:pointer}.receipt-copy:hover{color:var(--accent-dark);background:var(--accent-soft)}.receipt-copy .icon{width:14px}
.receipt-package-tag,.receipt-user-tag{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent-dark);font-size:12px}
.receipt-user-tag{background:#f2f0ee;color:#756d68}.dark .receipt-user-tag{background:#342f2d}
.receipt-state{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border-radius:6px;font-size:12px}.receipt-state.available{background:#edf7f1;color:#39765b}.receipt-state.used{background:#f5eeee;color:#9a5a5f}
.receipt-confirm-message{margin:2px 0 16px;line-height:1.7;color:var(--text)}
.receipt-confirm-modal{width:min(470px,100%)}.receipt-assign-modal{width:min(520px,100%)}
.receipt-export-modal{width:min(470px,100%)}.receipt-export-modal .modal-body{display:grid;gap:12px}.receipt-format,.receipt-export-password{width:100%}
.receipt-stats-modal{width:min(720px,100%)}.receipt-stats-modal .modal-body{padding:18px 18px 22px}.receipt-stats-summary{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.receipt-stats-summary>div{display:grid;text-align:right;gap:4px}.receipt-stats-summary small{color:var(--muted)}.receipt-stats-summary strong{font-size:20px}.receipt-stats-modal .table-wrap{border:1px solid var(--line);border-radius:7px}.receipt-stats-modal table{min-width:560px}
.receipt-import-modal{width:min(620px,100%)}.receipt-import-modal .modal-body{display:grid;gap:16px}
.receipt-upload-box{position:relative;min-height:176px;border:1px dashed #d5b4b7;background:rgba(202,124,130,.035);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;color:var(--muted)}
.receipt-upload-box input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.receipt-upload-box .upload-title{font-size:15px;color:var(--text)}.receipt-upload-box .upload-title .icon{width:21px}.receipt-upload-box small{font-size:12px}
.receipt-import-options{display:grid;grid-template-columns:145px minmax(0,1fr);gap:13px}.receipt-import-status{min-height:20px;font-size:13px;color:var(--muted)}.receipt-import-status .success{color:var(--green)}.receipt-import-status .error-text{color:var(--danger)}
@media(max-width:1250px){.receipts-filterbar>*{flex:0 0 auto}.receipts-table-tools{align-items:flex-start}.receipts-selection-actions{padding:10px 0}}
@media(max-width:760px){.receipts-page-head{height:auto;align-items:flex-start}.receipts-filterbar>*{width:100%!important}.receipts-quick{display:grid;grid-template-columns:repeat(4,1fr)}.receipts-date-range{display:flex}.receipts-table-tools{min-height:48px}.receipts-selection-actions.show{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.receipts-selection-actions>span{grid-column:1/-1}.receipts-selection-actions .btn{width:100%}.receipt-import-options{grid-template-columns:1fr}}

/* V12 · 入庫／出庫明細與分配紀錄 */
.ledger-page-head,.assign-logs-page-head{height:34px;display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.ledger-page-head h2,.assign-logs-page-head h2{font-size:20px;line-height:32px;font-weight:600;margin:0;color:#7a706a}.assign-logs-page-head .btn{height:34px}
.ledger-filterbar,.assign-logs-filterbar{display:flex;align-items:center;gap:8px;row-gap:8px;flex-wrap:wrap;margin-bottom:12px}.ledger-filterbar input,.ledger-filterbar select,.assign-logs-filterbar input,.assign-logs-filterbar select{height:34px;min-width:0}
#ledger-order{width:200px}#ledger-package{width:180px}#ledger-product{width:220px}#ledger-account{width:160px}#assign-actor,#assign-target{width:180px}
.ledger-quick,.assign-logs-quick{height:34px;display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--panel)}.ledger-quick .quick-btn,.assign-logs-quick .quick-btn{height:32px;border:0;border-right:1px solid var(--line);border-radius:0;padding:0 12px}.ledger-quick .quick-btn:last-child,.assign-logs-quick .quick-btn:last-child{border-right:0}
.ledger-date-range,.assign-logs-date-range{width:240px;height:34px;display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;background:var(--panel);overflow:hidden;color:#b2aaa5}.ledger-date-range input,.assign-logs-date-range input{width:105px;border:0;border-radius:0;padding:0 8px;background:transparent}.ledger-date-range span,.assign-logs-date-range span{width:28px;text-align:center}
.ledger-table-tools,.assign-logs-table-tools{min-height:55px;display:flex;align-items:center;justify-content:space-between}.ledger-selection-actions{display:none;align-items:center;gap:8px;color:var(--muted);font-size:13px}.ledger-selection-actions.show{display:flex}.ledger-column-control,.assign-logs-column-control{position:relative;margin-left:auto}.ledger-column-control>.btn,.assign-logs-column-control>.btn{height:34px}
.ledger-column-pop,.assign-logs-column-pop{display:none;position:absolute;right:0;top:40px;width:190px;padding:9px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 32px rgba(44,33,30,.16);z-index:35}.ledger-column-pop.show,.assign-logs-column-pop.show{display:grid}.ledger-column-pop label,.assign-logs-column-pop label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:5px;font-size:13px;cursor:pointer}.ledger-column-pop label:hover,.assign-logs-column-pop label:hover{background:var(--accent-soft)}.ledger-column-pop input,.assign-logs-column-pop input{width:15px;height:15px}
.ledger-panel,.assign-logs-panel{border:0;box-shadow:none;background:transparent;overflow:visible}.ledger-panel .table-wrap,.assign-logs-panel>.table-wrap{background:var(--panel);border-radius:8px 8px 0 0;overflow:auto}.ledger-panel table{min-width:950px;border-top:1px solid var(--line)}.assign-logs-panel table{min-width:850px;border-top:1px solid var(--line)}.ledger-panel .pager-wrap,.assign-logs-panel>.pager-wrap{border-top:0;padding:12px 0}.ledger-panel .pager>span:first-child,.assign-logs-panel>.pager-wrap .pager>span:first-child{display:none}
.assign-expand-cell{width:42px;min-width:42px!important;max-width:42px!important;padding-left:10px!important;padding-right:5px!important}.assign-expand-trigger{width:27px;height:27px;border:0;background:transparent;color:#a59d98;border-radius:5px;display:grid;place-items:center;cursor:pointer}.assign-expand-trigger:hover{background:var(--accent-soft);color:var(--accent-dark)}.assign-expand-trigger .icon{width:14px;transition:transform .16s}.assign-expand-trigger.open .icon{transform:rotate(180deg)}
.assign-detail-row>td{padding:12px 42px;background:#fbfaf9}.dark .assign-detail-row>td{background:#2c2826}.assign-detail-row .table-wrap{border:1px solid var(--line);border-radius:7px;max-width:720px}.assign-detail-row table{min-width:560px;border-top:0}.assign-detail-row th,.assign-detail-row td{height:42px}.assign-detail-empty{padding:20px;color:var(--muted)}
@media(max-width:900px){.ledger-filterbar>*,.assign-logs-filterbar>*{flex:1;min-width:145px}.ledger-table-tools,.assign-logs-table-tools{min-height:48px}}
@media(max-width:680px){.ledger-filterbar>*,.assign-logs-filterbar>*{width:100%!important}.ledger-quick,.assign-logs-quick{display:grid;grid-template-columns:repeat(4,1fr)}.ledger-date-range,.assign-logs-date-range{display:flex}.ledger-selection-actions.show{display:grid;grid-template-columns:1fr 1fr;width:100%}.ledger-selection-actions span{grid-column:1/-1}.ledger-selection-actions .btn{width:100%}.assign-detail-row>td{padding:10px}}

/* V13 · 儀表板 */
.dashboard-page-head{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.dashboard-page-head h2{font-size:20px;line-height:32px;font-weight:600;margin:0;color:#7a706a}.dashboard-range{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dashboard-quick{height:34px;display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--panel)}.dashboard-quick .quick-btn{height:32px;border:0;border-right:1px solid var(--line);border-radius:0;padding:0 12px}.dashboard-quick .quick-btn:last-child{border-right:0}.dashboard-date-range{width:240px;height:34px;display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;background:var(--panel);overflow:hidden;color:#b2aaa5}.dashboard-date-range input{width:105px;border:0;border-radius:0;padding:0 8px;background:transparent}.dashboard-date-range span{width:28px;text-align:center}.dashboard-range>.btn{height:34px}
.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dashboard-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 16px;box-shadow:none}.dashboard-quantity-card{height:91px;display:flex;flex-direction:column;justify-content:space-between}.dashboard-quantity-card span{font-size:14px;color:#716965}.dashboard-quantity-card strong{font-size:24px;line-height:34px;font-weight:500;color:#5f5753}.dashboard-price-card{min-height:86px}.dashboard-price-card h3{font-size:14px;font-weight:600;margin:0 0 8px;color:#716965}.dashboard-price-list{display:flex;gap:22px;flex-wrap:wrap}.dashboard-price-list>div{display:grid;gap:2px}.dashboard-price-list small{font-size:12px;color:var(--muted)}.dashboard-price-list strong{font-size:18px;font-weight:500;color:#5f5753}.dashboard-empty-price{font-size:20px;color:#9d9590;padding-top:4px}
@media(max-width:820px){.dashboard-page-head{align-items:flex-start;flex-direction:column}.dashboard-range{width:100%}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:560px){.dashboard-range>*{width:100%}.dashboard-quick{display:grid;grid-template-columns:repeat(4,1fr)}.dashboard-date-range{display:flex}}

/* V14 · 操作紀錄與系統設定 */
.operation-page-head,.settings-page-head{height:34px;display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.operation-page-head h2,.settings-page-head h2{font-size:20px;line-height:32px;font-weight:600;margin:0;color:#7a706a}.operation-page-head .btn{height:34px}
.operation-filterbar{display:flex;align-items:center;gap:8px;row-gap:8px;flex-wrap:wrap;margin-bottom:12px}.operation-filterbar input,.operation-filterbar select{height:34px;min-width:0}#operation-action{width:150px}#operation-actor{width:160px}#operation-order{width:200px}.operation-quick{height:34px;display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--panel)}.operation-quick .quick-btn{height:32px;border:0;border-right:1px solid var(--line);border-radius:0;padding:0 7px}.operation-quick .quick-btn:last-child{border-right:0}.operation-date-range{width:240px;height:34px;display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;background:var(--panel);overflow:hidden;color:#b2aaa5}.operation-date-range input{width:105px;border:0;border-radius:0;padding:0 4px;background:transparent;font-size:12px}.operation-date-range span{width:28px;text-align:center}.operation-table-tools{min-height:55px;display:flex;align-items:center;justify-content:flex-end}.operation-column-control{position:relative}.operation-column-control>.btn{height:34px}.operation-column-pop{display:none;position:absolute;right:0;top:40px;width:190px;padding:9px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 32px rgba(44,33,30,.16);z-index:35}.operation-column-pop.show{display:grid}.operation-column-pop label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:5px;font-size:13px;cursor:pointer}.operation-column-pop label:hover{background:var(--accent-soft)}.operation-column-pop input{width:15px;height:15px}.operation-panel{border:0;box-shadow:none;background:transparent;overflow:visible}.operation-panel .table-wrap{background:var(--panel);border-radius:8px 8px 0 0;overflow:auto}.operation-panel table{min-width:1050px;border-top:1px solid var(--line)}.operation-panel .pager-wrap{border-top:0;padding:12px 0}.operation-panel .pager>span:first-child{display:none}.operation-action-tag{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent-dark);font-size:12px}
.settings-reference-grid{grid-template-columns:1fr;gap:16px}.settings-reference-grid .setting-card{min-height:88px;border-radius:8px;box-shadow:none;padding:16px;position:relative}.settings-reference-grid .setting-card:nth-child(1),.settings-reference-grid .setting-card:nth-child(2){height:88px}.settings-reference-grid .setting-card:nth-child(3),.settings-reference-grid .setting-card:nth-child(4){min-height:170px}.settings-reference-grid .setting-card.wide{min-height:0}.settings-reference-grid .setting-card h3{font-size:16px;color:#625a56}.settings-reference-grid .setting-card p{font-size:13px;line-height:1.65;max-width:100%}.settings-reference-grid .setting-card>select{width:200px;margin-right:8px}.settings-reference-grid .setting-card:nth-child(4)>select{width:160px}.settings-reference-grid .setting-card>.setting-save{position:absolute;right:16px;bottom:14px;margin:0}.settings-reference-grid #inbound_assign_user_id{display:none;margin-top:10px}.settings-reference-grid #inbound_assign_user_id.show{display:block}.switch-line.static{position:static;flex:0 0 auto}.ip-enable-row{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.ip-enable-row strong{font-size:14px}.ip-enable-row p{max-width:100%!important;margin-top:5px!important}.current-ip-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 12px;font-size:13px;color:var(--muted)}.current-ip-row strong{color:var(--text)}.current-ip-row .btn{height:32px}.ip-setting-card{padding-bottom:68px!important}.ip-setting-card .ip-row{max-width:680px}.ip-setting-card .chip-list{min-height:31px}.ip-empty{font-size:12px;color:#b16f4c}.settings-inline-field{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;margin:10px 0 17px}.settings-inline-field select{width:155px}.cleanup-items{display:grid;gap:10px}.cleanup-items>span{font-size:13px;color:var(--muted)}.cleanup-setting-card #cleanup{margin-top:17px}
.nav-item:focus,.nav-group-btn:focus,.nav-sub:focus{outline:none}

/* V15 · 匯入與匯出頁面 */
.import-main-head,.history-page-head{height:34px;display:flex;align-items:center;gap:8px;justify-content:space-between;margin-bottom:16px}.import-main-head h2,.history-page-head h2{font-size:20px;line-height:32px;font-weight:600;margin:0;color:#625b57}.import-main-head{justify-content:flex-start}.import-main-head>button{width:22px;height:32px;padding:0;border:0;background:transparent;color:#736b66;cursor:pointer}.import-main-head>button .icon{width:17px;transform:rotate(180deg)}.history-page-head .btn{height:34px}
.import-main-dropzone{height:164px;position:relative;border:1px dashed #ddd6d2;border-radius:4px;background:rgba(255,255,255,.35);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#756d68;font-size:13px}.import-main-dropzone input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.import-main-dropzone .import-main-icon .icon{width:35px;height:35px;color:#8f8883}.import-main-dropzone small{font-size:12px}.import-main-options{display:flex;align-items:center;gap:12px;margin-top:12px}.import-main-options label{display:flex;align-items:center;gap:9px;color:#716a65;font-size:13px}.import-main-options select{width:110px}.import-main-options input{width:220px}.import-main-status{min-height:26px;margin-top:12px;font-size:13px}.import-main-status.loading-state{color:var(--muted)}.import-main-status.success-state{color:var(--green)}.import-main-status.error-state{color:var(--danger)}
.history-filterbar,.export-items-filterbar{display:flex;align-items:center;gap:8px;row-gap:8px;flex-wrap:wrap;margin-bottom:12px}.history-filterbar>select{width:160px}.history-quick{height:34px;display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--panel)}.history-quick .quick-btn{height:32px;border:0;border-right:1px solid var(--line);border-radius:0;padding:0 7px}.history-quick .quick-btn:last-child{border-right:0}.history-date-range{width:240px;height:34px;display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;background:var(--panel);overflow:hidden;color:#b2aaa5}.history-date-range input{width:105px;height:32px;border:0;border-radius:0;padding:0 4px;background:transparent;font-size:12px}.history-date-range span{width:28px;text-align:center}.history-table-tools{min-height:55px;display:flex;align-items:center;justify-content:flex-end}.history-column-control{position:relative}.history-column-control>.btn{height:34px}.history-column-pop{display:none;position:absolute;right:0;top:40px;width:190px;padding:9px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 32px rgba(44,33,30,.16);z-index:35}.history-column-pop.show{display:grid}.history-column-pop label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:5px;font-size:13px;cursor:pointer}.history-column-pop label:hover{background:var(--accent-soft)}.history-column-pop input{width:15px;height:15px}.history-panel{border:0;box-shadow:none;background:transparent;overflow:visible}.history-panel .table-wrap{background:var(--panel);border-radius:8px 8px 0 0;overflow:auto}.history-panel table{min-width:980px;border-top:1px solid var(--line)}.history-panel .pager-wrap{border-top:0;padding:12px 0}.history-panel .pager>span:first-child{display:none}.history-expand-cell{width:42px;min-width:42px;padding-left:12px!important;padding-right:6px!important}.history-expand-trigger{width:24px;height:24px;padding:0;border:0;background:transparent;color:#827a75;display:grid;place-items:center;cursor:pointer}.history-expand-trigger .icon{width:15px;transition:.16s}.history-expand-trigger.open .icon{transform:rotate(180deg)}.history-detail-row>td{padding:12px 18px;background:#fcfaf8;white-space:normal;max-width:none;overflow:visible}.history-detail-row table{min-width:540px;border-top:0}.history-detail-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px}.history-detail-grid>div:first-child{font-size:12px;line-height:1.7;color:var(--muted)}.history-detail-grid strong{display:block;color:var(--text);margin-bottom:5px}.history-id-tag{display:inline-flex;align-items:center;min-height:22px;padding:1px 7px;border:1px solid #d7e0e1;border-radius:999px;background:#f4f8f8;color:#738184;font-size:12px}.history-row-actions{display:flex;gap:6px}.history-row-actions .btn{color:var(--accent-dark);border-color:#e4c2c4}
.export-id-stepper{width:140px;height:34px;border:1px solid var(--line);border-radius:6px;background:var(--panel);display:flex;align-items:center;overflow:hidden}.export-id-stepper input{width:88px;height:32px;border:0;border-radius:0;padding:0 10px}.export-id-stepper input::-webkit-inner-spin-button{display:none}.export-id-stepper button{width:25px;height:32px;border:0;border-left:1px solid var(--line);background:transparent;color:#817974;cursor:pointer;padding:0}.export-items-panel table{min-width:850px}
@media(max-width:900px){.import-main-options{flex-wrap:wrap}.history-filterbar>*,.export-items-filterbar>*{flex:1;min-width:145px}.history-detail-grid{grid-template-columns:1fr}}
@media(max-width:680px){.import-main-options,.import-main-options label{align-items:flex-start;flex-direction:column;width:100%}.import-main-options select,.import-main-options input{width:100%}.history-filterbar>*,.export-items-filterbar>*{width:100%!important}.history-quick{display:grid;grid-template-columns:repeat(4,1fr)}.history-date-range{display:flex}.export-id-stepper{display:flex!important}}
@media(max-width:900px){.operation-filterbar>*{flex:1;min-width:145px}.settings-reference-grid{grid-template-columns:1fr}}
@media(max-width:680px){.operation-filterbar>*{width:100%!important}.operation-quick{display:grid;grid-template-columns:repeat(4,1fr)}.operation-date-range{display:flex}.settings-reference-grid .setting-card>select{width:100%;margin:0 0 8px}.ip-enable-row,.current-ip-row{align-items:flex-start;flex-direction:column}.current-ip-row .btn{width:100%}.settings-inline-field{align-items:flex-start;flex-direction:column}.settings-inline-field select{width:100%}}

/* V21 · reference UI detail parity */
.user-modal{width:min(440px,100%)}
.user-modal .modal-head{height:69px;padding:0 24px;flex:0 0 69px}
.user-modal .modal-body{height:351px;padding:0 24px;overflow:auto;flex:0 0 351px}
.user-form-grid{grid-template-columns:1fr;gap:24px}
.user-form-grid .field{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px}
.user-form-grid .field>span{text-align:right;font-size:13px;color:var(--text)}
.user-form-grid .field input,.user-form-grid .field select{height:34px}
.user-permission-section{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;align-items:start;margin-top:24px;padding-top:0;border-top:0}
.user-permission-section h4{margin:2px 0 0;text-align:right;font-size:13px;font-weight:600;color:var(--text)}
.permission-row{display:grid;grid-template-columns:1fr;gap:7px;width:100%}
.permission-toggle{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:19px;width:100%;font-size:13px}
.user-modal .modal-foot{height:54px;flex:0 0 54px;border-top:0;padding:0 24px}
.user-role-tag{display:inline-flex;align-items:center;min-height:24px;padding:2px 9px;border-radius:6px;font-size:12px;font-weight:500}
.user-role-tag.role-admin{background:#fff0df;color:#b36a21}
.user-role-tag.role-observer{background:#eaf3fb;color:#3978a8}
.user-role-tag.role-user{background:#f1efed;color:#756d68}
.dark .user-role-tag.role-admin{background:#503721;color:#efad69}.dark .user-role-tag.role-observer{background:#253d50;color:#83b9df}.dark .user-role-tag.role-user{background:#393432;color:#c7bfba}
.user-permission-tags{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.user-permission-tag{display:inline-flex;align-items:center;min-height:23px;padding:2px 7px;border-radius:5px;background:#edf7f1;color:#39765b;font-size:11px}
.user-permission-tag.all{background:#fff0df;color:#a96321}.user-permission-tag.readonly{background:#f1efed;color:#756d68}
.dark .user-permission-tag{background:#253f34;color:#91c7aa}.dark .user-permission-tag.all{background:#503721;color:#efad69}.dark .user-permission-tag.readonly{background:#393432;color:#c7bfba}
.users-actions .btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}
.users-actions .btn.danger:hover{filter:brightness(.94)}
.assign-expand-trigger .icon,.history-expand-trigger .icon{transform:rotate(-90deg)}
.assign-expand-trigger.open .icon,.history-expand-trigger.open .icon{transform:rotate(0deg)}
.clear-all-link{height:34px;padding:0 3px;border:0;background:transparent;color:var(--danger);display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:13px}
.clear-all-link .icon{width:16px;height:16px}.clear-all-link:hover{color:#a9434b}
.disclaimer-shell{min-height:100vh;padding:56px 20px;background:var(--bg);display:flex;align-items:flex-start;justify-content:center}
.disclaimer-card{width:min(640px,100%);background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 55px rgba(55,42,38,.09);padding:24px}
.disclaimer-head{min-height:55px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}
.disclaimer-brand{display:flex;align-items:center;gap:12px}.disclaimer-brand .brand-symbol{width:42px;height:42px}.disclaimer-brand .brand-cat{width:42px;height:42px}
.disclaimer-brand>div:last-child{display:grid;gap:3px}.disclaimer-brand strong{font-size:17px}.disclaimer-brand span{font-size:13px;color:var(--muted)}
.disclaimer-head .language-btn{border:1px solid var(--line);background:var(--panel)}
.disclaimer-copy{display:grid;gap:15px;margin-bottom:24px;color:#6f6762;font-size:14px;line-height:1.85}.dark .disclaimer-copy{color:var(--muted)}.disclaimer-copy p{margin:0}
.disclaimer-back{width:100%;height:38px}
@media(max-width:680px){.user-modal .modal-body{height:auto;min-height:351px}.user-form-grid .field,.user-permission-section{grid-template-columns:64px minmax(0,1fr)}.disclaimer-shell{padding:20px 12px}.disclaimer-card{padding:20px 16px}.disclaimer-head{margin-bottom:16px}}
