:root{--rv-bg: #f2f4f8;--rv-surface: #ffffff;--rv-surface-soft: #f8fafc;--rv-border: #d9e0ea;--rv-text: #10233f;--rv-text-muted: #5d6b7e;--rv-primary: #102a4c;--rv-primary-strong: #0b1f39;--rv-accent: #c89b3c;--rv-accent-soft: #fff6e3;--rv-success: #1f9d55;--rv-shadow: 0 10px 28px rgba(16, 35, 63, .08)}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:radial-gradient(circle at top right,#faf3df 0%,var(--rv-bg) 40%,#edf1f7 100%);color:var(--rv-text)}.app-shell{max-width:1180px;margin:0 auto;padding:24px}.app-footer{margin-top:14px;padding:10px 12px;text-align:right}.app-footer small{color:#6b7789;font-weight:600}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;background:linear-gradient(120deg,var(--rv-primary) 0%,var(--rv-primary-strong) 100%);border-radius:14px;padding:14px 16px;box-shadow:var(--rv-shadow);border:1px solid #1d3a63}header h1{color:#fff;margin:0;letter-spacing:1px}.brand-wrap{display:flex;align-items:center;gap:12px}.brand-logo{height:54px;width:auto;display:block;border-radius:14px;box-shadow:0 6px 16px #0b1f3938}nav{display:flex;gap:10px;flex-wrap:wrap}nav a{color:#fdfefe;text-decoration:none;padding:8px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;font-weight:600}nav a:hover{border-color:var(--rv-accent);background:#c89b3c29}.link-button{border:1px solid rgba(255,255,255,.25);background:#ffffff1a;color:#fff;border-radius:10px;padding:8px 12px;cursor:pointer;font-weight:600}section{background:var(--rv-surface);border-radius:14px;padding:18px;box-shadow:var(--rv-shadow);border:1px solid var(--rv-border)}h2,h3,h4{color:var(--rv-primary-strong)}p,li,small{color:var(--rv-text-muted)}.agenda-page{display:flex;flex-direction:column;gap:14px}.agenda-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border:1px solid #244677;border-radius:12px;background:linear-gradient(135deg,var(--rv-primary-strong) 0%,#183b69 100%);padding:16px}.agenda-hero h2,.agenda-hero p{color:#fff;margin-top:0}.badge-soft{background:var(--rv-accent-soft);color:#7d580c;border:1px solid #edc46f;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.section-card{border:1px solid var(--rv-border);border-radius:12px;background:var(--rv-surface);padding:12px}.compact-grid{margin-bottom:6px}.btn-refresh-agenda{width:auto;padding:7px 14px;white-space:nowrap}.calendar-refresh-wrap{display:flex;justify-content:center;margin:4px 0 10px}.room-link-cell{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.room-link-cell a{font-weight:600}.admin-tabs{display:flex;gap:8px;margin:4px 0 12px}.admin-tab{border:1px solid var(--rv-border);background:#f5f8fc;color:var(--rv-primary-strong);border-radius:10px;padding:7px 12px;font-weight:700;cursor:pointer}.admin-tab.active{background:var(--rv-primary-strong);color:#fff;border-color:var(--rv-primary-strong)}.agenda-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.kpi-card{border:1px solid #d9e2ef;border-radius:12px;background:linear-gradient(180deg,#fff,#f7f9fc);padding:10px;display:flex;flex-direction:column;gap:4px}.kpi-card small{color:#6f7b8e;font-size:12px}.kpi-card strong{color:var(--rv-primary-strong);font-size:16px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:12px 0 20px}.login-form{display:flex;flex-direction:column;max-width:380px;width:100%;margin:12px auto 20px}.login-submit{width:auto;align-self:center;padding:7px 16px}.login-section{max-width:460px;margin:0 auto}.login-section h2{text-align:center;margin-bottom:8px}.login-brand{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:8px}.login-brand-logo{width:min(392px,69%);height:auto;display:block}.login-brand-mark{width:92px;height:92px;display:block}.login-brand p{margin:0;font-size:14px;text-align:center}.my-reservations-form{grid-template-columns:minmax(180px,1.2fr) minmax(180px,1.2fr) 92px 92px 130px auto;column-gap:8px;row-gap:12px;align-items:end}.my-reservations-form .field-month,.my-reservations-form .field-year,.my-reservations-form .field-status{max-width:none}.my-reservations-form>button{width:auto;min-width:110px;justify-self:start;align-self:end;padding:8px 14px}@media (max-width: 1180px){.my-reservations-form{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));column-gap:12px}}label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--rv-text);font-weight:600}input,select,textarea,button{border:1px solid #cfd8e6;border-radius:10px;padding:9px 11px;font-size:14px}input,select,textarea{background:#fff;color:var(--rv-text)}input:focus,select:focus,textarea:focus{outline:none;border-color:#3d6298;box-shadow:0 0 0 3px #3d62981f}button{cursor:pointer;background:linear-gradient(120deg,var(--rv-primary) 0%,#1b4478 100%);color:#fff;border-color:#1d3e6a;font-weight:600}button:hover{filter:brightness(1.05)}.error-text{color:#a30f2d;font-weight:700}.table-wrap{overflow-x:auto}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0}.schedule-controls{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.view-toggle{display:inline-flex;border:1px solid #cdd9ea;border-radius:10px;overflow:hidden}.view-toggle button{border:none;border-radius:0;background:#f2f5fb;color:#2f4566;min-width:88px}.view-toggle button.is-active{background:var(--rv-primary);color:#fff}.calendar-shell{border:1px solid #d5e0ef;border-radius:10px;padding:10px;background:#fcfdff;margin-bottom:14px}.calendar-week-header{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:6px}.calendar-week-header span{font-size:11px;font-weight:700;color:#4a5d78;text-transform:uppercase;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:14px}.calendar-cell{min-height:108px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background:#fff;transition:transform .12s ease,box-shadow .12s ease}.calendar-cell:hover{transform:translateY(-1px);box-shadow:0 8px 16px #102a4c1f}.calendar-cell small{color:#47566e}.calendar-day-number{font-weight:700;margin-bottom:6px;color:var(--rv-primary-strong)}.calendar-day-items{display:flex;flex-direction:column;gap:4px;width:100%}.calendar-item{display:block;width:100%;border-radius:4px;padding:2px 4px;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-item-reservation{background:#d8e7ff;color:#0d2b57}.calendar-item-prehold{background:#fff2da;color:#6c4300}.calendar-item-empty{color:#99a5b7;font-size:11px}.calendar-cell-muted{opacity:.45}.calendar-cell-selected{border:2px solid var(--rv-accent)}.week-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin-bottom:12px}.week-day-card{border:1px solid #dde5f1;border-radius:8px;padding:8px;background:#fbfcff;text-align:left;color:var(--rv-text)}.week-day-card-selected{border-color:var(--rv-accent);background:#fff8eb}.reservation-chip{display:flex;flex-direction:column;padding:6px;border-radius:6px;background:#edf3ff;margin-bottom:6px}.responsible-cell{display:flex;flex-direction:column;gap:2px}.responsible-cell small{color:#4f6078}.responsible-hover{position:relative;display:inline-block}.responsible-hover:after{content:attr(data-email);position:absolute;left:0;top:calc(100% + 6px);opacity:0;visibility:hidden;background:#132f55;color:#fff;font-size:12px;border-radius:6px;padding:4px 7px;white-space:nowrap;z-index:20;transform:translateY(4px);transition:opacity .2s ease 2s,transform .2s ease 2s,visibility 0s linear 2s}.responsible-hover:hover:after{opacity:1;visibility:visible;transform:translateY(0)}.responsible-hover-compact{font-size:12px}.slots-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-bottom:14px}.slots-grid button{background:#15365f}.prehold-box{border:1px solid #f0cc8a;background:#fff9ee;border-radius:8px;padding:10px;margin-bottom:12px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0814259e;display:flex;align-items:center;justify-content:center;z-index:30;padding:14px}.modal-card{width:min(760px,100%);background:#fff;border-radius:14px;box-shadow:0 24px 50px #00000047;padding:14px;border:1px solid #d9e3ef;position:relative}.modal-card.is-submitting{pointer-events:none}.modal-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:14px;background:#ffffffd1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;z-index:2;text-align:center;color:#15365f;padding:20px}.modal-spinner{width:34px;height:34px;border:3px solid rgba(16,42,76,.2);border-top-color:#15365f;border-radius:50%;animation:modal-spin .9s linear infinite}@keyframes modal-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.modal-actions{display:flex;justify-content:space-between;gap:8px;grid-column:1 / -1}.btn-primary-confirm{background:var(--rv-success);border-color:#1a8748;color:#fff;font-weight:700}.btn-primary-confirm:hover{background:#188244}.btn-secondary-cancel{background:#fff4e5;border-color:#f2a23a;color:#9a4b00}.participants-field{border:1px solid #cfd8e6;border-radius:10px;min-height:42px;padding:6px;display:flex;gap:6px;flex-wrap:wrap;align-items:center;background:#fff}.participants-field:focus-within{border-color:#3d6298;box-shadow:0 0 0 3px #3d62981f}.participants-field input{border:none;box-shadow:none;outline:none;min-width:170px;flex:1;padding:4px 2px}.participant-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:#edf3ff;color:#183b69;border:1px solid #d2def0;font-size:12px;max-width:100%}.participant-chip button{background:transparent;border:none;color:#183b69;font-size:14px;line-height:1;padding:0}.recurrence-panel{grid-column:1 / -1;border:1px solid var(--rv-border);border-radius:10px;background:var(--rv-surface-soft);padding:10px;display:grid;gap:10px}.recurrence-title-wrap{display:flex;flex-direction:column;gap:4px}.recurrence-title-wrap strong{color:var(--rv-primary-strong)}.recurrence-mode-group{display:inline-flex;gap:8px;flex-wrap:wrap}.recurrence-mode-group button{background:var(--rv-surface);border:1px solid var(--rv-border);color:var(--rv-text);font-weight:600;padding:8px 12px}.recurrence-mode-group button.is-active{border-color:var(--rv-primary);color:var(--rv-primary-strong);background:var(--rv-accent-soft)}.recurrence-count-field{max-width:260px;margin:0}.recurrence-count-field small{color:var(--rv-text-muted)}.history-panel{border:1px solid #d9e0ea;border-radius:10px;background:#fff;padding:8px 10px}.history-panel summary{cursor:pointer;font-weight:700;color:#163964;margin-bottom:8px}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid #e5ebf3;text-align:left;padding:8px;vertical-align:top}th{color:#1a3e6c;background:#f6f9fe}@media (max-width: 768px) and (orientation: portrait){.app-shell{padding:12px}header{flex-direction:column;align-items:center;gap:10px}.brand-wrap{justify-content:center}.brand-logo{height:44px;border-radius:12px}.section-card{padding:10px}.calendar-shell{padding:6px}.calendar-week-header,.calendar-grid{gap:3px}.calendar-cell{min-height:84px;padding:6px 5px}.calendar-day-number{font-size:12px;margin-bottom:4px}.calendar-item{font-size:10px;padding:1px 3px}.calendar-item-prefix,.calendar-item-owner,.reservation-chip-owner{display:none}.responsible-hover-compact{font-size:10px}.week-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}
