:root{--bg:#f3f5f7;--card:#fff;--ink:#1d2733;--muted:#6c7784;--line:#dde3e8;--primary:#184f75;--primary2:#0f3b59;--danger:#b93838;--warn:#a8640a;--good:#16764b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",Arial,sans-serif;font-size:15px}a{color:var(--primary);text-decoration:none}header{height:60px;background:#142331;color:#fff;display:flex;align-items:center;padding:0 20px;position:sticky;top:0;z-index:20;box-shadow:0 2px 8px #0002}.brand{display:flex;align-items:center;gap:9px;white-space:nowrap;margin-right:25px}.brandmark{display:grid;place-items:center;width:30px;height:30px;border:1px solid #ffffff55;border-radius:8px}nav{display:flex;align-items:center;gap:5px;width:100%}nav>a,nav summary{color:#e9f0f5;padding:9px 10px;border-radius:7px;cursor:pointer;white-space:nowrap}nav>a:hover,nav summary:hover{background:#ffffff12}nav details{position:relative}nav details>div{position:absolute;top:40px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 25px #0002;min-width:140px;padding:6px}nav details>div a{display:block;padding:9px;color:var(--ink);border-radius:6px}nav details>div a:hover{background:var(--bg)}nav .user{margin-left:auto;color:#bcd0df;font-size:13px}.navtoggle{display:none}.container{max-width:1500px;margin:0 auto;padding:24px}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.pagehead h1{margin:0 0 5px;font-size:27px}.pagehead p{margin:0;color:var(--muted)}.actions{display:flex;gap:8px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:0 2px 8px #23384a0b;margin-bottom:18px}.card h2{font-size:18px;margin:0 0 14px}.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px}.kpi{background:#fff;border:1px solid var(--line);border-radius:11px;padding:16px}.kpi span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}.kpi b{font-size:22px}.kpi.danger b{color:var(--danger)}.kpi.warn b{color:var(--warn)}.kpi.compact{min-width:180px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.gridform{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(600px,1.5fr);gap:18px}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.sectionhead h2{margin:0}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:9px}table{width:100%;border-collapse:collapse;min-width:650px}th,td{padding:10px 11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{background:#f7f9fa;color:#50606f;font-size:13px;white-space:nowrap}tr:last-child td{border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums}.right{text-align:right}.bad{color:var(--danger)}.good{color:var(--good)}.empty{text-align:center;color:var(--muted);padding:30px}.btn,button{border:1px solid #cbd4da;background:#fff;color:var(--ink);padding:9px 13px;border-radius:8px;font:inherit;cursor:pointer}.primary{background:var(--primary);border-color:var(--primary);color:#fff}.primary:hover{background:var(--primary2)}.dangerbtn{border-color:#e2bcbc;color:var(--danger);background:#fff6f6}.full{width:100%}.big{font-size:16px;padding:11px 20px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.formgrid label,.docform>label{display:flex;flex-direction:column;gap:6px;color:#53606c;font-size:13px}.span2{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid #cfd7dd;background:#fff;border-radius:7px;padding:9px 10px;font:inherit;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid #5f9fc62e;border-color:#6a9fbe}.search{display:flex;gap:6px;max-width:430px}.topfields{grid-template-columns:repeat(3,1fr);margin-bottom:20px}.docform{padding:20px}.submitbar{display:flex;align-items:center;gap:16px;margin-top:18px}.muted{color:var(--muted)}.iconbtn{padding:3px 9px;font-size:20px}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;background:#e9eef2}.badge.confirmed{background:#e5f3eb;color:#126b43}.badge.void{background:#f5e5e5;color:#a23131}.facts{display:grid;grid-template-columns:110px 1fr;gap:9px 12px}.facts dt{color:var(--muted)}.facts dd{margin:0}.inlineform{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px}.inlineform button{grid-column:1/-1}.bigmoney{font-size:18px;font-weight:700;margin-right:8px}.flash{padding:12px 14px;border-radius:9px;margin-bottom:12px;background:#e9f4ee;color:#126541;border:1px solid #cce5d7}.flash.error{background:#faecec;color:#9f3030;border-color:#efcece}.loginwrap{min-height:80vh;display:grid;place-items:center}.login{width:min(420px,100%);padding:32px}.login h1{margin:0 0 5px}.login label{display:block;margin:18px 0 8px}.login input{margin-top:6px}.login small{display:block;text-align:center;color:var(--muted);margin-top:14px}
@media(max-width:1000px){.kpis{grid-template-columns:repeat(2,1fr)}.grid2,.gridform{grid-template-columns:1fr}.topfields{grid-template-columns:repeat(2,1fr)}header{height:auto;min-height:56px;align-items:flex-start;padding:11px 14px}.navtoggle{display:block;margin-left:auto;background:transparent;color:#fff;border-color:#ffffff55;padding:5px 10px}.brand{height:34px}nav{display:none;position:absolute;left:0;right:0;top:56px;background:#142331;flex-direction:column;align-items:stretch;padding:8px 14px 16px}.navopen nav{display:flex}nav .user{margin:8px 10px 0}nav details>div{position:static;box-shadow:none;border:0;margin-left:12px;background:#1c3143}nav details>div a{color:#fff}.container{padding:16px}.pagehead{align-items:flex-start}.actions{flex-wrap:wrap}}
@media(max-width:620px){body{font-size:14px}.container{padding:12px}.pagehead{flex-direction:column}.pagehead h1{font-size:23px}.kpis{grid-template-columns:1fr 1fr}.kpi{padding:13px}.kpi b{font-size:18px}.formgrid,.topfields{grid-template-columns:1fr}.span2{grid-column:auto}.card{padding:13px;border-radius:9px}.submitbar{align-items:stretch;flex-direction:column}.actions,.actions .btn{width:100%}.actions .btn{text-align:center}table{min-width:600px}.inlineform{grid-template-columns:1fr}}
.narrow{max-width:760px}.check{flex-direction:row!important;align-items:center!important}.check input{width:auto}.card ol{line-height:2}
.productcell{min-width:300px}.product-search{min-width:280px}.selected-product{display:block;margin-top:5px;white-space:nowrap}.helpbox{background:#f7fafc;border:1px solid var(--line);border-radius:9px;padding:12px;color:var(--muted);line-height:1.7}
.kpi small{display:block;margin-top:8px;color:var(--muted);font-size:12px;line-height:1.6}.typebadge{display:inline-block;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.typebadge.hardware{background:#fff1d8;color:#8a5200;border:1px solid #f0d39a}.typebadge.goods{background:#e4f1f9;color:#145879;border:1px solid #c4deed}.badge.ordered{background:#fff1d8;color:#8a5200}.badge.partial{background:#f8e9d5;color:#985b08}.badge.received{background:#e5f3eb;color:#126b43}.badge.cancelled{background:#f5e5e5;color:#a23131}.filterbar{display:grid;grid-template-columns:160px 160px minmax(220px,1fr) auto;gap:8px;margin-bottom:14px}.search.wide{max-width:680px;display:grid;grid-template-columns:160px minmax(220px,1fr) auto}.statusbuttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
@media(max-width:700px){.filterbar,.search.wide{grid-template-columns:1fr}.statusbuttons button{flex:1}.kpis{grid-template-columns:1fr 1fr}}

.sep{border:0;border-top:1px solid var(--line);margin:18px 0}.smallbtn{padding:5px 9px;font-size:12px}.card h3{font-size:15px;margin:10px 0}.gridform .tablewrap{max-height:650px}
.searchselect{position:relative}.searchselect-source{display:none!important}.searchselect-input{width:100%;background:#fff}
/* V1.3.25: wider stock number columns */
.wide-number-col{min-width:128px}
/* Mobile-friendly searchable dropdown replacing native datalist UI */
.searchable-menu{position:fixed;z-index:9999;max-height:min(44vh,360px);overflow:auto;background:#fff;border:1px solid #cfd7dd;border-radius:9px;box-shadow:0 10px 30px #0002;padding:5px}
.searchable-option{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:2px;border:0;background:#fff;padding:10px 11px;text-align:left;border-radius:6px;color:var(--ink)}
.searchable-option:hover,.searchable-option:focus{background:#eef5f9;outline:none}.searchable-option span{font-weight:600}.searchable-option small{color:var(--muted);font-size:12px}.searchable-empty{padding:12px;color:var(--muted);font-size:13px}
@media(max-width:620px){.searchable-menu{max-height:52vh}.searchable-option{padding:12px 11px;font-size:16px}.wide-number-col{min-width:140px}}

/* V1.3.26: keep stock value on one line and give it more width */
.stock-value-col{min-width:190px!important;white-space:nowrap}
@media(max-width:620px){.stock-value-col{min-width:190px!important;white-space:nowrap}}
