@font-face {
  font-family: "Tajawal";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/tajawal-arabic-400.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
@font-face {
  font-family: "Tajawal";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/tajawal-arabic-500.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
@font-face {
  font-family: "Tajawal";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/tajawal-arabic-700.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
@font-face {
  font-family: "Tajawal";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/tajawal-arabic-800.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
:root {
  font-family: "Tajawal", sans-serif;
  color: #1e293b;
  background: #f8fafc;
  font-synthesis: none;
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; font-family: "Tajawal", sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
.topbar { height: 72px; background: rgba(255,255,255,.94); border-bottom: 1px solid #e8edf4; position: relative; z-index: 20; }
.topbar-inner { max-width: 1440px; height: 100%; padding: 0 28px; margin: auto; display:flex; align-items:center; justify-content:space-between; }
.brand { display:inline-flex; gap:11px; align-items:center; font-size:16px; font-weight:800; color:#312e81; }
.brand-mark { width:38px; height:38px; border-radius:13px; background:linear-gradient(135deg,#7c3aed,#4f46e5); color:white; display:grid; place-items:center; box-shadow:0 7px 16px #6366f133; }
.topbar-actions { display:flex; align-items:center; gap:12px; }
.topbar-user { color:#334155; font-size:13px; font-weight:700; }
.topbar-user > span { color:#94a3b8; }
.notification-bell { position:relative; flex:0 0 42px; width:42px; height:42px; display:grid; place-items:center; border:1px solid #e8edf4; border-radius:14px; background:linear-gradient(145deg,#fff,#f8faff); color:#64748b; box-shadow:0 3px 10px #1e293b08; transition:color .18s,background .18s,border-color .18s,box-shadow .18s,transform .18s; }
.notification-bell svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.notification-bell:hover,.notification-bell.is-active { border-color:#c7d2fe; background:#eef2ff; color:#4f46e5; box-shadow:0 5px 15px #4f46e51a; }
.notification-bell:hover { transform:translateY(-1px); }
.notification-bell-count { position:absolute; top:-5px; right:-5px; min-width:19px; height:19px; padding:0 5px; display:grid; place-items:center; border:2px solid #fff; border-radius:99px; background:#e11d48; color:#fff; font-size:9px; line-height:1; font-weight:800; box-shadow:0 2px 6px #be123c40; }
.notification-bell:focus-visible { outline:3px solid #a5b4fc; outline-offset:3px; }
.button { border:1px solid transparent; border-radius:11px; padding:10px 16px; min-height:42px; display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; font-size:13px; font-weight:700; transition:transform .18s,box-shadow .18s,background .18s; }
.button:hover { transform:translateY(-1px); }
.button-sm { min-height:36px; padding:7px 13px; }
.button-primary { background:#4f46e5; color:white; box-shadow:0 5px 13px #4f46e522; }
.button-primary:hover { background:#4338ca; }
.button-secondary { color:#4f46e5; background:#eef2ff; }
.button-quiet { color:#475569; background:white; border-color:#e2e8f0; }
.button-danger { background:#e11d48; color:white; }
.button-success { background:#059669; color:white; }
.button:disabled { opacity:.55; cursor:not-allowed; transform:none; }
.menu-toggle { display:none; border:0; border-radius:10px; background:#f1f5f9; padding:8px 11px; color:#475569; }
.dashboard-layout { max-width:1440px; min-height:calc(100vh - 122px); display:grid; grid-template-columns:252px minmax(0,1fr); margin:auto; }
.sidebar { padding:26px 18px; border-left:1px solid #e8edf4; background:#fff; display:flex; flex-direction:column; }
.sidebar-heading { color:#94a3b8; font-size:11px; font-weight:800; letter-spacing:.04em; margin:2px 12px 14px; }
.sidebar-heading-secondary { margin-top:25px; padding-top:18px; border-top:1px solid #f1eff5; }
.sidebar nav { display:grid; gap:5px; }
.sidebar-link { min-height:45px; padding:10px 12px; display:flex; align-items:center; gap:12px; border-radius:11px; color:#64748b; font-size:13px; font-weight:700; }
.sidebar-link:hover { background:#f8fafc; color:#4f46e5; }
.sidebar-link.is-active { color:#4f46e5; background:#eef2ff; }
.sidebar-icon { width:23px; text-align:center; font-size:18px; }
.sidebar-notification-count { min-width:21px; height:21px; padding:0 6px; margin-right:auto; display:grid; place-items:center; border-radius:99px; background:#e11d48; color:#fff; font-size:10px; font-weight:800; }
.sidebar-note { display:grid; gap:5px; padding:15px; margin-top:auto; border:1px solid #eef2ff; border-radius:15px; background:linear-gradient(140deg,#f5f3ff,#ecfeff); color:#64748b; font-size:11px; }
.sidebar-note strong { color:#4338ca; font-size:12px; }
.sidebar-note-icon { font-size:19px; color:#7c3aed; }
.dashboard-main { min-width:0; padding:30px clamp(18px,3vw,44px) 50px; }
.notification-filters { display:flex; gap:8px; margin:-5px 0 17px; }
.notification-filters a { padding:8px 12px; border:1px solid #e2e8f0; border-radius:10px; background:#fff; color:#64748b; font-size:12px; font-weight:700; }
.notification-filters a.is-active { border-color:#c7d2fe; background:#eef2ff; color:#4f46e5; }
.notification-filters a span { margin-right:4px; }
.notification-list { display:grid; gap:10px; }
.notification-card { display:flex; align-items:center; gap:14px; padding:17px; }
.notification-card.is-unread { border-color:#c7d2fe; background:#fbfbff; }
.notification-mark { flex:0 0 42px; width:42px; height:42px; display:grid; place-items:center; border-radius:13px; background:#eef2ff; color:#4f46e5; font-size:20px; }
.notification-content { min-width:0; flex:1; }
.notification-heading { display:flex; align-items:center; gap:9px; }
.notification-heading h2 { margin:0; color:#1e293b; font-size:14px; font-weight:800; }
.notification-content p { margin:5px 0; color:#64748b; font-size:12px; line-height:1.8; }
.notification-content time { color:#94a3b8; font-size:10px; }
.notification-unread-label { padding:3px 7px; border-radius:99px; background:#ffe4e6; color:#be123c; font-size:9px; font-weight:800; }
.notification-open-form { flex:0 0 auto; }
.page-heading { margin-bottom:24px; display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.page-heading h1 { margin:0; font-size:clamp(22px,2.5vw,29px); line-height:1.4; color:#172554; font-weight:800; }
.page-heading p { margin:6px 0 0; color:#64748b; font-size:13px; }
.heading-actions { display:flex; flex-wrap:wrap; gap:9px; }
.card { border:1px solid #edf0f5; border-radius:17px; background:white; box-shadow:0 5px 20px rgba(15,23,42,.025); }
.card-pad { padding:22px; }
.stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; margin-bottom:21px; }
.stat-card { min-height:130px; padding:19px; position:relative; overflow:hidden; }
.stat-label { color:#64748b; font-size:12px; font-weight:700; }
.stat-value { display:block; margin:10px 0 4px; color:#172554; font-weight:800; font-size:29px; line-height:1; }
.stat-hint { color:#94a3b8; font-size:11px; }
.stat-icon { position:absolute; left:17px; top:17px; width:38px; height:38px; display:grid; place-items:center; border-radius:12px; font-size:17px; }
.icon-violet { background:#f3e8ff; color:#7e22ce; }
.icon-amber { background:#fef3c7; color:#b45309; }
.icon-green { background:#d1fae5; color:#047857; }
.icon-rose { background:#ffe4e6; color:#be123c; }
.icon-cyan { background:#cffafe; color:#0e7490; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(270px,.8fr); gap:18px; margin-bottom:20px; }
.booking-statistics-card { overflow:hidden; padding:20px; }
.booking-statistics-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.booking-statistics-heading h2 { margin:0 0 5px; color:#1e293b; font-size:17px; font-weight:800; }
.booking-statistics-heading p { margin:0; color:#94a3b8; font-size:11px; }
.booking-statistics-heading .button { flex:none; }
.booking-statistics-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:18px; }
.booking-statistics-summary article { display:grid; gap:7px; padding:14px 16px; border:1px solid #edf0f5; border-radius:12px; background:linear-gradient(145deg,#fff,#fafbff); }
.booking-statistics-summary article span { color:#8490a3; font-size:10px; font-weight:700; }
.booking-statistics-summary article strong { color:#27314d; font-size:23px; font-weight:800; line-height:1; font-variant-numeric:tabular-nums; }
.booking-statistics-table-wrap { border:1px solid #edf0f5; border-radius:12px; }
.booking-statistics-table { min-width:850px; }
.booking-statistics-table th { background:#f8f9fd; }
.booking-statistics-table td { vertical-align:middle; }
.booking-teacher-name { color:#334155; font-weight:800; }
.booking-statistics-empty { padding:30px 16px; }
.section-title { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 16px; font-size:16px; font-weight:800; color:#1e293b; }
.section-title small { color:#94a3b8; font-size:11px; font-weight:500; }
.chart-wrap { position:relative; height:270px; }
.chart-wrap.chart-loading::after { content:"جار تحميل البيانات…"; position:absolute; inset:0; display:grid; place-items:center; border-radius:12px; color:#818cf8; font-size:12px; background:linear-gradient(100deg,#f8fafc 25%,#eef2ff 42%,#f8fafc 60%); background-size:220% 100%; animation:chart-shimmer 1.2s linear infinite; }
@keyframes chart-shimmer { to { background-position-x:-220%; } }
.table-wrap { width:100%; overflow:auto; }
.data-table { width:100%; border-collapse:collapse; min-width:650px; text-align:right; }
.data-table th { padding:12px 13px; background:#f8fafc; color:#64748b; font-size:11px; font-weight:800; white-space:nowrap; }
.data-table td { padding:13px; border-bottom:1px solid #f1f5f9; color:#475569; font-size:12px; }
.data-table tr:last-child td { border-bottom:0; }
.data-table tbody tr:hover { background:#fafbff; }
.table-title { max-width:330px; color:#1e293b !important; font-weight:700; }
.badge { display:inline-flex; align-items:center; gap:5px; padding:5px 9px; border-radius:99px; white-space:nowrap; font-size:10px; font-weight:800; }
.badge-slate { background:#f1f5f9; color:#475569; }
.badge-amber { background:#fef3c7; color:#a16207; }
.badge-green { background:#d1fae5; color:#047857; }
.badge-rose { background:#ffe4e6; color:#be123c; }
.badge-violet { background:#ede9fe; color:#6d28d9; }
.form-card { padding:24px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }
.field { display:grid; gap:7px; }
.field-full { grid-column:1/-1; }
.field label { color:#334155; font-size:12px; font-weight:800; }
.field input,.field select,.field textarea,.filter-control { width:100%; min-height:43px; border:1px solid #dfe5ed; border-radius:10px; padding:9px 12px; outline:0; background:white; color:#1e293b; font-size:13px; }
.field input:focus,.field select:focus,.field textarea:focus,.filter-control:focus { border-color:#818cf8; box-shadow:0 0 0 3px #818cf822; }
.field textarea { min-height:190px; line-height:1.9; resize:vertical; }
.field-hint { color:#94a3b8; font-size:10px; }
.form-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:19px; }
.filters { padding:15px; display:flex; flex-wrap:wrap; align-items:end; gap:10px; margin-bottom:17px; }
.filter-field { min-width:135px; flex:1; display:grid; gap:5px; color:#64748b; font-size:10px; font-weight:700; }
.filter-field input,.filter-field select { min-height:39px; border:1px solid #e2e8f0; border-radius:9px; background:white; padding:7px 10px; color:#334155; font:inherit; font-size:12px; }
.empty-state { text-align:center; padding:46px 20px; }
.empty-icon { width:54px; height:54px; display:inline-grid; place-items:center; border-radius:18px; margin-bottom:13px; background:#eef2ff; color:#6366f1; font-weight:800; }
.empty-state h2,.empty-state h1 { margin:0 0 7px; color:#1e293b; font-size:17px; }
.empty-state p { margin:0 0 17px; color:#94a3b8; font-size:12px; }
.pagination { display:flex; justify-content:center; gap:6px; padding:18px 0 3px; }
.pagination a,.pagination span { min-width:35px; height:35px; display:grid; place-items:center; border:1px solid #e2e8f0; border-radius:9px; color:#475569; font-size:12px; }
.pagination .current { border-color:#4f46e5; background:#4f46e5; color:#fff; }
.detail-body { white-space:pre-wrap; line-height:2; color:#334155; font-size:14px; }
.detail-meta { display:flex; gap:14px; flex-wrap:wrap; margin:0 0 18px; color:#64748b; font-size:11px; }
.review-note { margin-top:18px; padding:14px; background:#fff1f2; border:1px solid #ffe4e6; border-radius:12px; color:#9f1239; }
.media-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; }
.media-item { overflow:hidden; border:1px solid #e2e8f0; border-radius:12px; background:#f8fafc; }
.media-item img,.media-item video { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.media-link { min-height:85px; display:grid; place-items:center; padding:12px; color:#4f46e5; font-size:12px; text-align:center; }
.media-name { display:block; padding:8px 10px; overflow-wrap:anywhere; font-size:10px; color:#64748b; }
.report-review { --review-ink:#172554; --review-muted:#78839a; --review-line:#edf0f5; padding-bottom:18px; }
.report-review-heading { margin-bottom:18px; }
.report-review-heading>div { display:grid; gap:4px; }
.report-back-link { width:max-content; margin-bottom:3px; color:#6d64bc; font-size:11px; font-weight:800; }
.report-back-link:hover { color:#4338ca; }
.report-review-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(270px,1fr); align-items:start; gap:19px; }
.report-review-content,.report-review-sidebar { min-width:0; display:grid; gap:17px; }
.report-review-sidebar { position:sticky; top:18px; }
.report-paper,.report-media-section,.report-side-card { padding:22px; }
.report-paper { overflow:hidden; background:radial-gradient(ellipse at 100% 0,#f1efff80,transparent 34%),#fff; }
.report-paper-heading,.report-section-heading,.report-side-heading { display:flex; align-items:center; justify-content:space-between; gap:13px; }
.report-paper-heading [data-report-status] { transition:transform .24s,box-shadow .24s; }
.report-paper-heading [data-report-status].is-changing { animation:report-status-pulse .55s ease-out; }
.report-section-kicker { color:#9185cf; font-size:10px; font-weight:800; letter-spacing:.035em; }
.report-title { margin:12px 0 18px; color:#1e2140; font-size:clamp(20px,2.5vw,28px); line-height:1.5; font-weight:800; overflow-wrap:anywhere; }
.report-author-row { display:flex; align-items:center; gap:11px; color:#64748b; }
.report-author-avatar { width:40px; height:40px; flex:none; display:grid; place-items:center; border:1px solid #e8e2ff; border-radius:14px; background:linear-gradient(140deg,#f1edff,#e9f7ff); color:#6552b8; font-size:16px; font-weight:800; }
.report-author-copy,.report-submitted-meta { display:grid; gap:2px; }
.report-author-copy strong { color:#334155; font-size:12px; }
.report-author-copy small,.report-submitted-meta small { color:#9aa3b4; font-size:10px; }
.report-meta-separator { width:1px; height:27px; margin-inline:5px; background:#e7eaf0; }
.report-submitted-meta time { color:#59647a; font-size:10px; font-weight:700; }
.report-paper-rule { height:1px; margin:20px 0; background:linear-gradient(90deg,#e7e3f8,#f1f3f7 75%,transparent); }
.report-reading-body { max-width:75ch; color:#465166; font-size:14px; line-height:1.9; overflow-wrap:anywhere; }
.report-review-note { margin-top:20px; padding:13px 15px; border:1px solid #ffe0e7; border-radius:12px; background:#fff6f7; color:#a33452; font-size:12px; line-height:1.8; }
.report-review-note p { margin:5px 0 0; }
.report-section-heading { margin-bottom:16px; }
.report-section-heading h2,.report-side-heading h2 { margin:2px 0 0; color:#24304a; font-size:15px; font-weight:800; }
.report-section-count { padding:5px 9px; border:1px solid #eeebf9; border-radius:99px; background:#faf9ff; color:#7d70bd; font-size:10px; font-weight:700; white-space:nowrap; }
.report-image-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(145px,1fr)); gap:11px; }
.report-image-button { position:relative; display:block; aspect-ratio:4/3; padding:0; overflow:hidden; border:1px solid #e9eaf0; border-radius:13px; background:#f3f4f8; cursor:zoom-in; }
.report-image-button img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .35s cubic-bezier(.2,.75,.25,1),filter .3s; }
.report-image-button:hover img,.report-image-button:focus-visible img { transform:scale(1.075); filter:saturate(1.06); }
.report-image-zoom { position:absolute; inset:auto 9px 9px auto; padding:5px 9px; transform:translateY(5px); border:1px solid #ffffff70; border-radius:99px; background:#101629ad; color:#fff; font-size:9px; opacity:0; transition:opacity .2s,transform .2s; }
.report-image-button:hover .report-image-zoom,.report-image-button:focus-visible .report-image-zoom { transform:translateY(0); opacity:1; }
.report-video-list { display:grid; gap:13px; }
.report-video-card { overflow:hidden; border:1px solid #e9ebf2; border-radius:14px; background:#f8f9fc; }
.report-video-card video { width:100%; max-height:440px; display:block; background:#141827; }
.report-video-caption { display:flex; align-items:center; gap:10px; padding:11px 13px; }
.report-video-caption>span:last-child { display:grid; gap:3px; min-width:0; }
.report-video-caption strong,.report-attachment-copy strong { color:#344057; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.report-video-caption small,.report-attachment-copy small { color:#9aa3b4; font-size:10px; }
.report-attachment-list { display:grid; gap:9px; }
.report-attachment { min-width:0; display:flex; align-items:center; gap:11px; padding:11px; border:1px solid #eceef3; border-radius:13px; background:#fff; transition:border-color .2s,transform .2s,box-shadow .2s; }
.report-attachment:hover { transform:translateY(-1px); border-color:#dcd7f4; box-shadow:0 7px 17px #32287b0b; }
.report-file-icon { width:39px; height:42px; flex:none; display:grid; place-items:center; border-radius:10px; background:#f1efff; color:#6a5cba; font-size:9px; font-weight:900; }
.report-file-pdf { background:#fff0f1; color:#dc4456; }
.report-file-sheet { background:#e9f8ef; color:#21915a; }
.report-file-document { background:#edf3ff; color:#4570c2; }
.report-file-video { width:34px; height:34px; border-radius:11px; background:#f0edff; color:#7261ca; font-size:12px; }
.report-attachment-copy { min-width:0; flex:1; display:grid; gap:4px; }
.report-download-button { min-height:35px; flex:none; display:inline-flex; align-items:center; justify-content:center; gap:5px; padding:6px 9px; border:1px solid #e8e9f0; border-radius:9px; color:#655bb1; font-size:10px; font-weight:800; transition:background .2s,border-color .2s; }
.report-download-button:hover { border-color:#dcd6f8; background:#f6f4ff; }
.report-download-button svg,.report-approve-button svg,.report-reject-button svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.report-side-card { border-color:#eeedf4; box-shadow:0 8px 24px #1e1b4b08; }
.report-side-heading { justify-content:flex-start; }
.report-side-icon { width:37px; height:37px; flex:none; display:grid; place-items:center; border-radius:12px; font-size:18px; font-weight:800; }
.report-decision-icon { background:#eaf8f0; color:#22925c; }
.report-timeline-icon { background:#f2efff; color:#796bc6; }
.report-export-icon { background:#edf5ff; color:#4a77c4; }
.report-decision-intro { margin:15px 0 14px; color:#8390a4; font-size:11px; line-height:1.7; }
.report-decision-actions { display:grid; gap:9px; }
.report-decision-actions[hidden] { display:none; }
.report-decision-actions form { margin:0; }
.report-approve-button,.report-reject-button { width:100%; min-height:46px; display:flex; align-items:center; justify-content:center; gap:8px; border:1px solid transparent; border-radius:12px; cursor:pointer; font-size:12px; font-weight:800; transition:transform .2s,box-shadow .2s,background .2s; }
.report-approve-button { background:linear-gradient(135deg,#16965f,#0c8452); color:#fff; box-shadow:0 7px 16px #0c985120; }
.report-approve-button:hover { transform:translateY(-1px); background:linear-gradient(135deg,#128553,#087247); box-shadow:0 9px 20px #0c98512c; }
.report-reject-button { border-color:#ffe0e7; background:#fff3f5; color:#c43a5a; }
.report-reject-button:hover { transform:translateY(-1px); background:#ffe9ed; }
.report-decision-actions button:disabled,.report-mobile-decision-bar button:disabled { cursor:wait; opacity:.65; transform:none; }
.report-decision-result { display:flex; align-items:center; gap:11px; padding:12px; border-radius:12px; animation:report-result-in .42s cubic-bezier(.2,.8,.2,1) both; }
.report-result-approved { border:1px solid #d3f1df; background:#f1fbf5; color:#12804f; }
.report-result-rejected { border:1px solid #ffe0e7; background:#fff5f6; color:#b93555; }
.report-decision-result>span:last-child { display:grid; gap:3px; }
.report-decision-result strong { font-size:11px; }
.report-decision-result small { color:#8692a4; font-size:9px; }
.report-success-mark,.report-result-symbol { width:34px; height:34px; flex:none; display:grid; place-items:center; border-radius:50%; background:#d9f5e4; }
.report-success-mark svg { width:26px; height:26px; overflow:visible; fill:none; stroke:#138453; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:36; stroke-dashoffset:36; animation:report-success-draw .55s .12s ease-out forwards; }
.report-result-symbol { background:#ffe4e9; color:#bf3655; font-size:24px; }
.report-reviewed-by { margin:11px 0 0; color:#8d97a8; font-size:10px; }
.report-timeline { position:relative; display:grid; gap:0; margin:18px 0 0; padding:0; list-style:none; }
.report-timeline::before { content:""; position:absolute; top:9px; bottom:19px; right:5px; width:1px; background:#e9e8f1; }
.report-timeline li { position:relative; display:grid; grid-template-columns:12px minmax(0,1fr); gap:10px; min-height:56px; color:#a4acba; }
.report-timeline li:last-child { min-height:25px; }
.report-timeline-dot { z-index:1; width:11px; height:11px; margin-top:3px; border:2px solid #d6d2e9; border-radius:50%; background:#fff; }
.report-timeline li.is-complete .report-timeline-dot { border-color:#8b7bd1; background:#8b7bd1; box-shadow:0 0 0 3px #f1effa; }
.report-timeline li>span:last-child { display:grid; align-content:start; gap:3px; }
.report-timeline strong { color:#606d82; font-size:10px; }
.report-timeline time { color:#a0a8b6; font-size:9px; }
.report-export-actions { display:grid; gap:8px; margin-top:16px; }
.report-export-actions a { min-width:0; display:flex; align-items:center; gap:9px; padding:9px; border:1px solid #eceef3; border-radius:11px; transition:border-color .2s,background .2s; }
.report-export-actions a:hover { border-color:#dfdaf3; background:#fbfaff; }
.report-export-file { width:37px; height:39px; flex:none; display:grid; place-items:center; border-radius:9px; font-size:8px; font-weight:900; }
.report-export-pdf { background:#fff0f1; color:#d94b5a; }
.report-export-xlsx { background:#e9f8ef; color:#278a56; }
.report-export-actions a>span:nth-child(2) { min-width:0; flex:1; display:grid; gap:3px; }
.report-export-actions strong { color:#46536b; font-size:10px; }
.report-export-actions small { color:#a0a8b6; font-size:9px; }
.report-export-arrow { color:#a2a7b6; font-size:14px; }
.report-reject-dialog,.report-lightbox { max-width:calc(100vw - 28px); padding:0; border:0; background:transparent; color:inherit; }
.report-reject-dialog { width:min(460px,calc(100vw - 28px)); border-radius:19px; box-shadow:0 25px 90px #12162b35; }
.report-reject-dialog::backdrop { background:#14172b70; backdrop-filter:blur(5px); }
.report-reject-dialog[open] { animation:report-dialog-in .22s ease-out both; }
.report-reject-dialog-content { position:relative; padding:26px; border:1px solid #f1e9ed; border-radius:19px; background:#fff; }
.report-reject-dialog-close { position:absolute; top:13px; left:14px; width:32px; height:32px; border:0; border-radius:10px; background:#f6f5f8; color:#70798a; cursor:pointer; font-size:21px; }
.report-reject-dialog-icon { width:39px; height:39px; display:grid; place-items:center; margin-bottom:15px; border-radius:13px; background:#fff0f2; color:#cf405e; font-size:19px; font-weight:900; }
.report-reject-dialog-content h2 { margin:3px 0 5px; color:#29334a; font-size:20px; }
.report-reject-dialog-content>p { margin:0 0 19px; color:#8791a2; font-size:11px; line-height:1.8; }
.report-reject-label { display:block; margin-bottom:7px; color:#39465d; font-size:11px; font-weight:800; }
.report-reject-label span { color:#df4461; }
.report-reject-dialog textarea { width:100%; min-height:115px; resize:vertical; padding:11px 12px; border:1px solid #e4e7ee; border-radius:11px; outline:0; color:#334155; font-size:12px; line-height:1.8; }
.report-reject-dialog textarea:focus { border-color:#d6889a; box-shadow:0 0 0 3px #fb71851c; }
.report-reject-counter { margin-top:6px; color:#a0a8b6; font-size:9px; text-align:left; }
.report-reject-submit { width:100%; min-height:43px; margin-top:16px; border:0; border-radius:11px; background:#cf3d5c; color:#fff; cursor:pointer; font-size:12px; font-weight:800; }
.report-reject-submit:hover { background:#b92f4d; }
.report-lightbox { width:100vw; height:100dvh; max-width:none; max-height:none; margin:auto; display:none; align-items:center; justify-content:center; overflow:hidden; }
.report-lightbox[open] { display:flex; animation:report-lightbox-in .24s ease-out both; }
.report-lightbox::backdrop { background:#0b1020ed; backdrop-filter:blur(9px); animation:report-backdrop-in .24s ease-out both; }
.report-lightbox figure { max-width:min(82vw,1100px); max-height:82dvh; margin:0; display:grid; justify-items:center; gap:12px; }
.report-lightbox figure img { max-width:100%; max-height:75dvh; object-fit:contain; border-radius:8px; box-shadow:0 20px 70px #0008; animation:report-image-in .3s cubic-bezier(.2,.8,.2,1) both; }
.report-lightbox figcaption { max-width:75vw; color:#e6e8ef; font-size:11px; overflow-wrap:anywhere; text-align:center; }
.report-lightbox-close { position:absolute; top:24px; left:26px; width:43px; height:43px; border:1px solid #ffffff35; border-radius:50%; background:#ffffff12; color:#fff; cursor:pointer; font-size:29px; line-height:1; }
.report-lightbox-nav { position:absolute; top:50%; width:47px; height:47px; transform:translateY(-50%); border:1px solid #ffffff30; border-radius:50%; background:#ffffff12; color:#fff; cursor:pointer; font-size:32px; line-height:1; transition:background .2s; }
.report-lightbox-nav:hover,.report-lightbox-close:hover { background:#ffffff29; }
.report-lightbox-prev { right:25px; }
.report-lightbox-next { left:25px; }
.report-lightbox-counter { position:absolute; bottom:24px; color:#c7cbd6; font-size:11px; direction:ltr; }
.report-mobile-decision-bar { display:none; }
.report-enter { animation:report-fade-up .48s var(--report-enter-delay,0ms) both; }
@keyframes report-fade-up { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@keyframes report-dialog-in { from { opacity:0; transform:translateY(9px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes report-lightbox-in { from { opacity:0; } to { opacity:1; } }
@keyframes report-backdrop-in { from { opacity:0; } to { opacity:1; } }
@keyframes report-image-in { from { opacity:0; transform:scale(.92); } to { opacity:1; transform:scale(1); } }
@keyframes report-result-in { from { opacity:0; transform:scale(.96); } to { opacity:1; transform:scale(1); } }
@keyframes report-success-draw { to { stroke-dashoffset:0; } }
@keyframes report-status-pulse { 35% { transform:scale(1.12); box-shadow:0 0 0 5px #6b62ba17; } }
.report-review :focus-visible { outline:3px solid #9a8ae9; outline-offset:3px; }
@media (max-width: 980px) {
  .report-review-grid { grid-template-columns:minmax(0,1.45fr) minmax(245px,.9fr); gap:13px; }
  .report-paper,.report-media-section,.report-side-card { padding:18px; }
}
@media (max-width: 820px) {
  .report-review-grid { grid-template-columns:minmax(0,1fr); }
  .report-review-sidebar { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
  .report-decision-card { grid-row:span 2; }
  .report-timeline-card,.report-export-card { height:100%; }
}
@media (max-width: 700px) {
  .report-review { padding-bottom:calc(88px + env(safe-area-inset-bottom));   }
}

  .staff-dashboard { display:grid; gap:19px; }
  .staff-dashboard-heading { align-items:center; margin-bottom:1px; }
  .staff-dashboard-eyebrow,.staff-section-kicker { display:block; margin-bottom:5px; color:#8b7bd1; font-size:10px; font-weight:800; letter-spacing:.025em; }
  .staff-dashboard-heading h1 { color:#20294a; }
  .staff-dashboard-heading p { font-size:12px; }
  .staff-new-report { min-height:47px; padding:11px 19px; border-radius:13px; font-size:13px; box-shadow:0 8px 19px #5146d52d; animation:staff-report-pulse 3.2s ease-in-out 1.2s infinite; }
  .staff-new-report svg,.staff-alert-action svg,.staff-empty-state .button svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .staff-rejected-alert { position:relative; display:flex; align-items:center; gap:14px; padding:17px 18px; border:1px solid #f8dce3; border-radius:16px; background:linear-gradient(115deg,#fff8f9,#fff2f5); box-shadow:0 7px 19px #be36550b; animation:staff-alert-drop .65s cubic-bezier(.2,.8,.2,1) both; }
  .staff-alert-icon { width:39px; height:39px; flex:none; display:grid; place-items:center; border-radius:13px; background:#ffe3e9; color:#ce4561; }
  .staff-alert-icon svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
  .staff-alert-copy { min-width:0; flex:1; display:grid; gap:3px; }
  .staff-alert-copy>strong { color:#a83250; font-size:12px; }
  .staff-alert-title { color:#4a3440; font-size:12px; font-weight:800; overflow-wrap:anywhere; }
  .staff-alert-copy p { margin:0; color:#987581; font-size:10px; line-height:1.7; }
  .staff-alert-copy p b { color:#8b4a5d; }
  .staff-alert-action { min-height:38px; flex:none; padding:8px 12px; border-color:#f5d1da; background:#fff; color:#b83e5a; font-size:10px; }
  .staff-alert-action:hover { background:#fffafb; box-shadow:0 5px 12px #be365514; }
  .staff-alert-action svg { width:15px; height:15px; }
  .staff-stats-grid { gap:14px; margin:0; }
  .staff-stat-card { min-height:137px; padding:19px 20px; border-color:#edf0f5; transition:transform .22s,box-shadow .22s,border-color .22s; }
  .staff-stat-card:hover { transform:translateY(-3px); border-color:#e5e7f2; box-shadow:0 12px 24px #29345a0c; }
  .staff-stat-icon { width:39px; height:39px; position:absolute; top:17px; left:17px; display:grid; place-items:center; border-radius:13px; }
  .staff-stat-icon svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
  .staff-stat-label { color:#69758a; font-size:11px; font-weight:800; }
  .staff-stat-value { display:block; margin:15px 0 2px; color:#27314d; font-size:28px; font-weight:800; line-height:1; font-variant-numeric:tabular-nums; }
  .staff-stat-hint { color:#a0a8b7; font-size:9px; }
  .staff-stat-decoration { position:absolute; left:15px; bottom:-22px; color:currentColor; opacity:.045; font-size:74px; font-weight:800; line-height:1; pointer-events:none; }
  .staff-stat-slate .staff-stat-icon { background:#f1f3f6; color:#64748b; }
  .staff-stat-amber .staff-stat-icon { background:#fff3d5; color:#c17a08; }
  .staff-stat-green .staff-stat-icon { background:#e2f7eb; color:#148454; }
  .staff-stat-rose .staff-stat-icon { background:#ffeaee; color:#ce4561; }
  .staff-charts-grid { display:grid; grid-template-columns:minmax(260px,.83fr) minmax(0,1.5fr); gap:16px; }
  .staff-chart-card { min-width:0; padding:19px 20px 16px; border-color:#edf0f5; }
  .staff-section-heading,.staff-latest-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .staff-section-heading h2,.staff-latest-heading h2 { margin:0; color:#27314d; font-size:14px; font-weight:800; }
  .staff-section-kicker { margin-bottom:2px; font-size:9px; }
  .staff-chart-mark,.staff-trend-mark { width:34px; height:34px; display:grid; place-items:center; border-radius:11px; background:#f3f1ff; color:#8172d3; font-size:21px; }
  .staff-trend-mark { background:#eef8f4; color:#32916c; }
  .staff-trend-mark svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
  .staff-donut-wrap { position:relative; width:min(100%,220px); height:164px; margin:4px auto 0; }
  .staff-donut-wrap canvas,.staff-trend-wrap canvas { position:relative; z-index:1; width:100% !important; height:100% !important; }
  .staff-donut-total { position:absolute; z-index:0; inset:0; display:grid; align-content:center; justify-items:center; gap:2px; padding-top:2px; pointer-events:none; }
  .staff-donut-total strong { color:#28324f; font-size:24px; line-height:1; font-weight:800; }
  .staff-donut-total small { color:#9aa3b2; font-size:9px; }
  .staff-chart-legend { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; margin:4px -3px 0; }
  .staff-chart-legend span { display:flex; align-items:center; gap:5px; min-width:0; color:#798496; font-size:8px; white-space:nowrap; }
  .staff-chart-legend i { width:7px; height:7px; flex:none; border-radius:50%; background:#94a3b8; }
  .staff-chart-legend b { margin-right:auto; color:#526075; font-size:9px; }
  .staff-chart-legend .staff-stat-amber i { background:#f59e0b; }
  .staff-chart-legend .staff-stat-green i { background:#10b981; }
  .staff-chart-legend .staff-stat-rose i { background:#f43f5e; }
  .staff-trend-wrap { position:relative; height:205px; margin-top:10px; }
  .staff-latest-card { min-width:0; padding:20px; }
  .staff-latest-heading { margin-bottom:12px; }
  .staff-all-reports { display:inline-flex; align-items:center; gap:5px; color:#6f63c6; font-size:10px; font-weight:800; }
  .staff-all-reports:hover { color:#5044b3; }
  .staff-all-reports span { font-size:16px; transition:transform .18s; }
  .staff-all-reports:hover span { transform:translateX(-3px); }
  .staff-report-list { display:grid; }
  .staff-report-item { min-width:0; display:flex; align-items:center; gap:12px; padding:12px 3px; border-top:1px solid #f0f2f6; transition:background .18s,padding .18s; }
  .staff-report-item:hover { padding-inline:10px; background:#fafaff; }
  .staff-report-symbol { width:36px; height:36px; flex:none; display:grid; place-items:center; border-radius:11px; background:#f2f0ff; color:#8074cc; }
  .staff-report-symbol svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
  .staff-report-copy { min-width:0; flex:1; display:grid; gap:3px; }
  .staff-report-copy strong { overflow:hidden; color:#354057; font-size:11px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
  .staff-report-copy small { color:#a0a8b6; font-size:9px; }
  .staff-report-item .badge { font-size:9px; }
  .staff-report-resume { flex:none; color:#6f63c6; font-size:10px; font-weight:800; white-space:nowrap; }
  .staff-report-arrow { width:15px; height:15px; flex:none; fill:none; stroke:#b0b7c4; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
  .staff-empty-state { display:grid; justify-items:center; padding:27px 15px 19px; text-align:center; }
  .staff-empty-art { width:74px; height:74px; display:grid; place-items:center; margin-bottom:12px; border:1px solid #eeebff; border-radius:25px; background:linear-gradient(145deg,#f5f2ff,#f0f8ff); color:#8074cf; transform:rotate(-4deg); }
  .staff-empty-art svg { width:44px; height:44px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
  .staff-empty-state h3 { margin:0 0 4px; color:#303a55; font-size:15px; font-weight:800; }
  .staff-empty-state p { max-width:360px; margin:0 0 14px; color:#8993a5; font-size:10px; line-height:1.8; }
  .staff-empty-state .button { min-height:39px; padding:8px 14px; font-size:10px; }
  .staff-empty-state .button svg { width:16px; height:16px; }
  .dashboard-reveal { opacity:1; transform:none; }
  .dashboard-motion-ready .dashboard-reveal { opacity:0; transform:translateY(13px); transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1); }
  .dashboard-motion-ready .dashboard-reveal.is-visible { opacity:1; transform:translateY(0); }
  .dashboard-motion-ready .staff-stats-grid .dashboard-reveal:nth-child(2) { transition-delay:.07s; }
  .dashboard-motion-ready .staff-stats-grid .dashboard-reveal:nth-child(3) { transition-delay:.14s; }
  .dashboard-motion-ready .staff-stats-grid .dashboard-reveal:nth-child(4) { transition-delay:.21s; }
  @keyframes staff-report-pulse { 0%,78%,100% { box-shadow:0 8px 19px #5146d52d; } 86% { box-shadow:0 0 0 6px #6558df16,0 8px 22px #5146d53a; } }
  @keyframes staff-alert-drop { from { opacity:0; transform:translateY(-17px); } to { opacity:1; transform:translateY(0); } }

  @media (max-width: 980px) {
    .staff-charts-grid { grid-template-columns:minmax(220px,.85fr) minmax(0,1.2fr); gap:12px; }
    .staff-chart-card { padding:17px 15px 14px; }
    .staff-chart-legend { gap:4px; }
    .staff-chart-legend span { gap:3px; font-size:7px; }
  }
  @media (max-width: 700px) {
    .staff-dashboard { gap:14px; }
    .staff-dashboard-heading { align-items:stretch; gap:13px; }
    .staff-dashboard-heading p { max-width:340px; }
    .staff-new-report { width:100%; min-height:43px; }
    .staff-rejected-alert { align-items:flex-start; gap:10px; padding:13px; flex-wrap:wrap; }
    .staff-alert-icon { width:34px; height:34px; }
    .staff-alert-copy { flex-basis:calc(100% - 46px); }
    .staff-alert-copy p { line-height:1.65; }
    .staff-alert-action { margin-right:44px; }
    .staff-stats-grid { gap:9px; }
    .staff-stat-card { min-height:113px; padding:14px; }
    .staff-stat-icon { top:12px; left:12px; width:33px; height:33px; border-radius:11px; }
    .staff-stat-icon svg { width:18px; height:18px; }
    .staff-stat-value { margin-top:12px; font-size:24px; }
    .staff-charts-grid { grid-template-columns:1fr; gap:11px; }
    .staff-chart-card { padding:16px; }
    .staff-donut-wrap { height:155px; }
    .staff-chart-legend span { gap:5px; font-size:9px; }
    .staff-trend-wrap { height:190px; }
    .staff-latest-card { padding:16px; }
    .staff-report-item { gap:8px; }
    .staff-report-symbol { width:32px; height:32px; }
    .staff-report-copy strong { font-size:10px; }
    .staff-report-item .badge { padding:4px 7px; font-size:8px; }
    .staff-report-resume { font-size:9px; }
    .staff-report-arrow { width:13px; }
    .staff-empty-state { padding:22px 6px 15px; }
  }
  @media (prefers-reduced-motion: reduce) {
    .staff-new-report { animation:none; }
    .staff-rejected-alert { animation:none; }
    .dashboard-motion-ready .dashboard-reveal { opacity:1; transform:none; transition:none; }
    .staff-stat-card,.staff-report-item,.staff-all-reports span { transition:none; }
  }
@media (max-width: 700px) {
  .report-review-heading { margin-bottom:15px; }
  .report-review-heading h1 { font-size:23px; }
  .report-review-heading p { max-width:37ch; font-size:11px; }
  .report-review-grid { gap:13px; }
  .report-paper,.report-media-section,.report-side-card { padding:16px; border-radius:15px; }
  .report-title { margin:10px 0 15px; font-size:21px; }
  .report-reading-body { font-size:13px; line-height:1.9; }
  .report-image-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .report-image-button { border-radius:10px; }
  .report-image-zoom { display:none; }
  .report-review-sidebar { display:grid; grid-template-columns:minmax(0,1fr); }
  .report-decision-card { grid-row:auto; }
  .report-timeline-card,.report-export-card { height:auto; }
  .report-mobile-decision-bar { position:fixed; z-index:30; right:0; bottom:0; left:0; display:grid; grid-template-columns:1.25fr 1fr; gap:9px; padding:11px max(15px,env(safe-area-inset-right)) calc(11px + env(safe-area-inset-bottom)) max(15px,env(safe-area-inset-left)); border-top:1px solid #e9e8ef; background:#ffffffed; box-shadow:0 -9px 28px #20204013; backdrop-filter:blur(15px); }
  .report-mobile-decision-bar .report-approve-button,.report-mobile-decision-bar .report-reject-button { min-height:44px; }
  .report-reject-dialog-content { padding:23px 19px; }
  .report-lightbox figure { max-width:calc(100vw - 36px); }
  .report-lightbox figure img { max-width:calc(100vw - 36px); max-height:72dvh; }
  .report-lightbox-close { top:15px; left:15px; }
  .report-lightbox-prev { right:10px; }
  .report-lightbox-next { left:10px; }
}
@media (prefers-reduced-motion: reduce) {
  .report-enter,.report-decision-result,.report-lightbox[open],.report-lightbox::backdrop,.report-lightbox figure img { animation:none !important; }
  .report-image-button img,.report-attachment,.report-download-button { transition:none; }
}
.upload-dropzone { padding:22px; border:1px dashed #a5b4fc; border-radius:13px; background:#fafaff; text-align:center; color:#64748b; font-size:12px; }
.upload-dropzone.dragover { background:#eef2ff; border-color:#4f46e5; }
.preview-grid { display:flex; flex-wrap:wrap; gap:9px; margin-top:10px; }
.preview-grid img { width:75px; height:65px; border-radius:8px; object-fit:cover; }
.progress-bar { height:6px; border-radius:9px; overflow:hidden; background:#e2e8f0; margin-top:10px; }
.progress-bar span { height:100%; width:0; display:block; background:#4f46e5; transition:width .2s; }
.toast-root { position:fixed; z-index:100; top:82px; left:20px; display:grid; gap:8px; width:min(360px,calc(100vw - 40px)); }
.toast { padding:12px 15px; border-radius:12px; background:white; box-shadow:0 10px 35px #0f172a20; font-size:12px; animation:toast-in .25s ease-out; }
.toast-success { border-right:4px solid #10b981; }
.toast-error { border-right:4px solid #f43f5e; }
.toast-warning { border-right:4px solid #f59e0b; }
@keyframes toast-in { from { opacity:0; transform:translateY(-7px) } to { opacity:1; transform:translateY(0) } }
.booking-success-backdrop { position:fixed; z-index:120; inset:0; display:grid; place-items:center; padding:20px; background:rgba(15,23,42,.48); backdrop-filter:blur(5px); animation:booking-backdrop-in .24s ease-out both; }
.booking-success-dialog { width:min(430px,100%); position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:center; padding:35px 27px 27px; border:1px solid #ffffff; border-radius:25px; background:linear-gradient(150deg,#fff 48%,#f5f3ff 100%); box-shadow:0 28px 90px #0f172a3b; text-align:center; animation:booking-dialog-in .38s cubic-bezier(.18,.8,.25,1.1) both; outline:none; }
.booking-success-dialog::before { content:""; position:absolute; top:-76px; left:-55px; width:175px; height:175px; border-radius:50%; background:radial-gradient(circle,#c4b5fd60,transparent 70%); pointer-events:none; }
.booking-success-close { position:absolute; z-index:2; top:13px; left:14px; width:35px; height:35px; display:grid; place-items:center; border:0; border-radius:11px; background:#f1f5f9; color:#64748b; font-size:25px; line-height:1; cursor:pointer; transition:background .2s,color .2s; }
.booking-success-close:hover { background:#e2e8f0; color:#312e81; }
.booking-success-icon { width:78px; height:78px; display:grid; place-items:center; margin:2px 0 15px; border-radius:25px; background:linear-gradient(145deg,#ecfdf5,#d1fae5); box-shadow:0 9px 23px #10b98120; animation:booking-icon-in .5s .08s cubic-bezier(.2,.8,.2,1.2) both; }
.booking-success-icon svg { width:54px; height:54px; fill:#10b981; stroke:#059669; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.booking-success-icon .booking-success-check { fill:none; stroke:white; stroke-width:3.5; }
.booking-success-kicker { color:#7c3aed; font-size:11px; font-weight:800; }
.booking-success-dialog h2 { margin:7px 0 5px; color:#1e1b4b; font-size:22px; font-weight:800; }
.booking-success-dialog p { max-width:320px; margin:0; color:#64748b; font-size:13px; line-height:1.9; }
.booking-success-action { min-height:45px; margin-top:21px; padding-inline:21px; }
.booking-success-decoration { position:absolute; right:24px; bottom:26px; color:#c4b5fd; font-size:19px; }
@keyframes booking-backdrop-in { from { opacity:0 } to { opacity:1 } }
@keyframes booking-dialog-in { from { opacity:0; transform:translateY(14px) scale(.96) } to { opacity:1; transform:translateY(0) scale(1) } }
@keyframes booking-icon-in { from { opacity:0; transform:scale(.72) rotate(-12deg) } to { opacity:1; transform:scale(1) rotate(0) } }
.booking-success-backdrop.is-closing { opacity:0; transition:opacity .18s ease; }
.booking-success-backdrop.is-closing .booking-success-dialog { transform:translateY(8px) scale(.98); transition:transform .18s ease; }
.public-container { max-width:1160px; padding:42px 22px 65px; margin:auto; }
.hero { min-height:370px; position:relative; overflow:hidden; display:grid; grid-template-columns:1.2fr .8fr; align-items:center; gap:22px; padding:48px clamp(24px,6vw,70px); border-radius:28px; color:white; background:radial-gradient(circle at 85% 20%,#a5f3fc55,transparent 29%),linear-gradient(125deg,#4338ca,#7c3aed 58%,#0891b2); }
.hero::after { content:""; position:absolute; width:300px; height:300px; border:1px solid #ffffff26; border-radius:50%; left:-90px; bottom:-180px; box-shadow:0 0 0 38px #ffffff0d,0 0 0 78px #ffffff0b; }
.hero-copy { position:relative; z-index:1; }
.hero-eyebrow { color:#ddd6fe; font-size:12px; font-weight:700; }
.hero h1 { max-width:640px; margin:12px 0; font-size:clamp(30px,5vw,53px); line-height:1.35; font-weight:800; }
.hero p { max-width:550px; color:#ede9fe; font-size:14px; line-height:1.9; }
.hero-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:23px; }
.hero .button-primary { background:white; color:#4f46e5; box-shadow:none; }
.hero .button-quiet { color:white; border-color:#ffffff52; background:#ffffff12; }
.hero-art { justify-self:center; position:relative; width:min(290px,100%); aspect-ratio:1; display:grid; place-items:center; }
.room-card { width:88%; padding:25px; border:1px solid #ffffff55; border-radius:22px; background:#ffffff1c; box-shadow:0 20px 60px #312e8155; backdrop-filter:blur(9px); transform:rotate(-4deg); }
.room-card-symbol { width:66px; height:66px; display:grid; place-items:center; margin-bottom:18px; border-radius:20px; background:#ffffff26; font-size:29px; }
.room-card strong { display:block; font-size:20px; }
.room-card small { color:#e0e7ff; }
.public-section { margin-top:33px; }
.public-section-heading { display:flex; justify-content:space-between; align-items:end; gap:15px; margin-bottom:16px; }
.public-section-heading h2 { margin:0; color:#1e1b4b; font-size:21px; font-weight:800; }
.public-section-heading p { margin:5px 0 0; color:#64748b; font-size:12px; }
.public-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.public-info-card { display:flex; align-items:flex-start; gap:13px; padding:19px; }
.public-info-icon { width:41px; height:41px; flex:none; display:grid; place-items:center; border-radius:13px; background:#eef2ff; color:#4f46e5; }
.public-info-card h3 { margin:0 0 5px; font-size:13px; color:#334155; }
.public-info-card p { margin:0; color:#94a3b8; font-size:11px; line-height:1.7; }
.steps-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.step-card { padding:20px; }
.step-number { width:32px; height:32px; margin-bottom:12px; display:grid; place-items:center; background:#eef2ff; color:#4f46e5; border-radius:11px; font-weight:800; font-size:12px; }
.step-card h3 { margin:0 0 5px; font-size:13px; }
.step-card p { margin:0; color:#64748b; font-size:11px; line-height:1.8; }
.schedule-page { max-width:1450px; }
.schedule-heading { align-items:center; }
.schedule-title-line { display:flex; flex-wrap:wrap; align-items:center; gap:11px; }
.schedule-kicker { padding:6px 10px; border:1px solid #e9e2ff; border-radius:99px; background:#f5f2ff; color:#6843c2; font-size:10px; font-weight:800; }
.schedule-heading p { margin-top:5px; }
.schedule-current-week { flex:none; }
.schedule-card { position:relative; overflow:hidden; padding:clamp(16px,2.3vw,28px); }
.schedule-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-bottom:20px; }
.schedule-week-heading { display:flex; align-items:center; gap:12px; }
.schedule-calendar-icon { display:grid; width:43px; height:43px; flex:none; place-items:center; border:1px solid #e9e5ff; border-radius:14px; background:#f6f4ff; color:#6843c2; }
.schedule-calendar-icon svg,.schedule-search svg,.schedule-week-nav svg,.schedule-cell svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.schedule-week-heading h2 { margin:0; color:#211b45; font-size:17px; font-weight:800; }
.schedule-week-heading h2 span { padding:0 3px; color:#a78bfa; }
.schedule-week-heading p { margin:3px 0 0; color:#8a91a3; font-size:11px; }
.schedule-week-nav { display:flex; gap:8px; }
.schedule-week-nav a { display:inline-flex; min-height:39px; align-items:center; justify-content:center; gap:5px; padding:7px 10px; border:1px solid #e7e8f0; border-radius:11px; color:#55566c; background:#fff; font-size:11px; font-weight:700; transition:border-color .2s,color .2s,background .2s,transform .2s; }
.schedule-week-nav a:hover { transform:translateY(-1px); border-color:#c4b5fd; color:#5b3bb5; background:#fbfaff; }
.schedule-week-nav svg { width:14px; height:14px; }
.schedule-legend { display:flex; flex-wrap:wrap; align-items:center; gap:14px; padding:12px 14px; border:1px solid #f0eef7; border-radius:13px; background:#fcfbff; color:#5b6070; font-size:11px; }
.schedule-legend>span:not(.schedule-legend-title) { display:inline-flex; align-items:center; gap:7px; }
.schedule-legend-title { margin-left:4px; color:#34324b; font-weight:800; }
.legend-dot { width:9px; height:9px; display:inline-block; flex:none; border-radius:50%; }
.legend-available { background:#28b982; }
.legend-booked { background:#8060db; }
.legend-cancelled { background:#e888a9; }
.schedule-filters { display:flex; align-items:center; gap:10px; margin:16px 0 13px; }
.schedule-search { position:relative; display:block; flex:1; max-width:420px; }
.schedule-search svg { position:absolute; top:50%; right:13px; width:16px; height:16px; color:#9295a7; transform:translateY(-50%); pointer-events:none; }
.schedule-search input { width:100%; min-height:42px; padding:9px 39px 9px 12px; border:1px solid #e6e7ed; border-radius:11px; outline:0; background:#fff; color:#334155; font-size:11px; transition:border-color .2s,box-shadow .2s; }
.schedule-search input:focus,.schedule-filter-select select:focus { border-color:#a78bfa; box-shadow:0 0 0 3px #8b5cf61c; }
.schedule-filter-select { display:flex; min-height:42px; align-items:center; gap:8px; padding:0 10px; border:1px solid #e6e7ed; border-radius:11px; color:#788092; font-size:10px; }
.schedule-filter-select select { max-width:145px; border:0; outline:0; background:transparent; color:#42465a; font-size:11px; font-weight:700; }
.schedule-search-hint { color:#9699a8; font-size:10px; }
.schedule-day-tabs,.schedule-mobile-days { display:none; }
.schedule-table-wrap { width:100%; overflow:auto; overscroll-behavior-inline:contain; border:1px solid #ecebf3; border-radius:14px; scrollbar-color:#c4b5fd #f6f5fa; scrollbar-width:thin; }
.schedule-table { width:100%; min-width:830px; border-collapse:separate; border-spacing:0; table-layout:fixed; text-align:center; }
.schedule-table th { min-width:120px; padding:10px 8px; border-bottom:1px solid #e9e8ef; background:#f8f8fc; color:#5f6274; font-size:11px; font-weight:800; }
.schedule-table thead th { position:sticky; z-index:3; top:0; height:57px; }
.schedule-table thead th:not(.schedule-period-heading) { vertical-align:middle; }
.schedule-table thead th span { display:block; color:#33334b; font-size:12px; }
.schedule-table thead th small { display:block; margin-top:2px; color:#979aad; font-size:9px; font-weight:500; }
.schedule-table thead th i { position:absolute; top:4px; left:7px; padding:2px 5px; border-radius:99px; background:#eee9ff; color:#7048cc; font-size:8px; font-style:normal; }
.schedule-table .schedule-period-heading { position:sticky; z-index:5; right:0; width:116px; min-width:116px; background:#f6f6fb; }
.schedule-table tbody th.schedule-period { position:sticky; z-index:2; right:0; width:116px; min-width:116px; padding:8px 12px; border-bottom:1px solid #f0eff5; background:#fbfbfd; color:#696b7d; text-align:right; font-size:10px; }
.schedule-period strong { display:inline-grid; width:25px; height:25px; margin-right:5px; place-items:center; border-radius:8px; background:#f0edfa; color:#6249a4; font-size:11px; }
.schedule-table td { position:relative; padding:6px; border-bottom:1px solid #f1f0f5; background:#fff; text-align:center; }
.schedule-table tbody tr:last-child td,.schedule-table tbody tr:last-child th { border-bottom:0; }
.schedule-table .is-current-day { box-shadow:inset 1px 0 #d8c9ff,inset -1px 0 #d8c9ff; background-color:#fcfaff; }
.schedule-table thead .is-current-day { background:#f4f0ff; }
.schedule-cell { position:relative; min-height:68px; width:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; overflow:visible; padding:8px 6px; border:1px solid transparent; border-radius:11px; color:#334155; text-align:center; transition:transform .2s ease,box-shadow .2s ease,filter .2s ease,opacity .2s ease; }
.schedule-table .schedule-cell { animation:schedule-cell-enter .45s both; animation-delay:var(--cell-delay,0ms); }
.schedule-cell:hover { z-index:2; transform:translateY(-3px); box-shadow:0 8px 18px #37266b18; }
.schedule-cell-status { display:flex; align-items:center; justify-content:center; gap:5px; font-size:10px; }
.schedule-cell-status svg { width:15px; height:15px; }
.schedule-free { background:#E6F8F1; color:#147a56; }
.schedule-free:hover { border-color:#a8e9d2; }
.schedule-booked { background:#EEE9FF; color:#6844b0; cursor:help; }
.schedule-booked .schedule-teacher { max-width:100%; overflow:hidden; color:#4d378a; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.schedule-booked small,.schedule-past small { max-width:100%; overflow:hidden; font-size:9px; opacity:.78; text-overflow:ellipsis; white-space:nowrap; }
.schedule-cancelled { background:#fff0f5; color:#b74870; }
.schedule-cancelled:hover { border-color:#f3c2d2; }
.schedule-past { background:#fff1f2; color:#be123c; }
.schedule-cell-action { display:inline-flex; align-items:center; gap:2px; font-size:9px; font-weight:800; }
.schedule-cell-action svg { width:12px; height:12px; }
.schedule-cell.is-search-dimmed { opacity:.25; filter:grayscale(.45); }
.schedule-cell.is-search-match { position:relative; z-index:1; border-color:#a78bfa; box-shadow:0 0 0 2px #8b5cf633,0 6px 15px #36236b13; }
.schedule-cell[data-tooltip]::after { position:absolute; z-index:10; right:50%; bottom:calc(100% + 8px); width:max-content; max-width:220px; padding:7px 10px; border-radius:8px; background:#292541; color:white; content:attr(data-tooltip); font-size:10px; font-weight:500; line-height:1.5; opacity:0; pointer-events:none; transform:translate(50%,4px); transition:opacity .16s,transform .16s; white-space:normal; }
.schedule-cell[data-tooltip]:hover::after,.schedule-cell[data-tooltip]:focus-visible::after { opacity:1; transform:translate(50%,0); }
.schedule-no-results { margin:12px 0 0; color:#9699a8; font-size:11px; text-align:center; }
.schedule-loading-skeleton { display:none; }
.schedule-page.is-loading .schedule-content { opacity:.12; }
.schedule-page.is-loading .schedule-loading-skeleton { display:grid; gap:8px; position:absolute; z-index:4; inset:250px 24px auto; padding:12px; border-radius:13px; background:#fff; }
.schedule-skeleton-toolbar { height:34px; margin-bottom:4px; border-radius:8px; background:linear-gradient(100deg,#f4f3f9 25%,#ebe8f4 45%,#f4f3f9 65%); background-size:220% 100%; animation:schedule-shimmer 1s linear infinite; }
.schedule-skeleton-row { display:grid; grid-template-columns:repeat(6,minmax(55px,1fr)); gap:8px; }
.schedule-skeleton-row i { height:52px; border-radius:9px; background:linear-gradient(100deg,#f4f3f9 25%,#ebe8f4 45%,#f4f3f9 65%); background-size:220% 100%; animation:schedule-shimmer 1s linear infinite; }
.schedule-content.schedule-enter-next { animation:schedule-enter-next .38s both; }
.schedule-content.schedule-enter-previous { animation:schedule-enter-previous .38s both; }
@keyframes schedule-cell-enter { from { opacity:0; transform:translateY(7px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes schedule-shimmer { to { background-position-x:-220%; } }
@keyframes schedule-enter-next { from { opacity:0; transform:translateX(18px); } to { opacity:1; transform:translateX(0); } }
@keyframes schedule-enter-previous { from { opacity:0; transform:translateX(-18px); } to { opacity:1; transform:translateX(0); } }
@media (max-width: 900px) {
  .schedule-page { padding-inline:clamp(14px,3vw,25px); }
  .schedule-toolbar { flex-wrap:wrap; }
  .schedule-week-heading { min-width:0; }
  .schedule-week-nav { margin-inline-start:auto; }
  .schedule-day-tabs { display:flex; gap:7px; overflow-x:auto; overscroll-behavior-inline:contain; padding:2px 0 9px; scrollbar-width:none; -ms-overflow-style:none; }
  .schedule-day-tabs::-webkit-scrollbar,.schedule-table-wrap::-webkit-scrollbar { display:none; width:0; height:0; }
  .schedule-day-tab { flex:1 0 60px; min-height:53px; display:grid; align-content:center; justify-items:center; gap:2px; padding:6px 9px; border:1px solid #eceaf3; border-radius:11px; background:#fff; color:#646779; cursor:pointer; }
  .schedule-day-tab span { font-size:10px; font-weight:800; white-space:nowrap; }
  .schedule-day-tab small { color:#9a9dad; font-size:9px; }
  .schedule-day-tab[aria-selected="true"] { border-color:#b7a4f5; background:#f3efff; color:#5d40ad; box-shadow:0 3px 10px #6d4bc012; }
  .schedule-day-tab.is-today:not([aria-selected="true"]) { border-color:#d9cefb; }
  .schedule-table-wrap { display:none; }
  .schedule-mobile-days { display:block; }
  .schedule-mobile-day { display:grid; gap:8px; padding-top:4px; }
  .schedule-mobile-day[hidden] { display:none; }
  .schedule-mobile-slot { display:flex; min-height:74px; align-items:center; gap:9px; padding:8px; border:1px solid #eeedf3; border-radius:12px; background:#fff; }
  .schedule-mobile-period { width:69px; flex:none; color:#676a7d; font-size:10px; font-weight:800; }
  .schedule-mobile-slot .schedule-cell { min-height:56px; align-items:flex-start; padding:7px 9px; text-align:right; }
  .schedule-mobile-slot .schedule-cell-status { justify-content:flex-start; }
  .schedule-mobile-slot .schedule-cell-action { margin-right:20px; }
  .schedule-mobile-slot .schedule-booked .schedule-teacher { max-width:100%; }
  .schedule-cell[data-tooltip]::after { display:none; }
  .schedule-search-hint { display:none; }
  .schedule-page.is-loading .schedule-loading-skeleton { inset:250px clamp(14px,3vw,25px) auto; }
}
  .preloader-enabled, .preloader-enabled body { min-height:100%; }
  .preloader-enabled body { overflow:hidden; }
  .platform-preloader { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; overflow:hidden; background:radial-gradient(ellipse at 50% 44%,#fff 0%,#fbfaff 45%,#f4f5ff 100%); color:#312e81; opacity:1; visibility:visible; transition:opacity .52s ease,visibility .52s ease; }
  .platform-preloader.is-leaving { opacity:0; visibility:hidden; pointer-events:none; }
  .platform-preloader::before,.platform-preloader::after { content:""; position:absolute; width:min(74vw,690px); aspect-ratio:1; border:1px solid #8b5cf610; border-radius:50%; pointer-events:none; }
  .platform-preloader::after { width:min(57vw,520px); border-color:#06b6d408; }
  .preloader-glow { position:absolute; width:340px; height:340px; border-radius:50%; filter:blur(90px); opacity:.22; pointer-events:none; }
  .preloader-glow-one { top:4%; right:7%; background:#a78bfa; }
  .preloader-glow-two { bottom:0; left:4%; background:#67e8f9; opacity:.15; }
  .preloader-content { position:relative; z-index:1; display:grid; justify-items:center; width:min(100% - 32px,520px); text-align:center; animation:preloader-arrive .8s cubic-bezier(.2,.75,.3,1) both; }
  .preloader-hall-scene { position:relative; width:min(100%,430px); margin-bottom:7px; perspective:900px; }
  .preloader-hall { display:block; width:100%; height:auto; overflow:visible; filter:drop-shadow(0 19px 20px #4f46e515); }
  .hall-door { transform-box:fill-box; backface-visibility:hidden; }
  .hall-door-left { transform-origin:left center; animation:hall-door-open 1s .28s cubic-bezier(.2,.76,.22,1) both; }
  .hall-door-right { transform-origin:right center; animation:hall-door-open 1s .28s cubic-bezier(.2,.76,.22,1) both; }
  .hall-door-left { --door-shift:-110%; }
  .hall-door-right { --door-shift:110%; }
  .hall-interior-glow { opacity:.28; animation:hall-light-rise 1.25s .55s ease-out both; }
  .preloader-scene-spark { position:absolute; width:7px; height:7px; border-radius:50%; background:#f4d28d; box-shadow:0 0 0 5px #f4d28d25,0 0 18px #f4d28d; animation:scene-sparkle 2s .8s ease-in-out infinite; }
  .scene-spark-one { top:26%; right:12%; }
  .scene-spark-two { top:39%; left:10%; width:5px; height:5px; animation-delay:1.2s; }
  .preloader-kicker { margin-bottom:9px; color:#7c3aed; font-size:11px; font-weight:800; letter-spacing:.04em; }
  .preloader-title { color:#24204b; font-size:clamp(23px,5vw,30px); font-weight:800; letter-spacing:-.025em; }
  .preloader-caption { margin-top:8px; color:#81809a; font-size:13px; }
  .preloader-progress { width:155px; height:3px; overflow:hidden; margin-top:27px; border-radius:9px; background:#e9e7f4; }
  .preloader-progress span { display:block; width:42%; height:100%; border-radius:inherit; background:linear-gradient(90deg,#a78bfa,#5b4bdb,#22c5d8); animation:preloader-progress 1.45s cubic-bezier(.65,.05,.36,1) infinite; }
  .preloader-status { margin-top:11px; color:#a3a1b7; font-size:10px; }
  .preloader-footer { position:absolute; right:20px; bottom:20px; left:20px; color:#aaa8bb; font-size:10px; text-align:center; }
  .preloader-footer i { display:inline-block; width:3px; height:3px; margin:0 7px 2px; border-radius:50%; background:#b9a7ed; }
  @keyframes preloader-progress { 0% { transform:translateX(155%); } 100% { transform:translateX(-245%); } }
  @keyframes preloader-arrive { from { opacity:0; transform:translateY(10px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
  @keyframes hall-door-open { from { transform:translateX(0) rotateY(0); } to { transform:translateX(var(--door-shift)) rotateY(var(--door-angle,0)); } }
  @keyframes hall-light-rise { from { opacity:.08; } to { opacity:.9; } }
  @keyframes scene-sparkle { 0%,100% { opacity:.28; transform:scale(.72); } 50% { opacity:1; transform:scale(1.25); } }
  .hall-door-left { --door-angle:-17deg; }
  .hall-door-right { --door-angle:17deg; }
  @media (max-width: 480px) {
    .preloader-content { width:min(100% - 18px,420px); }
    .preloader-hall-scene { width:min(100%,370px); }
  }
  @media (prefers-reduced-motion: reduce) {
    .preloader-content { animation:none; }
    .hall-door-left { transform:translateX(-110%) rotateY(-17deg); animation:none; }
    .hall-door-right { transform:translateX(110%) rotateY(17deg); animation:none; }
    .hall-interior-glow { opacity:.9; animation:none; }
    .preloader-scene-spark,.preloader-progress span { animation:none; }
    .platform-preloader { transition-duration:.01ms; }
  }
  .site-footer { min-height:50px; padding:15px 20px; text-align:center; color:#94a3b8; font-size:10px; }
.site-footer span { padding:0 5px; color:#c4b5fd; }
.hall-profile-section { position:relative; isolation:isolate; overflow:hidden; padding:clamp(21px,3.4vw,38px); border:1px solid #e8e5f3; border-radius:clamp(19px,3vw,30px); background:radial-gradient(ellipse at 100% 0,#e9e5ff70,transparent 32%),linear-gradient(145deg,#fff 28%,#faf9ff 100%); box-shadow:0 18px 48px #29205b0a; }
.hall-profile-section::before { position:absolute; z-index:-1; top:-105px; left:-70px; width:230px; aspect-ratio:1; border:1px solid #a78bfa24; border-radius:50%; box-shadow:0 0 0 24px #a78bfa09,0 0 0 50px #a78bfa07; content:""; pointer-events:none; }
.hall-profile-section>.public-section-heading { position:relative; margin-bottom:23px; }
.hall-profile-section .public-section-heading>div { max-width:760px; }
.hall-profile-section .public-section-heading h2 { margin-top:3px; font-size:clamp(22px,3vw,30px); letter-spacing:-.025em; }
.hall-profile-section .public-section-heading p { margin-top:8px; font-size:clamp(12px,1.4vw,14px); line-height:1.8; }
.hall-profile-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.hall-profile-card { min-width:0; min-height:100px; display:flex; align-items:flex-start; gap:14px; padding:clamp(15px,2vw,21px); border-color:#eeedf5; border-radius:17px; background:#ffffffd9; box-shadow:0 5px 16px #28205006; transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.hall-profile-card:hover { transform:translateY(-2px); border-color:#ded7f7; box-shadow:0 12px 27px #30235c0d; }
.hall-profile-icon { width:43px; height:43px; flex:none; display:grid; place-items:center; border:1px solid #e8e2ff; border-radius:15px; background:linear-gradient(145deg,#f4f0ff,#eeedff); color:#6d4ad2; font-size:19px; font-weight:800; }
.hall-profile-card>div { min-width:0; }
.hall-profile-label { display:block; margin:0 0 8px; color:#746c89; font-size:11px; font-weight:800; letter-spacing:.01em; }
.hall-profile-card strong { color:#312e4b; font-size:15px; line-height:1.7; }
.hall-profile-card p { margin:0; color:#505a70; font-size:13px; line-height:1.95; overflow-wrap:anywhere; }
.hall-profile-card ul { display:grid; gap:7px; margin:0; padding-right:18px; color:#505a70; font-size:12px; line-height:1.8; }
.hall-evidence { position:relative; margin-top:clamp(25px,4vw,38px); padding-top:clamp(20px,3vw,28px); border-top:1px solid #e9e6f2; }
.hall-evidence-heading { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:16px; }
.hall-evidence-heading h3 { margin:3px 0 0; color:#312e4b; font-size:clamp(17px,2vw,21px); font-weight:800; }
.hall-evidence-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(11px,1.7vw,18px); }
.hall-evidence-card { min-width:0; overflow:hidden; border-color:#ebe9f2; border-radius:17px; background:#fff; box-shadow:0 7px 20px #29205b0a; transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease; }
.hall-evidence-card:hover { transform:translateY(-4px); border-color:#dcd5f3; box-shadow:0 16px 32px #29205b16; }
.hall-evidence-image-link { position:relative; display:block; overflow:hidden; aspect-ratio:1.48; background:linear-gradient(135deg,#f2effa,#e9f3f6); }
.hall-evidence-image-link::after { position:absolute; inset:45% 0 0; background:linear-gradient(transparent,#17152a26); content:""; opacity:.6; pointer-events:none; }
.hall-evidence-image-link img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.hall-evidence-image-link:hover img,.hall-evidence-image-link:focus-visible img { transform:scale(1.055); }
.hall-evidence-image-link:focus-visible { outline:3px solid #8b7ada; outline-offset:-3px; }
.hall-evidence-copy { min-height:78px; padding:14px 16px 16px; }
.hall-evidence-copy h4 { margin:0; color:#312e4b; font-size:14px; font-weight:800; line-height:1.65; overflow-wrap:anywhere; }
.hall-evidence-copy p { margin:6px 0 0; color:#64748b; font-size:12px; line-height:1.85; overflow-wrap:anywhere; }
.hall-evidence-admin { margin-top:clamp(23px,3vw,32px); }
.hall-evidence-admin>.public-section-heading h2 { color:#211b45; font-size:clamp(19px,2.5vw,24px); }
.hall-evidence-upload { margin-bottom:18px; border-color:#e9e5f5; border-radius:18px; }
.hall-evidence-upload input[type="file"] { min-height:48px; padding:7px; background:#fbfaff; }
.hall-evidence-upload input[type="file"]::file-selector-button { min-height:32px; margin-inline-end:9px; padding:5px 11px; border:0; border-radius:8px; background:#efebff; color:#5e45ad; font:inherit; font-weight:700; cursor:pointer; }
.hall-evidence-admin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; scroll-margin-top:18px; }
.hall-evidence-admin-card { min-width:0; overflow:hidden; border-color:#e9e7ef; border-radius:17px; }
.hall-evidence-admin-image { display:block; width:100%; height:clamp(170px,22vw,245px); object-fit:cover; background:#f1eff8; }
.hall-evidence-edit { display:grid; gap:12px; padding:17px; }
.hall-evidence-edit .field textarea { min-height:86px; }
.hall-evidence-admin-actions { display:flex; flex-wrap:wrap; gap:8px; padding:0 17px 17px; }
.hall-evidence-admin-actions form { flex:1 1 auto; margin:0; }
.hall-evidence-admin-actions .button { width:100%; }
.hall-visibility-field label { display:flex; align-items:center; gap:8px; }
.hall-visibility-field input { width:16px; min-height:16px; accent-color:#4f46e5; }
@media (max-width: 980px) {
  .hall-evidence-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .hall-profile-section { padding:20px 17px; border-radius:21px; }
  .hall-profile-section>.public-section-heading { margin-bottom:18px; }
  .hall-profile-grid { grid-template-columns:1fr; }
  .hall-profile-card { min-height:0; padding:16px; border-radius:15px; }
  .hall-profile-card p { font-size:12px; }
  .hall-evidence-grid { gap:12px; }
  .hall-evidence-image-link { aspect-ratio:1.4; }
  .hall-evidence-admin-grid { grid-template-columns:1fr; gap:13px; }
  .hall-evidence-admin-image { height:clamp(180px,55vw,300px); }
}
@media (max-width: 480px) {
  .hall-profile-section { padding:18px 14px; }
  .hall-profile-icon { width:38px; height:38px; border-radius:13px; }
  .hall-evidence-grid { grid-template-columns:1fr; }
  .hall-evidence-card { border-radius:15px; }
  .hall-evidence-image-link { aspect-ratio:1.55; }
  .hall-evidence-copy { min-height:0; padding:12px 14px 14px; }
  .hall-evidence-admin-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hall-evidence-admin-actions form:last-child { grid-column:1/-1; }
}
@media (prefers-reduced-motion: reduce) {
  .hall-profile-card,.hall-evidence-card,.hall-evidence-image-link img { transition:none; }
  .hall-profile-card:hover,.hall-evidence-card:hover { transform:none; }
}
.login-shell { min-height:calc(100vh - 122px); display:grid; place-items:center; padding:34px 18px; background:radial-gradient(circle at 20% 20%,#e0e7ff 0,transparent 29%),#f8fafc; }
.login-card { width:min(440px,100%); padding:30px; }
.login-card h1 { margin:3px 0 5px; color:#1e1b4b; font-size:23px; font-weight:800; }
.login-card>p { margin:0 0 22px; color:#64748b; font-size:12px; }
.login-card .field { margin-bottom:15px; }
.login-card .button { width:100%; }
.alert { margin-bottom:15px; padding:11px 13px; border-radius:10px; background:#fff1f2; color:#be123c; font-size:11px; }
.user-row { display:flex; align-items:center; gap:10px; }
.avatar { width:34px; height:34px; display:grid; place-items:center; border-radius:12px; background:#eef2ff; color:#4f46e5; font-weight:800; }
.table-actions { display:flex; align-items:center; gap:6px; }
.link-button { color:#4f46e5; font-size:11px; font-weight:800; }
.link-danger { color:#e11d48; }
.divider { height:1px; margin:18px 0; background:#f1f5f9; }
.week-nav { display:flex; align-items:center; gap:8px; }
.week-nav a { padding:7px 11px; border:1px solid #e2e8f0; border-radius:9px; color:#475569; font-size:11px; }
.inline-form { display:inline; }
.chart-filter { width:auto; min-height:35px; padding:5px 10px; border:1px solid #e2e8f0; border-radius:9px; background:white; color:#475569; font-size:11px; }
.notice-box { padding:14px; border-radius:12px; background:#fffbeb; color:#92400e; font-size:12px; }
.hidden { display:none !important; }

.home-topbar { position:sticky; top:0; z-index:40; height:78px; background:rgba(255,255,255,.78); border-bottom-color:rgba(226,232,240,.78); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.home-topbar .topbar-inner { max-width:1240px; padding-inline:28px; }
.home-brand { gap:12px; color:#312e81; }
.home-brand .brand-mark { width:43px; height:43px; border-radius:14px; box-shadow:0 7px 18px #6366f12e; }
.home-brand .brand-mark svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.brand-copy { display:grid; gap:0; line-height:1.45; }
.brand-copy>span { font-size:13px; font-weight:800; }
.brand-copy small { color:#94a3b8; font-size:10px; font-weight:600; }
.home-nav { display:flex; align-items:center; gap:6px; }
.home-nav-link { padding:9px 14px; border-radius:10px; color:#64748b; font-size:12px; font-weight:700; transition:color .2s,background .2s; }
.home-nav-link:hover,.home-nav-link.is-active { color:#4f46e5; background:#eef2ff; }
.home-login-button { min-height:40px; border-radius:12px; padding-inline:18px; }
.home-login-button svg,.hero-actions svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.home-menu-toggle { display:none; width:42px; height:42px; place-content:center; gap:5px; border:1px solid #e2e8f0; border-radius:13px; background:#fff; }
.home-menu-toggle span { display:block; width:18px; height:2px; border-radius:2px; background:#4f46e5; transition:transform .2s,opacity .2s; }
.home-menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(7px) rotate(45deg); }
.home-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.home-menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-7px) rotate(-45deg); }
.home-drawer-backdrop,.home-mobile-drawer { display:none; }
.home-public-body { overflow-x:hidden; }
.home-public-body .public-container { max-width:1200px; padding-top:31px; }
.home-hero { min-height:416px; grid-template-columns:1.1fr .9fr; gap:20px; padding:54px clamp(28px,6vw,78px); border:1px solid #e9e6ff; border-radius:31px; color:#1e1b4b; background:radial-gradient(ellipse at 82% 9%,#ddd6feaa,transparent 32%),radial-gradient(ellipse at 15% 100%,#cffafe99,transparent 35%),linear-gradient(120deg,#faf9ff 0%,#f3f0ff 48%,#effbff 100%); box-shadow:0 20px 70px #4f46e50c; isolation:isolate; }
.home-hero::after { width:360px; height:360px; left:43%; bottom:-260px; border-color:#8b5cf61c; box-shadow:0 0 0 43px #8b5cf60a,0 0 0 88px #8b5cf607; }
.home-hero-art { width:min(100%,390px); aspect-ratio:1.08; justify-self:center; position:relative; isolation:isolate; }
.home-visual-orbit { position:absolute; z-index:-1; border:1px solid #8b5cf620; border-radius:50%; pointer-events:none; }
.home-visual-orbit-one { inset:3% 8%; transform:rotate(-17deg); }
.home-visual-orbit-two { inset:11% 0; border-style:dashed; border-color:#06b6d420; transform:rotate(24deg); }
.home-visual-card { position:absolute; inset:9% 10% 8%; overflow:hidden; padding:12px; border:1px solid #ffffffd9; border-radius:25px; background:linear-gradient(155deg,#ffffffed,#f5f3ffed); box-shadow:0 25px 55px #4c3b8930,0 4px 12px #4c3b8910; transform:rotate(-3deg); }
.home-visual-topline { height:16px; display:flex; align-items:center; gap:4px; padding-inline:3px; }
.home-visual-topline>span { width:5px; height:5px; border-radius:50%; background:#c4b5fd; }
.home-visual-topline>span:first-child { background:#fda4af; }
.home-visual-topline>span:nth-child(2) { background:#fcd34d; }
.home-visual-topline>span:nth-child(3) { background:#6ee7b7; }
.home-visual-topline i { width:42%; height:5px; margin-inline-start:auto; border-radius:9px; background:#ede9fe; }
.home-visual-scene { position:relative; height:71%; overflow:hidden; margin-top:8px; border:1px solid #e5e7fb; border-radius:16px; background:linear-gradient(180deg,#e7f8ff 0%,#f2efff 72%,#e8ddfa 100%); }
.home-hairline-scene { --hairline-plate:#eef2ff; --hairline-hi:#3730a3; --hairline-edge:#6366f1; --hairline-mid:#a5b4fc; --hairline-lo:#ddd6fe; --hairline-stroke:1; background:radial-gradient(circle,#c4b5fd 1px,transparent 1px) 0 0/20px 20px,linear-gradient(145deg,#eef2ff,#e7f8ff); }
.home-visual-sun { position:absolute; top:12%; left:13%; width:13%; aspect-ratio:1; border-radius:50%; background:#fde68a; box-shadow:0 0 25px #fde68a66; }
.home-visual-window { position:absolute; top:12%; right:11%; width:25%; height:35%; overflow:hidden; border:5px solid #ffffffb8; border-radius:8px; background:linear-gradient(165deg,#c5eff4 0 47%,#acd9da 48% 100%); box-shadow:0 3px 9px #64748b15; }
.home-visual-window span,.home-visual-window i { position:absolute; top:0; bottom:0; right:47%; width:2px; background:#ffffffba; }
.home-visual-window i { top:49%; right:0; bottom:auto; width:100%; height:2px; }
.home-visual-board { position:absolute; top:17%; right:43%; width:35%; height:28%; border:5px solid #ffffffbf; border-radius:7px; background:linear-gradient(140deg,#6556b4,#453a82); box-shadow:0 5px 12px #43358f24; }
.home-visual-board span,.home-visual-board i,.home-visual-board b { position:absolute; right:15%; width:56%; height:3px; border-radius:4px; background:#d9d2ff; }
.home-visual-board span { top:27%; width:41%; background:#8be0da; }
.home-visual-board i { top:47%; }
.home-visual-board b { top:67%; width:35%; background:#f9d995; }
.home-visual-shelf { position:absolute; top:57%; right:12%; width:32%; height:4px; border-radius:4px; background:#ab8b77; box-shadow:0 4px 5px #47556916; }
.home-visual-shelf span,.home-visual-shelf i,.home-visual-shelf b { position:absolute; bottom:3px; width:18%; height:18px; border-radius:4px 4px 2px 2px; background:#a78bfa; }
.home-visual-shelf span { right:12%; height:14px; background:#67c8c3; }
.home-visual-shelf i { right:39%; height:21px; background:#f4c66b; }
.home-visual-shelf b { right:67%; height:16px; background:#f18c9b; }
.home-visual-desk { position:absolute; z-index:2; bottom:20%; left:19%; width:45%; height:5px; border-radius:5px; background:#9677c9; box-shadow:0 5px 9px #59479f25; }
.home-visual-desk::before,.home-visual-desk::after { content:""; position:absolute; top:4px; width:4px; height:27px; border-radius:0 0 3px 3px; background:#876ab7; }
.home-visual-desk::before { right:13%; }
.home-visual-desk::after { left:13%; }
.home-visual-desk span { position:absolute; right:36%; bottom:5px; width:34%; height:20px; border:3px solid #fff; border-bottom-width:4px; border-radius:4px 4px 2px 2px; background:linear-gradient(145deg,#8be0da,#70b9cf); }
.home-visual-desk i { position:absolute; left:8%; bottom:5px; width:15%; height:3px; border-radius:3px; background:#f2cc78; }
.home-visual-chair { position:absolute; z-index:1; bottom:8%; left:31%; width:22%; height:15%; border:4px solid #8b78c4; border-bottom:0; border-radius:13px 13px 4px 4px; }
.home-visual-chair::after { content:""; position:absolute; top:100%; left:44%; width:4px; height:11px; background:#8b78c4; }
.home-visual-chair span { position:absolute; bottom:-12px; left:15%; width:70%; height:4px; border-radius:4px; background:#8b78c4; }
.home-visual-plant { position:absolute; z-index:3; bottom:21%; right:12%; width:12%; height:19%; }
.home-visual-plant::after { content:""; position:absolute; right:12%; bottom:0; left:12%; height:9px; border-radius:2px 2px 7px 7px; background:#e59c76; }
.home-visual-plant span,.home-visual-plant i,.home-visual-plant b { position:absolute; bottom:7px; right:44%; width:4px; height:66%; border-radius:5px; background:#438b77; transform:rotate(-8deg); transform-origin:bottom; }
.home-visual-plant i { right:44%; height:47%; transform:rotate(29deg); }
.home-visual-plant b { right:46%; height:54%; transform:rotate(-32deg); }
.home-visual-floor { position:absolute; right:-10%; bottom:-27%; left:-10%; height:53%; border-radius:50% 50% 0 0; background:linear-gradient(180deg,#d9c9f1,#c8b6e9); }
.home-visual-caption { position:absolute; right:5%; bottom:4%; left:5%; display:flex; align-items:center; gap:9px; padding:9px 10px; border:1px solid #f1edff; border-radius:13px; background:#ffffffed; box-shadow:0 6px 15px #43358f0c; }
.home-visual-caption-icon { width:28px; height:28px; display:grid; flex:none; place-items:center; border-radius:9px; background:#f3e8ff; color:#7c3aed; font-size:14px; }
.home-visual-caption>span:nth-child(2) { display:grid; gap:1px; }
.home-visual-caption strong { color:#312e61; font-size:10px; }
.home-visual-caption small { color:#8993a5; font-size:8px; }
.home-visual-caption-dot { width:7px; height:7px; margin-inline-start:auto; border-radius:50%; background:#34d399; box-shadow:0 0 0 4px #d1fae5; }
.home-visual-float { position:absolute; z-index:3; display:flex; align-items:center; gap:8px; border:1px solid #ffffffed; border-radius:13px; background:#ffffffed; box-shadow:0 12px 28px #43358f1c; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); animation:home-card-float 5s ease-in-out infinite; }
.home-visual-float-calendar { top:15%; right:0; padding:9px 12px 9px 14px; }
.home-visual-float-calendar>span:first-child { width:26px; height:26px; display:grid; place-items:center; border-radius:9px; background:#dcfce7; color:#059669; font-size:14px; font-weight:800; }
.home-visual-float-calendar>span:last-child { display:grid; gap:1px; }
.home-visual-float strong { color:#334155; font-size:9px; }
.home-visual-float small { color:#94a3b8; font-size:8px; }
.home-visual-float-live { bottom:15%; left:0; padding:10px 13px; color:#526176; font-size:9px; font-weight:800; animation-delay:-2.5s; }
.home-visual-float-live i { width:7px; height:7px; border-radius:50%; background:#34d399; box-shadow:0 0 0 4px #d1fae5; }
.home-visual-spark { position:absolute; color:#a78bfa; animation:home-sparkle 3.2s ease-in-out infinite; }
.home-visual-spark-one { top:8%; left:15%; font-size:20px; }
.home-visual-spark-two { right:11%; bottom:8%; color:#22b8ba; font-size:24px; animation-delay:-1.6s; }
@keyframes home-card-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-7px); } }
@keyframes home-sparkle { 0%,100% { opacity:.55; transform:scale(.85) rotate(0); } 50% { opacity:1; transform:scale(1.12) rotate(18deg); } }
.hero-orb { position:absolute; z-index:-1; display:block; border-radius:50%; filter:blur(2px); pointer-events:none; animation:home-orb-float 9s ease-in-out infinite; }
.hero-orb-one { top:35px; right:43%; width:95px; height:95px; background:radial-gradient(circle at 35% 30%,#fff, #a78bfa55 70%,#a78bfa08); }
.hero-orb-two { right:5%; bottom:33px; width:48px; height:48px; background:radial-gradient(circle at 35% 30%,#fff,#67e8f966 75%,#67e8f900); animation-delay:-3s; }
.hero-orb-three { top:16%; left:8%; width:24px; height:24px; background:radial-gradient(circle at 35% 30%,#fff,#c4b5fd88 70%,#c4b5fd00); animation-delay:-5s; }
@keyframes home-orb-float { 0%,100% { transform:translate3d(0,0,0) scale(1); } 50% { transform:translate3d(9px,-18px,0) scale(1.07); } }
.home-hero .hero-copy { z-index:2; }
.home-hero .hero-eyebrow { width:max-content; display:inline-flex; align-items:center; gap:7px; padding:8px 13px; border:1px solid #ddd6fe; border-radius:99px; background:#ffffffa8; color:#6d28d9; box-shadow:0 4px 14px #4f46e50b; }
.home-hero .hero-eyebrow svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.home-hero .home-hero-title { position:relative; display:grid; gap:1px; max-width:660px; margin:20px 0 0; color:#1e1b4b; font-size:clamp(33px,4.4vw,55px); line-height:1.3; letter-spacing:-.035em; }
.hero-laptop { position:absolute; top:-17px; right:0; width:27px; height:27px; fill:none; stroke:#8b5cf6; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.home-hero .hero-title-accent { color:#6d28d9; }
.home-hero-subtitle { margin:10px 0 0; color:#7c3aed; font-size:18px; font-weight:800; }
.home-hero .hero-copy>p { max-width:495px; margin-top:11px; color:#64748b; font-size:14px; line-height:1.9; }
.home-hero .hero-actions { margin-top:23px; gap:11px; }
.home-hero .hero-actions .button { min-height:46px; padding-inline:19px; }
.home-hero .button-primary { color:#fff; background:linear-gradient(125deg,#6d28d9,#4f46e5); box-shadow:0 9px 20px #6366f133; }
.home-hero .button-primary:hover { background:linear-gradient(125deg,#5b21b6,#4338ca); box-shadow:0 12px 24px #6366f13d; }
.home-hero .button-quiet { color:#4f46e5; border-color:#c7d2fe; background:#ffffffb8; }
.home-hero .button-quiet:hover { background:white; }
.home-overview { margin-top:35px; }
.home-overview .public-section-heading { margin-bottom:15px; }
.home-overview .public-section-heading h2,.home-steps-section .public-section-heading h2 { font-size:20px; }
.home-overview-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:17px; }
.home-hover-card { transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease; }
.home-hover-card:hover { transform:translateY(-5px); border-color:#ddd6fe; box-shadow:0 18px 36px #312e8110; }
.home-room-card { min-height:243px; position:relative; display:flex; align-items:center; gap:19px; overflow:hidden; padding:27px; }
.home-card-icon { width:48px; height:48px; flex:none; display:grid; place-items:center; border-radius:15px; }
.home-card-icon svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.tablet-icon { align-self:flex-start; color:#6d28d9; background:linear-gradient(145deg,#f3e8ff,#ede9fe); }
.home-room-copy { position:relative; z-index:1; }
.home-card-kicker { color:#8b5cf6; font-size:10px; font-weight:800; letter-spacing:.02em; }
.home-room-copy h3,.home-status-heading h3 { margin:4px 0 7px; color:#1e1b4b; font-size:17px; font-weight:800; }
.home-room-copy p { max-width:435px; margin:0; color:#64748b; font-size:11px; line-height:1.9; }
.home-equipment { display:flex; gap:7px; flex-wrap:wrap; margin-top:15px; }
.home-equipment span { padding:5px 9px; border-radius:99px; background:#f5f3ff; color:#6d28d9; font-size:9px; font-weight:700; }
.home-room-decoration { position:absolute; left:17px; bottom:1px; color:#e9d5ff; font-size:99px; line-height:1; }
.home-status-card { min-height:243px; padding:23px; }
.home-status-heading { display:flex; align-items:center; gap:11px; }
.status-icon { color:#0891b2; background:linear-gradient(145deg,#cffafe,#ecfeff); }
.home-status-heading>div:nth-child(2) { flex:1; }
.home-status-heading h3 { margin:2px 0 0; font-size:15px; }
.home-status-link { width:34px; height:34px; display:grid; place-items:center; border-radius:11px; background:#f8fafc; color:#6366f1; }
.home-status-link svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.home-status-total { display:flex; align-items:baseline; gap:8px; margin:19px 0 11px; }
.home-status-total strong { color:#4f46e5; font-size:27px; line-height:1; font-weight:800; }
.home-status-total span { color:#64748b; font-size:10px; }
.home-status-note { margin:0 0 11px; color:#64748b; font-size:10px; line-height:1.7; }
.home-progress { height:9px; display:flex; overflow:hidden; gap:3px; border-radius:99px; background:#f1f5f9; }
.home-progress span { min-width:0; border-radius:99px; transition:width 1.15s cubic-bezier(.2,.8,.2,1); }
.progress-available { background:#10b981; }
.progress-booked { background:#8b5cf6; }
.progress-cancelled { background:#f43f5e; }
.home-status-legend { display:flex; justify-content:space-between; gap:7px; margin-top:15px; }
.home-status-legend>span { display:flex; align-items:center; gap:5px; color:#64748b; font-size:9px; white-space:nowrap; }
.home-status-legend strong { color:#334155; font-size:10px; }
.legend-dot { width:8px; height:8px; flex:none; border-radius:50%; }
.legend-available { background:#10b981; }
.legend-booked { background:#8b5cf6; }
.legend-cancelled { background:#f43f5e; }
.home-week-dates { display:block; margin-top:12px; color:#a1aab8; font-size:9px; }
.home-steps-section { margin-top:53px; }
.home-steps-section .public-section-heading { margin-bottom:22px; }
.home-steps-section .public-section-heading p { margin-top:5px; }
.home-steps { position:relative; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; isolation:isolate; }
.home-steps .step-card { min-height:206px; position:relative; z-index:1; padding:21px 22px; }
.steps-connector { position:absolute; z-index:-1; top:47px; right:16.5%; left:16.5%; border-top:2px dotted #c4b5fd; transform:scaleX(0); transform-origin:right center; }
.home-steps.is-connected .steps-connector { animation:draw-home-connector 1.05s cubic-bezier(.22,.8,.2,1) forwards; }
@keyframes draw-home-connector { to { transform:scaleX(1); } }
.step-icon { width:49px; height:49px; display:grid; place-items:center; margin-bottom:15px; border-radius:16px; }
.step-icon svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.step-icon-violet { color:#7c3aed; background:#f3e8ff; }
.step-icon-cyan { color:#0891b2; background:#cffafe; }
.step-icon-green { color:#059669; background:#d1fae5; }
.home-steps .step-number { position:absolute; top:27px; left:21px; width:31px; height:31px; margin:0; border-radius:10px; color:#a78bfa; background:#faf5ff; font-size:10px; }
.home-steps .step-card h3 { margin:0 0 7px; color:#1e293b; font-size:14px; }
.home-steps .step-card p { max-width:270px; color:#7c8799; font-size:11px; line-height:1.85; }
.home-reveal { opacity:1; transform:none; filter:none; }
.motion-ready .home-reveal { opacity:0; transform:translateY(15px); filter:blur(5px); transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1),filter .65s ease; }
.motion-ready .home-reveal.is-visible { opacity:1; transform:translateY(0); filter:blur(0); }
.motion-ready .home-hero-title { opacity:0; filter:blur(8px); transform:translateY(8px); transition:opacity .85s ease,filter .85s ease,transform .85s ease; }
.motion-ready .home-hero-title.is-visible { opacity:1; filter:blur(0); transform:translateY(0); }
.home-hero .hero-actions .home-reveal:nth-child(1) { transition-delay:.08s; }
.home-hero .hero-actions .home-reveal:nth-child(2) { transition-delay:.17s; }
.home-steps .home-reveal:nth-of-type(2) { transition-delay:.1s; }
.home-steps .home-reveal:nth-of-type(3) { transition-delay:.23s; }
.home-steps .home-reveal:nth-of-type(4) { transition-delay:.36s; }
.home-public-body .site-footer { min-height:65px; padding-top:21px; font-size:11px; }
@media (prefers-reduced-motion: reduce) {
  .home-visual-float,.home-visual-spark { animation:none; }
}

.backup-page { max-width:1120px; margin-inline:auto; }
.backup-heading { align-items:center; padding:7px 0 21px; }
.backup-heading h1 { margin:4px 0 0; color:#172554; font-size:clamp(22px,2.5vw,29px); font-weight:800; }
.backup-heading p { margin:6px 0 0; color:#64748b; font-size:13px; }
.backup-eyebrow { color:#7c3aed; font-size:11px; font-weight:800; }
.backup-heading-icon { width:52px; height:52px; flex:none; display:grid; place-items:center; border:1px solid #e9e5ff; border-radius:17px; background:linear-gradient(145deg,#f5f3ff,#eef2ff); color:#6550bd; }
.backup-heading-icon svg,.backup-card-icon svg,.backup-stat-icon svg,.backup-action svg,.backup-warning svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.backup-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; margin-bottom:19px; }
.backup-stat { display:flex; min-height:91px; align-items:center; gap:13px; padding:16px; }
.backup-stat-icon { width:42px; height:42px; flex:none; display:grid; place-items:center; border-radius:14px; }
.backup-stat-icon svg { width:21px; height:21px; }
.backup-stat-violet { color:#6d45c3; background:#f1eaff; }
.backup-stat-cyan { color:#087e95; background:#e1f8fb; }
.backup-stat-green { color:#13815f; background:#e2f7ee; }
.backup-stat>span:last-child { display:grid; gap:3px; }
.backup-stat small { color:#8190a4; font-size:11px; font-weight:700; }
.backup-stat strong { color:#1e293b; font-size:21px; font-weight:800; line-height:1.1; }
.backup-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:stretch; }
.backup-card { min-width:0; padding:clamp(20px,2.6vw,29px); }
.backup-card-top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:17px; }
.backup-card-icon { width:49px; height:49px; display:grid; place-items:center; border-radius:16px; }
.backup-card-icon svg { width:24px; height:24px; }
.backup-card-download { color:#6845c1; background:linear-gradient(145deg,#f1eaff,#eae7ff); }
.backup-card-restore { color:#0d8297; background:linear-gradient(145deg,#e1f8fb,#e6f5ff); }
.backup-card-tag { padding:6px 10px; border:1px solid #e9e2ff; border-radius:99px; background:#faf8ff; color:#7554c6; font-size:10px; font-weight:800; }
.backup-restore-tag { border-color:#d9f1f4; background:#f2fcfd; color:#16839a; }
.backup-card h2 { margin:0; color:#1e1b4b; font-size:19px; font-weight:800; }
.backup-card>p { min-height:64px; margin:8px 0 17px; color:#718096; font-size:12px; line-height:1.9; }
.backup-includes { display:grid; gap:10px; margin:0 0 19px; padding:0; list-style:none; }
.backup-includes li { display:flex; align-items:center; gap:8px; color:#526176; font-size:11px; }
.backup-includes li span { width:19px; height:19px; display:grid; place-items:center; border-radius:7px; background:#e8f8f1; color:#13815f; font-size:12px; font-weight:800; }
.backup-action { width:100%; min-height:46px; gap:9px; border-radius:12px; }
.backup-action svg { width:18px; height:18px; }
.backup-footnote { display:block; margin-top:11px; color:#9aa4b3; font-size:10px; text-align:center; }
.backup-restore-form { display:grid; gap:9px; }
.backup-file-label { display:flex; align-items:center; justify-content:space-between; gap:9px; margin-top:2px; color:#475569; font-size:11px; font-weight:800; }
.backup-file-label span { padding:3px 7px; border-radius:6px; background:#f1f5f9; color:#64748b; font-size:9px; }
.backup-file-input,.backup-confirm-input { width:100%; min-height:43px; border:1px solid #e1e7ef; border-radius:10px; padding:8px 10px; background:#fff; color:#475569; font-size:11px; }
.backup-file-input::file-selector-button { margin-inline-end:10px; padding:5px 9px; border:0; border-radius:7px; background:#f1efff; color:#5c49a7; font:inherit; font-weight:700; cursor:pointer; }
.backup-file-input:focus,.backup-confirm-input:focus { border-color:#8b7ada; outline:3px solid #8b7ada20; }
.backup-acknowledge { display:flex; align-items:flex-start; gap:8px; margin:6px 0 2px; color:#66758a; font-size:10px; line-height:1.7; cursor:pointer; }
.backup-acknowledge input { width:15px; height:15px; flex:none; margin:1px 0 0; accent-color:#6d5ac5; }
.backup-confirm-input { min-height:40px; }
.backup-warning { display:flex; align-items:flex-start; gap:9px; margin-top:15px; padding:11px 12px; border:1px solid #fde4d2; border-radius:11px; background:#fff9f4; color:#986333; font-size:10px; line-height:1.8; }
.backup-warning svg { width:17px; height:17px; flex:none; margin-top:1px; color:#d58a32; }
.backup-alert { margin:0 0 15px; }
.backup-extension-notice { margin:0 0 16px; padding:12px 15px; border:1px solid #f5d9a7; border-radius:12px; background:#fffbeb; color:#8a5a12; font-size:12px; line-height:1.8; }
.backup-extension-notice code { padding:2px 5px; border-radius:5px; background:#fef3c7; direction:ltr; unicode-bidi:isolate; }
@media (max-width: 900px) {
  .backup-cards { grid-template-columns:1fr; }
  .backup-card>p { min-height:0; }
}
@media (max-width: 520px) {
  .backup-heading { align-items:flex-start; }
  .backup-heading-icon { width:43px; height:43px; border-radius:14px; }
  .backup-summary { grid-template-columns:1fr; gap:9px; }
  .backup-stat { min-height:74px; padding:12px 14px; }
  .backup-stat-icon { width:38px; height:38px; }
  .backup-card { padding:19px 16px; }
  .backup-card h2 { font-size:17px; }
}

@media (max-width: 980px) {
  .dashboard-layout { grid-template-columns:210px minmax(0,1fr); }
  .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-grid { grid-template-columns:minmax(0,1fr); }
  .hero { grid-template-columns:1fr .7fr; }
  .home-topbar .topbar-inner { padding-inline:19px; }
  .home-nav { gap:0; }
  .home-nav-link { padding-inline:10px; }
  .home-hero { grid-template-columns:1.1fr .8fr; padding-inline:42px; }
  .home-hero .home-hero-title { font-size:clamp(34px,5vw,49px); }
  .home-hero-art { width:min(100%,340px); }
  .home-room-card { padding:21px; }
}
@media (max-width: 700px) {
  .topbar { height:62px; }
  .topbar-inner { padding:0 15px; }
  .topbar-user { display:none; }
  .menu-toggle { display:inline-block; }
  .topbar-actions { gap:7px; }
  .dashboard-layout { display:block; min-height:calc(100vh - 112px); }
  .sidebar { display:none; position:absolute; z-index:30; top:62px; right:0; left:0; border:0; border-bottom:1px solid #e2e8f0; box-shadow:0 18px 25px #0f172a14; padding:14px; }
  .sidebar.is-open { display:block; }
  .sidebar nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sidebar-note { display:none; }
  .dashboard-main { padding:22px 15px 38px; }
  .page-heading { flex-direction:column; margin-bottom:18px; }
  .heading-actions { width:100%; }
  .heading-actions .button { flex:1; }
  .stats-grid { gap:10px; }
  .stat-card { min-height:119px; padding:15px; }
  .stat-value { font-size:25px; }
  .stat-icon { left:12px; top:12px; width:32px; height:32px; }
  .card-pad,.form-card { padding:17px; }
  .booking-statistics-card { padding:15px; }
  .booking-statistics-heading { align-items:flex-start; flex-direction:column; }
  .booking-statistics-heading .button { width:100%; }
  .booking-statistics-summary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .booking-statistics-summary article { padding:12px; }
  .booking-statistics-summary article strong { font-size:20px; }
  .form-grid { grid-template-columns:1fr; }
  .field-full { grid-column:auto; }
  .filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .filter-field { min-width:0; }
  .table-wrap.mobile-cards .data-table,.table-wrap.mobile-cards .data-table tbody,.table-wrap.mobile-cards .data-table tr,.table-wrap.mobile-cards .data-table td { display:block; width:100%; min-width:0; }
  .table-wrap.mobile-cards .data-table { min-width:0; }
  .table-wrap.mobile-cards .data-table thead { display:none; }
  .table-wrap.mobile-cards .data-table tr { margin:0 0 10px; padding:8px 12px; border:1px solid #edf0f5; border-radius:12px; background:#fff; }
  .table-wrap.mobile-cards .data-table td { display:flex; justify-content:space-between; gap:13px; padding:8px 0; text-align:left; border-bottom:1px solid #f1f5f9; }
  .table-wrap.mobile-cards .data-table td:last-child { border-bottom:0; }
  .table-wrap.mobile-cards .data-table td::before { content:attr(data-label); text-align:right; color:#94a3b8; font-size:10px; font-weight:700; }
  .public-container { padding:25px 15px 45px; }
  .hero { min-height:0; grid-template-columns:1fr; padding:31px 23px; border-radius:21px; }
  .hero h1 { font-size:34px; }
  .hero p { font-size:12px; }
  .hero-art { display:none; }
  .public-cards,.steps-grid { grid-template-columns:1fr; }
  .public-section-heading { align-items:start; flex-direction:column; }
  .login-card { padding:23px; }
  .home-topbar { height:68px; }
  .home-topbar .topbar-inner { padding-inline:15px; }
  .home-brand { gap:9px; }
  .home-brand .brand-mark { width:39px; height:39px; }
  .brand-copy>span { font-size:10px; }
  .brand-copy small { font-size:9px; }
  .home-nav { display:none; }
  .home-login-button { min-height:37px; padding-inline:12px; font-size:11px; }
  .home-login-button svg { display:none; }
  .home-menu-toggle { display:grid; width:38px; height:38px; }
  .home-drawer-backdrop { position:fixed; z-index:45; inset:68px 0 0; display:block; background:#0f172a55; opacity:0; visibility:hidden; transition:opacity .22s,visibility .22s; }
  .home-mobile-drawer { position:fixed; z-index:46; top:68px; right:0; left:0; display:grid; gap:7px; padding:14px 16px 19px; border-bottom:1px solid #e2e8f0; border-radius:0 0 19px 19px; background:#fffffffa; box-shadow:0 18px 38px #0f172a1c; opacity:0; visibility:hidden; transform:translateY(-9px); transition:opacity .22s,visibility .22s,transform .22s; }
  .home-mobile-drawer.is-open { opacity:1; visibility:visible; transform:translateY(0); }
  .home-drawer-backdrop.is-open { opacity:1; visibility:visible; }
  .home-mobile-drawer .home-nav-link { min-height:43px; padding:11px 13px; }
  .home-mobile-drawer .button { margin-top:5px; }
  .home-public-body .public-container { padding:19px 14px 44px; }
  .home-hero { min-height:0; grid-template-columns:1fr; padding:34px 23px 31px; border-radius:23px; }
  .home-hero::after { left:-108px; bottom:-217px; }
  .home-hero .home-hero-art { display:grid; width:min(100%,330px); aspect-ratio:1.3; margin:-4px auto -5px; }
  .home-visual-card { inset:7% 10% 6%; border-radius:20px; }
  .home-visual-scene { margin-top:5px; border-radius:13px; }
  .home-visual-caption { padding:6px 8px; border-radius:10px; }
  .home-visual-caption-icon { width:24px; height:24px; }
  .home-visual-float-calendar { top:13%; right:0; padding:7px 9px 7px 10px; }
  .home-visual-float-live { bottom:12%; left:0; padding:8px 10px; }
  .home-hero .hero-copy>p { font-size:12px; }
  .home-hero .home-hero-title { margin-top:18px; font-size:clamp(32px,9vw,44px); line-height:1.37; }
  .hero-laptop { top:-17px; width:23px; height:23px; }
  .home-hero-subtitle { font-size:16px; }
  .home-hero .hero-actions .button { min-height:43px; padding-inline:14px; font-size:11px; }
  .home-overview { margin-top:30px; }
  .home-overview-grid { grid-template-columns:1fr; gap:12px; }
  .home-room-card { min-height:0; align-items:flex-start; gap:12px; padding:19px; }
  .home-room-card .tablet-icon { width:41px; height:41px; border-radius:13px; }
  .home-room-copy h3 { font-size:15px; }
  .home-room-copy p { font-size:10px; }
  .home-equipment { gap:5px; }
  .home-equipment span { padding:5px 7px; font-size:8px; }
  .home-room-decoration { left:7px; font-size:75px; }
  .home-status-card { min-height:0; padding:19px; }
  .home-status-legend { gap:4px; }
  .home-status-legend>span { gap:4px; font-size:8px; }
  .home-steps-section { margin-top:40px; }
  .home-steps { grid-template-columns:1fr; gap:11px; padding-right:13px; }
  .home-steps .step-card { min-height:143px; padding:17px 18px; }
  .home-steps .step-icon { width:42px; height:42px; margin-bottom:10px; border-radius:14px; }
  .home-steps .step-number { top:20px; left:17px; }
  .steps-connector { top:35px; right:33px; bottom:35px; left:auto; border-top:0; border-right:2px dotted #c4b5fd; transform:scaleY(0); transform-origin:top center; }
  .home-steps.is-connected .steps-connector { animation:draw-home-connector-mobile .95s cubic-bezier(.22,.8,.2,1) forwards; }
  @keyframes draw-home-connector-mobile { to { transform:scaleY(1); } }
  .home-steps .step-card h3 { font-size:13px; }
  .home-steps .step-card p { font-size:10px; }
}
@media (max-width: 700px) {
  .schedule-heading { align-items:stretch; gap:13px; }
  .schedule-title-line { gap:8px; }
  .schedule-heading h1 { font-size:22px; }
  .schedule-current-week { align-self:flex-start; }
  .schedule-card { padding:14px; border-radius:15px; }
  .schedule-toolbar { align-items:stretch; flex-direction:column; gap:12px; padding-bottom:15px; }
  .schedule-week-heading h2 { font-size:15px; }
  .schedule-week-nav { display:grid; grid-template-columns:1fr 1fr; }
  .schedule-week-nav a { min-height:37px; }
  .schedule-legend { gap:10px 13px; padding:11px; font-size:10px; }
  .schedule-legend-title { width:100%; }
  .schedule-filters { align-items:stretch; flex-wrap:wrap; gap:8px; }
  .schedule-search { max-width:none; flex-basis:100%; }
  .schedule-filter-select { flex:1; justify-content:space-between; }
  .schedule-search-hint { align-self:center; }
  .schedule-day-tabs { display:flex; gap:7px; overflow-x:auto; overscroll-behavior-inline:contain; padding:2px 0 9px; scrollbar-width:none; -ms-overflow-style:none; }
  .schedule-day-tab { min-width:69px; min-height:53px; display:grid; align-content:center; justify-items:center; gap:2px; padding:6px 9px; border:1px solid #eceaf3; border-radius:11px; background:#fff; color:#646779; cursor:pointer; }
  .schedule-day-tab span { font-size:10px; font-weight:800; white-space:nowrap; }
  .schedule-day-tab small { color:#9a9dad; font-size:9px; }
  .schedule-day-tab[aria-selected="true"] { border-color:#b7a4f5; background:#f3efff; color:#5d40ad; box-shadow:0 3px 10px #6d4bc012; }
  .schedule-day-tab.is-today:not([aria-selected="true"]) { border-color:#d9cefb; }
  .schedule-table-wrap { display:none; }
  .schedule-mobile-days { display:block; }
  .schedule-mobile-day { display:grid; gap:8px; padding-top:4px; }
  .schedule-mobile-day[hidden] { display:none; }
  .schedule-mobile-slot { display:flex; min-height:74px; align-items:center; gap:9px; padding:8px; border:1px solid #eeedf3; border-radius:12px; background:#fff; }
  .schedule-mobile-period { width:69px; flex:none; color:#676a7d; font-size:10px; font-weight:800; }
  .schedule-mobile-slot .schedule-cell { min-height:56px; align-items:flex-start; padding:7px 9px; text-align:right; }
  .schedule-mobile-slot .schedule-cell-status { justify-content:flex-start; }
  .schedule-mobile-slot .schedule-cell-action { margin-right:20px; }
  .schedule-mobile-slot .schedule-booked .schedule-teacher { max-width:100%; }
  .schedule-cell[data-tooltip]::after { display:none; }
  .schedule-page.is-loading .schedule-loading-skeleton { inset:270px 14px auto; }
  .schedule-skeleton-row { grid-template-columns:repeat(3,minmax(45px,1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .motion-ready .home-reveal,.motion-ready .home-hero-title { opacity:1; transform:none; filter:none; }
}

.dashboard-welcome { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; }
.dashboard-welcome h1 { margin:4px 0 3px; color:#172554; font-size:clamp(23px,2.4vw,30px); font-weight:800; }
.dashboard-welcome h1 span { color:#8b5cf6; font-size:.75em; }
.dashboard-welcome p { margin:0; color:#64748b; font-size:13px; }
.dashboard-welcome p span { padding:0 4px; color:#cbd5e1; }
.dashboard-eyebrow { color:#8b5cf6; font-size:10px; font-weight:800; letter-spacing:.03em; }
.dashboard-filter { display:flex; align-items:center; flex-wrap:wrap; gap:11px; margin-bottom:18px; padding:10px 13px; border:1px solid #edf0f5; border-radius:15px; background:#fff; box-shadow:0 5px 20px rgba(15,23,42,.02); }
.dashboard-filter-label { color:#64748b; font-size:12px; font-weight:800; }
.dashboard-range-buttons { display:inline-flex; padding:3px; border-radius:11px; background:#f1f5f9; }
.dashboard-range-buttons button { min-height:33px; padding:6px 13px; border:0; border-radius:8px; background:transparent; color:#64748b; cursor:pointer; font-size:11px; font-weight:700; transition:background .18s,color .18s,box-shadow .18s; }
.dashboard-range-buttons button[aria-pressed="true"] { background:#fff; color:#4f46e5; box-shadow:0 2px 7px #0f172a12; }
.dashboard-range-buttons button:focus-visible,.dashboard-quick-actions button:focus-visible { outline:3px solid #a5b4fc; outline-offset:2px; }
.dashboard-custom-date { display:grid; gap:3px; color:#64748b; font-size:10px; font-weight:700; }
.dashboard-custom-date input { min-height:34px; border:1px solid #e2e8f0; border-radius:8px; padding:5px 8px; color:#334155; font-size:11px; }
.dashboard-apply-filter { min-height:34px; padding:5px 12px; }
.dashboard-period-label { margin-inline-start:auto; color:#94a3b8; font-size:10px; }
.dashboard-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.dashboard-kpi { min-width:0; min-height:158px; padding:16px 17px 13px; overflow:hidden; animation:dashboard-card-in .48s both; }
.dashboard-kpi:nth-child(2) { animation-delay:.06s; }
.dashboard-kpi:nth-child(3) { animation-delay:.12s; }
.dashboard-kpi:nth-child(4) { animation-delay:.18s; }
.dashboard-kpi:nth-child(5) { animation-delay:.24s; }
.dashboard-kpi:nth-child(6) { animation-delay:.3s; }
@keyframes dashboard-card-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
.dashboard-kpi-top { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-bottom:12px; }
.dashboard-kpi-icon { width:37px; height:37px; display:grid; flex:none; place-items:center; border-radius:12px; }
.dashboard-kpi-icon svg { width:19px; height:19px; }
.dashboard-kpi-trend { display:inline-flex; align-items:center; gap:3px; padding:4px 7px; border-radius:20px; background:#f8fafc; color:#94a3b8; font-size:10px; font-weight:800; white-space:nowrap; }
.dashboard-kpi-trend.is-positive { background:#ecfdf5; color:#059669; }
.dashboard-kpi-trend.is-negative { background:#fff1f2; color:#e11d48; }
.dashboard-kpi-trend.is-neutral { background:#f1f5f9; color:#64748b; }
.dashboard-kpi-label { display:block; color:#64748b; font-size:11px; font-weight:700; }
.dashboard-kpi-value { display:block; margin:3px 0 11px; color:#172554; font-size:30px; font-weight:800; line-height:1.1; font-variant-numeric:tabular-nums; }
.dashboard-kpi-value.is-loading { width:78px; min-height:31px; border-radius:6px; color:transparent; background:linear-gradient(100deg,#f1f5f9 25%,#e9e5f7 45%,#f1f5f9 65%); background-size:220% 100%; animation:chart-shimmer 1.2s linear infinite; }
.dashboard-kpi-footer { display:flex; align-items:center; justify-content:space-between; gap:7px; border-top:1px solid #f1f5f9; padding-top:8px; }
.dashboard-kpi-comparison { overflow:hidden; color:#94a3b8; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-sparkline { width:82px; height:27px; flex:none; }
.dashboard-sparkline svg { display:block; width:100%; height:100%; overflow:visible; }
.dashboard-charts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; margin-bottom:18px; }
.dashboard-chart-card { min-width:0; padding:17px 18px 15px; animation:dashboard-card-in .45s .12s both; }
.dashboard-chart-wide { grid-column:span 2; }
.dashboard-chart-card .section-title { margin-bottom:12px; font-size:14px; }
.dashboard-chart-card .section-title small { font-size:10px; }
.dashboard-chart-card .chart-wrap { height:248px; }
.dashboard-chart-card .chart-loading { overflow:hidden; }
.dashboard-chart-card .chart-loading::after { content:""; position:absolute; z-index:2; inset:0; border-radius:10px; background:linear-gradient(100deg,#f8fafc 25%,#ede9fe 45%,#f8fafc 65%); background-size:220% 100%; animation:chart-shimmer 1.2s linear infinite; }
.dashboard-chart-card .chart-loading::before { content:""; position:absolute; z-index:1; inset:14px 10px; border-radius:7px; opacity:.65; background:repeating-linear-gradient(to bottom,transparent 0 37px,#e9edf5 38px 39px); }
.dashboard-doughnut-wrap { height:205px !important; max-width:270px; margin:0 auto; }
.dashboard-chart-legend { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 10px; padding:3px 2px 0; }
.dashboard-legend-item { display:flex; align-items:center; gap:6px; min-width:0; color:#64748b; font-size:10px; }
.dashboard-legend-item i { width:8px; height:8px; flex:none; border-radius:50%; }
.dashboard-legend-item span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-legend-item strong { margin-inline-start:auto; color:#334155; font-size:10px; }
.dashboard-heatmap-wrap { height:248px !important; }
.dashboard-pending-card { padding:19px 21px; }
.dashboard-section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.dashboard-section-heading h2 { margin:2px 0 0; color:#1e293b; font-size:16px; font-weight:800; }
.dashboard-section-heading .link-button { flex:none; font-size:11px; }
.dashboard-pending-list { display:grid; }
.dashboard-pending-item { display:flex; align-items:center; gap:12px; min-height:72px; border-bottom:1px solid #f1f5f9; }
.dashboard-pending-item:last-child { border-bottom:0; }
.dashboard-avatar { width:39px; height:39px; display:grid; flex:none; place-items:center; border:3px solid #fff; border-radius:50%; background:linear-gradient(135deg,#ede9fe,#dbeafe); box-shadow:0 0 0 1px #e8e5fa; color:#6d28d9; font-size:15px; font-weight:800; }
.dashboard-report-copy { display:grid; flex:1; min-width:0; gap:4px; }
.dashboard-report-title { overflow:hidden; color:#1e293b; font-size:12px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-report-title:hover { color:#4f46e5; }
.dashboard-report-copy > span { overflow:hidden; color:#94a3b8; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-report-time { flex:none; color:#94a3b8; font-size:10px; white-space:nowrap; }
.dashboard-quick-actions { display:flex; align-items:center; gap:6px; flex:none; }
.dashboard-quick-actions form { margin:0; }
.dashboard-quick-actions .button { min-height:32px; padding:5px 9px; border-radius:8px; font-size:10px; }
.dashboard-quick-actions .button-quiet { color:#be123c; background:#fff1f2; border-color:#ffe4e6; }
.dashboard-activity { margin-top:17px; padding-top:17px; border-top:1px solid #edf0f5; }
.dashboard-activity .dashboard-section-heading { margin-bottom:13px; }
.dashboard-timeline { position:relative; display:grid; gap:0; margin:0; padding:0 5px 0 0; list-style:none; }
.dashboard-timeline::before { content:""; position:absolute; top:9px; bottom:9px; right:5px; width:1px; background:#e9eaf2; }
.dashboard-timeline-item { position:relative; display:flex; gap:13px; min-height:47px; padding:0 0 13px; }
.dashboard-timeline-item:last-child { min-height:30px; padding-bottom:0; }
.dashboard-timeline-dot { z-index:1; width:11px; height:11px; flex:none; margin:3px 0 0; border:3px solid #ede9fe; border-radius:50%; background:#8b5cf6; }
.dashboard-timeline-item > div { min-width:0; }
.dashboard-timeline-item p { margin:0 0 3px; color:#64748b; font-size:11px; line-height:1.6; }
.dashboard-timeline-item p strong { color:#334155; }
.dashboard-timeline-item time { color:#a0a9b7; font-size:9px; }
.dashboard-empty { display:grid; justify-items:center; padding:22px 15px 25px; text-align:center; }
.dashboard-empty-art { width:62px; height:62px; display:grid; place-items:center; margin-bottom:8px; border-radius:21px; background:#f5f3ff; }
.dashboard-empty-art svg { width:42px; height:42px; stroke:#8b5cf6; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.dashboard-empty h3 { margin:0 0 4px; color:#334155; font-size:13px; font-weight:800; }
.dashboard-empty p { margin:0; color:#94a3b8; font-size:10px; }
.dashboard-empty-compact { padding:13px 10px 4px; }
.dashboard-empty-compact .dashboard-empty-art { width:48px; height:48px; border-radius:16px; }
.dashboard-empty-compact .dashboard-empty-art svg { width:34px; height:34px; }
.dashboard-reject-dialog { width:min(440px,calc(100% - 28px)); max-width:none; padding:0; border:1px solid #e8eaf2; border-radius:18px; box-shadow:0 24px 80px #0f172a33; color:#334155; }
.dashboard-reject-dialog::backdrop { background:rgba(15,23,42,.42); backdrop-filter:blur(3px); }
.dashboard-reject-form { display:grid; gap:9px; padding:22px; }
.dashboard-reject-form h2 { margin:0; color:#172554; font-size:18px; }
.dashboard-reject-form p { margin:0 0 5px; color:#64748b; font-size:12px; }
.dashboard-reject-form label { color:#334155; font-size:11px; font-weight:800; }
.dashboard-reject-form textarea { width:100%; min-height:100px; resize:vertical; border:1px solid #dfe5ed; border-radius:10px; padding:10px; outline:0; }
.dashboard-reject-form textarea:focus { border-color:#a5b4fc; box-shadow:0 0 0 3px #6366f11a; }
.dashboard-reject-actions { display:flex; justify-content:flex-start; gap:8px; margin-top:5px; }

.users-page { --users-violet:#7043d5; --users-ink:#25213a; --users-muted:#9692a5; color:var(--users-ink); }
.users-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:2px 0 23px; }
.users-heading h1 { display:flex; align-items:center; gap:11px; margin:3px 0 3px; color:#282342; font-size:clamp(22px,2.4vw,29px); font-weight:800; }
.users-heading p { margin:0; color:#89869a; font-size:12px; }
.users-eyebrow { color:#8a69d6; font-size:10px; font-weight:800; }
.users-count { min-width:32px; padding:4px 9px; border-radius:20px; background:#f0eafe; color:#7149c8; font-size:12px; text-align:center; }
.users-add-button { min-height:43px; padding:10px 16px; background:linear-gradient(135deg,#8055e7,#6537c4); color:#fff; box-shadow:0 7px 15px #7043d52b; }
.users-add-button:hover { background:linear-gradient(135deg,#7146d7,#5930b5); }
.users-add-button svg,.users-search svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.users-toolbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:13px; margin-bottom:15px; border:1px solid #efedf4; border-radius:15px; background:#fff; box-shadow:0 4px 15px #1e163508; }
.users-search { position:relative; flex:1 1 250px; }
.users-search svg { position:absolute; top:50%; right:12px; color:#a09bab; transform:translateY(-50%); pointer-events:none; }
.users-search input,.users-toolbar select { width:100%; min-height:40px; padding:8px 12px; border:1px solid #ebe9f0; border-radius:10px; outline:0; background:#fff; color:#413d54; font-size:11px; }
.users-search input { padding-right:38px; }
.users-search input:focus,.users-toolbar select:focus { border-color:#bba7ed; box-shadow:0 0 0 3px #8055e714; }
.users-select { display:flex; min-height:40px; align-items:center; gap:7px; padding:0 9px; border:1px solid #ebe9f0; border-radius:10px; color:#8f8a9d; font-size:10px; }
.users-select select { min-width:87px; min-height:36px; padding:5px 3px; border:0; box-shadow:none; font-weight:700; }
.users-select.users-sort select { min-width:105px; }
.users-toolbar>select { width:auto; min-width:88px; }
.users-error { display:grid; gap:3px; padding:12px 15px; margin:-8px 0 15px; border:1px solid #fecdd3; border-radius:12px; background:#fff1f2; color:#be123c; font-size:12px; }
.users-error strong { font-size:12px; }
.users-table-card { overflow:visible; border:1px solid #efedf4; border-radius:16px; background:#fff; box-shadow:0 6px 22px #1e163508; }
.users-table-caption { min-height:63px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 18px; border-bottom:1px solid #f0eef4; }
.users-table-caption>div { display:flex; align-items:center; gap:9px; }
.users-table-caption h2 { margin:0; color:#302c46; font-size:14px; font-weight:800; }
.users-table-caption>div>span { color:#9b96a8; font-size:10px; }
.users-clear-filters { color:#7043d5; font-size:10px; font-weight:700; }
.users-table-wrap { width:100%; overflow:visible; }
.users-table { width:100%; border-collapse:collapse; text-align:right; }
.users-table th { padding:12px 13px; background:#faf9fc; color:#918ca0; font-size:10px; font-weight:800; white-space:nowrap; }
.users-table th:first-child { padding-right:18px; }
.users-table td { padding:13px; border-bottom:1px solid #f2f0f5; color:#5c586c; font-size:11px; vertical-align:middle; }
.users-table tbody tr:last-child td { border-bottom:0; }
.users-table tbody tr { animation:users-row-enter .35s both; animation-delay:calc(var(--row-index,0) * 45ms); }
.users-table tbody tr:hover { background:#fcfbfe; }
.users-table tbody tr:has(.users-actions[open]) { position:relative; z-index:9; }
.users-identity { display:flex; align-items:center; gap:10px; min-width:170px; }
.users-identity>span:last-child { display:grid; gap:2px; }
.users-identity strong { color:#312d43; font-size:11px; font-weight:800; }
.users-identity small { color:#a29dae; direction:ltr; font-size:10px; text-align:right; }
.users-avatar { width:38px; height:38px; flex:none; display:grid; place-items:center; border:2px solid #fff; border-radius:13px; background:linear-gradient(135deg,#ad8cf2,#6b45cd 80%); box-shadow:0 3px 8px #7043d52a; color:#fff; font-size:15px; font-weight:800; }
.users-role { display:inline-flex; align-items:center; justify-content:center; min-width:55px; padding:5px 10px; border-radius:30px; font-size:10px; font-weight:800; }
.users-role-admin { background:#f0eafe; color:#7142c8; }
.users-role-staff { background:#e3f9fc; color:#07869b; }
.users-switch-form { display:flex; align-items:center; gap:7px; }
.users-switch { width:35px; height:20px; position:relative; padding:0; border:0; border-radius:20px; background:#d9d6e0; cursor:pointer; transition:background .2s,box-shadow .2s; }
.users-switch span { position:absolute; top:3px; right:3px; width:14px; height:14px; border-radius:50%; background:#fff; box-shadow:0 1px 3px #0002; transition:transform .2s; }
.users-switch.is-on { background:#2fb779; animation:users-switch-pulse .38s ease-out; }
.users-switch.is-on span { transform:translateX(-15px); }
.users-switch:focus-visible { outline:3px solid #8055e744; outline-offset:2px; }
.users-switch:disabled { cursor:not-allowed; opacity:.55; }
.users-status { color:#a29daa; font-size:10px; }
.users-status.is-active { color:#16865a; }
.users-muted { color:#aaa6b2; font-size:10px; }
.users-report-count { display:inline-grid; min-width:25px; height:25px; place-items:center; border-radius:8px; background:#f6f3fc; color:#6d50ad; font-size:10px; font-weight:800; }
.users-actions { position:relative; width:max-content; }
.users-actions summary { width:30px; height:30px; display:grid; place-items:center; border:1px solid #efedf4; border-radius:9px; color:#777187; cursor:pointer; font-size:22px; line-height:1; list-style:none; }
.users-actions summary::-webkit-details-marker { display:none; }
.users-actions[open] summary { background:#f6f1ff; color:#7043d5; }
.users-actions-menu { position:absolute; z-index:8; top:35px; left:0; width:200px; padding:5px; border:1px solid #efedf4; border-radius:12px; background:#fff; box-shadow:0 12px 30px #21144221; }
.users-actions-menu a,.users-actions-menu button { width:100%; min-height:36px; display:flex; align-items:center; gap:9px; padding:7px 9px; border:0; border-radius:8px; background:transparent; color:#514d60; cursor:pointer; font-size:10px; text-align:right; }
.users-actions-menu a:hover,.users-actions-menu button:hover { background:#f8f6fc; }
.users-actions-menu button:disabled { cursor:not-allowed; opacity:.5; }
.users-actions-menu a span,.users-actions-menu button span { width:17px; color:#8865d0; text-align:center; font-size:15px; }
.users-actions-menu button span { color:#e04e64; }
.users-pagination { min-height:59px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 17px; border-top:1px solid #f0eef4; color:#9994a6; font-size:10px; }
.users-pagination>div { display:flex; align-items:center; gap:4px; }
.users-pagination a,.users-pagination>div>span { min-width:29px; height:29px; display:grid; place-items:center; padding:0 7px; border-radius:8px; color:#686377; }
.users-pagination a:hover { background:#f5f1fd; color:#7043d5; }
.users-pagination a.is-current { background:#7043d5; color:#fff; box-shadow:0 3px 8px #7043d533; }
.users-pagination>div>span.is-disabled { color:#c5c1cc; }
.users-empty { display:grid; justify-items:center; padding:48px 15px; color:#a29dae; text-align:center; }
.users-empty>span { width:46px; height:46px; display:grid; place-items:center; border-radius:15px; background:#f4effd; color:#865ed5; font-size:24px; }
.users-empty h2 { margin:11px 0 2px; color:#474257; font-size:14px; }
.users-empty p { margin:0; font-size:11px; }
.users-drawer-backdrop { position:fixed; z-index:80; inset:0; background:#15112470; opacity:0; pointer-events:none; transition:opacity .25s; }
.users-drawer-backdrop.is-open { opacity:1; pointer-events:auto; }
.users-drawer { width:min(445px,100%); height:100dvh; position:fixed; z-index:81; top:0; left:0; display:flex; flex-direction:column; background:#fff; box-shadow:10px 0 40px #17112622; transform:translateX(-105%); transition:transform .3s cubic-bezier(.2,.75,.25,1); }
.users-drawer.is-open { transform:translateX(0); }
.users-drawer-head { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:23px 24px 18px; border-bottom:1px solid #f0eef4; }
.users-drawer-head h2 { margin:3px 0 0; color:#2c2841; font-size:20px; font-weight:800; }
.users-drawer-close { width:34px; height:34px; display:grid; place-items:center; border:0; border-radius:10px; background:#f6f4f8; color:#726d80; cursor:pointer; font-size:24px; }
.users-drawer-form { flex:1; overflow:auto; display:grid; align-content:start; gap:17px; padding:22px 24px 28px; }
.users-form-field { display:grid; gap:7px; }
.users-form-field label { color:#39354b; font-size:11px; font-weight:800; }
.users-form-field input,.users-form-field select { width:100%; min-height:43px; padding:9px 12px; border:1px solid #e6e3ec; border-radius:10px; outline:0; background:#fff; color:#39354b; font-size:12px; }
.users-form-field input:focus,.users-form-field select:focus { border-color:#ae95e8; box-shadow:0 0 0 3px #8055e715; }
.users-form-field small { color:#9a95a7; font-size:10px; }
.users-form-field small[data-field-error]:not(:empty) { color:#d33b55; }
.users-form-field [aria-invalid="true"] { border-color:#e88495; }
.users-password-meter { height:5px; overflow:hidden; border-radius:10px; background:#f0edf3; }
.users-password-meter span { width:0; height:100%; display:block; border-radius:10px; background:#d54c59; transition:width .2s,background .2s; }
.users-password-meter span[data-strength="weak"] { background:#e54e5d; }
.users-password-meter span[data-strength="medium"] { background:#e7a72e; }
.users-password-meter span[data-strength="strong"] { background:#21a66a; }
.users-active-control { display:flex; align-items:center; gap:11px; padding:13px; border:1px solid #efedf4; border-radius:11px; cursor:pointer; }
.users-active-control input { position:absolute; opacity:0; }
.users-checkbox { width:19px; height:19px; display:grid; flex:none; place-items:center; border:1px solid #d7d2e0; border-radius:6px; background:#fff; }
.users-active-control input:checked+.users-checkbox { border-color:#7448ce; background:#7448ce; }
.users-active-control input:checked+.users-checkbox::after { content:"✓"; color:#fff; font-size:13px; }
.users-active-control input:focus-visible+.users-checkbox { outline:3px solid #8055e733; }
.users-active-control>span:last-child { display:grid; gap:2px; }
.users-active-control strong { color:#39354b; font-size:11px; }
.users-active-control small { color:#9994a6; font-size:9px; }
.users-drawer-actions,.users-dialog-actions { display:flex; gap:8px; padding-top:6px; }
.users-drawer-actions .button:first-child,.users-dialog-actions .button:first-child { flex:1; }
.users-dialog,.users-confirm-dialog { width:min(430px,calc(100% - 30px)); max-width:none; padding:0; border:1px solid #ece9f1; border-radius:17px; background:#fff; color:#39354b; box-shadow:0 25px 80px #17112640; }
.users-dialog::backdrop,.users-confirm-dialog::backdrop { background:#15112470; backdrop-filter:blur(3px); }
.users-dialog-form,.users-confirm-content { display:grid; gap:12px; padding:23px; }
.users-dialog-form h2,.users-confirm-content h2 { margin:0; color:#302c46; font-size:17px; }
.users-dialog-form p,.users-confirm-content p { margin:0 0 4px; color:#777286; font-size:11px; line-height:1.7; }
.users-warning-icon { width:39px; height:39px; display:grid; place-items:center; border-radius:13px; background:#fff2d8; color:#d18a14; font-size:20px; font-weight:800; }
.users-dialog-actions { justify-content:flex-start; }
.users-reset-open { display:block; }
@keyframes users-row-enter { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
@keyframes users-switch-pulse { 50% { box-shadow:0 0 0 5px #27b87928; } }
@media (max-width: 700px) {
  .users-heading { align-items:flex-start; margin-bottom:17px; }
  .users-heading h1 { flex-wrap:wrap; font-size:23px; }
  .users-heading p { max-width:235px; line-height:1.7; }
  .users-add-button { flex:none; padding-inline:11px; font-size:11px; }
  .users-toolbar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:10px; }
  .users-search { grid-column:1/-1; }
  .users-select { min-width:0; justify-content:space-between; }
  .users-select select,.users-select.users-sort select { min-width:0; max-width:100px; }
  .users-toolbar>select { width:100%; }
  .users-table-card { overflow:visible; }
  .users-table-caption { min-height:55px; padding:10px 13px; }
  .users-table-wrap { padding:9px; }
  .users-table,.users-table tbody,.users-table tr,.users-table td { display:block; width:100%; }
  .users-table { min-width:0; }
  .users-table thead { display:none; }
  .users-table tbody tr { display:grid; grid-template-columns:1fr 1fr; gap:0 12px; padding:9px 12px; margin-bottom:9px; border:1px solid #f0edf4; border-radius:13px; background:#fff; }
  .users-table tbody tr:last-child { border-bottom:1px solid #f0edf4; }
  .users-table td { display:flex; align-items:center; justify-content:space-between; gap:7px; min-height:43px; padding:7px 0; border-bottom:1px solid #f5f3f7; text-align:left; }
  .users-table td::before { flex:none; content:attr(data-label); color:#a09bab; font-size:9px; font-weight:700; text-align:right; }
  .users-table td:first-child { grid-column:1/-1; justify-content:flex-start; padding-top:2px; }
  .users-table td:first-child::before { content:none; }
  .users-table td:last-child { border-bottom:0; }
  .users-identity { min-width:0; }
  .users-avatar { width:35px; height:35px; }
  .users-switch-form { flex-direction:row-reverse; }
  .users-actions-menu { left:0; }
  .users-pagination { align-items:flex-start; flex-direction:column; }
  .users-pagination>div { width:100%; justify-content:center; }
  .users-drawer-head { padding:19px 17px 15px; }
  .users-drawer-form { padding:18px 17px 25px; }
}
@media (prefers-reduced-motion: reduce) {
  .users-page *, .users-page *::before, .users-page *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

.role-permissions-card { padding:22px; margin-bottom:18px; overflow:hidden; border-color:#ebe7f2; box-shadow:0 8px 25px #21144208; }
.role-permissions-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:17px; }
.role-permissions-heading h2 { margin:3px 0 4px; color:#302c46; font-size:17px; font-weight:800; }
.role-permissions-heading p { max-width:690px; margin:0; color:#777286; font-size:11px; line-height:1.8; }
.role-permissions-lock { flex:none; padding:8px 11px; border:1px solid #e9e1fa; border-radius:999px; background:#f7f3ff; color:#7043c8; font-size:10px; font-weight:800; }
.role-admin-fixed { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:13px; margin-bottom:16px; border:1px solid #e8e4f0; border-radius:13px; background:linear-gradient(110deg,#faf9fc,#f6f3fc); }
.role-admin-fixed strong { width:100%; color:#39354b; font-size:11px; font-weight:800; }
.role-admin-fixed span { color:#716c7e; font-size:10px; line-height:1.7; }
.role-permissions-form { display:grid; gap:13px; }
.role-permissions-table-wrap { width:100%; overflow-x:auto; border:1px solid #eeebf3; border-radius:13px; scrollbar-color:#d8cdee transparent; scrollbar-width:thin; }
.role-permissions-table { width:100%; min-width:620px; border-collapse:separate; border-spacing:0; text-align:right; }
.role-permissions-table thead th { padding:12px 14px; border-bottom:1px solid #eae6f0; background:#f8f6fb; color:#625d70; font-size:10px; font-weight:800; white-space:nowrap; }
.role-permissions-table thead th:not(:first-child) { width:112px; text-align:center; }
.role-permissions-table thead th:first-child { width:auto; }
.role-permissions-table thead th small { display:inline-block; padding:3px 6px; margin-right:4px; border-radius:999px; background:#eeeaf4; color:#817b8e; font-size:8px; }
.role-permissions-table tbody th,.role-permissions-table tbody td { padding:11px 14px; border-bottom:1px solid #f0edf4; background:#fff; }
.role-permissions-table tbody tr:last-child th,.role-permissions-table tbody tr:last-child td { border-bottom:0; }
.role-permissions-table tbody tr:hover th,.role-permissions-table tbody tr:hover td { background:#fcfbfe; }
.role-permissions-table tbody th { text-align:right; }
.role-permissions-table tbody th strong { display:block; color:#39354b; font-size:11px; font-weight:800; }
.role-permissions-table tbody th small { display:block; margin-top:3px; color:#9994a6; font-size:9px; font-weight:500; line-height:1.6; }
.role-permissions-table tbody td { text-align:center; }
.role-permission-control { display:inline-flex; min-width:85px; align-items:center; justify-content:center; gap:7px; cursor:pointer; }
.role-permission-control input { width:16px; height:16px; flex:none; margin:0; accent-color:#7043d5; cursor:pointer; }
.role-permission-control input:focus-visible { outline:3px solid #8055e733; outline-offset:2px; }
.role-permission-control small { color:#6d687b; font-size:9px; white-space:nowrap; }
.role-permission-control.is-locked { cursor:default; }
.role-permission-control.is-locked input { accent-color:#8c82a0; cursor:not-allowed; }
.role-permission-control.is-locked small { color:#8c8598; }
.role-permissions-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.role-permissions-footer>small { color:#888397; font-size:10px; line-height:1.7; }
.role-permissions-footer .button { flex:none; }
.users-table { min-width:700px; }
.users-table-wrap { scrollbar-color:#d8cdee transparent; scrollbar-width:thin; }
.users-table th { text-align:right; }
.users-table thead th { border-bottom:1px solid #efedf4; }
.users-table td:nth-child(2),.users-table td:nth-child(3),.users-table td:nth-child(5),.users-table td:nth-child(6) { white-space:nowrap; }
.users-table td:nth-child(4) { min-width:130px; white-space:nowrap; }
.users-actions summary:focus-visible,.users-pagination a:focus-visible,.users-clear-filters:focus-visible { outline:3px solid #8055e744; outline-offset:2px; }
.users-actions-menu { direction:rtl; }

@media (max-width: 900px) {
  .users-heading { align-items:flex-start; }
  .users-toolbar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .users-search { grid-column:1/-1; }
  .users-select { min-width:0; justify-content:space-between; }
  .users-select select,.users-select.users-sort select { min-width:0; max-width:120px; }
  .users-toolbar>select { width:100%; }
  .users-table { min-width:0; }
  .users-table thead { display:none; }
  .users-table tbody tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 12px; padding:9px 12px; margin-bottom:9px; border:1px solid #f0edf4; border-radius:13px; background:#fff; }
  .users-table tbody tr:last-child { border-bottom:1px solid #f0edf4; }
  .users-table td { display:flex; align-items:center; justify-content:space-between; gap:7px; min-width:0; min-height:43px; padding:7px 0; border-bottom:1px solid #f5f3f7; text-align:left; white-space:normal !important; }
  .users-table td::before { flex:none; content:attr(data-label); color:#a09bab; font-size:9px; font-weight:700; text-align:right; }
  .users-table td:first-child { grid-column:1/-1; justify-content:flex-start; padding-top:2px; }
  .users-table td:first-child::before { content:none; }
  .users-table td:last-child { border-bottom:0; }
  .users-table td:nth-child(4) { min-width:0; }
}

@media (max-width: 700px) {
  .role-permissions-card { padding:16px 13px; }
  .role-permissions-heading { flex-direction:column; gap:10px; }
  .role-permissions-heading h2 { font-size:16px; }
  .role-permissions-lock { align-self:flex-start; }
  .role-admin-fixed { gap:6px; padding:10px; }
  .role-admin-fixed span { font-size:8px; }
  .role-permissions-table { min-width:590px; }
  .role-permissions-table thead th,.role-permissions-table tbody th,.role-permissions-table tbody td { padding:10px 9px; }
  .role-permissions-table thead th:not(:first-child) { width:100px; }
  .role-permission-control { min-width:74px; gap:5px; }
  .role-permissions-footer { align-items:stretch; flex-direction:column; }
  .role-permissions-footer .button { width:100%; }
  .users-table-wrap { padding:9px; }
}

@media (max-width: 980px) {
  .dashboard-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-charts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dashboard-chart-wide { grid-column:span 2; }
}
@media (max-width: 700px) {
  .dashboard-welcome { align-items:stretch; flex-direction:column; gap:13px; }
  .dashboard-welcome .heading-actions { width:100%; }
  .dashboard-welcome .heading-actions .button { flex:1; }
  .dashboard-filter { align-items:flex-start; }
  .dashboard-filter-label { align-self:center; }
  .dashboard-range-buttons { width:100%; order:2; }
  .dashboard-range-buttons button { flex:1; padding-inline:5px; }
  .dashboard-custom-date { flex:1; min-width:120px; }
  .dashboard-apply-filter { align-self:end; }
  .dashboard-period-label { width:100%; margin:0; order:3; }
  .dashboard-kpis,.dashboard-charts { grid-template-columns:minmax(0,1fr); }
  .dashboard-kpi { min-height:148px; }
  .dashboard-chart-wide { grid-column:auto; }
  .dashboard-chart-card .chart-wrap { height:230px; }
  .dashboard-doughnut-wrap { height:195px !important; }
  .dashboard-pending-card { padding:16px 14px; }
  .dashboard-pending-item { position:relative; flex-wrap:wrap; gap:8px 10px; padding:11px 0; }
  .dashboard-avatar { width:34px; height:34px; }
  .dashboard-report-copy { flex-basis:calc(100% - 50px); }
  .dashboard-report-time { margin-right:44px; }
  .dashboard-quick-actions { margin-right:auto; }
  .dashboard-quick-actions .button { min-height:30px; padding-inline:8px; }
  .dashboard-section-heading h2 { font-size:14px; }
  .dashboard-timeline-item p { font-size:10px; }
}

.reports-page { --reports-purple:#7043d5; position:relative; padding-bottom:20px; }
.reports-heading { align-items:center; margin-bottom:20px; }
.reports-heading h1 { margin-top:3px; }
.reports-eyebrow { color:#8b68d2; font-size:10px; font-weight:800; }
.reports-export-menu { position:relative; z-index:12; }
.reports-export-menu summary { list-style:none; cursor:pointer; }
.reports-export-menu summary::-webkit-details-marker { display:none; }
.reports-export-menu summary svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.reports-export-options { position:absolute; z-index:20; top:calc(100% + 8px); left:0; width:205px; padding:6px; border:1px solid #eeeaf4; border-radius:13px; background:#fff; box-shadow:0 14px 36px #2114421c; }
.reports-export-options a { min-height:42px; display:flex; align-items:center; gap:9px; padding:8px 10px; border-radius:9px; color:#514d60; font-size:11px; font-weight:700; }
.reports-export-options a:hover { background:#f8f6fc; color:#6842c5; }
.reports-export-options a[aria-disabled="true"] { pointer-events:none; opacity:.7; }
.reports-export-options svg { width:17px; height:17px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.reports-export-options .reports-file-action { margin-right:auto; color:#8b68d2; }
.reports-export-options a.is-loading .reports-file-action { animation:reports-export-spin .9s linear infinite; }
@keyframes reports-export-spin { to { transform:rotate(360deg); } }
.reports-tabs { height:55px; position:relative; display:flex; align-items:stretch; margin-bottom:15px; border-bottom:1px solid #eae7f0; }
.reports-tab { min-width:0; flex:1; display:flex; align-items:center; justify-content:center; gap:8px; padding:8px 11px 11px; color:#827d90; font-size:11px; font-weight:700; white-space:nowrap; transition:color .2s; }
.reports-tab:hover,.reports-tab.is-active { color:#49348c; }
.reports-tab.is-active { font-weight:800; }
.reports-tab-count { min-width:22px; padding:3px 6px; border-radius:20px; background:#f0edf5; color:#7b7488; font-size:9px; text-align:center; }
.reports-count-submitted { background:#fff1ce; color:#b77412; }
.reports-count-draft { background:#f1f3f6; color:#64748b; }
.reports-count-approved { background:#def7e9; color:#138353; }
.reports-count-rejected { background:#ffe5e9; color:#ce4861; }
.reports-count-all { background:#eee8fb; color:#7043c4; }
.reports-tab-indicator { width:20%; height:3px; position:absolute; right:calc(var(--active-index) * 20%); bottom:-1px; border-radius:4px 4px 0 0; background:linear-gradient(90deg,#8c68e5,#6340c4); transition:right .32s cubic-bezier(.2,.75,.25,1); }
.reports-filter-card { overflow:hidden; margin-bottom:17px; }
.reports-filter-summary { min-height:57px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 17px; color:#3e3a50; cursor:pointer; list-style:none; }
.reports-filter-summary::-webkit-details-marker { display:none; }
.reports-filter-summary>span:first-child,.reports-filter-toggle { display:flex; align-items:center; gap:8px; font-size:11px; font-weight:800; }
.reports-filter-summary svg { width:18px; height:18px; fill:none; stroke:#7c5bc2; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.reports-filter-toggle { color:#928ca0; font-weight:600; }
.reports-filter-toggle b { color:#7043d5; font-size:17px; transition:transform .2s; }
.reports-filter-card[open] .reports-filter-toggle b { transform:rotate(180deg); }
.reports-filters { display:grid; grid-template-columns:minmax(180px,1.6fr) repeat(4,minmax(120px,1fr)) auto; align-items:end; gap:11px; padding:0 17px 16px; animation:reports-filter-enter .2s ease both; }
@keyframes reports-filter-enter { from { opacity:0; transform:translateY(-5px); } to { opacity:1; transform:translateY(0); } }
.reports-filter-field { min-width:0; display:grid; gap:6px; color:#777184; font-size:10px; font-weight:700; }
.reports-filter-field input,.reports-filter-field select,.reports-search-field>span { width:100%; min-height:39px; padding:8px 10px; border:1px solid #ece9f1; border-radius:9px; outline:0; background:#fff; color:#4d485c; font-size:10px; }
.reports-filter-field input:focus,.reports-filter-field select:focus,.reports-search-field>span:focus-within { border-color:#bba7ed; box-shadow:0 0 0 3px #8055e714; }
.reports-search-field>span { display:flex; align-items:center; gap:7px; padding:0 10px; }
.reports-search-field svg { width:15px; height:15px; flex:none; fill:none; stroke:#a19baa; stroke-width:1.8; stroke-linecap:round; }
.reports-search-field input { min-height:35px; padding:5px 0; border:0; outline:0; box-shadow:none; }
.reports-search-field input:focus { border:0; box-shadow:none; }
.reports-filter-actions { display:flex; gap:7px; }
.reports-filter-actions .button { min-height:39px; padding:7px 11px; font-size:10px; white-space:nowrap; }
.reports-table-card { overflow:hidden; }
.reports-table-heading { min-height:65px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 18px; border-bottom:1px solid #f0eef4; }
.reports-table-heading>div { display:flex; align-items:center; gap:9px; }
.reports-table-heading h2 { margin:0; color:#302c46; font-size:14px; font-weight:800; }
.reports-table-heading>div>span { padding:4px 8px; border-radius:20px; background:#f2eff8; color:#7555b6; font-size:10px; font-weight:700; }
.reports-table-heading>small { color:#a19baa; font-size:10px; }
.reports-table { min-width:900px; }
.reports-table th { padding-block:13px; color:#878296; background:#fbfafc; font-size:10px; }
.reports-table td { padding:12px 13px; font-size:11px; vertical-align:middle; }
.reports-table tbody tr { animation:reports-row-enter .36s both; animation-delay:calc(var(--row-index,0) * 45ms); }
@keyframes reports-row-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
.reports-table .reports-select-cell { width:42px; padding-inline:15px 5px; text-align:center; }
.reports-select-cell input { width:16px; height:16px; accent-color:#7043d5; cursor:pointer; }
.reports-number { direction:ltr; display:inline-block; color:#9791a3; font-size:10px; font-weight:700; }
.reports-title-cell { min-width:175px; }
.reports-title-link { display:block; max-width:270px; overflow:hidden; color:#373249; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.reports-title-link:hover { color:#7043d5; }
.reports-attachments { display:flex; gap:8px; padding-top:5px; color:#aaa4b2; }
.reports-attachments span { display:inline-flex; align-items:center; gap:3px; font-size:9px; }
.reports-attachments svg { width:13px; height:13px; fill:none; stroke:#9287aa; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.reports-author { display:flex; align-items:center; gap:8px; min-width:145px; }
.reports-author>span:last-child { display:grid; gap:2px; }
.reports-author strong { max-width:130px; overflow:hidden; color:#514c60; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.reports-author small { color:#a39eac; font-size:9px; }
.reports-avatar { width:34px; height:34px; flex:none; display:grid; place-items:center; border:2px solid #fff; border-radius:50%; background:linear-gradient(135deg,#d7cbfa,#8060ce); box-shadow:0 0 0 1px #eee8f8; color:#fff; font-size:13px; font-weight:800; }
.reports-row-actions { display:flex; align-items:center; gap:6px; white-space:nowrap; }
.reports-row-actions form { display:inline-flex; }
.reports-row-actions a,.reports-row-actions button { min-height:29px; display:inline-flex; align-items:center; justify-content:center; padding:5px 9px; border:1px solid #ebe8f1; border-radius:8px; background:#fff; color:#706b7c; cursor:pointer; font-size:9px; font-weight:800; }
.reports-row-actions a:hover { border-color:#cfc1ef; color:#6842c5; }
.reports-row-actions .reports-action-approve { border-color:#d8f0e2; background:#effaf3; color:#198353; }
.reports-row-actions .reports-action-reject { border-color:#f8dce1; background:#fff5f6; color:#ce4861; }
.reports-row-actions .reports-action-delete { border-color:#f8dce1; background:#fff5f6; color:#ce4861; }

.home-highlights { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:center; gap:clamp(14px,3vw,34px); margin:21px 10px 0; padding:20px clamp(17px,3vw,34px); border:1px solid #ebe8f6; border-radius:20px; background:rgba(255,255,255,.86); box-shadow:0 12px 32px #312e8108; }
.home-highlight { display:flex; align-items:center; gap:12px; min-width:0; }
.home-highlight-icon { width:42px; height:42px; flex:none; display:grid; place-items:center; border-radius:14px; }
.home-highlight-icon svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.home-highlight-icon-violet { color:#7043d5; background:#f1ebff; }
.home-highlight-icon-cyan { color:#07839d; background:#e4f9fb; }
.home-highlight-icon-green { color:#16835b; background:#e7f8ef; }
.home-highlight>span:last-child { display:grid; gap:4px; }
.home-highlight strong { color:#312e4b; font-size:12px; font-weight:800; }
.home-highlight small { color:#8a8799; font-size:10px; line-height:1.6; }
.home-highlight-divider { width:1px; height:34px; background:#eeecf3; }
.home-final-cta { position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:48px; padding:clamp(25px,4vw,43px) clamp(23px,5vw,58px); border:1px solid #4f46e5; border-radius:25px; background:#4f46e5; box-shadow:0 22px 55px #312e811c; color:#fff; }
.home-final-cta::before { position:absolute; z-index:-1; top:-145px; left:35%; width:290px; height:290px; border:1px solid #ffffff18; border-radius:50%; box-shadow:0 0 0 35px #ffffff08,0 0 0 72px #ffffff06; content:""; }
.home-final-copy { position:relative; z-index:1; }
.home-final-kicker { display:inline-flex; align-items:center; gap:8px; color:#c8c0f4; font-size:10px; font-weight:800; }
.home-final-kicker i { width:7px; height:7px; border-radius:50%; background:#6ee7b7; box-shadow:0 0 0 4px #6ee7b729; }
.home-final-copy h2 { margin:10px 0 6px; color:#fff; font-size:clamp(19px,2.3vw,27px); font-weight:800; letter-spacing:-.02em; }
.home-final-copy p { max-width:540px; margin:0; color:#d9d5ee; font-size:11px; line-height:1.9; }
.home-final-availability { display:inline-flex; align-items:center; gap:7px; margin-top:17px; color:#d9d5ee; font-size:10px; }
.home-final-availability strong { color:#a7f3d0; font-size:14px; font-weight:800; }
.home-final-availability i { width:3px; height:3px; margin-inline:3px; border-radius:50%; background:#a7f3d0; }
.home-final-button { position:relative; z-index:1; min-height:47px; flex:none; display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:10px 18px; border:1px solid #fff; border-radius:13px; background:#fff; color:#43358f; box-shadow:0 8px 20px #17133e35; font-size:11px; font-weight:800; transition:transform .2s,box-shadow .2s,background .2s; }
.home-final-button:hover { transform:translateY(-2px); background:#f5f3ff; box-shadow:0 12px 25px #17133e45; }
.home-final-button svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
@media (max-width: 760px) {
  .home-highlights { gap:12px; margin:16px 0 0; padding:16px; }
  .home-highlight { gap:9px; }
  .home-highlight-icon { width:36px; height:36px; border-radius:12px; }
  .home-highlight-icon svg { width:18px; height:18px; }
  .home-highlight strong { font-size:10px; }
  .home-highlight small { font-size:9px; }
  .home-final-cta { align-items:flex-start; flex-direction:column; gap:18px; margin-top:37px; border-radius:20px; }
}
@media (max-width: 520px) {
  .home-highlights { grid-template-columns:1fr; gap:0; padding:5px 15px; }
  .home-highlight { min-height:62px; }
  .home-highlight-divider { width:100%; height:1px; }
  .home-final-cta { padding:23px 19px; }
  .home-final-copy h2 { font-size:19px; }
  .home-final-availability { flex-wrap:wrap; font-size:9px; }
  .home-final-button { width:100%; }
}

.home-public-body { background:#f8fafc; color:#1e293b; }
.home-public-body .home-topbar { height:76px; border-bottom-color:#e8edf4; background:#ffffffed; }
.home-public-body .home-topbar .topbar-inner { max-width:1320px; }
.home-public-body .home-brand { color:#312e81; }
.home-public-body .home-brand .brand-mark { border-radius:13px; background:linear-gradient(135deg,#7c3aed,#4f46e5); box-shadow:0 7px 18px #6366f12e; }
.home-public-body .home-brand .brand-copy small { color:#94a3b8; }
.home-public-body .home-nav-link { border-radius:7px; color:#64748b; }
.home-public-body .home-nav-link:hover,.home-public-body .home-nav-link.is-active { background:#eef2ff; color:#4f46e5; }
.home-public-body .home-login-button { border-radius:9px; background:linear-gradient(125deg,#6d28d9,#4f46e5); box-shadow:0 7px 18px #6366f126; }
.home-public-body .home-login-button:hover { background:linear-gradient(125deg,#5b21b6,#4338ca); }
.home-public-body .public-container.home-page { width:min(1320px,100%); max-width:none; padding:31px 30px 76px; }
.home-page { --home-ink:#1e1b4b; --home-muted:#64748b; --home-line:#edf0f5; --home-green:#4f46e5; --home-lime:#c4b5fd; }
.home-hero-new { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.02fr); align-items:center; gap:clamp(30px,6vw,94px); min-height:565px; padding:clamp(38px,6vw,82px); overflow:hidden; border:1px solid #e9e6ff; border-radius:13px; background:radial-gradient(ellipse at 82% 9%,#ddd6feaa,transparent 32%),radial-gradient(ellipse at 15% 100%,#cffafe99,transparent 35%),linear-gradient(120deg,#faf9ff 0%,#f3f0ff 48%,#effbff 100%); }
.home-hero-new::before { position:absolute; top:-230px; left:34%; width:570px; height:570px; border:1px solid #8b5cf61c; border-radius:50%; box-shadow:0 0 0 48px #8b5cf60a,0 0 0 96px #8b5cf607; content:""; pointer-events:none; }
.home-hero-copy { position:relative; z-index:1; max-width:510px; padding-bottom:10px; }
.home-kicker { display:inline-flex; align-items:center; gap:10px; color:#6d28d9; font-size:12px; font-weight:700; }
.home-kicker i,.home-live-indicator i { width:8px; height:8px; border-radius:50%; background:#8b5cf6; box-shadow:0 0 0 4px #8b5cf625; }
.home-hero-copy h1 { margin:26px 0 16px; color:var(--home-ink); font-size:clamp(45px,6vw,76px); font-weight:800; letter-spacing:-.055em; line-height:1.12; }
.home-hero-copy h1 span { color:#6d28d9; }
.home-hero-copy>p { max-width:425px; margin:0; color:#64748b; font-size:16px; line-height:2; }
.home-hero-actions { display:flex; flex-wrap:wrap; gap:11px; margin-top:29px; }
.home-button { min-height:48px; display:inline-flex; align-items:center; justify-content:center; gap:11px; padding:12px 19px; border:1px solid transparent; border-radius:8px; font-size:12px; font-weight:800; transition:background .2s,border-color .2s,color .2s,transform .2s,box-shadow .2s; }
.home-button:hover { transform:translateY(-2px); }
.home-button svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.home-button-primary { color:#fff; background:linear-gradient(125deg,#6d28d9,#4f46e5); box-shadow:0 8px 19px #6366f133; }
.home-button-primary:hover { background:linear-gradient(125deg,#5b21b6,#4338ca); box-shadow:0 12px 23px #6366f13d; }
.home-button-outline { border-color:#c7d2fe; background:#ffffffb8; color:#4f46e5; }
.home-button-outline:hover { border-color:#a5b4fc; background:#fff; }
.home-hero-proof { display:flex; align-items:center; gap:9px; margin-top:24px; color:#64748b; font-size:11px; }
.home-proof-check { width:20px; height:20px; display:grid; place-items:center; border-radius:50%; background:#dcfce7; color:#059669; font-size:11px; font-weight:800; }
.home-hero-visual { position:relative; z-index:1; min-width:0; overflow:hidden; padding:18px 25px 15px; border:1px solid #6d5cac; border-radius:12px; background:radial-gradient(ellipse at 50% 24%,#514496,#312e81 72%); color:#f0efff; box-shadow:0 28px 60px #312e8133; }
.home-hero-visual::before { position:absolute; inset:0; background-image:linear-gradient(#ffffff07 1px,transparent 1px),linear-gradient(90deg,#ffffff07 1px,transparent 1px); background-size:31px 31px; content:""; mask-image:linear-gradient(transparent,#000 35%,transparent); pointer-events:none; }
.home-hero-visual-top,.home-hero-visual-bottom { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.home-hero-visual-top { color:#ddd6fe; font-size:10px; }
.home-live-indicator { display:inline-flex; align-items:center; gap:7px; color:#e0e7ff; font-size:9px; }
.home-live-indicator i { width:6px; height:6px; background:#6ee7b7; box-shadow:none; }
.home-hairline { position:relative; display:block; min-width:0; aspect-ratio:5/4; }
.home-hairline-hero { width:min(100%,430px); margin:5px auto 0; --hairline-plate:#39347f; --hairline-hi:#f5f3ff; --hairline-edge:#c4b5fd; --hairline-mid:#a5b4fc; --hairline-lo:#7770b5; --hairline-stroke:1; }
.home-hero-visual-bottom { justify-content:flex-start; gap:12px; padding:11px 9px 8px; border-top:1px solid #ffffff19; }
.home-visual-symbol { width:32px; height:32px; display:grid; flex:none; place-items:center; border:1px solid #c4b5fd5c; border-radius:9px; color:#ddd6fe; font-size:17px; }
.home-hero-visual-bottom>span:last-child { display:grid; gap:3px; }
.home-hero-visual-bottom strong { color:#f5f3ff; font-size:11px; }
.home-hero-visual-bottom small { color:#c4c0dc; font-size:9px; }
.home-hero-index { position:absolute; left:25px; bottom:25px; display:flex; align-items:center; gap:7px; color:#ddd6fe; font-size:8px; letter-spacing:.08em; }
.home-hero-index i { width:27px; height:1px; background:#67e8f9; }
.home-hero-side-note { position:absolute; top:50%; left:14px; display:flex; align-items:center; gap:8px; color:#8b86b1; font:8px/1 Arial,sans-serif; letter-spacing:.12em; transform:rotate(-90deg) translateX(50%); transform-origin:left center; }
.home-hero-side-note i { width:3px; height:3px; border-radius:50%; background:#22d3ee; }
.home-booking-strip { min-height:91px; display:grid; grid-template-columns:1.4fr .7fr .7fr auto; align-items:center; gap:22px; margin:19px 0 0; padding:16px 28px; border:1px solid var(--home-line); border-radius:10px; background:#fff; }
.home-booking-strip-label { display:flex; align-items:center; gap:12px; }
.home-strip-icon { width:39px; height:39px; display:grid; flex:none; place-items:center; border-radius:10px; background:#eef2ff; color:#4f46e5; font-size:20px; }
.home-booking-strip-label>span:last-child { display:grid; gap:4px; }
.home-booking-strip-label strong { color:var(--home-ink); font-size:12px; }
.home-booking-strip-label small { color:#91958d; font-size:10px; }
.home-booking-strip-stat { display:grid; gap:2px; padding-inline-start:21px; border-inline-start:1px solid var(--home-line); }
.home-booking-strip-stat strong { color:#4f46e5; font-size:24px; font-weight:800; line-height:1.1; }
.home-booking-strip-stat span { color:#878c84; font-size:10px; }
.home-strip-link,.home-text-link { display:inline-flex; align-items:center; gap:9px; color:#4f46e5; font-size:11px; font-weight:800; }
.home-strip-link span,.home-text-link span { transition:transform .2s; }
.home-strip-link:hover span,.home-text-link:hover span { transform:translateX(-3px); }
.home-section { margin-top:clamp(70px,9vw,118px); }
.home-section-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:29px; }
.home-section-index { display:block; color:#8b5cf6; font-size:9px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.home-section-heading h2,.home-availability-copy h2 { margin:11px 0 0; color:var(--home-ink); font-size:clamp(29px,4vw,45px); font-weight:800; letter-spacing:-.045em; line-height:1.35; }
.home-section-heading h2 span,.home-availability-copy h2 span { color:#6d28d9; }
.home-section-heading>p { max-width:330px; margin:0 0 4px; color:#797e76; font-size:13px; line-height:1.9; }
.home-feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.home-feature-card { min-width:0; overflow:hidden; padding:19px 20px 22px; border:1px solid var(--home-line); border-radius:10px; background:#fff; transition:transform .25s,border-color .25s,box-shadow .25s; }
.home-feature-card:hover { transform:translateY(-4px); border-color:#c7d2fe; box-shadow:0 17px 35px #312e8110; }
.home-feature-top { display:flex; align-items:center; justify-content:space-between; color:#92988e; font-size:9px; font-weight:800; }
.home-feature-arrow { color:#8f9c88; font-size:17px; font-weight:400; }
.home-hairline-feature { width:min(100%,260px); margin:3px auto 2px; --hairline-plate:#fff; --hairline-hi:#4f46e5; --hairline-edge:#8b5cf6; --hairline-mid:#c4b5fd; --hairline-lo:#e9e5ff; --hairline-stroke:.95; }
.home-feature-schedule .home-hairline-feature { --hairline-hi:#0891b2; --hairline-edge:#22b8cf; --hairline-mid:#a5e9f2; --hairline-lo:#def7fb; }
.home-feature-space .home-hairline-feature { --hairline-hi:#7c3aed; --hairline-edge:#a78bfa; --hairline-mid:#d8b4fe; --hairline-lo:#f3e8ff; }
.home-feature-card h3 { margin:5px 0 7px; color:#262b25; font-size:15px; font-weight:800; }
.home-feature-card p { max-width:290px; margin:0; color:#81867d; font-size:11px; line-height:1.8; }
.home-availability { display:grid; grid-template-columns:.82fr 1.18fr; align-items:center; gap:clamp(36px,9vw,130px); margin-top:clamp(76px,9vw,116px); padding:clamp(30px,5vw,64px); border:1px solid #e9e6ff; border-radius:12px; background:linear-gradient(130deg,#f5f3ff,#effbff); }
.home-availability-copy { max-width:390px; }
.home-availability-copy h2 { margin-top:13px; font-size:clamp(31px,4vw,43px); line-height:1.36; }
.home-availability-copy>p { margin:14px 0 19px; color:#64748b; font-size:12px; line-height:1.9; }
.home-text-link { min-height:35px; }
.home-availability-card { padding:26px; border:1px solid #e9e6ff; border-radius:10px; background:#fff; box-shadow:0 12px 35px #312e8108; }
.home-availability-card-head,.home-availability-card-foot { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.home-availability-card-head { padding-bottom:17px; border-bottom:1px solid #eeecf5; color:#312e4b; font-size:11px; font-weight:800; }
.home-availability-card-head>span:last-child { display:inline-flex; align-items:center; gap:7px; color:#8993a5; font-size:9px; font-weight:600; }
.home-availability-card-head i { width:6px; height:6px; border-radius:50%; background:#34d399; box-shadow:0 0 0 3px #d1fae5; }
.home-availability-total { display:flex; align-items:baseline; gap:10px; margin:23px 0 17px; }
.home-availability-total strong { color:#4f46e5; font-size:43px; font-weight:800; line-height:1; }
.home-availability-total span { color:#64748b; font-size:11px; }
.home-availability-track { height:9px; display:flex; gap:3px; overflow:hidden; border-radius:20px; background:#f1f5f9; }
.home-availability-track>span { min-width:0; border-radius:20px; }
.home-track-available,.home-dot-available { background:#10b981; }
.home-track-booked,.home-dot-booked { background:#8b5cf6; }
.home-track-cancelled,.home-dot-cancelled { background:#f43f5e; }
.home-availability-legend { display:flex; flex-wrap:wrap; justify-content:space-between; gap:11px; margin:17px 0 23px; }
.home-availability-legend>span { display:inline-flex; align-items:center; gap:6px; color:#64748b; font-size:9px; }
.home-availability-legend strong { color:#334155; font-size:10px; }
.home-legend-dot { width:7px; height:7px; border-radius:50%; }
.home-availability-card-foot { padding-top:14px; border-top:1px solid #eeecf5; color:#94a3b8; font-size:9px; }
.home-availability-card-foot a { display:inline-flex; align-items:center; gap:6px; color:#4f46e5; font-size:10px; font-weight:800; }
.home-about .home-section-heading { margin-bottom:31px; }
.home-about-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.home-about-details { display:grid; align-content:start; }
.home-about-item { min-width:0; display:grid; grid-template-columns:42px minmax(0,1fr) 25px; align-items:start; gap:13px; padding:19px 2px; border-bottom:1px solid #e9e6f2; }
.home-about-item:first-child { padding-top:4px; }
.home-about-item-icon { width:39px; height:39px; display:grid; place-items:center; border:1px solid #e9e2ff; border-radius:9px; background:#f5f3ff; color:#7043d5; font-size:17px; }
.home-about-item>div { min-width:0; }
.home-about-item small { display:block; margin:1px 0 7px; color:#8b5cf6; font-size:9px; font-weight:700; }
.home-about-item strong { color:#312e4b; font-size:12px; }
.home-about-item p,.home-about-item ul { margin:0; color:#64748b; font-size:11px; line-height:1.9; overflow-wrap:anywhere; }
.home-about-item ul { display:flex; flex-wrap:wrap; gap:6px 19px; padding-inline-start:17px; }
.home-about-item-index { padding-top:4px; color:#b3b8ae; font-size:9px; }
.home-about-visual { position:relative; display:flex; min-height:360px; flex-direction:column; justify-content:space-between; overflow:hidden; padding:20px 23px; border-radius:10px; background:radial-gradient(ellipse at 50% 50%,#514496,#312e81 71%); color:#f5f3ff; }
.home-about-visual::before { position:absolute; inset:0; background:linear-gradient(45deg,transparent 49.7%,#ffffff0a 50%,transparent 50.3%); background-size:32px 32px; content:""; pointer-events:none; }
.home-about-visual-label,.home-about-visual-caption { position:relative; z-index:1; font-size:10px; }
.home-about-visual-label { color:#ddd6fe; }
.home-about-visual-caption { align-self:flex-start; padding-top:11px; border-top:1px solid #ffffff28; color:#ddd6fe; }
.home-hairline-about { width:min(100%,320px); align-self:center; margin:auto; --hairline-plate:#39347f; --hairline-hi:#f5f3ff; --hairline-edge:#c4b5fd; --hairline-mid:#a5b4fc; --hairline-lo:#7770b5; --hairline-stroke:1; }
.home-gallery { margin-top:65px; }
.home-gallery-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:17px; }
.home-gallery-heading h3 { margin:6px 0 0; color:#293028; font-size:20px; font-weight:800; }
.home-gallery-heading>span { color:#8c9288; font-size:10px; }
.home-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.home-gallery-card { min-width:0; overflow:hidden; border:1px solid var(--home-line); border-radius:9px; background:#fff; transition:transform .22s,border-color .22s,box-shadow .22s; }
.home-gallery-card:hover { transform:translateY(-3px); border-color:#c7d2fe; box-shadow:0 13px 29px #312e8110; }
.home-gallery-card>a { position:relative; display:block; overflow:hidden; aspect-ratio:1.65; background:#eff1e9; }
.home-gallery-card>a::after { position:absolute; inset:40% 0 0; background:linear-gradient(transparent,#151b1580); content:""; pointer-events:none; }
.home-gallery-card>a img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .4s; }
.home-gallery-card>a:hover img { transform:scale(1.04); }
.home-gallery-card>a>span { position:absolute; z-index:1; bottom:11px; left:12px; width:28px; height:28px; display:grid; place-items:center; border:1px solid #ffffff8c; border-radius:50%; color:white; font-size:13px; }
.home-gallery-card>div { min-height:68px; padding:12px 14px; }
.home-gallery-card h4 { margin:0; color:#313830; font-size:12px; }
.home-gallery-card p { margin:5px 0 0; color:#858a82; font-size:10px; line-height:1.75; }
.home-process { margin-top:clamp(74px,9vw,118px); }
.home-process-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.home-process-step { position:relative; min-width:0; padding:22px; border:1px solid var(--home-line); border-radius:10px; background:#fff; }
.home-process-number { position:absolute; top:20px; left:20px; color:#a1a79c; font-size:10px; font-weight:800; }
.home-process-icon { width:84px; height:75px; margin:9px 0 21px; }
.home-hairline-step { width:100%; --hairline-plate:#fff; --hairline-hi:#4f46e5; --hairline-edge:#8b5cf6; --hairline-mid:#c4b5fd; --hairline-lo:#e9e5ff; --hairline-stroke:.9; }
.home-process-step h3 { margin:0 0 7px; color:#312e4b; font-size:14px; font-weight:800; }
.home-process-step p { max-width:260px; margin:0; color:#81877d; font-size:10px; line-height:1.85; }
.home-final { position:relative; display:grid; grid-template-columns:.85fr 1fr; align-items:center; gap:30px; min-height:340px; margin-top:clamp(75px,9vw,115px); padding:clamp(28px,5vw,58px); overflow:hidden; border-radius:12px; background:linear-gradient(125deg,#312e81,#4f46e5); color:#f5f3ff; }
.home-final::before { position:absolute; top:-235px; left:38%; width:590px; height:590px; border:1px solid #ffffff15; border-radius:50%; box-shadow:0 0 0 44px #ffffff06,0 0 0 88px #ffffff04; content:""; pointer-events:none; }
.home-final-art { position:relative; z-index:1; width:min(100%,330px); justify-self:center; }
.home-hairline-final { width:100%; --hairline-plate:#39347f; --hairline-hi:#f5f3ff; --hairline-edge:#c4b5fd; --hairline-mid:#a5b4fc; --hairline-lo:#7770b5; --hairline-stroke:.9; }
.home-final-copy { position:relative; z-index:1; }
.home-final-copy .home-section-index { color:#c4b5fd; }
.home-final-copy h2 { margin:12px 0 11px; color:#f5f3ff; font-size:clamp(28px,4vw,43px); font-weight:800; letter-spacing:-.04em; line-height:1.38; }
.home-final-copy>p { max-width:410px; margin:0 0 22px; color:#ddd6fe; font-size:12px; line-height:1.9; }
.home-button-light { min-height:44px; background:#fff; color:#43358f; }
.home-button-light:hover { background:#f5f3ff; box-shadow:0 9px 24px #17133e40; }
.home-final-mark { position:absolute; right:clamp(22px,4vw,50px); bottom:20px; color:#e7ecdf5c; font:8px Arial,sans-serif; letter-spacing:.14em; }
.home-public-body .site-footer { min-height:78px; grid-template-columns:1fr auto; align-items:center; justify-items:stretch; gap:20px; padding:16px max(30px,calc((100vw - 1260px)/2)); border-top-color:#e8edf4; background:#f8fafc; }
.home-public-body .site-footer .site-footer-copyright { color:#64748b; font-size:10px; }
.home-public-body .site-footer .site-footer-credit { color:#4338ca; font-size:10px; }
.motion-ready .home-reveal { opacity:0; transform:translateY(16px); filter:blur(4px); transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1),filter .65s ease; }
.motion-ready .home-reveal.is-visible { opacity:1; transform:translateY(0); filter:blur(0); }
@media (max-width: 980px) {
  .home-hero-new { gap:32px; min-height:490px; padding:42px; }
  .home-hero-copy h1 { font-size:clamp(42px,6vw,60px); }
  .home-hero-visual { padding-inline:17px; }
  .home-hero-index { left:17px; bottom:21px; }
  .home-availability { gap:38px; padding:35px; }
  .home-availability-card { padding:22px; }
}
@media (max-width: 760px) {
  .home-public-body .public-container.home-page { padding:20px 16px 55px; }
  .home-hero-new { grid-template-columns:1fr; gap:30px; min-height:0; padding:34px 27px 26px; }
  .home-hero-new::before { top:-300px; left:22%; }
  .home-hero-copy { max-width:none; }
  .home-hero-copy h1 { margin-top:20px; font-size:clamp(45px,10vw,65px); }
  .home-hero-copy>p { max-width:500px; font-size:14px; }
  .home-hero-visual { width:min(100%,490px); justify-self:center; }
  .home-hero-side-note { display:none; }
  .home-booking-strip { grid-template-columns:1fr 1fr; gap:17px 12px; padding:17px; }
  .home-booking-strip-label { grid-column:1/-1; }
  .home-booking-strip-stat { padding-inline-start:12px; }
  .home-strip-link { justify-self:end; }
  .home-section { margin-top:72px; }
  .home-section-heading { align-items:flex-start; flex-direction:column; gap:12px; margin-bottom:22px; }
  .home-section-heading>p { max-width:480px; }
  .home-feature-grid { gap:10px; }
  .home-feature-card { padding:15px; }
  .home-availability { grid-template-columns:1fr; gap:24px; margin-top:72px; padding:25px; }
  .home-availability-copy h2 br { display:none; }
  .home-about-grid { grid-template-columns:1fr; }
  .home-about-visual { min-height:300px; }
  .home-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-final { grid-template-columns:.72fr 1fr; gap:18px; }
}
@media (max-width: 520px) {
  .home-public-body .home-topbar { height:67px; }
  .home-public-body .home-topbar .topbar-inner { padding-inline:14px; }
  .home-public-body .home-brand { gap:8px; }
  .home-public-body .home-brand .brand-mark { width:37px; height:37px; }
  .home-public-body .home-brand .brand-copy>span { font-size:10px; }
  .home-public-body .home-brand .brand-copy small { font-size:8px; }
  .home-public-body .home-login-button { min-height:36px; padding-inline:11px; font-size:10px; }
  .home-public-body .public-container.home-page { padding:14px 12px 43px; }
  .home-hero-new { gap:23px; padding:29px 20px 19px; border-radius:10px; }
  .home-hero-copy h1 { margin:17px 0 12px; font-size:clamp(39px,11vw,54px); }
  .home-hero-copy>p { font-size:12px; line-height:1.9; }
  .home-kicker { font-size:10px; }
  .home-hero-actions { gap:8px; margin-top:21px; }
  .home-button { min-height:43px; padding-inline:13px; font-size:10px; }
  .home-hero-proof { margin-top:17px; font-size:9px; }
  .home-hero-visual { padding:13px 14px 10px; }
  .home-hero-visual-top { font-size:9px; }
  .home-hero-visual-bottom { gap:9px; padding:8px 4px 5px; }
  .home-hero-visual-bottom strong { font-size:9px; }
  .home-hero-visual-bottom small { font-size:8px; }
  .home-visual-symbol { width:27px; height:27px; }
  .home-hero-index { left:14px; bottom:17px; font-size:7px; }
  .home-booking-strip { gap:13px 9px; margin-top:12px; padding:14px; }
  .home-booking-strip-label { gap:9px; }
  .home-strip-icon { width:34px; height:34px; }
  .home-booking-strip-label strong { font-size:10px; }
  .home-booking-strip-label small { font-size:8px; }
  .home-booking-strip-stat { padding-inline-start:8px; }
  .home-booking-strip-stat strong { font-size:21px; }
  .home-booking-strip-stat span,.home-strip-link { font-size:9px; }
  .home-section { margin-top:57px; }
  .home-section-heading h2,.home-availability-copy h2 { font-size:30px; }
  .home-feature-grid,.home-process-grid { grid-template-columns:1fr; gap:10px; }
  .home-feature-card { padding:16px 18px 18px; }
  .home-hairline-feature { width:min(100%,240px); }
  .home-feature-card h3 { font-size:14px; }
  .home-availability { gap:19px; margin-top:58px; padding:20px 16px; }
  .home-availability-copy h2 { font-size:31px; }
  .home-availability-copy>p { font-size:11px; }
  .home-availability-card { padding:17px 14px; }
  .home-availability-total strong { font-size:38px; }
  .home-availability-legend { gap:9px; }
  .home-availability-legend>span { gap:4px; font-size:8px; }
  .home-availability-legend strong { font-size:9px; }
  .home-about-item { grid-template-columns:35px minmax(0,1fr) 20px; gap:10px; padding:15px 1px; }
  .home-about-item-icon { width:34px; height:34px; }
  .home-about-visual { min-height:250px; padding:16px; }
  .home-gallery { margin-top:43px; }
  .home-gallery-heading h3 { font-size:17px; }
  .home-gallery-grid { grid-template-columns:1fr; gap:10px; }
  .home-gallery-card>a { aspect-ratio:1.7; }
  .home-process { margin-top:59px; }
  .home-process-step { display:grid; grid-template-columns:78px 1fr; column-gap:15px; padding:15px; }
  .home-process-number { top:13px; left:14px; }
  .home-process-icon { grid-row:span 2; width:72px; height:64px; margin:7px 0 0; }
  .home-process-step h3 { align-self:end; padding-top:7px; font-size:13px; }
  .home-process-step p { align-self:start; font-size:9px; }
  .home-final { grid-template-columns:1fr; gap:9px; margin-top:59px; padding:25px 19px 45px; }
  .home-final-art { position:absolute; top:10px; left:8px; width:115px; opacity:.38; }
  .home-hairline-final { --hairline-plate:#39347f; --hairline-hi:#f5f3ff; --hairline-edge:#c4b5fd; --hairline-mid:#a5b4fc; --hairline-lo:#7770b5; }
  .home-final-copy { max-width:360px; }
  .home-final-copy h2 { font-size:30px; }
  .home-final-copy>p { font-size:11px; }
  .home-public-body .site-footer { grid-template-columns:1fr; justify-items:center; gap:4px; padding:15px 12px; text-align:center; }
}
@media (prefers-reduced-motion: reduce) {
  .motion-ready .home-reveal { opacity:1; transform:none; filter:none; }
  .home-public-body .home-feature-card:hover,.home-public-body .home-gallery-card:hover { transform:none; }
}
.home-public-body { background-color:#f8fafc; background-image:radial-gradient(#8b5cf60a 1px,transparent 1px),radial-gradient(ellipse at 88% 18%,#ddd6fe20,transparent 34%),radial-gradient(ellipse at 8% 65%,#cffafe1c,transparent 29%); background-size:23px 23px,auto,auto; }
.home-public-body .home-topbar { border-bottom-color:#e6e8f2; background:#fbfaffdc; }
.home-public-body .home-brand .brand-mark { border:1px solid #ffffff80; }
.home-public-body .home-menu-toggle { border-color:#e2e5f0; background:#fff; }
.home-page { position:relative; }
.home-hero-new { min-height:clamp(550px,47vw,650px); gap:clamp(34px,5vw,80px); border-color:#e7e4f8; background:radial-gradient(ellipse at 86% 12%,#c4b5fd48,transparent 29%),radial-gradient(ellipse at 9% 88%,#a5f3fc38,transparent 30%),linear-gradient(125deg,#fff 0%,#f9f7ff 50%,#effaff 100%); box-shadow:0 30px 100px #312e810d,0 2px 8px #312e8108; }
.home-hero-new::before { top:-285px; left:34%; width:650px; height:650px; border-color:#8b5cf628; box-shadow:0 0 0 48px #8b5cf60a,0 0 0 98px #8b5cf607,0 0 0 149px #8b5cf604; }
.home-hero-copy { max-width:530px; }
.home-kicker { padding:9px 13px; border:1px solid #e8e2fc; border-radius:99px; background:#ffffffb8; box-shadow:0 5px 17px #47308c0a; }
.home-hero-copy h1 { font-size:clamp(49px,6.1vw,82px); text-wrap:balance; }
.home-hero-copy>p { max-width:450px; }
.home-hero-actions { gap:12px; }
.home-button { min-height:51px; padding-inline:21px; border-radius:10px; }
.home-hero-visual { isolation:isolate; min-height:425px; padding:20px 25px 17px; border:1px solid #7769ba; border-radius:15px; background:radial-gradient(ellipse at 48% 35%,#6354aa,#39347f 66%,#302c70); box-shadow:0 32px 70px #312e8140,0 0 0 8px #fff9,0 0 0 9px #dcd6f0; }
.home-hero-visual::before { z-index:-1; background-image:linear-gradient(#ffffff0b 1px,transparent 1px),linear-gradient(90deg,#ffffff0b 1px,transparent 1px); background-size:28px 28px; mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent); }
.home-hero-visual::after { position:absolute; z-index:-1; top:15%; left:15%; width:70%; aspect-ratio:1; border:1px solid #c4b5fd2b; border-radius:50%; box-shadow:0 0 0 26px #c4b5fd0a,0 0 70px #a78bfa1c; content:""; pointer-events:none; }
.home-hero-visual-top { padding-bottom:10px; border-bottom:1px solid #ffffff1c; }
.home-hero-code { position:absolute; z-index:2; top:66px; left:26px; color:#ddd6fe94; font:7px/1.4 Arial,sans-serif; letter-spacing:.13em; }
.home-hero-code i { color:#67e8f9; font-style:normal; }
.home-hairline-hero { width:min(100%,450px); margin:12px auto 3px; --hairline-plate:#39347f; --hairline-hi:#f5f3ff; --hairline-edge:#c4b5fd; --hairline-mid:#a5b4fc; --hairline-lo:#7770b5; --hairline-stroke:1.05; }
.home-hero-visual-bottom { min-height:52px; padding-inline:10px; }
.home-visual-symbol { border-radius:11px; background:#c4b5fd19; }
.home-hero-float { position:absolute; z-index:3; display:flex; align-items:center; gap:9px; border:1px solid #ffffff40; border-radius:11px; background:#373078e8; box-shadow:0 12px 30px #211c5c66; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); animation:home-float 5s ease-in-out infinite; }
.home-hero-float-one { top:27%; right:6%; padding:9px 12px; }
.home-hero-float-one>i { width:30px; height:30px; display:grid; place-items:center; border-radius:9px; background:#c4b5fd26; color:#ddd6fe; font-size:14px; font-style:normal; }
.home-hero-float-one>span { display:grid; gap:3px; }
.home-hero-float-one strong { color:#fff; font-size:9px; }
.home-hero-float-one small { color:#d0cbed; font-size:8px; }
.home-hero-float-two { bottom:26%; left:6%; padding:9px 12px; color:#e0e7ff; font:8px Arial,sans-serif; letter-spacing:.08em; }
.home-hero-float-two>i { width:6px; height:6px; border-radius:50%; background:#6ee7b7; box-shadow:0 0 0 4px #6ee7b726; }
.home-hero-float-two b { color:#67e8f9; }
.home-hero-index { z-index:4; }
@keyframes home-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-5px); } }
.home-booking-strip { grid-template-columns:1.25fr .72fr .72fr .72fr auto; min-height:100px; padding:16px 24px; border-color:#e8e5f3; border-radius:13px; background:#ffffffd9; box-shadow:0 12px 36px #312e8108; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.home-booking-strip-stat { min-height:44px; align-content:center; }
.home-booking-strip-stat:nth-of-type(2) strong { color:#0891b2; }
.home-booking-strip-stat:nth-of-type(3) strong { color:#7c3aed; }
.home-booking-strip-stat:nth-of-type(4) strong { color:#e11d48; }
.home-strip-icon { border:1px solid #e5e0fb; background:linear-gradient(145deg,#f3e8ff,#eef2ff); color:#6d28d9; }
.home-feature-grid { grid-template-columns:repeat(12,minmax(0,1fr)); gap:15px; }
.home-feature-card { position:relative; min-height:316px; padding:20px; border-color:#e9e7f1; border-radius:13px; box-shadow:0 8px 28px #312e8106; }
.home-feature-card::after { position:absolute; top:-75px; left:-78px; width:180px; height:180px; border:1px solid #8b5cf615; border-radius:50%; content:""; pointer-events:none; transition:transform .5s; }
.home-feature-card:hover { transform:translateY(-6px); border-color:#c9c0ee; box-shadow:0 22px 45px #312e8114; }
.home-feature-card:hover::after { transform:scale(1.16); }
.home-feature-booking { grid-column:span 6; display:grid; grid-template-columns:1fr 1.05fr; grid-template-rows:auto 1fr auto; align-items:center; min-height:355px; padding:23px 25px; background:radial-gradient(ellipse at 18% 100%,#c4b5fd18,transparent 53%),#fff; }
.home-feature-booking .home-feature-top { grid-column:1/-1; }
.home-feature-booking .home-hairline-feature { grid-column:2; grid-row:2/4; width:100%; max-width:290px; margin:0 auto; --hairline-stroke:1.05; }
.home-feature-booking h3 { grid-column:1; grid-row:2; align-self:end; margin:0 0 5px; font-size:clamp(16px,1.7vw,21px); }
.home-feature-booking p { grid-column:1; grid-row:3; align-self:start; max-width:210px; }
.home-feature-schedule,.home-feature-space { grid-column:span 3; display:flex; flex-direction:column; }
.home-feature-schedule { background:linear-gradient(155deg,#fff,#f0fbfd); }
.home-feature-space { background:linear-gradient(155deg,#fff,#faf5ff); }
.home-feature-schedule .home-hairline-feature,.home-feature-space .home-hairline-feature { width:100%; flex:1; margin:5px auto 0; }
.home-feature-schedule h3,.home-feature-space h3 { margin-top:7px; }
.home-feature-schedule p,.home-feature-space p { min-height:38px; }
.home-feature-top { position:relative; z-index:1; }
.home-feature-top>span:first-child { min-width:30px; min-height:27px; display:grid; place-items:center; border:1px solid #e8e5f4; border-radius:8px; background:#fff; color:#7664ab; }
.home-availability { position:relative; overflow:hidden; grid-template-columns:.82fr 1.18fr; gap:clamp(40px,8vw,115px); border-color:#e6e4f4; border-radius:15px; background:radial-gradient(ellipse at 2% 100%,#cffafe40,transparent 38%),radial-gradient(ellipse at 94% 8%,#ddd6fe60,transparent 40%),linear-gradient(120deg,#f6f4ff,#f0faff); }
.home-availability::after { position:absolute; top:-120px; left:47%; width:260px; height:260px; border:1px solid #8b5cf618; border-radius:50%; box-shadow:0 0 0 31px #8b5cf608; content:""; pointer-events:none; }
.home-availability-card { position:relative; z-index:1; border-color:#e6e3f4; border-radius:13px; box-shadow:0 22px 50px #312e8110; }
.home-availability-track { height:10px; padding:1px; background:#f1eff8; }
.home-about-visual { min-height:390px; border-radius:13px; background:radial-gradient(ellipse at 50% 45%,#54479a,#37327c 69%,#302c70); box-shadow:0 22px 48px #312e8119; }
.home-about-visual::before { background-image:linear-gradient(45deg,transparent 49.7%,#ffffff0c 50%,transparent 50.3%); background-size:28px 28px; }
.home-hairline-about { --hairline-plate:#39347f; --hairline-hi:#f5f3ff; --hairline-edge:#c4b5fd; --hairline-mid:#a5b4fc; --hairline-lo:#7770b5; }
.home-gallery-card,.home-about-visual,.home-availability-card,.home-feature-card { box-shadow:0 10px 28px #312e8108; }
.home-gallery-card { border-radius:12px; }
.home-gallery-card>a { background:#f1effa; }
.home-process-grid { gap:15px; }
.home-process-step { min-height:240px; overflow:hidden; border-radius:13px; background:linear-gradient(145deg,#fff,#fcfbff); box-shadow:0 8px 27px #312e8106; transition:transform .24s,border-color .24s,box-shadow .24s; }
.home-process-step:hover { transform:translateY(-4px); border-color:#cec4ef; box-shadow:0 18px 35px #312e8110; }
.home-process-number { top:17px; left:18px; width:30px; height:25px; display:grid; place-items:center; border:1px solid #e8e5f2; border-radius:8px; background:#fff; color:#7464a4; }
.home-process-icon { width:104px; height:91px; margin:2px 0 16px; }
.home-process-step h3 { font-size:15px; }
.home-process-step p { max-width:300px; }
.home-final { min-height:370px; overflow:hidden; border:1px solid #6155a8; border-radius:15px; background:radial-gradient(ellipse at 16% 45%,#6154a5,#39347f 62%,#312e81); box-shadow:0 28px 70px #312e812b; }
.home-final::before { left:32%; width:630px; height:630px; border-color:#ffffff22; box-shadow:0 0 0 44px #ffffff08,0 0 0 88px #ffffff05,0 0 0 132px #ffffff03; }
.home-final::after { position:absolute; inset:0; background-image:linear-gradient(#ffffff06 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px); background-size:29px 29px; mask-image:linear-gradient(90deg,transparent,#000 80%); content:""; pointer-events:none; }
.home-final-art,.home-final-copy,.home-final-mark { z-index:1; }
.home-final-copy .home-section-index { color:#c4b5fd; }
.home-hairline-final { --hairline-plate:#39347f; --hairline-hi:#f5f3ff; --hairline-edge:#c4b5fd; --hairline-mid:#a5b4fc; --hairline-lo:#7770b5; }
.home-final-mark { color:#ddd6fe70; }
.home-public-body .site-footer { border-top-color:#e6e8f2; background:#f8fafc; }
@media (max-width: 1050px) {
  .home-feature-booking { grid-column:span 6; }
  .home-feature-schedule,.home-feature-space { grid-column:span 3; }
  .home-booking-strip { grid-template-columns:1.2fr .72fr .72fr .72fr; }
  .home-strip-link { grid-column:1/-1; justify-self:end; }
}
@media (max-width: 760px) {
  .home-hero-new { min-height:0; }
  .home-hero-visual { min-height:0; }
  .home-hero-float-one { top:29%; right:4%; }
  .home-hero-float-two { bottom:25%; left:4%; }
  .home-feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-feature-booking { grid-column:1/-1; }
  .home-feature-schedule,.home-feature-space { grid-column:span 1; min-height:300px; }
  .home-booking-strip { grid-template-columns:1fr 1fr 1fr; }
  .home-booking-strip-label { grid-column:1/-1; }
  .home-booking-strip-stat { padding-inline-start:9px; }
  .home-strip-link { grid-column:auto; align-self:center; }
}
@media (max-width: 520px) {
  .home-hero-new { padding:29px 20px 22px; }
  .home-hero-visual { padding:14px 14px 10px; border-radius:12px; box-shadow:0 20px 40px #312e8135,0 0 0 5px #fff9,0 0 0 6px #dcd6f0; }
  .home-hero-visual-top { padding-bottom:8px; }
  .home-hero-code { top:52px; left:15px; font-size:6px; }
  .home-hairline-hero { margin-top:8px; }
  .home-hero-float-one { top:27%; right:3%; gap:6px; padding:6px 8px; }
  .home-hero-float-one>i { width:24px; height:24px; }
  .home-hero-float-one strong { font-size:8px; }
  .home-hero-float-one small { font-size:7px; }
  .home-hero-float-two { bottom:25%; left:3%; padding:7px 9px; font-size:7px; }
  .home-booking-strip { grid-template-columns:1fr 1fr; }
  .home-booking-strip-label { grid-column:1/-1; }
  .home-booking-strip-stat { padding-inline-start:8px; }
  .home-strip-link { grid-column:1/-1; justify-self:start; }
  .home-feature-grid { grid-template-columns:1fr; }
  .home-feature-booking { grid-column:1; grid-template-columns:1fr 1fr; min-height:285px; padding:17px; }
  .home-feature-booking .home-hairline-feature { max-width:230px; }
  .home-feature-schedule,.home-feature-space { grid-column:1; min-height:260px; }
  .home-feature-schedule .home-hairline-feature,.home-feature-space .home-hairline-feature { width:min(100%,220px); }
  .home-feature-schedule p,.home-feature-space p { min-height:0; }
  .home-process-step { min-height:190px; }
  .home-final { min-height:340px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-hero-float { animation:none; }
  .home-process-step:hover { transform:none; }
}
.home-hall-visual { position:relative; z-index:1; min-width:0; min-height:480px; display:flex; align-items:center; justify-content:center; isolation:isolate; overflow:visible; padding:48px 0 40px; border:0; border-radius:0; background:transparent; box-shadow:none; color:#312e81; }
.home-hall-visual::before { position:absolute; z-index:-1; inset:8% -10% 4%; border-radius:50%; background:radial-gradient(ellipse,#c4b5fd3c 0%,#ddd6fe1b 43%,transparent 72%); filter:blur(9px); content:""; pointer-events:none; animation:hall-aura-breathe 7s ease-in-out infinite; }
.home-hall-visual::after { position:absolute; z-index:-1; right:9%; bottom:9%; left:9%; height:17%; border-radius:50%; background:#6d28d918; filter:blur(24px); content:""; pointer-events:none; }
.home-hall-svg { position:relative; z-index:0; display:block; width:min(112%,650px); max-width:none; height:auto; overflow:visible; filter:drop-shadow(0 21px 24px #34277520); }
.home-hall-label { position:absolute; z-index:2; top:5%; right:1%; display:flex; align-items:center; gap:10px; padding:9px 13px; border:1px solid #e7e1f7; border-radius:12px; background:#ffffffed; box-shadow:0 10px 26px #312e8112; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.home-hall-label-icon { width:32px; height:32px; display:grid; place-items:center; border-radius:10px; background:linear-gradient(145deg,#f3e8ff,#e0e7ff); color:#6d28d9; font-size:16px; }
.home-hall-label>span:last-child { display:grid; gap:3px; }
.home-hall-label strong { color:#312e61; font-size:10px; font-weight:800; }
.home-hall-label small { color:#8187a0; font-size:8px; }
.home-hall-live { position:absolute; z-index:2; top:7%; left:3%; display:flex; align-items:center; gap:8px; padding:8px 11px; border:1px solid #e5e5f1; border-radius:99px; background:#ffffffdd; color:#64748b; font-size:9px; font-weight:700; box-shadow:0 8px 22px #312e810c; }
.home-hall-live i { width:7px; height:7px; border-radius:50%; background:#34d399; box-shadow:0 0 0 4px #d1fae5; animation:hall-live-pulse 2s ease-out infinite; }
.home-hall-float { position:absolute; z-index:3; display:flex; align-items:center; gap:9px; border:1px solid #ffffffa8; border-radius:12px; background:#ffffffea; box-shadow:0 15px 34px #312e811a; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); animation:home-float 5.5s ease-in-out infinite; }
.home-hall-float-one { top:31%; right:-1%; padding:9px 12px; }
.home-hall-float-one>i { width:29px; height:29px; display:grid; place-items:center; border-radius:9px; background:#f3e8ff; color:#7c3aed; font-size:14px; font-style:normal; }
.home-hall-float-one>span { display:grid; gap:2px; }
.home-hall-float-one strong { color:#312e61; font-size:9px; }
.home-hall-float-one small { color:#858ba0; font-size:8px; }
.home-hall-float-two { bottom:24%; left:1%; padding:8px 11px; color:#526175; font-size:8px; font-weight:800; }
.home-hall-float-two>i { width:6px; height:6px; border-radius:50%; background:#22d3ee; box-shadow:0 0 0 4px #cffafe; }
.home-hall-float-two b { color:#8b5cf6; }
.home-hall-caption { position:absolute; z-index:2; right:4%; bottom:3%; left:4%; display:flex; align-items:center; gap:12px; padding-top:12px; border-top:1px solid #c8c2e242; color:#737991; font-size:10px; line-height:1.8; }
.home-hall-caption-line { width:25px; height:2px; flex:none; border-radius:9px; background:linear-gradient(90deg,#22d3ee,#8b5cf6); }
.home-hall-caption strong { color:#312e61; font-size:12px; }
.home-hall-caption-code { margin-inline-start:auto; color:#969ab0; font:8px/1.6 Arial,sans-serif; letter-spacing:.1em; text-align:left; }
.hall-screen-glow { transform-origin:center; animation:hall-screen-breathe 4.2s ease-in-out infinite; }
.hall-window-glint { transform-box:fill-box; transform-origin:center; animation:hall-window-sweep 7s ease-in-out infinite; }
.hall-aisle-lights path:nth-child(2) { animation:hall-aisle-pulse 3.8s ease-in-out infinite; }
.hall-scene-sparkles circle { transform-box:fill-box; transform-origin:center; animation:hall-sparkle 3s ease-in-out infinite; }
.hall-scene-sparkles circle:nth-child(2) { animation-delay:.8s; }
.hall-scene-sparkles circle:nth-child(3) { animation-delay:1.5s; }
.hall-scene-sparkles circle:nth-child(4) { animation-delay:2.1s; }
@keyframes hall-aura-breathe { 0%,100% { opacity:.65; transform:scale(.96); } 50% { opacity:1; transform:scale(1.04); } }
@keyframes hall-live-pulse { 0% { box-shadow:0 0 0 0 #34d39955; } 70%,100% { box-shadow:0 0 0 6px #34d39900; } }
@keyframes hall-screen-breathe { 0%,100% { opacity:.24; } 50% { opacity:.64; } }
@keyframes hall-window-sweep { 0%,20% { opacity:.14; transform:translateX(-12px); } 55% { opacity:.48; transform:translateX(5px); } 80%,100% { opacity:.14; transform:translateX(-12px); } }
@keyframes hall-aisle-pulse { 0%,100% { opacity:.45; } 50% { opacity:.95; } }
@keyframes hall-sparkle { 0%,100% { opacity:.25; transform:scale(.7); } 50% { opacity:1; transform:scale(1.5); } }
@media (max-width: 980px) {
  .home-hall-visual { min-height:430px; padding-block:42px; }
  .home-hall-svg { width:min(112%,580px); }
}
@media (max-width: 760px) {
  .home-hall-visual { width:min(100%,580px); min-height:0; min-height:clamp(320px,76vw,450px); justify-self:center; margin:-7px auto 0; padding:32px 0 42px; }
  .home-hall-svg { width:108%; }
  .home-hall-label { top:2%; right:1%; }
  .home-hall-live { top:4%; left:1%; }
  .home-hall-float-one { right:-1%; }
  .home-hall-float-two { bottom:23%; left:-1%; }
  .home-hall-caption { bottom:1%; }
}
@media (max-width: 520px) {
  .home-hall-visual { min-height:clamp(300px,83vw,390px); margin-top:-8px; padding-block:27px 42px; }
  .home-hall-svg { width:116%; }
  .home-hall-label { gap:7px; padding:7px 9px; }
  .home-hall-label-icon { width:27px; height:27px; font-size:13px; }
  .home-hall-label strong { font-size:8px; }
  .home-hall-label small { font-size:7px; }
  .home-hall-live { gap:6px; padding:7px 8px; font-size:7px; }
  .home-hall-live i { width:6px; height:6px; }
  .home-hall-float-one { top:29%; right:-1%; gap:6px; padding:7px 8px; }
  .home-hall-float-one>i { width:24px; height:24px; }
  .home-hall-float-one strong { font-size:8px; }
  .home-hall-float-one small { font-size:7px; }
  .home-hall-float-two { bottom:22%; left:-1%; gap:6px; padding:7px 8px; font-size:7px; }
  .home-hall-caption { right:2%; left:2%; gap:8px; font-size:8px; }
  .home-hall-caption strong { font-size:10px; }
  .home-hall-caption-code { font-size:7px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-hall-visual::before,.home-hall-live i,.home-hall-float,.hall-screen-glow,.hall-window-glint,.hall-aisle-lights path:nth-child(2),.hall-scene-sparkles circle { animation:none; }
}
.reports-row-actions .reports-action-approve:hover { background:#def7e9; }
.reports-row-actions .reports-action-reject:hover { background:#ffe5e9; }
.reports-row-actions .reports-action-delete:hover { background:#ffe5e9; }
.reports-reject-dialog { width:min(440px,calc(100% - 28px)); max-width:none; padding:0; border:1px solid #eeeaf2; border-radius:18px; background:#fff; color:#39354b; box-shadow:0 25px 80px #17112640; }
.reports-reject-dialog::backdrop { background:#15112470; backdrop-filter:blur(3px); }
.reports-reject-dialog[open] { animation:reports-dialog-enter .2s ease both; }
@keyframes reports-dialog-enter { from { opacity:0; transform:translateY(8px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
.reports-dialog-content { display:grid; gap:10px; padding:23px; }
.reports-dialog-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:13px; background:#fff0f1; color:#d7445e; font-size:19px; font-weight:800; }
.reports-dialog-content h2 { margin:0; color:#302c46; font-size:17px; }
.reports-dialog-content p { margin:0 0 3px; color:#898394; font-size:11px; }
.reports-dialog-content label { color:#4b4659; font-size:11px; font-weight:800; }
.reports-dialog-content label span { color:#dc4058; }
.reports-dialog-content textarea { width:100%; min-height:100px; resize:vertical; padding:10px 12px; border:1px solid #e8e4ed; border-radius:10px; outline:0; color:#494458; font-size:11px; }
.reports-dialog-content textarea:focus { border-color:#bba7ed; box-shadow:0 0 0 3px #8055e714; }
.reports-dialog-actions { display:flex; gap:8px; padding-top:3px; }
.reports-bulk-bar { width:min(560px,calc(100% - 30px)); min-height:62px; position:fixed; z-index:60; right:50%; bottom:19px; display:flex; align-items:center; gap:12px; padding:9px 13px; border:1px solid #eee8f8; border-radius:15px; background:#fff; box-shadow:0 14px 44px #21144225; opacity:0; pointer-events:none; transform:translate(50%,calc(100% + 30px)); transition:transform .32s cubic-bezier(.2,.75,.25,1),opacity .22s; }
.reports-bulk-bar.is-visible { opacity:1; pointer-events:auto; transform:translate(50%,0); }
.reports-bulk-bar>span { flex:none; color:#6d6878; font-size:10px; }
.reports-bulk-bar>span strong { color:#5e3fb1; font-size:13px; }
.reports-bulk-bar>div { display:flex; gap:7px; margin-inline-start:auto; }
.reports-bulk-bar .button { min-height:37px; padding:7px 11px; font-size:10px; white-space:nowrap; }
.reports-bulk-clear { width:30px; height:30px; flex:none; border:0; border-radius:9px; background:#f5f3f7; color:#817b8c; cursor:pointer; font-size:21px; line-height:1; }
.reports-bulk-clear:hover { background:#eeeaf4; color:#514b61; }
@media (max-width: 1050px) {
  .reports-filters { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .reports-search-field { grid-column:span 2; }
  .reports-filter-actions { align-self:end; }
}
@media (max-width: 700px) {
  .reports-heading { align-items:flex-start; gap:12px; }
  .reports-heading h1 { font-size:23px; }
  .reports-heading p { max-width:250px; font-size:11px; line-height:1.7; }
  .reports-export-menu summary { min-height:38px; padding:8px 10px; font-size:11px; white-space:nowrap; }
  .reports-export-options { left:0; width:190px; }
  .reports-tabs { height:53px; overflow-x:auto; margin-inline:-3px; scrollbar-width:none; }
  .reports-tabs::-webkit-scrollbar { display:none; }
  .reports-tab { flex:none; min-width:max-content; gap:6px; padding-inline:10px; font-size:10px; }
  .reports-tab-indicator { display:none; }
  .reports-filter-summary { min-height:51px; padding:10px 13px; }
  .reports-filters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding:0 12px 13px; }
  .reports-search-field { grid-column:1/-1; }
  .reports-filter-actions { grid-column:1/-1; }
  .reports-filter-actions .button { flex:1; }
  .reports-table-heading { min-height:57px; padding:10px 13px; }
  .reports-table-heading>small { display:none; }
  .reports-table-wrap { overflow-x:auto; padding:10px; overscroll-behavior-inline:contain; scrollbar-width:thin; scrollbar-color:#ded5ef transparent; }
  .reports-table-wrap .reports-table,.reports-table-wrap .reports-table tbody { width:max-content; min-width:0; }
  .reports-table-wrap .reports-table thead { display:none; }
  .reports-table-wrap .reports-table tbody { display:flex; gap:10px; }
  .reports-table-wrap .reports-table tbody tr { width:min(84vw,360px); min-width:min(84vw,360px); display:grid; grid-template-columns:1fr 1fr; align-content:start; gap:0 12px; padding:9px 12px; margin:0; border:1px solid #f0edf4; border-radius:13px; background:#fff; scroll-snap-align:start; }
  .reports-table-wrap .reports-table td { width:auto; min-width:0; min-height:42px; display:flex; align-items:center; justify-content:space-between; gap:7px; padding:7px 0; border-bottom:1px solid #f5f3f7; text-align:left; }
  .reports-table-wrap .reports-table td::before { content:attr(data-label); flex:none; color:#a09bab; font-size:9px; font-weight:700; text-align:right; }
  .reports-table-wrap .reports-table .reports-select-cell { grid-column:1/-1; justify-content:flex-start; width:auto; padding:1px 0 6px; text-align:right; }
  .reports-table-wrap .reports-table .reports-select-cell::before { content:none; }
  .reports-table-wrap .reports-table .reports-title-cell { grid-column:1/-1; display:grid; justify-content:stretch; align-items:start; }
  .reports-table-wrap .reports-table .reports-title-cell::before { content:attr(data-label); }
  .reports-title-link { max-width:100%; }
  .reports-author { min-width:0; }
  .reports-author strong { max-width:95px; }
  .reports-table-wrap .reports-table td:last-child { grid-column:1/-1; border-bottom:0; }
  .reports-table-wrap .reports-table td:last-child::before { align-self:center; }
  .reports-row-actions { flex-wrap:wrap; }
  .reports-bulk-bar { bottom:10px; gap:7px; padding:8px; }
  .reports-bulk-bar>div { gap:5px; }
  .reports-bulk-bar .button { min-height:34px; padding:6px 8px; font-size:9px; }
  .reports-bulk-clear { width:27px; height:27px; }
  .reports-dialog-content { padding:19px; }
}
@media (prefers-reduced-motion: reduce) {
  .reports-page *, .reports-page *::before, .reports-page *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

.user-reports-page { --user-reports-accent:#7043d5; }
.user-reports-tabs { height:57px; position:relative; display:flex; margin-bottom:16px; border-bottom:1px solid #eae7f0; }
.user-reports-tab { min-width:0; flex:1; display:flex; align-items:center; justify-content:center; gap:7px; padding:8px 7px 11px; color:#827d90; font-size:12px; font-weight:700; white-space:nowrap; transition:color .2s; }
.user-reports-tab:hover,.user-reports-tab.is-active { color:#49348c; }
.user-reports-tab.is-active { font-weight:800; }
.user-reports-tab-count { min-width:22px; padding:3px 6px; border-radius:20px; background:#f0edf5; color:#7b7488; font-size:10px; text-align:center; }
.user-reports-tab-count.reports-count-all { background:#eee8fb; color:#7043c4; }
.user-reports-tab-count.reports-count-submitted { background:#fff1ce; color:#b77412; }
.user-reports-tab-count.reports-count-approved { background:#def7e9; color:#138353; }
.user-reports-tab-count.reports-count-rejected { background:#ffe5e9; color:#ce4861; }
.user-reports-tab-indicator { width:20%; height:3px; position:absolute; right:calc(var(--active-index) * 20%); bottom:-1px; border-radius:4px 4px 0 0; background:linear-gradient(90deg,#8c68e5,#6340c4); transition:right .32s cubic-bezier(.2,.75,.25,1); }
.user-reports-filters { display:grid; grid-template-columns:minmax(190px,1.7fr) repeat(2,minmax(145px,.8fr)) auto; align-items:end; gap:12px; padding:16px; margin-bottom:17px; }
.user-reports-filter-field { min-width:0; display:grid; gap:6px; color:#64748b; font-size:11px; font-weight:700; }
.user-reports-filter-field input { width:100%; min-height:40px; padding:8px 10px; border:1px solid #e2e8f0; border-radius:9px; outline:0; background:white; color:#334155; font-size:12px; }
.user-reports-filter-field input:focus { border-color:#bba7ed; box-shadow:0 0 0 3px #8055e714; }
.user-reports-filter-actions { display:flex; gap:7px; }
.user-reports-filter-actions .button { min-height:40px; padding:7px 11px; white-space:nowrap; }
.user-reports-filter-error { grid-column:1/-1; margin:0; color:#be123c; font-size:11px; }
.user-reports-results { overflow:hidden; padding:0 19px 16px; }
.user-reports-results-heading { min-height:66px; display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid #f1eef5; }
.user-reports-results-heading>div:first-child { display:flex; align-items:center; gap:9px; }
.user-reports-results-heading h2 { margin:0; color:#302c46; font-size:15px; font-weight:800; }
.user-reports-results-heading>div:first-child>span { padding:4px 8px; border-radius:20px; background:#f2eff8; color:#7555b6; font-size:10px; font-weight:700; }
.user-reports-view-toggle { display:flex; gap:4px; padding:3px; border:1px solid #eeeaf4; border-radius:10px; background:#faf9fc; }
.user-reports-view-toggle a { width:32px; height:30px; display:grid; place-items:center; border-radius:7px; color:#8e8999; }
.user-reports-view-toggle a.is-active { background:#fff; color:#7043d5; box-shadow:0 1px 4px #25163f14; }
.user-reports-view-toggle svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.user-report-collection { display:grid; gap:13px; padding-top:16px; }
.user-report-collection.is-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.user-report-collection.is-list { grid-template-columns:minmax(0,1fr); }
.user-report-card { min-width:0; min-height:218px; display:flex; flex-direction:column; justify-content:space-between; gap:15px; padding:16px; border:1px solid #eeebf3; border-radius:14px; background:#fff; box-shadow:0 4px 15px #21144208; animation:user-report-enter .38s both; animation-delay:calc(var(--card-index,0) * 55ms); transition:opacity .24s,transform .24s,border-color .18s,box-shadow .18s; }
.user-report-card:hover { border-color:#ddd2f3; box-shadow:0 9px 25px #21144210; transform:translateY(-2px); }
.user-report-card.is-removing { opacity:0; transform:translateY(8px) scale(.98); pointer-events:none; }
@keyframes user-report-enter { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
.user-report-card-main { min-width:0; }
.user-report-card-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.user-report-card-top time { color:#9a95a3; font-size:10px; direction:ltr; }
.user-report-card h3 { margin:12px 0 6px; overflow:hidden; color:#29253a; font-size:15px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.user-report-card h3 a:hover { color:#7043d5; }
.user-report-excerpt { min-height:42px; margin:0; display:-webkit-box; overflow:hidden; color:#817c8d; font-size:11px; line-height:1.85; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.user-report-media { display:flex; flex-wrap:wrap; gap:11px; padding-top:13px; color:#8d8798; }
.user-report-media span { display:inline-flex; align-items:center; gap:4px; font-size:10px; }
.user-report-media svg { width:14px; height:14px; fill:none; stroke:#9287aa; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.user-report-actions { min-height:30px; display:flex; align-items:center; justify-content:flex-end; gap:7px; padding-top:10px; border-top:1px solid #f3f1f6; }
.user-report-actions form { display:inline-flex; }
.user-report-action { min-width:57px; min-height:30px; display:inline-flex; align-items:center; justify-content:center; gap:5px; padding:5px 9px; border:1px solid #ebe8f1; border-radius:8px; background:#fff; color:#706b7c; cursor:pointer; font-size:10px; font-weight:800; }
.user-report-edit:hover { border-color:#cfc1ef; background:#f8f5ff; color:#6842c5; }
.user-report-delete { border-color:#f7dfe3; color:#c2415c; }
.user-report-delete:hover { background:#fff5f6; border-color:#f1bec8; }
.user-report-view { color:#6842c5; }
.user-report-view:hover { background:#f8f5ff; }
.user-report-view svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.user-report-collection.is-list .user-report-card { min-height:0; flex-direction:row; align-items:center; gap:20px; padding:13px 16px; }
.user-report-collection.is-list .user-report-card-main { flex:1; }
.user-report-collection.is-list .user-report-card h3 { max-width:100%; margin-top:7px; }
.user-report-collection.is-list .user-report-excerpt { min-height:0; -webkit-line-clamp:1; }
.user-report-collection.is-list .user-report-media { padding-top:8px; }
.user-report-collection.is-list .user-report-actions { flex:none; padding:0; border:0; }
.user-reports-empty { padding:45px 15px 38px; }
.user-reports-empty .button { margin-top:7px; }
.user-reports-pagination { padding-bottom:2px; }
.user-report-delete-dialog { width:min(430px,calc(100% - 30px)); max-width:none; padding:0; border:1px solid #eeeaf2; border-radius:18px; background:#fff; color:#39354b; box-shadow:0 25px 80px #17112640; }
.user-report-delete-dialog::backdrop { background:#15112470; backdrop-filter:blur(3px); }
.user-report-delete-dialog[open] { animation:user-report-enter .2s ease both; }
.user-report-delete-dialog-content { display:grid; gap:11px; padding:24px; }
.user-report-delete-icon { width:39px; height:39px; display:grid; place-items:center; border-radius:13px; background:#fff0f1; color:#d7445e; font-size:22px; font-weight:800; }
.user-report-delete-dialog h2 { margin:0; color:#302c46; font-size:17px; }
.user-report-delete-dialog p { margin:0 0 4px; color:#898394; font-size:12px; line-height:1.8; }
.user-report-delete-dialog-actions { display:flex; justify-content:flex-start; gap:8px; padding-top:4px; }
@media (max-width:1100px) {
  .user-report-collection.is-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .user-reports-filters { grid-template-columns:minmax(170px,1.4fr) repeat(2,minmax(125px,.8fr)); }
  .user-reports-filter-actions { grid-column:1/-1; justify-content:flex-end; }
}
@media (max-width:700px) {
  .user-reports-tabs { height:53px; overflow-x:auto; scrollbar-width:none; }
  .user-reports-tabs::-webkit-scrollbar { display:none; }
  .user-reports-tab { flex:none; min-width:max-content; gap:6px; padding-inline:11px; font-size:11px; }
  .user-reports-tab-indicator { right:calc(var(--active-index) * 20%); }
  .user-reports-filters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding:12px; }
  .user-reports-filter-field:first-of-type { grid-column:1/-1; }
  .user-reports-filter-actions { grid-column:1/-1; }
  .user-reports-filter-actions .button { flex:1; }
  .user-reports-results { padding-inline:12px; }
  .user-reports-results-heading { min-height:58px; }
  .user-report-collection.is-grid { grid-template-columns:minmax(0,1fr); gap:10px; padding-top:12px; }
  .user-report-card { min-height:194px; }
  .user-report-collection.is-list .user-report-card { align-items:flex-start; flex-direction:column; gap:11px; }
  .user-report-collection.is-list .user-report-actions { width:100%; justify-content:flex-end; padding-top:9px; border-top:1px solid #f3f1f6; }
  .user-report-delete-dialog-content { padding:20px; }
}
@media (prefers-reduced-motion: reduce) {
  .user-reports-page *, .user-reports-page *::before, .user-reports-page *::after,
  .user-report-delete-dialog, .user-report-delete-dialog * { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
.report-create-heading { align-items:center; margin-bottom:19px; }
.report-rejection-note { margin-bottom:16px; }
.report-editor-card { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); overflow:hidden; }
.report-writing-panel,.report-media-panel { min-width:0; padding:27px; }
.report-writing-panel { border-left:1px solid #f0f1f6; }
.report-media-panel { background:linear-gradient(155deg,#fcfbff,#fff 58%); }
.report-section-heading { display:flex; align-items:center; gap:11px; margin-bottom:19px; }
.report-section-icon { width:40px; height:40px; flex:none; display:grid; place-items:center; border-radius:13px; font-size:19px; }
.report-writing-icon { color:#6d28d9; background:#f3e8ff; }
.report-media-icon { color:#0891b2; background:#cffafe; }
.report-section-heading>div { min-width:0; flex:1; }
.report-section-heading h2 { margin:0 0 2px; color:#1e1b4b; font-size:15px; font-weight:800; }
.report-section-heading p { margin:0; color:#94a3b8; font-size:10px; }
.report-save-indicator { display:inline-flex; align-items:center; gap:6px; color:#059669; font-size:10px; white-space:nowrap; }
.report-save-indicator i { width:7px; height:7px; border-radius:50%; background:#10b981; }
.report-save-indicator.is-saving { color:#b45309; }
.report-save-indicator.is-saving i { background:#f59e0b; animation:report-save-pulse 1s ease-in-out infinite; }
.report-save-indicator.is-error { color:#e11d48; }
.report-save-indicator.is-error i { background:#f43f5e; }
@keyframes report-save-pulse { 50% { opacity:.35; transform:scale(.75); } }
.report-title-input { width:100%; min-height:67px; margin:2px 0 14px; padding:12px 3px; border:0; border-bottom:1px solid #e9eaf1; border-radius:0; outline:0; color:#1e1b4b; background:transparent; font-size:clamp(24px,3vw,32px); font-weight:800; }
.report-title-input::placeholder { color:#c4c7d2; }
.report-title-input:focus { border-color:#8b5cf6; box-shadow:0 1px 0 #8b5cf6; }
.report-extra-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0 0 18px; }
.report-extra-fields label { display:grid; gap:6px; color:#64748b; font-size:11px; font-weight:700; }
.report-extra-fields input { width:100%; min-height:42px; padding:9px 11px; border:1px solid #e5e7eb; border-radius:10px; outline:0; color:#334155; background:#fff; font:inherit; font-weight:500; }
.report-extra-fields input:focus { border-color:#a78bfa; box-shadow:0 0 0 3px #8b5cf622; }
.report-extra-fields input::placeholder { color:#b8beca; }
.report-body-wrap { overflow:hidden; border:1px solid #e8eaf1; border-radius:15px; background:#fff; transition:border-color .2s,box-shadow .2s; }
.report-body-wrap:focus-within { border-color:#a78bfa; box-shadow:0 0 0 3px #8b5cf611; }
.report-toolbar { height:45px; display:flex; align-items:center; gap:5px; padding:5px 10px; border-bottom:1px solid #f0f1f5; background:#fcfcfe; }
.report-toolbar button { min-height:31px; padding:5px 10px; border:0; border-radius:8px; background:transparent; color:#64748b; font-size:11px; cursor:pointer; }

.report-toolbar button:hover { background:#f3e8ff; color:#6d28d9; }
.report-toolbar>span { height:19px; border-left:1px solid #e2e8f0; }
.report-body-input { display:block; width:100%; min-height:360px; padding:19px 20px; border:0; outline:0; resize:none; color:#334155; background:#fff; font-size:14px; line-height:2.05; }
.report-body-input::placeholder { color:#c0c5d0; }
.report-editor-footer { display:flex; justify-content:space-between; gap:10px; padding:10px 17px; border-top:1px solid #f1f2f6; color:#a1a8b5; font-size:10px; }
.report-editor-footer b { color:#64748b; font-variant-numeric:tabular-nums; }
.report-media-count { margin:-5px 0 11px; color:#94a3b8; font-size:10px; }
.report-upload-group { margin-top:11px; padding:12px; border:1px solid #edf0f5; border-radius:14px; background:#fff; }
.report-upload-heading { display:flex; align-items:center; gap:9px; margin-bottom:10px; }
.report-upload-heading>span { width:30px; height:30px; display:grid; place-items:center; border-radius:10px; font-size:15px; }
.report-upload-heading strong,.report-upload-heading small { display:block; }
.report-upload-heading strong { color:#334155; font-size:11px; }
.report-upload-heading small { margin-top:1px; color:#a0a6b3; font-size:9px; }
.report-zone-images .report-upload-heading>span { color:#7c3aed; background:#f3e8ff; }
.report-zone-videos .report-upload-heading>span { color:#0891b2; background:#cffafe; }
.report-zone-files .report-upload-heading>span { color:#059669; background:#d1fae5; }
.report-dropzone { min-height:69px; display:flex; align-items:center; justify-content:center; gap:9px; position:relative; overflow:hidden; padding:10px; border:1px dashed #c4b5fd; border-radius:11px; background:#faf8ff; color:#6d28d9; cursor:pointer; transition:background .2s,border-color .2s,transform .2s; }
.report-dropzone input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.report-dropzone-icon { width:27px; height:27px; display:grid; place-items:center; border-radius:9px; background:#f3e8ff; font-size:17px; }
.report-dropzone strong,.report-dropzone small { display:block; text-align:right; }
.report-dropzone strong { font-size:10px; }
.report-dropzone small { margin-top:1px; color:#9ca3b4; font-size:9px; }
.report-zone-videos .report-dropzone { border-color:#a5f3fc; background:#f0fdff; color:#0e7490; }
.report-zone-videos .report-dropzone-icon { background:#cffafe; }
.report-zone-files .report-dropzone { border-color:#a7f3d0; background:#f0fdf8; color:#047857; }
.report-zone-files .report-dropzone-icon { background:#d1fae5; }
.report-dropzone.dragover { transform:scale(1.015); animation:report-drop-shake .28s ease-in-out infinite alternate; }
.report-zone-images .report-dropzone.dragover { border-color:#7c3aed; background:#f3e8ff; }
.report-zone-videos .report-dropzone.dragover { border-color:#0891b2; background:#cffafe; }
.report-zone-files .report-dropzone.dragover { border-color:#059669; background:#d1fae5; }
@keyframes report-drop-shake { to { transform:translateX(2px) scale(1.015); } }
.report-file-list { display:grid; gap:7px; margin-top:8px; }
.report-file-item { min-width:0; min-height:52px; display:flex; align-items:center; gap:9px; position:relative; padding:7px 8px; border:1px solid #eff0f5; border-radius:11px; background:#fff; cursor:grab; transition:opacity .18s,transform .18s,box-shadow .18s; }
.report-file-item.is-dragging { opacity:.42; }
.report-file-item:hover { border-color:#ddd6fe; box-shadow:0 5px 13px #312e810b; }
.report-file-thumbnail { width:39px; height:37px; flex:none; display:grid; place-items:center; overflow:hidden; border-radius:8px; object-fit:cover; color:#6d28d9; background:#f3e8ff; font-size:10px; font-weight:800; }
.report-video-thumbnail { color:#0e7490; background:#cffafe; }
.report-document-thumbnail { color:#047857; background:#d1fae5; }
.report-file-info { min-width:0; flex:1; display:grid; gap:2px; }
.report-file-info strong { overflow:hidden; color:#475569; font-size:10px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.report-file-info small { color:#a1a8b5; font-size:9px; line-height:1.4; }
.report-file-delete { width:25px; height:25px; flex:none; display:grid; place-items:center; border:0; border-radius:8px; background:#fff1f2; color:#e11d48; font-size:18px; line-height:1; cursor:pointer; }
.report-file-delete:disabled { opacity:.5; cursor:wait; }
.report-file-progress { position:absolute; right:8px; bottom:2px; left:8px; height:2px; overflow:hidden; border-radius:3px; background:#f1f5f9; }
.report-file-progress i { display:block; width:0; height:100%; background:#6366f1; transition:width .15s linear; }
.report-file-item:not(.is-uploading):not(.is-uploaded):not(.has-error) .report-file-progress { display:none; }
.report-file-item.is-uploaded .report-file-progress i { background:#10b981; }
.report-file-item.has-error .report-file-progress i { background:#f43f5e; }
.report-file-item.has-error .report-file-info small { color:#e11d48; }
.report-file-enter { animation:report-file-appear .24s cubic-bezier(.2,.8,.2,1) both; }
@keyframes report-file-appear { from { opacity:0; transform:scale(.94) translateY(4px); } to { opacity:1; transform:scale(1) translateY(0); } }
.report-upload-hint { margin:10px 2px 0; color:#a1a8b5; font-size:9px; line-height:1.7; }
.report-action-bar { position:fixed; z-index:25; right:0; bottom:0; left:0; min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px max(22px,calc((100vw - 1100px)/2)) calc(10px + env(safe-area-inset-bottom)); border-top:1px solid #e9e8ef; background:#ffffffed; box-shadow:0 -10px 30px #20204012; backdrop-filter:blur(14px); }
.report-action-bar>div { display:flex; gap:9px; }
.report-action-bar .button { min-width:139px; }
.report-submit-button { min-width:180px !important; }
.report-submit-button span { font-size:17px; }
.report-editor-card { margin-bottom:100px; }
.report-confirm-dialog,.report-submitted-dialog { width:min(440px,calc(100% - 32px)); padding:30px; border:1px solid #eceaf4; border-radius:21px; color:#334155; box-shadow:0 28px 90px #0f172a3b; text-align:center; }
.report-confirm-dialog::backdrop,.report-submitted-dialog::backdrop { background:#0f172a78; backdrop-filter:blur(4px); }
.report-confirm-symbol { width:51px; height:51px; display:grid; place-items:center; margin:0 auto 13px; border-radius:17px; color:#b45309; background:#fef3c7; font-size:25px; font-weight:800; }
.report-confirm-dialog h2,.report-submitted-dialog h2 { margin:0 0 7px; color:#1e1b4b; font-size:20px; }
.report-confirm-dialog p,.report-submitted-dialog p { margin:0; color:#64748b; font-size:12px; line-height:1.9; }
.report-confirm-dialog>div:last-child { display:flex; justify-content:center; gap:8px; margin-top:20px; }
.report-submitted-dialog { padding:37px 30px; }
.report-submitted-check { width:65px; height:65px; display:grid; place-items:center; margin:0 auto 15px; border-radius:23px; color:#fff; background:#10b981; box-shadow:0 0 0 9px #d1fae5; font-size:34px; animation:report-success-pop .45s cubic-bezier(.2,.8,.2,1.2) both; }
@keyframes report-success-pop { from { opacity:0; transform:scale(.45) rotate(-20deg); } to { opacity:1; transform:scale(1) rotate(0); } }
@media (max-width: 980px) {
  .report-editor-card { grid-template-columns:minmax(0,1fr); }
  .report-writing-panel { border-left:0; border-bottom:1px solid #f0f1f6; }
  .report-media-panel { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:10px; }
  .report-media-panel>.report-section-heading,.report-media-panel>.report-media-count,.report-media-panel>.report-upload-hint { grid-column:1/-1; }
  .report-media-panel>.report-section-heading { margin-bottom:4px; }
  .report-media-panel>.report-media-count { margin:0; }
  .report-upload-group { margin-top:0; }
  .report-media-panel>.report-upload-hint { margin:0; }
}
@media (max-width: 620px) {
  .report-writing-panel,.report-media-panel { padding:18px 15px; }
  .report-section-heading { align-items:flex-start; }
  .report-section-heading p { max-width:195px; line-height:1.6; }
  .report-save-indicator { margin-inline-start:auto; font-size:9px; }
  .report-media-panel { grid-template-columns:minmax(0,1fr); }
  .report-media-panel>.report-section-heading,.report-media-panel>.report-media-count,.report-media-panel>.report-upload-hint { grid-column:auto; }
  .report-editor-footer { font-size:9px; }
  .report-action-bar { min-height:69px; padding-inline:12px; }
  .report-action-bar .report-save-indicator { display:none; }
  .report-action-bar>div { width:100%; }
  .report-action-bar .button { min-width:0; flex:1; padding-inline:9px; font-size:11px; }
  .report-submit-button { min-width:0 !important; }
  .report-editor-card { margin-bottom:87px; }
  .report-confirm-dialog,.report-submitted-dialog { padding:25px 19px; }
  .report-confirm-dialog>div:last-child .button { flex:1; padding-inline:8px; font-size:11px; }
}
@media (prefers-reduced-motion: reduce) {
  .report-dropzone.dragover,.report-file-enter,.report-save-indicator.is-saving i,.report-submitted-check { animation:none; }
  .report-file-item,.report-file-progress i,.report-dropzone { transition:none; }
}
.report-view { display:grid; gap:15px; }
.report-view-heading { margin-bottom:2px; }
.report-view-heading-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.report-view-paper { padding:23px 25px; }
.report-view-paper .report-title { margin:8px 0 12px; }
.report-view-meta { display:flex; flex-wrap:wrap; gap:20px; }
.report-view-meta>span { display:grid; gap:3px; }
.report-detail-meta { display:flex; flex-wrap:wrap; gap:18px; margin:0 0 14px; }
.report-detail-meta>span { display:grid; gap:3px; }
.report-detail-meta small { color:#9aa3b4; font-size:9px; }
.report-detail-meta strong { color:#59647a; font-size:11px; font-weight:700; }
.report-view-meta small { color:#9aa3b4; font-size:9px; }
.report-view-meta time { color:#59647a; font-size:10px; font-weight:700; }
.report-status-card { padding:19px 23px 15px; }
.report-status-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.report-status-heading h2 { margin:2px 0 0; color:#24304a; font-size:15px; font-weight:800; }
.report-readonly-label,.report-readonly-lock { display:inline-flex; align-items:center; gap:6px; color:#667085; font-size:10px; font-weight:700; }
.report-readonly-label svg,.report-readonly-lock svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.report-readonly-lock { min-height:38px; padding:7px 11px; border:1px solid #e6e8ee; border-radius:10px; background:#f8fafc; }
.report-stepper { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:20px 0 0; padding:0; list-style:none; }
.report-step { min-width:0; position:relative; display:grid; grid-template-rows:34px auto; justify-items:center; gap:7px; text-align:center; }
.report-step:not(:last-child)::after { content:""; position:absolute; z-index:0; top:15px; left:0; right:50%; height:3px; border-radius:5px; background:#e8eaf0; transform:scaleX(0); transform-origin:right center; }
.report-step.is-complete:not(:last-child)::after { background:#a79add; animation:report-step-draw .62s cubic-bezier(.2,.8,.2,1) calc(var(--step-index,0) * 150ms) forwards; }
.report-step:nth-child(1) { --step-index:1; }
.report-step:nth-child(2) { --step-index:2; }
@keyframes report-step-draw { to { transform:scaleX(1); } }
.report-step-marker { z-index:1; width:34px; height:34px; display:grid; place-items:center; border:2px solid #e2e5ec; border-radius:50%; background:#fff; color:#a3aab7; font-size:11px; font-weight:800; transition:background .2s,border-color .2s,color .2s,box-shadow .2s; }
.report-step.is-complete .report-step-marker { border-color:#a79add; background:#f3f0ff; color:#6657aa; }
.report-step-copy { min-width:0; display:grid; justify-items:center; gap:3px; }
.report-step-copy strong { color:#8992a2; font-size:10px; }
.report-step-copy small { color:#a2a9b6; font-size:9px; }
.report-step.is-complete .report-step-copy strong { color:#525d72; }
.report-step.is-current .report-step-marker { border-color:#6d5bc0; background:#6d5bc0; color:#fff; box-shadow:0 0 0 4px #eeebfa; }
.report-step.is-current .report-step-copy strong { color:#4f46a5; }
.report-stepper-submitted .report-step:nth-child(2).is-current .report-step-marker { border-color:#d99513; background:#e9a51c; box-shadow:0 0 0 4px #fef3c7; }
.report-stepper-submitted .report-step:nth-child(2).is-current .report-step-copy strong { color:#a16207; }
.report-stepper-approved .report-step-final.is-current .report-step-marker { border-color:#059669; background:#059669; box-shadow:0 0 0 4px #d1fae5; }
.report-stepper-approved .report-step-final.is-current .report-step-copy strong { color:#047857; }
.report-stepper-rejected .report-step-final.is-current .report-step-marker { border-color:#e11d48; background:#e11d48; box-shadow:0 0 0 4px #ffe4e6; }
.report-stepper-rejected .report-step-final.is-current .report-step-copy strong { color:#be123c; }
.report-stepper-rejected .report-step:nth-child(2)::after { background:#fda4af; }
.report-rejection-card { display:flex; align-items:center; gap:13px; padding:17px 19px; border:1px solid #ffe0e7; border-radius:16px; background:linear-gradient(115deg,#fff5f6,#fffafa); animation:report-fade-up .48s 100ms both; }
.report-rejection-icon { width:39px; height:39px; flex:none; display:grid; place-items:center; border-radius:13px; background:#ffe4e9; color:#c43a5a; font-size:19px; font-weight:900; }
.report-rejection-copy { min-width:0; flex:1; }
.report-rejection-copy h2 { margin:0 0 3px; color:#a33452; font-size:13px; }
.report-rejection-copy p { margin:0; color:#8e6571; font-size:11px; line-height:1.8; }
.report-rejection-button { flex:none; display:inline-flex; align-items:center; gap:8px; border:1px solid #ffd8e0; border-radius:10px; padding:9px 13px; background:#fff; color:#bc3454; font-size:10px; font-weight:800; }
.report-rejection-button:hover { background:#fff0f3; }
.report-reading-card { padding:22px 25px; }
.report-user-reading { white-space:normal; font-size:14px; line-height:2.15; }
.report-view .report-media-section { padding:21px 24px; }
.report-view-bottom-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:9px; padding:3px 0 15px; }
.report-view .report-image-grid { grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); }
.report-view .report-image-button { animation:report-image-in .38s cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--image-index,0) * 45ms); }
.report-view .report-image-button:nth-child(1) { --image-index:1; }
.report-view .report-image-button:nth-child(2) { --image-index:2; }
.report-view .report-image-button:nth-child(3) { --image-index:3; }
.report-view .report-image-button:nth-child(4) { --image-index:4; }
.report-view .report-image-button:nth-child(5) { --image-index:5; }
.report-view .report-image-button:nth-child(6) { --image-index:6; }
@media (max-width: 700px) {
  .notification-card { align-items:flex-start; flex-wrap:wrap; padding:14px; }
  .notification-mark { flex-basis:36px; width:36px; height:36px; }
  .notification-content { width:calc(100% - 52px); flex:none; }
  .notification-open-form { margin-inline-start:50px; }
  .report-view-heading { align-items:flex-start; }
  .report-view-heading-actions { width:100%; }
  .report-view-heading-actions>.button,.report-view-heading-actions>.inline-form { flex:1; }
  .report-view-heading-actions>.inline-form .button { width:100%; }
  .report-view-paper,.report-reading-card,.report-view .report-media-section { padding:17px; }
  .report-status-card { padding:16px 13px 13px; }
  .report-stepper { margin-top:17px; }
  .report-step:not(:last-child)::after { top:14px; }
  .report-step-marker { width:31px; height:31px; }
  .report-step { grid-template-rows:31px auto; }
  .report-step-copy strong { font-size:9px; }
  .report-step-copy small { font-size:8px; }
  .report-readonly-label { font-size:9px; }
  .report-rejection-card { align-items:flex-start; flex-wrap:wrap; padding:14px; }
  .report-rejection-copy { width:calc(100% - 55px); flex:none; }
  .report-rejection-button { margin-inline-start:52px; }
  .report-view-bottom-actions { display:grid; grid-template-columns:1fr 1fr; }
  .report-view-bottom-actions>.button,.report-view-bottom-actions>.inline-form { width:100%; }
  .report-view-bottom-actions>.inline-form .button { width:100%; }
}
@media (prefers-reduced-motion: reduce) {
  .report-view .report-enter,.report-view .report-image-button,.report-rejection-card,
  .report-step.is-complete:not(:last-child)::after { animation:none !important; }
}
.site-footer { min-height:0; display:grid; justify-items:center; gap:5px; padding:16px 20px; border-top:1px solid #e8edf4; background:#fff; color:#64748b; font-size:11px; }
.site-footer .site-footer-brand { color:#94a3b8; font-weight:500; }
.site-footer .site-footer-copyright { color:#64748b; }
.site-footer .site-footer-credit { color:#4338ca; font-size:13px; font-weight:800; }
@media (max-width: 480px) {
  .site-footer { padding:14px 12px; text-align:center; }
  .site-footer .site-footer-credit { font-size:12px; }
}

