:root{--navy:#0e2e3f;--navy-2:#143f55;--teal:#18a999;--teal-light:#e3f6f3;--blue:#377db6;--orange:#f3a35c;--red:#df6b68;--ink:#172b38;--muted:#71808a;--line:#dce6eb;--surface:#fff;--bg:#f2f6f8;--shadow:0 14px 35px rgba(21,50,65,.08)}
*{box-sizing:border-box}body{margin:0;font-family:'Leelawadee UI','Tahoma',sans-serif;background:var(--bg);color:var(--ink);font-size:16px}button,input,select,textarea{font:inherit}button{cursor:pointer}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--navy);color:#fff;padding:24px 18px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 28px}.brand-mark{width:42px;height:42px;border-radius:13px;background:var(--teal);display:grid;place-items:center;font-size:23px;font-weight:700}.brand strong,.brand span,.sidebar-foot strong,.sidebar-foot span{display:block}.brand strong{font-size:19px}.brand span{font-size:12px;color:#9fc0ce;margin-top:-2px}.sidebar nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:#bcd0d9;text-align:left;padding:13px 14px;border-radius:11px;font-weight:500;display:flex;gap:13px;align-items:center}.nav-item span{width:22px;text-align:center;font-size:20px}.nav-item:hover,.nav-item.active{background:#1d4b5f;color:#fff}.nav-item.active{box-shadow:inset 3px 0 var(--teal)}.sidebar-foot{margin-top:auto;border-top:1px solid #315669;padding:18px 8px 2px;display:flex;align-items:center;gap:11px}.avatar{width:38px;height:38px;background:#dff5f1;color:var(--navy);border-radius:50%;display:grid;place-items:center;font-weight:700}.sidebar-foot strong{font-size:14px}.sidebar-foot span{font-size:10px;color:#8fb1c0}main{margin-left:250px;min-height:100vh}.topbar{height:94px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 40px;gap:18px;position:sticky;top:0;z-index:10}.topbar h1{font-size:25px;margin:0}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.13em;color:var(--teal);margin:0 0 2px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.search{width:310px;background:var(--bg);display:flex;align-items:center;gap:8px;padding:0 14px;border:1px solid transparent;border-radius:11px}.search:focus-within{border-color:var(--teal);background:#fff}.search input{width:100%;border:0;outline:0;background:transparent;padding:11px 0}.icon-button,.menu-button,.close-button{border:0;background:transparent;color:var(--ink)}.icon-button{width:42px;height:42px;border:1px solid var(--line);border-radius:11px;position:relative}.notice-dot{position:absolute;width:8px;height:8px;background:var(--orange);border:2px solid #fff;border-radius:50%;right:8px;top:8px}.menu-button{display:none;font-size:22px}.page{display:none;padding:34px 40px 52px}.page.active{display:block}.welcome-row,.section-head,.panel-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.welcome-row{margin-bottom:25px}.welcome-row h2,.section-head h2{font-size:28px;margin:0 0 4px}.welcome-row p,.section-head p,.panel-head p{color:var(--muted);margin:0}.primary,.secondary{border-radius:10px;padding:11px 18px;font-weight:600}.primary{border:1px solid var(--teal);background:var(--teal);color:#fff}.primary:hover{background:#128d80}.secondary{border:1px solid var(--line);background:#fff;color:var(--ink)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stats article,.panel{background:var(--surface);border:1px solid #e3ebef;border-radius:16px;box-shadow:var(--shadow)}.stats article{padding:20px 22px;min-height:142px;display:flex;flex-direction:column}.stat-label{font-size:14px;color:var(--muted)}.stats strong{font-size:34px;margin:8px 0 1px;line-height:1}.stats small{color:var(--muted);margin-top:auto}.stats .up{color:#138879}.stats .warn{color:#c27832}.progress{height:7px;background:#e9eff2;border-radius:8px;margin-top:auto;overflow:hidden}.progress i{display:block;height:100%;background:var(--teal);border-radius:8px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(310px,.8fr);gap:20px}.panel{padding:22px}.panel-head{margin-bottom:17px}.panel-head h3{font-size:19px;margin:0 0 2px}.panel-head p{font-size:13px}.text-button{border:0;background:transparent;color:var(--teal);font-weight:600}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:12px;color:var(--muted);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line)}td{padding:14px 12px;border-bottom:1px solid #edf2f4;font-size:14px}tr:last-child td{border-bottom:0}.status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700}.status.success{background:#dff5ef;color:#167a67}.status.info{background:#e2f0fa;color:#2a6e9d}.status.warn{background:#fff0dd;color:#aa6528}.status.muted{background:#edf0f2;color:#67737b}.donut-wrap{display:flex;align-items:center;gap:30px;padding:8px 4px}.donut{width:145px;height:145px;border-radius:50%;background:conic-gradient(var(--teal) 0 72%,#e8eff2 72%);display:grid;place-items:center;position:relative}.donut:after{content:"";position:absolute;inset:17px;border-radius:50%;background:#fff}.donut div{z-index:1;text-align:center}.donut strong,.donut span{display:block}.donut strong{font-size:25px}.donut span{font-size:10px;color:var(--muted)}.zone-list{list-style:none;padding:0;margin:0;flex:1}.zone-list li{display:flex;justify-content:space-between;padding:9px 0;font-size:13px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:7px}.teal{background:var(--teal)}.blue{background:var(--blue)}.orange{background:var(--orange)}.timeline{display:grid;gap:4px}.timeline-item{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:10px 2px}.timeline-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--teal-light);color:var(--teal);font-weight:700}.timeline-item b,.timeline-item small{display:block}.timeline-item b{font-size:14px}.timeline-item small,.timeline-item time{font-size:11px;color:var(--muted)}.alert-list{display:grid;gap:5px}.alert-list button{border:0;background:transparent;display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;text-align:left;padding:10px 2px;border-radius:10px}.alert-list button:hover{background:var(--bg)}.alert-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-weight:700}.orange-bg{background:#fff0dd;color:#b36a29}.red-bg{background:#fde9e8;color:#b84f4b}.blue-bg{background:#e2f0fa;color:#2c72a4}.alert-list b,.alert-list small{display:block}.alert-list b{font-size:14px}.alert-list small{font-size:11px;color:var(--muted)}.alert-list em{font-style:normal;font-size:22px;color:#a6b2b9}.section-head{margin-bottom:22px}.data-panel{padding:4px 20px 16px}.data-panel table{min-width:720px}.filter-row{display:flex;gap:12px;padding:18px 0 10px}.filter-row input,.filter-row select,form input,form select,form textarea{border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 12px;outline:none}.filter-row input:focus,.filter-row select:focus,form input:focus,form select:focus,form textarea:focus{border-color:var(--teal)}.filter-row input{flex:1}.location-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px}.tree{display:grid;gap:5px}.tree-row{border:0;background:transparent;text-align:left;padding:11px 13px;border-radius:9px}.tree-row:hover,.active-tree{background:var(--teal-light);color:#107e71}.tree-row.strong{font-weight:700}.tree-row.child{padding-left:35px}.tree-row.grandchild{padding-left:65px}.tree-row.great{padding-left:95px}.location-detail h3{font-size:30px;margin:18px 0 2px}.location-detail>p{color:var(--muted)}dl{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}dl div{padding:15px;background:var(--bg);border-radius:11px}dt{font-size:11px;color:var(--muted)}dd{margin:5px 0 0;font-weight:700}.modal-backdrop{position:fixed;inset:0;background:rgba(8,28,39,.55);z-index:50;display:grid;place-items:center;padding:20px}.modal-backdrop[hidden]{display:none}.modal{width:min(540px,100%);background:#fff;border-radius:18px;padding:26px;box-shadow:0 30px 70px rgba(0,0,0,.2)}.modal-head{display:flex;align-items:start;justify-content:space-between}.modal h2{margin:0;font-size:26px}.close-button{font-size:28px}.modal form{display:grid;gap:16px;margin-top:22px}.modal label{display:grid;gap:6px;font-size:13px;font-weight:600}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.toast{position:fixed;right:25px;bottom:25px;background:var(--navy);color:#fff;padding:13px 18px;border-radius:10px;box-shadow:var(--shadow);transform:translateY(100px);opacity:0;transition:.25s;z-index:60}.toast.show{transform:none;opacity:1}
@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.search{width:240px}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.sidebar.open:after{content:"";position:fixed;left:250px;right:-100vw;top:0;bottom:0;background:rgba(0,0,0,.3)}main{margin-left:0}.menu-button{display:block}.topbar{height:82px;padding:0 18px}.topbar h1{font-size:20px}.top-actions{flex:1}.search{width:100%}.icon-button{display:none}.page{padding:25px 18px 40px}.welcome-row,.section-head{align-items:flex-start}.welcome-row h2,.section-head h2{font-size:23px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stats article{padding:16px;min-height:125px}.stats strong{font-size:29px}.panel{padding:17px}.donut-wrap{justify-content:center}.location-layout{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}}
@media(max-width:480px){.stats{grid-template-columns:1fr}.welcome-row,.section-head{display:grid}.welcome-row .primary,.section-head .primary{width:100%}.topbar .eyebrow{display:none}.search input{font-size:14px}.donut-wrap{align-items:flex-start}.form-grid{grid-template-columns:1fr}}
.demo-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:#fff5e8;color:#9a5b21;font-size:12px;font-weight:700;white-space:nowrap}.demo-badge i{width:7px;height:7px;border-radius:50%;background:var(--orange)}.receiving-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.65fr);gap:20px}.receive-form{padding:25px}.step-title{display:flex;align-items:center;gap:12px;margin:3px 0 16px}.step-title>span{width:34px;height:34px;border-radius:10px;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:700}.step-title h3,.step-title p{margin:0}.step-title h3{font-size:18px}.step-title p{font-size:12px;color:var(--muted)}.field-label{display:grid;gap:7px;font-size:13px;font-weight:600}.field-label select,.receive-item input,.receive-fields select{border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 12px;outline:none}.order-summary{display:grid;grid-template-columns:1.4fr 1fr .65fr;gap:10px;margin:14px 0 26px;padding:15px;background:var(--bg);border-radius:12px}.order-summary small,.order-summary b{display:block}.order-summary small{color:var(--muted);font-size:11px}.order-summary b{font-size:13px;margin-top:3px}.receive-item{display:grid;grid-template-columns:1.8fr 1fr .7fr .7fr;gap:10px;align-items:end;padding:15px;border:1px solid var(--line);border-radius:12px}.receive-item label{display:grid;gap:5px;font-size:11px;color:var(--muted)}.item-name b,.item-name small{display:block}.item-name small{color:var(--muted);font-size:11px;margin-top:3px}.receive-fields{margin-top:14px}.receive-fields label{display:grid;gap:6px;font-size:12px;font-weight:600}.receive-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.receive-side{background:var(--navy);color:#fff;padding:25px}.receive-side h3{font-size:23px;margin:4px 0 20px}.receive-side ol{list-style:none;padding:0;margin:0;display:grid;gap:14px}.receive-side li{display:flex;align-items:center;gap:10px;color:#adc6d2;font-size:13px}.receive-side li span{width:26px;height:26px;border:1px solid #527183;border-radius:8px;display:grid;place-items:center}.receive-side li.done{color:#fff}.receive-side li.done span{background:var(--teal);border-color:var(--teal)}.receive-result{margin-top:26px;padding:18px;border-radius:13px;background:#183f52}.receive-result small,.receive-result strong{display:block}.receive-result strong{font-size:26px;margin:5px 0}.receive-result p{font-size:11px;color:#acc4cf;line-height:1.6;margin-bottom:0}.db-version{padding:8px 12px;background:var(--navy);color:#fff;border-radius:9px;font-size:12px;font-weight:700}.db-summary{display:grid;grid-template-columns:100px 1fr auto;align-items:center;gap:20px;background:var(--navy);color:#fff;padding:18px 24px;border-radius:15px;margin-bottom:18px}.db-summary>div:first-child{display:flex;align-items:baseline;gap:7px}.db-summary strong{font-size:38px;color:#52d6c5}.db-summary p{font-size:14px;color:#c1d5de;margin:0}.legend{display:flex;gap:13px;font-size:11px}.legend span{display:flex;align-items:center;gap:5px}.key-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.key-dot.pk{background:var(--orange)}.key-dot.fk{background:var(--teal)}.schema-board{display:grid;gap:12px}.schema-group{border:1px solid var(--line);border-radius:14px;padding:15px 18px}.schema-group h3{font-size:13px;margin:0 0 10px}.product-group{background:#eef9f7}.deposit-group{background:#fff8ef}.stock-group{background:#eef6fb}.schema-row{display:flex;align-items:center;justify-content:center;gap:14px}.schema-row article{flex:0 1 210px;background:#fff;border:1px solid #cbdbe3;border-radius:10px;padding:10px 13px}.schema-row article b,.schema-row article small{display:block}.schema-row article b{font-size:13px}.schema-row article small{color:var(--muted);font-size:10px;margin-top:3px}.schema-row em{font-style:normal;font-size:23px;color:#9aacb5}.schema-row.four article{flex-basis:190px}.scope-note{display:flex;align-items:center;gap:18px;margin-top:18px;padding:14px 18px;background:#fff;border-left:4px solid var(--teal);border-radius:8px;box-shadow:var(--shadow)}.scope-note span{font-size:13px}.scope-note small{margin-left:auto;color:var(--muted)}
@media(max-width:1100px){.demo-badge{display:none}.receiving-grid{grid-template-columns:1fr}.schema-row{flex-wrap:wrap}.schema-row em{display:none}.db-summary{grid-template-columns:90px 1fr}.db-summary .legend{grid-column:1/-1}.scope-note{align-items:flex-start;flex-wrap:wrap}.scope-note small{margin-left:0;width:100%}}
@media(max-width:760px){.receive-item{grid-template-columns:1fr 1fr}.item-name{grid-column:1/-1}.order-summary{grid-template-columns:1fr}.db-summary{grid-template-columns:1fr}.schema-row article{flex-basis:100%}.scope-note{display:grid}}
.cell-sub{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.login-screen{position:fixed;inset:0;background:radial-gradient(circle at 15% 10%,#1d596d 0,transparent 30%),var(--navy);z-index:100;display:grid;place-items:center;padding:28px}.login-screen.hidden{display:none}.login-shell{width:min(900px,100%)}.login-brand{display:flex;align-items:center;gap:18px;color:#fff;margin-bottom:34px}.login-brand .brand-mark{width:58px;height:58px;font-size:29px}.login-brand h1{font-size:34px;margin:2px 0}.login-brand>div>p:last-child{color:#a9c5d1;margin:0}.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.role-card{border:1px solid rgba(255,255,255,.15);border-radius:18px;padding:26px;text-align:left;background:#fff;color:var(--ink);box-shadow:0 24px 60px rgba(0,0,0,.18);transition:.2s}.role-card:hover{transform:translateY(-4px);border-color:var(--teal)}.role-card .role-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:27px;margin-bottom:28px}.member-role .role-icon{background:var(--teal-light);color:var(--teal)}.staff-role .role-icon{background:#e6f0f7;color:var(--blue)}.role-card small,.role-card strong,.role-card p,.role-card em{display:block}.role-card small{font-size:10px;font-weight:700;letter-spacing:.09em;color:var(--muted)}.role-card strong{font-size:23px;margin:5px 0}.role-card p{min-height:50px;color:var(--muted);font-size:14px}.role-card em{font-style:normal;font-weight:700;color:var(--teal);margin-top:24px}.login-note{text-align:center;color:#8eafbd;font-size:12px;margin-top:24px}.member-only{display:none}.role-badge{padding:7px 10px;border-radius:999px;background:#e6f0f7;color:#28658d;font-size:11px;font-weight:700}.logout-button{border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap}.logout-button:hover{color:var(--navy)}body.member-mode .staff-only{display:none}body.member-mode .member-only{display:flex}body.member-mode .search,body.member-mode .icon-button{display:none}.member-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 32px;border-radius:18px;background:linear-gradient(120deg,var(--navy),#1b586c);color:#fff;margin-bottom:18px}.member-hero h2{font-size:30px;margin:2px 0}.member-hero>div>p:last-child{color:#b9d0da;margin:0}.member-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.member-stats article{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;box-shadow:var(--shadow)}.member-stats span,.member-stats strong,.member-stats small{display:block}.member-stats span{font-size:13px;color:var(--muted)}.member-stats strong{font-size:32px;margin-top:8px;color:var(--navy)}.member-stats small{font-size:11px;color:var(--muted)}.member-latest{padding:22px}.member-order-list{display:grid;gap:8px}.member-order-item{display:grid;grid-template-columns:1.2fr 1fr auto;gap:16px;align-items:center;padding:13px 2px;border-bottom:1px solid #edf2f4}.member-order-item:last-child{border:0}.member-order-item b,.member-order-item small{display:block}.member-order-item small{color:var(--muted);font-size:11px}
@media(max-width:760px){.login-brand h1{font-size:27px}.role-grid{grid-template-columns:1fr}.role-card p{min-height:0}.role-card .role-icon{margin-bottom:15px}.member-hero{align-items:flex-start;display:grid}.member-stats{grid-template-columns:1fr}.member-order-item{grid-template-columns:1fr}.logout-button{font-size:0}.logout-button:after{content:'ออก';font-size:12px}}
.login-form{width:min(420px,100%);background:#fff;border-radius:18px;padding:26px;display:grid;gap:16px;box-shadow:0 24px 60px rgba(0,0,0,.18)}.login-form label{display:grid;gap:6px;font-size:13px;font-weight:600}.login-form input{border:1px solid var(--line);border-radius:9px;background:#fff;padding:11px 12px;outline:none}.login-form input:focus{border-color:var(--teal)}.login-form .primary{padding:13px 18px}.login-form .primary:disabled{opacity:.6;cursor:wait}.login-error{margin:0;padding:10px 12px;border-radius:9px;background:#fde9e8;color:#b84f4b;font-size:13px}.login-error[hidden]{display:none}.demo-badge.offline{background:#fde9e8;color:#b84f4b}.demo-badge.offline i{background:var(--red)}.empty-state{color:var(--muted);margin:6px 2px}.tree-zone{font-weight:700;color:var(--navy);padding:11px 13px 4px}.tree-row.child{padding-left:35px}button:disabled{cursor:not-allowed;opacity:.65}.receive-fields input[readonly]{background:var(--bg);color:var(--muted)}
#apiBadge{background:#e3f6f3;color:#107e71}#apiBadge i{background:var(--teal)}#apiBadge.offline{background:#fde9e8;color:#b84f4b}#apiBadge.offline i{background:var(--red)}

.head-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.link-button{border:0;background:transparent;color:#8fb1c0;font-size:11px;padding:2px 0 0;text-align:left;text-decoration:underline}.link-button:hover{color:#fff}.nav-count{margin-left:auto;background:var(--orange);color:#fff;border-radius:999px;font-size:11px;padding:2px 8px;font-weight:700}.nav-count[hidden]{display:none}
.mini{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600;color:var(--ink)}.mini.primary-mini{background:var(--teal);border-color:var(--teal);color:#fff}.mini.danger{color:#b84f4b}.mini:hover{filter:brightness(.96)}.row-actions{display:flex;gap:6px;justify-content:flex-end}
.form-error{margin:0;padding:10px 12px;border-radius:9px;background:#fde9e8;color:#b84f4b;font-size:13px}.form-error[hidden]{display:none}.form-static{margin:0;padding:12px 14px;background:var(--bg);border-radius:10px;font-size:14px;line-height:1.6}.form-hint{font-weight:400;color:var(--muted);font-size:12px}
.modal-backdrop[data-dynamic]{z-index:70}
.toast{bottom:92px}
.ai-fab{position:fixed;right:25px;bottom:25px;z-index:55;border:0;border-radius:999px;background:linear-gradient(120deg,var(--navy),#1b586c);color:#fff;padding:13px 20px;font-weight:700;box-shadow:0 14px 35px rgba(14,46,63,.35)}.ai-fab:hover{filter:brightness(1.1)}
.ai-panel{position:fixed;right:25px;bottom:25px;width:min(400px,calc(100vw - 24px));height:min(600px,calc(100vh - 50px));background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 70px rgba(0,0,0,.25);z-index:65;display:flex;flex-direction:column;overflow:hidden}.ai-panel[hidden]{display:none}
.ai-panel header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;background:var(--navy);color:#fff}.ai-panel header b,.ai-panel header small{display:block}.ai-panel header small{font-size:11px;color:#a9c5d1;margin-top:2px}.ai-panel .close-button{color:#fff}
.ai-messages{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}.ai-msg{max-width:88%;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.ai-msg.user{align-self:flex-end;background:var(--teal);color:#fff;border-bottom-right-radius:4px}.ai-msg.bot{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px}.ai-msg.note{align-self:center;background:#fff5e8;color:#9a5b21;font-size:12px;text-align:center}.ai-msg.error{align-self:flex-start;background:#fde9e8;color:#b84f4b}.ai-msg.typing{color:var(--muted);font-style:italic}
.ai-suggest{display:flex;gap:6px;flex-wrap:wrap;padding:8px 14px 0;background:var(--bg)}.ai-suggest:empty{display:none}.ai-suggest button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 11px;font-size:12px;color:var(--navy)}.ai-suggest button:hover{border-color:var(--teal)}
.ai-panel form{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:#fff}.ai-panel form input{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:10px 12px;outline:none}.ai-panel form input:focus{border-color:var(--teal)}.ai-panel form button{padding:10px 16px}
@media(max-width:760px){.ai-fab{right:14px;bottom:14px;padding:11px 16px}.ai-panel{right:8px;bottom:8px;height:calc(100vh - 16px)}.toast{bottom:76px;right:14px}.head-actions{justify-content:flex-start}.row-actions{flex-wrap:wrap}}
.status.danger{background:#fde9e8;color:#b84f4b}

.account-chip{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 14px 4px 4px}.account-chip:hover{border-color:var(--teal)}.account-chip .avatar{width:34px;height:34px;background:var(--teal);color:#fff}.account-chip-name{font-size:13px;font-weight:600;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-head{display:flex;gap:14px;align-items:center}.avatar.big{width:58px;height:58px;font-size:24px;background:var(--teal);color:#fff;flex:none}
.account-info{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.account-info div{background:var(--bg);border-radius:11px;padding:12px 14px}.account-info small{display:block;font-size:11px;color:var(--muted)}.account-info b{display:block;margin-top:3px;font-size:14px;word-break:break-all}
.account-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.danger-outline{color:#b84f4b;border-color:#f0c9c7}
@media(max-width:760px){.account-chip-name{display:none}.account-chip{padding:4px}}

/* ---- Login / sign-up ---- */
.login-screen{background:radial-gradient(1200px 600px at 10% -10%,#1f6a7d 0,transparent 60%),radial-gradient(900px 500px at 100% 110%,#14566a 0,transparent 55%),var(--navy);overflow:auto;align-items:center}
.auth-layout{width:min(1040px,100%);display:grid;grid-template-columns:1.05fr .95fr;border-radius:26px;overflow:hidden;box-shadow:0 40px 90px rgba(0,0,0,.4);background:#fff;margin:auto}
.auth-hero{position:relative;padding:44px 42px;color:#fff;background:linear-gradient(155deg,#10475a 0%,#0c3345 55%,#0a2a3a 100%);overflow:hidden;display:flex;flex-direction:column}
.auth-hero:before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-160px;top:-140px;background:radial-gradient(circle,rgba(24,176,158,.35),transparent 65%)}
.auth-logo{display:flex;align-items:center;gap:12px;position:relative}.auth-logo strong,.auth-logo span{display:block}.auth-logo strong{font-size:20px}.auth-logo span{font-size:12px;color:#9fc0ce;margin-top:-2px}
.auth-hero h1{font-size:30px;line-height:1.35;margin:46px 0 12px;position:relative}.auth-hero>p{color:#b9d3dd;margin:0 0 28px;line-height:1.65;position:relative}
.auth-points{list-style:none;margin:0;padding:0;display:grid;gap:16px;position:relative}.auth-points li{display:flex;gap:14px;align-items:flex-start}.auth-points i{font-style:normal;flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);font-size:18px}.auth-points b,.auth-points small{display:block}.auth-points small{color:#9fc0ce;font-size:12.5px;margin-top:2px}
.auth-art{margin-top:auto;padding-top:34px;display:grid;grid-template-columns:repeat(6,1fr);gap:8px;opacity:.9;position:relative}.auth-art span{aspect-ratio:1;border-radius:9px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12)}.auth-art span:nth-child(2),.auth-art span:nth-child(5){background:rgba(24,176,158,.45);border-color:rgba(24,176,158,.7)}.auth-art span:nth-child(4){background:rgba(255,255,255,.18)}
.auth-card{padding:34px 40px 36px;background:#fff;color:var(--ink);display:flex;flex-direction:column;justify-content:center;min-width:0}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--bg);border-radius:12px;padding:4px;margin-bottom:24px}.auth-tabs button{border:0;background:transparent;border-radius:9px;padding:10px;font-weight:600;color:var(--muted)}.auth-tabs button.active{background:#fff;color:var(--navy);box-shadow:0 2px 8px rgba(14,46,63,.12)}
.auth-form{display:grid;gap:14px}.auth-form[hidden],.auth-done[hidden]{display:none}.auth-title h2{margin:0 0 3px;font-size:25px}.auth-title p{margin:0 0 4px;color:var(--muted);font-size:14px}
.auth-form label{display:grid;gap:6px;font-size:13px;font-weight:600}.auth-form input{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px 13px;outline:none;transition:border-color .15s,box-shadow .15s}.auth-form input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(24,176,158,.15)}
.auth-form .primary{padding:13px 18px;font-size:15px;margin-top:2px}.auth-form .primary:disabled{opacity:.6;cursor:wait}
.pw-wrap{position:relative;display:block}.pw-wrap input{padding-right:62px}.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--teal);font-size:12px;font-weight:700;padding:6px 8px;border-radius:7px}.pw-toggle:hover{background:var(--teal-light)}
.auth-switch{text-align:center;margin:2px 0 0;font-size:13px;color:var(--muted)}.auth-switch .link-button{color:var(--teal);font-size:13px;font-weight:700;text-decoration:none}.auth-switch .link-button:hover{text-decoration:underline}
.auth-done{text-align:center;display:grid;gap:12px;justify-items:center;padding:20px 0}.auth-done h2{margin:0}.auth-done p{margin:0;color:var(--muted);line-height:1.65;max-width:340px}.auth-done-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--teal-light);color:var(--teal);font-size:30px;font-weight:700}
.reg-panel{margin-bottom:20px;border-color:#f3d9b6;background:#fffaf2}.reg-panel[hidden]{display:none}.reg-panel td small{display:block;color:var(--muted);font-size:11px}
@media(max-width:860px){.auth-layout{grid-template-columns:1fr}.auth-hero{padding:28px 26px}.auth-hero h1{font-size:23px;margin:24px 0 8px}.auth-hero>p{margin-bottom:0}.auth-points,.auth-art{display:none}.auth-card{padding:26px 22px 28px}}
@media(max-width:480px){.login-screen{padding:12px}.auth-layout{border-radius:18px}.auth-form .form-grid{grid-template-columns:1fr}}

.demo-badge[hidden]{display:none}
.notif-wrap{position:relative}.icon-button{cursor:pointer}.icon-button:hover{border-color:var(--teal)}.notice-dot[hidden]{display:none}
.notif-panel{position:absolute;right:0;top:calc(100% + 10px);width:340px;max-width:calc(100vw - 24px);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(14,46,63,.2);z-index:40;overflow:hidden}.notif-panel[hidden]{display:none}
.notif-head{padding:13px 16px;font-weight:700;border-bottom:1px solid var(--line)}.notif-item{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:center;width:100%;border:0;background:transparent;text-align:left;padding:12px 16px}.notif-item:hover{background:var(--bg)}.notif-item b,.notif-item small{display:block}.notif-item small{color:var(--muted);font-size:12px;margin-top:1px}.notif-empty{padding:26px 16px;text-align:center;color:var(--muted);font-size:14px}
.onboarding{margin-bottom:20px;border-color:#cfe9e4;background:linear-gradient(135deg,#f3fbf9,#fff)}.onboard-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.onboard-steps li{display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}.onboard-steps li.done{background:var(--teal-light);border-color:#bfe6df}.onboard-steps b{display:flex;align-items:center;gap:8px;font-size:14px}.onboard-steps .step-no{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--bg);font-size:12px;font-weight:700;color:var(--muted)}.onboard-steps li.done .step-no{background:var(--teal);color:#fff}.onboard-steps small{color:var(--muted);font-size:12px}.onboard-steps .mini{justify-self:start}
.empty-row td{text-align:center;color:var(--muted);padding:34px 12px}
@media(max-width:1000px){.onboard-steps{grid-template-columns:1fr 1fr}}@media(max-width:560px){.onboard-steps{grid-template-columns:1fr}.notif-panel{position:fixed;left:12px;right:12px;top:84px;width:auto}}
.page{padding-bottom:96px}

/* ---- polish pass 2: toolkit, summaries, selects, footer ---- */
select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2367737b' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center;padding-right:34px!important;cursor:pointer}
.tv-bar{align-items:center;padding:16px 0 12px}.tv-bar input{flex:1;min-width:0}.tv-bar select{min-width:150px}.tv-count{font-size:12px;color:var(--muted);white-space:nowrap;margin-left:auto}
.tv-pager{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 0 2px;font-size:13px;color:var(--muted)}.tv-pager .mini:disabled{opacity:.4;cursor:default}
.sum-strip{display:flex;gap:12px;margin:-4px 0 18px;overflow-x:auto;padding-bottom:2px}.sum-chip{flex:1 1 0;min-width:150px;background:#fff;border:1px solid #e3ebef;border-radius:13px;padding:12px 16px;box-shadow:var(--shadow);border-left:4px solid #cfdbe1}.sum-chip small{display:block;font-size:12px;color:var(--muted)}.sum-chip strong{display:block;font-size:24px;line-height:1.25}.sum-chip.ok{border-left-color:var(--teal)}.sum-chip.warn{border-left-color:var(--orange)}
.page.active{animation:pageIn .25s ease}@keyframes pageIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
tbody tr:not(.empty-row):hover td{background:#f6fafb}
th{position:sticky;top:0;background:#fff;text-transform:none}
.empty-row td{padding:44px 12px;font-size:14px}
button,.primary,.secondary,.mini{transition:background .15s,border-color .15s,box-shadow .15s,transform .1s}.primary:active,.secondary:active,.mini:active{transform:translateY(1px)}
:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
input[readonly]{background:#f3f7f8;color:var(--muted)}
.receive-fields input[readonly],.receive-fields input:read-only{border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:#f3f7f8;outline:none}
.app-footer{display:flex;gap:24px;align-items:center;flex-wrap:wrap;padding:20px 40px 28px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;margin-top:8px}.app-footer b{color:var(--ink)}.foot-ok{margin-left:auto;display:flex;align-items:center;gap:6px}.foot-ok i{width:8px;height:8px;border-radius:50%;background:#2fbf71;display:inline-block}
@media(max-width:760px){.app-footer{padding:18px;gap:8px 16px}.foot-ok{margin-left:0}.tv-bar{flex-wrap:wrap}.tv-bar input{flex-basis:100%}.tv-count{margin-left:0}.sum-chip{min-width:130px}}
@media print{.sidebar,.topbar,.app-footer,.tv-bar,.tv-pager,#aiFab,.row-actions{display:none!important}main{margin:0}.page.active{padding:0}}
.tv-bar[hidden],.tv-pager[hidden],.sum-strip[hidden]{display:none!important}
.sum-strip{padding:2px 2px 10px;margin:-6px -2px 10px}
main{display:flex;flex-direction:column}.page.active{flex:1}.app-footer{margin-top:auto}
.sum-strip{overflow:visible;flex-wrap:wrap;padding:0;margin:-6px 0 18px}
@media(max-width:760px){.sum-strip{overflow-x:auto;flex-wrap:nowrap;padding:2px 2px 10px;margin:-6px -2px 8px}}
.filter-row select,select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2367737b' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 12px center!important}
