*{box-sizing:border-box}html{--pine:#133f34;--deep:#0c3129;--sand:#f6f4ed;--ink:#19261f;--muted:#54645a;--line:#d9ded5;--gold:#987025;font:16px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI","Khmer Sangam MN",sans-serif;color:var(--ink);background:var(--sand)}html[data-size=Small]{font-size:15px}html[data-size=Large]{font-size:18px}body{margin:0}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:var(--pine);background:white;border:1px solid #c6d1c7;border-radius:8px;min-height:42px;padding:.48rem .85rem;font-weight:620}button:hover{background:#f0f5ed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #be8b36;outline-offset:2px}button:disabled{opacity:.5;cursor:default}a{color:var(--pine)}.primary,.chip.chosen{background:var(--pine);color:#fff;border-color:var(--pine)}.primary:hover,.chip.chosen:hover{background:#0b3227}.chips,.actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.actions{margin:.55rem 0}.skip{position:fixed;left:8px;top:-100px;background:#fff;padding:10px;z-index:20}.skip:focus{top:8px}
.boot,.login{min-height:100vh;display:grid;align-content:center;justify-content:center;padding:24px}.boot img,.login img{width:54px;height:54px;object-fit:contain}.login{background:linear-gradient(140deg,#e9eddf,#f8f5ec 66%)}.login-box{max-width:420px;min-width:min(360px,80vw);background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 14px 45px #17382b12}.login-box h1{margin:.55rem 0}.eyebrow{font-size:.73rem;letter-spacing:.12em;font-weight:750;color:var(--gold);margin:0 0 .28rem}.hint,.muted,small{font-size:.875rem;color:var(--muted)}.error{color:#902e29;font-weight:600;white-space:pre-wrap}.error:empty,.hint:empty{display:none}
header{height:61px;background:var(--deep);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(18px,calc((100vw - 1600px)/2));border-bottom:3px solid #bd9148}header img{width:38px;height:38px;object-fit:contain}.account{display:flex;align-items:center;gap:.75rem}.account small{color:#e3e9de}.account button{min-height:35px;background:transparent;color:white;border-color:#839b90;font-size:.84rem}
.layout{max-width:1600px;margin:auto;display:grid;grid-template-columns:205px minmax(0,1fr);min-height:calc(100vh - 61px)}aside{border-right:1px solid var(--line);background:#eef1e9;padding:25px 10px}.nav-title{color:var(--muted);font-size:.72rem;letter-spacing:.12em;padding:0 10px;font-weight:700}nav{display:flex;flex-direction:column;gap:4px}nav button{text-align:left;background:transparent;border-color:transparent}nav button.active{background:var(--pine);color:white}main.workspace{min-width:0;padding:clamp(16px,2.1vw,36px)}.topline,.between{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.topline{margin-bottom:.9rem}h1,h2,h3{color:var(--pine);line-height:1.18;margin:0}h1{font-size:clamp(1.45rem,2.4vw,2.15rem)}h2{font-size:1.12rem}h3{font-size:1rem}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;margin:.7rem 0;padding:.95rem;overflow-wrap:anywhere}.panel>h2{margin-bottom:.55rem}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.stat{display:grid;align-content:start;gap:.12rem;background:#fff;border:1px solid var(--line);border-top:3px solid #bb914b;border-radius:9px;padding:.68rem}.stat strong{font-size:1.45rem;color:var(--pine);font-variant-numeric:tabular-nums}.stat span{font-size:.8rem;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.grid>.panel{margin:.3rem 0}.status{font-size:.8rem;color:var(--muted)}.tag{display:inline-flex;background:#e9efe9;color:#294c3e;font-size:.8rem;font-weight:650;border-radius:6px;padding:.2rem .48rem;white-space:nowrap}.Hot{background:#ffe4db;color:#94341d}.Warm{background:#fff3d7;color:#775609}.Cold{background:#e5edf7;color:#254666}.Fail{background:#f4dddd;color:#803333}.row{border-top:1px solid #e1e5df;display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.5rem .1rem}.row:first-child{border:0}.row small,.who small{display:block}.linkbtn{background:none;border:0;text-align:left;padding:.15rem 0;min-height:38px;text-decoration:underline;text-decoration-color:#a2b6a9;text-underline-offset:3px}.row .right{text-align:right}.scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.89rem}th,td{text-align:left;padding:.52rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--pine);color:white;font-weight:600}tr:nth-child(even) td{background:#f4f7f1}tbody td{font-variant-numeric:tabular-nums}.details,dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}dt{color:var(--muted);font-size:.78rem}dd{margin:0;white-space:pre-wrap}label.field{display:grid;gap:.28rem;margin:.55rem 0}label.field>span{color:#345444;font-size:.89rem;font-weight:650}input:not([type=checkbox]),textarea,select{width:100%;min-height:44px;padding:.48rem .65rem;border:1px solid #a6b6aa;border-radius:8px;background:#fff;color:var(--ink)}textarea{min-height:84px}.checks{display:flex;gap:.6rem;flex-wrap:wrap}.checks label{padding:.35rem}.filters{display:flex;align-items:end;gap:.6rem;flex-wrap:wrap}.filters label{min-width:140px;flex:1}details>summary{cursor:pointer;color:var(--pine);font-weight:650;padding:.5rem 0;min-height:40px}.listbox details{border-top:1px solid var(--line)}dialog{width:min(550px,94vw);border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:13px;padding:1.1rem;max-height:88dvh;color:var(--ink)}dialog::backdrop{background:#0c271ecc}dialog fieldset{border:0;margin:0;padding:0}dialog img{max-width:100%;max-height:65dvh;object-fit:contain}.rightalign{text-align:right}.form-actions{display:flex;justify-content:end;gap:8px;margin-top:1rem}.report-badge{margin:.5rem 0}.note{white-space:pre-wrap}#notice{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:5;max-width:90vw;background:var(--deep);color:white;padding:.5rem .9rem;border-radius:8px}#notice:empty,#paper,[hidden]{display:none!important}.net{padding:.5rem .8rem;background:#fff3d7;border-radius:7px;margin:.5rem 0;font-size:.85rem}
@media(max-width:850px){.layout{grid-template-columns:1fr}aside{padding:5px 12px;border-right:0;border-bottom:1px solid var(--line)}.nav-title{display:none}nav{flex-direction:row;overflow:auto}nav button{flex:none;font-size:.84rem;min-height:40px}.account{gap:.35rem}header{padding:0 12px}.grid{grid-template-columns:1fr}}
@media(max-width:520px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:.5rem}main.workspace{padding:12px}.panel{padding:.72rem}.account small{display:none}.filters label{min-width:115px}input,textarea,select{font-size:max(16px,1rem)}}
@page{size:letter landscape;margin:7mm}@media print{body>*:not(#paper){display:none!important}body.printing #paper{display:block!important;font:7.5pt/1.35 -apple-system,"Khmer Sangam MN",sans-serif;color:#15251b}#paper table{font:inherit;table-layout:fixed;margin-top:1mm}#paper th,#paper td{padding:.7mm .5mm;border:.4pt solid #91a397;white-space:pre-wrap;overflow-wrap:anywhere}#paper th{background:#174733;color:white}#paper tr{break-inside:avoid}#paper thead{display:table-header-group}#paper h1{font-size:14pt}#paper h2{margin-top:3mm;font-size:10pt}#paper footer{display:flex;justify-content:space-between;margin-top:5mm}#paper .total,#paper .group{font-weight:700;background:#e8eee4}#paper .summary{width:75%}}

/* Intrinsic sizing keeps form controls and long staff/customer names inside their available column. */
.mobile-nav,.cell-label{display:none}
.layout>* ,main.workspace>* ,.panel,.stat,.cell-value,.field,form,fieldset,details,.row>*,.account,.between>*,.topline>*{min-width:0}
.field input,.field select,.field textarea{min-width:0;max-width:100%;width:100%}
fieldset{min-inline-size:0}
button,summary,.who,.status,.account strong{overflow-wrap:anywhere}
button:focus-visible{outline-offset:1px}
button[aria-current=page]{color:var(--pine);font-weight:800}
.sales-start{background:#e9efe7;border:1px solid #c4d4c4;padding:1rem;border-radius:14px;margin:.6rem 0}
.sales-start h2{font-size:1.35rem}
.quick-grid,.periods,.menu-grid,.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.quick-card{text-align:left;display:grid;align-content:start;gap:.12rem;border-top:3px solid #af8946;min-height:68px}
.quick-card strong,.inbox-count strong{font-size:1.45rem;line-height:1.2}
.quick-card span,.inbox-count span{font-size:.85rem}
.periods{grid-template-columns:repeat(3,minmax(0,1fr));max-width:42rem}
.periods button,.menu-grid button{width:100%;white-space:normal;line-height:1.25}
.inbox-count{display:flex;align-items:baseline;gap:.55rem;margin:.55rem 0}
.payment-result{border-left:4px solid var(--gold);padding:.4rem 1rem;display:grid;gap:.1rem}
.payment-result strong{color:var(--pine);font-size:clamp(1.5rem,5vw,2.3rem)}
.quote-detail dd{font-variant-numeric:tabular-nums}
#calculator{max-width:54rem}#calculator .field{margin-block:.65rem}
.menu-grid{margin-top:1rem}
tr[data-customer-row]{cursor:pointer}
@media screen and (min-width:641px) and (max-width:950px){
 .layout{grid-template-columns:minmax(0,1fr)}aside{padding:5px 12px;border:0}aside nav{display:flex;flex-flow:row wrap;overflow:visible}aside nav button{flex:0 1 auto}.nav-title{display:none}
}
@media screen and (max-width:640px){
 html{scroll-padding-bottom:calc(70px + env(safe-area-inset-bottom))}
 .layout{display:block;min-width:0}.layout>aside{display:none}
 header{height:auto;min-height:42px;padding:.25rem max(.65rem,env(safe-area-inset-left));gap:.5rem}
 header img{width:28px;height:28px;flex:none}.account{flex-wrap:wrap;justify-content:flex-end;font-size:.82rem}.account button{min-height:36px}
 main.workspace{padding:.55rem max(.6rem,env(safe-area-inset-right)) calc(4.75rem + env(safe-area-inset-bottom)) max(.6rem,env(safe-area-inset-left))}
 .topline{align-items:flex-start;gap:.25rem;margin-bottom:.45rem}.topline h1{font-size:1.38rem}
 .topline .status{font-size:.72rem;display:flex;flex-wrap:wrap;gap:.2rem .4rem;align-items:center}.status br{display:none}.status button{padding:.22rem .45rem;min-height:34px}
 .panel{padding:.65rem;border-radius:10px;margin:.55rem 0}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .filters,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{display:grid}.filters label{min-width:0}
 .periods{grid-template-columns:repeat(2,minmax(0,1fr))}.periods button{padding:.4rem .32rem}
 .grid{grid-template-columns:minmax(0,1fr)}.chips,.actions,.between,.form-actions{flex-wrap:wrap}
 .actions button,.chips button,.form-actions button{max-width:100%;min-width:0;min-height:44px;white-space:normal;line-height:1.22;padding:.4rem .65rem}
 .quick-card{min-height:64px}.tag{white-space:normal}.row{flex-wrap:wrap}
 .scroll{overflow:visible;max-width:100%;min-width:0}
 table.records,table.records tbody{display:block;width:100%;min-width:0}
 table.records thead{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
 table.records tr{display:block;padding:.45rem .15rem;border-bottom:1px solid var(--line)}
 table.records tr:last-child{border-bottom:0}
 table.records td{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.3fr);gap:.45rem;align-items:baseline;white-space:normal;border:0;padding:.18rem 0;overflow-wrap:anywhere}
 table.records .cell-label{display:block;color:var(--muted);font-size:.8rem;line-height:1.35}
 table.records .cell-value{font-size:.91rem}.cell-value small{display:block;color:var(--muted)}
 table.records .empty-cell{display:none}.cell-value .linkbtn{min-height:40px;max-width:100%}
 table.records tr[data-customer-row]{border:1px solid var(--line);border-radius:9px;padding:.5rem;margin:.4rem 0;background:#fbfcf8}
 dialog{width:calc(100% - 1rem);max-width:calc(100% - 1rem);max-height:calc(100dvh - 1rem);padding:.8rem;margin:auto;overflow-y:auto}
 .login{display:flex;min-height:100dvh;align-items:center;justify-content:center;padding:.65rem}.login-box{width:100%;min-width:0;max-width:25rem;padding:1.15rem}
 input,select,textarea{font-size:max(16px,1rem);max-width:100%;min-width:0}
 .mobile-nav{position:fixed;inset:auto 0 0;z-index:5;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);background:#fff;border-top:1px solid #bfcdc0;padding:.14rem .18rem calc(.16rem + env(safe-area-inset-bottom));gap:0;overflow:visible}
 .mobile-nav button{display:grid;justify-items:center;align-content:center;gap:.12rem;border:0;background:transparent;min-width:0;min-height:48px;line-height:1.05;padding:.18rem .04rem;font-size:.72rem;text-align:center}
 .mobile-nav button[aria-current]{background:#e8efe6}.mobile-nav svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}
 #notice{left:.55rem;right:.55rem;bottom:calc(3.75rem + env(safe-area-inset-bottom));max-width:calc(100% - 1.1rem)}
}
@media screen and (max-width:360px){
 .form-grid,.filters{grid-template-columns:1fr}.topline{display:grid}
 dl>div,.quote-detail>div{min-width:0}dd,dt{min-width:0;overflow-wrap:anywhere}
}

.booking-card{border-bottom:1px solid var(--line);padding:.55rem 0;min-width:0;overflow-wrap:anywhere}
.booking-card>summary{cursor:pointer;padding:.35rem 0;min-height:44px}.booking-card>summary span,.booking-card>summary small{display:block;margin:.15rem 0}
.booking-card>summary span{font-weight:600}.booking-card>summary small,.booking-deadline{color:var(--muted)}
.booking-card details{margin:.5rem 0}.booking-card details>summary{padding:.45rem 0;cursor:pointer}
.booking-card article{border-top:1px solid var(--line);padding:.5rem 0}
.booking-preview{padding:.6rem .8rem;border:1px solid var(--line);border-radius:.45rem}
.booking-facts{margin:.5rem 0;min-width:0}.booking-facts>div{min-width:0}.booking-facts dd{overflow-wrap:anywhere}

.role-drill{margin:.4rem 0;border-bottom:1px solid var(--line);padding:.2rem 0}.role-drill>summary{cursor:pointer;padding:.55rem 0;overflow-wrap:anywhere}.role-drill>summary strong{color:var(--pine)}.role-drill ul{padding-left:1.25rem}.role-drill small{display:block;overflow-wrap:anywhere}.role-drill .linkbtn{white-space:normal;text-align:start}
