*{box-sizing:border-box}:root{--navy:#102b4e;--blue:#175aa8;--blue2:#2b6cb0;--bg:#f4f7fb;--text:#253348;--muted:#718096;--line:#dfe7f0;--white:#fff;--danger:#b42318;--green:#18794e;--amber:#9a6700}body{margin:0;font-family:Arial,"Microsoft JhengHei","Noto Sans TC",sans-serif;background:var(--bg);color:var(--text);line-height:1.5}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.topbar{background:linear-gradient(135deg,#0f2c50,#163b69);color:#fff;padding:14px 22px;display:flex;align-items:center;gap:20px;box-shadow:0 2px 12px rgba(16,43,78,.18)}.brand-block{min-width:245px}.brand-link{color:#fff!important;text-decoration:none!important}.brand-link strong{display:block;font-size:19px;letter-spacing:.2px}.brand-link small{display:block;opacity:.78;margin-top:2px;font-size:11px}.main-nav{display:flex;align-items:center;gap:5px;flex:1;flex-wrap:wrap}.main-nav a{color:#f4f8ff;padding:8px 10px;border-radius:7px;font-size:13px}.main-nav a:hover{background:rgba(255,255,255,.1);text-decoration:none}.user-chip{font-size:12px;background:rgba(255,255,255,.1);padding:7px 10px;border-radius:999px;white-space:nowrap}.container{max-width:1320px;margin:24px auto;padding:0 20px}.site-footer{text-align:center;color:#7c8898;padding:28px 15px 36px}.site-footer div{font-weight:700}.site-footer small{font-size:11px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.page-head h1{margin:3px 0 0;font-size:27px}.page-subtitle,.muted{color:var(--muted);font-size:13px;margin-top:4px}.breadcrumb{font-size:12px;color:#7c8898}.page-actions,.form-actions,.hero-actions,.mini-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.panel,.panel-lite,.metric-card,.dashboard-card{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 3px 12px rgba(20,45,75,.045)}.panel{padding:20px;margin-bottom:18px}.panel-lite{padding:11px 13px}.section-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.section-title h2{margin:0;font-size:18px}.section-title p{margin:3px 0 0;color:var(--muted);font-size:12px}.section-title-row{align-items:center}.button,button{display:inline-block;border:0;border-radius:7px;padding:9px 14px;background:var(--blue);color:#fff;font-weight:600;font-size:13px;cursor:pointer;text-decoration:none}.button:hover,button:hover{text-decoration:none;filter:brightness(.96)}.secondary{background:var(--blue)!important}.danger{background:var(--danger)!important}.danger-text{color:var(--danger)!important}.link-button{background:none!important;padding:0!important;color:var(--blue);font:inherit;font-weight:normal}.inline-form{display:inline}.filters{display:flex;gap:9px;align-items:end;flex-wrap:wrap;margin:12px 0 18px}.filters>input{max-width:330px}.filters>select{max-width:220px}.filter-label{margin:0;min-width:160px;font-size:12px}.filter-label input,.filter-label select{margin-top:4px}.form-grid,.address-grid,.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.detail-grid{align-items:stretch;margin-bottom:18px}.detail-grid .panel{margin-bottom:0}label{display:block;margin:9px 0;font-weight:700;font-size:13px}input,select,textarea{width:100%;padding:9px 10px;border:1px solid #cbd6e3;border-radius:7px;margin-top:5px;background:#fff;color:var(--text);font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid rgba(23,90,168,.15);border-color:var(--blue)}textarea{min-height:96px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto;margin:0}.table-wrap{overflow:auto;border-radius:10px}table{width:100%;border-collapse:collapse;background:#fff;margin:0 0 15px;min-width:720px}th,td{padding:10px 11px;border-bottom:1px solid #e5ebf2;text-align:left;vertical-align:top;font-size:13px}th{background:#edf3f9;font-size:12px;color:#42526a;white-space:nowrap}tbody tr:hover{background:#fafcff}.number{text-align:right;font-variant-numeric:tabular-nums}.number-input{text-align:right}.action-links{white-space:nowrap}.action-links span{color:#a4adba;margin:0 2px}.action-cost{font-weight:700}.badge{display:inline-block;padding:3px 8px;border-radius:999px;background:#e8edf3;font-size:11px;white-space:nowrap}.badge.active,.badge.paid{background:#daf2e4;color:#17633e}.badge.inactive,.badge.cancelled{background:#f8e2e0;color:#8c2f27}.badge.draft{background:#fff0c8;color:#7a5600}.badge.issued{background:#deebff;color:#1a4e8a}.alert{padding:12px 14px;border-radius:8px;margin:12px 0;border:1px solid transparent}.alert.success{background:#e2f4e8;border-color:#b9dfc6;color:#225b38}.alert.error{background:#fde7e5;border-color:#f5c1bc;color:#842b23}.alert.warning{background:#fff5d9;border-color:#f1d584;color:#745400}.empty-state{text-align:center;color:var(--muted);padding:25px!important}.info{padding:14px;background:#eef5ff;border:1px solid #d7e6f8;border-radius:8px}.danger-zone{border-color:#efcbc7;background:#fffafa}.danger-zone h3{color:var(--danger);margin-top:0}.detail-list{margin:0}.detail-list>div{display:grid;grid-template-columns:180px 1fr;padding:8px 0;border-bottom:1px solid #eef2f6}.detail-list dt{color:var(--muted);font-size:12px}.detail-list dd{margin:0;font-weight:700}.description-box{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.description-box p{margin-bottom:0}.cost-highlight{background:linear-gradient(145deg,#fff,#f4f8ff)}.big-money{font-size:34px;font-weight:800;color:#173f70;margin:20px 0 8px}.cost-strip{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:14px}.cost-strip span{font-size:24px;font-weight:800;color:#173f70}.cost-strip small{color:var(--muted)}.invoice-number-banner{display:flex;align-items:center;gap:12px;background:#eef5ff;padding:11px 13px;border-radius:8px;margin-bottom:14px}.invoice-number-banner span{color:var(--muted);font-size:12px}.invoice-number-banner strong{font-size:18px}.invoice-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.invoice-meta div{padding:5px 8px}.invoice-meta span{display:block;color:var(--muted);font-size:11px}.invoice-meta strong{display:block;margin-top:3px}.totals{text-align:right;margin:16px 0}.totals p{margin:5px 0}.grand-total{font-size:18px}.totals-panel{margin-left:auto;max-width:420px}.metric-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.metric-card{padding:18px}.metric-card small,.metric-card span{display:block;color:var(--muted)}.metric-card strong{display:block;font-size:24px;margin:6px 0;color:#173f70}.admin-badge{background:#fff0c8;color:#735500;border:1px solid #efd783;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:800}.dashboard-hero{background:linear-gradient(135deg,#102b4e,#1d4f86);color:#fff;border-radius:16px;padding:28px 30px;display:flex;justify-content:space-between;gap:22px;align-items:center;margin-bottom:18px;box-shadow:0 8px 25px rgba(16,43,78,.16)}.dashboard-hero h1{margin:5px 0 0;font-size:30px}.dashboard-hero p{margin:2px 0 8px;opacity:.85}.eyebrow{font-size:11px;letter-spacing:1.7px;opacity:.7}.hero-note{font-size:12px;opacity:.7}.dashboard-hero .button{background:#fff;color:#12355e}.dashboard-hero .secondary{background:rgba(255,255,255,.15)!important;color:#fff;border:1px solid rgba(255,255,255,.25)}.dashboard-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px;margin-bottom:18px}.dashboard-card{padding:16px;display:flex;gap:12px;color:var(--text);transition:.18s}.dashboard-card:hover{transform:translateY(-2px);box-shadow:0 7px 18px rgba(25,55,90,.1);text-decoration:none}.dashboard-icon{font-size:28px}.dashboard-number{font-size:23px;font-weight:800;line-height:1.1}.dashboard-label{font-size:12px;font-weight:700;margin-top:5px}.dashboard-note{font-size:10px;color:var(--muted);margin-top:2px}.admin-card{border-color:#e9d48d;background:#fffdf6}.dashboard-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:16px;margin-bottom:18px}.dashboard-grid.equal{grid-template-columns:1fr 1fr}.dashboard-panel{margin-bottom:0}.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.quick-actions a{border:1px solid var(--line);border-radius:9px;padding:12px;color:var(--text)}.quick-actions a:hover{background:#f7faff;text-decoration:none}.quick-actions span,.quick-actions strong,.quick-actions small{display:block}.quick-actions span{font-size:21px}.quick-actions strong{font-size:12px;margin-top:5px}.quick-actions small{font-size:10px;color:var(--muted)}.status-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.status-summary a{border:1px solid var(--line);border-radius:9px;padding:11px;color:var(--text);position:relative}.status-summary a:hover{text-decoration:none}.status-summary b,.status-summary small{display:block}.status-summary b{font-size:22px}.status-summary small{font-size:10px;color:var(--muted)}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;float:right;background:#8492a6}.status-dot.draft{background:#d6a600}.status-dot.issued{background:#2e6fbd}.status-dot.paid{background:#2d8b57}.status-dot.total{background:#66788e}.compact-list{display:flex;flex-direction:column}.compact-list>a{display:flex;justify-content:space-between;gap:10px;padding:10px 3px;border-bottom:1px solid #edf1f6;color:var(--text)}.compact-list>a:hover{text-decoration:none;background:#fafcff}.compact-list strong,.compact-list small{display:block}.compact-list small{color:var(--muted);margin-top:2px}.list-meta{font-size:11px;color:var(--muted);white-space:nowrap}.text-link{font-size:12px}.login-body{display:grid;place-items:center;min-height:100vh;background:radial-gradient(circle at top,#eaf2fb,#f5f7fb 50%)}.login-card{width:min(430px,92vw);background:#fff;padding:32px;border-radius:16px;box-shadow:0 14px 45px rgba(16,43,78,.15);border:1px solid #e1e8f0}.login-card h1{margin:4px 0;text-align:center}.login-card>p{text-align:center;color:var(--muted);margin:0 0 24px}.login-mark{text-align:center;font-size:42px}.login-button{width:100%;margin-top:8px;padding:11px}.upload-panel input[type=file]{padding:7px}.site-footer{clear:both}
@media(max-width:1150px){.dashboard-cards{grid-template-columns:repeat(3,1fr)}.quick-actions{grid-template-columns:repeat(3,1fr)}}@media(max-width:860px){.topbar{align-items:flex-start;flex-direction:column}.main-nav{width:100%}.user-chip{position:absolute;right:16px;top:16px}.dashboard-hero{align-items:flex-start;flex-direction:column}.dashboard-grid,.dashboard-grid.equal{grid-template-columns:1fr}.metric-cards{grid-template-columns:repeat(2,1fr)}.invoice-meta{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.container{padding:0 12px;margin-top:16px}.page-head{flex-direction:column}.form-grid,.address-grid,.detail-grid{grid-template-columns:1fr}.dashboard-cards{grid-template-columns:repeat(2,1fr)}.quick-actions{grid-template-columns:repeat(2,1fr)}.metric-cards{grid-template-columns:1fr}.filters{align-items:stretch;flex-direction:column}.filters>input,.filters>select,.filter-label{max-width:none;width:100%}.cost-strip{grid-template-columns:1fr}.detail-list>div{grid-template-columns:1fr}.main-nav a{padding:6px 7px;font-size:12px}.user-chip{display:none}.dashboard-hero{padding:22px}.dashboard-hero h1{font-size:25px}}

/* Compact dual-logo lockup: stays within the Chinese product-title width. */
.topbar{padding-top:7px;padding-bottom:7px}
.brand-link{display:block;width:max-content;max-width:100%}
.brand-logos{display:flex;align-items:center;gap:10px;width:190px;height:25px;margin-bottom:2px;overflow:hidden}
.brand-logo{display:block;width:auto;object-fit:contain;object-position:left center}
.brand-logo-alminco{height:24px;max-width:112px}
.brand-logo-butterfly{height:25px;max-width:68px}
.brand-link strong{line-height:1.12}
.brand-link small{line-height:1.15}
@media(max-width:860px){.user-chip{top:10px}}

/* Keep the shared navigation visible on desktop while preserving mobile space. */
@media(min-width:861px){
  .topbar{
    position:sticky;
    top:0;
    z-index:1000;
    box-shadow:0 4px 16px rgba(16,43,78,.24);
  }
}

/* Keep unavailable actions visually distinct from enabled buttons. */
button:disabled,.button[aria-disabled="true"],.button.disabled{background:#dce2e9!important;color:#596779!important;cursor:not-allowed;opacity:1;pointer-events:none;filter:none!important}
