/* Daily Report app — layout & component styles.
   Pairs with ../../colors_and_type.css (tokens + .glass + type classes). */
*{margin:0;padding:0;box-sizing:border-box;}
html,body,#root{height:100%;}
body{font-family:var(--font-sans);color:var(--fg1);background-color:var(--bg);background-image:radial-gradient(circle,var(--bg-dot) 1px,transparent 1px);background-size:28px 28px;-webkit-font-smoothing:antialiased;overflow:hidden;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input,select{font-family:inherit;}

/* ---------- App shell (sidebar layout) ---------- */
.shell{display:flex;height:100vh;overflow:hidden;}

/* SIDEBAR */
.sb{width:82px;flex:none;background:var(--sb-bg,linear-gradient(180deg,#EBF1FA 0%,#E2EAF6 100%));border-right:1px solid #D6E1F0;display:flex;flex-direction:column;align-items:center;box-shadow:2px 0 16px rgba(21,101,192,.07);z-index:10;}
.sb-logo{display:flex;align-items:center;justify-content:center;padding:18px 0 14px;border-bottom:1px solid #EBF1FA;width:100%;}
.sb-logo-tile{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#5EC5F8,#2764F5);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:20px;box-shadow:0 4px 12px rgba(21,101,192,.35);}
.sb-hotel{display:none;}
.sb-nav{flex:1;padding:18px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:100%;}
.sb-item{display:flex;flex-direction:column;align-items:center;justify-content:center;width:58px;height:58px;border-radius:17px;cursor:pointer;transition:background .18s,box-shadow .18s,transform .18s;position:relative;background:transparent;}
.sb-item:hover{background:rgba(255,255,255,.55);}
.sb-item.active{background:rgba(255,255,255,.82);box-shadow:0 6px 18px rgba(31,45,74,.13);transform:translateY(-1px);}
.sb-item.active::before{content:'';position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:4px;height:24px;border-radius:0 4px 4px 0;background:var(--icon-color);}
.sb-icon{display:flex;align-items:center;justify-content:center;}
.sb-icon svg{width:34px;height:34px;overflow:visible;}
.sb-item span:not(.sb-icon){display:none;}
.sb-item:hover::after{content:attr(title);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:#1A2B4A;color:#fff;font-size:11px;font-weight:700;padding:5px 10px;border-radius:8px;white-space:nowrap;pointer-events:none;z-index:99;}
.sb-bottom{padding:14px 0 16px;border-top:1px solid #EBF1FA;display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;}
.sb-footer{display:none;}
.sb-actions{display:flex;flex-direction:column;gap:6px;align-items:center;}

/* MAIN CONTENT TOP HEADER — dark bar that also hosts the nav */
.mc-topbar{height:64px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 0 14px;background:linear-gradient(100deg,#16223C,#243A63);box-shadow:0 2px 16px rgba(14,24,46,.22);}
/* horizontal nav (moved from the old sidebar) */
.tb-nav{display:flex;align-items:center;gap:4px;min-width:0;}
.tb-brand{font-weight:900;font-size:16px;color:#fff;letter-spacing:.01em;padding:0 14px 0 6px;margin-right:6px;border-right:1px solid rgba(255,255,255,.16);align-self:center;line-height:1.1;white-space:nowrap;}
.tb-nav-item{position:relative;display:flex;align-items:center;gap:8px;height:44px;padding:0 15px 0 8px;border-radius:13px;cursor:pointer;background:transparent;border:none;transition:background .16s;}
.tb-nav-item:hover{background:rgba(255,255,255,.08);}
.tb-nav-item.active{background:rgba(255,255,255,.13);}
.tb-nav-icon{display:flex;align-items:center;justify-content:center;}
.tb-nav-icon svg{width:30px;height:30px;overflow:visible;}
.tb-nav-label{font-size:12px;font-weight:800;letter-spacing:.05em;color:rgba(255,255,255,.6);transition:color .16s;white-space:nowrap;}
.tb-nav-item:hover .tb-nav-label{color:rgba(255,255,255,.9);}
.tb-nav-item.active .tb-nav-label{color:var(--icon-color);}
.tb-nav-item.active::after{content:'';position:absolute;left:12px;right:12px;bottom:4px;height:3px;border-radius:3px;background:var(--icon-color);}
.tb-right{display:flex;align-items:center;gap:12px;flex:none;}
.mc-user{display:flex;align-items:center;gap:10px;}
.mc-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#F3D389,#DCB154);color:#16223C;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex:none;box-shadow:0 0 0 2px rgba(255,255,255,.22);}
.mc-user-info{display:flex;flex-direction:column;}
.mc-user-name{font-size:13px;font-weight:700;color:#fff;}
.mc-user-role{font-size:10px;color:rgba(255,255,255,.6);text-transform:capitalize;}
/* OTA pending chip — yellow */
.ota-chip{display:flex;align-items:center;gap:7px;background:#FFF6D6;color:#8A6B00;border:1px solid #F4D766;border-radius:100px;padding:5px 13px 5px 6px;font-size:11px;font-weight:800;letter-spacing:.02em;white-space:nowrap;}
.ota-n{background:var(--yellow);color:#fff;min-width:20px;height:20px;padding:0 5px;border-radius:100px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-family:var(--font-mono);font-weight:500;}
/* topbar action icons — clear solid colours on the dark bar */
.tb-icon{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;background:rgba(255,255,255,.14);border:none;flex:none;transition:filter .12s,background .12s;}
.tb-icon.green{background:var(--green);}
.tb-icon.red{background:var(--red);color:#fff;}
.tb-icon.print{background:var(--blue);}
.tb-icon:hover{filter:brightness(1.12);}

/* MAIN CONTENT */
.main-content{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:linear-gradient(180deg,#F3ECDC,#EAE0C9);}
.page{flex:1;display:flex;flex-direction:column;gap:12px;padding:14px 20px;overflow:hidden;}
.page-header{display:flex;align-items:baseline;justify-content:space-between;flex:none;}
.page-title{font-size:22px;font-weight:800;color:var(--fg1);letter-spacing:-.02em;}
.page-sub{font-size:12px;color:var(--fg2);font-weight:500;}

/* STAT CARDS */
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;flex:none;}
.stat-card{border-radius:18px;padding:15px 18px;color:#fff;display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden;box-shadow:0 6px 20px rgba(0,0,0,.12);}
.stat-card.blue{background:linear-gradient(135deg,#E3F2FD,#BBDEFB);color:#1565C0;box-shadow:0 4px 12px rgba(21,101,192,.08);}
.stat-card.teal{background:#F8FAFF;color:var(--fg2);border:1px solid #E8F0FA;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.stat-card.orange{background:linear-gradient(135deg,#FFF8E1,#FFE082);color:#E65100;box-shadow:0 4px 12px rgba(230,81,0,.08);}
.stat-card.red{background:linear-gradient(135deg,#3FD99B,#1BA870);color:#fff;box-shadow:0 6px 20px rgba(27,168,112,.25);}
/* KPI variants — solid brand gradients, white ink */
.stat-card.kpi-green{background:linear-gradient(135deg,#3FD99B,#1BA870);color:#fff;box-shadow:0 8px 22px rgba(27,168,112,.28);}
.stat-card.kpi-blue{background:linear-gradient(135deg,#5EC5F8,#2764F5);color:#fff;box-shadow:0 8px 22px rgba(21,101,192,.26);}
.stat-card.kpi-orange{background:linear-gradient(135deg,#FFB454,#F57C00);color:#fff;box-shadow:0 8px 22px rgba(245,124,0,.28);}
.stat-card.kpi-yellow{background:linear-gradient(135deg,#FFD45A,#F9A825);color:#5A3E00;box-shadow:0 8px 22px rgba(249,168,37,.28);}
.stat-card.kpi-yellow .stat-lbl{opacity:.78;}
.stat-n{font-family:var(--font-mono);font-size:27px;font-weight:500;line-height:1.05;letter-spacing:-.02em;}
.stat-lbl{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.9;}
.stat-card-icon{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:36px;opacity:.22;}

/* DASHBOARD BODY */
.dash-body{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;min-height:0;overflow:hidden;}
.dash-left{display:flex;flex-direction:column;min-height:0;overflow:hidden;gap:12px;}
.dash-right{display:flex;flex-direction:column;gap:8px;min-height:0;min-width:0;overflow:hidden;padding-right:2px;}
.dash-right::-webkit-scrollbar{width:0;}

/* left panel header */
.panel-head{display:flex;align-items:baseline;justify-content:space-between;flex:none;padding:0 2px;}
.panel-title{font-size:15px;font-weight:800;color:var(--fg1);letter-spacing:-.01em;}
.panel-sub{font-size:11px;font-weight:600;color:var(--fg2);}

/* room board — every room, sized to fit ALL on one screen (no scroll) */
.tx-grid{flex:1;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:1fr;gap:14px 16px;overflow:hidden;align-content:stretch;padding:3px 6px 7px;}
.tx-empty{grid-column:1/-1;text-align:center;color:var(--fg2);font-style:italic;padding:40px;font-size:13px;}
/* ---- room cards: claymorphic / soft-3D ---- */
/* occupied = raised glossy clay; empty = recessed pressed-in slot */
.tx-card{--accent-edge:transparent;position:relative;background:linear-gradient(180deg,#FFFFFF,#F1F3F7);border:none;border-radius:15px;padding:7px 10px;min-height:0;display:flex;flex-direction:column;justify-content:space-between;gap:2px;box-shadow:7px 9px 15px rgba(92,88,82,.22),-5px -5px 11px rgba(255,255,255,.82),inset 0 2px 0 rgba(255,255,255,.9),inset 0 -3px 6px rgba(80,75,68,.06),inset 4px 0 0 var(--accent-edge);transition:transform .12s,box-shadow .12s;overflow:hidden;}
.tx-card:active{transform:translateY(2px);box-shadow:3px 4px 8px rgba(92,88,82,.18),-2px -2px 5px rgba(255,255,255,.7),inset 0 2px 5px rgba(75,72,68,.12),inset 4px 0 0 var(--accent-edge);}
.tx-card.clickable,.tx-card.avail{cursor:pointer;}
.tx-card.clickable:hover{transform:translateY(-2px);box-shadow:0 12px 22px rgba(150,120,60,.26),0 4px 8px rgba(150,120,60,.16),inset 0 1px 0 rgba(255,255,255,.95),inset 0 -4px 7px rgba(165,135,70,.08),inset 5px 0 0 var(--accent-edge);}
/* condition colours — tinted surface (paid=green, ค้างชำระ=yellow) */
.tx-card.paid{--accent-edge:var(--green);background:linear-gradient(158deg,#E9FAF1,#D2F1E0);}
.tx-card.due{--accent-edge:var(--yellow);background:linear-gradient(158deg,#FFF3CC,#FFE39E);}
/* available room — recessed "pressed" slot, click to add */
.tx-card.avail{background:linear-gradient(158deg,#EDE4D0,#F1EADB);border:none;border-radius:16px;box-shadow:inset 0 2px 6px rgba(150,120,60,.30),inset 0 -2px 4px rgba(255,255,255,.65);align-items:center;justify-content:space-between;gap:0;padding-top:13px;padding-bottom:11px;}
.tx-card.avail:hover{transform:none;box-shadow:inset 0 2px 7px rgba(150,120,60,.36),inset 0 -2px 4px rgba(255,255,255,.65),inset 0 0 0 2px rgba(41,121,255,.30);}
/* เสีย (broken) — recessed grey slot */
/* เสีย (broken) — darker taupe so it stands out from the beige canvas */
.tx-card.broken{background:linear-gradient(158deg,#C5BCA9,#D0C8B7);border:none;box-shadow:inset 0 2px 7px rgba(90,78,52,.42),inset 0 -2px 4px rgba(255,255,255,.4);}
.tx-card.broken .tx-room{color:#4C5567;}
.tx-card.broken .tx-state-note{color:#5E6878;opacity:1;}
/* ฟรี (complimentary) — raised, green edge */
.tx-card.comp{--accent-edge:var(--green);background:linear-gradient(158deg,#E9FAF1,#D2F1E0);box-shadow:0 6px 13px rgba(150,120,60,.18),0 2px 4px rgba(150,120,60,.12),inset 0 1px 0 rgba(255,255,255,.95),inset 5px 0 0 var(--accent-edge);}
.tx-top{display:flex;align-items:center;justify-content:space-between;gap:4px;}
.tx-room{font-family:var(--font-mono);font-weight:500;font-size:20px;color:var(--fg1);line-height:1;letter-spacing:-.01em;}
.tx-room.free-room{font-size:21px;color:var(--fg2);}
.tx-tag{font-size:9.5px;font-weight:800;letter-spacing:.05em;padding:2px 7px;border-radius:100px;}
.tx-tag.inv{background:linear-gradient(180deg,#33456B,#1E2D4A);color:#fff;box-shadow:0 2px 4px rgba(20,30,60,.32),inset 0 1px 0 rgba(255,255,255,.28);}
.tx-guest{font-size:13px;font-weight:700;color:var(--fg1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;}
.tx-guest.center{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;white-space:normal;}
.tx-night{font-family:var(--font-mono);font-size:9.5px;font-weight:700;color:#28406C;white-space:nowrap;}
.tx-night.paid-night{text-align:right;line-height:1;}
.tx-foot{display:flex;align-items:baseline;justify-content:space-between;gap:4px;}
.tx-amt{font-family:var(--font-mono);font-weight:500;font-size:15px;color:var(--fg1);}
.tx-due{font-size:12px;font-weight:800;color:var(--red);white-space:nowrap;}
.tx-settle{font-size:12px;font-weight:800;letter-spacing:.02em;padding:2px 7px;border-radius:7px;background:transparent;color:var(--red);white-space:nowrap;transition:background .1s,transform .08s;}
.tx-settle:hover{background:rgba(165,135,70,.16);}
.tx-settle:active{transform:scale(.96);}
.tx-state-note{font-size:10px;font-weight:600;color:var(--red);opacity:.85;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.tx-state-note.center{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;-webkit-line-clamp:3;}
.tx-state-note.comp{color:var(--green);}
.tx-free-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-width:0;}
.tx-free-label{font-size:13px;font-weight:800;color:var(--fg1);}
.tx-free-detail{max-width:100%;margin-top:3px;font-size:9.5px;font-weight:600;color:var(--fg2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tx-add-cta{display:flex;align-items:center;justify-content:center;color:#B59B6A;}
.tx-card.avail:hover .tx-add-cta{color:var(--blue);}
.tx-add-plus{font-size:22px;font-weight:500;line-height:1;}
.tx-maint{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#B6C4D8;background:transparent;}
.tx-maint:hover{background:rgba(229,57,53,.12);color:var(--red);}

/* shift card (เปิดรอบ → ปิดรอบ) */
.shift-card{flex:none;background:var(--clay-surface);border:none;border-radius:18px;padding:9px 13px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--clay-raise);}
.mini-cal{flex:none;background:linear-gradient(180deg,#F5F3EF,#E7E5E2);border-radius:20px;padding:11px 13px;box-shadow:8px 10px 18px rgba(80,76,70,.22),-5px -5px 12px rgba(255,255,255,.72),inset 0 2px 0 rgba(255,255,255,.85);}
.mini-cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px;}
.mini-cal-title{font-size:13px;font-weight:800;color:var(--fg1);}
.mini-cal-actions{display:flex;align-items:center;gap:4px;}
.mini-cal-actions button{height:23px;min-width:23px;border-radius:8px;background:#E4E3E0;color:var(--fg1);font-size:12px;font-weight:800;box-shadow:2px 3px 6px rgba(80,76,70,.16),inset 0 1px 0 rgba(255,255,255,.8);}
.mini-cal-actions .mini-cal-today{padding:0 7px;font-size:8px;letter-spacing:.05em;}
.mini-cal-week,.mini-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.mini-cal-week{margin-bottom:3px;}
.mini-cal-week span{text-align:center;font-size:7px;font-weight:800;color:var(--fg2);}
.mini-cal-grid button,.mini-cal-grid span{height:22px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:9px;color:var(--fg1);}
.mini-cal-grid button:hover{background:rgba(255,255,255,.72);}
.mini-cal-grid button.selected{background:#B6EB54;color:#24310C;box-shadow:0 3px 7px rgba(92,130,25,.26),inset 0 1px 0 rgba(255,255,255,.7);}
.room-action-pop{width:var(--popup-w-mini);}
.room-action-list{padding:18px;display:grid;gap:12px;}
.room-action-btn{height:62px;border-radius:16px;background:linear-gradient(180deg,#FFFFFF,#E9EDF4);box-shadow:6px 7px 14px rgba(92,102,130,.22),-4px -4px 10px rgba(255,255,255,.9),inset 0 1px 0 #fff;color:var(--fg1);display:flex;align-items:center;gap:12px;padding:0 17px;font-size:13px;font-weight:800;text-align:left;}
.room-action-btn.primary-action{color:#fff;background:linear-gradient(150deg,#62AFFF,#2979FF);box-shadow:0 8px 18px rgba(41,121,255,.3),inset 0 1px 0 rgba(255,255,255,.45);}
.room-action-btn:active{transform:translateY(2px);}
.room-action-icon{width:30px;height:30px;border-radius:10px;background:rgba(255,255,255,.32);display:flex;align-items:center;justify-content:center;font-size:17px;}
.maint-date-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.shift-date{display:flex;align-items:center;justify-content:center;gap:14px;}
.shift-day-nav{width:26px;height:26px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;color:var(--fg2);background:var(--clay-recess);box-shadow:var(--clay-inset);transition:background .12s,color .12s;}
.shift-day-nav:hover{background:var(--blue);color:#fff;box-shadow:0 2px 6px rgba(41,121,255,.4);}
.shift-today{padding:5px 8px;border-radius:8px;font-size:8px;font-weight:800;letter-spacing:.08em;color:var(--blue);background:rgba(255,255,255,.7);box-shadow:var(--clay-raise);}
.shift-today:hover{background:var(--blue);color:#fff;}
.shift-date-lbl{font-size:9.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--fg2);}
.shift-date-val{font-family:var(--font-mono);font-weight:600;font-size:16px;color:var(--fg1);}
.shift-row{display:flex;align-items:flex-end;gap:10px;}
.shift-side{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;}
.shift-lbl{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--fg2);}
.shift-side.open .shift-lbl{color:var(--green);}
.shift-side.close .shift-lbl{color:var(--amber);}
.shift-side input{width:100%;min-width:0;box-sizing:border-box;text-align:center;font-family:var(--font-mono);font-weight:500;font-size:16px;border:none;border-radius:11px;padding:8px;color:var(--fg1);outline:none;background:var(--clay-recess);box-shadow:var(--clay-inset);}
.shift-side.set input{background:linear-gradient(158deg,#FBEFD6,#FFF6E6);box-shadow:inset 0 2px 6px rgba(190,140,40,.26),inset 0 -2px 4px rgba(255,255,255,.6);}
.shift-side input:focus{box-shadow:var(--clay-inset),0 0 0 3px rgba(41,121,255,.2);}
.shift-arrow{font-size:18px;color:var(--fg2);padding-bottom:8px;}
.shift-hint{font-size:9.5px;font-weight:600;color:var(--green);background:rgba(27,168,112,.09);border-radius:8px;padding:5px 9px;line-height:1.3;}

/* room status — card1: ฟรี|เสีย sub-cards · card2: ขายแล้ว */
.room-sum-2{flex:none;display:flex;gap:10px;}
.rs-card{flex:1;min-width:0;background:var(--clay-surface);border:none;border-radius:18px;box-shadow:var(--clay-raise);}
.rs-fb{display:flex;padding:7px;gap:8px;background:var(--clay-recess);box-shadow:var(--clay-inset);border:none;}
.rs-sub{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:7px 4px;border-radius:12px;background:var(--clay-surface);box-shadow:0 2px 5px rgba(150,120,60,.16),inset 0 1px 0 rgba(255,255,255,.9);}
.rs-sub.free{background:#fff;}
.rs-sub.broken{background:#fff;}
.rs-sn{font-family:var(--font-mono);font-weight:500;font-size:22px;line-height:1;}
.rs-sub.free .rs-sn{color:var(--green);}
.rs-sub.broken .rs-sn{color:var(--red);}
.rs-sl{font-size:9.5px;font-weight:800;letter-spacing:.04em;color:var(--fg2);}
.rs-sold{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;}
.rs-n{font-family:var(--font-mono);font-weight:500;font-size:34px;line-height:.95;color:var(--blue);letter-spacing:-.02em;}
.rs-unit{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--fg2);}

/* total bars under blocks (ส่งยอด green / all-tx blue / expense red) */
.inv-block{display:flex;flex-direction:column;gap:0;flex:none;border-radius:18px;overflow:hidden;background:var(--clay-surface);box-shadow:var(--clay-raise);}
.exp-block{display:flex;flex-direction:column;gap:0;flex:1;min-height:0;border-radius:18px;overflow:hidden;background:var(--clay-surface);box-shadow:var(--clay-raise);}
.block-total{display:flex;align-items:center;justify-content:space-between;padding:9px 16px;border-radius:0 0 16px 16px;color:#fff;flex:none;}
.block-total.solo{border-radius:18px;}
.block-total.green{background:var(--green);box-shadow:0 6px 16px rgba(27,168,112,.22);}
.block-total.blue{background:var(--navy);box-shadow:0 6px 16px rgba(21,101,192,.2);}
.block-total.red{background:var(--red);box-shadow:inset 0 2px 0 rgba(255,255,255,.18);}
.bt-lbl{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;opacity:.92;}
.bt-amt{font-family:var(--font-mono);font-weight:900;font-size:20px;}
.block-total.cashnavy .bt-amt{font-size:24px;}
.block-total.send .bt-amt,.block-total.red .bt-amt{font-weight:800;}
/* invoice / no-invoice — sections inside the raised clay card */
.summary-card{display:flex;gap:10px;padding:10px;background:transparent;border:none;border-radius:0;}
.sum-sub{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;background:var(--clay-recess);box-shadow:var(--clay-inset);border-radius:12px;padding:9px 12px;}
.block-total.alltx{background:transparent;color:var(--fg1);border:none;border-top:1px solid var(--clay-edge);border-bottom:1px solid var(--clay-edge);border-radius:0;box-shadow:none;}
.block-total.alltx .bt-lbl{color:var(--fg2);}
.block-total.cashnavy{background:var(--navy);color:#fff;border-radius:0;box-shadow:inset 0 2px 0 rgba(255,255,255,.18);}
.block-total.send{background:var(--green);box-shadow:0 6px 16px rgba(27,168,112,.28),inset 0 1px 0 rgba(255,255,255,.25);}

/* expense detail card — sections inside the raised clay card */
.exp-card{flex:1;min-height:40px;display:flex;flex-direction:column;background:transparent;border:none;border-radius:0;overflow:hidden;}
.exp-head{flex:none;display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid var(--clay-edge);background:linear-gradient(180deg,rgba(229,57,53,.09),rgba(229,57,53,.03));}
.exp-title{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--red);}
.exp-count{font-size:10px;font-weight:600;color:var(--fg2);}
.exp-list{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;}
.exp-list::-webkit-scrollbar{width:4px;}
.exp-list::-webkit-scrollbar-thumb{background:#DDE8F5;border-radius:4px;}
.exp-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:baseline;padding:8px 14px;border-top:1px solid var(--clay-edge);font-size:11.5px;}
.exp-row:first-child{border-top:none;}
.exp-cat{font-weight:700;color:var(--fg1);font-size:10.5px;}
.exp-detail{color:var(--fg2);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.exp-amt{font-family:var(--font-mono);font-weight:500;color:var(--fg1);}
.exp-empty{padding:18px;text-align:center;color:var(--fg2);font-style:italic;font-size:12px;}

/* bottom cards — รวมเงินสด (left) · ส่งยอด (right) */
.bottom-cards{display:flex;gap:10px;flex:none;}
.bcard{flex:1;min-width:0;border-radius:16px;padding:11px 14px;display:flex;flex-direction:column;gap:3px;}
.bcard-lbl{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;}
.bcard-amt{font-family:var(--font-mono);font-weight:500;font-size:20px;line-height:1;}
.bcard.cash{background:#fff;border:1px solid #DDE8F5;color:var(--fg1);box-shadow:0 2px 12px rgba(21,101,192,.06);}
.bcard.cash .bcard-lbl{color:var(--fg2);}
.bcard.send{background:var(--green);color:#fff;box-shadow:0 6px 16px rgba(27,168,112,.22);}

/* ---------- Left capsules ---------- */
.cap{border-radius:100px;padding:13px 20px;display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden;flex:none;}
.cap .z{position:relative;z-index:1;}
.cap-lbl{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;}
.cap-amt{font-family:var(--font-mono);font-weight:500;font-size:20px;}
.cap.filled-amber{background:var(--amber);color:#fff;}
.cap.filled-green{background:var(--green);color:#fff;}
.cap.filled-red{background:var(--red);color:#fff;}
.cap.filled-yellow{background:var(--yellow);color:#fff;}
.cap .muted{color:var(--fg2);}

/* date/time capsule (rounded rect) */
.dt-cap{border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden;flex:none;}
.dt-row{display:flex;align-items:center;justify-content:center;gap:10px;position:relative;z-index:1;}
.dt-date{font-family:var(--font-mono);font-weight:500;font-size:17px;}
.dt-step{width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.8);display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--fg1);}
.dt-times{display:flex;gap:8px;position:relative;z-index:1;}
.dt-time-fld{flex:1;display:flex;flex-direction:column;gap:3px;}
.dt-time-fld label{font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--fg2);text-align:center;}
.dt-time-fld input{text-align:center;font-family:var(--font-mono);font-weight:500;font-size:14px;background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.8);border-radius:9px;padding:5px;color:var(--fg1);outline:none;}

/* horizontal date/time bar (top action row) */
.dt-bar{display:flex;align-items:center;gap:16px;padding:7px 8px 7px 14px;border-radius:14px;flex:none;}
.dt-bar .dt-row{gap:8px;}
.dt-bar .dt-date{font-size:15px;}
.dt-bar .dt-step{width:24px;height:24px;font-size:14px;}
.dt-bar-times{display:flex;gap:10px;position:relative;z-index:1;}
.dt-bar-times .dt-time-fld{flex-direction:row;align-items:center;gap:6px;}
.dt-bar-times .dt-time-fld label{text-align:left;}
.dt-bar-times .dt-time-fld input{width:60px;}

/* room status segments */
.seg-wrap{display:flex;border-radius:100px;overflow:hidden;position:relative;flex:none;}
.seg{flex:1;padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:1px;position:relative;z-index:1;}
.seg+.seg{border-left:1px solid rgba(255,255,255,.5);}
.seg .n{font-family:var(--font-mono);font-weight:500;font-size:24px;}
.seg .l{font-size:9.5px;letter-spacing:.06em;font-weight:700;}
.seg.red{background:var(--red);color:#fff;}

/* INV / NO-INV summary */
.summary-2{display:flex;gap:10px;flex:none;}
/* ---------- Stat card (dashboard) ---------- */
.sum-card{flex:1;border-radius:18px;padding:11px 13px;display:flex;flex-direction:column;gap:7px;background:rgba(255,255,255,.88);border:1px solid #DDE8F5;box-shadow:0 2px 14px rgba(21,101,192,.07);position:relative;overflow:hidden;}
/* Blue summary cards */
.sum-card.sum-blue{background:linear-gradient(135deg,#5EC5F8,#2764F5);border:none;}
.sum-card.sum-blue .sum-head,.sum-card.sum-blue .sum-line .v{color:#fff;}
.sum-card.sum-blue .sum-line .k{color:rgba(255,255,255,.72);}sition:relative;overflow:hidden;}
.sum-head{font-size:12px;letter-spacing:.09em;text-transform:uppercase;font-weight:800;position:relative;z-index:1;}
.sum-head.blue{color:var(--blue);}
.sum-head.navy{color:var(--navy);}
.sum-line{display:flex;justify-content:space-between;align-items:baseline;position:relative;z-index:1;}
.sum-line .k{font-size:10px;font-weight:700;letter-spacing:.05em;color:var(--fg2);}
.sum-line .v{font-family:var(--font-mono);font-weight:500;font-size:12px;}

/* ---------- Action bar ---------- */
.action-bar{display:flex;gap:12px;flex:none;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.ab-btns{display:flex;gap:10px;}
.act{border-radius:100px;padding:11px 20px;color:#fff;font-weight:700;font-size:13px;display:inline-flex;align-items:center;gap:7px;box-shadow:0 4px 10px rgba(120,90,40,.22),inset 0 1px 0 rgba(255,255,255,.28);transition:filter .12s,transform .08s;}
.act:hover{filter:brightness(1.07);}
.act:active{transform:scale(.98);}
.act .plus{font-size:16px;font-weight:500;}
.act.navy{background:var(--navy);}
.act.blue{background:var(--blue);}
.act.amber{background:var(--amber);}
.act.red{background:var(--red);color:#fff;}
/* booking id sub-line under OTA source */
.booking-id{display:block;font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:var(--blue);letter-spacing:.01em;margin-top:1px;}
.booking-id:empty{display:none;}
/* QR success time sub-line (No Invoice only) */
.qr-time{display:block;font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:var(--green);letter-spacing:.01em;margin-top:1px;white-space:nowrap;}
.qr-time.missing{color:var(--amber);}
table.dt td.muted{color:#B4BFCE;}

/* income/expense page */
.tables{flex:1;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:hidden;}
.tcard{flex:1;border-radius:18px;background:var(--clay-surface);border:none;box-shadow:var(--clay-raise);display:flex;flex-direction:column;min-height:0;overflow:hidden;}
.tcard-head{display:flex;align-items:center;gap:14px;padding:11px 16px;border-bottom:1px solid var(--clay-edge);flex:none;background:color-mix(in srgb, var(--blue) 9%, transparent);}
.tcard-head:has(.tcard-title.red){background:color-mix(in srgb, var(--red) 9%, transparent);}
.tcard-title{font-size:14px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;}
.tcard-title.blue{color:var(--blue);}
.tcard-title.navy{color:var(--navy);}
.tcard-title.red{color:var(--red);}
.tcard-title.amber{color:var(--amber);}
.tcard-meta{font-size:11px;color:var(--fg2);font-weight:600;display:flex;gap:14px;}
.tcard-meta .mono{font-family:var(--font-mono);font-weight:500;color:var(--fg1);}
.tscroll{flex:1;overflow-y:auto;}
table.dt{border-collapse:collapse;width:100%;font-size:13px;}
table.dt th{position:sticky;top:0;background:color-mix(in srgb, var(--blue) 13%, #FBF4E3);color:var(--fg2);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:800;padding:8px 12px;text-align:left;white-space:nowrap;z-index:1;box-shadow:0 1px 0 var(--clay-edge);}
table.exp-dt th{background:color-mix(in srgb, var(--red) 13%, #FBF1EA);}
table.dt td{padding:9px 12px;border-top:1px solid rgba(165,135,70,.16);white-space:nowrap;}
table.dt tr.clickable{cursor:pointer;}
table.dt tr.clickable:hover td{background:rgba(165,135,70,.10);}
/* add-on line-item rows — tucked under their parent room row, individually deletable */
.mono-c{font-family:var(--font-mono);font-weight:500;}
.r{text-align:right;}
.c{text-align:center;}
table.dt th.r{text-align:right;}
table.dt th.c{text-align:center;}
/* expense table — nudge whole table off the left edge */
table.exp-dt th:first-child,table.exp-dt td:first-child{padding-left:22px;}
/* let รายละเอียด absorb slack so the จำนวนเงิน column hugs its values under the header */
table.exp-dt th:nth-child(2),table.exp-dt td:nth-child(2){width:100%;}
table.exp-dt th:nth-child(3),table.exp-dt td:nth-child(3){white-space:nowrap;}
.badge{font-size:10px;font-weight:800;padding:3px 10px;border-radius:100px;color:#fff;letter-spacing:.04em;display:inline-block;}
.badge.paid{background:var(--green);}
.badge.due{background:var(--amber);}
.settle-btn{font-size:10px;font-weight:800;letter-spacing:.04em;padding:5px 13px;border-radius:100px;background:var(--yellow);color:#fff;box-shadow:0 1px 5px rgba(249,168,37,.3);transition:filter .12s,transform .08s;}
.settle-btn:hover{filter:brightness(1.07);}
.settle-btn:active{transform:scale(.97);}
.del-btn{width:24px;height:24px;border-radius:7px;background:transparent;color:#B4BFCE;font-size:16px;display:inline-flex;align-items:center;justify-content:center;opacity:.5;transition:opacity .12s,background .12s,color .12s;}
table.dt tr:hover .del-btn{opacity:1;}
.del-btn:hover{background:rgba(229,57,53,.12);color:var(--red);}
.empty-row td{color:var(--fg2);text-align:center;padding:22px;font-style:italic;}
.sum-row td{position:sticky;bottom:0;background:#F3ECDC;border-top:2px solid var(--clay-edge);font-weight:800;color:var(--fg1);padding:9px 12px;}
.sum-row td.r{font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--fg2);}
.sum-row td.mono-c{font-size:13px;}

/* ---------- Stat card (dashboard) ---------- */
.stat-card-wrap{border-radius:18px;padding:18px 20px;color:#fff;display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden;box-shadow:0 6px 20px rgba(0,0,0,.13);}
/* Room grid — flat, full height, no floor labels */
.room-grid{flex:1;padding:14px 16px;border-radius:18px;display:flex;flex-direction:column;gap:8px;overflow:hidden;}
.room-grid-title{display:none;}
.room-floor{display:contents;}
.room-floor-lbl{display:none;}
.room-cells-flat{display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start;flex:1;overflow:hidden;}
.room-cells{display:flex;flex-wrap:wrap;gap:6px;}
.room-cell{width:48px;height:40px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11.5px;font-weight:600;transition:transform .1s,box-shadow .1s;cursor:default;}
.room-cell:hover{transform:scale(1.1);box-shadow:0 2px 8px rgba(0,0,0,.15);}
.room-cell.free{background:rgba(255,255,255,.7);border:1px solid #DDE8F5;color:var(--fg2);}
.room-cell.sold{background:var(--green);color:#fff;border:1px solid transparent;}
.room-cell.broken{background:var(--red);color:#fff;border:1px solid transparent;}
.room-legend{display:flex;gap:12px;flex:none;padding-top:4px;}
.rl{display:flex;align-items:center;gap:4px;font-size:9.5px;font-weight:600;color:var(--fg2);}
.rl::before{content:'';width:10px;height:10px;border-radius:3px;display:inline-block;}
.rl.sold::before{background:var(--green);}
.rl.free::before{background:rgba(0,0,0,.12);}
.rl.broken::before{background:var(--red);}
.tcard-side{flex:1;min-height:150px;}
.tcard-side .tcard-head{padding:10px 13px;gap:10px;}
.tcard-side .tcard-meta{gap:10px;font-size:10px;}
.tcard-side table.dt{font-size:11px;}
.tcard-side table.dt th{padding:6px 10px;}
.tcard-side table.dt td{padding:7px 10px;white-space:normal;}

/* print-only date/time header (left panel prints on A5) */
.print-date{display:none;}

/* ---------- Popups ---------- */
/* Popup width tier tokens — single source of truth for modal widths.
   mini: quick 2-choice pick   sm: confirm/view/PIN   md: single-col form
   lg:  moderate 2-col form    xl: complex 2-col form (main create flow) */
:root{
  --popup-w-mini: 300px;
  --popup-w-sm:   380px;
  --popup-w-md:   460px;
  --popup-w-lg:   600px;
  --popup-w-xl:   720px;
}
.scrim{position:fixed;inset:0;background:rgba(20,14,6,.38);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:50;animation:fade .15s ease-out;}
@keyframes fade{from{opacity:0;}to{opacity:1;}}
.popup{background:var(--clay-surface);border:none;border-radius:22px;box-shadow:0 24px 60px rgba(60,45,20,.34),inset 0 1px 0 rgba(255,255,255,.95);animation:pop .16s cubic-bezier(.2,.8,.3,1);position:relative;}
@keyframes pop{from{opacity:0;transform:scale(.96) translateY(8px);}to{opacity:1;transform:none;}}
.popup-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--clay-edge);}
.popup-head h3{font-size:14px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;}
.popup-x{width:28px;height:28px;border-radius:9px;background:var(--clay-recess);box-shadow:var(--clay-inset);display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--fg2);}
.popup-x:hover{filter:brightness(.96);color:var(--fg1);}
.edit-banner{background:#FFF3D6;border:1px solid #F0DFA8;border-radius:12px;padding:9px 13px;margin:14px 20px 0;font-size:11.5px;font-weight:600;color:#8a6a1f;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 14px;padding:18px 20px;}
.fld{display:flex;flex-direction:column;gap:5px;}
.fld.full{grid-column:1/-1;}
.fld label{font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--fg2);}
.fld input,.fld select,.room-pick-btn{font-size:13px;font-weight:500;color:var(--fg1);background:var(--clay-recess);border:none;box-shadow:var(--clay-inset);border-radius:11px;height:40px;padding:0 13px;outline:none;box-sizing:border-box;line-height:normal;transition:box-shadow .12s;-webkit-appearance:none;appearance:none;}
.fld select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238A7A6A' stroke-width='2.5' stroke-linecap='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 12px center;padding-right:30px;}
.fld input.mono{font-family:var(--font-mono);}
.fld input:focus,.fld select:focus{box-shadow:var(--clay-inset),0 0 0 3px rgba(41,121,255,.22);}
.fld .ro{background:#EBE3D2;color:var(--fg2);}
.room-pick-btn{font-weight:600;text-align:left;display:flex;align-items:center;cursor:pointer;}
.popup-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--clay-edge);}
.pbtn{border-radius:100px;padding:10px 22px;font-weight:700;font-size:13px;box-shadow:0 4px 10px rgba(120,90,40,.18),inset 0 1px 0 rgba(255,255,255,.25);transition:filter .12s,transform .08s;}
.pbtn:active{transform:scale(.98);}
.pbtn.primary{background:var(--blue);color:#fff;}
.pbtn.primary.amber{background:var(--amber);}
.pbtn.primary.green{background:var(--green);}
.pbtn.primary.red{background:var(--red);}
.pbtn.danger{background:var(--red);color:#fff;}
.pbtn.ghost{background:var(--clay-recess);box-shadow:var(--clay-inset);color:var(--fg1);}
.pbtn:hover{filter:brightness(1.06);}
.fld input.due-fld{background:linear-gradient(158deg,#FBEFD6,#FFF8E6);box-shadow:var(--clay-inset);color:#9a6a00;}
.fld input.due-fld:focus{box-shadow:var(--clay-inset),0 0 0 3px rgba(249,168,37,.24);}
.pbtn.del-ghost{background:rgba(229,57,53,.1);color:var(--red);}
.pbtn.del-ghost:hover{background:rgba(229,57,53,.18);filter:none;}
.side-toggle{display:flex;gap:6px;background:var(--clay-recess);box-shadow:var(--clay-inset);border-radius:13px;padding:4px;}
.side-toggle button{flex:1;padding:9px;border-radius:9px;font-size:12.5px;font-weight:700;letter-spacing:.02em;color:var(--fg2);transition:background .12s,color .12s,box-shadow .12s;}
.side-toggle button.on{background:var(--blue);color:#fff;box-shadow:0 2px 7px rgba(41,121,255,.35);}
.side-toggle button.on.red{background:#fff;color:var(--red);box-shadow:0 1px 4px rgba(229,57,53,.18);}
.side-toggle button.on.green{background:#087A52;color:#fff;box-shadow:0 2px 7px rgba(8,122,82,.38);}
.side-toggle button.on.pending{background:#C96B00;color:#fff;box-shadow:0 2px 7px rgba(145,76,0,.34);}
.side-toggle button.on.partial{background:#7450C8;color:#fff;box-shadow:0 2px 7px rgba(75,46,143,.34);}
.side-toggle button.on.private{background:#33456B;color:#fff;box-shadow:0 2px 7px rgba(51,69,107,.32);}
.side-toggle button.on.pending-inv{background:#9B3E80;color:#fff;box-shadow:0 2px 7px rgba(122,39,96,.32);}
.side-toggle button.on.recorded-inv{background:#1769AA;color:#fff;box-shadow:0 2px 7px rgba(23,105,170,.32);}
.payment-section{padding-top:8px;border-top:1px solid rgba(120,130,155,.18);}
.doc-type-toggle{height:40px;box-sizing:border-box;}
.doc-type-toggle button{padding:5px 9px;}
.private-ota-flag{height:40px;border-radius:11px;background:var(--clay-recess);box-shadow:var(--clay-inset);color:var(--fg2);display:flex;align-items:center;gap:9px;padding:0 13px;font-size:12px;font-weight:700;text-align:left;}
.private-ota-flag.on{background:#33456B;color:#fff;box-shadow:0 2px 7px rgba(51,69,107,.32);}
.private-ota-dot{width:10px;height:10px;border-radius:50%;background:#AEB7C8;flex:none;}
.private-ota-flag.on .private-ota-dot{background:#fff;}
.section-label{grid-column:1/-1;padding-top:8px;border-top:1px solid rgba(120,130,155,.22);font-size:9px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--fg2);}
.invoice-status button{white-space:nowrap;font-size:11px;}
.payment-spacer{min-height:1px;}
.payment-section~.fld input:disabled,.payment-section~.fld select:disabled{opacity:.48;cursor:not-allowed;}
.status-stack{display:flex;flex-direction:column;align-items:flex-start;gap:4px;}
.badge.partial{background:#7450C8;color:#fff;}
.badge.private{background:#33456B;color:#fff;}
.badge.pending-inv{background:#9B3E80;color:#fff;}
.badge.empty-payment{background:#8791A6;color:#fff;}
.tx-card.partial{background:linear-gradient(158deg,#EEE8FF,#DCCEFF);--accent-edge:#7450C8;}
.tx-tag.pending-inv{background:#9B3E80;color:#fff;}
@media(max-width:640px){
  .popup{width:min(96vw,580px)!important;max-height:94vh;overflow-y:auto;}
  .form-grid{grid-template-columns:1fr;gap:11px;padding:14px;}
  .fld,.fld.full,.section-label{grid-column:1/-1;}
  .payment-spacer{display:none;}
}
/* INV NO. disabled (No Invoice) — light grey card */
.inv-disabled-card{height:40px;border-radius:11px;background:var(--clay-recess);box-shadow:var(--clay-inset);display:flex;align-items:center;padding:0 13px;font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.06em;color:#A89B82;box-sizing:border-box;}
/* extra line-items inside income form */
.extra-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.extra-hint{font-size:8px;color:var(--fg2);font-weight:500;text-transform:none;letter-spacing:0;margin-left:5px;}
.add-extra-btn{font-size:11.5px;font-weight:700;color:var(--blue);background:rgba(41,121,255,.1);border:none;border-radius:9px;padding:5px 11px;cursor:pointer;flex-shrink:0;}
.add-extra-btn:hover{background:rgba(41,121,255,.18);}
.extra-row{display:grid;grid-template-columns:1fr 110px 32px;gap:7px;align-items:center;margin-top:7px;}
.extra-row.with-detail{grid-template-columns:130px 1fr 96px 32px;}
.extra-row select,.extra-row input{height:36px;font-size:12.5px;}
.extra-del{width:32px;height:32px;border-radius:9px;background:rgba(229,57,53,.08);color:var(--fg2);font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;}
.extra-del:hover{background:rgba(229,57,53,.18);color:var(--red);}
/* required marker + QR time highlight */
.req-star{color:var(--red);font-weight:800;}
.fld input.time-req{background:linear-gradient(158deg,#E4F6EC,#EDFBF4);box-shadow:var(--clay-inset);}
.fld input.time-req:focus{box-shadow:var(--clay-inset),0 0 0 3px rgba(27,168,112,.24);}

/* room picker grid */
.rp-body{padding:16px 20px;max-height:62vh;overflow-y:auto;}
.rp-floor{margin-bottom:16px;}
.rp-floor h4{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:var(--fg2);margin-bottom:9px;}
.rp-grid{display:flex;flex-wrap:wrap;gap:9px;}
.rm{width:54px;height:46px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:500;font-size:14px;border:none;background:var(--clay-surface);box-shadow:var(--clay-raise);color:var(--fg1);position:relative;transition:transform .08s,box-shadow .1s;}
.rm:hover{transform:translateY(-2px);box-shadow:var(--clay-raise-hi);}
.rm:active{transform:scale(.96);}
.rm.guest{background:linear-gradient(158deg,#FCEBD3,#FBE3C8);color:#8a5a14;box-shadow:var(--clay-raise);}
.rm.fix{background:var(--clay-recess);box-shadow:var(--clay-inset);color:#B8AE9E;cursor:not-allowed;}
.rm.fix:hover{transform:none;box-shadow:var(--clay-inset);}
.rm.fix:hover{transform:none;}
.rm .warn{position:absolute;top:-6px;right:-6px;width:16px;height:16px;border-radius:50%;background:var(--amber);color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-family:var(--font-sans);}

/* delete popup */
.del-pop{width:var(--popup-w-sm);padding:26px;text-align:center;}
.del-pop .ic{width:54px;height:54px;border-radius:50%;background:rgba(212,43,43,.12);color:var(--red);font-size:26px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;font-weight:800;}
.del-pop h3{font-size:17px;font-weight:800;margin-bottom:6px;}
.del-pop p{font-size:12.5px;color:var(--fg2);margin-bottom:20px;}
.maint-rec{font-size:10.5px;font-weight:600;color:var(--fg2);background:#F2F6FC;border:1px solid #E2EAF4;border-radius:10px;padding:9px 11px;line-height:1.35;}
/* settle (รับชำระยอดค้าง) popup */
.settle-info{padding:16px 20px 0;display:flex;flex-direction:column;gap:9px;}
.settle-row{display:flex;align-items:baseline;justify-content:space-between;font-size:12px;font-weight:600;color:var(--fg2);}
.settle-row .si-v{color:var(--fg1);font-weight:700;}
.settle-row.big{padding:11px 14px;background:#FFF6E6;border:1px solid #F3DFB0;border-radius:12px;align-items:center;}
.si-due{font-family:var(--font-mono);font-weight:500;font-size:21px;color:var(--amber);}
.settle-amt{display:flex;gap:8px;}
.settle-amt input{flex:1;min-width:0;}
.settle-full{flex:none;padding:0 14px;border-radius:10px;background:#EEF3FB;color:var(--blue);font-weight:700;font-size:12px;border:1px solid #DDE8F5;}
.settle-full:hover{background:#E3EEFF;}
.settle-remain{grid-column:1/-1;font-size:12px;color:var(--fg2);font-weight:600;}
.settle-remain b{font-family:var(--font-mono);color:var(--fg1);}
.settle-clear{color:var(--green);font-weight:800;}

/* ---------- PIN / Login screen (Innap style) ---------- */
.pin-screen{position:fixed;inset:0;background:var(--bg-beige);background-image:radial-gradient(circle,rgba(165,135,70,.16) 1.3px,transparent 1.3px);background-size:24px 24px;display:flex;align-items:center;justify-content:center;z-index:100;}
.pin-card{display:flex;flex-direction:column;align-items:center;gap:8px;width:360px;}
.pin-clock{font-family:var(--font-mono);font-size:72px;font-weight:400;letter-spacing:-.02em;color:var(--fg1);line-height:1;margin-bottom:4px;}
.pin-date-str{font-size:17px;color:var(--fg2);font-weight:500;margin-bottom:8px;}
.pin-greeting{font-size:30px;font-weight:800;color:var(--fg1);letter-spacing:-.01em;text-align:center;margin-bottom:8px;}
.pin-sub{font-size:12.5px;color:var(--fg2);font-weight:500;text-align:center;margin-bottom:4px;}
.pin-hotel-badge{display:flex;align-items:center;gap:8px;background:#F0F5FF;border-radius:100px;padding:6px 14px 6px 8px;margin-bottom:4px;}
.pin-logo-sm{width:24px;height:24px;border-radius:8px;background:linear-gradient(135deg,#5EC5F8,#2764F5);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:12px;}
.pin-hotel-badge span{font-size:12px;font-weight:700;color:var(--navy);}
.pin6-wrap{position:relative;display:flex;gap:12px;align-items:center;margin:12px 0;}
.pin6-box{width:54px;height:66px;border-radius:18px;border:none;background:var(--clay-recess);box-shadow:var(--clay-inset);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:28px;color:var(--fg1);transition:background .15s,box-shadow .15s,transform .15s;}
.pin6-box.active{box-shadow:var(--clay-inset),0 0 0 4px rgba(41,121,255,.18);}
.pin6-box.filled{background:var(--clay-surface);box-shadow:var(--clay-raise);color:var(--fg1);transform:translateY(-1px);}
.pin6-box.err{background:#F7E0DC;box-shadow:var(--clay-inset);color:var(--red);animation:shake .3s ease;}
@keyframes shake{0%,100%{transform:translateX(0);}25%{transform:translateX(-5px);}75%{transform:translateX(5px);}}
.pin6-hidden{position:absolute;opacity:0;width:100%;height:100%;top:0;left:0;cursor:default;}
.pin-hint{font-size:11.5px;color:var(--fg2);font-weight:500;letter-spacing:.02em;}
.pin-err{color:var(--red);font-size:12px;font-weight:600;height:16px;}
/* sync dot + settings icon */
.sync-dot{font-size:14px;line-height:1;display:flex;align-items:center;}
.tb-icon.settings{background:rgba(255,255,255,.14);}
/* nights counter label next to C/O */
.nights-lbl{font-size:10px;font-weight:700;background:var(--blue);color:#fff;border-radius:100px;padding:1px 8px;margin-left:6px;letter-spacing:.03em;}
/* settings steps */
.settings-steps{background:#F4F7FC;border:1px solid #DDE8F5;border-radius:14px;padding:14px 16px;font-size:12px;color:var(--fg2);line-height:1.6;}
.ss-title{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--fg2);margin-bottom:8px;}
.settings-steps ol{padding-left:18px;display:flex;flex-direction:column;gap:4px;}
.settings-steps b{color:var(--fg1);font-weight:700;}
.settings-steps code{font-family:var(--font-mono);background:#E8F0FC;border-radius:4px;padding:1px 5px;font-size:11px;}
.ss-note{margin-top:10px;padding:8px 12px;background:rgba(27,168,112,.1);border-radius:9px;color:var(--green);font-weight:600;font-size:11.5px;}
.pin-divider{width:100%;height:1px;background:#EEF3FB;margin:4px 0;}
.pin-footer{font-size:11px;color:#B0C4DE;text-align:center;}
.unlock-btn{display:flex;align-items:center;gap:10px;padding:14px 36px;border:none;border-radius:100px;background:linear-gradient(135deg,#2979FF,#1565C0);color:#fff;font-family:var(--font-sans);font-weight:700;font-size:15px;cursor:pointer;box-shadow:0 6px 20px rgba(21,101,192,.35);transition:filter .12s,transform .08s;}
.unlock-btn:hover{filter:brightness(1.08);}
.unlock-btn:active{transform:scale(.97);}

/* ---------- Print: base page only ----------
   The active print document is the dedicated .print-report layout owned by
   aurora-app.css. Do not reshape or expose the live dashboard here. */
@media print{
  @page{size:A5 portrait;margin:7mm;}
  body{overflow:visible !important;background:#fff !important;background-image:none !important;}
}
