:root{font-family:IBM Plex Sans Thai,sans-serif;color:#1b2837;background:#f6f8f8;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.52;cursor:not-allowed}a{color:inherit}main{max-width:1200px;margin:auto;padding:0 30px 90px}.app-shell{min-height:100vh}.topbar{height:76px;border-bottom:1px solid #e5eaea;background:#fff;display:flex;align-items:center;padding:0 max(30px,calc((100vw - 1140px)/2));gap:12px}.brand-mark{width:36px;height:36px;border-radius:10px;background:#0c907c;color:#fff;display:grid;place-items:center}.brand-name{font-weight:700;font-size:21px;letter-spacing:-.7px}.brand-dot{color:#12a58c}.brand-caption{font-family:Outfit,sans-serif;font-size:10px;font-weight:700;letter-spacing:1.8px;color:#99a6ac;border-left:1px solid #d9e1e2;padding-left:17px;margin-left:4px}.top-status{margin-left:auto;font-size:12px;color:#6d8185;display:flex;gap:8px;align-items:center}.status-dot{width:8px;height:8px;background:#19ac8d;border-radius:50%;box-shadow:0 0 0 4px #e4f7f1}.hero{display:flex;align-items:center;justify-content:space-between;gap:36px;padding:49px 0 42px}.eyebrow,.section-index{font:700 11px Outfit,sans-serif;letter-spacing:2px;color:#159582}.eyebrow{display:flex;align-items:center;gap:10px}.small-line{width:22px;height:2px;background:#159582}.hero h1{font-size:44px;line-height:1.25;letter-spacing:-1.7px;margin:15px 0 12px;font-weight:700}.hero h1 span{color:#11967f}.hero p{color:#74818b;font-size:14px;margin:0}.hero-metric{min-width:375px;background:linear-gradient(125deg,#127f76,#0caa8d);color:#fff;padding:27px 30px;border-radius:20px;box-shadow:0 20px 42px #09766626;position:relative;overflow:hidden}.hero-metric:after{content:"";position:absolute;width:240px;height:240px;border:1px solid #ffffff2d;border-radius:50%;right:-70px;top:-140px;box-shadow:0 0 0 30px #ffffff0a,0 0 0 65px #ffffff0a}.metric-label{display:flex;gap:8px;align-items:center;color:#daf7ef;font-size:13px}.metric-number{font-family:Outfit,IBM Plex Sans Thai,sans-serif;font-size:37px;font-weight:700;letter-spacing:-1px;margin:5px 0 13px}.metric-foot{display:flex;gap:15px;align-items:center;font-size:11px;color:#d8f5ed}.metric-pill{background:#ffffff25;padding:6px 10px;border-radius:100px;display:inline-flex;align-items:center;gap:5px}.workspace-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{background:#fff;border:1px solid #e6eceb;border-radius:18px;padding:26px 28px;box-shadow:0 5px 20px #173a3907}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.section-heading h2{font-size:21px;letter-spacing:-.5px;margin:4px 0 0;font-weight:700}.section-desc{font-size:12px;color:#819096;margin:8px 0 20px}.icon-bubble{width:42px;height:42px;background:#eff8f5;color:#11947d;border-radius:13px;display:grid;place-items:center}.dropzone{border:1.5px dashed #bad9d3;background:#f8fcfb;border-radius:13px;min-height:154px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;color:#1e665e;outline:none}.dropzone:hover,.dropzone:focus{border-color:#11a287;background:#f0faf7}.dropzone.chosen{border-style:solid}.dropzone strong{font-size:14px;max-width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropzone small{color:#8a9c9b;font-size:11px}.upload-icon{width:46px;height:46px;background:#e7f5f0;border-radius:13px;display:grid;place-items:center;margin-bottom:5px}.primary,.secondary{border:none;border-radius:10px;padding:11px 18px;min-height:43px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:13px;font-weight:600}.primary{background:#10977f;color:#fff}.primary:not(:disabled):hover{background:#087e6c}.secondary{background:#f1f6f5;color:#27786d}.secondary:hover{background:#e5f0ed}.full{width:100%;margin-top:14px}.helper-note{display:flex;gap:8px;align-items:center;margin-top:16px;color:#77918d;font-size:11px}.helper-note svg{color:#139a81;flex-shrink:0}.snapshot-row{display:flex;align-items:center;gap:15px;padding:15px 0;border-top:1px solid #eef2f1}.snapshot-row:first-of-type{border-top:none}.digit-icon{width:43px;height:43px;flex:none;border-radius:11px;background:#edf7f4;color:#168e78;font:700 21px Outfit,sans-serif;display:flex;align-items:center;justify-content:center;gap:2px}.digit-icon small{font:600 10px IBM Plex Sans Thai,sans-serif;align-self:center}.snapshot-content{min-width:0}.digit-title{font-size:13px;font-weight:700}.category-chips{display:flex;flex-wrap:wrap;gap:9px;font-size:11px;color:#819196;margin-top:3px}.category-chips b{color:#374c53;font-weight:600;margin-left:2px}.review-panel,.totals-panel,.image-list-panel{margin-top:20px}.badge{border-radius:100px;padding:5px 10px;font-size:10px;font-weight:600;white-space:nowrap}.badge.review{background:#fff2dd;color:#b87819}.badge.confirmed{background:#e7f8ef;color:#168957}.badge.failed{background:#ffefed;color:#bd584a}.empty-state{min-height:205px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:#95a2a6;font-size:12px}.empty-state strong{color:#45585d;font-size:14px}.empty-icon{width:56px;height:56px;border-radius:15px;display:grid;place-items:center;background:#f0f5f4;color:#a1b4b1;margin-bottom:4px}.review-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:26px;margin-top:22px}.preview-column{background:#f7f9f8;border-radius:12px;padding:12px;align-self:start}.preview-header{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:600;margin-bottom:10px}.preview-header span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.preview-column a{display:block;background:#e8eeeb;border-radius:8px;text-align:center}.preview-column img{max-width:100%;max-height:460px;object-fit:contain;display:block;margin:auto;border-radius:8px}.preview-column small{display:block;text-align:center;color:#899795;margin-top:9px;font-size:10px}.warning-box{display:flex;align-items:flex-start;gap:10px;border:1px solid #f5e7b5;background:#fffbef;color:#966b15;padding:12px;border-radius:10px;font-size:12px;margin-bottom:16px}.warning-box svg{flex:none}.warning-box ul{margin:4px 0 0;padding-left:18px}.editor-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:4px 0 14px}.editor-top strong{font-size:14px;display:block}.editor-top span{display:block;font-size:11px;color:#849396}.text-action,.refresh-button{border:none;background:none;color:#168d78;font-size:12px;font-weight:600;display:flex;align-items:center;gap:5px;white-space:nowrap}.table-scroll{overflow-x:auto}.edit-table,.totals-table{width:100%;border-collapse:collapse;text-align:left}.edit-table th,.totals-table th{color:#9aa8a8;background:#f7faf9;font-size:11px;font-weight:600;padding:9px 10px;white-space:nowrap}.edit-table th:first-child,.totals-table th:first-child{border-radius:7px 0 0 7px}.edit-table td,.totals-table td{padding:8px 9px;border-bottom:1px solid #f0f3f2;font-size:12px}.edit-table input,.edit-table select{border:1px solid #e1e8e7;background:#fff;border-radius:7px;padding:7px 8px;height:33px;width:100%;min-width:68px;color:#253b40}.edit-table input:disabled,.edit-table select:disabled{background:#f6f8f7}.edit-table td:first-child{width:85px}.edit-table td:nth-child(2){width:105px}.edit-table td:nth-child(3){width:110px}.row-uncertain{background:#fffaf0}.uncertain-label{font-size:10px;color:#c28324;white-space:nowrap}.checked-icon{color:#18a17d}.icon-button{border:none;background:transparent;color:#a9b3b4;padding:5px}.icon-button:hover,.delete-button:hover{color:#d15049}.review-hint{font-size:10px;color:#9ca8a8;margin-top:13px}.acknowledge{display:flex;align-items:center;gap:6px;margin-top:13px;font-size:11px;color:#6c7d80}.acknowledge input{accent-color:#15977f}.editor-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.mini-empty{text-align:center;color:#9ca7a8;font-size:12px;padding:32px}.tabs{display:flex;border-bottom:1px solid #eaf0ee;gap:28px;margin:21px 0 8px}.tabs button{background:none;border:0;border-bottom:2px solid transparent;color:#8b999b;padding:0 3px 11px;font-size:12px;font-weight:600}.tabs button.active{border-color:#11947f;color:#0d8572}.totals-table th,.totals-table td{padding:11px 14px}.totals-table tbody tr:hover{background:#fafcfb}.right{text-align:right!important}.number-cell{font:700 16px Outfit,sans-serif;letter-spacing:1px}.category-tag{display:inline-block;border-radius:5px;background:#edf7f4;color:#168771;padding:4px 10px;font-size:11px}.amount-cell{font:600 14px Outfit,sans-serif;color:#263b40}.permutation-toggle{margin-top:17px;color:#0f8d79;border:0;background:#f0f8f5;padding:10px 14px;border-radius:8px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:5px}.permutation-toggle span{color:#8d9d9b;font-weight:400}.permutation-note{font-size:11px;color:#839393;margin:12px 0}.permutation-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.permutation-item{border:1px solid #e8efed;border-radius:8px;padding:9px 11px;display:flex;justify-content:space-between;font-size:12px;gap:8px}.permutation-item small{color:#91a2a0;font-size:10px}.count-bubble{display:inline-block;font:600 12px Outfit,sans-serif;background:#eaf5f2;color:#168d79;padding:3px 8px;border-radius:10px;vertical-align:middle}.image-list{margin-top:18px}.image-row{display:flex;align-items:center;border-top:1px solid #eff3f1}.image-row.selected{background:#f8fcfa}.image-open{border:0;background:none;display:flex;align-items:center;flex:1;min-width:0;text-align:left;gap:13px;padding:12px 8px}.image-open>img{width:48px;height:48px;object-fit:cover;border-radius:8px;background:#edf3f0}.image-meta{min-width:0;flex:1}.image-meta strong{font-size:12px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.image-meta small{color:#95a3a5;font-size:10px}.row-total{font:600 14px Outfit,sans-serif;min-width:85px;text-align:right;color:#254247}.row-chevron{color:#b4c0c0}.delete-button{border:0;background:transparent;color:#9caaac;padding:10px;margin-right:5px}.empty-state.compact{min-height:110px}.error-banner{border:1px solid #ffcec8;background:#fff5f3;border-radius:10px;padding:13px 16px;color:#a43a33;display:flex;gap:9px;align-items:center;margin-bottom:17px;font-size:12px}.error-banner span{flex:1}.error-banner button{background:none;border:0;color:inherit}footer{border-top:1px solid #e5ebea;max-width:1140px;margin:auto;padding:22px 0 40px;display:flex;justify-content:space-between;color:#9aaaad;font-size:11px}footer>span:first-child{font-weight:700;color:#3d565a}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:950px){.review-layout{grid-template-columns:260px minmax(0,1fr)}.permutation-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){main{padding:0 16px 65px}.topbar{padding:0 17px;height:63px}.brand-caption{display:none}.hero{flex-direction:column;align-items:stretch;padding:36px 0 22px;gap:22px}.hero h1{font-size:34px}.hero-metric{min-width:0}.workspace-grid,.review-layout{grid-template-columns:1fr}.preview-column img{max-height:290px}.panel{padding:21px 17px}.image-open{gap:8px}.image-meta small,.image-row .badge{display:none}.row-total{min-width:70px;font-size:12px}.row-chevron{display:none}.permutation-grid{grid-template-columns:repeat(2,1fr)}footer{padding:20px 16px 35px;gap:20px}}.source-text{display:block;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#a0aaa8;font-size:9px;margin-top:3px}.reviewed-button{background:#fff3dc;border:0;border-radius:5px;color:#a87016;padding:4px 6px;font-size:10px;white-space:nowrap}.image-totals{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.image-totals span{background:#f0f8f6;border-radius:7px;padding:5px 8px;color:#657f7b;font-size:10px}.image-totals b{color:#237d6d;margin-left:3px}.image-breakdown{margin-top:13px;border:1px solid #e8f0ed;border-radius:8px;padding:8px 10px;font-size:11px;color:#55746d}.image-breakdown summary{cursor:pointer;font-weight:600}.image-breakdown>div{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.image-breakdown span{background:#f7faf9;border-radius:6px;padding:5px 8px}.image-breakdown b{color:#217f6d}.bot-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:18px;background:#11262a94}.bot-dialog{width:min(100%,390px);background:#fff;border-radius:18px;padding:26px;box-shadow:0 25px 70px #00000038}.bot-dialog h2{font-size:21px;margin:0 0 8px}.bot-dialog p{font-size:13px;line-height:1.6;color:#65777a;margin:0 0 20px}.bot-dialog>div{min-height:72px}.bot-dialog button{margin-top:18px;width:100%}.app-layout{display:grid;grid-template-columns:238px minmax(0,1fr)}.app-content{min-width:0}.sidebar{background:#fff;border-right:1px solid #e5eaea;min-height:100vh;padding:20px 14px;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:2px 11px 25px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav-item{width:100%;border:0;background:transparent;border-radius:9px;padding:11px 12px;color:#536b70;text-align:left;display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600}.nav-item svg:last-child:not(:first-child){margin-left:auto}.nav-item:hover{background:#f0f7f5}.nav-item.active{background:#e7f5f0;color:#0d8773}.nav-submenu{margin:0 0 5px 28px;padding-left:10px;border-left:1px solid #e2ebe8}.nav-submenu .nav-item{padding:8px 10px;font-weight:500}.nav-empty{display:block;padding:8px 10px;color:#9aa8a8;font-size:11px}.app-content .topbar{padding:0 30px}.app-content main{max-width:1200px}.workspace-grid.single{grid-template-columns:1fr}.field-label{display:block;font-size:12px;font-weight:600;color:#607776;margin:4px 0 7px}.wide-select,.inline-form input,.limit-field input{border:1px solid #dce8e5;border-radius:9px;background:#fff;padding:10px 12px;color:#253b40;min-height:42px}.wide-select{width:100%;margin-bottom:14px}.page-intro{display:flex;align-items:end;justify-content:space-between;gap:25px;padding:40px 0 25px}.page-intro h1{font-size:34px;letter-spacing:-1px;margin:8px 0 3px}.page-intro p{font-size:13px;color:#778a8e;margin:0}.page-intro>div:last-child:not(:first-child){min-width:220px}.page-intro .hero-metric.compact{min-width:260px}.page-intro .metric-number{margin-bottom:0}.page-intro+.totals-panel{margin-top:0}.inline-form{display:flex;gap:10px}.inline-form input{flex:1}.settings-list{margin-top:20px}.settings-row{border-top:1px solid #edf2f0;padding:14px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-row strong,.settings-row small{display:block}.settings-row strong{font-size:14px}.settings-row small{font-size:11px;color:#899a9c}.settings-row>div:last-child{display:flex;align-items:center;gap:8px}.limit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.limit-field{display:flex;flex-direction:column;gap:5px}.limit-field span{font-size:12px;font-weight:600}.limit-field small{font-size:10px;color:#91a1a1}.app-content footer{max-width:1140px}@media(max-width:900px){.app-layout{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:15px 8px}.sidebar-brand{padding:5px 8px 20px}.nav-item{font-size:12px;padding:10px 8px}.app-content .topbar{padding:0 20px}}@media(max-width:700px){.app-layout{display:block}.sidebar{position:relative;top:auto;height:auto;min-height:0;border-right:0;border-bottom:1px solid #e5eaea;padding:10px 14px}.sidebar-brand{padding:0 4px 9px}.sidebar nav{display:flex;flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:5px}.sidebar nav>.nav-item{flex:none;width:auto;white-space:nowrap}.nav-submenu{display:flex;flex:none;border-left:0;margin:0;padding:0;gap:5px}.nav-submenu .nav-item,.nav-empty{white-space:nowrap}.app-content .topbar{display:none}.page-intro{padding:27px 0 20px;align-items:stretch;flex-direction:column}.page-intro>div:last-child:not(:first-child){min-width:0}.limit-grid{grid-template-columns:1fr}.inline-form{flex-direction:column}.app-content main{padding-top:0}}
