:root{--cream:#fbf8f2;--paper:#fffefa;--brown:#4b2b22;--ink:#342b27;--muted:#94877e;--line:#eae4db;--coral:#f17e69;--coral-light:#fff0e9;--green:#508a71;--green-light:#edf5ec;--yellow:#e6b84f;font-family:'IBM Plex Sans Thai',sans-serif;color:var(--ink);font-size:14px;background:var(--cream)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d69452;outline-offset:3px}[hidden]{display:none!important}.auth-screen{min-height:100vh;display:grid;grid-template-columns:minmax(340px,45%) 1fr}.auth-art{position:relative;overflow:hidden;background:#4b2b22;color:#fff7ea;padding:36px 48px;display:flex;flex-direction:column}.auth-art:before{content:'';position:absolute;width:600px;height:600px;border-radius:50%;background:#865044;filter:blur(90px);left:-250px;bottom:-300px;opacity:.6}.brand-lock,.brand{display:flex;align-items:center;gap:12px;position:relative;z-index:2}.brand-lock img,.brand img{width:52px;height:52px;object-fit:contain;border-radius:50%;background:#fff9ed}.brand-lock span,.brand span{font:900 23px Nunito,sans-serif;letter-spacing:-.8px}.brand-lock small,.brand small{display:block;font:800 9px Nunito,sans-serif;letter-spacing:2.4px;margin-top:-2px}.art-ring{position:absolute;border:1px solid #ffffff30;border-radius:50%;width:540px;height:540px;left:50%;top:48%;transform:translate(-50%,-50%)}.ring-two{width:390px;height:390px;border-color:#ffffff45}.art-note{position:relative;z-index:2;margin:auto 0;font-size:29px;line-height:1.6}.art-note strong{font-size:47px;line-height:1.2;font-weight:600}.art-star{display:block;color:#f3ab8f;font-size:95px;line-height:1}.art-footer{position:relative;z-index:2;font:800 10px Nunito;letter-spacing:3px;color:#dfbcb0}.auth-main{display:grid;place-items:center;padding:36px}.auth-card{width:min(100%,420px)}.auth-topline{display:flex;align-items:center;gap:8px;color:#a26852;font-size:11px;font-weight:700}.pill-dot,.live-dot,.top-status i{width:8px;height:8px;border-radius:50%;background:var(--green);display:inline-block;flex-shrink:0}.phase-tag{margin-left:auto;font:800 10px Nunito;letter-spacing:1px;background:#f2e8dd;padding:5px 8px;border-radius:5px;color:#9b7969}h1{color:var(--brown);line-height:1.3}.auth-card h1{font-size:34px;margin:21px 0 8px;font-weight:600}.subtle{color:var(--muted);font-size:13px;line-height:1.9;margin:0 0 24px}.form-stack{display:grid;gap:17px}.form-stack label,.field{display:grid;gap:7px;color:#69584d;font-size:12px;font-weight:600}.form-stack label small{color:var(--muted);font-weight:400}.form-stack input,.field input,.field select{width:100%;border:1px solid #ddd4ca;background:#fffefa;border-radius:9px;padding:12px 13px;color:var(--brown);font-size:14px;min-height:44px}.form-stack input:focus,.field input:focus,.field select:focus{border-color:var(--coral)}.button{border:1px solid var(--line);background:#fffefa;border-radius:10px;padding:11px 16px;font-weight:600;color:var(--brown);min-height:42px}.button.primary{background:var(--brown);color:#fffaf2;border-color:var(--brown);display:flex;align-items:center;justify-content:space-between}.button.primary:hover{background:#673d31}.button.soft{background:var(--coral-light);color:#ad5547;border-color:#f8d9cf}.form-stack .button{margin-top:5px}.prototype-link{display:inline-block;margin-top:30px;font-size:12px;color:#a75d4c;font-weight:600}.auth-foot{font-size:11px;color:#ad9f91;margin-top:11px}.notice{border-radius:10px;padding:12px 14px;font-size:12px;line-height:1.7;margin-bottom:16px}.notice.error{background:#fff0ee;color:#9b3f35;border:1px solid #f4c8c1}.notice.warm{background:#faf1df;color:#836846;border:1px solid #ecdfc5;margin:0}.app-shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow:auto;background:#fffdf8;border-right:1px solid var(--line);padding:28px 20px;display:flex;flex-direction:column;z-index:10}.brand{color:var(--brown);margin:0 0 30px}.brand img{width:43px;height:43px}.brand span{font-size:18px}.brand small{font-size:7px;letter-spacing:2px}.branch-mark{display:flex;gap:9px;align-items:center;border:1px solid var(--line);background:var(--cream);padding:10px;border-radius:11px}.branch-icon{background:#fff;border-radius:7px;width:34px;height:34px;display:grid;place-items:center;color:var(--coral);font-size:20px}.branch-mark strong,.sidebar-user strong{display:block;font-size:11px}.branch-mark small,.sidebar-user small{display:block;font-size:10px;color:var(--muted)}.branch-mark .live-dot{margin-left:auto}.nav-label,.eyebrow{font:800 10px Nunito;letter-spacing:2px;color:#aa9485}.nav-label{margin:27px 12px 12px}nav{display:grid;gap:5px}nav button{border:0;background:transparent;border-radius:9px;padding:11px 13px;text-align:left;color:#806f65;font-size:12px}nav button:hover{background:#f6f1e8;color:var(--brown)}nav button.active{background:var(--coral-light);color:#a9503e;font-weight:700;box-shadow:inset 3px 0 var(--coral)}.sidebar-bottom{margin-top:auto;padding-top:24px}.phase-card{background:#f8f0e4;border:1px solid #f0e3d2;border-radius:11px;padding:13px}.phase-card span{font:800 10px Nunito;color:#a46f54;letter-spacing:1px}.phase-card p{font-size:10px;color:#89796d;line-height:1.7;margin:7px 0 0}.return-link{display:block;font-size:11px;color:#b25b48;padding:17px 12px}.sidebar-user{display:flex;gap:9px;align-items:center;border-top:1px solid var(--line);padding-top:17px}.avatar{border-radius:50%;width:33px;height:33px;display:grid;place-items:center;background:#eee4d7;color:var(--brown);font:800 14px Nunito}.content-shell{min-width:0;display:flex;flex-direction:column}.topbar{height:70px;flex-shrink:0;border-bottom:1px solid var(--line);background:#fffefaad;display:flex;align-items:center;justify-content:space-between;padding:0 34px}.topbar-left,.topbar-right{display:flex;align-items:center;gap:20px}.breadcrumb{color:var(--muted);font-size:11px}.breadcrumb span{padding:0 8px;color:#cbbfb1}.breadcrumb strong{color:var(--brown)}.top-status{font-size:10px;color:#77906b;display:flex;align-items:center;gap:7px}.topbar button{border:1px solid var(--line);border-radius:7px;background:#fffefa;padding:7px 10px;color:#806f65;font-size:11px}#mobile-nav-toggle{display:none}#main{width:min(100%,1500px);margin:0 auto;padding:32px 35px 50px;flex:1}.page-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:27px}.eyebrow{margin:0 0 7px}.page-head h1{font-size:27px;font-weight:600;letter-spacing:-.5px;margin:0}.page-head p:not(.eyebrow){font-size:12px;color:var(--muted);margin:6px 0 0}.page-index{font:800 12px Nunito;color:#bbafa3;letter-spacing:2px}.footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:17px 35px;color:#b0a398;font-size:10px}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(3,1fr)}.two-col{grid-template-columns:minmax(0,1.55fr) minmax(260px,1fr)}.card{background:#fffefa;border:1px solid var(--line);border-radius:14px;padding:21px;box-shadow:0 5px 25px #4b2b2205}.card h2{font-size:15px;color:var(--brown);margin:0 0 14px}.card h3{font-size:12px;color:var(--brown);margin:0 0 7px}.card p{font-size:11px;line-height:1.8;color:var(--muted)}.stat{min-height:140px;display:flex;flex-direction:column;justify-content:space-between}.stat-label{color:#927f71;font-size:11px}.stat-value{font:900 36px Nunito;color:var(--brown);line-height:1}.stat-foot{color:#ae9d8e;font-size:10px}.section-stack{display:grid;gap:18px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:14px}.section-head h2{margin:0}.section-head p{margin:3px 0 0}.empty{min-height:170px;border:1px dashed #e8d9c9;border-radius:11px;background:#fcf9f4;display:grid;place-content:center;text-align:center;padding:24px}.empty .empty-icon{font-size:30px;color:#d3b9a7}.empty strong{font-size:13px;color:var(--brown)}.empty p{margin:5px 0 0}.chip{display:inline-flex;align-items:center;gap:5px;border-radius:6px;padding:4px 8px;background:#f4eee6;color:#8c7463;font-size:10px;font-weight:700}.chip.good{background:var(--green-light);color:var(--green)}.chip.warn{background:#fff1dd;color:#9c722e}.chip.coral{background:var(--coral-light);color:#b95f4c}.machine-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.machine{border:1px solid var(--line);background:#fffefa;border-radius:12px;padding:17px;display:grid;gap:11px}.machine-icon{width:37px;height:37px;border-radius:9px;background:#f4ece3;display:grid;place-items:center;font-size:18px;color:#8a6251}.machine-top{display:flex;justify-content:space-between;align-items:start}.machine strong{font:900 18px Nunito;color:var(--brown)}.machine small{display:block;color:var(--muted);font-size:11px}.machine select{width:100%;border:1px solid #e7dcd0;border-radius:7px;background:#fffefa;color:#785f54;padding:7px;font-size:11px}.machine button{width:100%;margin-top:3px}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;text-align:left;font-size:11px}.data-table th{color:#9d8a7b;font-size:10px;font-weight:600;background:#fbf8f2;padding:10px 12px;white-space:nowrap}.data-table td{border-bottom:1px solid var(--line);padding:12px;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table td strong{color:var(--brown)}.data-table button{border:1px solid var(--line);border-radius:6px;background:#fffefa;color:#a65343;padding:6px 9px;font-size:10px}.inline-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;gap:12px;align-items:end}.inline-form .button{white-space:nowrap}.price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.price-field{border:1px solid var(--line);background:#fffefa;border-radius:11px;padding:16px}.price-field .field{margin-top:10px}.price-field strong{font-size:13px;color:var(--brown)}.price-field small{display:block;font-size:10px;color:var(--muted)}.price-field .unit-input{position:relative}.price-field .unit-input input{padding-right:44px}.price-field .unit-input span{position:absolute;right:12px;top:13px;color:var(--muted);font-size:11px}.action-row{display:flex;align-items:center;justify-content:space-between;gap:15px}.action-row small{color:var(--muted);font-size:11px}.info-list{display:grid;gap:0}.info-list>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:12px 0;font-size:11px}.info-list>div:last-child{border:0}.info-list span{color:var(--muted)}.info-list strong{color:var(--brown);text-align:right}.milestones{display:grid;gap:12px}.milestone{display:flex;gap:11px;align-items:start}.milestone b{width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#f3e7dc;color:#ad745b;font:800 11px Nunito;flex-shrink:0}.milestone strong{display:block;font-size:11px;color:var(--brown)}.milestone small{display:block;font-size:10px;color:var(--muted);line-height:1.6}.hint{font-size:11px;color:var(--muted);line-height:1.8}.form-error{color:#a5483e;font-size:11px;margin:8px 0 0}.user-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.user-form .action-row{grid-column:1/-1}.user-form .field select{min-height:44px}.notice.flat{margin:0}.loading{padding:40px;text-align:center;color:var(--muted);font-size:12px}@media(max-width:1000px){.stats{grid-template-columns:repeat(3,1fr)}.two-col{grid-template-columns:1fr}.top-status{display:none}}@media(max-width:700px){.app-shell{display:block}.sidebar{position:fixed;transform:translateX(-100%);transition:transform .25s;width:250px;box-shadow:5px 0 25px #4b2b2215}.sidebar.open{transform:translateX(0)}#mobile-nav-toggle{display:block}.topbar{height:60px;padding:0 18px}.breadcrumb{font-size:10px}.breadcrumb span:first-of-type,.breadcrumb strong{display:none}#main{padding:25px 18px 40px}.footer{padding:15px 18px}.page-head h1{font-size:23px}.stats{grid-template-columns:repeat(3,1fr);gap:8px}.stat{min-height:112px;padding:13px}.stat-value{font-size:27px}.stat-label,.stat-foot{font-size:9px}.auth-screen{grid-template-columns:1fr}.auth-art{min-height:150px;padding:20px 24px}.auth-art .art-note,.auth-art .art-ring,.auth-art .art-footer{display:none}.auth-main{padding:30px 20px}.inline-form{grid-template-columns:1fr}.price-grid{grid-template-columns:1fr}}@media(max-width:430px){.stats{grid-template-columns:1fr}.stat{min-height:85px}.footer span:last-child{display:none}.user-form{grid-template-columns:1fr}}

.machine-reservations{display:grid;gap:7px;min-width:0}.machine-booking{padding:9px;border-radius:8px;background:var(--green-light);border-left:3px solid var(--green);overflow-wrap:anywhere}.machine-booking b{display:block;font-size:11px;color:var(--brown)}.machine-booking small{margin-top:3px;font-size:10px}.machine-booking.near{background:#fff1dd;border-color:var(--yellow)}.machine-booking .booking-overdue{color:#a5483e;font-weight:600}.machine{min-width:0}.machine-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,215px),1fr))}
