:root{
  --green:#bfe3d0;--green2:#a9d7bd;--pink:#f6d6e2;--blue:#d9eaf7;
  --purple:#e8dcf4;--yellow:#f7e8b5;--red:#f7d8dc;--bg:#fbfafc;
  --card:#fff;--text:#4b5563;--muted:#7b8794;--line:#e1e7eb;
  --shadow:0 10px 28px rgba(120,130,145,.13);--radius:16px;
}
*{box-sizing:border-box}
body{margin:0;font-family:Tahoma,"Noto Sans Thai","Segoe UI",sans-serif;background:linear-gradient(180deg,#fffafd,#f7fbfa);color:var(--text);line-height:1.55}
.hidden{display:none!important}
.config-warning{padding:10px 16px;background:#fff1c9;color:#7f631b;text-align:center}
.auth-view{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#fff5f8,#f2f8fd,#f0fbf5)}
.auth-card{width:min(460px,100%);background:#fff;border:1px solid #edf0f3;border-radius:24px;box-shadow:var(--shadow);padding:26px}
.auth-card h1{font-size:1.55rem;margin:8px 0}.auth-card p{color:var(--muted)}
.brand-mark{display:inline-block;background:linear-gradient(135deg,var(--pink),var(--blue),var(--green));padding:8px 14px;border-radius:999px;font-weight:900;letter-spacing:.08em}
label{display:block;font-weight:700;margin:9px 0 5px}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:11px;padding:10px 11px;font:inherit;color:inherit;background:#fff}
textarea{min-height:90px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(191,227,208,.45);border-color:#a9cfbd}
.btn{border:0;border-radius:11px;padding:10px 15px;font:inherit;font-weight:700;cursor:pointer}
.btn.primary{background:var(--green);color:#52685f}.btn.primary:hover{background:var(--green2)}
.btn.ghost{background:#f4eef8;color:#6b6175}.btn.full{width:100%;margin-top:12px}.small-btn{padding:7px 10px}
.divider{margin:20px 0 8px;border-top:1px solid var(--line);padding-top:15px;text-align:center;font-weight:800}
.message{min-height:24px;color:#a45d6c}
.app-header{background:linear-gradient(135deg,var(--pink),var(--blue),var(--green));box-shadow:var(--shadow);padding:20px 15px}
.header-inner,.container{max-width:1240px;margin:auto}.header-inner{display:flex;justify-content:space-between;align-items:center;gap:15px}
.app-header h1{margin:0;font-size:clamp(1.3rem,3vw,1.9rem)}.app-header p{margin:3px 0 0;color:#687481}
.user-box{display:flex;align-items:center;gap:10px;text-align:right}.role-badge{display:block;font-size:.8rem;font-weight:800;color:#6b6175}
.container{padding:18px 14px 42px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.tab{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 15px;font:inherit;font-weight:700;color:inherit;cursor:pointer}
.tab.active{background:var(--purple);border-color:#d6c5e6}.panel{display:none}.panel.active{display:block}
.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.summary{background:#fff;border:1px solid #edf0f3;border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}
.summary.green{background:linear-gradient(180deg,#fff,#f0fbf5)}.summary.yellow{background:linear-gradient(180deg,#fff,#fff9e8)}
.summary.red{background:linear-gradient(180deg,#fff,#fff1f3)}.summary.blue{background:linear-gradient(180deg,#fff,#f2f8fd)}
.summary-number{font-size:2rem;font-weight:900;color:#64748b}
.card{background:#fff;border:1px solid #edf0f3;border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:16px}
.card h2{margin:0 0 14px;color:#64748b}.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.filters{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin-bottom:14px}.filters-4{grid-template-columns:2fr 1fr 1fr 1fr}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.span-2{grid-column:span 2}.span-3{grid-column:span 3}
.actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:14px}
.notice{background:#fff8e4;border:1px solid #f2dfac;border-radius:12px;padding:10px 12px;color:#77642e;margin-bottom:14px}
.table-wrap{overflow:auto;border:1px solid #edf0f3;border-radius:13px}
table{width:100%;border-collapse:collapse;min-width:980px;background:#fff}
th,td{padding:10px;border-bottom:1px solid #edf0f3;text-align:left;vertical-align:top}
th{background:#f8f3fb;color:#626b78;position:sticky;top:0;z-index:2}tr:hover td{background:#fffdfd}
.badge{display:inline-block;border-radius:999px;padding:4px 9px;font-size:.82rem;font-weight:800;white-space:nowrap}
.badge.ok{background:#e3f5e9;color:#567862}.badge.low{background:#fff1c9;color:#896b18}
.badge.out{background:#fde9ec;color:#aa5c6d}.badge.over{background:#e8f1fb;color:#557291}
.badge.in{background:#e4f5eb;color:#4d7b5e}.badge.outflow{background:#fdecef;color:#a45d6c}.badge.adjust{background:#eee7f5;color:#6f617f}
.row-actions{display:flex;gap:6px;flex-wrap:wrap}.row-actions .btn{padding:6px 9px;font-size:.82rem}
.muted{color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:30px}.stock{font-weight:900}
.toast{position:fixed;right:16px;bottom:16px;background:#4d5967;color:#fff;padding:12px 16px;border-radius:11px;opacity:0;transform:translateY(18px);transition:.25s;pointer-events:none;z-index:100}
.toast.show{opacity:1;transform:translateY(0)}
@media(max-width:820px){
  .header-inner{align-items:flex-start}.user-box{flex-direction:column;align-items:flex-end}
  .summary-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.span-2,.span-3{grid-column:span 1}
  .filters,.filters-4{grid-template-columns:1fr}.card-head{align-items:flex-start;flex-direction:column}
}
@media(max-width:480px){.container{padding-left:10px;padding-right:10px}.card{padding:14px}.summary{padding:13px}.summary-number{font-size:1.6rem}}

/* ===== Bright pastel blue-pink dashboard + easier transaction search ===== */
:root{--pastel-blue:#69c8ff;--pastel-blue2:#439fe8;--pastel-pink:#ff91c4;--pastel-pink2:#f36eac;--pastel-sky:#bfeaff;--pastel-blush:#ffd3e6;--pastel-lilac:#d9c9ff;--pastel-bg:#f7fbff;}
body{background:linear-gradient(180deg,#eef9ff 0,#fff3f9 48%,#ffffff 100%)}
.app-header{background:linear-gradient(125deg,#56bdf4,#79d5ff 45%,#ff9bc8 100%);color:#fff}.app-header p,.role-badge{color:#fff}
.brand-mark{background:linear-gradient(135deg,#4aa9e9,#7bd8ff,#ff8fc1);color:#fff}.btn.primary{background:linear-gradient(135deg,#4eafea,#6ecdf7);color:#fff}.btn.primary:hover{background:#3f9fdb}.btn.ghost{background:#ffe5f1;color:#a94475}
.tab{border-color:#cbe9fa;color:#387eaa}.tab.active{background:linear-gradient(135deg,#62c7f5,#ff94c5);color:#fff;border-color:transparent}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(91,190,239,.22);border-color:#62bfee}.card{border-color:#dceff9;box-shadow:0 10px 28px rgba(70,155,205,.11)}.card h2{color:#397da8}th{background:#eaf7ff;color:#397da8}
.dashboard-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:2px 0 15px}.dashboard-title{margin:0;color:#367da9;font-size:1.45rem}.dashboard-subtitle{margin:3px 0 0;color:#71899a}.period-select{width:auto;min-width:145px;background:#fff;border:2px solid #a9dcf5;color:#397da8;font-weight:800}
.summary{color:#fff;border:0;min-height:128px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 10px 22px rgba(70,155,205,.14)}.summary.navy{background:linear-gradient(135deg,#4b9fe8,#6bc9f7)}.summary.cyan{background:linear-gradient(135deg,#58c7ef,#82dcfa)}.summary.royal{background:linear-gradient(135deg,#ff83ba,#f59ac7)}.summary.sky{background:linear-gradient(135deg,#9d8ff2,#c6a9fa)}.summary-number{color:#fff;font-size:2.15rem;line-height:1.15}.summary-label{font-weight:800}.summary-hint{font-size:.82rem;color:#fff;margin-top:5px}
.movement-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.movement-card{border-radius:16px;padding:16px 18px;color:#fff;display:grid;gap:4px;box-shadow:0 8px 20px rgba(83,160,205,.13)}.movement-card span{font-weight:800}.movement-card strong{font-size:1.85rem;line-height:1.1}.movement-card small{color:#fff}.movement-card.incoming{background:linear-gradient(135deg,#4fbce9,#76d6f5)}.movement-card.outgoing{background:linear-gradient(135deg,#f276ae,#ff9cc8)}.movement-card.net{background:linear-gradient(135deg,#778ce9,#a999f5)}
.dashboard-split{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.top-card,.alert-card{min-width:0}.mini-pill{background:#e2f5ff;color:#4386ad;border-radius:999px;padding:5px 9px;font-size:.76rem;font-weight:800;white-space:nowrap}.top-list,.alert-list{display:grid;gap:9px}.top-row,.alert-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #e4f1f8}.top-row:last-child,.alert-row:last-child{border-bottom:0}.top-name,.alert-name{font-weight:800;color:#397da8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-meta,.alert-meta{font-size:.82rem;color:#7b8d99}.top-qty{font-weight:900;color:#397da8;background:#e5f6ff;padding:5px 9px;border-radius:10px}.alert-qty{font-weight:900;color:#bd4f82}
.txn-item-field{background:linear-gradient(135deg,#f0faff,#fff2f8);border:1px solid #d5ecf8;border-radius:15px;padding:12px}.txn-search{margin-bottom:8px;border:2px solid #9bd8f5;background:#fff;font-size:.96rem;font-weight:600}.txn-item-select{font-size:.9rem;padding:9px 10px;line-height:1.3;color:#425b6b}.txn-item-select option{font-size:.88rem}.txn-selected-info{margin-top:7px;padding:8px 10px;border-radius:10px;background:#e6f6ff;color:#397da8;font-size:.84rem;font-weight:700}
@media(max-width:820px){.dashboard-split{grid-template-columns:1fr}.movement-grid{grid-template-columns:1fr 1fr 1fr}}@media(max-width:560px){.dashboard-title-row{flex-direction:column}.period-select{width:100%}.movement-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr 1fr}.summary{min-height:112px}.txn-item-select{font-size:.86rem}}

/* ===== Soft baby blue + blush pink pastel theme ===== */
:root{--pastel-blue:#dceffc;--pastel-blue2:#c8e6f7;--pastel-pink:#fbe4ec;--pastel-pink2:#f5d3df;--pastel-sky:#eaf6fd;--pastel-blush:#fff0f5;--pastel-lilac:#eae4f7;--pastel-bg:#f8fbfd;}
body{background:linear-gradient(180deg,#f7fbfe 0%,#fff8fb 52%,#ffffff 100%);color:#465866}
.app-header{background:linear-gradient(125deg,#cfe9f8,#e4f3fb 52%,#f7dce7 100%);color:#405a6b}.app-header p,.role-badge{color:#587080}.brand-mark{background:linear-gradient(135deg,#b8dff4,#d8eef9,#f4cedd);color:#426477}.btn.primary{background:#a9d7ef;color:#315d75}.btn.primary:hover{background:#97cde8}.btn.ghost{background:#fae8ef;color:#8a5c70}.tab{border-color:#d8eaf4;color:#52768a;background:#fff}.tab.active{background:linear-gradient(135deg,#c9e8f8,#f3d7e3);color:#456879;border-color:#cbdfea}input:focus,select:focus,textarea:focus{outline:3px solid rgba(164,210,235,.22);border-color:#a9d7ef}.card{border-color:#e5eef3;box-shadow:0 7px 20px rgba(76,112,132,.07)}.card h2,.dashboard-title{color:#4c6d80}th{background:#edf7fc;color:#527286}.dashboard-subtitle{color:#81939e}.period-select{border:1px solid #c8e3f1;color:#55778a}.summary{color:#405866;box-shadow:0 7px 18px rgba(79,119,142,.08)}.summary.navy{background:#dceffc}.summary.cyan{background:#e5f5fb}.summary.royal{background:#fbe4ec}.summary.sky{background:#eae4f7}.summary-number{color:#405f72}.summary-hint{color:#6f8795}.movement-card{color:#456172;box-shadow:0 6px 16px rgba(75,116,138,.07)}.movement-card small{color:#6f8491}.movement-card.incoming{background:#dceffc}.movement-card.outgoing{background:#fbe4ec}.movement-card.net{background:#eae4f7}.mini-pill{background:#edf7fc;color:#658194}.top-name,.alert-name,.top-qty{color:#557487}.top-qty{background:#edf7fc}.alert-qty{color:#94677a}.txn-item-field{background:linear-gradient(135deg,#f2f9fd,#fff6f9);border-color:#e0edf4}.txn-search{border:1px solid #c7e2f0}.txn-selected-info{background:#edf7fc;color:#557487}

/* ===== Mint + Cream Pastel Theme (Factory 2) ===== */
:root{
  --mint-1:#dff5ea;
  --mint-2:#c9ead9;
  --mint-3:#a9d7c2;
  --mint-4:#7fb99f;
  --cream-1:#fffaf0;
  --cream-2:#f8f0df;
  --cream-3:#efe2c7;
  --sage:#6f8f7f;
  --deep-green:#45695a;
  --text:#46564f;
  --muted:#7a8b83;
  --line:#dfe9e3;
  --shadow:0 8px 24px rgba(83,120,101,.10);
}
body{background:linear-gradient(180deg,#f4fbf7 0%,#fffaf1 52%,#ffffff 100%);color:var(--text)}
.auth-view{background:linear-gradient(135deg,#eef9f3,#fff9ed,#f5fbf8)}
.auth-card{border-color:#e3eee8;box-shadow:var(--shadow)}
.brand-mark{background:linear-gradient(135deg,#a9d7c2,#d8f0e5,#f2e4c7);color:#436353}
.app-header{background:linear-gradient(125deg,#acd9c4 0%,#dff3e8 52%,#f2e4c8 100%);color:#3f5f51;box-shadow:var(--shadow)}
.app-header p,.role-badge{color:#5c7569}
.btn.primary{background:linear-gradient(135deg,#9ed0b8,#bddfce);color:#345849}
.btn.primary:hover{background:#8fc5aa}
.btn.ghost{background:#f6edda;color:#756547}
.tab{border-color:#d6e8de;color:#587768;background:#fff}
.tab.active{background:linear-gradient(135deg,#c8ead9,#f1e5cd);color:#416353;border-color:#c8ddd1}
input,select,textarea{border-color:#dce8e1}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(151,203,176,.22);border-color:#9fcfb6}
.card{border-color:#e3eee8;box-shadow:var(--shadow)}
.card h2,.dashboard-title{color:#4d705f}
th{background:#edf8f2;color:#507260}
tr:hover td{background:#fffdf7}
.dashboard-subtitle{color:#7f9188}
.period-select{border:1px solid #c8e1d4;color:#557666;background:#fffdf8}
.summary{color:#40584d;box-shadow:0 7px 18px rgba(82,119,100,.08)}
.summary.navy{background:linear-gradient(135deg,#c6e7d6,#dff3e8)}
.summary.cyan{background:linear-gradient(135deg,#d7eee2,#eef8f2)}
.summary.royal{background:linear-gradient(135deg,#f0e2c5,#faf2df)}
.summary.sky{background:linear-gradient(135deg,#d9e8d6,#edf2e3)}
.summary-number{color:#416554}
.summary-hint{color:#6e8579}
.movement-card{color:#456256;box-shadow:0 6px 16px rgba(79,114,96,.07)}
.movement-card small{color:#698176}
.movement-card.incoming{background:linear-gradient(135deg,#c2e5d2,#ddf1e6)}
.movement-card.outgoing{background:linear-gradient(135deg,#f0dfbf,#f8ebd1)}
.movement-card.net{background:linear-gradient(135deg,#d6e5d1,#e8efe0)}
.mini-pill{background:#edf8f2;color:#688578}
.top-row,.alert-row{border-bottom-color:#e6efe9}
.top-name,.alert-name,.top-qty{color:#587768}
.top-qty{background:#edf8f2}
.alert-qty{color:#9a7550}
.txn-item-field{background:linear-gradient(135deg,#f2faf6,#fffaf0);border-color:#dcebe3}
.txn-search{border:1px solid #c4dfd1;background:#fff}
.txn-item-select{color:#456156}
.txn-selected-info{background:#edf8f2;color:#587768}
.notice{background:#fff9e9;border-color:#ecdfbd;color:#776845}
.badge.ok,.badge.in{background:#e2f3e9;color:#4f735f}
.badge.low{background:#fff3d7;color:#866d32}
.badge.out,.badge.outflow{background:#f8e9e1;color:#9a6256}
.badge.over,.badge.adjust{background:#e9f0e4;color:#61755a}
.table-wrap{border-color:#e2ece6}
.message{color:#95635d}
.toast{background:#486457}

/* =========================================================
   FACTORY 2 THEME — Lavender + Soft Pink
   Final override block for Cloudflare Pages
   ========================================================= */
:root{
  --lav-1:#f6f1ff;
  --lav-2:#eadfff;
  --lav-3:#d6c3f2;
  --lav-4:#b89adf;
  --pink-1:#fff2f7;
  --pink-2:#f9dce9;
  --pink-3:#efc2d7;
  --deep-purple:#66517f;
  --text:#554d60;
  --muted:#877d91;
  --line:#e8deee;
  --shadow:0 8px 24px rgba(116,91,140,.11);
}
body{
  background:linear-gradient(180deg,#faf7ff 0%,#fff5f9 52%,#ffffff 100%);
  color:var(--text);
}
.auth-view{background:linear-gradient(135deg,#f8f3ff,#fff4f8,#f4efff)}
.auth-card{border-color:#ece4f1;box-shadow:var(--shadow)}
.brand-mark{background:linear-gradient(135deg,#d8c6f2,#f5d6e5,#eadfff);color:#604d78}
.app-header{background:linear-gradient(125deg,#d4c0ef 0%,#eee3fa 52%,#f7d6e5 100%);color:#564567;box-shadow:var(--shadow)}
.app-header p,.role-badge{color:#766480}
.btn.primary{background:linear-gradient(135deg,#bfa3e3,#e8bed2);color:#fff}
.btn.primary:hover{background:linear-gradient(135deg,#ae90d8,#e2adc6)}
.btn.ghost{background:#f7e6ee;color:#875f76}
.tab{border-color:#e6d8ee;color:#755f88;background:#fff}
.tab.active{background:linear-gradient(135deg,#d9c5f2,#f2cfdf);color:#5f4a72;border-color:#d4c1e3}
input,select,textarea{border-color:#e7dfea}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(190,160,224,.22);border-color:#c6a7df}
.card{border-color:#eee5f2;box-shadow:var(--shadow)}
.card h2,.dashboard-title{color:#6b567f}
th{background:#f5effa;color:#705b83}
tr:hover td{background:#fffafd}
.dashboard-subtitle{color:#908497}
.period-select{border:1px solid #dfd0e9;color:#705d82;background:#fff}
.summary{color:#5c5068;box-shadow:0 7px 18px rgba(113,87,137,.09)}
.summary.navy{background:linear-gradient(135deg,#d9c8f1,#eee4fa)}
.summary.cyan{background:linear-gradient(135deg,#eee2f8,#f8effd)}
.summary.royal{background:linear-gradient(135deg,#f4d5e3,#fbe9f1)}
.summary.sky{background:linear-gradient(135deg,#e5d8f5,#f4eafb)}
.summary-number{color:#665177}
.summary-hint{color:#85758d}
.movement-card{color:#5e5268;box-shadow:0 6px 16px rgba(111,83,133,.08)}
.movement-card small{color:#83768b}
.movement-card.incoming{background:linear-gradient(135deg,#d8c5ef,#eee4f8)}
.movement-card.outgoing{background:linear-gradient(135deg,#f3cfdf,#fae6ee)}
.movement-card.net{background:linear-gradient(135deg,#e1d3f2,#f0e7f8)}
.mini-pill{background:#f3edf9;color:#7d698d}
.top-row,.alert-row{border-bottom-color:#eee6f2}
.top-name,.alert-name,.top-qty{color:#735e85}
.top-qty{background:#f4edf9}
.alert-qty{color:#a76583}
.txn-item-field{background:linear-gradient(135deg,#f8f4fc,#fff5f9);border-color:#e8deee}
.txn-search{border:1px solid #dac8e6;background:#fff}
.txn-item-select{color:#66576f}
.txn-selected-info{background:#f3edf9;color:#755f88}
.notice{background:#fff3f8;border-color:#efd7e2;color:#8a6175}
.badge.ok,.badge.in{background:#eee4f7;color:#6f5a82}
.badge.low{background:#fff0f6;color:#9a6a81}
.badge.out,.badge.outflow{background:#f8dfe9;color:#9f607d}
.badge.over,.badge.adjust{background:#e9def5;color:#715d82}
.table-wrap{border-color:#ebe1ef}
.message{color:#9b627e}
.toast{background:#665278}
.config-warning{background:#fff1f6;color:#8a5f73}
.divider{border-top-color:#eadfeb}
