@keyframes orc-shimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}
@keyframes orc-spin { to { transform: rotate(360deg); } }

.orc {
    --orc-accent: #ff8c1a;
    --orc-navy: #0a1d4d;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.orc[x-cloak] { display: none; }

.orc-hero {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1rem;
    flex-wrap: wrap;
}
.orc-hero__kicker { margin: 0 0 .5rem; font-size: .8125rem; color: #6b7280; max-width: 46rem; line-height: 1.5; }
.dark .orc-hero__kicker { color: #9ca3af; }
.orc-legend { display: flex; gap: 6px; flex-wrap: wrap; }
.orc-hero__meta { font-size: 11px; color: #9ca3af; }
.orc-hero__meta strong { color: #374151; }
.dark .orc-hero__meta strong { color: #e5e7eb; }

.orc-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-end;
    flex-wrap: wrap;
    padding: 12px;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    background: #fff;
}
.dark .orc-toolbar { background: #1f2937; border-color: rgba(255,255,255,.08); }
.orc-filters { display: flex; flex-wrap: wrap; gap: 8px; flex: 1; min-width: 0; }
.orc-field { display: flex; flex-direction: column; gap: 4px; min-width: 9.5rem; }
.orc-field--grow { flex: 1; min-width: 14rem; }
.orc-field > span { font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #9ca3af; }
.orc-field input, .orc-field select, .orc-dd > button {
    height: 2.25rem; border: 1px solid #e5e7eb; border-radius: 8px;
    background: #fff; color: #111827; padding: 0 .7rem; font-size: .8125rem; width: 100%;
}
.dark .orc-field input, .dark .orc-field select, .dark .orc-dd > button {
    background: #111827; border-color: rgba(255,255,255,.12); color: #f9fafb;
}
.orc-dd > button.is-required { box-shadow: inset 0 0 0 1px rgba(255,140,26,.45); }
.orc-dd { position: relative; }
.orc-menu {
    position: absolute; z-index: 40; inset-inline-start: 0; top: calc(100% + 4px);
    min-width: 100%; max-height: 16rem; overflow: auto;
    background: #fff; border: 1px solid #e5e7eb; border-radius: 10px;
    box-shadow: 0 12px 32px rgba(0,0,0,.12); padding: 4px;
}
.dark .orc-menu { background: #111827; border-color: rgba(255,255,255,.12); }
.orc-menu button, .orc-check {
    display: flex; width: 100%; text-align: start; border: 0; background: transparent;
    padding: .45rem .6rem; border-radius: 6px; font-size: .8125rem; color: inherit; cursor: pointer;
}
.orc-menu button:hover, .orc-check:hover { background: #f3f4f6; }
.dark .orc-menu button:hover, .dark .orc-check:hover { background: rgba(255,255,255,.06); }
.orc-menu button.is-on { background: rgba(255,140,26,.12); color: #c2410c; font-weight: 700; }
.orc-menu--cols { min-width: 14rem; }
.orc-check { align-items: center; gap: 8px; }
.orc-actions { display: flex; gap: 6px; flex-shrink: 0; }
.orc-btn {
    height: 2.25rem; padding: 0 .85rem; border-radius: 8px; border: 1px solid #e5e7eb;
    background: #fff; font-size: .8125rem; font-weight: 600; cursor: pointer; color: #374151;
}
.dark .orc-btn { background: #111827; border-color: rgba(255,255,255,.12); color: #e5e7eb; }
.orc-btn:hover:not(:disabled) { border-color: var(--orc-accent); color: var(--orc-accent); }
.orc-btn:disabled { opacity: .4; cursor: not-allowed; }
.orc-btn--primary { background: var(--orc-accent); border-color: var(--orc-accent); color: #fff; }

.orc-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.orc-chip {
    height: 1.85rem; padding: 0 .7rem; border-radius: 999px; border: 1px solid #e5e7eb;
    background: #fff; font-size: 12px; font-weight: 600; cursor: pointer; color: #4b5563;
}
.dark .orc-chip { background: #1f2937; border-color: rgba(255,255,255,.1); color: #d1d5db; }
.orc-chip.is-on { background: rgba(255,140,26,.14); border-color: rgba(255,140,26,.4); color: #c2410c; }
.orc-chips__sep { width: 1px; height: 1rem; background: #e5e7eb; }
.dark .orc-chips__sep { background: rgba(255,255,255,.12); }
.orc-dd--inline { position: relative; }

.orc-kpi-grid, .orc-kpi-sk {
    display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 10px; width: 100%;
}
@media (max-width: 1100px) { .orc-kpi-grid, .orc-kpi-sk { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 640px) { .orc-kpi-grid, .orc-kpi-sk { grid-template-columns: 1fr 1fr; } }
.orc-kpi {
    text-align: start; border: 1px solid #e5e7eb; border-radius: 14px; padding: .9rem 1rem;
    background: #fff; box-shadow: 0 1px 6px rgba(0,0,0,.04); cursor: default;
}
button.orc-kpi { cursor: pointer; width: 100%; }
.dark .orc-kpi { background: #1f2937; border-color: rgba(255,255,255,.08); }
.orc-kpi--accent { border-color: rgba(255,140,26,.4); background: rgba(255,140,26,.08); }
.orc-kpi__l { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #9ca3af; margin-bottom: 4px; }
.orc-kpi__v { font-size: 1.15rem; font-weight: 800; color: var(--orc-navy); font-variant-numeric: tabular-nums; }
.dark .orc-kpi__v { color: #fff; }
.orc-kpi__v small { font-size: .7rem; font-weight: 600; color: #9ca3af; }
.orc-kpi__v.is-bad { color: #dc2626; }
.orc-kpi__s { margin-top: 4px; font-size: 11px; color: #9ca3af; }
.orc-meter { margin-top: 8px; height: 4px; border-radius: 99px; background: #e5e7eb; overflow: hidden; }
.dark .orc-meter { background: rgba(255,255,255,.1); }
.orc-meter i { display: block; height: 100%; background: linear-gradient(90deg, #ff8c1a, #0a1d4d); }

.orc-sk-card, .orc-sk-row span, .orc-sk-card i {
    background: linear-gradient(90deg, #e5e7eb 25%, #f3f4f6 50%, #e5e7eb 75%);
    background-size: 200% 100%; animation: orc-shimmer 1.2s infinite;
}
.dark .orc-sk-card, .dark .orc-sk-row span, .dark .orc-sk-card i {
    background: linear-gradient(90deg, #1f2937 25%, #374151 50%, #1f2937 75%);
    background-size: 200% 100%;
}
.orc-sk-card { height: 88px; border-radius: 14px; display: flex; flex-direction: column; gap: 10px; padding: 16px; }
.orc-sk-card i { height: 10px; width: 40%; border-radius: 99px; display: block; }
.orc-sk-card i:last-child { width: 70%; height: 18px; }
.orc-sk-table { padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.orc-sk-row { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1fr 1fr; gap: 10px; }
.orc-sk-row span { height: 14px; border-radius: 6px; display: block; }

.orc-card {
    border: 1px solid #e5e7eb; border-radius: 14px; background: #fff;
    overflow: hidden; box-shadow: 0 1px 8px rgba(0,0,0,.05); position: relative;
}
.dark .orc-card { background: #1f2937; border-color: rgba(255,255,255,.08); }
.orc-banner {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    padding: 8px; font-size: 12px; font-weight: 600; color: #c2410c;
    background: rgba(255,140,26,.1); border-bottom: 1px solid rgba(255,140,26,.2);
}
.orc-spin {
    width: 14px; height: 14px; border-radius: 99px;
    border: 2px solid rgba(255,140,26,.25); border-top-color: #ff8c1a;
    animation: orc-spin .7s linear infinite;
}
.orc-empty { padding: 3rem 1.25rem; text-align: center; color: #9ca3af; }
.orc-empty strong { display: block; color: #374151; margin-bottom: 6px; }
.dark .orc-empty strong { color: #e5e7eb; }
.orc-empty .orc-btn { margin-top: 12px; }

.orc-table-wrap { overflow: auto; max-height: min(70vh, 44rem); }
.orc-table { width: 100%; min-width: 1280px; border-collapse: separate; border-spacing: 0; }
.orc-table th {
    position: sticky; top: 0; z-index: 2;
    padding: .7rem .75rem; font-size: 10px; font-weight: 700; letter-spacing: .04em;
    text-transform: uppercase; color: #6b7280; text-align: start; white-space: nowrap;
    background: #f8fafc; border-bottom: 1px solid #e5e7eb;
}
.dark .orc-table th { background: #111827; color: #9ca3af; border-bottom-color: rgba(255,255,255,.08); }
.orc-table th.is-sort { cursor: pointer; }
.orc-table th em { font-style: normal; color: var(--orc-accent); }
.orc-table td { padding: .7rem .75rem; font-size: .8125rem; border-bottom: 1px solid #f3f4f6; vertical-align: top; color: #111827; }
.dark .orc-table td { border-bottom-color: rgba(255,255,255,.06); color: #e5e7eb; }
.orc.is-compact .orc-table td, .orc.is-compact .orc-table th { padding: .4rem .6rem; }
.orc.is-loading .orc-table { opacity: .55; pointer-events: none; transition: opacity .2s ease; }
.orc-table tbody tr:hover td { background: #f9fafb; }
.dark .orc-table tbody tr:hover td { background: rgba(255,255,255,.03); }
.orc-table tr.is-vacant td { opacity: .78; }
.orc-table tr.is-due td { background: rgba(255,140,26,.04); }
.orc-table tr.is-overdue td { background: rgba(220,38,38,.06); }
.orc-table tr.is-overdue td:first-child { box-shadow: inset 3px 0 0 #dc2626; }
.orc-table .num { text-align: end; font-variant-numeric: tabular-nums; font-weight: 600; }
.orc-table .nowrap { white-space: nowrap; }
.orc-table .muted { color: #9ca3af; font-weight: 500; }
.orc-net { color: #c2410c !important; }
.orc-table th.is-sticky, .orc-table td.is-sticky {
    position: sticky; inset-inline-start: 0; z-index: 3; background: inherit;
    box-shadow: 8px 0 12px -8px rgba(0,0,0,.12);
}
.orc-table thead th.is-sticky { z-index: 4; background: #f8fafc; }
.dark .orc-table thead th.is-sticky { background: #111827; }
.orc-table tbody td.is-sticky { background: #fff; }
.dark .orc-table tbody td.is-sticky { background: #1f2937; }
.orc-group-row td {
    background: #0a1d4d !important; color: #fff !important; font-size: 11px;
    font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
}
.orc-table tfoot td {
    background: #f8fafc; font-weight: 800; border-top: 1px solid #e5e7eb;
}
.dark .orc-table tfoot td { background: #111827; border-top-color: rgba(255,255,255,.1); }

.orc-room { display: block; font-weight: 800; color: var(--orc-navy); }
.dark .orc-room { color: #fff; }
.orc-sku { display: block; font-size: 11px; color: #9ca3af; }
.orc-room-btn { border: 0; background: transparent; padding: 0; text-align: start; cursor: pointer; color: inherit; }
.orc-copied { display: block; font-size: 10px; color: #059669; font-weight: 700; }
.orc-link { color: #2563eb; font-weight: 600; text-decoration: none; }
.orc-link:hover { color: var(--orc-accent); }
.dark .orc-link { color: #60a5fa; }

.orc-pill { display: inline-flex; align-items: center; border-radius: 999px; padding: 2px 8px; font-size: 11px; font-weight: 700; }
.orc-pill.is-occ { background: rgba(16,185,129,.12); color: #059669; }
.orc-pill.is-vac { background: rgba(107,114,128,.12); color: #6b7280; }
.orc-pill.is-late { background: rgba(239,68,68,.14); color: #dc2626; }
.dark .orc-pill.is-occ { background: rgba(16,185,129,.2); color: #34d399; }
.dark .orc-pill.is-vac { background: rgba(255,255,255,.08); color: #9ca3af; }
.dark .orc-pill.is-late { background: rgba(248,113,113,.18); color: #f87171; }
.orc-extras { display: flex; flex-wrap: wrap; gap: 4px; max-width: 15rem; }
.orc-mini { display: inline-flex; border-radius: 999px; padding: 1px 7px; font-size: 10px; font-weight: 700; }
.orc-mini.is-ok { background: rgba(16,185,129,.12); color: #059669; }
.orc-mini.is-warn { background: rgba(245,158,11,.14); color: #d97706; }
.dark .orc-mini.is-ok { color: #34d399; background: rgba(16,185,129,.2); }
.dark .orc-mini.is-warn { color: #fbbf24; background: rgba(245,158,11,.2); }
.orc-more { border: 0; background: #f3f4f6; border-radius: 99px; padding: 0 6px; font-size: 10px; font-weight: 700; cursor: pointer; }
.dark .orc-more { background: rgba(255,255,255,.08); color: #e5e7eb; }
.is-bad { color: #dc2626; font-weight: 700; }

.orc-pager {
    display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap;
    padding: .75rem 1rem; font-size: .8125rem; color: #6b7280; border-top: 1px solid #e5e7eb;
}
.dark .orc-pager { border-top-color: rgba(255,255,255,.08); color: #9ca3af; }
.orc-per { display: inline-flex; align-items: center; gap: 8px; }
.orc .orc-per select,
.orc-per select {
    box-sizing: border-box;
    height: 2rem;
    min-height: 2rem;
    max-height: 2rem;
    width: auto;
    min-width: 3.5rem;
    font-size: 12px !important;
    font-weight: 600;
    line-height: 2rem !important;
    padding: 0 1.5rem 0 .55rem !important;
    border-radius: 6px;
    border: 1px solid #e5e7eb;
    background-color: #fff;
    color: #111827;
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 7.5L10 12.5L15 7.5' stroke='%239ca3af' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right .4rem center;
    background-size: 12px;
}
.dark .orc .orc-per select,
.dark .orc-per select {
    background-color: #111827;
    border-color: rgba(255,255,255,.16);
    color: #e5e7eb;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 7.5L10 12.5L15 7.5' stroke='%239ca3af' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.orc-pager__btns { display: flex; gap: 4px; }
.orc-pager__btn {
    width: 2rem; height: 2rem; border-radius: .4rem; border: 1px solid #e5e7eb;
    background: #fff; cursor: pointer;
}
.dark .orc-pager__btn { background: #111827; border-color: rgba(255,255,255,.12); color: #e5e7eb; }
.orc-pager__btn:disabled { opacity: .4; }

@media print {
    .rev-report-no-print { display: none !important; }
    .orc-table-wrap { max-height: none; overflow: visible; }
    .orc-table { min-width: 0; }
}
