*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f0f2f5;--surface: #ffffff;--border: #d1d5db;--text: #1f2937;--text-muted: #6b7280;--primary: #2563eb;--primary-hover: #1d4ed8;--danger: #dc2626;--danger-hover: #b91c1c;--warning: #d97706;--warning-hover: #b45309;--secondary-bg: #e5e7eb;--secondary-hover: #d1d5db;--header-h: 56px;--confirmed: #16a34a;--pending: #d97706;--cancelled: #9ca3af;--shadow: 0 1px 3px rgba(0,0,0,.1);--shadow-lg: 0 4px 16px rgba(0,0,0,.15)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:14px;height:100vh;overflow:hidden;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}body.sidebar-open{grid-template-columns:1fr 290px}.app-footer{position:fixed;bottom:0;left:0;right:0;text-align:center;font-size:11px;color:var(--text-muted);padding:4px 0;pointer-events:none;opacity:.6;z-index:1}.license-overlay{position:fixed;inset:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:90}.license-overlay.hidden{display:none}.license-overlay-box{background:var(--surface);border-radius:14px;padding:36px 40px 28px;max-width:440px;width:90%;text-align:center;box-shadow:0 24px 64px #00000059}.license-overlay-icon{width:40px;height:40px;color:var(--text-muted);margin-bottom:12px}.license-overlay-box h2{font-size:20px;font-weight:700;margin-bottom:0}.license-overlay-msg{font-size:13px;color:var(--text-muted);margin:8px 0 0;line-height:1.5}.license-overlay-contact{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted)}.license-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;letter-spacing:.02em}.license-badge--valid{background:#d1fae5;color:#065f46}.license-badge--expired{background:#fef3c7;color:#92400e}.license-badge--invalid{background:#fee2e2;color:#991b1b}.license-badge--unlicensed{background:#f3f4f6;color:#6b7280}.license-details-table{margin-top:14px;border-collapse:collapse;font-size:13px;width:100%;max-width:420px}.license-details-table td{padding:4px 12px 4px 0;vertical-align:top}.license-details-table td:first-child{color:var(--text-muted);white-space:nowrap;width:90px}#app{display:flex;flex-direction:column;overflow:hidden;min-height:0}header{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:12px;box-shadow:var(--shadow);flex-shrink:0;position:relative;z-index:10}header h1{font-size:18px;font-weight:700;white-space:nowrap}.header-left{flex:1}.header-center{display:flex;align-items:center;gap:8px;flex:0 0 auto}.header-right{flex:1;display:flex;align-items:center;justify-content:flex-end;gap:8px}.header-sep{width:1px;height:20px;background:var(--border);flex-shrink:0;margin:0 2px}#current-date-label{font-size:15px;font-weight:600;min-width:170px;text-align:center}button{cursor:pointer;border:none;border-radius:6px;font-size:13px;font-weight:500;transition:background .15s}.btn-primary{background:var(--primary);color:#fff;padding:7px 14px}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--secondary-bg);color:var(--text);padding:7px 14px}.btn-secondary:hover{background:var(--secondary-hover)}.btn-danger{background:var(--danger);color:#fff;padding:7px 14px}.btn-danger:hover{background:var(--danger-hover)}.btn-warning{background:var(--warning);color:#fff;padding:7px 14px}.btn-warning:hover{background:var(--warning-hover)}.nav-btn{background:var(--secondary-bg);color:var(--text);padding:6px 10px;font-size:16px}.nav-btn:hover{background:var(--secondary-hover)}#main-view{flex:1;overflow:hidden;min-height:0}#grid-wrapper{width:100%;height:100%;overflow:auto;padding:16px}#grid-container{width:100%}#loading{text-align:center;padding:48px;color:var(--text-muted)}#audit-sidebar{border-left:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;overflow:hidden}.audit-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);font-weight:600;font-size:13px;background:#f8fafc;flex-shrink:0}.audit-sidebar-header button{background:none;font-size:16px;color:var(--text-muted);padding:2px 6px;border-radius:4px}.audit-sidebar-header button:hover{background:var(--secondary-bg);color:var(--text)}@keyframes spin-once{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin-once{animation:spin-once .5s ease-in-out;display:inline-block}.audit-filters{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-bottom:1px solid var(--border);background:#f8fafc;flex-shrink:0}.audit-filter-select{width:100%;border:1px solid var(--border);border-radius:5px;padding:5px 8px;font-size:12px;font-family:inherit;background:var(--surface);color:var(--text);outline:none;cursor:pointer}.audit-filter-select:focus{border-color:var(--primary)}#audit-list{flex:1;overflow-y:auto;padding:6px 0}.audit-empty{padding:24px 14px;color:var(--text-muted);font-size:13px;text-align:center}.audit-entry{display:flex;gap:10px;padding:8px 14px;border-bottom:1px solid #f3f4f6;align-items:flex-start}.audit-entry:last-child{border-bottom:none}.audit-entry:hover{background:#f9fafb}.audit-entry-clickable{cursor:pointer}.audit-entry-clickable:hover{background:#eff6ff}.audit-entry-clickable:hover .audit-desc{color:var(--primary)}.audit-icon{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;margin-top:1px;color:#fff}.audit-green{background:#16a34a}.audit-blue{background:#2563eb}.audit-red{background:#dc2626}.audit-orange{background:#d97706}.audit-gray{background:#9ca3af}.audit-purple{background:#7c3aed}.audit-body{flex:1;min-width:0}.audit-desc{font-size:12px;color:var(--text);line-height:1.4;word-break:break-word}.audit-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px;font-size:11px;color:var(--text-muted)}.audit-who{font-weight:500}.audit-account{background:#ede9fe;color:#5b21b6;border-radius:999px;padding:0 6px;font-weight:500}.audit-time{margin-left:auto;white-space:nowrap}.gantt-grid{display:grid;background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;box-shadow:var(--shadow);width:max-content;min-width:100%;grid-template-rows:auto;grid-auto-rows:68px}.grid-corner{background:#f8fafc;border-bottom:2px solid var(--border);border-right:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;position:sticky;left:0;top:0;z-index:5}.grid-slot-header{background:#f8fafc;border-bottom:2px solid var(--border);border-right:1px solid var(--border);padding:10px 16px;min-width:150px;text-align:center;position:sticky;top:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.grid-slot-header .slot-name{font-weight:600;font-size:13px}.grid-slot-header .slot-time{font-size:11px;color:var(--text-muted)}.grid-space-label{background:#f8fafc;border-bottom:1px solid var(--border);border-right:2px solid var(--border);padding:0 16px;display:flex;align-items:center;gap:10px;font-weight:600;font-size:13px;position:sticky;left:0;z-index:2;white-space:nowrap}.space-color-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.grid-cell{border-bottom:1px solid var(--border);border-right:1px solid var(--border);min-width:150px;position:relative;cursor:pointer;transition:background .1s}.grid-cell:hover{background:#f0f7ff}.grid-cell.booked{cursor:default}.grid-cell.booked:hover{background:initial}.booking-card{position:absolute;inset:5px;border-radius:6px;padding:6px 10px;font-size:12px;color:#fff;overflow:hidden;cursor:pointer;transition:opacity .15s,transform .1s;display:flex;flex-direction:column;justify-content:center;gap:2px}.booking-card:hover{opacity:.9;transform:scale(1.01)}.booking-card.status-confirmed{background:var(--confirmed)}.booking-card.status-pending{background:var(--pending)}.booking-card.status-invoiced{background:var(--primary)}.booking-card.status-cancelled{background:var(--cancelled)}.booking-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking-sub{font-size:11px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-add-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--border);font-size:24px;opacity:0;transition:opacity .15s}.grid-cell:not(.booked):hover .cell-add-hint{opacity:1}#booking-tooltip{position:fixed;background:#1f2937;color:#fff;padding:10px 14px;border-radius:8px;font-size:12px;max-width:220px;pointer-events:none;z-index:100;line-height:1.6;box-shadow:var(--shadow-lg)}#booking-tooltip.hidden{display:none}#messages-panel{position:fixed;inset:0;background:var(--surface);z-index:50;display:flex;flex-direction:column;overflow:hidden}#messages-panel.hidden{display:none}.messages-unread-badge{background:var(--danger);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;margin-left:4px;vertical-align:middle}#messages-content{flex:1;overflow-y:auto;padding:16px;max-width:760px;width:100%;margin:0 auto}.message-card{border:1px solid var(--border);border-radius:8px;margin-bottom:10px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.message-card-header{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;min-width:0}.message-card-header:hover{background:#f8fafc}.message-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:transparent}.message-card.unread .message-dot{background:var(--primary)}.message-card.unread .message-subject{font-weight:600}.message-subject{flex:1;font-size:14px;min-width:0}.message-date{font-size:12px;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.message-body{border-top:1px solid var(--border);background:#f8fafc}.message-body-inner{padding:20px;font-size:14px;max-height:400px;overflow-y:auto}.message-body-inner img{max-width:100%;height:auto}.messages-empty-state{text-align:center;padding:60px 20px;color:var(--text-muted);font-size:15px}#overview-panel{position:fixed;inset:0;background:var(--surface);z-index:50;display:flex;flex-direction:column;overflow:hidden}#overview-panel.hidden{display:none}.overview-controls{display:flex;align-items:center;gap:16px}.overview-controls select{border:1px solid var(--border);border-radius:6px;padding:7px 10px;font-size:13px;font-family:inherit;outline:none;cursor:pointer;min-width:200px}.overview-controls select:focus{border-color:var(--primary)}.overview-actions,.month-nav{display:flex;align-items:center;gap:8px}#overview-month-label{font-size:14px;font-weight:600;min-width:140px;text-align:center}.ov-section{margin-bottom:32px}.ov-section-title{font-size:16px;font-weight:700;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--border)}.ov-table{width:100%;border-collapse:collapse;font-size:13px}.ov-table th{background:#f8fafc;border:1px solid var(--border);padding:8px 12px;text-align:left;font-weight:600}.ov-table td{border:1px solid var(--border);padding:8px 12px}.ov-table tr:hover td{background:#f0f7ff}.ov-amount{text-align:right;font-variant-numeric:tabular-nums}.ov-no-rate{color:var(--text-muted);font-style:italic;text-align:right}.ov-muted{color:var(--text-muted);font-size:11px}.ov-subtotal{text-align:right;padding:10px 12px;font-size:13px;color:var(--text-muted);border:1px solid var(--border);border-top:none;background:#f8fafc}.ov-empty{padding:24px;color:var(--text-muted);text-align:center;font-size:13px;background:#f9fafb;border:1px solid var(--border);border-radius:6px}.ov-total{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#f0f7ff;border:2px solid var(--primary);border-radius:8px;font-size:16px;font-weight:600}.ov-total-amount{font-size:20px;font-weight:700;color:var(--primary)}.status-badge.invoiced{background:#2563eb}.lh-table{width:100%;border-collapse:collapse;margin-bottom:12px}.lh-left{vertical-align:top;padding-bottom:12px}.lh-right{vertical-align:top;text-align:right;font-size:11px;color:var(--text-muted);line-height:1.7;padding-bottom:12px}.lh-logo{max-height:64px;max-width:180px;object-fit:contain;display:block;margin-bottom:8px}.lh-org{font-size:22px;font-weight:800;color:var(--text);line-height:1.2}.lh-tagline{font-size:12px;color:var(--text-muted);margin-top:3px}.lh-rule{border:none;border-top:2px solid var(--text);margin:0 0 16px}.lh-doc-header{margin-bottom:20px}.lh-account-name{font-size:15px;font-weight:700}.lh-account-detail{font-size:12px;color:var(--text-muted);margin-top:2px}.lh-doc-period{font-size:12px;color:var(--text-muted);margin-top:6px}.branding-layout{display:flex;gap:32px;align-items:flex-start}.branding-form-col{flex:0 0 420px;display:flex;flex-direction:column;gap:24px}.branding-preview-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}.branding-section{background:var(--bg);border:1px solid var(--border);border-radius:8px;overflow:hidden}.branding-section-head{font-size:13px;font-weight:700;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.branding-hint{display:block;padding:8px 20px 0;font-size:12px;color:var(--text-muted)}.branding-save-row{padding:4px 20px 20px}.branding-empty-hint{font-size:13px;color:var(--text-muted);font-style:italic}.logo-upload-row{display:flex;align-items:center;gap:8px}.logo-file-btn{cursor:pointer;display:inline-block;padding:7px 14px;background:var(--secondary-bg);border-radius:6px;font-size:13px;font-weight:500;color:var(--text);transition:background .15s}.logo-file-btn:hover{background:var(--secondary-hover)}.logo-preview{margin-top:10px;padding:10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;display:inline-block}.logo-preview img{max-height:64px;max-width:200px;object-fit:contain;display:block}.ov-statement-text{margin:12px 0;font-size:13px;line-height:1.6}.ov-statement-text p{margin:0 0 4px}.wysiwyg-editor{background:var(--surface);border-radius:0 0 6px 6px;margin-top:6px}.wysiwyg-editor .ql-toolbar{border-radius:6px 6px 0 0;border-color:var(--border);background:#f8fafc}.wysiwyg-editor .ql-container{border-color:var(--border);border-radius:0 0 6px 6px;font-family:inherit;font-size:13px;min-height:90px}.wysiwyg-editor .ql-editor{min-height:90px}.lh-preview-box{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:24px;min-height:140px;box-shadow:var(--shadow)}.ov-disclaimer{margin-top:16px;padding:10px 16px;background:#fef3c7;border:1px solid #f59e0b;border-radius:6px;font-size:13px;font-weight:600;color:#92400e;text-align:center}#admin-panel{position:fixed;inset:0;background:var(--surface);z-index:50;display:flex;flex-direction:column;overflow:hidden}#admin-panel.hidden{display:none}#admin-panel .panel-header{background:var(--warning);border-bottom-color:var(--warning-hover)}#admin-panel .panel-header h2{color:#fff}#admin-panel .panel-header .btn-secondary{background:#fff3;color:#fff}#admin-panel .panel-header .btn-secondary:hover{background:#ffffff59}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);background:var(--surface)}.panel-header h2{font-size:20px}.panel-tabs{display:flex;gap:4px;padding:12px 24px 0;border-bottom:1px solid var(--border);background:var(--surface)}.tab-btn{background:none;border-bottom:3px solid transparent;border-radius:0;padding:8px 16px;font-size:14px;font-weight:500;color:var(--text-muted)}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-content{flex:1;overflow-y:auto;padding:24px}.tab-content.hidden{display:none}#spaces-list,#slots-list{margin-top:16px;display:flex;flex-direction:column;gap:8px}.list-item{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px 16px;display:flex;align-items:center;gap:12px}.list-item-info{flex:1}.list-item-name{font-weight:600}.list-item-sub{font-size:12px;color:var(--text-muted);margin-top:2px}.list-item-actions{display:flex;gap:8px}.item-inactive{opacity:.5}.filter-row{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.filter-row label{display:flex;align-items:center;gap:6px}.filter-row input,.filter-row select{border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:13px;font-family:inherit;background:var(--surface);color:var(--text)}.btn-secondary.active{background:var(--primary);color:#fff}.btn-secondary.active:hover{background:var(--primary-hover)}.bookings-table{width:100%;border-collapse:collapse;font-size:13px}.bookings-table th{background:#f8fafc;border:1px solid var(--border);padding:8px 12px;text-align:left;font-weight:600}.bookings-table td{border:1px solid var(--border);padding:8px 12px}.bookings-table tr:hover td{background:#f0f7ff}.bookings-table tr.row-inactive td{color:var(--text-muted)}.bookings-table tr.row-pending td{background:#fffbeb}.status-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#fff}.status-badge.confirmed{background:var(--confirmed)}.status-badge.pending{background:var(--pending)}.status-badge.cancelled{background:var(--cancelled)}.modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:60}.modal.hidden{display:none}.modal-content{background:var(--surface);border-radius:12px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3{font-size:16px;font-weight:700}.modal-close{background:none;font-size:20px;color:var(--text-muted);padding:4px 8px;line-height:1}.modal-close:hover{color:var(--text);background:var(--secondary-bg)}.form-group{padding:12px 20px;display:flex;flex-direction:column;gap:4px}.form-group label{font-weight:500;font-size:13px}.form-group input:not([type=checkbox]):not([type=color]),.form-group select,.form-group textarea{border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:14px;font-family:inherit;width:100%;outline:none;transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary)}.form-group input[readonly]{background:var(--bg);color:var(--text-muted)}.checkbox-group{flex-direction:row!important;align-items:center;gap:8px}.checkbox-group label{font-weight:400;display:flex;align-items:center;gap:6px}.days-checkboxes{display:flex;gap:8px;flex-wrap:wrap}.days-checkboxes label{display:flex;align-items:center;gap:4px;font-weight:400;cursor:pointer}.form-actions{padding:16px 20px;display:flex;gap:8px;border-top:1px solid var(--border)}#login-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:95}#login-overlay.hidden{display:none}.login-box{background:var(--surface);border-radius:12px;padding:32px;width:320px;box-shadow:var(--shadow-lg)}.login-box h2{margin-bottom:20px;font-size:20px}.login-box form{display:flex;flex-direction:column;gap:12px}.login-box input{border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:14px;outline:none}.login-box input:focus{border-color:var(--primary)}.login-box button{background:var(--primary);color:#fff;padding:10px;font-size:15px;width:100%}.login-box button:hover{background:var(--primary-hover)}.error{color:var(--danger);font-size:13px;margin-top:4px}.charges-section{margin-bottom:32px}.charges-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.charges-section-header h3{font-size:15px;font-weight:700}.text-right{text-align:right}.rates-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap}.rates-hint{font-size:13px;color:var(--text-muted)}.rates-toolbar-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.rates-currency-label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500}.rates-currency-label select{border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:13px;font-family:inherit;outline:none;cursor:pointer}.rates-currency-label select:focus{border-color:var(--primary)}.rates-grid{display:grid;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}.rates-corner{background:#f8fafc}.rates-day-header{background:#f8fafc;padding:10px 8px;text-align:center;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.rates-section-header{grid-column:1 / -1;background:var(--bg);padding:8px 14px;display:flex;align-items:center;gap:8px;font-weight:700;font-size:13px;border-top:1px solid var(--border)}.rates-section-header:first-of-type{border-top:none}.rates-slot-label{background:#f8fafc;padding:0 12px 0 28px;display:flex;flex-direction:column;justify-content:center;gap:1px;border-right:2px solid var(--border)}.rates-slot-name{font-weight:600;font-size:12px}.rates-slot-time{font-size:11px;color:var(--text-muted)}.rates-cell{background:var(--surface);padding:5px 6px;display:flex;align-items:center;gap:2px}.rates-symbol{font-size:12px;color:var(--text-muted);font-weight:500;flex-shrink:0;min-width:14px;text-align:right}.rates-input{flex:1;min-width:0;border:1px solid transparent;border-radius:4px;padding:7px 6px;font-size:13px;font-family:inherit;text-align:right;outline:none;background:transparent;color:var(--text);-moz-appearance:textfield}.rates-input::-webkit-outer-spin-button,.rates-input::-webkit-inner-spin-button{-webkit-appearance:none}.rates-input:hover{background:var(--bg);border-color:var(--border)}.rates-input:focus{background:var(--surface);border-color:var(--primary)}.view-toggle{display:flex;background:var(--bg);border-radius:6px;padding:2px;gap:1px;margin-left:6px}.view-btn{background:none;padding:4px 12px;font-size:12px;font-weight:500;border-radius:4px;color:var(--text-muted)}.view-btn:hover{color:var(--text);background:var(--secondary-bg)}.view-btn.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.template-events{display:flex;flex-direction:column;gap:24px}.template-vars-hint{font-size:12px;color:var(--text-muted);margin-top:8px}.template-vars-hint code{background:var(--secondary-bg);padding:1px 5px;border-radius:4px;font-size:11px;margin-right:4px}.today-col{background:#f0f7ff!important}.grid-slot-header.today-col{border-bottom-color:var(--primary)!important}.week-grid{grid-auto-rows:auto!important}.week-cell{padding:4px;display:flex;flex-direction:column;gap:3px;min-height:60px;vertical-align:top}.week-booking-card{border-radius:4px;padding:4px 6px;font-size:11px;color:#fff;cursor:default;transition:opacity .15s;display:flex;flex-direction:column;gap:1px}.week-booking-card:hover{opacity:.88}.week-card-time{font-weight:700;font-size:10px;opacity:.9}.week-card-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}.month-day-header{background:#f8fafc;padding:8px 10px;text-align:center;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.month-cell{background:var(--surface);padding:6px 8px;min-height:96px;cursor:pointer;transition:background .1s}.month-cell:hover{background:#f5f9ff}.month-cell.other-month{background:#fafafa}.month-cell.other-month .month-day-num{color:var(--text-muted)}.month-cell.today-cell{background:#eff6ff}.month-day-num{font-size:12px;font-weight:600;margin-bottom:4px;color:var(--text);line-height:1}.today-num{background:var(--primary);color:#fff;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.month-booking{border-radius:3px;padding:2px 5px;font-size:10px;color:#fff;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.month-more{font-size:10px;color:var(--text-muted);padding:1px 2px}.hidden{display:none!important}.pending-badge{display:inline-block;background:#ffffff4d;color:#fff;font-size:9px;font-weight:800;letter-spacing:.08em;padding:1px 5px;border-radius:3px;margin-bottom:2px;text-transform:uppercase}.booking-account{font-size:11px;opacity:.9;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking-rate{margin:4px 20px 8px;padding:8px 14px;border-radius:6px;font-size:13px;font-weight:500}.booking-rate-found{background:#f0fdf4;border:1px solid #86efac;color:#15803d;font-weight:600}.booking-rate-none{background:#f9fafb;border:1px solid var(--border);color:var(--text-muted)}.booking-rate-loading{background:#f9fafb;border:1px solid var(--border);color:var(--text-muted);font-style:italic}.pending-notice{margin:0 20px 4px;background:#fef3c7;border:1px solid #f59e0b;border-radius:6px;padding:8px 12px;font-size:13px;color:#92400e}.row-pending td{background:#fffbeb}.row-pending:hover td{background:#fef3c7}.admin-tag{display:inline-block;background:var(--primary);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.05em;margin-left:4px;vertical-align:middle}.ms365-tag{display:inline-block;background:#0078d4;color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.05em;margin-left:4px;vertical-align:middle}.google-tag{display:inline-block;background:#4285f4;color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.05em;margin-left:4px;vertical-align:middle}.accounts-checkboxes{display:flex;flex-direction:column;gap:6px;max-height:160px;overflow-y:auto;padding:4px 0}.account-check-label{display:flex;align-items:center;gap:8px;font-weight:400;cursor:pointer;padding:4px 6px;border-radius:4px}.account-check-label:hover{background:var(--bg)}.field-hint{font-size:11px;color:var(--text-muted);margin-top:2px}.btn-sm{padding:3px 8px!important;font-size:12px!important}.table-actions{white-space:nowrap;display:flex;gap:4px;align-items:center}.empty-state{text-align:center;padding:48px;color:var(--text-muted)}.empty-state p{margin-top:8px;font-size:13px}.btn-microsoft,.login-box .btn-microsoft{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:9px 16px;background:#fff;color:#5e5e5e;border:1px solid #8c8c8c;border-radius:0;font-size:14px;font-family:Segoe UI,-apple-system,sans-serif;font-weight:600;cursor:pointer;transition:background .15s}.btn-microsoft:hover,.login-box .btn-microsoft:hover{background:#f3f3f3}.btn-google,.login-box .btn-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:9px 16px;background:#fff;color:#3c4043;border:1px solid #dadce0;border-radius:4px;font-size:14px;font-family:Google Sans,Roboto,-apple-system,sans-serif;font-weight:500;cursor:pointer;transition:background .15s,box-shadow .15s}.btn-google:hover,.login-box .btn-google:hover{background:#f8f9fa;box-shadow:0 1px 3px #3c404333}.login-divider{display:flex;align-items:center;gap:10px;margin:14px 0 10px;font-size:12px;color:var(--text-muted)}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.email-settings-col{max-width:560px;margin-bottom:16px}.sso-columns{display:flex;gap:48px;align-items:flex-start}.sso-col{flex:1 1 0;min-width:0}@media(max-width:900px){.sso-columns{flex-direction:column}}.secret-hint{font-style:italic}.secret-hint:not(:empty){color:var(--confirmed);font-style:normal;font-weight:500}.credentials-sync-bar{display:flex;align-items:center;gap:10px;margin:4px 20px 0;padding:8px 12px;background:#f0f7ff;border:1px solid #bfdbfe;border-radius:6px;font-size:12px;color:var(--text-muted)}.m365-setup-steps{margin:8px 20px 16px;padding:14px 18px;background:#f0f7ff;border:1px solid #bfdbfe;border-radius:8px;font-size:12px;color:var(--text)}.m365-setup-title{font-weight:700;font-size:12px;margin-bottom:8px;color:var(--primary);text-transform:uppercase;letter-spacing:.04em}.m365-setup-steps ol{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px;line-height:1.5}.m365-setup-steps code{background:#dbeafe;padding:1px 5px;border-radius:3px;font-size:11px}.login-sub{font-size:13px;color:var(--text-muted);margin-bottom:16px}.login-alt-action{text-align:center;margin-top:14px;font-size:13px}.login-alt-action a{color:var(--primary);text-decoration:none}.login-alt-action a:hover{text-decoration:underline}.login-success{margin-top:10px;padding:10px 12px;background:#f0fdf4;border:1px solid #86efac;border-radius:6px;font-size:13px;color:#166534}#signup-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}#signup-overlay.hidden{display:none}.signup-box{width:100%;max-width:360px}.signup-box h2{margin-bottom:6px}.pending-invitations-section{margin-top:32px;border-top:2px solid var(--border);padding-top:20px}.pending-invitations-head{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:12px}.pending-invite-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--bg);border:1px solid var(--border);border-radius:6px;margin-bottom:6px}.pending-invite-info{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px}.pending-invite-email{font-weight:600}.pending-invite-accounts{color:var(--text-muted)}.pending-invite-expires{font-size:11px;color:var(--text-muted)}.embed-code-textarea{width:100%;font-family:Courier New,Courier,monospace;font-size:12px;line-height:1.6;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:12px;resize:vertical;color:var(--text)}.kiosk-url-link{font-family:monospace;font-size:12px;color:var(--primary);text-decoration:none}.kiosk-url-link:hover{text-decoration:underline}.toggle-label{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted);cursor:pointer;user-select:none}.toggle-switch{position:relative;display:inline-block;width:36px;height:20px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{position:absolute;inset:0;background:var(--border);border-radius:20px;transition:background .2s}.toggle-slider:before{content:"";position:absolute;width:14px;height:14px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle-switch input:checked+.toggle-slider{background:var(--primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px)}.memo-banners{display:flex;flex-direction:column;gap:6px;padding:8px 0 4px}.memo-banner{display:flex;align-items:baseline;gap:10px;padding:8px 14px;border-radius:6px;font-size:13px;line-height:1.4}.memo-banner-title{font-weight:700;white-space:nowrap}.memo-banner-message{flex:1}.memo-banner-range{white-space:nowrap;font-size:11px;opacity:.8}.memo-row-label{font-size:11px;color:var(--text-muted);font-style:italic}.memo-row-cell{display:flex;flex-direction:column;gap:3px;padding:4px 6px!important;min-height:28px}.week-memo-chip{border-radius:3px;padding:2px 6px;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default}.month-memo{border-radius:3px;padding:2px 5px;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:1px;cursor:default}.memo-color-swatch{display:inline-block;width:14px;height:14px;border-radius:3px;flex-shrink:0;border:1px solid rgba(0,0,0,.15)}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}
