:root{--blue-primary: #b5d3e5;--blue-deep: #091b3a;--blue-mid: #a5c0ce;--grad-start: #e6f3fc;--grad-end: #a5c0ce;--ink: #1b2733;--ink-soft: #5b6675;--line: #e1e8ed;--bg-page: #f4f7f8;--white: #ffffff;--warn-bg: #fdf3e7;--warn-text: #966119;--ok-bg: #e6f5ef;--ok-text: #1d9e75;--coral: #d85a30;--coral-bg: #faece7;--error: #c0392b}*{box-sizing:border-box}body{margin:0;font-family:Noto Sans Thai,Noto Sans,sans-serif;background:var(--bg-page);color:var(--ink)}.topbar{background:var(--blue-deep);color:var(--white);padding:14px 28px;display:flex;align-items:center;justify-content:space-between}.topbar .brand{display:flex;align-items:center;gap:10px}.brand-logo{height:32px;width:auto;border-radius:6px;display:block}.topbar .brand .name{font-weight:700;font-size:15px}.topbar .brand .name span{font-weight:400;opacity:.7;font-size:12px;display:block;margin-top:1px}.topbar .admin-chip{background:#ffffff1f;border-radius:99px;padding:6px 14px;font-size:12.5px;display:flex;align-items:center;gap:10px}.topbar .logout-btn{background:none;border:1px solid rgba(255,255,255,.3);color:var(--white);border-radius:8px;padding:5px 12px;font-size:12px;cursor:pointer;font-family:inherit}.topbar .logout-btn:hover{background:#ffffff1a}.main{padding:26px 30px;max-width:1440px;margin:0 auto}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:18px}.page-head h1{font-size:19px;margin:0 0 4px}.page-head p{margin:0;font-size:12.5px;color:var(--ink-soft)}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:20px}.stat-card{--accent: var(--blue-deep);--accent-bg: #eef2f7;position:relative;display:flex;flex-direction:column;gap:6px;text-align:left;font-family:inherit;color:var(--ink);background:var(--white);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;padding:16px 18px;cursor:pointer;transition:box-shadow .15s,transform .15s,border-color .15s}.stat-card:hover{box-shadow:0 6px 18px #091b3a14;transform:translateY(-1px)}.stat-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stat-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.stat-card.warn{--accent: #d9861c;--accent-bg: var(--warn-bg)}.stat-card.danger{--accent: #c0392b;--accent-bg: #fdeceb}.stat-card.ok{--accent: var(--ok-text);--accent-bg: var(--ok-bg)}.stat-card.neutral{--accent: #8a96a3}.stat-card.attention.clear{--accent: #b9c3cc;--accent-bg: #f1f3f5}.stat-card.attention:not(.clear){background:linear-gradient(0deg,var(--white) 55%,var(--accent-bg))}.stat-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.stat-lbl{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:700;color:#3d4a58}.stat-tag{white-space:nowrap;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:99px;color:var(--accent);background:var(--accent-bg)}.stat-card.attention.clear .stat-tag{color:var(--ok-text);background:var(--ok-bg)}.stat-num{font-size:32px;font-weight:700;line-height:1.1;color:var(--blue-deep)}.stat-card.attention:not(.clear) .stat-num{color:var(--accent)}.stat-sub{font-size:12px;color:var(--ink-soft)}.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:16px}.filter-field{display:flex;flex-direction:column;gap:5px}.filter-field label{font-size:11px;color:var(--ink-soft);font-weight:600}.filter-field select,.filter-field input[type=date]{border:1.4px solid var(--line);border-radius:8px;padding:7px 9px;font-size:12.5px;font-family:inherit;color:var(--ink);background:#fbfdfe;min-height:34px}.filter-field select:focus,.filter-field input[type=date]:focus{outline:none;border-color:var(--blue-deep);background:var(--white)}.export-btn{margin-left:auto;background:var(--blue-deep);color:var(--white);border:none;padding:9px 16px;border-radius:9px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;height:34px}.export-btn:disabled{opacity:.5;cursor:not-allowed}.table-wrap{background:var(--white);border:1px solid var(--line);border-radius:12px;overflow-x:auto}table{width:100%;border-collapse:collapse;background:var(--white)}.booking-table{min-width:1180px}.booking-table thead th{text-align:left;font-size:12.5px;font-weight:700;color:#3d4a58;padding:14px 16px;border-bottom:1px solid var(--line);background:#f6f8fa;white-space:nowrap}.booking-table tbody td{padding:16px;font-size:14px;color:var(--ink);border-bottom:1px solid var(--line);vertical-align:middle}.booking-table tbody tr:last-child td{border-bottom:none}.booking-table tbody tr{transition:background .12s}.booking-table tbody tr:hover{background:#f7fafc}.name-cell{font-weight:700;font-size:14.5px;min-width:150px}.appt-cell{white-space:nowrap;font-weight:600}.appt-time{font-size:12.5px;font-weight:400;color:var(--ink-soft);margin-top:3px}.text-cell{min-width:140px;max-width:220px;line-height:1.5}.empty-row td{text-align:center;color:var(--ink-soft);padding:36px}.badge{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:5px 12px 5px 10px;border-radius:99px;border:1px solid transparent;font-size:12.5px;font-weight:600;line-height:1.3}.badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}.badge.pending{background:var(--warn-bg);color:var(--warn-text);border-color:#f3dcbd}.badge.sent,.badge.rx-sent,.badge.case-closed{background:var(--ok-bg);color:#157a5a;border-color:#bfe6d6}.badge.walk-in{background:#e8f0fb;color:#1f4f8f;border-color:#c5d7f0}.badge.case-cancelled{background:#eceff2;color:#4a5562;border-color:#d3d9df}.badge.rx-unsent{background:#f1f3f5;color:#5b6675;border-color:#dfe4e8}.badge.case-open{background:#fdeceb;color:#c0392b;border-color:#f5c6c1}.rx-check{display:flex;align-items:center;gap:10px;white-space:nowrap;cursor:pointer}.rx-check input{width:17px;height:17px;margin:0;cursor:pointer;accent-color:var(--ok-text)}.customer-type-cell{display:flex;flex-direction:column;gap:5px}.customer-type-other{border:1.4px solid var(--line);border-radius:8px;padding:6px 8px;font-size:12.5px;font-family:inherit;color:var(--ink);background:#fbfdfe;width:100%;min-width:120px;box-sizing:border-box}.customer-type-other:focus{outline:none;border-color:var(--blue-deep);background:var(--white)}.customer-type-select{min-width:170px;border:1.4px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit;color:var(--ink);background:#fbfdfe}.customer-type-select:focus{outline:none;border-color:var(--blue-deep);background:var(--white)}.row-btn{white-space:nowrap;border:1.4px solid var(--blue-deep);background:var(--white);color:var(--blue-deep);padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}.row-btn:hover{background:var(--blue-deep);color:var(--white)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#091b3a59;display:flex;align-items:stretch;justify-content:flex-end;z-index:50}.drawer{width:440px;max-width:92vw;background:var(--white);height:100%;box-shadow:-8px 0 30px #091b3a2e;display:flex;flex-direction:column;animation:slideIn .25s ease}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;flex-shrink:0}.drawer-head h2{margin:0 0 3px;font-size:16px}.drawer-head p{margin:0;font-size:11.5px;color:var(--ink-soft)}.drawer-close{border:none;background:#f0f3f5;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:14px;color:var(--ink-soft)}.drawer-body{flex:1;overflow-y:auto;padding:18px 22px}.confirm-overlay{align-items:center;justify-content:center}.image-loading{color:var(--ink-soft);font-size:12.5px}.id-card-thumb{display:block;max-width:100%;max-height:140px;border-radius:8px;border:1.4px solid var(--line);cursor:zoom-in;margin-top:2px}.id-card-lightbox-img{max-width:92vw;max-height:92vh;border-radius:10px;box-shadow:0 12px 40px #091b3a59}.confirm-box{width:360px;max-width:88vw;background:var(--white);border-radius:14px;padding:22px;box-shadow:0 12px 40px #091b3a40}.confirm-box p{margin:0 0 18px;font-size:14px;color:var(--ink);line-height:1.6}.confirm-actions{display:flex;gap:10px;justify-content:flex-end}.confirm-cancel-btn{background:var(--white);color:var(--ink-soft);border:1.4px solid var(--line);padding:9px 18px;border-radius:9px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit}.confirm-ok-btn{background:var(--blue-deep);color:var(--white);border:none;padding:9px 18px;border-radius:9px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit}.info-section{margin-bottom:20px}.info-section .tag{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.03em;color:var(--blue-deep);background:var(--blue-primary);padding:3px 9px;border-radius:99px;margin-bottom:10px}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.info-item{font-size:12.5px}.info-item .k{color:var(--ink-soft);font-size:11px;margin-bottom:2px}.info-item .k.k-critical{display:inline-block;color:#b91c1c;background:#fef08a;padding:1px 6px;border-radius:3px;font-weight:700}.info-item .v{font-weight:600;color:var(--ink)}.info-item.full{grid-column:1 / -1}.divider{height:1px;background:var(--line);margin:16px 0}.audit-empty{font-size:12px;color:var(--ink-soft);margin:0}.audit-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.audit-item{border:1.4px solid var(--line);border-radius:10px;padding:10px 12px;background:#fbfdfe}.audit-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.audit-action{font-size:12.5px;font-weight:700;color:var(--ink)}.audit-time{font-size:11px;color:var(--ink-soft);flex-shrink:0}.audit-by{font-size:11.5px;color:var(--ink-soft);margin-top:2px}.audit-detail{font-size:11.5px;color:var(--ink);margin-top:4px;word-break:break-all}.step-flow{display:flex;gap:6px;margin-bottom:16px}.step-pill{flex:1;text-align:center;font-size:10.5px;padding:7px 4px;border-radius:8px;background:#f0f3f5;color:var(--ink-soft);font-weight:600}.step-pill.done{background:var(--ok-bg);color:var(--ok-text)}.step-pill.now{background:var(--blue-deep);color:var(--white)}.action-box{background:#f7fafc;border:1.4px solid var(--line);border-radius:12px;padding:14px 16px}.action-box .instr{font-size:12px;color:var(--ink-soft);line-height:1.55;margin-bottom:10px}.action-box .instr b{color:var(--coral)}.link-input{width:100%;border:1.4px solid var(--line);border-radius:9px;padding:9px 11px;font-size:12.5px;font-family:inherit;margin-bottom:10px;outline:none}.link-input:focus{border-color:var(--blue-deep)}.brand-select{width:100%;border:1.4px solid var(--line);border-radius:9px;padding:9px 11px;font-size:12.5px;font-family:inherit;outline:none;background:var(--white)}.brand-select:focus{border-color:var(--blue-deep)}.action-btn-row{display:flex;gap:8px}.send-btn{flex:1;background:var(--blue-deep);color:var(--white);border:none;padding:11px;border-radius:9px;font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit}.send-btn:disabled{opacity:.4;cursor:not-allowed}.cancel-edit-btn{background:var(--white);color:var(--ink-soft);border:1.4px solid var(--line);padding:11px 16px;border-radius:9px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit}.cancel-edit-btn:disabled{opacity:.4;cursor:not-allowed}.sent-note{display:flex;align-items:center;gap:8px;background:var(--ok-bg);color:var(--ok-text);padding:12px 14px;border-radius:10px;font-size:12.5px;font-weight:600}.sent-box{display:flex;flex-direction:column;gap:8px}.sent-link{font-size:11.5px;color:var(--ink-soft);word-break:break-all;background:#f7fafc;border:1.4px solid var(--line);border-radius:9px;padding:9px 11px}.edit-link-btn{align-self:flex-start;background:var(--white);color:var(--blue-deep);border:1.4px solid var(--blue-deep);padding:8px 14px;border-radius:9px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}.warning-note{margin-top:8px;background:var(--warn-bg);color:var(--warn-text);padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.5}.form-error{font-size:12px;color:var(--error);margin-top:8px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--grad-start),var(--grad-end))}.login-card{width:340px;max-width:90vw;background:var(--white);border-radius:16px;padding:30px 26px;box-shadow:0 20px 50px #091b3a2e}.login-logo{height:40px;width:auto;border-radius:8px;display:block;margin-bottom:16px}.login-card h1{font-size:18px;margin:0 0 4px}.login-card p{font-size:12.5px;color:var(--ink-soft);margin:0 0 20px}.login-field{margin-bottom:14px}.login-field label{display:block;font-size:12.5px;font-weight:600;margin-bottom:6px}.login-field input{width:100%;border:1.4px solid var(--line);border-radius:9px;padding:10px 12px;font-size:13.5px;font-family:inherit;outline:none}.login-field input:focus{border-color:var(--blue-deep)}.login-submit{width:100%;background:var(--blue-deep);color:var(--white);border:none;padding:11px;border-radius:9px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;margin-top:4px}.login-submit:disabled{opacity:.5;cursor:not-allowed}.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%) translateY(20px);background:var(--blue-deep);color:var(--white);padding:12px 22px;border-radius:10px;font-size:13px;box-shadow:0 8px 24px #091b3a40;opacity:0;pointer-events:none;transition:all .25s ease;z-index:60}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.center-message{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);font-size:13px}
