@import url("https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&display=swap");

:root {
    --bg: #f7f8fb;
    --panel: #ffffff;
    --ink: #1f2937;
    --muted: #667085;
    --line: #e6e8ef;
    --teal: #00c2a8;
    --blue: #579bfc;
    --purple: #a25ddc;
    --coral: #ff6b8a;
    --green: #55c878;
    --yellow: #ffcb3d;
    --danger: #c2415b;
    --shadow: 0 18px 45px rgba(31, 41, 55, .08);
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    color: var(--ink);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .86), rgba(247, 248, 251, .96)),
        radial-gradient(circle at 8% 9%, rgba(255, 107, 138, .22), transparent 28%),
        radial-gradient(circle at 92% 12%, rgba(87, 155, 252, .2), transparent 26%),
        radial-gradient(circle at 55% 92%, rgba(0, 194, 168, .16), transparent 30%);
    font-family: Figtree, Inter, Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0;
}

.app-preloader {
    position: fixed;
    inset: 0;
    z-index: 13000;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(247, 248, 251, .82);
    backdrop-filter: blur(10px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .18s ease, visibility .18s ease;
}

.app-preloader.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.swal2-container {
    z-index: 20000 !important;
}

.app-preloader__card {
    display: grid;
    justify-items: center;
    gap: 12px;
    min-width: 178px;
    padding: 20px 24px;
    border: 1px solid rgba(230, 232, 239, .9);
    border-radius: 14px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 24px 60px rgba(31, 41, 55, .12);
}

.app-preloader__mark {
    position: relative;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--teal), var(--blue));
    box-shadow: 0 14px 30px rgba(87, 155, 252, .26);
}

.app-preloader__mark::before,
.app-preloader__mark::after {
    content: "";
    position: absolute;
    inset: 12px;
    border: 2px solid rgba(255, 255, 255, .9);
    border-radius: 999px;
}

.app-preloader__mark::after {
    inset: 7px;
    border-color: transparent rgba(255, 255, 255, .95) transparent transparent;
    animation: app-preloader-spin .74s linear infinite;
}

.app-preloader__text {
    color: var(--ink);
    font-size: 14px;
    font-weight: 800;
}

.app-preloader__hint {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.app-preloader--compact {
    inset: auto 18px 18px auto;
    padding: 0;
    background: transparent;
    backdrop-filter: none;
}

.app-preloader--compact .app-preloader__card {
    grid-template-columns: 28px auto;
    justify-items: start;
    min-width: 0;
    padding: 10px 12px;
    border-radius: 999px;
    box-shadow: 0 16px 38px rgba(31, 41, 55, .14);
}

.app-preloader--compact .app-preloader__mark {
    width: 28px;
    height: 28px;
    border-radius: 10px;
}

.app-preloader--compact .app-preloader__mark::before {
    inset: 8px;
}

.app-preloader--compact .app-preloader__mark::after {
    inset: 5px;
}

.app-preloader--compact .app-preloader__hint {
    display: none;
}

@keyframes app-preloader-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .app-preloader,
    .app-preloader__mark::after {
        animation: none;
        transition: none;
    }
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.auth-page {
    display: grid;
    place-items: center;
    padding: 24px;
}

.auth-shell {
    width: min(100%, 920px);
    display: grid;
    grid-template-columns: 1fr 440px;
    gap: 18px;
    align-items: stretch;
}

.auth-story,
.auth-panel,
.work-surface,
.metric-card {
    background: rgba(255, 255, 255, .9);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: var(--shadow);
}

.auth-story {
    min-height: 420px;
    padding: 30px;
    display: grid;
    align-content: space-between;
    overflow: hidden;
    position: relative;
}

.auth-story::before {
    content: "";
    position: absolute;
    width: 380px;
    height: 380px;
    right: -90px;
    bottom: -120px;
    border-radius: 999px;
    background: conic-gradient(from 80deg, var(--coral), var(--yellow), var(--teal), var(--blue), var(--purple), var(--coral));
    opacity: .2;
}

.story-brand {
    position: relative;
    z-index: 1;
}

.story-brand p {
    margin: 14px 0 0;
    font-size: 28px;
    font-weight: 800;
    max-width: 290px;
    line-height: 1.12;
}

.story-board {
    position: relative;
    z-index: 1;
    width: min(100%, 360px);
    display: grid;
    grid-template-columns: repeat(3, 36px) 1fr;
    gap: 10px;
    align-items: center;
    padding: 18px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.status-dot {
    width: 36px;
    height: 36px;
    border-radius: 10px;
}

.story-line {
    height: 12px;
    border-radius: 999px;
    background: #eef0f6;
}

.story-line.wide {
    grid-column: 1 / -1;
}

.story-chip {
    width: max-content;
    padding: 7px 10px;
    border-radius: 999px;
    background: #e8f7ff;
    color: #0969a8;
    font-size: 12px;
    font-weight: 800;
}

.story-chip.soft {
    background: #f3e8ff;
    color: #7e3bb2;
}

.auth-panel {
    padding: 34px;
}

.brand-lockup {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 26px;
}

.brand-lockup.compact {
    margin: 0 0 26px;
    font-weight: 800;
}

.brand-lockup.compact small {
    display: block;
    margin-top: 2px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.brand-lockup p,
.eyebrow,
.metric-card p,
.metric-card em {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

.brand-lockup h1,
.topbar h1,
.work-surface h2 {
    margin: 4px 0 0;
    font-size: 25px;
    line-height: 1.15;
}

.brand-mark,
.icon-badge {
    display: grid;
    place-items: center;
    border-radius: 8px;
    color: #fff;
    font-weight: 900;
}

.brand-mark {
    width: 46px;
    height: 46px;
    background: linear-gradient(135deg, var(--teal), var(--blue));
}

.brand-mark.large {
    width: 58px;
    height: 58px;
}

.icon-badge {
    width: 42px;
    height: 42px;
}

.icon-badge.teal { background: var(--teal); }
.icon-badge.blue { background: var(--blue); }
.icon-badge.purple { background: var(--purple); }
.icon-badge.coral { background: var(--coral); }
.icon-badge.green { background: var(--green); }
.icon-badge.amber { background: var(--yellow); color: #5f4400; }
.icon-badge.yellow { background: var(--yellow); color: #5f4400; }

.stack {
    display: grid;
    gap: 16px;
}

label {
    display: grid;
    gap: 8px;
    color: var(--muted);
    font-size: 14px;
    font-weight: 700;
}

input,
select,
textarea {
    width: 100%;
    min-height: 46px;
    border: 1px solid #d7dbea;
    border-radius: 8px;
    padding: 11px 13px;
    color: var(--ink);
    background: #fff;
}

select {
    appearance: none;
    background-image:
        linear-gradient(45deg, transparent 50%, var(--muted) 50%),
        linear-gradient(135deg, var(--muted) 50%, transparent 50%);
    background-position:
        calc(100% - 18px) 20px,
        calc(100% - 12px) 20px;
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
    padding-right: 38px;
}

input:focus,
select:focus,
textarea:focus {
    outline: 3px solid rgba(87, 155, 252, .2);
    border-color: var(--blue);
}

input[readonly],
textarea[readonly] {
    background-color: #f1f5f9;
    color: var(--muted);
    cursor: not-allowed;
}

.native-validation-proxy {
    position: absolute !important;
    left: 12px;
    bottom: 8px;
    width: 1px !important;
    height: 1px !important;
    min-height: 1px !important;
    padding: 0 !important;
    border: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.ts-wrapper.single .ts-control,
.ts-wrapper.multi .ts-control {
    min-height: 46px;
    border: 1px solid #d7dbea;
    border-radius: 8px;
    padding: 8px 12px;
    color: var(--ink);
    background: #fff;
    box-shadow: none;
}

.ts-wrapper.focus .ts-control {
    border-color: var(--blue);
    box-shadow: 0 0 0 3px rgba(87, 155, 252, .2);
}

.ts-wrapper .ts-control > input {
    min-height: 0;
    padding: 0;
    margin: 0;
    border: none;
    box-shadow: none;
    background: transparent;
    line-height: inherit;
    width: auto !important;
}

.ts-dropdown {
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: var(--shadow);
}

.primary-action,
.secondary-action {
    min-height: 44px;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 800;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.primary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: linear-gradient(135deg, var(--blue), var(--purple));
    color: #fff;
    box-shadow: 0 14px 26px rgba(87, 155, 252, .24);
}

.primary-action:hover,
.secondary-action:hover {
    transform: translateY(-1px);
}

.secondary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line);
    background: #fff;
    color: var(--ink);
    padding: 0 14px;
}

.icon-trash-button {
    width: 38px;
    min-height: 38px;
    display: grid;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--danger);
    cursor: pointer;
    padding: 0;
}

.icon-trash-button:hover {
    border-color: rgba(194, 65, 91, .35);
    background: #fff5f7;
}

.icon-trash-button svg {
    width: 17px;
    height: 17px;
}

.rich-editor-field {
    margin-top: 10px;
}

.rich-editor {
    border: 1px solid var(--line);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}

.rich-toolbar {
    display: flex;
    gap: 4px;
    padding: 6px;
    border-bottom: 1px solid var(--line);
    background: #fbfcff;
}

.rich-toolbar button {
    min-width: 32px;
    min-height: 30px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    font-weight: 600;
}

.rich-editor-body {
    min-height: 118px;
    padding: 12px;
    outline: none;
    color: var(--ink);
}

.rich-editor-body:empty::before {
    content: "Add payment terms, cancellation policy, inclusions, exclusions, or special notes";
    color: var(--muted);
}

.line-rich-editor .rich-toolbar {
    padding: 5px;
}

.line-rich-editor .rich-toolbar button {
    min-height: 26px;
    padding: 4px 8px;
    font-size: 11px;
}

.line-rich-editor-body {
    min-height: 38px;
    padding: 8px 10px;
    font-size: 13px;
}

.line-rich-editor-body:empty::before {
    content: "Line description";
    color: var(--muted);
}

.line-remove-cell {
    align-items: end;
    justify-items: end;
}

.line-remove-cell .icon-trash-button {
    justify-self: end;
}

.form-message {
    min-height: 20px;
    margin: 0;
    color: var(--danger);
    font-size: 14px;
}

.admin-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 280px 1fr;
    transition: grid-template-columns .2s ease;
}

.admin-shell.sidebar-collapsed {
    grid-template-columns: 84px 1fr;
}

.sidebar {
    border-right: 1px solid var(--line);
    background: rgba(255, 255, 255, .86);
    backdrop-filter: blur(18px);
    padding: 22px;
    overflow: hidden;
    transition: padding .2s ease;
    z-index: 100;
}

.sidebar .brand-lockup > span:last-child,
.nav-list a {
    transition: opacity .16s ease, gap .2s ease, padding .2s ease;
}

.sidebar .brand-lockup > span:last-child {
    min-width: 160px;
}

.admin-shell.sidebar-collapsed .sidebar {
    padding: 22px 14px;
    overflow: visible;
}

.admin-shell.sidebar-collapsed .nav-list {
    position: relative;
    z-index: 10040;
    overflow: visible;
}

.admin-shell.sidebar-collapsed .brand-lockup {
    justify-content: center;
}

.admin-shell.sidebar-collapsed .brand-lockup > span:last-child {
    width: 0;
    min-width: 0;
    opacity: 0;
    overflow: hidden;
}

.admin-shell.sidebar-collapsed .nav-list a {
    justify-content: center;
    gap: 0;
    padding: 10px;
}

.admin-shell.sidebar-collapsed .nav-list a {
    font-size: 0;
}

.admin-shell.sidebar-collapsed .nav-list a svg {
    width: 21px;
    height: 21px;
}

.nav-list a[data-sidebar-tooltip] {
    position: relative;
}

.admin-shell.sidebar-collapsed .nav-list a[data-sidebar-tooltip]::after,
.admin-shell.sidebar-collapsed .nav-list a[data-sidebar-tooltip]::before {
    position: absolute;
    left: calc(100% + 10px);
    z-index: 10050;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
}

.admin-shell.sidebar-collapsed .nav-list a[data-sidebar-tooltip]::after {
    content: attr(data-sidebar-tooltip);
    top: 50%;
    transform: translate(4px, -50%);
    width: max-content;
    max-width: 190px;
    padding: 7px 10px;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 7px;
    background: #111827;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
    box-shadow: 0 14px 30px rgba(15, 23, 42, .2);
    white-space: nowrap;
}

.admin-shell.sidebar-collapsed .nav-list a[data-sidebar-tooltip]::before {
    content: "";
    top: 50%;
    transform: translate(4px, -50%);
    border: 6px solid transparent;
    border-right-color: #111827;
}

.admin-shell.sidebar-collapsed .nav-list a[data-sidebar-tooltip]:hover::after,
.admin-shell.sidebar-collapsed .nav-list a[data-sidebar-tooltip]:hover::before,
.admin-shell.sidebar-collapsed .nav-list a[data-sidebar-tooltip]:focus-visible::after,
.admin-shell.sidebar-collapsed .nav-list a[data-sidebar-tooltip]:focus-visible::before {
    opacity: 1;
    visibility: visible;
    transform: translate(0, -50%);
}

.nav-list {
    display: grid;
    gap: 8px;
}

.nav-list--grouped {
    align-content: start;
    gap: 7px;
}

.nav-group {
    border: 1px solid transparent;
    border-radius: 10px;
    background: transparent;
}

.nav-group[open] {
    border-color: rgba(203, 213, 225, .72);
    background: rgba(248, 250, 252, .72);
}

.nav-group summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 34px;
    padding: 8px 10px;
    color: #64748b;
    cursor: pointer;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    line-height: 1;
    list-style: none;
    text-transform: uppercase;
    user-select: none;
}

.nav-group summary::-webkit-details-marker {
    display: none;
}

.nav-group summary svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    stroke: currentColor;
    stroke-width: 2.2;
    fill: none;
    transition: transform .16s ease;
}

.nav-group[open] summary svg {
    transform: rotate(180deg);
}

.nav-group__items {
    display: grid;
    gap: 4px;
    padding: 0 6px 6px;
}

.nav-group__items a {
    margin: 0;
    min-height: 40px;
    padding: 9px 10px;
    font-size: 13px;
}

.nav-group__items a span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nav-list a {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 44px;
    border-radius: 8px;
    padding: 10px 12px;
    color: var(--muted);
    font-weight: 800;
}

.nav-list a svg {
    width: 20px;
    height: 20px;
}

.nav-list a.active {
    background: #eef5ff;
    color: #2155d9;
    box-shadow: inset 4px 0 0 var(--blue);
}

.nav-list a:hover {
    background: #f6f7fb;
    color: var(--ink);
}

.admin-shell.sidebar-collapsed .nav-list--grouped {
    gap: 6px;
}

.admin-shell.sidebar-collapsed .nav-group,
.admin-shell.sidebar-collapsed .nav-group[open] {
    border: 0;
    background: transparent;
}

.admin-shell.sidebar-collapsed .nav-group summary {
    display: none;
}

.admin-shell.sidebar-collapsed .nav-group:not([open]) > .nav-group__items {
    display: grid !important;
}

.admin-shell.sidebar-collapsed .nav-group__items {
    gap: 6px;
    padding: 0;
}

.main-panel {
    min-width: 0;
    padding: 24px;
}

.topbar {
    position: relative;
    z-index: 1200;
    display: grid;
    grid-template-columns: auto minmax(180px, 1fr) minmax(240px, 360px) auto;
    align-items: center;
    gap: 16px;
    margin-bottom: 22px;
    overflow: visible;
}

.title-block {
    min-width: 0;
}

.search-box {
    position: relative;
    display: block;
}

.search-box svg {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted);
}

.search-box input {
    padding-left: 42px;
    background: rgba(255, 255, 255, .76);
}

.user-area {
    position: relative;
    z-index: 1201;
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--muted);
    white-space: nowrap;
    overflow: visible;
}

.user-menu {
    position: relative;
    z-index: 1202;
    display: inline-flex;
    align-items: center;
}

.user-menu__trigger {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    max-width: 220px;
    padding: 0 12px 0 8px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    color: var(--ink);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
    cursor: pointer;
    font-size: 13px;
    font-weight: 800;
}

.user-menu__trigger svg {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    color: var(--muted);
}

.user-menu__avatar {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--teal), var(--blue));
    color: #fff;
    font-size: 12px;
    font-weight: 900;
}

.user-menu__name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-menu__panel {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 16000;
    display: grid;
    gap: 4px;
    min-width: 190px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(31, 41, 55, .12);
}

.user-menu__panel[hidden] {
    display: none !important;
}

.user-menu__item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 38px;
    padding: 0 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--ink);
    cursor: pointer;
    font-size: 13px;
    font-weight: 800;
    text-align: left;
}

.user-menu__item:hover {
    background: #f8fbff;
}

.user-menu__item svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    color: var(--muted);
}

.user-menu__item--danger {
    color: #b42318;
}

.user-menu__item--danger:hover {
    background: #fff5f5;
}

.user-menu__item--danger svg {
    color: #b42318;
}

.icon-button {
    display: none;
    width: 42px;
    height: 42px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    place-items: center;
    gap: 3px;
    padding: 10px;
}

.collapse-button {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--muted);
    cursor: pointer;
    transition: transform .16s ease, color .16s ease, background .16s ease;
}

.collapse-button:hover {
    color: var(--ink);
    background: #f6f7fb;
}

.admin-shell.sidebar-collapsed .collapse-button svg {
    transform: rotate(180deg);
}

.icon-button span {
    width: 18px;
    height: 2px;
    background: var(--ink);
    display: block;
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 18px;
}

.metric-card {
    min-height: 142px;
    padding: 18px;
    display: grid;
    align-content: space-between;
    position: relative;
    overflow: hidden;
}

.metric-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 5px;
}

.metric-card.coral::before { background: var(--coral); }
.metric-card.purple::before { background: var(--purple); }
.metric-card.green::before { background: var(--green); }
.metric-card.blue::before { background: var(--blue); }

.metric-card strong {
    display: block;
    margin: 6px 0;
    font-size: 34px;
    line-height: 1;
}

.metric-card em {
    font-style: normal;
}

.workspace-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
    gap: 16px;
}

.work-surface {
    padding: 20px;
}

.surface-heading {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.surface-heading-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 10px;
}

.focus-panel > p {
    color: var(--muted);
}

.status-lane {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}

.status-pill {
    display: inline-block;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.4;
}

.status-pill.green { background: #e7f8ed; color: #19723a; }
.status-pill.blue { background: #eaf3ff; color: #2155d9; }
.status-pill.purple { background: #f4ebff; color: #7e3bb2; }
.status-pill.danger { background: #fff0f3; color: var(--danger); }
.status-pill.neutral { background: #eef2f7; color: var(--muted); }

body[data-communication-messages-page] .message-select-cell,
body[data-communication-messages-page] [data-label="Select"] {
    width: 44px;
    min-width: 44px;
    max-width: 44px;
    text-align: center;
}

body[data-communication-messages-page] .message-select-checkbox {
    appearance: auto;
    -webkit-appearance: auto;
    display: inline-block;
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    max-width: 18px;
    max-height: 18px;
    margin: 0;
    padding: 0;
    vertical-align: middle;
    accent-color: var(--primary);
}

body[data-communication-messages-page] .field-toggle .message-select-checkbox {
    flex: 0 0 18px;
}

.merge-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #f8fafc;
}

.merge-tags--stacked {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    align-items: stretch;
}

.merge-tags__group {
    display: grid;
    gap: 8px;
}

.merge-tags__label {
    margin-right: 4px;
    color: var(--secondary-text);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}

.merge-tags__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tag-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 6px 10px;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

.tag-badge:hover {
    border-color: #93c5fd;
    background: #dbeafe;
}

.tag-badge--reminder {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: #047857;
}

.tag-badge--reminder:hover {
    border-color: #86efac;
    background: #dcfce7;
}

.communication-message-card__subject {
    color: #0f172a;
    font-weight: 700;
    margin: 0;
}

.communication-message-preview {
    display: grid;
    align-content: start;
    gap: 18px;
}

.message-preview-body {
    min-height: 220px;
    width: 100%;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    line-height: 1.6;
    overflow: auto;
}

.message-preview-body p {
    margin: 0 0 10px;
}

body[data-communication-templates-page] .communication-template-form {
    display: grid;
    align-content: start;
    gap: 16px;
}

body[data-communication-templates-page] .communication-template-form .full-span {
    grid-column: 1 / -1;
}

body[data-communication-templates-page] .form-section {
    display: grid;
    gap: 12px;
}

body[data-communication-templates-page] .form-section > label,
body[data-communication-templates-page] .communication-template-form > label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
}

body[data-communication-templates-page] .editor-field {
    gap: 8px;
}

body[data-communication-templates-page] .editor-field > span {
    display: block;
    margin: 0;
    color: var(--ink);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
}

body[data-communication-templates-page] .editor-field .tox-tinymce {
    margin-top: 0;
}

body[data-guest-orders-page] .guest-order-layout {
    gap: 18px;
}

body[data-guest-orders-page] .guest-order-summary-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin: 14px 0 18px;
}

body[data-guest-orders-page] .guest-order-summary-strip article {
    display: grid;
    gap: 6px;
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #f8fafc;
}

body[data-guest-orders-page] .guest-order-summary-strip span {
    color: var(--secondary-text);
    font-size: 12px;
    font-weight: 700;
}

body[data-guest-orders-page] .guest-order-summary-strip strong {
    color: var(--ink);
    font-size: 22px;
    line-height: 1.1;
}

body[data-guest-orders-page] .guest-order-panels {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
    gap: 18px;
}

body[data-guest-orders-page] .guest-order-panels > section {
    display: grid;
    align-content: start;
    gap: 12px;
    min-width: 0;
}

body[data-guest-orders-page] .guest-order-item-form {
    display: grid;
    align-content: start;
    gap: 16px;
}

body[data-guest-orders-page] .guest-order-item-form .full-span {
    grid-column: 1 / -1;
}

@media (max-width: 980px) {
    body[data-guest-orders-page] .guest-order-summary-strip,
    body[data-guest-orders-page] .guest-order-panels {
        grid-template-columns: 1fr;
    }
}

body[data-communication-rules-page] .slide-drawer.wide-drawer .communication-rule-main-grid,
body[data-communication-rules-page] .slide-drawer.wide-drawer .communication-rule-condition-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 24px;
}

body[data-communication-rules-page] .communication-rule-main-grid label,
body[data-communication-rules-page] .communication-rule-condition-grid label {
    min-width: 0;
}

body[data-communication-rules-page] .communication-rule-main-grid small {
    max-width: 100%;
}

body[data-communication-rules-page] #rule-audience + .ts-wrapper .ts-control,
body[data-communication-rules-page] #rule-condition-rsvp + .ts-wrapper .ts-control {
    min-height: 46px;
    align-items: center;
}

@media (max-width: 720px) {
    body[data-communication-templates-page] .slide-drawer.wide-drawer .form-grid {
        grid-template-columns: 1fr;
    }

    body[data-communication-rules-page] .slide-drawer.wide-drawer .communication-rule-main-grid,
    body[data-communication-rules-page] .slide-drawer.wide-drawer .communication-rule-condition-grid {
        grid-template-columns: 1fr;
    }
}

.action-icon-button:disabled {
    cursor: not-allowed;
    opacity: 0.45;
    filter: grayscale(0.35);
}

.action-icon-button--restore {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #047857;
}

.action-icon-button--restore:hover {
    background: #d1fae5;
    color: #065f46;
}

[data-archive-grid] .item-card .row-actions {
    justify-content: flex-start;
}

[data-archive-select-row],
[data-archive-select-all],
[data-guest-select-row],
[data-guest-select-all] {
    width: 16px;
    height: 16px;
    accent-color: var(--blue);
}

[data-archive-grid] .item-card__head > div {
    display: grid;
    gap: 8px;
}

[data-archive-bulk-delete]:disabled,
[data-archive-bulk-restore]:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.archive-toolbar {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: space-between;
    width: 100%;
}

.archive-toolbar__filters,
.archive-toolbar__actions {
    align-items: center;
    display: flex;
    gap: 10px;
}

.archive-toolbar__filters {
    flex: 1 1 auto;
    flex-wrap: wrap;
    min-width: 0;
}

.archive-toolbar__actions {
    flex: 0 0 auto;
    flex-wrap: wrap;
    justify-content: flex-end;
    margin-left: auto;
}

.archive-toolbar--stacked {
    align-items: stretch;
    flex-direction: column;
}

.archive-toolbar--stacked .archive-toolbar__actions {
    justify-content: flex-start;
    margin-left: 0;
    width: 100%;
}

.archive-toolbar--stacked .archive-toolbar__filters {
    width: 100%;
}

.archive-toolbar__action-group {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    min-width: 0;
}

.archive-toolbar__action-group--center {
    justify-content: flex-start;
}

.archive-toolbar__action-group--right {
    justify-content: flex-end;
    margin-left: auto;
}

.guest-dashboard-metrics .metric-card,
.guest-task-summary .metric-card {
    align-content: center;
    align-items: center;
    display: grid;
    gap: 14px;
    grid-template-columns: auto minmax(0, 1fr);
    min-height: 118px;
    overflow: hidden;
    padding: 20px 22px;
}

.guest-dashboard-metrics .metric-card {
    background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
    border-color: #dbe7f6;
    box-shadow: 0 18px 38px rgba(15, 23, 42, .07);
}

.guest-dashboard-metrics .metric-card::after,
.guest-task-summary .metric-card::after {
    background: rgba(91, 140, 255, .1);
    border-radius: 999px;
    content: "";
    height: 92px;
    position: absolute;
    right: -28px;
    top: -28px;
    width: 92px;
}

.guest-dashboard-metrics .metric-icon,
.guest-task-summary .metric-icon {
    align-items: center;
    border-radius: 8px;
    display: inline-grid;
    height: 42px;
    justify-content: center;
    position: relative;
    width: 42px;
    z-index: 1;
}

.guest-dashboard-metrics .metric-icon svg,
.guest-task-summary .metric-icon svg {
    fill: none;
    height: 20px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
    width: 20px;
}

.guest-dashboard-metrics .metric-card h3,
.guest-task-summary .metric-card h3 {
    font-size: 24px;
    margin: 0 0 6px;
    position: relative;
    z-index: 1;
}

.guest-dashboard-metrics .metric-card p,
.guest-task-summary .metric-card p {
    font-weight: 700;
    position: relative;
    z-index: 1;
}

.metric-card--blue .metric-icon,
.guest-task-summary .metric-card:nth-child(1) .metric-icon { background: #eff6ff; color: #2563eb; }
.metric-card--green .metric-icon,
.guest-task-summary .metric-card:nth-child(2) .metric-icon { background: #ecfdf5; color: #16a34a; }
.metric-card--teal .metric-icon { background: #ecfeff; color: #0891b2; }
.metric-card--amber .metric-icon,
.guest-task-summary .metric-card:nth-child(3) .metric-icon { background: #fffbeb; color: #d97706; }
.metric-card--purple .metric-icon,
.guest-task-summary .metric-card:nth-child(4) .metric-icon { background: #f5f3ff; color: #7c3aed; }
.metric-card--rose .metric-icon,
.guest-task-summary .metric-card:nth-child(5) .metric-icon { background: #fff1f2; color: #e11d48; }

.metric-card--blue::before,
.guest-task-summary .metric-card:nth-child(1)::before { background: #5b8cff; }
.metric-card--green::before,
.guest-task-summary .metric-card:nth-child(2)::before { background: #22c55e; }
.metric-card--teal::before { background: #06b6d4; }
.metric-card--amber::before,
.guest-task-summary .metric-card:nth-child(3)::before { background: #f59e0b; }
.metric-card--purple::before,
.guest-task-summary .metric-card:nth-child(4)::before { background: #8b5cf6; }
.metric-card--rose::before,
.guest-task-summary .metric-card:nth-child(5)::before { background: #f43f5e; }

.archive-bulk-button {
    align-items: center;
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    gap: 8px;
    justify-content: center;
    min-height: 42px;
    border: 1px solid var(--line);
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    padding-inline: 14px;
    white-space: nowrap;
}

.archive-bulk-button svg {
    flex: 0 0 18px;
    height: 18px;
    width: 18px;
}

.archive-bulk-button--restore {
    background: #fff !important;
    border-color: rgba(4, 120, 87, .24) !important;
    color: #047857 !important;
}

.archive-bulk-button--restore:hover {
    background: #ecfdf5 !important;
    border-color: rgba(4, 120, 87, .36) !important;
    color: #065f46 !important;
}

.archive-bulk-button--delete {
    background: #fff !important;
    border-color: rgba(180, 35, 24, .24) !important;
    color: #b42318 !important;
}

.archive-bulk-button--delete:hover {
    background: #fff5f5 !important;
    border-color: rgba(180, 35, 24, .36) !important;
    color: #991b1b !important;
}

.archive-bulk-button--restore:disabled,
.archive-bulk-button--restore[disabled],
.archive-bulk-button--delete:disabled,
.archive-bulk-button--delete[disabled] {
    background: #fff !important;
    box-shadow: none;
    opacity: 0.5;
}

.profile-surface {
    display: grid;
    gap: 18px;
}

.profile-form {
    display: grid;
    gap: 16px;
}

.profile-panel {
    display: grid;
    gap: 16px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.profile-panel__heading {
    display: grid;
    gap: 4px;
}

.profile-panel__heading h3 {
    margin: 0;
    color: var(--ink);
    font-size: 18px;
    line-height: 1.2;
}

.profile-panel__heading p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
}

.profile-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 760px) {
    .archive-toolbar {
        align-items: stretch;
    }

    .archive-toolbar__filters,
    .archive-toolbar__actions {
        width: 100%;
    }

    .archive-toolbar__filters {
        display: grid;
        grid-template-columns: 1fr;
    }

    .archive-toolbar__filters .view-toggle {
        justify-self: start;
        width: auto;
    }

    .archive-toolbar__actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-left: 0;
    }

    .archive-toolbar--stacked .archive-toolbar__actions {
        grid-template-columns: 1fr;
    }

    .archive-toolbar--stacked .archive-toolbar__action-group,
    .archive-toolbar--stacked .archive-toolbar__action-group--center,
    .archive-toolbar--stacked .archive-toolbar__action-group--right {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: stretch;
    }

    .archive-bulk-button {
        width: 100%;
        min-width: 0;
        white-space: normal;
    }

    .profile-form-grid {
        grid-template-columns: 1fr;
    }
}

.po-meta-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 14px 0 22px;
}

.po-meta-card {
    display: grid;
    gap: 5px;
    min-height: 72px;
    align-content: center;
    padding: 13px 14px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.po-meta-card span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.po-meta-card strong {
    color: var(--ink);
    font-size: 14px;
    line-height: 1.25;
}

.ar-bank-card {
    grid-column: 1 / -1;
}

.ar-bank-grid {
    display: grid;
    grid-template-columns: minmax(140px, auto) minmax(0, 1fr);
    gap: 8px 14px;
    margin-top: 10px;
}

.ar-bank-grid span:nth-child(odd) {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: none;
}

.ar-bank-grid span:nth-child(even) {
    color: var(--ink);
    font-size: 13px;
    font-weight: 800;
    word-break: break-word;
}

@media (max-width: 920px) {
    .po-meta-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .po-meta-grid {
        grid-template-columns: 1fr;
    }

    .ar-bank-grid {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

.mini-board {
    display: grid;
    gap: 10px;
}

.mini-board div {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 10px 12px;
    background: #fbfcff;
    color: var(--ink);
    font-weight: 800;
}

.bar {
    width: 5px;
    height: 22px;
    border-radius: 999px;
}

.bar.coral { background: var(--coral); }
.bar.green { background: var(--green); }
.bar.purple { background: var(--purple); }

.data-layout {
    display: grid;
    grid-template-columns: minmax(340px, .85fr) minmax(0, 1.15fr);
    gap: 16px;
    align-items: start;
}

.single-layout {
    grid-template-columns: 1fr;
}

.drawer-backdrop {
    position: fixed;
    inset: 0;
    z-index: 30;
    display: none;
    background: rgba(31, 41, 55, .28);
}

.drawer-backdrop.open {
    display: block;
}

.slide-drawer {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 40;
    width: min(760px, calc(100vw - 18px));
    padding: 18px;
    overflow-y: auto;
    background: var(--bg);
    border-left: 1px solid var(--line);
    box-shadow: -24px 0 50px rgba(31, 41, 55, .16);
    transform: translate3d(105%, 0, 0);
    transition: transform .28s cubic-bezier(.22, 1, .36, 1);
    will-change: transform;
    backface-visibility: hidden;
    contain: layout paint;
}

.slide-drawer.wide-drawer {
    width: min(1280px, calc(100vw - 280px - 40px));
}

.admin-shell.sidebar-collapsed .slide-drawer.wide-drawer {
    width: min(1440px, calc(100vw - 84px - 40px));
}

.slide-drawer.wide-drawer .item-form {
    min-height: calc(100vh - 36px);
}

.slide-drawer .item-form {
    align-content: start;
}

.slide-drawer > .drawer-header.surface-heading,
.slide-drawer > .work-surface > .surface-heading:first-child {
    min-height: 72px;
    align-items: flex-start;
}

.slide-drawer.wide-drawer .form-grid {
    grid-template-columns: repeat(4, minmax(180px, 1fr));
}

.slide-drawer.wide-drawer .form-grid .full-span {
    grid-column: 1 / -1;
}

.slide-drawer.open {
    transform: translate3d(0, 0, 0);
}

.slide-drawer .work-surface {
    box-shadow: none;
}

.icon-close {
    margin-left: auto;
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    min-height: 38px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f1f5f9;
    color: #475569;
    cursor: pointer;
    font-weight: 900;
    line-height: 1;
    text-align: center;
    vertical-align: middle;
}
.drawer-header .drawer-actions {
    margin-left: auto;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
}

.item-form {
    display: grid;
    gap: 14px;
}

.item-form [data-item-description-body] {
    min-height: 96px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.full-span {
    grid-column: 1 / -1;
}

.checkbox-line {
    display: flex; flex-direction: row !important; justify-content: flex-start;
    grid-template-columns: none;
    align-items: center;
    gap: 10px;
    color: var(--ink);
}

.checkbox-line input {
    width: 18px;
    min-height: 18px;
}

.field-toggle {
    display: flex !important;
    grid-template-columns: none !important;
    flex-direction: row !important;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    min-height: 48px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
}

.field-toggle input[type="checkbox"] {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    min-height: 18px;
    margin: 0;
}

.field-toggle span {
    display: block;
    margin: 0;
    line-height: 1.25;
}

body[data-project-guests-page] [data-guest-drawer] .surface-content.flow {
    display: grid;
    gap: 18px;
}

body[data-project-guests-page] [data-guest-configured-fields] {
    display: grid;
    gap: 18px;
}

body[data-project-guests-page] .guest-config-section {
    display: grid;
    gap: 14px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

body[data-project-guests-page] .guest-config-section__heading {
    margin: 0;
    padding-bottom: 14px;
    border-bottom: 1px solid #eef2f7;
}

body[data-project-guests-page] .guest-config-section__heading .icon-badge {
    width: 38px;
    height: 38px;
    border-radius: 10px;
}

body[data-project-guests-page] .guest-config-section__heading h3 {
    margin: 2px 0 0;
    color: var(--ink);
    font-size: 18px;
    line-height: 1.2;
}

body[data-project-guests-page] .guest-config-section__grid {
    gap: 16px;
}

body[data-project-guests-page] .guest-config-section label > span {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 18px;
    color: var(--ink);
    font-size: 13px;
}

body[data-project-guests-page] .guest-config-section .field-help {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    margin-top: 0;
    padding: 3px 8px;
    border-radius: 999px;
    background: #eff6ff;
    color: #2563eb;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
}

body[data-project-guests-page] .guest-config-section label > .field-help {
    display: block;
    width: fit-content;
    margin-top: -2px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: var(--muted);
    font-weight: 700;
    line-height: 1.35;
}

body[data-project-guests-page] .guest-config-section .field-toggle {
    min-height: 58px;
    padding: 0 16px;
}

@media (max-width: 760px) {
    body[data-project-guests-page] .guest-config-section {
        padding: 14px;
        border-radius: 10px;
    }

    body[data-project-guests-page] .guest-config-section__heading {
        padding-bottom: 12px;
    }

    body[data-project-guests-page] .guest-config-section__grid {
        grid-template-columns: 1fr;
    }
}

.vendor-rate-preferred-toggle {
    align-self: end;
}

.price-active-toggle {
    width: min(100%, calc((100% - 14px) / 2));
}

@media (max-width: 800px) {
    .price-active-toggle {
        width: 100%;
    }
}

.project-operations-time-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    color: var(--secondary-text);
    font-size: 13px;
}

.project-operations-time-toggle input[type="checkbox"] {
    margin: 0;
    width: 14px;
    height: 14px;
    min-width: 14px;
    accent-color: var(--blue);
    cursor: pointer;
    vertical-align: middle;
}

.project-operations-time-toggle input[type="checkbox"]:focus,
.project-operations-time-toggle input[type="checkbox"]:focus-visible {
    outline: none;
    box-shadow: none;
}

.form-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 10px;
    padding-top: 2px;
}

.table-surface {
    min-width: 0;
}

.stacked-layout {
    margin-top: 16px;
}

.table-wrap {
    --admin-table-min-width: 760px;
    --admin-table-layout: auto;
    --admin-action-column-width: 152px;
    overflow-x: auto;
}

.table-wrap.admin-table--compact {
    --admin-table-min-width: 640px;
}

.table-wrap.admin-table--standard {
    --admin-table-min-width: 760px;
}

.table-wrap.admin-table--wide {
    --admin-table-min-width: 960px;
}

.table-wrap.admin-table--financial {
    --admin-table-min-width: 1120px;
}

.table-wrap.admin-table--fixed {
    --admin-table-layout: fixed;
}

.table-wrap.admin-table--compact table,
.table-wrap.admin-table--standard table,
.table-wrap.admin-table--wide table,
.table-wrap.admin-table--financial table {
    min-width: var(--admin-table-min-width, 760px);
    table-layout: var(--admin-table-layout, auto);
}

.quotation-items-table[data-preserve-table-layout] {
    --admin-line-table-width: 1040px;
    overflow-x: auto;
    overflow-y: visible;
}

.quotation-items-table[data-preserve-table-layout] .quote-line-header,
.quotation-items-table[data-preserve-table-layout] .package-lines,
.quotation-items-table[data-preserve-table-layout] .quote-line,
.quotation-items-table[data-preserve-table-layout] .package-line,
.quotation-items-table[data-preserve-table-layout] .quote-line-card {
    min-width: var(--admin-line-table-width);
    width: var(--admin-line-table-width);
    max-width: none;
}

.table-surface.card-mode .table-wrap {
    overflow: visible;
}

.table-surface.card-mode table,
.table-surface.card-mode tbody,
.table-surface.card-mode tr,
.table-surface.card-mode td {
    display: block;
}

.table-surface.card-mode table {
    min-width: 0;
}

.table-surface.card-mode thead {
    display: none;
}

.table-surface.card-mode tbody {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
}

.table-surface.card-mode tr {
    min-height: 170px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    position: relative;
    background: #fff;
}

.table-surface.card-mode td {
    padding: 0;
    border: 0;
    margin-bottom: 10px;
}

.table-surface.card-mode td:last-child {
    margin-bottom: 0;
}

.table-surface.card-mode .row-actions {
    margin-top: 12px;
    text-align: left;
}

.table-surface.card-mode .row-actions button,
.table-surface.card-mode .row-actions .row-link-button {
    margin: 0;
}

.table-surface.card-mode tbody[data-quotes-table] .row-actions {
    width: 100%;
}

.table-surface.card-mode tbody[data-quotes-table] .quote-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.table-surface.card-mode tbody[data-quotes-table] .quote-card-actions > button,
.table-surface.card-mode tbody[data-quotes-table] .quote-card-actions > .row-link-button {
    flex: 0 0 auto;
}

.table-surface.card-mode tbody[data-quotes-table] tr {
    padding-top: 18px;
}

.table-surface.card-mode tbody[data-quotes-table] td:first-child {
    width: 100%;
    padding-right: 0;
}

.table-surface.card-mode tbody[data-quotes-table] td:first-child strong {
    display: block;
    max-width: calc(100% - 184px);
    padding-right: 8px;
    line-height: 1.25;
    overflow-wrap: normal;
    word-break: keep-all;
}

.table-surface.card-mode tbody[data-quotes-table] td:nth-child(2),
.table-surface.card-mode tbody[data-quotes-table] td:nth-child(4) {
    padding-right: 176px;
}

.table-surface.card-mode tbody[data-quotes-table] td:nth-child(3) {
    width: 100%;
    padding-right: 0;
}

@media (max-width: 1180px) {
    .slide-drawer.wide-drawer .form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .work-surface.table-surface > .surface-heading {
        align-items: flex-start;
        gap: 12px;
        flex-wrap: wrap;
    }

    .work-surface.table-surface > .surface-heading .list-action,
    .work-surface.table-surface > .surface-heading .secondary-action,
    .work-surface.table-surface > .surface-heading .primary-action {
        margin-left: 0;
    }

    .work-surface.table-surface > .list-controls {
        align-items: stretch;
    }

    .work-surface.table-surface > .list-controls > * {
        min-width: 0;
    }

    .work-surface.table-surface > .list-controls select,
    .work-surface.table-surface > .list-controls .field-group,
    .work-surface.table-surface > .list-controls .compact-search,
    .work-surface.table-surface > .list-controls .inline-date-filter,
    .work-surface.table-surface > .list-controls .view-toggle,
    .work-surface.table-surface > .list-controls .project-list-view-toggle,
    .work-surface.table-surface > .list-controls .project-operations-template-actions {
        flex: 1 1 calc(50% - 8px);
    }

    .work-surface.table-surface > .list-controls .compact-search input,
    .work-surface.table-surface > .list-controls .inline-date-filter input,
    .work-surface.table-surface > .list-controls select {
        width: 100%;
    }

    

    

    

    

    

    

    

    

    

    

    

    

    

    .work-surface.table-surface > .pagination-bar {
        justify-content: space-between;
        gap: 8px;
    }

    .work-surface.table-surface > .pagination-bar span {
        flex: 1 1 auto;
        text-align: center;
    }
}

@media (max-width: 640px) {
    #package-drawer .quotation-items-heading,
    #quote-drawer .quotation-items-heading,
    #project-drawer .quotation-items-heading {
        grid-template-columns: auto minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 10px !important;
    }

    #package-drawer .quotation-items-heading .list-action,
    #quote-drawer .quotation-items-heading .list-action,
    #project-drawer .quotation-items-heading .list-action {
        grid-column: 1 / -1 !important;
        width: 100% !important;
        min-width: 0 !important;
        justify-self: stretch !important;
        margin-left: 0 !important;
    }

    .work-surface.table-surface > .list-controls select,
    .work-surface.table-surface > .list-controls .field-group,
    .work-surface.table-surface > .list-controls .compact-search,
    .work-surface.table-surface > .list-controls .inline-date-filter,
    .work-surface.table-surface > .list-controls .view-toggle,
    .work-surface.table-surface > .list-controls .project-list-view-toggle,
    .work-surface.table-surface > .list-controls .project-operations-template-actions {
        flex: 1 1 100%;
    }

    .action-icon-group {
        gap: 4px !important;
    }

    [data-project-operations-projects-table] .td-actions,
    .table-wrap.is-grid-view td.td-actions,
    .table-wrap:not(.is-grid-view) .td-actions {
        gap: 4px !important;
        width: auto !important;
    }

    [data-project-operations-projects-table] .td-actions .btn-card,
    .table-wrap.is-grid-view td.td-actions .btn-card,
    .table-wrap:not(.is-grid-view) .td-actions .btn-card {
        padding: 0 !important;
    }
}

.guest-task-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.guest-task-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(320px, .8fr);
    gap: 18px;
    align-items: start;
}

.guest-task-editor {
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #fff;
    padding: 18px;
}

.inline-actions {
    justify-content: flex-start;
    padding: 14px 0 0;
    border-top: 0;
}

@media (max-width: 1100px) {
    .guest-task-summary,
    .guest-task-layout {
        grid-template-columns: 1fr;
    }
}

.table-surface.card-mode tbody[data-quotes-table] td:nth-child(3) small {
    display: block;
    margin-top: 4px;
}

.table-surface.card-mode tbody[data-quotes-table] td:nth-child(5) {
    position: absolute;
    top: 12px;
    right: 12px;
    margin: 0;
    padding: 0;
    width: auto;
    z-index: 2;
}

.table-surface.card-mode tbody[data-quotes-table] td:nth-child(5) .status-pill {
    min-width: 0;
    max-width: 160px;
    padding: 6px 10px;
    white-space: normal;
    text-align: center;
}

.table-surface.card-mode tbody[data-quotes-table] td:nth-child(5) .quote-status-stack {
    display: flex;
    max-width: 160px;
    align-items: flex-start;
    justify-content: flex-start;
}

.table-surface.card-mode tbody[data-quotes-table] td:nth-child(5) .quote-review-pill {
    max-width: 160px;
    margin-top: 2px;
    text-align: left;
}

.table-surface.card-mode tbody[data-quotes-table] td:nth-child(6) {
    width: 100%;
    padding-right: 0;
}

.table-surface.card-mode tbody[data-projects-table] tr {
    padding-top: 16px;
}

.table-surface.card-mode tbody[data-projects-table] td:first-child {
    padding-right: 112px;
}

.table-surface.card-mode tbody[data-projects-table] td:nth-child(2),
.table-surface.card-mode tbody[data-projects-table] td:nth-child(3),
.table-surface.card-mode tbody[data-projects-table] td:nth-child(4),
.table-surface.card-mode tbody[data-projects-table] td:nth-child(5),
.table-surface.card-mode tbody[data-projects-table] td:nth-child(7) {
    width: 100%;
    padding-right: 0;
}

.table-surface.card-mode tbody[data-projects-table] td:nth-child(6) {
    position: absolute;
    top: 12px;
    right: 12px;
    margin: 0;
    padding: 0;
}

.table-surface.card-mode tbody[data-projects-table] td:nth-child(6) .status-pill {
    min-width: 0;
    max-width: 96px;
    padding: 6px 10px;
    white-space: nowrap;
}

.table-surface.card-mode tbody[data-leads-table] tr {
    padding-top: 16px;
}

.table-surface.card-mode tbody[data-leads-table] td:first-child,
.table-surface.card-mode tbody[data-leads-table] td:nth-child(2),
.table-surface.card-mode tbody[data-leads-table] td:nth-child(3),
.table-surface.card-mode tbody[data-leads-table] td:nth-child(4) {
    padding-right: 112px;
}

.table-surface.card-mode tbody[data-leads-table] td:nth-child(5) {
    position: absolute;
    top: 12px;
    right: 12px;
    margin: 0;
    padding: 0;
}

.table-surface.card-mode tbody[data-leads-table] td:nth-child(5) .status-pill {
    min-width: 0;
    max-width: 96px;
    padding: 6px 10px;
    white-space: nowrap;
}

.table-surface.card-mode tbody[data-prices-table] tr {
    padding-top: 16px;
}

.table-surface.card-mode tbody[data-prices-table] td:first-child,
.table-surface.card-mode tbody[data-prices-table] td:nth-child(2),
.table-surface.card-mode tbody[data-prices-table] td:nth-child(3),
.table-surface.card-mode tbody[data-prices-table] td:nth-child(4) {
    padding-right: 112px;
}

.table-surface.card-mode tbody[data-prices-table] td:nth-child(5) {
    position: absolute;
    top: 12px;
    right: 12px;
    margin: 0;
    padding: 0;
}

.table-surface.card-mode tbody[data-prices-table] td:nth-child(5) .status-pill {
    min-width: 0;
    max-width: 96px;
    padding: 6px 10px;
    white-space: nowrap;
}

.list-controls,
.pagination-bar {
    display: flex;
    flex-wrap: wrap !important;
    gap: 10px;
    align-items: center;
    margin-bottom: 12px;
}

.list-controls select {
    width: auto;
    min-width: 150px;
}

.project-list-view-toggle {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f8fbff;
}

.project-list-view-toggle button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 36px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: #64748b;
    cursor: pointer;
    transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}

.project-list-view-toggle button:hover {
    color: var(--ink);
    background: #fff;
}

.project-list-view-toggle button.is-active {
    border-color: rgba(15, 23, 42, 0.06);
    background: #f1f5f9;
    color: #475569;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.project-list-view-toggle button svg {
    width: 18px;
    height: 18px;
    display: block;
}

.project-operations-template-actions {
    margin-left: auto;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0;
    flex-wrap: nowrap;
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #f8fbff;
    width: fit-content;
    max-width: 100%;
}

.project-operations-template-actions__button {
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    transition: background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}

.project-operations-template-actions__button:hover {
    background: #fff;
    color: var(--ink);
}

.project-operations-template-actions__button.is-active {
    border-color: rgba(15, 23, 42, 0.06);
    background: #fff;
    color: var(--ink);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.list-action {
    margin-left: auto;
    padding: 0 16px;
}

.po-print-action {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.po-print-action svg {
    width: 16px;
    height: 16px;
}

.po-lifecycle-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    margin-left: auto;
}

.po-lifecycle-actions .list-action {
    margin-left: 0;
}

.po-lifecycle-actions .po-action-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.po-lifecycle-actions .po-action-button svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
}

.procurement-detail-card {
    margin-top: 24px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.procurement-detail-card__header {
    margin-top: 0 !important;
    margin-bottom: 14px;
}

.procurement-detail-card__table {
    margin-top: 0;
}

.procurement-detail-card .table-wrap {
    border-radius: 10px;
}

.view-toggle {
    display: inline-flex;
    gap: 4px;
    min-height: 44px;
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #eef8f5;
}

.view-toggle button {
    width: 36px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
}

.view-toggle button.active {
    background: #fff;
    color: var(--ink);
    box-shadow: 0 8px 18px rgba(31, 41, 55, .08);
}

.item-card-grid {
    display: none;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 12px;
}

.item-card-grid.active {
    display: grid;
}

.item-card {
    display: grid;
    gap: 12px;
    min-height: 170px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.item-card-grid .item-card {
    grid-template-rows: auto minmax(0, 1fr) auto;
    align-content: start;
    overflow: hidden;
}

.item-card-grid .item-card__media {
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 8px;
    background: #edf3fb;
    overflow: hidden;
}

.item-card-grid .item-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.item-card-grid .item-card__media.is-empty {
    display: grid;
    place-items: center;
    color: var(--muted);
    min-height: 0;
}

.item-card-grid .item-card__body {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.item-card-grid .item-card__title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.item-card-grid .item-card__meta {
    margin: 0;
    color: var(--ink);
    overflow-wrap: anywhere;
}

.item-card-grid .item-card__meta:nth-of-type(2) {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: var(--muted);
}

.item-card-grid .item-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
    align-self: end;
}

.item-card-grid .item-card__actions button {
    margin: 0;
}

.item-thumb {
    width: 68px;
    height: 52px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid var(--line);
    background: #eef0f6;
}

.thumb-placeholder {
    width: 68px;
    height: 52px;
    display: grid;
    place-items: center;
    border: 1px dashed var(--line);
    border-radius: 8px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    text-align: center;
}

.item-card-image .item-thumb,
.item-card-image .thumb-placeholder {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
}

.item-card header {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: flex-start;
}

.item-card strong {
    display: block;
}

.item-card small {
    color: var(--muted);
}

.table-item-media {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    min-width: 220px;
}

.table-item-media span {
    min-width: 0;
}

.item-card-actions {
    display: flex;
    gap: 8px;
}

.item-card-actions .row-link-button,
.item-card__actions .row-link-button {
    margin-left: 0;
}

.item-card-actions button {
    min-height: 34px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    font-weight: 800;
    padding: 0 10px;
}

body[data-projects-module-page] .item-card-actions,
body[data-projects-module-page] .item-card-actions.action-icon-group {
    display: inline-flex !important;
    width: auto !important;
    max-width: max-content !important;
    justify-content: flex-start !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    margin-top: 4px;
}

body[data-projects-module-page] .item-card-actions .btn-card,
body[data-projects-module-page] .item-card-actions.action-icon-group .btn-card,
body[data-projects-module-page] .item-card-actions .action-icon-button,
body[data-projects-module-page] .item-card-actions.action-icon-group .action-icon-button {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    padding: 0 !important;
    margin: 0 !important;
    flex: 0 0 32px !important;
}

body[data-projects-module-page] .table-wrap td.row-actions.action-icon-group,
body[data-projects-module-page] .table-wrap td.td-actions.action-icon-group {
    width: auto !important;
    white-space: nowrap !important;
}

body[data-leads-page] .item-card-grid {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

body[data-leads-page] .lead-card .item-card__body {
    gap: 6px;
}

body[data-leads-page] .lead-card .item-card__meta strong {
    font-size: 15px;
}

body[data-leads-page] .item-card-actions.action-icon-group,
body[data-leads-page] .item-card__actions.action-icon-group {
    display: inline-flex !important;
    width: auto !important;
    max-width: max-content !important;
    justify-content: flex-start !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
}

body[data-leads-page] .table-wrap:not(.is-grid-view) td.row-actions {
    display: table-cell !important;
    text-align: right !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
    width: 170px;
}

body[data-leads-page] .table-wrap:not(.is-grid-view) td.row-actions > .action-icon-group {
    display: inline-flex !important;
    width: auto !important;
    max-width: max-content !important;
    justify-content: flex-end !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
}

body[data-leads-page] .item-card-actions.action-icon-group .action-icon-button,
body[data-leads-page] .item-card__actions.action-icon-group .action-icon-button,
body[data-leads-page] .table-wrap td.row-actions .action-icon-button {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    padding: 0 !important;
    margin: 0 !important;
    flex: 0 0 32px !important;
}

body[data-leads-page] .table-wrap[data-preserve-table-layout]:not(.is-grid-view) table {
    table-layout: fixed;
    min-width: max(100%, 980px);
}

body[data-leads-page] .table-wrap[data-preserve-table-layout]:not(.is-grid-view) table th:last-child,
body[data-leads-page] .table-wrap[data-preserve-table-layout]:not(.is-grid-view) table td:last-child {
    width: 170px;
}

body[data-leads-page] .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td,
body[data-leads-page] .table-wrap[data-preserve-table-layout]:not(.is-grid-view) th {
    vertical-align: middle;
    height: 60px;
}

body[data-leads-page] .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
}

/* removed */

/* removed */

/* removed */

/* removed */

/* removed */

/* removed */

body[data-quotations-page] .item-card-grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

body[data-quotations-page] .quote-list-card .item-card__body {
    gap: 6px;
}

body[data-quotations-page] .quote-list-card .item-card__actions,
body[data-quotations-page] .quote-list-card .quote-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
    align-items: center;
}

body[data-quotations-page] .table-wrap[data-preserve-table-layout]:not(.is-grid-view) table {
    min-width: max(100%, 980px);
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) {
    overflow-x: hidden;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) th,
body[data-quotations-page] .quotation-list-table:not(.is-grid-view) td {
    min-width: 0;
    vertical-align: middle;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) th:nth-child(1),
body[data-quotations-page] .quotation-list-table:not(.is-grid-view) td:nth-child(1) {
    width: 17%;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) th:nth-child(2),
body[data-quotations-page] .quotation-list-table:not(.is-grid-view) td:nth-child(2) {
    width: 12%;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) th:nth-child(3),
body[data-quotations-page] .quotation-list-table:not(.is-grid-view) td:nth-child(3) {
    width: 34%;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) th:nth-child(4),
body[data-quotations-page] .quotation-list-table:not(.is-grid-view) td:nth-child(4) {
    width: 15%;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) th:nth-child(5),
body[data-quotations-page] .quotation-list-table:not(.is-grid-view) td:nth-child(5) {
    width: 14%;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) th:nth-child(6),
body[data-quotations-page] .quotation-list-table:not(.is-grid-view) td:nth-child(6) {
    width: 168px;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) td strong,
body[data-quotations-page] .quotation-list-table:not(.is-grid-view) td small,
body[data-quotations-page] .quotation-list-table:not(.is-grid-view) td[data-label="Lead"],
body[data-quotations-page] .quotation-list-table:not(.is-grid-view) td[data-label="Title"] {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) td strong,
body[data-quotations-page] .quotation-list-table:not(.is-grid-view) td small {
    display: block;
    white-space: nowrap;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) .row-actions {
    text-align: right;
    white-space: nowrap !important;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) .quote-card-actions {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
    justify-content: flex-end;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) .action-icon-button {
    width: 32px;
    min-width: 32px;
    height: 32px;
}

@media (max-width: 1180px) {
    body[data-quotations-page] .quotation-list-table:not(.is-grid-view) {
        overflow-x: auto;
    }

    body[data-quotations-page] .quotation-list-table:not(.is-grid-view) table {
        min-width: 980px;
        table-layout: auto;
    }
}

body[data-quotations-page] .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
}

body[data-quotations-page] .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td,
body[data-quotations-page] .table-wrap[data-preserve-table-layout]:not(.is-grid-view) th {
    vertical-align: middle;
}

body[data-quotations-page] .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.row-actions,
body[data-quotations-page] .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.row-actions.action-icon-group {
    white-space: normal !important;
}

body[data-quotations-page] .table-wrap[data-preserve-table-layout]:not(.is-grid-view) .quote-card-actions {
    display: inline-flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    align-items: center !important;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) table th:last-child,
body[data-quotations-page] .quotation-list-table:not(.is-grid-view) table td:last-child {
    width: 260px;
    min-width: 260px;
}

body[data-quotations-page] .quotation-list-table:not(.is-grid-view) .row-actions .action-icon-button--archive,
body[data-quotations-page] .quotation-list-table:not(.is-grid-view) .row-actions .action-icon-button--restore {
    display: inline-flex !important;
}

body[data-quotations-page] .quote-title-control {
    position: relative;
}

body[data-quotations-page] .quote-title-control input {
    padding-right: 48px;
}

body[data-quotations-page] .quote-title-edit-button {
    position: absolute;
    top: 50%;
    right: 8px;
    display: inline-grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 1px solid rgba(37, 99, 235, .28);
    border-radius: 8px;
    background: #eef5ff;
    color: #2563eb;
    cursor: pointer;
    transform: translateY(-50%);
}

body[data-quotations-page] .quote-title-edit-button svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body[data-quotations-page] .quote-title-edit-button:hover {
    border-color: rgba(37, 99, 235, .5);
    background: #e4efff;
}

body[data-quotations-page] .quote-title-edit-button:disabled {
    cursor: not-allowed;
    opacity: .45;
}

.row-handle-cell {
    width: 3rem;
    text-align: center;
}

.drag-handle-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    color: var(--muted);
    cursor: grab;
    transition: border-color 0.18s ease, color 0.18s ease, background 0.18s ease;
}

.drag-handle-button:hover {
    color: var(--primary);
    border-color: rgba(84, 113, 255, 0.26);
    background: rgba(84, 113, 255, 0.06);
}

.drag-handle-button:active {
    cursor: grabbing;
}

.drag-handle-button svg {
    width: 1rem;
    height: 1rem;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
    stroke-linecap: round;
}

.item-card__reorder {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 6px 0 2px;
}

.item-card__reorder span {
    color: var(--muted);
    font-size: 0.88rem;
}

.bwp-image-manager {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.bwp-image-dropzone {
    flex: 1 1 130px;
    max-width: 160px;
    aspect-ratio: 150 / 96;
    min-height: 96px;
    display: flex;
    place-items: center;
    justify-content: center;
    padding: 10px;
    border: 1px dashed #cfd6e6;
    border-radius: 8px;
    background: #fbfcff;
    text-align: center;
    cursor: pointer;
    color: #4b6a9b;
}

.bwp-image-dropzone strong,
.bwp-image-dropzone span {
    display: block;
    font-size: 13px;
    font-weight: 600;
}

.bwp-image-dropzone small {
    display: none;
}

.bwp-image-dropzone.dragging {
    border-color: var(--blue);
    background: #eef5ff;
}

.bwp-image-dropzone.is-uploading {
    border-color: var(--blue);
    background: rgba(87, 155, 252, .08);
    color: var(--blue);
    pointer-events: none;
}

.bwp-image-dropzone.is-uploading::before {
    content: "";
    width: 20px;
    height: 20px;
    border: 2px solid rgba(87, 155, 252, .25);
    border-top-color: var(--blue);
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
    margin-bottom: 8px;
}

.bwp-image-dropzone input {
    display: none;
}

.cms-editor-toolbar {
    display: flex;
    justify-content: flex-end;
    margin: 8px 0 10px;
}

.cms-review-photo-field__header {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.cms-review-photo-drop {
    flex: 1 1 auto;
    min-height: 44px;
    border: 1px dashed #cfd6e6;
    border-radius: 8px;
    background: #f8fbff;
    cursor: pointer;
}

.cms-review-photo-drop:hover,
.cms-review-photo-drop:focus-visible {
    border-color: var(--blue);
    background: #eef6ff;
    outline: 3px solid rgba(87, 155, 252, .16);
}

.cms-review-photo-field__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}

.tox {
    border: 1px solid #d7dbea !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    font-family: Figtree, Inter, Arial, Helvetica, sans-serif !important;
}

.tox .tox-editor-header,
.tox .tox-toolbar-overlord,
.tox .tox-toolbar,
.tox .tox-toolbar__primary,
.tox .tox-menubar {
    background: #fff !important;
    border: 0 !important;
    box-shadow: none !important;
}

.tox .tox-toolbar__group {
    gap: 4px;
    padding: 4px 2px;
    overflow: visible !important;
}

.tox .tox-tbtn,
.tox .tox-mbtn {
    min-width: 34px !important;
    height: 34px !important;
    padding: 0 9px !important;
    border: 1px solid transparent !important;
    border-radius: 7px !important;
    background: transparent !important;
    color: #334155 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    box-shadow: none !important;
}

.tox .tox-tbtn:hover,
.tox .tox-mbtn:hover {
    background: #f8fafc !important;
    border-color: #e2e8f0 !important;
}

.tox .tox-tbtn--enabled,
.tox .tox-tbtn--enabled:hover,
.tox .tox-mbtn--active,
.tox .tox-mbtn--active:hover {
    background: #eef5ff !important;
    border-color: #c7d7fe !important;
    color: #2155d9 !important;
}

.tox .tox-tbtn__icon-wrap,
.tox .tox-tbtn svg,
.tox .tox-mbtn svg,
.tox .tox-tbtn__icon-wrap svg {
    overflow: visible !important;
}

.tox .tox-tbtn svg,
.tox .tox-mbtn svg,
.tox .tox-tbtn__icon-wrap svg {
    width: 18px !important;
    height: 18px !important;
    max-width: none !important;
    max-height: none !important;
    fill: initial !important;
    stroke: initial !important;
    stroke-width: initial !important;
    stroke-linecap: initial !important;
    stroke-linejoin: initial !important;
}

.tox .tox-tbtn svg *,
.tox .tox-mbtn svg *,
.tox .tox-tbtn__icon-wrap svg * {
    fill: initial !important;
    stroke: initial !important;
    stroke-width: initial !important;
    stroke-linecap: initial !important;
    stroke-linejoin: initial !important;
}

.tox .tox-collection__item-label,
.tox .tox-mbtn__select-label,
.tox .tox-statusbar,
.tox .tox-statusbar__path-item,
.tox .tox-statusbar__wordcount {
    font-size: 12px !important;
    font-weight: 500 !important;
}

.tox .tox-edit-area::before {
    border: 0 !important;
}

.tox .tox-edit-area__iframe,
.tox .tox-edit-area iframe {
    background: #fff !important;
}

.cms-og-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
}

.cms-slider-field {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.cms-facts-panel {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 16px;
    border: 1px solid #d8e2f0;
    border-radius: 14px;
    background: #fbfdff;
}

.cms-facts-panel__header {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cms-facts-panel__header > span {
    font-size: 13px;
    font-weight: 700;
    color: #21304a;
}

.cms-facts-panel__header .field-help {
    margin: 0;
}

.cms-section-subheader {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #d8e2f0;
}

.cms-slider-field__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.cms-slider-field__header > div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cms-slider-field__header .field-help {
    margin: 0;
}

.cell-location,
.cell-facts {
    min-width: 190px;
}

.cell-location strong,
.cell-facts strong {
    display: block;
    font-weight: 700;
    color: #20314b;
}

.cell-location small,
.cell-facts small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.cell-location a {
    color: #2563eb;
    text-decoration: none;
    font-weight: 600;
}

.cell-location a:hover {
    text-decoration: underline;
}

.cms-slider-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 14px;
    padding: 14px;
    border: 1px dashed #cdd9ee;
    border-radius: 12px;
    background: #f8fbff;
    min-height: 118px;
}

.cms-slider-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px;
    border: 1px solid #d8e2f0;
    border-radius: 12px;
    background: #fff;
    cursor: grab;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}

.cms-slider-card.dragging,
.cms-slider-card:active {
    cursor: grabbing;
}

.cms-slider-card__media {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    background: #edf3fb;
    aspect-ratio: 16 / 10;
}

.cms-slider-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cms-slider-card__remove {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.78);
    color: #fff;
    font-size: 12px;
    cursor: pointer;
}

.cms-slider-card__meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.cms-slider-card__meta strong,
.cms-slider-card__meta small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cms-slider-card__meta strong {
    font-size: 0.88rem;
    color: #0f172a;
}

.cms-slider-card__meta small {
    color: #64748b;
}

.cms-package-item-picker {
    display: grid;
    gap: 0.5rem;
}

.cms-package-item-actions {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 8px;
    width: 100%;
    margin: 0;
}

.cms-package-item-actions .list-action,
.cms-package-item-actions .secondary-action {
    margin-left: 0 !important;
}

.cms-package-item-actions.list-controls {
    justify-content: flex-start;
    margin-left: 0;
}

.cms-language-tabs {
    display: grid;
    gap: 1rem;
}

.cms-language-tabs__nav.segmented-control {
    justify-self: start;
    display: inline-flex;
    gap: 0.25rem;
    padding: 0.2rem;
    border: 1px solid #cbd8ea;
    border-radius: 8px;
    background: #f8fbff;
}

.cms-package-source-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: end;
}

.cms-package-source-row > label {
    margin: 0;
}

.cms-package-featured-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.5rem;
    min-height: 46px;
    padding: 0 0.85rem;
    border: 1px solid #cbd8ea;
    border-radius: 8px;
    background: #f8fbff;
    color: #0f172a;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    flex-direction: row;
    line-height: 1;
}

.cms-package-featured-toggle input {
    position: static;
    width: 16px;
    height: 16px;
    opacity: 1;
    margin: 0;
    pointer-events: auto;
    flex: 0 0 auto;
}

.cms-package-featured-toggle > span {
    display: inline;
    align-items: center;
    margin: 0;
}

.cms-package-featured-toggle:has(input:checked) {
    border-color: #2563eb;
    background: #eff6ff;
    color: #1d4ed8;
}

@media (max-width: 760px) {
    .cms-package-source-row {
        grid-template-columns: 1fr;
    }

    .cms-package-featured-toggle {
        justify-content: flex-start;
    }
}

.cms-language-tabs__nav.segmented-control button {
    min-width: 52px;
    padding: 0.38rem 0.75rem;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: #475569;
    font-size: 0.86rem;
    font-weight: 800;
    letter-spacing: 0;
    cursor: pointer;
}

.cms-language-tabs__nav.segmented-control button.active {
    border-color: #2563eb;
    background: #2563eb;
    color: #fff;
    box-shadow: 0 5px 12px rgba(37, 99, 235, 0.18);
}

.cms-language-tabs__panel {
    display: grid;
    gap: 1rem;
}

.cms-language-tabs__panel[hidden] {
    display: none;
}

[data-cms-home-sections-panel][hidden] {
    display: none !important;
}

.cms-package-item-picker__header {
    display: grid;
    grid-template-columns: 28px 40px 72px minmax(0, 1fr) 88px;
    gap: 0.75rem;
    align-items: center;
    padding: 0 0.75rem 0.25rem;
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
}

.form-grid .cms-package-item-option,
.cms-facts-panel .cms-package-item-option {
    grid-template-columns: 28px 40px 72px minmax(0, 1fr) 88px;
    display: grid;
    gap: 0.75rem;
    align-items: center;
    justify-items: stretch;
}

.form-grid .cms-package-item-option > span,
.cms-facts-panel .cms-package-item-option > span {
    width: auto;
}

.cms-package-item-option {
    display: grid;
    grid-template-columns: 28px 40px 72px minmax(0, 1fr) 88px;
    gap: 0.75rem;
    align-items: center;
    padding: 0.65rem 0.75rem;
    border: 1px solid #d8e2f0;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
    width: 100%;
    max-width: none;
    text-align: left;
}

.cms-package-item-option.dragging {
    opacity: 0.62;
    border-color: #2563eb;
}

.cms-package-item-option:hover {
    border-color: #9db5d4;
    background: #f8fbff;
}

.cms-package-item-option__handle {
    color: #94a3b8;
    cursor: grab;
    font-weight: 800;
    letter-spacing: -2px;
    text-align: center;
}

.cms-package-item-option input {
    width: 18px;
    height: 18px;
    justify-self: center;
    margin: 0;
    box-shadow: none;
    outline-offset: 2px;
}

.cms-package-item-option__media {
    width: 64px;
    height: 64px;
    border-radius: 6px;
    background: #edf3fb;
    overflow: hidden;
}

.cms-package-item-option__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cms-package-item-option__body {
    min-width: 0;
    display: block;
}

.cms-package-item-option__body strong,
.cms-package-item-option__body small,
.cms-package-item-option__body em {
    display: block;
    overflow-wrap: anywhere;
}

.cms-package-item-option__body strong {
    color: #0f172a;
    font-size: 0.92rem;
}

.cms-package-item-option__body small {
    color: #64748b;
    margin-top: 4px;
}

.cms-package-item-option__body em {
    margin-top: 4px;
    color: #334155;
    font-size: 0.82rem;
    font-style: normal;
    line-height: 1.45;
}

.cms-package-item-option__state {
    justify-self: start;
    border-radius: 999px;
    background: #e0f2fe;
    color: #075985;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.28rem 0.55rem;
}

.cms-package-item-option:has(input:not(:checked)) .cms-package-item-option__state {
    background: #f1f5f9;
    color: #64748b;
}

@media (max-width: 720px) {
    .cms-package-item-picker__header {
        display: none;
    }

    .cms-package-item-option {
        grid-template-columns: 28px 36px 64px minmax(0, 1fr);
    }

    .cms-package-item-option__state {
        grid-column: 4;
    }
}

/* removed */

/* removed */

/* removed */

/* removed */

/* removed */

/* removed */

.cms-service-icon {
    align-items: center;
    background: #eef6ff;
    border: 1px solid #d8e8ff;
    border-radius: 10px;
    color: #2563eb;
    display: inline-flex;
    height: 36px;
    justify-content: center;
    margin-right: 8px;
    width: 36px;
}

.cms-service-icon-cell {
    align-items: center;
    display: inline-flex;
    gap: 8px;
    white-space: nowrap;
}

.cms-service-icon-cell small {
    color: var(--muted);
    display: inline;
    margin: 0;
}

.cms-service-icon i {
    font-size: 18px;
    line-height: 1;
}

.cms-service-card {
    min-height: 210px;
}

.cms-service-card h3 {
    font-size: 1rem;
    line-height: 1.35;
    margin: 2px 0 0;
}

.cms-service-card .cms-service-icon {
    height: 44px;
    margin: 0;
    width: 44px;
}

.cms-service-card .cms-service-icon i {
    font-size: 22px;
}

.settings-token-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.settings-token-list button {
    background: #eef6ff;
    border: 1px solid #d8e8ff;
    border-radius: 999px;
    color: #1d4ed8;
    cursor: pointer;
    font: inherit;
    font-size: .78rem;
    font-weight: 700;
    padding: 6px 10px;
}

.settings-token-list button:hover {
    background: #dbeafe;
    border-color: #bfdbfe;
}

.settings-test-email-action {
    align-items: end;
    display: flex;
    min-height: 100%;
}

.settings-test-email-action .secondary-action {
    min-height: 46px;
    width: 100%;
}

[data-cms-table] th:first-child,
[data-cms-table] .cell-sort {
    width: 44px;
    text-align: center;
}

.cms-pages-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

[data-cms-table] {
    min-width: 880px;
    table-layout: fixed;
}

[data-cms-table] th:nth-child(7),
[data-cms-table] td:nth-child(7) {
    width: 240px;
}

[data-cms-table] .cell-actions .row-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

[data-cms-table] .cell-actions .row-actions button,
[data-cms-table] .cell-actions .row-actions .row-link-button {
    margin-left: 0;
}

[data-cms-package-tbody] tr td:nth-child(7) {
    width: 260px;
}

[data-cms-package-tbody] tr td:nth-child(7) .row-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

[data-cms-package-tbody] tr td:nth-child(7) .row-actions button,
[data-cms-package-tbody] tr td:nth-child(7) .row-actions .row-link-button {
    margin-left: 0;
}

[data-cms-venue-table] th:first-child,
[data-cms-venue-table] .cell-sort {
    width: 44px;
    text-align: center;
}

.cms-venues-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

[data-cms-venue-table] {
    min-width: 1060px;
    table-layout: fixed;
}

[data-cms-venue-table] th:nth-child(1),
[data-cms-venue-table] td:nth-child(1) {
    width: 44px;
}

[data-cms-venue-table] th:nth-child(2),
[data-cms-venue-table] td:nth-child(2) {
    width: 190px;
}

[data-cms-venue-table] th:nth-child(3),
[data-cms-venue-table] td:nth-child(3) {
    width: 140px;
}

[data-cms-venue-table] th:nth-child(4),
[data-cms-venue-table] td:nth-child(4),
[data-cms-venue-table] th:nth-child(5),
[data-cms-venue-table] td:nth-child(5) {
    width: 170px;
}

[data-cms-venue-table] th:nth-child(6),
[data-cms-venue-table] td:nth-child(6),
[data-cms-venue-table] th:nth-child(7),
[data-cms-venue-table] td:nth-child(7),
[data-cms-venue-table] th:nth-child(8),
[data-cms-venue-table] td:nth-child(8) {
    width: 110px;
}

[data-cms-venue-table] th:nth-child(9),
[data-cms-venue-table] td:nth-child(9) {
    width: 260px;
}

[data-cms-venue-table] .cell-actions .row-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

[data-cms-venue-table] .cell-actions .row-actions button,
[data-cms-venue-table] .cell-actions .row-actions .row-link-button {
    margin-left: 0;
}

[data-cms-venue-table] .cell-name small {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cms-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 14px;
}



.cms-gallery-drawer {
    width: min(760px, calc(100vw - 32px));
}

.cms-gallery-upload-drop {
    position: relative;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 1.5rem;
    min-height: 100px !important;
    border: 1px dashed var(--line);
    border-radius: 8px;
    background: #f8fbff;
    text-align: center;
    cursor: pointer;
}

.cms-gallery-upload-drop.is-uploading {
    cursor: wait;
    opacity: 0.86;
    pointer-events: none;
}

.cms-gallery-upload-drop.is-uploading::before {
    content: "";
    width: 28px;
    height: 28px;
    border: 3px solid rgba(37, 99, 235, 0.18);
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: cms-gallery-spin 0.8s linear infinite;
}

@keyframes cms-gallery-spin {
    to {
        transform: rotate(360deg);
    }
}

.cms-gallery-upload-drop.dragging {
    border-color: var(--primary);
    background: #eef6ff;
}

.cms-gallery-upload-drop input {
    display: none;
}

.admin-shell:not(.sidebar-collapsed) /* removed */

.admin-shell:not(.sidebar-collapsed) /* removed */

.admin-shell:not(.sidebar-collapsed) /* removed */

.admin-shell:not(.sidebar-collapsed) /* removed */

.admin-shell:not(.sidebar-collapsed) /* removed */

.admin-shell:not(.sidebar-collapsed) /* removed */

.admin-shell:not(.sidebar-collapsed) /* removed */

.admin-shell.sidebar-collapsed /* removed */

.admin-shell.sidebar-collapsed /* removed */

.admin-shell.sidebar-collapsed /* removed */

.admin-shell.sidebar-collapsed /* removed */

.admin-shell.sidebar-collapsed /* removed */

.admin-shell.sidebar-collapsed /* removed */

.admin-shell.sidebar-collapsed /* removed */

@media (max-width: 900px) {
    .cms-package-drawer.slide-drawer.wide-drawer,
    .cms-venue-drawer.slide-drawer.wide-drawer,
    .cms-service-drawer.slide-drawer.wide-drawer,
    .cms-article-drawer.slide-drawer.wide-drawer,
    .cms-review-drawer.slide-drawer.wide-drawer,
    .cms-page-drawer.slide-drawer.wide-drawer,
    .cms-real-wedding-drawer.slide-drawer.wide-drawer,
    .admin-shell:not(.sidebar-collapsed) .cms-package-drawer.slide-drawer.wide-drawer,
    .admin-shell:not(.sidebar-collapsed) .cms-venue-drawer.slide-drawer.wide-drawer,
    .admin-shell:not(.sidebar-collapsed) .cms-service-drawer.slide-drawer.wide-drawer,
    .admin-shell:not(.sidebar-collapsed) .cms-article-drawer.slide-drawer.wide-drawer,
    .admin-shell:not(.sidebar-collapsed) .cms-review-drawer.slide-drawer.wide-drawer,
    .admin-shell:not(.sidebar-collapsed) .cms-page-drawer.slide-drawer.wide-drawer,
    .admin-shell:not(.sidebar-collapsed) .cms-real-wedding-drawer.slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed /* removed */

    .admin-shell.sidebar-collapsed .cms-page-drawer.slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed .cms-service-drawer.slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed .cms-article-drawer.slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed .cms-review-drawer.slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed .cms-venue-drawer.slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed /* removed */

    .cms-review-drawer.slide-drawer.wide-drawer,
    .admin-shell:not(.sidebar-collapsed) .cms-review-drawer.slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed /* removed */
}

.cms-media-modal {
    position: fixed;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%);
    width: min(1120px, calc(100vw - 48px));
    max-height: calc(100vh - 72px);
    background: #fff;
    border: 1px solid #dbe5f4;
    border-radius: 16px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.2);
    z-index: 1400;
    display: none;
    overflow: hidden;
}

.cms-media-modal.open {
    display: flex;
    flex-direction: column;
}

.cms-media-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 24px 16px;
    border-bottom: 1px solid #e4ecf7;
}

.cms-media-modal__header h3 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
}

.cms-media-modal__body {
    padding: 20px 24px 24px;
    overflow: auto;
}

.cms-media-controls {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(180px, 240px) auto;
    gap: 12px;
    align-items: center;
    margin-bottom: 18px;
}

.cms-media-controls .cms-media-search {
    margin-bottom: 0;
    min-height: 46px;
    height: 46px;
    align-items: center;
}

.cms-media-controls .cms-media-search input {
    height: 100%;
}

.cms-media-controls > select {
    width: 100%;
    min-height: 46px;
    height: 46px;
    margin: 0;
    padding: 0 12px;
    border: 1px solid #d8e2f0;
    border-radius: 8px;
    background: #fff;
    color: #334155;
    font-weight: 600;
}

.cms-media-upload-drop {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 86px;
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px dashed var(--line);
    border-radius: 8px;
    background: #f8fbff;
    color: var(--text-2);
    text-align: center;
}

.cms-media-upload-drop span {
    color: var(--text-1);
    font-weight: 700;
}

.cms-media-upload-drop small {
    font-size: 0.82rem;
}

.cms-media-upload-drop.dragging {
    border-color: var(--primary);
    background: #eef6ff;
}

.cms-media-upload-drop.is-uploading {
    cursor: wait;
    opacity: 0.86;
}

.cms-media-upload-drop.is-uploading::before {
    content: "";
    width: 26px;
    height: 26px;
    border: 3px solid rgba(37, 99, 235, 0.18);
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: cms-gallery-spin 0.8s linear infinite;
}

.cms-media-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 14px;
}

.cms-media-grid.is-loading {
    cursor: progress;
}

.cms-media-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0;
    border: 1px solid #d8e2f0;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
    cursor: pointer;
    text-align: left;
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

.cms-media-card--loading {
    pointer-events: none;
}

.cms-media-skeleton {
    display: block;
    overflow: hidden;
    background: linear-gradient(90deg, #eef2f7 0%, #f8fafc 45%, #eef2f7 90%);
    background-size: 220% 100%;
    animation: cms-gallery-shimmer 1.1s ease-in-out infinite;
}

.cms-media-skeleton.is-image {
    width: 100%;
    aspect-ratio: 16 / 10;
}

.cms-media-skeleton.is-title {
    width: 76%;
    height: 13px;
    border-radius: 999px;
}

.cms-media-skeleton.is-meta {
    width: 52%;
    height: 10px;
    margin-top: 7px;
    border-radius: 999px;
}

.cms-media-card:hover {
    transform: translateY(-2px);
    border-color: #b9ccf1;
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.12);
}

.cms-media-card img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    display: block;
    background: #eef4fb;
}

.cms-media-card__meta {
    padding: 0 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cms-media-card__meta strong,
.cms-media-card__meta small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cms-media-card > span:not(.cms-media-card__meta),
.cms-media-card > small {
    display: block;
    min-width: 0;
    padding: 0 12px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cms-media-card > span:not(.cms-media-card__meta) {
    color: #0f172a;
    font-size: 0.88rem;
    font-weight: 700;
}

.cms-media-card > small {
    margin-top: -8px;
    padding-bottom: 14px;
    color: #64748b;
    font-size: 0.78rem;
    text-transform: capitalize;
}

.cms-media-card__meta strong {
    font-size: 0.88rem;
    color: #0f172a;
}

.cms-media-card__meta small {
    color: #64748b;
    text-transform: capitalize;
}

[data-cms-media-backdrop] {
    z-index: 1350;
}

@media (max-width: 820px) {
    .cms-og-row {
        grid-template-columns: 1fr;
    }

    .cms-slider-field__header {
        flex-direction: column;
        align-items: stretch;
    }

    .cms-media-modal {
        width: calc(100vw - 24px);
        max-height: calc(100vh - 32px);
    }

    .cms-media-modal__header,
    .cms-media-modal__body {
        padding-left: 16px;
        padding-right: 16px;
    }

    .cms-media-controls {
        grid-template-columns: 1fr;
    }

    .cms-media-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cms-slider-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.bwp-image-grid {
    display: contents;
}

.bwp-image-tile {
    position: relative;
    flex: 1 1 130px;
    max-width: 160px;
    aspect-ratio: 150 / 96;
    min-height: 96px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #eef0f6;
    overflow: hidden;
    cursor: grab;
}

.bwp-image-tile.dragging {
    opacity: .55;
    border-color: var(--blue);
}

.bwp-image-tile:active {
    cursor: grabbing;
}

.bwp-image-tile img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.bwp-image-empty {
    flex: 1 1 130px;
    max-width: 160px;
    aspect-ratio: 150 / 96;
    min-height: 96px;
    display: grid;
    place-items: center;
    color: var(--muted);
    font-size: 13px;
    font-weight: 500;
    border: 1px dashed #cfd6e6;
    border-radius: 8px;
    background: #fdfdfd;
}

.bwp-image-actions {
    position: absolute;
    inset: 6px 6px auto 6px;
    display: flex;
    gap: 4px;
    justify-content: center;
}

.bwp-image-actions button {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.95);
    color: #333;
    cursor: pointer;
    font-size: 12px;
    padding: 0;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.bwp-image-actions button svg {
    width: 14px;
    height: 14px;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
}

.bwp-image-actions button.is-primary {
    color: #b7791f;
    background: #fff7d6;
}

.bwp-image-actions button.is-primary svg {
    fill: currentColor;
    stroke: none;
}

.image-tile-actions button:first-child {
    width: 28px;
    padding: 0;
}

.image-tile-actions button svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.image-tile-actions button.is-primary {
    background: #fff7d6;
    border-color: #ffd166;
    color: #a15c00;
}

.image-tile-actions button.is-primary svg {
    fill: currentColor;
    stroke-width: 1.5;
}

.crop-editor {
    display: grid;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

body > .crop-editor {
    position: fixed;
    top: 50%;
    left: 50%;
    right: auto;
    bottom: auto;
    transform: translate(-50%, -50%);
    z-index: 1100;
    align-content: start;
    width: min(860px, calc(100vw - 48px));
    max-width: calc(100vw - 48px);
    max-height: calc(100vh - 48px);
    height: auto;
    margin: 0;
    overflow: auto;
    padding: 14px;
    box-shadow: 0 28px 90px rgba(15, 23, 42, .34);
}

body > .crop-editor .crop-stage {
    max-height: min(56vh, 440px);
}

body > .crop-editor .crop-stage img {
    max-height: min(56vh, 440px);
    object-fit: contain;
}

body > .crop-editor .form-actions {
    margin: 0;
}

.crop-editor[hidden] {
    display: none;
}

.crop-stage {
    position: relative;
    width: 100%;
    max-height: 520px;
    overflow: hidden;
    border-radius: 8px;
    background: #101828;
    touch-action: none;
}

.crop-stage img {
    display: block;
    width: 100%;
    height: auto;
    user-select: none;
    pointer-events: none;
}

.crop-box {
    position: absolute;
    left: 15%;
    top: 15%;
    width: 55%;
    height: 55%;
    border: 2px solid #fff;
    box-shadow: 0 0 0 9999px rgba(16, 24, 40, .52);
    cursor: move;
}

.crop-handle {
    position: absolute;
    width: 16px;
    height: 16px;
    border-radius: 999px;
    background: var(--blue);
    border: 2px solid #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
}

.crop-handle-nw {
    top: -8px;
    left: -8px;
    cursor: nwse-resize;
}

.crop-handle-n {
    top: -8px;
    left: calc(50% - 8px);
    cursor: ns-resize;
}

.crop-handle-ne {
    top: -8px;
    right: -8px;
    cursor: nesw-resize;
}

.crop-handle-e {
    top: calc(50% - 8px);
    right: -8px;
    cursor: ew-resize;
}

.crop-handle-se {
    right: -8px;
    bottom: -8px;
    cursor: nwse-resize;
}

.crop-handle-s {
    bottom: -8px;
    left: calc(50% - 8px);
    cursor: ns-resize;
}

.crop-handle-sw {
    bottom: -8px;
    left: -8px;
    cursor: nesw-resize;
}

.crop-handle-w {
    top: calc(50% - 8px);
    left: -8px;
    cursor: ew-resize;
}

.pagination-bar {
    justify-content: flex-end;
    margin: 12px 0 0;
}

.pagination-bar button {
    min-height: 36px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    font-weight: 600;
    padding: 0 12px;
}

.pagination-bar .list-action {
    margin-left: 0;
}

.pagination-bar button:disabled {
    opacity: .45;
    cursor: not-allowed;
}

table {
    width: 100%;
    min-width: var(--admin-table-min-width, 760px);
    table-layout: var(--admin-table-layout, auto);
    border-collapse: collapse;
}

th,
td {
    padding: 13px 12px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: middle;
}

th {
    color: var(--muted);
    font-size: 12px;
    text-transform: uppercase;
}

td small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
}

.row-actions {
    text-align: right;
    white-space: nowrap;
}

.table-wrap:not(.is-grid-view) th.row-actions,
.table-wrap:not(.is-grid-view) td.row-actions,
.table-wrap:not(.is-grid-view) th.td-actions,
.table-wrap:not(.is-grid-view) td.td-actions,
.table-wrap:not(.is-grid-view) th.cell-actions,
.table-wrap:not(.is-grid-view) td.cell-actions,
.table-wrap:not(.is-grid-view) td:last-child.row-actions,
.table-wrap:not(.is-grid-view) td:last-child:has(.action-icon-button),
.table-wrap:not(.is-grid-view) td:last-child:has(.action-inline-cluster),
.table-wrap:not(.is-grid-view) td:last-child:has(.action-icon-group) {
    width: var(--admin-action-column-width, 152px);
    min-width: var(--admin-action-column-width, 152px);
    max-width: var(--admin-action-column-width, 152px);
    text-align: left;
    white-space: nowrap;
}

.table-wrap:not(.is-grid-view) .row-actions > .action-icon-group,
.table-wrap:not(.is-grid-view) .row-actions > .action-inline-cluster,
.table-wrap:not(.is-grid-view) .td-actions > .action-icon-group,
.table-wrap:not(.is-grid-view) .td-actions > .action-inline-cluster,
.table-wrap:not(.is-grid-view) .cell-actions > .action-icon-group,
.table-wrap:not(.is-grid-view) .cell-actions > .action-inline-cluster {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
}

.table-wrap:not(.is-grid-view) .row-actions > .action-icon-button,
.table-wrap:not(.is-grid-view) .td-actions > .action-icon-button,
.table-wrap:not(.is-grid-view) .cell-actions > .action-icon-button,
.table-wrap:not(.is-grid-view) .row-actions > .btn-card,
.table-wrap:not(.is-grid-view) .td-actions > .btn-card,
.table-wrap:not(.is-grid-view) .cell-actions > .btn-card {
    display: inline-flex !important;
    vertical-align: middle !important;
}

.row-actions .action-icon-group {
    min-height: 32px;
    justify-content: flex-end;
}

body[data-items-module-page] .table-wrap table th:last-child,
body[data-items-module-page] .table-wrap table td.row-actions,
body[data-vendor-rates-module-page] .table-wrap table th:last-child,
body[data-vendor-rates-module-page] .table-wrap table td.row-actions {
    width: 152px;
    min-width: 152px;
}

body[data-vendors-module-page] .table-wrap table th:last-child,
body[data-vendors-module-page] .table-wrap table td.row-actions {
    width: 112px;
    min-width: 112px;
}

[data-items-list-table],
[data-vendors-list-table],
[data-vendor-rates-list-table] {
    table-layout: fixed;
}

[data-items-list-table] {
    min-width: 1040px;
}

[data-items-list-table] th:nth-child(1),
[data-items-list-table] td:nth-child(1) {
    width: 120px;
}

[data-items-list-table] th:nth-child(2),
[data-items-list-table] td:nth-child(2) {
    width: 92px;
}

[data-items-list-table] th:nth-child(4),
[data-items-list-table] td:nth-child(4) {
    width: 140px;
}

[data-items-list-table] th:nth-child(5),
[data-items-list-table] td:nth-child(5),
[data-items-list-table] th:nth-child(6),
[data-items-list-table] td:nth-child(6) {
    width: 120px;
}

[data-items-list-table] th:nth-child(7),
[data-items-list-table] td:nth-child(7) {
    width: 152px;
}

[data-vendors-list-table] {
    min-width: 920px;
}

[data-vendors-list-table] th:nth-child(2),
[data-vendors-list-table] td:nth-child(2),
[data-vendors-list-table] th:nth-child(3),
[data-vendors-list-table] td:nth-child(3) {
    width: 180px;
}

[data-vendors-list-table] th:nth-child(4),
[data-vendors-list-table] td:nth-child(4),
[data-vendors-list-table] th:nth-child(5),
[data-vendors-list-table] td:nth-child(5) {
    width: 120px;
}

[data-vendors-list-table] th:nth-child(6),
[data-vendors-list-table] td:nth-child(6) {
    width: 112px;
}

[data-vendor-rates-list-table] {
    min-width: 1080px;
}

[data-vendor-rates-list-table] th:nth-child(1),
[data-vendor-rates-list-table] td:nth-child(1),
[data-vendor-rates-list-table] th:nth-child(2),
[data-vendor-rates-list-table] td:nth-child(2) {
    width: 180px;
}

[data-vendor-rates-list-table] th:nth-child(3),
[data-vendor-rates-list-table] td:nth-child(3),
[data-vendor-rates-list-table] th:nth-child(4),
[data-vendor-rates-list-table] td:nth-child(4),
[data-vendor-rates-list-table] th:nth-child(5),
[data-vendor-rates-list-table] td:nth-child(5),
[data-vendor-rates-list-table] th:nth-child(6),
[data-vendor-rates-list-table] td:nth-child(6) {
    width: 120px;
}

[data-vendor-rates-list-table] th:nth-child(7),
[data-vendor-rates-list-table] td:nth-child(7) {
    width: 152px;
}

.row-actions button {
    min-height: 34px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    font-weight: 800;
    margin-left: 8px;
    padding: 0 10px;
}

.quote-status-stack {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}

.quote-review-pill {
    min-width: 0;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    white-space: normal;
}

.row-link-button {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    font-weight: 800;
    margin-left: 8px;
    padding: 0 10px;
    text-decoration: none;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

[hidden] {
    display: none !important;
}

.action-icon-button {
    position: relative;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px;
    min-width: 32px;
    height: 32px;
    min-height: 32px;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 9px;
    border: 1px solid transparent;
    background: #fff;
    line-height: 1;
    white-space: nowrap;
    font-size: 0 !important;
    text-decoration: none;
    box-sizing: border-box;
}

.action-icon-button svg {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    display: block;
}

.action-icon-button svg * {
    vector-effect: non-scaling-stroke;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.action-icon-group:not(td):not(th) { display: inline-flex !important; align-items: center !important; justify-content: flex-start; flex-direction: row !important; flex-wrap: nowrap !important;
    gap: 6px !important;
}

td.row-actions.action-icon-group,
td.td-actions.action-icon-group,
td.cell-actions.action-icon-group,
th.row-actions.action-icon-group,
th.td-actions.action-icon-group,
th.cell-actions.action-icon-group {
    display: table-cell !important;
    vertical-align: middle !important;
}

body[data-project-operations-page] .table-wrap .td-actions.row-actions.action-icon-group,
body[data-project-operations-page] .table-wrap td.td-actions.row-actions.action-icon-group {
    display: table-cell !important;
    width: auto !important;
    min-width: 76px !important;
    white-space: nowrap !important;
    text-align: center !important;
    vertical-align: middle !important;
}

body[data-project-operations-page] .table-wrap .td-actions.row-actions.action-icon-group .btn-card,
body[data-project-operations-page] .table-wrap td.td-actions.row-actions.action-icon-group .btn-card {
    display: inline-flex !important;
    vertical-align: middle !important;
}

.action-icon-button--open {
    color: #2563eb !important;
    border-color: rgba(37, 99, 235, .22) !important;
    background: #eff6ff !important;
}

.action-icon-button--open:hover {
    color: #1d4ed8 !important;
    background: #dbeafe !important;
    border-color: rgba(37, 99, 235, .3) !important;
}

.action-icon-button--link {
    color: #0f766e !important;
    border-color: rgba(15, 118, 110, .22) !important;
    background: #ecfeff !important;
}

.action-icon-button--link svg {
    display: none !important;
}

.action-icon-button--link::before,
.action-icon-button--link::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 9px;
    height: 5px;
    border: 1.9px solid currentColor;
    border-radius: 999px;
    transform: translateY(-50%) rotate(-35deg);
    box-sizing: border-box;
}

.action-icon-button--link::before {
    left: 8px;
}

.action-icon-button--link::after {
    left: 13px;
}

.action-icon-button--link:hover {
    color: #115e59 !important;
    background: #cffafe !important;
    border-color: rgba(15, 118, 110, .32) !important;
}

.action-icon-button--submit {
    color: #7c3aed !important;
    border-color: rgba(124, 58, 237, .18) !important;
    background: #f5f3ff !important;
}

.action-icon-button--submit:hover {
    color: #6d28d9 !important;
    background: #ede9fe !important;
    border-color: rgba(124, 58, 237, .28) !important;
}

.action-icon-button--archive {
    color: #dc2626 !important;
    border-color: rgba(220, 38, 38, .18) !important;
    background: #fef2f2 !important;
}

.action-icon-button--archive:hover {
    color: #b91c1c !important;
    background: #fee2e2 !important;
    border-color: rgba(220, 38, 38, .28) !important;
}

.action-icon-button--edit {
    color: #2563eb !important;
    border-color: rgba(37, 99, 235, .22) !important;
    background: #eff6ff !important;
}

.action-icon-button--edit:hover {
    color: #1d4ed8 !important;
    background: #dbeafe !important;
    border-color: rgba(37, 99, 235, .3) !important;
}

.action-icon-button--copy {
    color: #7c3aed !important;
    border-color: rgba(124, 58, 237, .18) !important;
    background: #f5f3ff !important;
}

.action-icon-button--copy:hover {
    color: #6d28d9 !important;
    background: #ede9fe !important;
    border-color: rgba(124, 58, 237, .28) !important;
}

.action-icon-button--restore {
    color: #059669 !important;
    border-color: rgba(5, 150, 105, .18) !important;
    background: #ecfdf5 !important;
}

.action-icon-button--restore:hover {
    color: #047857 !important;
    background: #d1fae5 !important;
    border-color: rgba(5, 150, 105, .28) !important;
}

.action-icon-button--delete {
    color: #dc2626 !important;
    border-color: rgba(220, 38, 38, .18) !important;
    background: #fff5f5 !important;
}

.action-icon-button--delete:hover {
    color: #b91c1c !important;
    background: #fee2e2 !important;
    border-color: rgba(220, 38, 38, .3) !important;
}

.package-lines {
    display: grid;
    gap: 18px;
    margin-top: 12px;
}

.package-line {
    position: relative;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(255, 255, 255, .72);
}

.line-drag-handle {
    position: absolute;
    top: 10px;
    right: 12px;
    width: auto;
    height: 26px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--muted);
    cursor: grab;
    font-weight: 700;
    line-height: 1;
    padding: 0 8px;
}

.line-drag-handle span {
    color: var(--ink);
    font-size: 12px;
    font-weight: 600;
}

.line-drag-handle:active {
    cursor: grabbing;
}

.quote-line-image {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(220px, .7fr) auto;
    gap: 12px;
    align-items: center;
}

.quote-image-grid {
    display: contents;
}

.quote-image-tile {
    position: relative;
    width: 150px;
    height: 96px;
    border: 1px solid var(--line);
    border-radius: 8px;
    overflow: hidden;
    background: #eef0f6;
    cursor: grab;
}

.quote-image-tile.dragging {
    opacity: .55;
}

.quote-image-tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.quote-image-actions {
    position: absolute;
    inset: 6px 6px auto 6px;
    display: flex;
    gap: 4px;
    justify-content: center;
}

.quote-image-actions button {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.95);
    color: #333;
    cursor: pointer;
    font-size: 12px;
    padding: 0;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.quote-image-actions button svg {
    width: 14px;
    height: 14px;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
}

.quote-image-actions button.is-primary {
    color: #b7791f;
    background: #fff7d6;
}

.quote-image-actions button.is-primary svg {
    fill: currentColor;
    stroke: none;
}

.quote-line-thumb {
    width: 150px;
    height: 96px;
    object-fit: cover;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #eef0f6;
}

.quote-line-thumb-empty {
    width: 150px;
    height: 96px;
    display: grid;
    place-items: center;
    color: var(--muted);
    font-size: 13px;
    font-weight: 500;
    border: 1px dashed #cfd6e6;
    border-radius: 8px;
    background: #fdfdfd;
}

.quote-upload-drop {
    min-height: 96px;
    display: grid;
    place-items: center;
    border: 1px dashed #b8c4d8;
    border-radius: 8px;
    background: #fbfcff;
    color: var(--muted);
    cursor: pointer;
    text-align: center;
}

.quote-upload-drop.drag-over {
    border-color: var(--blue);
    background: rgba(87, 155, 252, .08);
    color: var(--blue);
}

.quote-upload-drop input {
    display: none;
}

.package-line[draggable="true"] {
    cursor: grab;
}

.package-line.dragging {
    opacity: .55;
    border-color: var(--blue);
}

/* Monday-inspired compact typography scale */
.story-brand p {
    font-size: 25px;
    font-weight: 600;
    line-height: 1.16;
}

.brand-lockup.compact,
.nav-list a,
label,
.primary-action,
.secondary-action,
.mini-board div,
.item-card-actions button,
.line-actions button,
.icon-close {
    font-weight: 600;
}

.brand-lockup.compact small,
.stack small,
.item-card small,
td small,
.drop-zone small {
    font-weight: 400;
}

.brand-lockup h1,
.topbar h1,
.work-surface h2 {
    font-size: 22px;
    font-weight: 600;
    line-height: 1.2;
}

.brand-lockup p,
.eyebrow,
.metric-card p,
.metric-card em,
.user-area,
label,
input,
select,
textarea,
.ts-wrapper.single .ts-control,
.ts-wrapper.multi .ts-control,
td,
.item-card,
.form-message {
    font-size: 13px;
}

.metric-card strong {
    font-size: 32px;
    font-weight: 500;
    letter-spacing: 0;
}

.story-chip,
.status-pill,
.thumb-placeholder,
.image-tile-actions button {
    font-weight: 600;
}

th {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .01em;
}

td strong,
.item-card strong {
    font-weight: 600;
}

/* Quotation image manager hard bounds */
#quote-drawer .quote-line-image {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    justify-content: start;
}

#quote-drawer .quote-image-grid {
    display: flex !important;
    flex-wrap: wrap;
    gap: 8px;
    align-items: start;
    align-content: start;
    max-width: 100%;
    min-height: 52px;
    min-width: 0;
}

#quote-drawer .quote-image-tile {
    position: relative !important;
    display: block !important;
    width: 112px !important;
    height: 64px !important;
    max-width: 112px !important;
    max-height: 64px !important;
    overflow: hidden !important;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #eef0f6;
}

#quote-drawer .quote-line-thumb-empty {
    display: grid;
    place-items: center;
    width: 112px;
    height: 64px;
    border-radius: 8px;
    background: #eef0f6;
    color: var(--muted);
    font-size: 11px;
    font-weight: 600;
}

#quote-drawer .quote-image-tile img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: cover !important;
}

#quote-drawer .quote-image-actions {
    position: absolute;
    top: 4px;
    right: 4px;
    left: auto;
    display: grid;
    grid-template-columns: repeat(2, 20px);
    grid-auto-rows: 20px;
    gap: 3px;
    justify-content: end;
}

#quote-drawer .quote-image-actions button {
    width: 20px;
    height: 20px;
    min-height: 20px;
    padding: 0;
}

#quote-drawer .quote-image-actions button svg {
    width: 12px;
    height: 12px;
}

#quote-drawer .quote-upload-drop {
    min-height: 52px;
    width: 220px;
    margin: 0;
    padding: 10px 12px;
    text-align: center;
}

#quote-drawer [data-line-image-clear] {
    display: none;
}

#quote-drawer .package-line {
    position: relative;
    padding: 44px 52px 12px 12px;
    gap: 10px 12px;
}

#quote-drawer .package-line.form-grid {
    grid-template-columns: minmax(160px, 1fr) minmax(220px, 1.25fr) minmax(220px, 1.25fr) 90px 150px minmax(140px, 1fr);
    align-items: end;
}

#quote-drawer .package-line label:nth-of-type(1) {
    grid-column: 1;
    grid-row: 1;
}

#quote-drawer .package-line label:nth-of-type(2) {
    grid-column: 2;
    grid-row: 1;
}

#quote-drawer .package-line label:nth-of-type(3) {
    grid-column: 3;
    grid-row: 1;
}

#quote-drawer .package-line label:nth-of-type(4) {
    grid-column: 4;
    grid-row: 1;
}

#quote-drawer .package-line label:nth-of-type(5) {
    grid-column: 5;
    grid-row: 1;
}

#quote-drawer .package-line label:nth-of-type(6) {
    grid-column: 6;
    grid-row: 1;
}

#quote-drawer .package-line .quote-line-description {
    grid-column: 1 / 4;
    grid-row: 2;
    width: 100%;
}

#quote-drawer .package-line-fx {
    grid-column: 4 / 7;
    grid-row: 2;
    display: grid;
    gap: 2px;
    align-self: end;
    min-height: 38px;
    padding: 6px 12px;
    border: 1px solid #dbeafe;
    border-radius: 8px;
    background: #eff6ff;
    color: #456179;
    font-size: 11px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

#quote-drawer .package-line .quote-line-description {
    min-width: 0;
}

#quote-drawer .package-line .quote-line-description .rich-editor {
    width: 100%;
}

#quote-drawer .quote-line-image {
    grid-column: 1 / -1;
    grid-row: 3;
}

#quote-drawer .package-line label {
    gap: 5px;
}

#quote-drawer .package-line input,
#quote-drawer .package-line select,
#quote-drawer .package-line .ts-wrapper.single .ts-control {
    min-height: 38px;
}

#quote-drawer .line-drag-handle {
    top: 10px;
    right: 12px;
}

#quote-drawer .line-remove-cell {
    position: absolute;
    right: 10px;
    top: 74px;
    padding-top: 0;
}

#quote-drawer .line-drag-handle,
#quote-drawer .line-remove-cell .icon-trash-button {
    border: 0;
    background: transparent;
    box-shadow: none;
}

#quote-drawer .line-drag-handle {
    padding: 0;
}

#quote-drawer .line-remove-cell > span {
    display: none;
}

#quote-drawer .line-remove-cell .icon-trash-button {
    width: 30px;
    height: 30px;
    min-height: 30px;
    padding: 0;
}

#quote-drawer [data-line-subtotal] {
    display: flex;
    align-items: center;
    min-height: 38px;
    width: 100%;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
}

.quote-line.quote-line-modal [data-line-subtotal] {
    display: flex;
    align-items: center;
    min-height: 44px;
    width: 100%;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
}

@media (max-width: 1366px) and (max-height: 900px) and (orientation: landscape) {
    #quote-drawer .package-line {
        padding: 44px 46px 12px 12px;
    }

    #quote-drawer .package-line.form-grid {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    #quote-drawer .package-line label:nth-of-type(1) {
        grid-column: 1 / 3;
        grid-row: 1;
    }

    #quote-drawer .package-line label:nth-of-type(2) {
        grid-column: 3 / 6;
        grid-row: 1;
    }

    #quote-drawer .package-line label:nth-of-type(3) {
        grid-column: 6 / 9;
        grid-row: 1;
    }

    #quote-drawer .package-line label:nth-of-type(4) {
        grid-column: 9 / 10;
        grid-row: 1;
    }

    #quote-drawer .package-line label:nth-of-type(5) {
        grid-column: 10 / 12;
        grid-row: 1;
    }

    #quote-drawer .package-line label:nth-of-type(6) {
        grid-column: 12 / 13;
        grid-row: 1;
    }

    #quote-drawer .package-line .quote-line-description {
        grid-column: 1 / 8;
        grid-row: 2;
        width: 100%;
    }

    #quote-drawer .package-line-fx {
        grid-column: 8 / 13;
        grid-row: 2;
    }

    #quote-drawer .line-remove-cell {
        position: absolute;
        right: 12px;
        top: 72px;
        grid-column: auto;
        grid-row: auto;
    }

    #quote-drawer .quote-line-image {
        grid-column: 1 / -1;
        grid-row: 3;
        grid-template-columns: 220px minmax(0, 1fr);
        align-items: start;
    }
}

@media (max-width: 900px) and (orientation: portrait) {
    #quote-drawer .package-line {
        padding: 44px 12px 12px;
    }

    #quote-drawer .package-line.form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #quote-drawer .package-line label {
        grid-column: auto;
        grid-row: auto;
    }

    #quote-drawer .package-line label:nth-of-type(1) {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    #quote-drawer .package-line label:nth-of-type(2) {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    #quote-drawer .package-line label:nth-of-type(3) {
        grid-column: 1 / -1;
        grid-row: 3;
    }

    #quote-drawer .package-line label:nth-of-type(4),
    #quote-drawer .package-line label:nth-of-type(5) {
        grid-column: span 1;
        grid-row: 4;
    }

    #quote-drawer .package-line label:nth-of-type(6) {
        grid-column: 1 / -1;
        grid-row: 5;
    }

    #quote-drawer .package-line .quote-line-description {
        grid-column: 1 / -1;
        grid-row: 6;
    }

    #quote-drawer .package-line-fx {
        grid-column: 1 / -1;
        grid-row: 7;
        width: 100%;
    }

    #quote-drawer .quote-line-image {
        grid-column: 1 / -1;
        grid-row: 8;
        grid-template-columns: 220px 112px;
    }

    #quote-drawer .line-remove-cell {
        grid-column: 1 / -1;
        grid-row: 9;
        position: static;
        justify-self: end;
    }

    #quote-drawer .quote-import-box {
        grid-template-columns: 1fr;
        max-width: 100%;
    }
}

@media (max-width: 640px) {
    #quote-drawer .package-line.form-grid {
        grid-template-columns: 1fr;
    }

    #quote-drawer .package-line label,
    #quote-drawer .quote-line-description,
    #quote-drawer .package-line-fx,
    #quote-drawer .quote-line-image,
    #quote-drawer .line-remove-cell {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    #quote-drawer .line-remove-cell {
        position: static;
        justify-self: end;
    }

    #quote-drawer .quote-line-image {
        grid-template-columns: 1fr;
    }

    #quote-drawer .quote-upload-drop {
        width: 100%;
    }
}

.proposal-page {
    background: #f6f7fb;
}

.proposal-preview {
    max-width: 1180px;
    margin: 0 auto;
    padding: 20px;
}

.proposal-hero {
    min-height: 420px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border-radius: 8px;
    padding: 24px;
    background: linear-gradient(135deg, var(--blue), var(--teal));
    background-size: cover;
    background-position: center;
    color: #fff;
}

.proposal-hero h1 {
    max-width: 720px;
    margin: 8px 0;
    font-size: 46px;
    font-weight: 600;
    line-height: 1.05;
}

.proposal-company-header {
    display: grid;
    gap: 28px;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 24px;
    background: #fff;
}

.proposal-company-lockup {
    display: flex;
    align-items: center;
    gap: 18px;
}

.proposal-company-lockup img,
.proposal-company-lockup > span {
    width: 86px;
    height: 86px;
    display: grid;
    place-items: center;
    object-fit: contain;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcff;
    color: var(--teal);
    font-size: 24px;
    font-weight: 700;
}

.proposal-company-lockup h1 {
    margin: 0 0 6px;
    font-size: 30px;
    font-weight: 600;
}

.proposal-company-lockup p {
    margin: 3px 0;
    color: var(--muted);
}

.proposal-title-block {
    padding-top: 22px;
    border-top: 1px solid var(--line);
}

.proposal-title-block h2 {
    margin: 4px 0;
    font-size: 30px;
    font-weight: 600;
}

.proposal-toolbar {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.proposal-section {
    margin-top: 18px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.proposal-summary {
    display: flex;
    gap: 14px;
}

.proposal-summary div {
    flex: 1;
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.proposal-summary span {
    display: block;
    color: var(--muted);
}

.form-grid label,
.form-grid .field-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 13px;
    font-weight: 500;
}

.form-grid label span,
.form-grid .field-group > span {
    color: var(--ink);
}

.proposal-summary strong {
    display: block;
    margin-top: 6px;
    font-size: 22px;
    font-weight: 600;
}

.proposal-items {
    display: grid;
    gap: 14px;
}

.proposal-item-group {
    display: grid;
    gap: 10px;
}

.proposal-item-group + .proposal-item-group {
    margin-top: 8px;
}

.proposal-item-group-title {
    margin: 0;
    padding: 0 0 8px;
    border-bottom: 1px solid var(--line);
    color: #64748b;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.proposal-item-group-list {
    display: grid;
    gap: 12px;
}

.proposal-item {
    display: grid;
    gap: 16px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.proposal-item-gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 14px;
}

.proposal-item-gallery img {
    width: 138px;
    height: 92px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid var(--line);
    background: #f7f8fa;
}

.proposal-item-body h3 {
    margin: 0 0 10px;
    font-size: 22px;
    font-weight: 600;
}

.proposal-item-description {
    display: grid;
    gap: 6px;
    margin-bottom: 16px;
    color: #344054;
    font-size: 14px;
    line-height: 1.55;
}

.proposal-item-description p,
.proposal-item-description div,
.proposal-item-description ul,
.proposal-item-description ol {
    margin: 0;
}

.proposal-item-description ul,
.proposal-item-description ol {
    padding-left: 18px;
}

.proposal-line-price {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}

.settings-logo-row {
    display: flex;
    margin-bottom: 18px;
}

.settings-logo-preview {
    min-height: 96px;
    display: grid;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcff;
    color: var(--teal);
    font-size: 24px;
    font-weight: 700;
}

.settings-logo-preview img {
    max-width: 112px;
    max-height: 72px;
    object-fit: contain;
}

.proposal-terms {
    line-height: 1.65;
}

.proposal-terms ul,
.proposal-terms ol {
    padding-left: 22px;
}

@media (max-width: 980px) {
    .topbar {
        grid-template-columns: auto 1fr auto;
    }

    #quote-drawer .package-line.form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #quote-drawer .quote-line-image {
        grid-template-columns: 1fr;
    }

    .search-box {
        grid-column: 1 / -1;
        order: 2;
    }

    .metric-grid,
    .workspace-grid,
    .data-layout {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .single-layout {
        grid-template-columns: 1fr;
    }

    .price-form-grid .price-master-item-field,
    .price-form-grid .price-item-preview {
        grid-column: 1 / -1;
    }

    .slide-drawer.wide-drawer .master-item-form-grid {
        grid-template-columns: 1fr;
    }

    .slide-drawer.wide-drawer .vendor-form-grid {
        grid-template-columns: 1fr;
    }

    .slide-drawer.wide-drawer .vendor-rate-form-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 800px) {
    .auth-shell {
        grid-template-columns: 1fr;
    }

    .auth-story {
        display: none;
    }

    .admin-shell {
        grid-template-columns: 1fr;
    }

    .admin-shell.sidebar-collapsed {
        grid-template-columns: 1fr;
    }

    .sidebar {
        display: none;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .sidebar.open {
        display: block;
    }

    .icon-button {
        display: grid;
    }

    .collapse-button {
        display: none;
    }

    .slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed .slide-drawer.wide-drawer {
        width: min(100vw, calc(100vw - 18px));
    }

    .slide-drawer.wide-drawer .form-grid {
        grid-template-columns: 1fr;
    }

    .quote-line-image {
        grid-template-columns: 1fr;
    }

    .quote-line-thumb {
        width: 100%;
        height: auto;
        aspect-ratio: 4 / 3;
    }
}

@media (max-width: 560px) {
    .auth-page,
    .main-panel {
        padding: 14px;
    }

    .auth-panel {
        padding: 22px;
    }

    .topbar {
        grid-template-columns: auto 1fr;
    }

    .user-area {
        grid-column: 1 / -1;
        justify-content: space-between;
    }

    .metric-grid,
    .workspace-grid,
    .data-layout,
    .form-grid {
        grid-template-columns: 1fr;
    }

    .single-layout {
        grid-template-columns: 1fr;
    }
}

/* Proposal company header refinement */
.proposal-company-header {
    gap: 22px;
    padding: 22px 24px;
}

.proposal-company-lockup {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 18px;
}

.proposal-logo-mark img,
.proposal-logo-mark > span {
    width: 72px;
    height: 72px;
    display: grid;
    place-items: center;
    object-fit: contain;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcff;
    color: var(--teal);
    font-weight: 700;
}

.proposal-company-copy {
    min-width: 0;
}

.proposal-company-copy h1 {
    margin: 0 0 12px;
    font-size: 27px;
    font-weight: 500;
    line-height: 1.15;
}

.proposal-company-contacts {
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 8px 18px;
    max-width: 760px;
}

.proposal-contact-line {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: start;
    gap: 9px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.45;
}

.proposal-contact-line svg {
    width: 16px;
    height: 16px;
    margin-top: 1px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    color: var(--blue);
}

.proposal-contact-line span {
    overflow-wrap: anywhere;
}

.proposal-terms > div {
    color: var(--ink);
    font-size: 14px;
}

.proposal-terms p,
.proposal-terms div {
    margin: 0 0 8px;
}

.proposal-terms li {
    margin: 4px 0;
}

@media (max-width: 720px) {
    .proposal-company-lockup {
        grid-template-columns: 1fr;
    }

    .proposal-company-contacts {
        grid-template-columns: 1fr;
    }
}

.proposal-toolbar {
    position: sticky;
    top: 12px;
    z-index: 5;
    justify-self: end;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 10px 24px rgba(11, 18, 32, 0.08);
    backdrop-filter: blur(8px);
}

.proposal-toolbar .secondary-action,
.proposal-toolbar .primary-action {
    min-height: 34px;
    padding: 8px 13px;
    font-size: 13px;
    line-height: 1;
}

@media print {
    .proposal-toolbar {
        display: none !important;
    }

    .proposal-page {
        background: #fff;
    }

    .proposal-preview {
        max-width: none;
        padding: 0;
    }

    .proposal-summary strong {
        font-size: 16px !important;
    }

    .proposal-section h2 {
        font-size: 18px !important;
        margin-bottom: 8px;
    }

    .proposal-item h3 {
        font-size: 16px !important;
    }
}

.proposal-info-section {
    padding: 0;
    overflow: hidden;
}

.proposal-info-grid {
    display: flex;
}

.proposal-info-grid > div {
    flex: 1;
    min-width: 0;
    padding: 18px;
    border-right: 1px solid var(--line);
}

.proposal-info-grid > div:last-child {
    border-right: 0;
}

.proposal-info-grid h3 {
    margin: 4px 0 8px;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.25;
}

.proposal-info-grid p:not(.eyebrow) {
    margin: 4px 0;
    color: var(--muted);
    font-size: 13px;
    overflow-wrap: anywhere;
}

@media screen and (max-width: 820px) {
    .proposal-info-grid {
        flex-direction: column;
    }

    .proposal-info-grid > div {
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .proposal-info-grid > div:last-child {
        border-bottom: 0;
    }

    .proposal-summary {
        flex-direction: column;
    }
}

#quote-drawer .package-line.form-grid {
    padding-top: 48px;
}

#quote-drawer .line-drag-handle {
    top: 12px;
    right: 16px;
    padding: 0 10px;
    gap: 10px;
    background: #fff;
}

#quote-drawer .line-remove-cell {
    padding-top: 0;
}

#quote-drawer .line-remove-cell .icon-trash-button {
    margin-top: 0;
}

.quote-image-actions button svg {
    width: 14px;
    height: 14px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
}

.quote-image-actions button.is-primary svg {
    fill: currentColor;
    stroke-width: 1.6;
}

.quote-image-tile.image-dragging {
    opacity: .55;
    transform: scale(.98);
}

#quote-drawer .quote-line-image {
    grid-column: 1 / -1;
    display: flex !important;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 10px;
    align-items: flex-start;
    justify-content: flex-start;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
}

#quote-drawer .quote-image-grid {
    flex: 1 1 260px;
    display: flex !important;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    align-items: flex-start;
    align-content: flex-start;
    width: auto;
    max-width: calc(100% - 230px);
    min-width: 0;
    min-height: 76px;
    overflow: hidden;
}

#quote-drawer .quote-upload-drop {
    flex: 0 0 220px;
    width: 220px;
}

#quote-drawer .quote-line-image[hidden] {
    display: none !important;
}

#quote-drawer .quote-line-image.is-uploading .quote-upload-drop {
    position: relative;
    border-color: var(--blue);
    background: rgba(87, 155, 252, .08);
    color: var(--blue);
    pointer-events: none;
}

#quote-drawer .quote-line-image.is-uploading .quote-upload-drop::before {
    content: "";
    width: 16px;
    height: 16px;
    border: 2px solid rgba(87, 155, 252, .25);
    border-top-color: var(--blue);
    border-radius: 999px;
    animation: bwp-spin .75s linear infinite;
}

@keyframes bwp-spin {
    to {
        transform: rotate(360deg);
    }
}

#quote-drawer .quote-image-tile {
    flex: 0 0 112px;
    width: 112px !important;
    height: 76px !important;
    max-width: 112px !important;
    max-height: 76px !important;
    overflow: hidden !important;
}

#quote-drawer .quote-image-actions {
    display: grid;
    grid-template-columns: repeat(2, 20px);
    grid-auto-rows: 20px;
    gap: 3px;
    max-width: calc(100% - 8px);
}

#quote-drawer .quote-image-actions button {
    width: 20px;
    height: 20px;
    min-height: 20px;
    padding: 0;
}

#quote-drawer .quote-image-actions button svg {
    width: 12px;
    height: 12px;
}

#quote-drawer .quote-image-tile img {
    pointer-events: none;
}

#quote-drawer .quote-image-tile.image-dragging {
    opacity: .55;
    position: relative;
    z-index: 2;
    transform: scale(.98);
}

@media (max-width: 1366px) {
    #quote-drawer .quote-line-image {
        display: flex !important;
        flex-direction: row;
        flex-wrap: wrap;
        grid-column: 1 / -1;
        gap: 10px;
        overflow: hidden;
    }

    #quote-drawer .quote-upload-drop {
        flex: 0 0 220px;
        width: 220px;
    }

    #quote-drawer .quote-image-grid {
        flex: 1 1 260px;
        max-width: calc(100% - 230px);
    }
}

@media (max-width: 520px) {
    #quote-drawer .quote-upload-drop,
    #quote-drawer .quote-image-grid {
        flex-basis: 100%;
        width: 100%;
        max-width: 100%;
    }
}

.item-image-preview {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 58px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.item-image-preview .item-thumb,
.item-image-preview .thumb-placeholder {
    flex: 0 0 54px;
    width: 54px;
    height: 42px;
    border-radius: 7px;
}

.item-image-preview div {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.item-image-preview strong,
.item-image-preview small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.price-form-grid .price-master-item-field,
.price-form-grid .price-item-preview {
    grid-column: span 1;
}

.slide-drawer.wide-drawer .price-form-grid {
    grid-template-columns: repeat(2, minmax(240px, 1fr));
}

.slide-drawer.wide-drawer .master-item-form-grid {
    grid-template-columns: repeat(2, minmax(240px, 1fr));
}

.slide-drawer.wide-drawer .vendor-form-grid {
    grid-template-columns: repeat(2, minmax(240px, 1fr));
}

.slide-drawer.wide-drawer .vendor-rate-form-grid {
    grid-template-columns: repeat(2, minmax(240px, 1fr));
}

@media (max-width: 800px) {
    .slide-drawer.wide-drawer .price-form-grid,
    .slide-drawer.wide-drawer .master-item-form-grid,
    .slide-drawer.wide-drawer .vendor-form-grid,
    .slide-drawer.wide-drawer .vendor-rate-form-grid {
        grid-template-columns: 1fr;
    }

    .price-form-grid .price-master-item-field,
    .price-form-grid .price-item-preview {
        grid-column: 1 / -1;
    }
}

.price-item-preview {
    min-height: 76px;
    padding: 10px;
    gap: 14px;
    align-self: end;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.price-item-preview .item-thumb,
.price-item-preview .thumb-placeholder {
    flex-basis: 72px;
    width: 72px;
    height: 56px;
    border-radius: 8px;
}

.price-item-preview div {
    gap: 4px;
}

.price-item-preview strong {
    font-size: 14px;
    color: var(--ink);
}

.price-item-preview small {
    font-size: 12px;
    line-height: 1.35;
    color: var(--muted);
}
.package-line .package-item-preview {
    min-height: 48px;
    padding: 6px;
    align-self: end;
}

.package-line .package-item-preview .item-thumb,
.package-line .package-item-preview .thumb-placeholder {
    flex-basis: 48px;
    width: 48px;
    height: 36px;
}
#package-drawer .item-form {
    gap: 14px;
    overflow-x: hidden;
}

#package-drawer,
#package-drawer * {
    min-width: 0;
}

#package-drawer .package-lines {
    gap: 10px;
    margin-top: 8px;
}

#package-drawer .package-line {
    position: relative;
    padding: 44px 52px 12px 12px;
    gap: 8px 10px;
}

#package-drawer .line-drag-handle {
    top: 12px;
    right: 16px;
    padding: 0 10px;
    gap: 10px;
    background: #fff;
}

#package-drawer .package-line.form-grid {
    grid-template-columns: minmax(180px, 1.2fr) 54px minmax(180px, 1.15fr) minmax(210px, 1.2fr) 90px 150px minmax(120px, 1fr);
    align-items: end;
}

#package-drawer .package-line label:nth-of-type(1) {
    grid-column: 1;
    grid-row: 1;
}

#package-drawer .package-item-preview {
    grid-column: 2;
    grid-row: 1;
}

#package-drawer .package-line label:nth-of-type(2) {
    grid-column: 3;
    grid-row: 1;
}

#package-drawer .package-line label:nth-of-type(3) {
    grid-column: 4;
    grid-row: 1;
}

#package-drawer .package-line label:nth-of-type(4) {
    grid-column: 5;
    grid-row: 1;
}

#package-drawer .package-line label:nth-of-type(5) {
    grid-column: 6;
    grid-row: 1;
}

#package-drawer .package-line label:nth-of-type(6) {
    grid-column: 7;
    grid-row: 1;
}

#package-drawer .package-line label {
    gap: 4px;
}

#package-drawer .package-line input,
#package-drawer .package-line select,
#package-drawer .package-line .ts-wrapper.single .ts-control {
    min-height: 38px;
}

#package-drawer .package-item-preview {
    min-height: 38px;
    height: 38px;
    padding: 4px;
    gap: 0;
    align-self: end;
    justify-content: center;
    overflow: hidden;
}

#package-drawer .package-item-preview .item-thumb,
#package-drawer .package-item-preview .thumb-placeholder {
    flex: 0 0 42px;
    width: 42px;
    height: 30px;
    border-radius: 6px;
}

#package-drawer .package-item-preview > div {
    display: none;
}

#package-drawer .package-item-preview strong,
#package-drawer .package-item-preview small {
    max-width: 112px;
}

#package-drawer .package-line .package-line-description {
    grid-column: 1 / 5;
    grid-row: 2;
    width: 100%;
}

#package-drawer .package-line-fx {
    display: grid;
    gap: 2px;
    grid-column: 5 / 8;
    grid-row: 2;
    align-self: end;
    min-height: 38px;
    padding: 6px 12px;
    border: 1px solid #dbeafe;
    border-radius: 8px;
    background: #eff6ff;
    color: #456179;
    font-size: 11px;
    line-height: 1.25;
}

#package-drawer .line-remove-cell {
    position: absolute;
    right: 10px;
    top: 74px;
    padding-top: 0;
    justify-items: end;
}

#package-drawer .line-remove-cell > span {
    display: none;
}

#package-drawer .line-remove-cell .icon-trash-button {
    width: 38px;
    min-height: 38px;
}

#package-drawer .line-drag-handle,
#package-drawer .line-remove-cell .icon-trash-button {
    border: 0;
    background: transparent;
    box-shadow: none;
}

#package-drawer .line-drag-handle {
    padding: 0;
}

#package-drawer .line-remove-cell .icon-trash-button {
    width: 30px;
    height: 30px;
    min-height: 30px;
    padding: 0;
}

#package-drawer [data-line-subtotal] {
    display: flex;
    align-items: center;
    min-height: 38px;
    width: 100%;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
}

.package-summary-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    align-items: stretch;
}

.package-summary-deck {
    display: grid;
    grid-template-columns: repeat(5, minmax(150px, 1fr));
    gap: 10px;
    min-width: 0;
}

.package-summary-deck strong {
    display: grid;
    align-content: center;
    gap: 4px;
    min-height: 72px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
}

.package-summary-deck span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.1;
}

.package-summary-deck b {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
}

.package-summary-deck small {
    color: #52627a;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}

.package-summary-deck .is-contribution {
    border-color: #bbf7d0;
    background: #ecfdf5;
}

#package-drawer [data-package-profit].is-profit,
#package-drawer [data-package-profit-usd].is-profit {
    color: #047857;
}

#package-drawer [data-package-profit].is-loss,
#package-drawer [data-package-profit-usd].is-loss {
    color: #be123c;
}

.package-summary-deck .is-contribution:has(.is-loss) {
    border-color: #fecdd3;
    background: #fff1f2;
}

.quote-total-label {
    display: none;
}

.quote-lead-card {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #f8fbff;
}

.quote-lead-card[hidden] {
    display: none !important;
}

.quote-lead-card div {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.quote-lead-card span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.quote-lead-card strong {
    overflow: hidden;
    color: var(--ink);
    font-size: 14px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.quote-client-review-card {
    display: grid;
    gap: 16px;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #f8fbff;
}

.quote-client-review-card[hidden] {
    display: none !important;
}

.quote-client-review-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.quote-client-review-head h3 {
    margin: 4px 0 0;
    color: var(--ink);
    font-size: 18px;
    font-weight: 700;
}

.quote-client-review-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.quote-client-review-grid div,
.quote-client-review-note {
    display: grid;
    gap: 4px;
    min-width: 0;
    padding: 12px;
    border: 1px solid rgba(92, 126, 204, 0.14);
    border-radius: 8px;
    background: #fff;
}

.quote-client-review-grid span,
.quote-client-review-note span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.quote-client-review-grid strong,
.quote-client-review-note div {
    color: var(--ink);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    white-space: pre-wrap;
    word-break: break-word;
}

.quote-lock-notice {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px;
    border: 1px solid rgba(194, 65, 91, .18);
    border-radius: 8px;
    background: #fff7f8;
}

.quote-lock-notice[hidden] {
    display: none !important;
}

.quote-lock-notice h3 {
    margin: 4px 0 6px;
    color: var(--ink);
    font-size: 18px;
    font-weight: 700;
}

.quote-lock-notice p:last-child {
    margin-top: 0;
    max-width: 760px;
    color: var(--muted);
    line-height: 1.5;
}

.quote-lock-notice-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
    margin-left: auto;
}

.quote-lock-notice-actions .secondary-action {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.quote-lock-notice-actions .secondary-action svg {
    flex: 0 0 auto;
}

.quote-lock-notice-actions .quotation-optional-filter {
    margin: 0;
    white-space: nowrap;
}

.company-form .surface-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
    align-items: center;
    justify-content: flex-end;
}

.company-form .surface-actions .primary-action,
.company-form .surface-actions .secondary-action {
    flex: 0 0 auto;
    height: 44px;
    min-height: 44px;
    padding: 0 16px;
    align-self: center;
}

.company-expense-form {
    width: 100%;
    max-width: 100%;
}

.company-expense-lines-panel {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.company-expense-lines-head {
    margin: 0;
}

.company-expense-lines-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-left: auto;
}

.company-expense-lines-total {
    display: grid;
    gap: 2px;
    justify-items: end;
    text-align: right;
}

.company-expense-lines-total span {
    font-size: 0.75rem;
    color: var(--text-muted);
}

.company-expense-lines-total strong {
    font-size: 1rem;
    color: var(--text);
}

.company-expense-lines {
    display: grid;
    gap: 10px;
}

.company-expense-receipt-grid {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) minmax(320px, 1fr);
    gap: 12px;
    align-items: stretch;
}

.company-expense-receipt-drop {
    min-height: 120px;
    align-content: start;
    justify-items: start;
    text-align: left;
}

.company-expense-receipt-drop__title {
    display: block;
    font-weight: 600;
}

.company-expense-receipt-drop__hint {
    display: block;
    margin-top: 6px;
    color: var(--text-muted);
}

.company-expense-receipt-queue {
    display: grid;
    gap: 12px;
}

.company-expense-receipt-card {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.company-expense-receipt-card__preview {
    width: 88px;
    height: 88px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f8fafc;
    display: flex;
    align-items: center;
    justify-content: center;
}

.company-expense-receipt-card__preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.company-expense-receipt-card__placeholder {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--text-muted);
}

.company-expense-receipt-card__body {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.company-expense-receipt-card__body strong,
.company-expense-receipt-card__body small {
    overflow-wrap: anywhere;
}

.company-expense-receipt-card__body small {
    color: var(--text-muted);
}

.company-expense-receipt-card__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.company-expense-line {
    display: grid;
    grid-template-columns: minmax(180px, .9fr) minmax(260px, 1.6fr) minmax(160px, .8fr) auto;
    gap: 10px;
    align-items: end;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcff;
}

.company-expense-line__remove {
    width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.company-expense-line__remove svg {
    width: 16px;
    height: 16px;
}

@media (max-width: 820px) {
    .company-expense-lines-toolbar {
        width: 100%;
        justify-content: space-between;
        margin-left: 0;
    }

    .company-expense-lines-total {
        justify-items: start;
        text-align: left;
    }

    .company-expense-receipt-grid,
    .company-expense-line {
        grid-template-columns: 1fr;
    }

    .company-expense-receipt-card {
        grid-template-columns: 1fr;
    }

    .company-expense-receipt-card__actions {
        justify-content: flex-start;
    }

    .company-expense-line__remove {
        width: 100%;
    }
}

.project-create-bar {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto;
    align-items: end;
    gap: 12px;
}

.project-create-bar .form-message {
    grid-column: 1 / -1;
    margin: 0;
}

.project-detail-meta {
    display: grid;
    grid-template-columns: repeat(6, minmax(120px, 1fr));
    gap: 8px;
    margin: 8px 0 10px;
}

.project-detail-meta span {
    display: grid;
    gap: 3px;
    min-height: 42px;
    padding: 7px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--text);
    font-weight: 700;
}

.project-detail-meta b {
    color: var(--muted);
    font-size: 10px;
    text-transform: uppercase;
}

.project-editable-meta {
    position: relative;
    padding-right: 52px !important;
}

.project-editable-meta .project-meta-edit-button {
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
}

.project-summary-deck {
    margin: 0 0 2px;
}

.project-summary-deck strong {
    min-height: 0;
    padding: 8px 11px;
    gap: 2px;
}

.project-summary-deck span {
    font-size: 11px;
}

.project-summary-deck b {
    font-size: 15px;
    line-height: 1.18;
}

.project-summary-deck small {
    font-size: 11px;
    line-height: 1.25;
}

.project-deck-title {
    margin: 0 0 1px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.compact-project-deck {
    gap: 4px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.project-summary-deck--transactions {
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.project-summary-deck--transactions strong,
.project-summary-deck--budget strong,
.project-summary-deck--forecast strong {
    min-width: 0;
    min-height: 54px;
    align-content: start;
}

.project-summary-deck .project-profit-card {
    border-color: #bbf7d0;
    background: #ecfdf5;
    color: #047857;
}

.project-summary-deck .project-profit-card:has(.is-loss) {
    border-color: #fecdd3;
    background: #fff1f2;
    color: #be123c;
}

.compact-heading {
    margin-top: 5px;
}

.project-detail-meta + .project-deck-title {
    margin-top: 0;
}

.project-summary-deck + .project-deck-title {
    margin-top: 0;
}

.project-budget-modal[hidden],
.project-expense-modal[hidden],
.quote-ai-modal[hidden] {
    display: none !important;
}

.project-budget-modal,
.project-expense-modal,
.quote-ai-modal {
    position: fixed;
    inset: 0;
    z-index: 10110;
    display: grid;
    align-items: start;
    justify-items: center;
    padding: 18px;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

body.quote-expense-modal-open,
body.quote-ai-modal-open {
    overflow: hidden;
}

.project-budget-modal-backdrop,
.project-expense-modal-backdrop,
.quote-ai-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .26);
}

.project-budget-form,
.project-expense-form {
    position: relative;
    z-index: 1;
    display: grid;
    width: min(1180px, calc(100vw - 44px));
    margin: 0 auto;
    margin-top: 0;
    max-height: none;
    grid-template-columns: repeat(4, minmax(140px, 1fr));
    gap: 10px;
    overflow: visible;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcff;
    box-shadow: 0 24px 80px rgba(15, 23, 42, .18);
}

.project-expense-form {
    width: min(980px, calc(100vw - 44px));
    grid-template-columns: repeat(3, minmax(180px, 1fr));
}

.quote-expense-form {
    width: min(980px, calc(100vw - 44px));
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px 16px;
    padding: 24px;
}

.quote-expense-form .project-budget-form-head {
    margin-bottom: 6px;
}

.quote-expense-form .quote-expense-field--description {
    grid-column: span 2;
}

.quote-expense-form .quote-expense-field--vendor,
.quote-expense-form .quote-expense-field--amount,
.quote-expense-form .quote-expense-field--date,
.quote-expense-form .quote-expense-field--category {
    grid-column: span 1;
}

.quote-ai-form {
    position: relative;
    z-index: 1;
    display: grid;
    width: min(860px, calc(100vw - 44px));
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcff;
    box-shadow: 0 24px 80px rgba(15, 23, 42, .18);
}

.quote-ai-preview {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    padding: 14px;
}

.quote-ai-preview-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line);
}

.quote-ai-preview-head span,
.quote-ai-preview-expenses > span {
    display: block;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.quote-ai-preview-list {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.quote-ai-preview-list article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid #edf1f7;
    border-radius: 8px;
    background: #f8fafc;
}

.quote-ai-preview-list article span,
.quote-ai-preview-expenses small {
    color: var(--muted);
}

.quote-ai-preview-expenses {
    display: grid;
    gap: 5px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}

.project-budget-form-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 4px;
}

.project-budget-form-head strong {
    color: var(--ink);
    font-size: 15px;
    font-weight: 700;
}

.compact-close {
    width: 34px;
    height: 34px;
    min-height: 34px;
}

.project-budget-form .full-span,
.project-expense-form .full-span {
    grid-column: 1 / -1;
}

.project-budget-form .double-span,
.project-expense-form .double-span {
    grid-column: span 2;
}

.project-budget-form .ts-dropdown,
.project-expense-form .ts-dropdown {
    z-index: 90;
}

.project-budget-form .form-actions,
.project-expense-form .form-actions {
    display: flex;
    gap: 10px;
    margin-top: 4px;
}

.project-po-modal .project-budget-form {
    width: min(760px, calc(100vw - 44px));
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
}

.project-po-fields {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    width: 100%;
    min-width: 0;
}

.project-po-fields label {
    min-width: 0;
}

.project-po-modal .ts-wrapper,
.project-po-modal .ts-control,
.project-po-modal select {
    width: 100%;
    min-width: 0;
}

.project-po-items {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.project-po-items .eyebrow {
    margin: 0;
}

.project-po-check-cell {
    width: 48px;
    min-width: 48px;
    text-align: center;
}

.project-po-check {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 28px !important;
    min-width: 28px !important;
    height: 28px;
    margin: 0;
    padding: 0;
}

.project-po-check input[type="checkbox"] {
    width: 18px !important;
    height: 18px;
    min-height: 18px !important;
    margin: 0;
    padding: 0;
    accent-color: var(--blue);
}

.project-po-actions {
    justify-content: flex-end;
    margin-top: 0 !important;
}

.project-expense-heading {
    margin-top: 28px;
}

.project-operations-heading {
    margin-top: 28px;
}

.project-operations-layout {
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
    align-items: start;
}

.project-operations-workspace {
    min-height: 100%;
}

.project-operations-meta {
    margin-top: 12px;
}

.project-operations-meta-strip {
    display: grid;
    grid-template-columns: repeat(6, minmax(120px, 1fr));
    gap: 10px;
    margin-top: 6px;
    margin-bottom: 14px;
}

.project-operations-meta-card {
    display: grid;
    gap: 4px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}

.project-operations-meta-card span {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.project-operations-meta-card strong {
    font-size: 14px;
    font-weight: 700;
    color: var(--ink);
}

.project-operations-list-shell {
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.project-operations-workspace-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    background: #fff;
}

.project-operations-toolbar-group {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 12px;
    min-width: 0;
}

.project-operations-view-tabs,
.project-operations-toolbar-chips {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.project-operations-view-tabs button,
.project-operations-toolbar-chip {
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.project-operations-view-tabs button.is-active,
.project-operations-toolbar-chip.is-active {
    background: #eef5ff;
    border-color: #cfe0ff;
    color: #2155d9;
}

.project-operations-toolbar-chip.is-disabled,
.project-operations-toolbar-chip:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.project-operations-toolbar-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.project-operations-toolbar-secondary-group {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.project-operations-toolbar-button {
    min-height: 40px;
    padding: 0 14px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    line-height: 1;
    white-space: nowrap;
    flex: 0 0 auto;
}

.project-operations-toolbar-button svg {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
}

.project-operations-toolbar-button--print {
    min-width: 148px;
}

.project-operations-toolbar-button--primary {
    min-width: 160px;
}

/* removed */

/* removed */

/* removed */

/* removed */

/* removed */

/* removed */

.admin-shell:not(.sidebar-collapsed) .drawer-backdrop[data-drawer-backdrop="project-drawer"],
.admin-shell:not(.sidebar-collapsed) .drawer-backdrop[data-drawer-backdrop="quote-drawer"],
.admin-shell:not(.sidebar-collapsed) .drawer-backdrop[data-drawer-backdrop="package-drawer"] {
    left: 280px;
}

/* removed */

.admin-shell.sidebar-collapsed .drawer-backdrop[data-drawer-backdrop="project-drawer"],
.admin-shell.sidebar-collapsed .drawer-backdrop[data-drawer-backdrop="quote-drawer"],
.admin-shell.sidebar-collapsed .drawer-backdrop[data-drawer-backdrop="package-drawer"] {
    left: 84px;
}

/* removed */

/* removed */

/* removed */

#project-drawer .item-form {
    min-height: calc(100dvh - 96px);
    display: grid;
    align-content: start;
    min-width: 0;
}

#project-drawer .work-surface,
#project-drawer .surface-heading,
#project-drawer .table-wrap[data-preserve-table-layout] {
    min-width: 0;
    max-width: 100%;
}

#project-drawer .surface-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px 12px;
}

#project-drawer .surface-heading > div,
#project-drawer .surface-heading > span,
#project-drawer .surface-heading > button,
#project-drawer .surface-heading > a {
    min-width: 0;
}

#project-drawer .surface-heading > div {
    flex: 1 1 220px;
}

#project-drawer .surface-heading .primary-action,
#project-drawer .surface-heading .secondary-action,
#project-drawer .surface-heading .list-action,
#project-drawer .surface-heading .icon-close {
    flex: 0 0 auto;
    max-width: 100%;
}

#project-drawer .project-detail-action-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

#project-drawer .project-detail-action-button svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
}

#project-drawer .project-module-action-button {
    min-height: 42px;
    padding-inline: 14px;
    border-radius: 10px;
}

#project-drawer .surface-heading .icon-close {
    margin-left: 0;
}

#project-drawer .project-drawer-heading {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas:
        "icon copy close"
        "toolbar toolbar toolbar";
    align-items: start;
    gap: 12px 14px;
}

#project-drawer .project-drawer-heading > .icon-badge {
    grid-area: icon;
}

#project-drawer .project-drawer-heading__copy {
    grid-area: copy;
    min-width: 0;
}

#project-drawer .project-drawer-heading__close {
    grid-area: close;
    margin-left: 0;
    justify-self: end;
}

#project-drawer .project-drawer-heading__toolbar {
    grid-area: toolbar;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    width: 100%;
}

#project-drawer .project-drawer-heading__toolbar .project-module-action-button {
    min-height: 42px;
    padding-inline: 14px;
    border-radius: 10px;
}

#project-drawer .table-wrap[data-preserve-table-layout] {
    display: block;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

#project-drawer .table-wrap[data-preserve-table-layout] table {
    width: 100%;
    table-layout: fixed;
}

#project-drawer .project-drawer-table--items table {
    min-width: 1120px;
}

#project-drawer .project-drawer-table--expenses table {
    min-width: 1086px;
}

#project-drawer .project-drawer-table--po table {
    min-width: 760px;
}

#project-drawer .project-drawer-table th,
#project-drawer .project-drawer-table td {
    padding: 12px 10px !important;
}

#project-drawer .project-drawer-table th:last-child,
#project-drawer .project-drawer-table td:last-child {
    text-align: center;
}

#project-drawer .project-drawer-table td.row-actions {
    white-space: nowrap;
    vertical-align: middle !important;
}

#project-drawer .project-drawer-table .action-inline-cluster {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 8px;
    min-height: 32px;
}

#project-drawer .project-drawer-table--items th:last-child,
#project-drawer .project-drawer-table--items td:last-child,
#project-drawer .project-drawer-table--items td.row-actions {
    text-align: left !important;
}

#project-drawer .project-drawer-table--expenses th:last-child,
#project-drawer .project-drawer-table--expenses td:last-child,
#project-drawer .project-drawer-table--expenses td.row-actions {
    text-align: left !important;
}

#project-drawer .project-drawer-table--items td.row-actions .action-inline-cluster {
    justify-content: flex-start !important;
}

#project-drawer .project-drawer-table--expenses td.row-actions .action-inline-cluster {
    justify-content: flex-start !important;
}

#project-drawer .project-drawer-table--expenses th:last-child,
#project-drawer .project-drawer-table--expenses td:last-child,
#project-drawer .project-drawer-table--expenses td.row-actions {
    width: 176px !important;
    min-width: 176px !important;
}

#project-drawer .project-drawer-table .action-inline-cluster .project-operation-icon-btn,
#project-drawer .project-drawer-table .action-inline-cluster .action-icon-button,
#project-drawer .project-drawer-table .action-inline-cluster .btn-card {
    display: inline-flex;
    vertical-align: middle;
}

#project-drawer .project-detail-meta,
#project-drawer .project-summary-deck,
#project-drawer .project-summary-deck strong,
#project-drawer .project-deck-title,
#project-drawer .project-expense-heading,
#project-drawer .purchase-order-heading {
    min-width: 0;
    max-width: 100%;
}

#project-drawer .project-expense-table + .purchase-order-heading {
    margin-top: 22px;
}

.project-operations-list-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    background: #fcfdff;
}

.project-operations-view-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--ink);
    font-size: 12px;
    font-weight: 700;
}

.project-operations-view-chip__dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--yellow);
}

.project-operations-list-note {
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
}

.project-operations-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 12px;
    padding: 16px 18px;
    border: 1px solid var(--border-color);
    border-radius: 14px;
    background: #f8fbff;
}

.project-operations-cta p {
    margin: 0;
    max-width: 720px;
    color: var(--text-muted);
    font-size: 13px;
    line-height: 1.6;
}

.project-operations-table {
    margin-top: 0;
    overflow-x: hidden !important;
}

.project-operations-table.is-compact-columns th:nth-child(6),
.project-operations-table.is-compact-columns td:nth-child(6),
.project-operations-table.is-compact-columns th:nth-child(7),
.project-operations-table.is-compact-columns td:nth-child(7) {
    display: none;
}

.project-operations-table.is-compact-columns [data-project-operations-table] th:nth-child(1),
.project-operations-table.is-compact-columns [data-project-operations-table] td:nth-child(1) {
    width: 34%;
}

.project-operations-table.is-compact-columns [data-project-operations-table] th:nth-child(2),
.project-operations-table.is-compact-columns [data-project-operations-table] td:nth-child(2) {
    width: 16%;
}

.project-operations-table.is-compact-columns [data-project-operations-table] th:nth-child(3),
.project-operations-table.is-compact-columns [data-project-operations-table] td:nth-child(3),
.project-operations-table.is-compact-columns [data-project-operations-table] th:nth-child(4),
.project-operations-table.is-compact-columns [data-project-operations-table] td:nth-child(4),
.project-operations-table.is-compact-columns [data-project-operations-table] th:nth-child(5),
.project-operations-table.is-compact-columns [data-project-operations-table] td:nth-child(5) {
    width: 12%;
}

.project-operations-table.is-compact-columns [data-project-operations-table] th:nth-child(8),
.project-operations-table.is-compact-columns [data-project-operations-table] td:nth-child(8) {
    width: 14%;
}

#project-operations-drawer .project-operations-table table {
    width: 100%;
    table-layout: fixed;
    min-width: 0 !important;
}

#project-operations-drawer .project-operations-table.table-wrap {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
}

#project-operations-drawer .drawer-body {
    min-height: calc(100dvh - 96px);
    display: grid;
    align-content: start;
}

[data-project-operations-table] {
    background: #fff;
}

[data-project-operations-table] td {
    vertical-align: middle;
    padding-top: 12px;
    padding-bottom: 12px;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}

[data-project-operations-table] th {
    background: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: var(--muted);
}

[data-project-operations-table] th:nth-child(1),
[data-project-operations-table] td:nth-child(1) {
    width: 30%;
}

[data-project-operations-table] th:nth-child(2),
[data-project-operations-table] td:nth-child(2) {
    width: 12%;
}

[data-project-operations-table] th:nth-child(3),
[data-project-operations-table] td:nth-child(3) {
    width: 9%;
}

[data-project-operations-table] th:nth-child(4),
[data-project-operations-table] td:nth-child(4) {
    width: 8%;
}

[data-project-operations-table] th:nth-child(5),
[data-project-operations-table] td:nth-child(5),
[data-project-operations-table] th:nth-child(6),
[data-project-operations-table] td:nth-child(6) {
    width: 9%;
}

[data-project-operations-table] th:nth-child(7),
[data-project-operations-table] td:nth-child(7) {
    width: 11%;
}

[data-project-operations-table] th:nth-child(8),
[data-project-operations-table] td:nth-child(8) {
    width: 12%;
}

[data-project-operations-table] td:nth-child(8) {
    text-align: right;
}

[data-project-operations-table] td:nth-child(8) .project-operation-row-actions {
    flex-wrap: wrap;
    justify-content: flex-end;
}

.project-operation-group-row td {
    padding: 0 !important;
    background: #fafbff;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.project-operation-group-head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    padding: 10px 14px;
    color: var(--ink);
}

.project-operation-group-head strong {
    font-size: 13px;
    font-weight: 800;
}

.project-operation-group-head small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.project-operation-group-toggle {
    color: var(--muted);
    font-size: 12px;
}

.project-operation-group-add {
    margin-left: auto;
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: var(--ink);
    font-size: 12px;
    font-weight: 700;
}

.project-operation-task-cell {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.project-operation-task-copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.project-operation-task-copy strong {
    font-size: 13px;
    font-weight: 700;
}

.project-operation-task-copy small {
    display: block;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.45;
}

[data-project-operation-row].dragging {
    opacity: .55;
}

[data-project-operation-row].dragging td {
    background: #f6faff;
}

.project-operation-row-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: nowrap;
}

.project-operation-editor-row td {
    padding: 0 !important;
}

.project-operations-grid-container {
    display: flex;
    flex-direction: column;
    min-width: 900px;
    overflow: visible;
    padding-bottom: 240px;
}

#project-operations-drawer .project-operations-table-wrap {
    display: block;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

#project-operations-drawer .project-operations-table-wrap .project-operations-grid-container {
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible;
}

.project-operations-grid-header,
.project-operation-grid-row {
    display: grid;
    /* Compact 8 Columns to give Task more space */
    grid-template-columns: minmax(200px, 1fr) 100px 165px 165px 64px 84px 84px 100px;
    gap: 8px;
    align-items: center;
    border-bottom: 1px solid var(--line);
}

body[data-project-operations-page] .project-operations-grid-header .p-col-location,
body[data-project-operations-page] .project-operation-grid-row .project-operation-field--location {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    text-align: left !important;
}

body[data-project-operations-page] .project-operation-field--priority,
body[data-project-operations-page] .project-operation-field--status {
    justify-items: start !important;
}

body[data-project-operations-page] .project-operation-field--priority .task-meta-badge-wrap,
body[data-project-operations-page] .project-operation-field--status .task-meta-badge-wrap {
    display: inline-flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    width: auto !important;
    max-width: 100% !important;
}

.nested-sortable-list .nested-sortable-list { margin-left: 2rem; }

.project-operations-grid-header {
    font-weight: 500;
    font-size: 13px;
    color: var(--secondary-text);
    padding: 12px 16px;
    background: #fbfcff;
}

.project-operation-grid-row {
    padding: 8px 16px;
    background: #fff;
    transition: background 0.15s;
    position: relative;
    overflow: visible;
}

.project-operation-grid-row:hover {
    background: #fcfdff;
}

.project-operation-grid-row.is-drop-parent-target {
    background: #eef4ff;
    box-shadow: inset 3px 0 0 #5b7cff;
}

.project-operation-grid-row.is-drop-outdent-target {
    background: #fff7ed;
    box-shadow: inset 3px 0 0 #f59e0b;
}

.project-operation-group-row {
    padding: 12px 16px;
    background: #eef4ff;
    border-bottom: 1px solid var(--line);
    font-weight: 500;
    color: #1e3a8a;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.nested-sortable-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* Force 100% width on all wrappers to prevent grid shrinking */
.project-operations-grid-body,
.project-operation-list-rows,
.project-operation-grid-row {
    width: 100% !important;
    min-width: 100% !important;
    overflow: visible !important;
}

.project-operation-list-rows {
    display: block;
}



/* Create stair-case drop zones for outdenting nested items at the bottom of lists */


.sortable-ghost-line {
    opacity: 1 !important;
    background: #eef2ff !important;
    border: 2px dashed #818cf8 !important;
    border-radius: 6px;
}
.sortable-ghost-line > div {
    opacity: 0; /* Sembunyikan teks di dalam kotak ghost */
}

body[data-quotations-page] .sortable-ghost-line > div,
body[data-packages-module] .sortable-ghost-line > div,
body[data-quotations-page] .sortable-ghost-line > strong,
body[data-packages-module] .sortable-ghost-line > strong,
body[data-quotations-page] .sortable-ghost-line > td,
body[data-packages-module] .sortable-ghost-line > td,
body[data-quotations-page] .sortable-ghost-line .quote-line-card > div,
body[data-packages-module] .sortable-ghost-line .quote-line-card > div,
body[data-quotations-page] .sortable-ghost-line .quote-line-card > strong,
body[data-packages-module] .sortable-ghost-line .quote-line-card > strong,
body[data-quotations-page] .sortable-ghost-line .budget-item-cell,
body[data-packages-module] .sortable-ghost-line .budget-item-cell,
body[data-quotations-page] .sortable-ghost-line span,
body[data-packages-module] .sortable-ghost-line span,
body[data-quotations-page] .sortable-ghost-line small,
body[data-packages-module] .sortable-ghost-line small {
    opacity: 1 !important;
    color: inherit !important;
}

body[data-quotations-page] .sortable-ghost-line .row-actions,
body[data-packages-module] .sortable-ghost-line .row-actions {
    opacity: 0.6 !important;
}

.sortable-drag {
    background: #fff !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    cursor: grabbing !important;
}

.project-operation-row-actions {
    display: flex;
    gap: 4px;
    opacity: 0;
    transition: opacity 0.15s;
    justify-content: flex-end;
}

.project-operation-grid-row:hover .project-operation-row-actions {
    opacity: 1;
}

.project-operation-task-summary {
    min-width: 0;
    padding: 4px 0 8px;
}

.project-operation-task-copy {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.project-operation-task-head {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex-wrap: nowrap;
    justify-content: flex-start;
}

.project-operation-task-title {
    font-weight: 700;
    font-size: 14px;
    color: #1e293b;
    cursor: pointer;
    min-width: 0;
    flex: 1 1 auto;
    line-height: 1.35;
}

.project-operation-task-kicker {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    padding: 2px 8px;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    color: #64748b;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.3;
    white-space: nowrap;
}

.project-operation-row-actions--inline {
    margin-left: 2px;
    opacity: 1;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
    padding: 2px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    white-space: nowrap;
    position: relative;
    z-index: 4;
}

.project-operation-row-actions--inline:has(.project-operation-more-trigger[aria-expanded="true"]) {
    z-index: 20020;
}

.project-operation-task-toolbar {
    padding: 2px 0;
}

.project-operation-task-toolbar__btn {
    width: 32px;
    height: 32px;
    min-width: 32px;
    min-height: 32px;
    border-radius: 9px;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

.project-operation-task-toolbar__btn:hover {
    box-shadow: 0 8px 18px rgba(59, 130, 246, 0.12);
}

.checklist-delete-btn {
    flex: 0 0 32px;
}

.project-operations-list-shell.is-view-board .project-operations-grid-container,
.project-operations-list-shell.is-view-timeline .project-operations-grid-container {
    display: none !important;
}

#project-operations-drawer.is-project-operations-view-board .project-operations-grid-container,
#project-operations-drawer.is-project-operations-view-board [data-project-operations-table],
#project-operations-drawer.is-project-operations-view-board .project-operation-list-rows,
#project-operations-drawer.is-project-operations-view-board .project-operation-group-row,
#project-operations-drawer.is-project-operations-view-timeline .project-operations-grid-container,
#project-operations-drawer.is-project-operations-view-timeline [data-project-operations-table],
#project-operations-drawer.is-project-operations-view-timeline .project-operation-list-rows,
#project-operations-drawer.is-project-operations-view-timeline .project-operation-group-row {
    display: none !important;
}

.project-operations-list-shell.is-view-list [data-project-operations-board],
.project-operations-list-shell.is-view-list [data-project-operations-timeline],
.project-operations-list-shell.is-view-board [data-project-operations-timeline],
.project-operations-list-shell.is-view-timeline [data-project-operations-board] {
    display: none !important;
}

.project-operation-more {
    position: relative;
    display: inline-flex;
    z-index: 1;
}

.project-operation-more:has(.project-operation-more-menu:not([hidden])) {
    z-index: 20030;
}

.project-operation-more-trigger[aria-expanded="true"] {
    background: #eef2ff;
    color: var(--blue);
    border-color: rgba(87, 155, 252, 0.35);
}

.project-operation-more-menu {
    position: absolute;
    top: calc(100% + 8px);
    bottom: auto;
    right: 0;
    min-width: 168px;
    padding: 6px;
    border: 1px solid rgba(203, 213, 225, 0.9);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.14);
    display: grid;
    gap: 2px;
    z-index: 20040;
}

.project-operation-more-menu[hidden] {
    display: none !important;
}

.project-operation-drag-handle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 22px;
    padding: 2px;
    flex-shrink: 0;
    color: #94a3b8;
    opacity: 0.55;
    cursor: grab;
}

.project-operation-drag-handle svg,
.project-operation-more-trigger svg {
    display: block;
    opacity: 0.72;
}

.project-operation-more-item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 9px 10px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--text);
    font-size: 13px;
    font-weight: 500;
    text-align: left;
    cursor: pointer;
}

.project-operation-more-item:hover {
    background: #f8fafc;
}

.project-operation-more-item--danger {
    color: var(--danger);
}

.project-operation-more-item--danger:hover {
    background: #fff1f2;
}

.project-operation-task-title[data-quick-edit],
.project-operation-task-notes[data-quick-edit],
.project-operation-field[data-quick-edit],
.date-cell__value[data-quick-edit],
.task-meta-badge[data-quick-edit] {
    position: relative;
    overflow: visible;
}

.project-operation-quick-edit-host {
    position: relative !important;
    overflow: visible !important;
    z-index: 35;
}

.project-operation-quick-edit-host .quick-edit-input,
.project-operation-quick-edit-host .quick-edit-textarea {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    min-width: 220px;
    width: max-content;
    max-width: min(360px, 75vw);
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #93c5fd;
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    line-height: 1.35;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.16);
    outline: none;
}

.project-operation-quick-edit-host .quick-edit-input:focus,
.project-operation-quick-edit-host .quick-edit-textarea:focus {
    border-color: var(--blue);
    box-shadow: 0 16px 32px rgba(87, 155, 252, 0.2);
}

.project-operation-quick-edit-host .quick-edit-input[type="datetime-local"] {
    min-width: 250px;
}

.project-operation-quick-edit-host .quick-edit-datetime-wrap {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: grid;
    gap: 8px;
    min-width: 280px;
    max-width: min(380px, 82vw);
    padding: 10px;
    border: 1px solid #93c5fd;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.16);
    z-index: 40;
}

.project-operation-quick-edit-host .quick-edit-datetime-wrap .quick-edit-input {
    position: static;
    top: auto;
    left: auto;
    transform: none;
    min-width: 0;
    width: 100%;
    max-width: none;
    box-shadow: none;
}

.project-operation-quick-edit-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.project-operation-quick-edit-btn {
    min-height: 32px;
    padding: 0 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.project-operation-quick-edit-btn:hover {
    background: #f8fafc;
}

.project-operation-quick-edit-btn--primary {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: #1d4ed8;
}

.project-operation-quick-edit-btn--primary:hover {
    background: #dbeafe;
}

.project-operation-quick-edit-host .quick-edit-input.quick-edit-select {
    min-width: 190px;
    appearance: auto;
    -webkit-appearance: auto;
}

.project-operation-quick-edit-host .quick-edit-textarea {
    top: 0;
    transform: none;
    min-width: 260px;
    min-height: 96px;
    resize: vertical;
    white-space: normal;
}

@media (hover: hover) and (pointer: fine) {
    .project-operation-uplevel-btn,
    .project-operation-row-actions--inline {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateX(4px);
        transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
    }

    .project-operation-grid-row:hover .project-operation-uplevel-btn,
    .project-operation-grid-row:focus-within .project-operation-uplevel-btn,
    .project-operation-grid-row:hover .project-operation-row-actions--inline,
    .project-operation-grid-row:focus-within .project-operation-row-actions--inline,
    .project-operation-uplevel-btn:focus,
    .project-operation-row-actions--inline:focus-within {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateX(0);
    }
}

@media (hover: none), (pointer: coarse), (max-width: 1180px) {
    .project-operation-uplevel-btn,
    .project-operation-row-actions--inline {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
        box-shadow: none;
        background: rgba(255, 255, 255, 0.92);
    }
}

.icon-action-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 4px;
    color: var(--secondary-text);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.icon-action-btn:hover {
    background: #f1f5f9;
    color: var(--text);
}

.project-operation-uplevel-btn {
    width: 32px;
    height: 32px;
    padding: 0;
    min-width: 32px;
    min-height: 32px;
    border-radius: 9px;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.project-operation-uplevel-btn:hover {
    box-shadow: 0 8px 18px rgba(59, 130, 246, 0.12);
}

.icon-action-btn--danger:hover {
    background: #fff1f2;
    color: var(--danger);
    border-color: rgba(194, 65, 91, 0.2);
}

.is-subtask td:first-child .project-operation-task-cell {
    padding-left: calc(2rem * var(--subtask-depth, 1));
    position: relative;
}
.is-subtask td:first-child .project-operation-task-cell::before {
    content: '';
    position: absolute;
    left: calc(10px + 2rem * (var(--subtask-depth, 1) - 1));
    top: 50%;
    width: 14px;
    height: 1px;
    background: var(--border);
}
.is-subtask td:first-child .project-operation-task-cell::after {
    content: '';
    position: absolute;
    left: calc(10px + 2rem * (var(--subtask-depth, 1) - 1));
    top: -50%;
    width: 1px;
    height: 100%;
    background: var(--border);
}

.project-operation-modal[hidden] {
    display: none !important;
}

.project-operation-modal {
    position: fixed;
    inset: 0;
    z-index: 1500;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
}

.project-operation-modal.project-operation-modal--stacked {
    z-index: 1605;
}

.project-operation-modal-backdrop {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(14, 21, 37, 0.4);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.project-operation-form {
    position: relative;
    z-index: 10;
    width: 100%;
    max-width: 720px;
    max-height: calc(100vh - 3rem);
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 20px 40px -8px rgba(14, 21, 37, 0.15), 0 0 0 1px rgba(14, 21, 37, 0.05);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.project-operation-template-form {
    max-width: 760px;
}

.project-operation-form-title-static,
.project-operation-form [data-project-operation-form-title] {
    margin: 0;
    padding: 18px 24px;
    font-size: 18px;
    font-weight: 700;
    color: var(--ink);
    border-bottom: 1px solid var(--line);
    background: #fff;
    flex-shrink: 0;
}

.project-operation-template-manage-slot {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.project-operation-template-manage-slot .secondary-action {
    padding: 6px 10px;
    font-size: 12px;
    width: 100%;
}

.project-operation-task-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
}

.project-operation-task-actions__danger {
    display: flex;
    align-items: center;
}

.project-operation-task-actions__danger:has(button[hidden]) {
    display: none;
}

.project-operation-task-actions__main {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.project-operation-primary-row {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) minmax(180px, 200px);
    gap: 16px;
    width: 100%;
    min-width: 0;
}

.project-operation-primary-row label {
    min-width: 0;
}

.project-operation-template-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px 0;
}

.project-operation-template-checkbox-row {
    display: grid;
    gap: 8px;
}

.project-operation-template-checkbox {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 48px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    cursor: pointer;
    text-transform: none;
}

.project-operation-template-checkbox > span {
    text-transform: none;
}

.project-operation-template-checkbox input[type="checkbox"] {
    appearance: auto;
    -webkit-appearance: checkbox;
    margin: 0;
    width: 18px;
    height: 18px;
    min-height: 18px;
    flex: 0 0 18px;
    accent-color: var(--blue);
    cursor: pointer;
    box-shadow: none;
    outline: none;
}

.project-operation-template-checkbox input[type="checkbox"]:focus,
.project-operation-template-checkbox input[type="checkbox"]:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

.project-operation-template-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    border-top: 1px solid var(--line);
    margin-top: 14px;
    padding: 18px 16px 0;
}

.project-operation-template-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fcfdff;
}

.project-operation-swal-container {
    z-index: 1700 !important;
}

.project-operation-template-row strong {
    display: block;
    margin-bottom: 5px;
    font-size: 14px;
    line-height: 1.35;
}

.project-operation-template-row small {
    color: var(--secondary-text);
    line-height: 1.45;
}

.project-operation-template-row__actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.project-operation-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    transition: border-color .18s ease, color .18s ease, background .18s ease, transform .18s ease;
}

.project-operation-icon-btn svg {
    width: 16px;
    height: 16px;
    display: block;
}

.project-operation-icon-btn:hover {
    border-color: #bfdbfe;
    background: #f8fbff;
    color: var(--brand);
    transform: translateY(-1px);
}

.project-operation-icon-btn--bill {
    width: 38px;
    height: 38px;
    border-color: var(--line);
    background: #fff;
    color: var(--ink);
    box-shadow: none;
}

.project-operation-icon-btn--bill svg {
    width: 21px;
    height: 21px;
}

.project-operation-icon-btn--bill:hover {
    border-color: #bfdbfe;
    background: #f8fbff;
    color: var(--brand);
}

.project-operation-icon-btn:disabled {
    cursor: not-allowed;
    opacity: .45;
    background: #f8fafc;
    color: #94a3b8;
    transform: none;
}

.project-operation-icon-btn:disabled:hover {
    border-color: var(--line);
    background: #f8fafc;
    color: #94a3b8;
    transform: none;
}

.project-operation-icon-btn--bill:disabled,
.project-operation-icon-btn--bill:disabled:hover {
    border-color: var(--line);
    background: #f8fafc;
    color: #94a3b8;
    opacity: .55;
    box-shadow: none;
}

.project-operation-icon-btn--danger:hover {
    border-color: #fecaca;
    background: #fff5f5;
    color: #dc2626;
}

.project-operation-template-editor-form {
    max-width: 980px;
}

.project-operation-template-editor-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 4px 0 10px;
    border-bottom: 1px solid var(--line);
}

.project-operation-template-editor-meta {
    display: grid;
    gap: 4px;
}

.project-operation-template-editor-meta strong {
    font-size: 18px;
    font-weight: 700;
    color: var(--ink);
}

.project-operation-template-editor-meta small {
    color: var(--secondary-text);
    font-size: 13px;
    line-height: 1.45;
}

.project-operation-template-editor-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 6px;
}

.project-operation-template-task-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fcfdff;
}

.project-operation-template-task-row:hover {
    border-color: #d9e3f4;
    box-shadow: 0 10px 20px rgba(15, 23, 42, 0.04);
}

.project-operation-template-task-row.is-drop-parent-target {
    border-color: #93c5fd;
    background: #eff6ff;
}

.project-operation-template-task-row.is-drop-outdent-target {
    border-color: #fdba74;
    background: #fff7ed;
}

.project-operation-template-task-row__handle {
    flex-shrink: 0;
    align-self: stretch;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: grab;
}

.project-operation-template-task-row__main {
    display: grid;
    gap: 4px;
    min-width: 0;
    flex: 1;
}

.project-operation-template-task-row__main strong {
    font-size: 14px;
    line-height: 1.4;
    color: var(--ink);
}

.project-operation-template-task-row__main small {
    color: var(--secondary-text);
    line-height: 1.45;
}

.project-operation-template-task-row__actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
    flex-shrink: 0;
}

.project-operation-template-task-row__actions .action-icon-button {
    flex: 0 0 32px;
}

.project-operation-template-actions__buttons,
.project-operation-form-actions__buttons {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.project-operation-form-actions__inner {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    align-items: center;
}

.project-operation-template-form .project-operation-form-actions {
    padding: 16px 24px;
}

.project-operation-template-form .project-operation-form-actions__buttons .secondary-action {
    min-width: 92px;
}

.project-operation-template-empty {
    padding: 18px;
    border: 1px dashed var(--line);
    border-radius: 10px;
    color: var(--secondary-text);
    text-align: center;
}

@media (max-width: 767px) {
    #project-drawer .project-drawer-heading {
        grid-template-columns: auto minmax(0, 1fr) auto;
        grid-template-areas:
            "icon copy close"
            "toolbar toolbar toolbar";
    }

    #project-drawer .project-drawer-heading__toolbar {
        justify-content: stretch;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    #project-drawer .project-drawer-heading__toolbar .project-module-action-button {
        width: 100%;
        min-width: 0;
    }

    .project-operation-template-actions {
        flex-direction: column;
        align-items: stretch;
        padding-left: 0;
        padding-right: 0;
    }

    .project-operation-template-actions .form-message {
        width: 100%;
    }

    .project-operation-template-actions__buttons,
    .project-operation-form-actions__buttons {
        width: 100%;
        justify-content: flex-end;
        margin-left: 0;
    }

    .project-operation-template-form .project-operation-form-actions,
    .project-operation-template-form .project-operation-form-actions__inner,
    .project-operation-template-form .project-operation-form-actions__buttons {
        display: flex !important;
        grid-template-columns: none !important;
        justify-content: flex-end !important;
        width: 100% !important;
    }

    .project-operation-template-form .project-operation-form-actions__buttons .secondary-action {
        width: auto !important;
        min-width: 92px !important;
        white-space: nowrap !important;
    }

    .project-operation-template-editor-toolbar,
    .project-operation-template-task-row {
        flex-direction: column;
        align-items: stretch;
    }

    .project-operation-template-task-row__handle {
        align-self: flex-start;
    }

    .project-operation-template-task-row__actions {
        justify-content: flex-start;
    }
}

@media (max-width: 520px) {
    #project-drawer .project-drawer-heading__toolbar {
        grid-template-columns: 1fr;
    }
}

.project-operation-form-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    background: #fcfdff;
    border-bottom: 1px solid var(--line);
}

.project-operation-form-head strong {
    font-size: 15px;
    font-weight: 800;
    color: var(--ink);
}

.project-operation-fields {
    padding: 1.25rem;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.project-operation-fields label {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.project-operation-fields label span {
    font-size: 11px;
    font-weight: 700;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .02em;
}

.project-operation-fields input,
.project-operation-fields select,
.project-operation-fields textarea {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 14px;
    background: #fff;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.project-operation-fields input:focus,
.project-operation-fields select:focus,
.project-operation-fields textarea:focus {
    outline: none;
    border-color: var(--brand);
    box-shadow: 0 0 0 3px var(--brand-faded);
}

.project-operation-fields textarea {
    resize: vertical;
    min-height: 80px;
    font-family: inherit;
}

.project-operation-fields-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem 1rem;
}

.project-operation-details {
    background: #f8fbff;
    border: 1px solid #d6e0f5;
    border-radius: 10px;
    padding: 1rem;
}

.project-operation-details summary {
    font-size: 12px;
    font-weight: 700;
    color: var(--ink);
    cursor: pointer;
    list-style: none;
    margin-bottom: 0.75rem;
}

.project-operation-details summary::-webkit-details-marker {
    display: none;
}

.project-operation-details-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem 1rem;
}

.project-operation-fields .full-span {
    grid-column: 1 / -1;
}

.project-operation-form-actions {
    display: flex;
    align-items: center;
    padding: 1rem 1.25rem;
    background: #fcfdff;
    border-top: 1px solid var(--line);
}

@media (max-width: 1080px) {
    .project-operations-meta-strip {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .project-operations-meta-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .project-operations-workspace-toolbar,
    .project-operations-list-toolbar {
        flex-direction: column;
        align-items: flex-start;
    }

    .project-operations-toolbar-actions {
        width: 100%;
        margin-left: 0;
        justify-content: stretch;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
    }

    .project-operations-toolbar-secondary-group {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .project-operations-toolbar-actions .primary-action,
    .project-operations-toolbar-button {
        width: 100%;
        min-width: 0;
    }
    
    .project-operation-fields-grid,
    .project-operation-details-grid {
        grid-template-columns: 1fr;
    }

    .project-operations-template-actions {
        margin-left: 0;
        width: 100%;
        justify-content: flex-end;
        flex-wrap: nowrap;
    }
}

@media (max-width: 640px) {
    .project-operations-toolbar-secondary-group {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .list-controls select {
        min-width: 0;
        flex: 1 1 0;
    }

    .project-list-view-toggle {
        margin-left: auto;
    }

    

    .table-wrap:not(.is-grid-view) tbody {
        display: grid;
        gap: 12px;
    }

    .table-wrap:not(.is-grid-view) tr {
        padding: 14px;
        border: 1px solid var(--line);
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 12px 30px rgba(15, 23, 42, 0.04);
    }

    .table-wrap:not(.is-grid-view) td {
        padding: 0;
        border: 0;
    }

    .table-wrap:not(.is-grid-view) td + td {
        margin-top: 10px;
    }

    .table-wrap:not(.is-grid-view) .td-code strong {
        display: block;
        font-size: 15px;
        line-height: 1.35;
    }

    .table-wrap:not(.is-grid-view) .td-code small,
    .table-wrap:not(.is-grid-view) .td-client small,
    .table-wrap:not(.is-grid-view) .td-event small {
        display: block;
        margin-top: 2px;
        color: var(--secondary-text);
    }

    .table-wrap:not(.is-grid-view) .td-status {
        display: flex;
        justify-content: flex-start;
    }

    .table-wrap:not(.is-grid-view) .td-actions {
        display: flex;
        flex-wrap: nowrap !important;
        gap: 8px;
        justify-content: stretch;
        align-items: center;
        margin-top: 12px;
        padding-top: 12px;
        border-top: 1px solid var(--line);
    }

    .table-wrap:not(.is-grid-view) .td-actions.action-icon-group,
    .table-wrap:not(.is-grid-view) .row-actions.action-icon-group,
    .table-wrap:not(.is-grid-view) .cell-actions.action-icon-group {
        justify-content: flex-start;
        align-items: center;
        flex-wrap: nowrap;
        width: auto;
    }

    .table-wrap:not(.is-grid-view) .td-actions .btn-card,
    [data-project-operations-projects-table] .td-actions .btn-card {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 1 1 0;
        width: 100% !important;
        min-height: 44px !important;
        padding: 0 14px !important;
        margin: 0 !important;
        border: 1px solid var(--line) !important;
        border-radius: 10px !important;
        background: #fff !important;
        color: var(--ink) !important;
        font-size: 14px !important;
        font-weight: 700 !important;
        line-height: 1 !important;
        text-align: center !important;
        appearance: none;
        -webkit-appearance: none;
        box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    }

    .table-wrap:not(.is-grid-view) .td-actions.action-icon-group .action-icon-button,
    .table-wrap:not(.is-grid-view) .row-actions.action-icon-group .action-icon-button,
    .table-wrap:not(.is-grid-view) .cell-actions.action-icon-group .action-icon-button {
        width: 32px !important;
        min-width: 32px !important;
        max-width: 32px !important;
        height: 32px !important;
        min-height: 32px !important;
        flex: 0 0 32px !important;
        padding: 0 !important;
    }

    .table-wrap:not(.is-grid-view) .td-actions .btn-card:hover,
    [data-project-operations-projects-table] .td-actions .btn-card:hover {
        background: #f8fbff;
        border-color: #cfd8ea;
    }

    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) {
        overflow-x: auto;
    }

    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) table {
        display: table;
        width: max-content;
        min-width: max(100%, 880px);
        border-collapse: collapse;
    }

    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) thead {
        display: table-header-group;
    }

    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) tbody {
        display: table-row-group;
    }

    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) tr {
        display: table-row;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) th,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td {
        display: table-cell;
        width: auto;
        padding: 14px 16px;
        border-bottom: 1px solid var(--line);
        vertical-align: top;
    }

    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td + td {
        margin-top: 0;
    }

    #project-drawer .project-drawer-table--items table {
        min-width: 980px;
    }

    #project-drawer .project-drawer-table--expenses table {
        min-width: 1086px;
    }

    #project-drawer .project-drawer-table--expenses th:last-child,
    #project-drawer .project-drawer-table--expenses td:last-child,
    #project-drawer .project-drawer-table--expenses td.row-actions {
        width: 176px !important;
        min-width: 176px !important;
    }

    #project-drawer .project-drawer-table--expenses td.row-actions .action-inline-cluster {
        display: inline-flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 6px !important;
        width: max-content !important;
        white-space: nowrap !important;
    }

    #project-drawer .project-drawer-table--po table {
        min-width: 640px;
    }

    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td[data-label]::before {
        display: none;
        content: none;
    }

    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) .td-status {
        display: table-cell;
    }

    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.td-actions,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.td-actions.action-icon-group,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.row-actions,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.row-actions.action-icon-group,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.cell-actions,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.cell-actions.action-icon-group {
        display: table-cell !important;
        width: 1% !important;
        white-space: nowrap !important;
        text-align: left !important;
        vertical-align: middle !important;
    }

    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.td-actions .btn-card,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.td-actions .action-icon-button,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.row-actions .btn-card,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.row-actions .action-icon-button,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.cell-actions .btn-card,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.cell-actions .action-icon-button {
        display: inline-flex !important;
        vertical-align: middle;
        margin: 0 8px 0 0 !important;
    }

    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.td-actions .btn-card:last-child,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.td-actions .action-icon-button:last-child,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.row-actions .btn-card:last-child,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.row-actions .action-icon-button:last-child,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.cell-actions .btn-card:last-child,
    .table-wrap[data-preserve-table-layout]:not(.is-grid-view) td.cell-actions .action-icon-button:last-child {
        margin-right: 0 !important;
    }

.table-wrap.is-grid-view td.td-actions {
    display: flex;
    flex-wrap: nowrap !important;
    gap: 8px;
    width: 100%;
}

#project-operations-drawer .project-operations-table-wrap {
    overflow-x: auto !important;
    overflow-y: hidden !important;
}

#project-operations-drawer .project-operations-table-wrap .project-operations-grid-container,
#project-operations-drawer .project-operations-table-wrap .project-operations-grid-body,
#project-operations-drawer .project-operations-table-wrap .project-operation-list-rows {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
}

#project-operations-drawer .project-operations-table-wrap .project-operations-grid-header {
    display: grid !important;
    /* 8 columns since Notes moved */
    grid-template-columns: minmax(200px, 1fr) 100px 165px 165px 64px 84px 84px 100px !important;
    gap: 8px !important;
    min-width: 0 !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
}

#project-operations-drawer .project-operations-table-wrap .project-operations-grid-header .p-col-start,
#project-operations-drawer .project-operations-table-wrap .project-operations-grid-header .p-col-due {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
}

#project-operations-drawer .project-operations-table-wrap .project-operation-grid-row {
    display: grid !important;
    /* 8 columns since Notes moved */
    grid-template-columns: minmax(200px, 1fr) 100px 165px 165px 64px 84px 84px 100px !important;
    gap: 8px !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: start !important;
    padding: 10px 0 !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    margin: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #e2e8f0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    box-sizing: border-box !important;
}

#project-operations-drawer .project-operations-table-wrap .project-operation-grid-row > div,
#project-operations-drawer .project-operations-table-wrap .project-operation-grid-row > .project-operation-field {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

#project-operations-drawer .project-operations-table-wrap .project-operation-grid-row > div:first-child {
    grid-column: auto !important;
}

#project-operations-drawer .project-operations-table-wrap .project-operation-grid-row > .project-operation-field::before {
    display: none !important;
}

#project-operations-drawer .project-operations-table-wrap .project-operation-task-summary {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

#project-operations-drawer .project-operations-table-wrap .project-operation-drag-handle {
    align-self: center;
    margin-top: 0 !important;
}

#project-operations-drawer .project-operations-table-wrap .project-operation-grid-row.is-drop-parent-target {
    background: #eef4ff !important;
    box-shadow: inset 3px 0 0 #5b7cff !important;
}

#project-operations-drawer .project-operations-table-wrap .project-operation-grid-row.is-drop-outdent-target {
    background: #fff7ed !important;
    box-shadow: inset 3px 0 0 #f59e0b !important;
}

#project-operations-drawer .project-operations-table-wrap .sortable-ghost-line {
    opacity: 1 !important;
    background: #eef2ff !important;
    border: 2px dashed #818cf8 !important;
    border-radius: 6px !important;
}

    .table-wrap.is-grid-view td.td-actions .btn-card {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex: 1 1 calc(50% - 4px);
        min-width: 110px;
        min-height: 40px;
        white-space: nowrap;
    }

}

@media (max-width: 640px) {
    .project-operations-template-actions {
        width: 100%;
        margin-left: 0;
    }

    .project-operations-template-actions__button {
        flex: 1 1 0;
        padding: 0 10px;
        font-size: 12px;
    }

    .pagination-bar {
        justify-content: space-between;
        gap: 8px;
    }

    .pagination-bar span {
        flex: 1 1 auto;
        text-align: center;
    }

}

@media (max-width: 640px) {
    .project-budget-modal,
    .project-expense-modal,
    .project-operation-modal {
        align-items: stretch !important;
        justify-items: stretch !important;
        padding: 10px !important;
        overflow-x: hidden !important;
    }

    .project-budget-form,
    .project-expense-form,
    .project-operation-form {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        max-height: calc(100dvh - 20px) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        box-sizing: border-box !important;
        border-radius: 14px !important;
    }

    .project-budget-form,
    .project-expense-form {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        padding: 16px !important;
    }

    .project-budget-fields,
    .project-budget-form [style*="grid-template-columns"],
    .project-expense-form [style*="grid-template-columns"] {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    .project-budget-form label,
    .project-expense-form label,
    .project-budget-form .field-group,
    .project-expense-form .field-group,
    .project-budget-form .double-span,
    .project-expense-form .double-span,
    .project-budget-form .full-span,
    .project-expense-form .full-span {
        grid-column: 1 / -1 !important;
        min-width: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .project-budget-form input,
    .project-budget-form select,
    .project-budget-form textarea,
    .project-expense-form input,
    .project-expense-form select,
    .project-expense-form textarea,
    .project-budget-form .ts-wrapper,
    .project-expense-form .ts-wrapper,
    .project-budget-form .ts-control,
    .project-expense-form .ts-control,
    .project-budget-form .rich-editor,
    .project-expense-form .rich-editor {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    .project-budget-form .line-images,
    .project-budget-form .quote-line-image {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 12px !important;
        width: 100% !important;
        min-width: 0 !important;
        overflow: hidden !important;
    }

    .project-budget-form .line-images > div,
    .project-budget-form .quote-line-image > div,
    .project-budget-form .bwp-image-manager,
    .project-budget-form .bwp-image-dropzone,
    .project-expense-form .project-receipt-drop {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    .project-budget-form .bwp-image-grid,
    .project-expense-form .company-expense-receipt-queue {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
    }

    .project-budget-form .form-actions,
    .project-expense-form .form-actions,
    .project-operation-form .project-operation-form-actions,
    .project-operation-form .project-operation-form-actions__inner,
    .project-operation-form .project-operation-form-actions__buttons {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        gap: 10px !important;
        width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
    }

    .project-budget-form .form-actions button,
    .project-expense-form .form-actions button,
    .project-operation-form .project-operation-form-actions button,
    .project-operation-form .project-operation-form-actions__buttons button {
        width: 100% !important;
        min-width: 0 !important;
        white-space: normal !important;
    }

    .project-operation-task-actions {
        display: grid !important;
        grid-template-columns: auto minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 10px !important;
    }

    .project-operation-task-actions__danger,
    .project-operation-task-actions__main {
        display: flex !important;
        gap: 10px !important;
        margin-left: 0 !important;
    }

    .project-operation-task-actions__danger {
        grid-column: 1 !important;
        justify-content: flex-start !important;
        width: auto !important;
    }

    .project-operation-task-actions__main {
        grid-column: 2 !important;
        justify-content: flex-end !important;
        width: 100% !important;
    }

    .project-operation-task-actions button,
    .project-operation-task-actions__main button,
    .project-operation-task-actions__danger button {
        width: auto !important;
        min-width: 84px !important;
        white-space: nowrap !important;
    }

    .project-operation-template-editor-form .project-operation-form-actions,
    .project-operation-template-editor-form .project-operation-form-actions__inner,
    .project-operation-template-editor-form .project-operation-form-actions__buttons {
        display: flex !important;
        grid-template-columns: none !important;
        justify-content: flex-start !important;
        width: 100% !important;
        margin-left: 0 !important;
    }

    .project-operation-template-editor-form .project-operation-form-actions button,
    .project-operation-template-editor-form .project-operation-form-actions__buttons button {
        width: auto !important;
        min-width: 92px !important;
        min-height: 44px !important;
        white-space: nowrap !important;
    }

    .project-operation-form-grid,
    .project-operation-template-editor-form .project-operation-form-grid,
    .project-operation-template-form .project-operation-form-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 14px !important;
        width: 100% !important;
        min-width: 0 !important;
        padding-left: 18px !important;
        padding-right: 18px !important;
        box-sizing: border-box !important;
    }

    .project-operation-form-grid label,
    .project-operation-form-grid .project-operation-primary-row,
    .project-operation-form-grid .field-group,
    .project-operation-form-grid .full-span,
    .project-operation-form-grid .double-span,
    .project-operation-form-grid details,
    .project-operation-form-grid .project-operation-template-manage-slot,
    .project-operation-form-grid .project-operation-template-checkbox-row {
        grid-column: 1 / -1 !important;
        min-width: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .project-operation-primary-row {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 14px !important;
    }

    .project-operation-form input,
    .project-operation-form select,
    .project-operation-form textarea,
    .project-operation-form .ts-wrapper,
    .project-operation-form .ts-control {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }

    .project-budget-form .table-wrap,
    .project-expense-form .table-wrap,
    .project-operation-form .table-wrap {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
    }

    .project-po-modal .project-budget-form {
        gap: 16px !important;
    }

    .project-po-modal .table-wrap table {
        width: max-content !important;
        min-width: max(100%, 520px) !important;
        table-layout: auto !important;
    }

    .project-po-modal .table-wrap thead {
        display: table-header-group !important;
    }

    .project-po-modal .table-wrap tbody {
        display: table-row-group !important;
    }

    .project-po-modal .table-wrap tr {
        display: table-row !important;
        border: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
    }

    .project-po-modal .table-wrap th,
    .project-po-modal .table-wrap td {
        display: table-cell !important;
        width: auto !important;
        padding: 12px 14px !important;
        border-bottom: 1px solid var(--line) !important;
        white-space: nowrap !important;
        vertical-align: middle !important;
    }

    .project-po-modal .project-po-check-cell {
        width: 48px !important;
        min-width: 48px !important;
        text-align: center !important;
    }

    .project-po-modal .project-po-actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
}

@media (max-width: 1180px) {
    #project-operations-drawer .project-operations-table-wrap .project-operations-grid-container,
    #project-operations-drawer .project-operations-table-wrap .project-operations-grid-body,
    #project-operations-drawer .project-operations-table-wrap .project-operation-list-rows {
        width: max-content !important;
        min-width: 1082px !important;
    }

    #project-operations-drawer .project-operations-table-wrap .project-operations-grid-header,
    #project-operations-drawer .project-operations-table-wrap .project-operation-grid-row {
        min-width: 1082px !important;
    }

    .table-wrap.is-grid-view td.td-actions {
        display: inline-flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        flex-wrap: nowrap !important;
        gap: 8px !important;
        width: auto !important;
    }

    .table-wrap.is-grid-view td.td-actions .btn-card {
        width: 32px !important;
        max-width: 32px !important;
        min-width: 32px !important;
        flex: 0 0 32px !important;
        padding: 0 !important;
        white-space: nowrap !important;
        overflow: visible !important;
    }

    body[data-project-operations-page] .table-wrap:not(.is-grid-view) .td-actions,
    body[data-project-operations-page] [data-project-operations-projects-table] .td-actions {
        display: table-cell !important;
        width: auto !important;
        white-space: nowrap;
        text-align: center !important;
        vertical-align: middle !important;
    }
}

.quote-line-placeholder {
    min-height: 74px;
    border: 1px dashed #bfdbfe;
    border-radius: 8px;
    background: #f8fbff;
}

#quote-drawer .quote-line {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

#quote-drawer .quote-line .line-drag-handle {
    display: none;
}

#quote-drawer .quote-line .quote-line-modal-close,
#quote-drawer .quote-line .quote-line-modal-title,
#quote-drawer .quote-line .quote-line-quick-actions,
#quote-drawer .quote-line .quote-line-fields {
    display: none;
}

.quote-line-card {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 22px minmax(120px, 1.15fr) minmax(150px, 1.05fr) minmax(130px, .95fr) 54px minmax(92px, .7fr) minmax(105px, .78fr) minmax(105px, .78fr) minmax(112px, .82fr) minmax(124px, .82fr) minmax(120px, auto);
    align-items: center;
    gap: 10px;
    min-height: 72px;
    padding: 12px 10px;
    border-bottom: 1px solid var(--line);
}

.quote-line-header {
    display: grid;
    grid-template-columns: 22px minmax(120px, 1.15fr) minmax(150px, 1.05fr) minmax(130px, .95fr) 54px minmax(92px, .7fr) minmax(105px, .78fr) minmax(105px, .78fr) minmax(112px, .82fr) minmax(124px, .82fr) minmax(120px, auto);
    gap: 10px;
    margin: 18px 0 0;
    padding: 0 10px 10px;
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.quote-line-card strong {
    display: block;
    color: var(--ink);
    font-size: 14px;
    font-weight: 700;
}

.quote-line-card > div,
.quote-line-card > strong {
    min-width: 0;
}

.quote-line-card span:not(.quote-line-column-label),
.quote-line-card small {
    overflow-wrap: anywhere;
}

.quote-line-card small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
}

.quote-line-card [data-line-card-total] {
    display: grid;
    gap: 3px;
    min-width: 112px;
    padding: 9px 12px;
    border: 1px solid #bbf7d0;
    border-radius: 8px;
    background: #ecfdf5;
    color: #047857;
    font-size: 13px;
}

.quote-line-card .project-status-chip {
    justify-self: start;
    white-space: nowrap;
}

.quote-line-selection-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 8px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.quote-line-selection-badge.is-included {
    background: #e2e8f0;
    color: #475569;
}

.quote-line-selection-badge.is-optional {
    background: #fff7ed;
    color: #c2410c;
}

.quote-line-selection-badge.is-selected {
    background: #dcfce7;
    color: #15803d;
}

.quote-line-option-toggle {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.quote-line-option-toggle input[type="checkbox"] {
    order: -1;
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #4f8df6;
}

.quote-line-card [data-line-card-total].is-loss {
    border-color: #fecdd3;
    background: #fff1f2;
    color: #be123c;
}

.quote-line-card [data-line-card-total] small {
    margin: 0;
    color: inherit;
    font-size: 11px;
    font-weight: 600;
}

.quote-line-card .row-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    min-width: 120px;
}

.quote-line-card .row-actions [hidden] {
    display: none !important;
}

.quote-line-card .row-actions button {
    min-height: 34px;
    padding: 7px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    font-weight: 700;
    cursor: pointer;
}

.quote-line-card-drag {
    width: 20px;
    height: 28px;
    color: var(--muted);
    border: 0;
    background: transparent;
    padding: 0;
}

body.quote-line-modal-open {
    overflow: hidden !important;
    height: 100vh;
    touch-action: none;
}

.quote-line-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 84;
    background: rgba(15, 23, 42, .32);
}

.quote-line.quote-line-modal {
    position: fixed;
    top: 50%;
    left: 50%;
    right: auto;
    bottom: auto;
    transform: translate(-50%, -50%);
    z-index: 85;
    display: grid;
    width: min(1180px, calc(100vw - 44px));
    max-height: calc(100vh - 44px);
    overflow: auto;
    padding: 18px;
    grid-template-columns: 1fr auto;
    align-content: start;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcff;
    box-shadow: 0 24px 80px rgba(15, 23, 42, .24);
}

.quote-line.quote-line-modal .quote-line-modal-close {
    justify-self: end;
    align-self: center;
}

.quote-line.quote-line-modal .quote-line-modal-title {
    align-content: center;
    gap: 3px;
}

.quote-line.quote-line-modal .quote-line-modal-close,
.quote-line.quote-line-modal .quote-line-modal-title,
.quote-line.quote-line-modal .quote-line-fields {
    display: grid;
}

.quote-line.quote-line-modal .quote-line-modal-title strong {
    color: var(--ink);
    font-size: 22px;
    font-weight: 800;
    line-height: 1.15;
}

.quote-line.quote-line-modal .quote-line-quick-actions {
    display: none;
}

.quote-line.quote-line-modal .quote-line-card {
    display: none;
}

.quote-line.quote-line-modal .line-drag-handle {
    display: none;
}

.quote-line.quote-line-modal .line-remove-cell,
.quote-line.quote-line-modal [data-line-image-clear] {
    display: none !important;
}

.quote-line.quote-line-modal .package-line-fx {
    display: grid;
    align-self: start;
    align-content: center;
    gap: 3px;
    min-height: 0;
    padding: 10px 12px;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    background: #eff6ff;
    color: #385072;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
}

.quote-line.quote-line-modal .quote-line-image {
    grid-template-columns: 220px minmax(0, 1fr);
    align-items: start;
}

.quote-line.quote-line-modal .quote-upload-drop {
    width: 220px;
    min-height: 58px;
    padding: 10px 12px;
}

.quote-line-fields {
    grid-column: 1 / -1;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: start;
    gap: 10px;
}

.quote-line.quote-line-modal .quote-line-fields label:nth-of-type(1) { grid-column: 1 / span 3; }
.quote-line.quote-line-modal .quote-line-fields label:nth-of-type(2) { grid-column: 4 / span 3; }
.quote-line.quote-line-modal .quote-line-fields label:nth-of-type(3) { grid-column: 7 / span 3; }
.quote-line.quote-line-modal .quote-line-fields label:nth-of-type(4) { grid-column: 10 / span 3; }
.quote-line.quote-line-modal .quote-line-fields label:nth-of-type(5) { grid-column: 1 / span 3; }
.quote-line.quote-line-modal .quote-line-fields label:nth-of-type(6) { grid-column: 4 / span 3; }
.quote-line.quote-line-modal .quote-line-fields label:nth-of-type(7) { grid-column: 7 / span 3; }
.quote-line.quote-line-modal .quote-line-fields label:nth-of-type(8) { grid-column: 10 / span 3; }
.quote-line.quote-line-modal .quote-line-fields label:nth-of-type(9) { grid-column: 1 / span 3; }
.quote-line.quote-line-modal .quote-line-fields label.line-remove-cell { display: none; }

.quote-line-fields .quote-line-description {
    grid-column: 1 / span 4;
}

.quote-line-fields .package-line-fx {
    grid-column: 5 / span 3;
}

.quote-line-fields .quote-line-image {
    grid-column: 1 / -1;
}

.quote-line-modal-actions {
    grid-column: 1 / -1;
}

@media (max-width: 920px) {
    .quote-line-header {
        display: none;
    }

    .quote-line-card {
        grid-template-columns: 20px minmax(0, 1fr) minmax(90px, auto);
    }

    .quote-line-card > div:nth-of-type(n+2),
    .quote-line-card > strong[data-line-card-total] {
        grid-column: 2 / -1;
    }

    .quote-line-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .quote-line-fields .quote-line-description,
    .quote-line-fields .package-line-fx,
    .quote-line-fields .quote-line-image {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .quote-line-card {
        grid-template-columns: 20px 1fr;
        align-items: start;
    }

    .quote-line-card .secondary-action {
        grid-column: 2;
        justify-self: start;
    }

    .quote-line-fields {
        grid-template-columns: 1fr;
    }
}

.quote-line.quote-line-modal .quote-line-fields .quote-line-description {
    grid-column: 1 / span 4;
}

.quote-line.quote-line-modal .quote-line-fields .package-line-fx {
    grid-column: 5 / span 3;
}

.quote-line.quote-line-modal .quote-line-fields .quote-line-image,
.quote-line.quote-line-modal .quote-line-fields .quote-line-modal-actions {
    grid-column: 1 / -1;
}

@media (max-width: 1024px) {
    .quote-line.quote-line-modal {
        width: min(92vw, 860px);
        max-width: min(92vw, 860px);
        max-height: min(92dvh, 980px);
        padding: 16px;
        overflow-y: auto;
        overflow-x: hidden;
    }

    .quote-line.quote-line-modal .quote-line-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }

    .quote-line.quote-line-modal .quote-line-fields label:nth-of-type(1),
    .quote-line.quote-line-modal .quote-line-fields label:nth-of-type(2),
    .quote-line.quote-line-modal .quote-line-fields label:nth-of-type(3),
    .quote-line.quote-line-modal .quote-line-fields label:nth-of-type(4),
    .quote-line.quote-line-modal .quote-line-fields label:nth-of-type(5),
    .quote-line.quote-line-modal .quote-line-fields label:nth-of-type(6),
    .quote-line.quote-line-modal .quote-line-fields label:nth-of-type(7),
    .quote-line.quote-line-modal .quote-line-fields label:nth-of-type(8),
    .quote-line.quote-line-modal .quote-line-fields label:nth-of-type(9) {
        grid-column: auto !important;
    }

    .quote-line.quote-line-modal .quote-line-fields .quote-line-description,
    .quote-line.quote-line-modal .quote-line-fields .package-line-fx,
    .quote-line.quote-line-modal .quote-line-fields .quote-line-image,
    .quote-line.quote-line-modal .quote-line-fields .quote-line-modal-actions {
        grid-column: 1 / -1 !important;
    }

    .quote-line.quote-line-modal .quote-line-image {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .quote-line.quote-line-modal .quote-upload-drop {
        width: 100%;
    }
}

@media (max-width: 920px) {
    .quote-line.quote-line-modal .quote-line-fields .quote-line-description,
    .quote-line.quote-line-modal .quote-line-fields .package-line-fx,
    .quote-line.quote-line-modal .quote-line-fields .quote-line-image,
    .quote-line.quote-line-modal .quote-line-fields .quote-line-modal-actions {
        grid-column: 1 / -1;
    }
}

.project-expense-table {
    margin-top: 10px;
}

.project-receipt-drop {
    display: grid;
    place-items: center;
    min-height: 58px;
    padding: 12px;
    border: 1px dashed #b8c7e5;
    border-radius: 8px;
    background: #fbfdff;
    color: var(--muted);
    cursor: pointer;
    text-align: center;
    transition: border-color .16s ease, background .16s ease, color .16s ease;
}

.project-receipt-drop:hover,
.project-receipt-drop.drag-over {
    border-color: var(--blue);
    background: rgba(87, 155, 252, .08);
    color: var(--blue);
}

.project-receipt-drop input {
    display: none;
}

.swal-ar-receipt-label {
    grid-column: 1 / -1;
}

.swal-ar-receipt-drop {
    min-height: 72px;
}

.receipt-cell {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 180px;
}

.receipt-link {
    font-weight: 600;
    color: #1f3f7a;
    text-decoration: none;
}

.receipt-link:hover {
    text-decoration: underline;
}

.receipt-actions {
    display: flex;
    gap: 0.4rem;
    flex-wrap: nowrap !important;
}

.ar-summary-card {
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.ar-summary-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.08);
}

.ar-summary-card.is-active {
    border-color: rgba(72, 128, 255, 0.35);
    box-shadow: 0 0 0 2px rgba(72, 128, 255, 0.14);
}

.compact-action {
    padding: 0.35rem 0.65rem;
    min-height: auto;
    font-size: 0.8rem;
}

.danger-soft {
    color: #c2415b;
    border-color: #f3c0cc;
    background: #fff7f9;
}

.payment-note {
    max-width: 320px;
    white-space: pre-wrap;
    word-break: break-word;
    color: var(--ink);
}

.budget-item-cell {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
}

.budget-drag-handle {
    width: 20px;
    height: 28px;
    border: 0;
    background: transparent;
    color: var(--muted);
    cursor: grab;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    padding: 0;
}

.budget-drag-handle:active {
    cursor: grabbing;
}

[data-project-budget-row].dragging {
    opacity: .55;
}

[data-project-budget-row].dragging td {
    background: #f6faff;
}

[data-project-budget-row].is-drop-before td,
[data-project-expense-row].is-drop-before td {
    border-top: 2px dashed #7c9cff !important;
}

[data-project-budget-row].is-drop-after td,
[data-project-expense-row].is-drop-after td {
    border-bottom: 2px dashed #7c9cff !important;
}

[data-project-budget-table].has-drop-at-end::after,
[data-project-expenses-table].has-drop-at-end::after {
    content: "";
    display: block;
    margin: 6px 10px 0;
    border-top: 2px dashed #7c9cff;
}

[data-quote-expense-row].dragging {
    opacity: .55;
}

[data-quote-expense-row].dragging td {
    background: #f6faff;
}

[data-quote-expense-row].is-drop-before,
[data-quote-expense-row].is-drop-after,
[data-quote-expense-row].is-drop-target {
    background: #eef4ff !important;
    box-shadow: inset 3px 0 0 #5b7cff !important;
}

[data-quote-expense-row].is-drop-before td,
[data-quote-expense-row].is-drop-after td,
[data-quote-expense-row].is-drop-target td {
    background: transparent !important;
    box-shadow: none !important;
}

[data-quote-expense-row].is-drop-before td {
    border-top: 0 !important;
}

[data-quote-expense-row].is-drop-after td {
    border-bottom: 0 !important;
}

[data-quote-expenses-table].has-drop-at-end::after {
    content: "";
    display: block;
    margin: 6px 10px 0;
    background: #eef2ff;
    border: 2px dashed #818cf8;
    border-radius: 6px;
    min-height: 52px;
}

[data-quote-line].dragging .quote-line-card {
    opacity: .55;
    background: #f6faff;
}

[data-quote-line].is-drop-before .quote-line-card {
    background: #eef4ff !important;
    box-shadow: inset 3px 0 0 #5b7cff !important;
    border-top: 0 !important;
}

[data-quote-line].is-drop-after .quote-line-card {
    background: #eef4ff !important;
    box-shadow: inset 3px 0 0 #5b7cff !important;
    border-bottom: 0 !important;
}

[data-quote-line].is-drop-target .quote-line-card {
    background: #eef4ff !important;
    box-shadow: inset 3px 0 0 #5b7cff !important;
}

[data-quote-lines].has-drop-at-end::after {
    content: "";
    display: block;
    margin: 8px 10px 0;
    background: #eef2ff;
    border: 2px dashed #818cf8;
    border-radius: 6px;
    min-height: 56px;
}

[data-project-budget-table] td {
    vertical-align: middle;
}

#project-drawer .project-drawer-table--items th:nth-child(1),
[data-project-budget-table] td:nth-child(1) {
    width: 220px;
    min-width: 220px;
}

#project-drawer .project-drawer-table--items th:nth-child(2),
[data-project-budget-table] td:nth-child(2) {
    width: 180px;
    min-width: 180px;
}

#project-drawer .project-drawer-table--items th:nth-child(3),
[data-project-budget-table] td:nth-child(3) {
    width: 180px;
    min-width: 180px;
}

#project-drawer .project-drawer-table--items th:nth-child(4),
[data-project-budget-table] td:nth-child(4) {
    width: 72px;
    min-width: 72px;
}

#project-drawer .project-drawer-table--items th:nth-child(5),
[data-project-budget-table] td:nth-child(5) {
    width: 120px;
    min-width: 120px;
}

#project-drawer .project-drawer-table--items th:nth-child(6),
[data-project-budget-table] td:nth-child(6) {
    width: 120px;
    min-width: 120px;
}

#project-drawer .project-drawer-table--items th:nth-child(7),
[data-project-budget-table] td:nth-child(7) {
    width: 120px;
    min-width: 120px;
}

#project-drawer .project-drawer-table--items th:nth-child(8),
[data-project-budget-table] td:nth-child(8) {
    width: 120px;
    min-width: 120px;
}

#project-drawer .project-drawer-table--items th:nth-child(9),
[data-project-budget-table] td:nth-child(9) {
    width: 120px;
    min-width: 120px;
}

#project-drawer .project-drawer-table--items th:nth-child(10),
[data-project-budget-table] td:nth-child(10) {
    width: 108px;
    min-width: 108px;
    max-width: 108px;
}

[data-project-expenses-table] td,
[data-project-pos-table] td {
    vertical-align: middle;
}

#project-drawer .project-drawer-table--expenses th:nth-child(1),
[data-project-expenses-table] td:nth-child(1) {
    width: 120px;
    min-width: 120px;
}

#project-drawer .project-drawer-table--expenses th:nth-child(2),
[data-project-expenses-table] td:nth-child(2) {
    width: 120px;
    min-width: 120px;
}

#project-drawer .project-drawer-table--expenses th:nth-child(3),
[data-project-expenses-table] td:nth-child(3) {
    width: 140px;
    min-width: 140px;
}

#project-drawer .project-drawer-table--expenses th:nth-child(4),
[data-project-expenses-table] td:nth-child(4) {
    width: 180px;
    min-width: 180px;
}

#project-drawer .project-drawer-table--expenses th:nth-child(5),
[data-project-expenses-table] td:nth-child(5) {
    width: 110px;
    min-width: 110px;
}

#project-drawer .project-drawer-table--expenses th:nth-child(6),
[data-project-expenses-table] td:nth-child(6) {
    width: 130px;
    min-width: 130px;
}

#project-drawer .project-drawer-table--expenses th:nth-child(7),
[data-project-expenses-table] td:nth-child(7) {
    width: 110px;
    min-width: 110px;
}

#project-drawer .project-drawer-table--expenses th:nth-child(8),
[data-project-expenses-table] td:nth-child(8) {
    width: 176px;
    min-width: 176px;
    max-width: 176px;
}

#project-drawer .project-drawer-table--po th:nth-child(1),
[data-project-pos-table] td:nth-child(1) {
    width: 140px;
    min-width: 140px;
}

#project-drawer .project-drawer-table--po th:nth-child(2),
[data-project-pos-table] td:nth-child(2) {
    width: 180px;
    min-width: 180px;
}

#project-drawer .project-drawer-table--po th:nth-child(3),
[data-project-pos-table] td:nth-child(3) {
    width: 120px;
    min-width: 120px;
}

#project-drawer .project-drawer-table--po th:nth-child(4),
[data-project-pos-table] td:nth-child(4) {
    width: 120px;
    min-width: 120px;
}

#project-drawer .project-drawer-table--po th:nth-child(5),
[data-project-pos-table] td:nth-child(5) {
    width: 110px;
    min-width: 110px;
}

#project-drawer .project-drawer-table--po th:nth-child(6),
[data-project-pos-table] td:nth-child(6) {
    width: 72px;
    min-width: 72px;
    max-width: 72px;
}

.project-expense-form [data-project-receipt-drop].is-readonly {
    opacity: .6;
    pointer-events: none;
}

@media (max-width: 1200px) {
    .compact-project-deck {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .project-summary-deck--transactions {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .compact-project-deck {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .project-summary-deck--transactions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.project-pl-value {
    display: inline-grid;
    gap: 2px;
    min-width: 118px;
    padding: 6px 10px;
    border-radius: 8px;
    border: 1px solid transparent;
    line-height: 1.15;
    white-space: nowrap;
}

.project-pl-value b {
    font-size: 12px;
    font-weight: 700;
}

.project-pl-value small {
    color: currentColor;
    font-size: 11px;
    opacity: .8;
}

.project-pl-value.is-profit {
    background: #e9f8ef;
    border-color: #c8efd6;
    color: #047857;
}

.project-pl-value.is-loss {
    background: #fff1f2;
    border-color: #fecdd3;
    color: #be123c;
}

.project-status-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 120px;
    max-width: 140px;
    padding: 7px 10px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.15;
    text-align: center;
    white-space: normal;
}

.project-status-chip.is-ready {
    background: #e9f8ef;
    color: #047857;
}

.project-status-chip.is-paid {
    background: #e9f8ef;
    color: #047857;
}

.project-status-chip.is-procurement {
    background: #eef4ff;
    color: #2155d9;
}

.project-status-chip.is-billing {
    background: #f4ecff;
    color: #7c3aed;
}

.project-status-chip.is-open {
    background: #eaf3ff;
    color: #2155d9;
}

.project-status-chip.is-closed {
    background: #f3f4f6;
    color: #64748b;
}

.quotation-summary-row {
    margin-top: 10px;
}

.quotation-items-heading {
    display: grid;
    grid-template-columns: auto minmax(220px, 1fr) auto;
    align-items: center;
    gap: 12px;
}

.quotation-heading-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-left: auto;
    min-width: 0;
}

.quotation-items-heading .list-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
    flex: 0 0 auto;
}

.quotation-quick-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    max-width: 520px;
}

.quotation-quick-actions .secondary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 36px;
    padding: 0 12px;
    border-color: rgba(87, 155, 252, .28);
    background: #eef5ff;
    color: #2155d9;
    font-size: 12px;
    font-weight: 700;
}

.quotation-quick-actions .secondary-action:nth-child(2) {
    border-color: rgba(0, 194, 168, .3);
    background: #e9fbf7;
    color: #047857;
}

.quotation-quick-actions .secondary-action:nth-child(3) {
    border-color: rgba(162, 93, 220, .3);
    background: #f4edff;
    color: #7e22ce;
}

.quotation-quick-actions .secondary-action:hover {
    filter: brightness(.98);
    transform: translateY(-1px);
}

.quotation-quick-actions .secondary-action svg,
.quotation-items-heading .list-action svg {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
}

.quotation-summary-deck {
    grid-template-columns: repeat(7, minmax(120px, 1fr));
}

.quotation-summary-deck .is-contribution:has(.is-loss) {
    border-color: #fecdd3;
    background: #fff1f2;
}

#quote-drawer {
    max-width: calc(100vw - 18px);
    overflow-x: hidden;
}

#quote-drawer.is-opening .item-form {
    opacity: 0;
}

#quote-drawer .item-form {
    transition: opacity .14s ease;
}

#quote-drawer .item-form {
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
}

#quote-drawer .work-surface,
#quote-drawer .package-line,
#quote-drawer .package-lines,
#quote-drawer .quote-line,
#quote-drawer .rich-editor,
#quote-drawer .ts-wrapper {
    min-width: 0;
    max-width: 100%;
}

#quote-drawer .package-lines {
    gap: 0;
    margin-top: 0;
}

#quote-drawer .quote-import-box[hidden] {
    display: none !important;
}

#quote-drawer .form-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

#quote-drawer label small {
    display: block;
    margin-top: 5px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.25;
}

#quote-drawer .ts-wrapper.is-readonly,
#quote-drawer .ts-control.is-readonly {
    background: #f8fafc;
    color: var(--muted);
    cursor: not-allowed;
}

#quote-drawer .ts-wrapper.is-readonly {
    pointer-events: none;
}

#quote-drawer .ts-wrapper.is-readonly .ts-control,
#quote-drawer .ts-wrapper.is-readonly input {
    cursor: not-allowed !important;
    caret-color: transparent;
}

.quote-import-box {
    display: grid;
    grid-template-columns: minmax(220px, 360px) auto;
    gap: 10px;
    align-items: end;
    max-width: 620px;
    margin: 6px 0 12px;
}

.quote-import-box label {
    min-width: 0;
}

.quote-import-box .secondary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 42px;
    padding: 0 16px;
    white-space: nowrap;
}

.quote-import-box .secondary-action svg {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
}

.quick-create-panel {
    display: block;
    margin-top: 12px;
    margin-bottom: 12px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    width: 100%;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .08);
}

.quick-create-panel[hidden] {
    display: none !important;
}

.quick-create-panel.is-modal {
    position: fixed;
    inset: 0;
    z-index: 10030;
    display: grid !important;
    place-items: start center;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 56px 18px;
    border: 0;
    border-radius: 0;
    background: rgba(15, 23, 42, .42);
    overflow: auto;
}

.quick-create-panel.is-modal .quick-create-dialog {
    width: min(1080px, calc(100vw - 36px));
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .2);
}

.quick-create-panel.is-modal .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px 16px;
}

.quick-create-panel.is-modal .form-grid > label,
.quick-create-panel.is-modal .form-grid > .field-group {
    min-width: 0;
}

.quick-create-panel.is-modal .form-grid > .full-span {
    grid-column: 1 / -1;
}

#quote-drawer .quote-line-quick-actions {
    position: absolute;
    top: 12px;
    right: 120px;
    display: flex;
    gap: 6px;
    align-items: center;
}

#quote-drawer .quote-line-quick-actions button {
    min-height: 26px;
    padding: 4px 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: #52627a;
    font-size: 11px;
    font-weight: 700;
}

#quote-drawer .quote-line-quick-actions button:hover {
    color: var(--blue);
    border-color: rgba(87, 155, 252, .45);
    background: rgba(87, 155, 252, .08);
}

@media (max-width: 760px) {
    #quote-drawer .quote-line-quick-actions {
        position: static;
        grid-column: 1 / -1;
        justify-content: flex-start;
    }
}

@media (max-width: 1280px) {
    .package-summary-deck {
        grid-template-columns: repeat(2, minmax(150px, 1fr));
    }

    #quote-drawer.slide-drawer.wide-drawer,
    /* removed */

    #quote-drawer .form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #quote-drawer .quote-lead-card {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #quote-drawer .rich-editor-field,
    #quote-drawer .quote-import-box,
    #quote-drawer .package-lines,
    #quote-drawer .crop-editor,
    #quote-drawer .quotation-summary-row,
    #quote-drawer .form-actions,
    #quote-drawer .form-message {
        max-width: 100%;
    }
}

@media (max-width: 1100px) {
    .slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed .slide-drawer.wide-drawer {
        width: min(920px, calc(100vw - 96px));
        padding: 14px;
    }

    #package-drawer .form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 1366px) and (max-height: 900px) and (orientation: landscape) {
    #package-drawer .package-line {
        padding: 44px 46px 12px 12px;
    }

    #package-drawer .package-line.form-grid {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    #package-drawer .package-line label:nth-of-type(1) {
        grid-column: 1 / 5;
        grid-row: 1;
    }

    #package-drawer .package-line label:nth-of-type(2) {
        grid-column: 6 / 9;
        grid-row: 1;
    }

    #package-drawer .package-line label:nth-of-type(3) {
        grid-column: 9 / 13;
        grid-row: 1;
    }

    #package-drawer .package-line label:nth-of-type(4) {
        grid-column: 1 / 4;
        grid-row: 2;
    }

    #package-drawer .package-line label:nth-of-type(5) {
        grid-column: 4 / 8;
        grid-row: 2;
    }

    #package-drawer .package-line label:nth-of-type(6) {
        grid-column: 8 / 13;
        grid-row: 2;
    }

    #package-drawer .package-line .package-line-description {
        grid-column: 1 / 8;
        grid-row: 3;
        width: 100%;
    }

    #package-drawer .package-item-preview {
        grid-column: 5 / 6;
        grid-row: 1;
        justify-self: center;
        width: 64px;
    }

    #package-drawer .line-remove-cell {
        position: absolute;
        right: 12px;
        top: 74px;
        grid-column: auto;
        grid-row: auto;
        justify-self: end;
        align-self: end;
    }

    #package-drawer .package-line-fx {
        grid-column: 8 / 13;
        grid-row: 3;
        align-self: end;
    }

    #package-drawer [data-line-subtotal] {
        min-height: 38px;
        padding: 0 12px;
    }
}

@media (max-width: 760px) {
    .project-create-bar {
        grid-template-columns: 1fr;
    }

    .project-detail-meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .project-budget-form,
    .project-expense-form {
        grid-template-columns: 1fr;
    }

    .slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed .slide-drawer.wide-drawer {
        width: min(100vw, calc(100vw - 18px));
        padding: 12px;
    }

    .package-summary-row {
        grid-template-columns: 1fr;
    }

    .package-summary-deck {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) and (orientation: portrait) {
    #project-drawer .project-detail-meta {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #project-drawer .project-summary-deck--budget,
    #project-drawer .project-summary-deck--forecast {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #project-drawer .project-summary-deck--transactions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #package-drawer .package-line {
        padding: 44px 12px 12px;
    }

    #package-drawer .package-line.form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #package-drawer .package-line label {
        grid-column: auto;
        grid-row: auto;
    }

    #package-drawer .package-line label:nth-of-type(1) {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    #package-drawer .package-item-preview {
        grid-column: 1 / -1;
        grid-row: 2;
        justify-self: start;
        width: 64px;
    }

    #package-drawer .package-line label:nth-of-type(2) {
        grid-column: 1 / 2;
        grid-row: 3;
    }

    #package-drawer .package-line label:nth-of-type(3) {
        grid-column: 2 / 3;
        grid-row: 3;
    }

    #package-drawer .package-line label:nth-of-type(4) {
        grid-column: 1 / 2;
        grid-row: 4;
    }

    #package-drawer .package-line label:nth-of-type(5) {
        grid-column: 2 / 3;
        grid-row: 4;
    }

    #package-drawer .package-line label:nth-of-type(6) {
        grid-column: 1 / -1;
        grid-row: 5;
    }

    #package-drawer .package-line .package-line-description {
        grid-column: 1 / -1;
        grid-row: 6;
    }

    #package-drawer .package-line-fx {
        grid-column: 1 / -1;
        grid-row: 7;
        width: 100%;
    }

    #package-drawer .line-remove-cell {
        grid-column: 1 / -1;
        grid-row: 8;
    }

    #package-drawer .line-remove-cell {
        position: static;
        justify-self: end;
    }
}

@media (max-width: 640px) {
    #package-drawer .form-grid,
    #package-drawer .package-line.form-grid {
        grid-template-columns: 1fr;
    }

    #package-drawer .line-remove-cell {
        position: static;
        grid-column: 1 / -1;
        justify-self: end;
    }

    #package-drawer .package-line label,
    #package-drawer .package-item-preview,
    #package-drawer .package-line .package-line-description,
    #package-drawer .package-line-fx {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    #package-drawer .package-item-preview {
        justify-self: start;
    }

    .package-summary-deck {
        grid-template-columns: 1fr;
    }
}

/* Final quotation drawer guards for split-screen laptop widths. */
@media (max-width: 1280px) {
    #quote-drawer .form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #quote-drawer .package-line.form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #quote-drawer .package-line label,
    #quote-drawer .package-line label:nth-of-type(1),
    #quote-drawer .package-line label:nth-of-type(2),
    #quote-drawer .package-line label:nth-of-type(3),
    #quote-drawer .package-line label:nth-of-type(4),
    #quote-drawer .package-line label:nth-of-type(5),
    #quote-drawer .package-line label:nth-of-type(6) {
        grid-column: auto;
        grid-row: auto;
    }

    #quote-drawer .package-line .quote-line-description,
    #quote-drawer .package-line-fx,
    #quote-drawer .quote-line-image {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    #quote-drawer .line-remove-cell {
        position: absolute;
        top: 76px;
        right: 12px;
        grid-column: auto;
        grid-row: auto;
        justify-self: auto;
    }

    #quote-drawer .quote-line-quick-actions {
        position: static;
        grid-column: 1 / -1;
        justify-content: flex-start;
    }

    #quote-drawer .quote-import-box {
        grid-template-columns: minmax(0, 1fr) auto;
        max-width: 600px;
    }
}

@media (max-width: 760px) {
    body[data-quotations-page] .work-surface.table-surface > .surface-heading {
        display: flex;
        align-items: flex-start;
        gap: 12px;
        flex-wrap: wrap;
    }

    body[data-quotations-page] .work-surface.table-surface > .surface-heading > .icon-badge {
        flex: 0 0 auto;
    }

    body[data-quotations-page] .work-surface.table-surface > .surface-heading > div {
        flex: 1 1 auto;
        min-width: 0;
    }

    /* removed */

    #quote-drawer.slide-drawer.wide-drawer,
    /* removed */

    #quote-drawer .form-grid,
    #quote-drawer .quote-import-box {
        grid-template-columns: 1fr;
    }

    #quote-drawer .line-remove-cell {
        position: absolute;
        top: 70px;
        right: 10px;
    }

    #quote-drawer .quote-lead-card {
        grid-template-columns: 1fr;
    }

    #quote-drawer .quotation-items-heading {
        align-items: flex-start;
    }

    #quote-drawer .quotation-items-heading > div {
        min-width: 0;
    }

    #quote-drawer .quotation-quick-actions {
        grid-column: 1 / -1;
        grid-row: 2;
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
        align-items: center;
        gap: 8px;
        width: 100%;
        max-width: none;
        margin-left: auto;
        justify-self: end;
    }

    #quote-drawer .quotation-quick-actions .secondary-action {
        width: auto;
        min-width: 0;
        min-height: 42px;
        flex: 0 0 auto;
    }

    #quote-drawer .quotation-items-heading .list-action {
        grid-column: 1 / -1;
        grid-row: 3;
        width: auto;
        min-width: 0;
        margin-left: auto;
        justify-self: end;
    }
}

/* Quotation drawer viewport guard for iPad portrait and split-screen laptop. */
@media (max-width: 1500px) {
    #quote-drawer.slide-drawer.wide-drawer,
    /* removed */

    #quote-drawer .item-form,
    #quote-drawer .work-surface {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    #quote-drawer .form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #quote-drawer .quotation-summary-deck {
        grid-template-columns: repeat(4, minmax(120px, 1fr));
    }

    #quote-drawer .quote-import-box {
        grid-template-columns: minmax(0, 1fr) auto;
        max-width: 100%;
    }
}

@media (max-width: 820px) {
    #quote-drawer.slide-drawer.wide-drawer,
    /* removed */

    #quote-drawer .form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #quote-drawer .quote-import-box {
        grid-template-columns: 1fr !important;
    }

    #quote-drawer .quotation-summary-deck {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Final quotation layout lock: pin drawer to viewport and scroll only dense tables. */
@media (max-width: 1500px) {
    /* removed */

    /* removed */

    #quote-drawer {
        overflow-x: hidden;
    }

    #quote-drawer .item-form {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    #quote-drawer .quotation-summary-row {
        overflow-x: auto;
        padding-bottom: 4px;
    }

    #quote-drawer .quotation-summary-deck {
        display: grid;
        grid-template-columns: repeat(7, minmax(98px, 1fr));
        min-width: 760px;
        gap: 8px;
    }

    #quote-drawer .quotation-summary-deck strong {
        min-height: 72px;
        padding: 10px 12px;
    }

    #quote-drawer .quote-line-header,
    #quote-drawer .package-lines {
        min-width: 1120px;
    }

    #quote-drawer .quote-line-header,
    #quote-drawer .package-lines,
    #quote-drawer .quotation-expense-table {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    #quote-drawer .quotation-expense-table table {
        min-width: 820px;
    }
}

@media (max-width: 900px) {
    /* removed */

    #quote-drawer .quotation-summary-deck {
        grid-template-columns: repeat(7, minmax(104px, 1fr));
        min-width: 800px;
    }
}

/* Quotation item table uses one synchronized horizontal scroller. */
#quote-drawer .quote-line-scroll {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

#quote-drawer .quote-line-scroll .quote-line-header,
#quote-drawer .quote-line-scroll .package-lines {
    min-width: 1120px;
    overflow: visible;
}

#quote-drawer .quote-line-scroll .quote-line-header {
    margin-top: 18px;
}

/* removed */

#quote-drawer .item-form {
    overflow-x: hidden !important;
}

#quote-drawer .quote-import-box {
    grid-template-columns: minmax(0, 1fr) auto;
    max-width: 100%;
}

@media (max-width: 1200px) {
    #quote-drawer .quote-import-box {
        grid-template-columns: 1fr;
    }

    #quote-drawer .quote-import-box .secondary-action {
        justify-self: start;
    }

    #quote-drawer .quotation-items-heading {
        grid-template-columns: auto minmax(180px, 1fr) auto;
    }

    #quote-drawer .quotation-heading-actions {
        flex-wrap: wrap;
        justify-content: flex-end;
        max-width: 100%;
    }

    #quote-drawer .quotation-quick-actions {
        max-width: 360px;
    }

    .quick-create-panel.is-modal .form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    #quote-drawer .quotation-items-heading {
        grid-template-columns: auto 1fr;
    }

    #quote-drawer .quotation-heading-actions {
        grid-column: 1 / -1;
        justify-self: end;
    }
}

@media (max-width: 760px) {
    .quick-create-panel.is-modal .form-grid {
        grid-template-columns: 1fr;
    }
}

/* Compact import package action bar. */
#quote-drawer .quote-import-box {
    display: grid !important;
    grid-template-columns: minmax(180px, 230px) minmax(260px, 1fr) auto !important;
    align-items: end;
    gap: 12px;
    width: min(100%, 900px);
    max-width: 900px !important;
    margin: 10px 0 14px;
    padding: 12px;
    border: 1px solid #dbeafe;
    border-radius: 8px;
    background: #f8fbff;
}

#quote-drawer .quote-import-title {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

#quote-drawer .quote-import-icon {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    border-radius: 8px;
    background: #e9f8ef;
    color: #047857;
}

#quote-drawer .quote-import-title strong {
    display: block;
    color: var(--ink);
    font-size: 13px;
    font-weight: 700;
}

#quote-drawer .quote-import-title small {
    display: block;
    margin-top: 2px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.25;
}

#quote-drawer .quote-import-select span {
    font-size: 11px;
    font-weight: 700;
    color: var(--muted);
}

#quote-drawer .quote-import-button {
    min-height: 44px;
    padding: 0 18px;
    border-color: rgba(0, 194, 168, .35);
    background: #e9fbf7;
    color: #047857;
    font-weight: 700;
    white-space: nowrap;
}

#quote-drawer .quote-import-button:hover {
    background: #d8f7ef;
}

@media (max-width: 980px) {
    #quote-drawer .quote-import-box {
        grid-template-columns: 1fr !important;
        width: 100%;
    }

    #quote-drawer .quote-import-button {
        justify-self: start;
    }
}

/* Mobile navigation and quotation drawer lock. */
@media (max-width: 800px) {
    .admin-shell,
    .admin-shell.sidebar-collapsed {
        grid-template-columns: 1fr !important;
    }

    .main-panel {
        width: 100%;
        min-width: 0;
    }

    .drawer-backdrop,
    .admin-shell:not(.sidebar-collapsed) .drawer-backdrop,
    .admin-shell.sidebar-collapsed .drawer-backdrop,
    .admin-shell:not(.sidebar-collapsed) .drawer-backdrop[data-drawer-backdrop],
    .admin-shell.sidebar-collapsed .drawer-backdrop[data-drawer-backdrop] {
        left: 0 !important;
        right: 0 !important;
        inset-inline: 0 !important;
    }

    .slide-drawer,
    .slide-drawer.wide-drawer,
    .slide-drawer.open,
    .admin-shell:not(.sidebar-collapsed) .slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed .slide-drawer.wide-drawer,
    .admin-shell:not(.sidebar-collapsed) #quote-drawer.slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed #quote-drawer.slide-drawer.wide-drawer,
    .admin-shell:not(.sidebar-collapsed) #project-drawer.slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed #project-drawer.slide-drawer.wide-drawer,
    .admin-shell:not(.sidebar-collapsed) #package-drawer.slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed #package-drawer.slide-drawer.wide-drawer,
    /* removed */

    .sidebar,
    .admin-shell.sidebar-collapsed .sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 10010;
        display: block;
        width: min(320px, calc(100vw - 32px));
        height: 100dvh;
        padding: 18px 14px;
        border-right: 1px solid var(--line);
        border-bottom: 0;
        background: rgba(255, 255, 255, .98);
        box-shadow: 24px 0 60px rgba(15, 23, 42, .18);
        transform: translateX(-104%);
        transition: transform .2s ease;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .sidebar.open,
    .admin-shell.sidebar-collapsed .sidebar.open {
        transform: translateX(0);
    }

    .admin-shell.sidebar-collapsed .brand-lockup,
    .sidebar .brand-lockup {
        justify-content: flex-start;
    }

    .admin-shell.sidebar-collapsed .brand-lockup > span:last-child,
    .sidebar .brand-lockup > span:last-child {
        width: auto;
        min-width: 0;
        opacity: 1;
    }

    .admin-shell.sidebar-collapsed .nav-list a,
    .sidebar .nav-list a {
        justify-content: flex-start;
        gap: 12px;
        padding: 11px 12px;
        font-size: 14px;
    }

    .admin-shell.sidebar-collapsed .nav-group,
    .admin-shell.sidebar-collapsed .nav-group[open] {
        border: 1px solid rgba(203, 213, 225, .72);
        background: rgba(248, 250, 252, .72);
    }

    .admin-shell.sidebar-collapsed .nav-group summary,
    .sidebar .nav-group summary {
        display: flex;
    }

    .admin-shell.sidebar-collapsed .nav-group:not([open]) > .nav-group__items {
        display: none !important;
    }

    .admin-shell.sidebar-collapsed .nav-group__items,
    .sidebar .nav-group__items {
        gap: 4px;
        padding: 0 6px 6px;
    }

    .admin-shell.sidebar-collapsed .nav-list a svg,
    .sidebar .nav-list a svg {
        width: 19px;
        height: 19px;
        flex: 0 0 19px;
    }

    .topbar {
        position: relative;
        z-index: 20;
    }

    .drawer-backdrop {
        z-index: 10020;
    }

    .slide-drawer {
        z-index: 10030;
        inset: 0 !important;
        left: 0 !important;
        right: 0 !important;
        top: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        height: 100dvh;
        transform: translateX(105%) !important;
    }
    
    .slide-drawer.open {
        transform: translateX(0) !important;
    }

    #quote-drawer.slide-drawer.wide-drawer,
    /* removed */

    #quote-drawer .item-form {
        min-height: calc(100dvh - 20px);
        padding: 14px;
        overflow-x: hidden !important;
    }

    #quote-drawer .surface-heading {
        grid-template-columns: auto 1fr auto;
        gap: 10px;
    }

    #quote-drawer .surface-heading h2 {
        font-size: 21px;
    }

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */
}

@media (max-width: 560px) {
    .main-panel {
        padding: 12px;
    }

    .topbar {
        grid-template-columns: auto 1fr;
        gap: 10px;
    }

    .topbar > .icon-button[data-menu-toggle] {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
    }

    .topbar .title-block,
    .topbar .search-box,
    .topbar .user-area {
        grid-column: 1 / -1;
    }

    .topbar .title-block {
        grid-row: 2;
    }

    .user-area {
        justify-content: flex-end;
        gap: 10px;
        min-width: 0;
        overflow: visible;
    }

    .user-menu {
        max-width: 100%;
    }

    .user-menu__trigger {
        max-width: min(100%, 240px);
    }

    .user-menu__panel {
        right: 0;
        left: auto;
        max-width: calc(100vw - 32px);
    }

    /* removed */

    #quote-drawer .quotation-quick-actions,
    #quote-drawer .quotation-items-heading .list-action {
        justify-self: stretch;
    }

    #quote-drawer .quotation-quick-actions .secondary-action,
    #quote-drawer .quotation-items-heading .list-action {
        flex: 1 1 100%;
        width: 100%;
    }
}

/* Final quotations drawer + heading layout guard. */
@media (max-width: 1100px) {
    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */
}

@media (max-width: 560px) {
    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */
}

/* Smartphone hard lock: prevent quotation drawer from exceeding viewport width. */
@media (max-width: 560px) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    #quote-drawer.slide-drawer,
    #quote-drawer.slide-drawer.wide-drawer,
    #quote-drawer.slide-drawer.open,
    /* removed */

    #quote-drawer.slide-drawer.open {
        transform: translateX(0) !important;
    }

    #quote-drawer .work-surface,
    #quote-drawer .item-form {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 14px !important;
        box-sizing: border-box;
        overflow-x: hidden !important;
    }

    #quote-drawer .form-grid,
    #quote-drawer .form-grid label,
    #quote-drawer label,
    #quote-drawer input,
    #quote-drawer select,
    #quote-drawer textarea,
    #quote-drawer .ts-wrapper,
    #quote-drawer .ts-control,
    #quote-drawer .rich-editor,
    #quote-drawer .quote-lead-card,
    #quote-drawer .quote-client-review-card,
    #quote-drawer .quote-lock-notice,
    #quote-drawer .quote-client-review-grid,
    #quote-drawer .quotation-summary-row,
    #quote-drawer .quote-import-box,
    #quote-drawer .table-wrap {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    #quote-drawer .surface-heading {
        grid-template-columns: auto minmax(0, 1fr) auto !important;
    }

    #quote-drawer .surface-heading h2,
    #quote-drawer .surface-heading .eyebrow {
        overflow-wrap: anywhere;
    }

    #quote-drawer .quote-lock-notice {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Mobile quotation modal stack and heading layout. */
@media (max-width: 560px) {
    #quote-drawer .quotation-items-heading {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) !important;
        align-items: center;
        gap: 10px 12px;
    }

    #quote-drawer .quotation-items-heading .icon-badge {
        grid-column: 1;
        grid-row: 1;
    }

    #quote-drawer .quotation-items-heading > div:not(.quotation-heading-actions) {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
    }

    #quote-drawer .quotation-items-heading h2 {
        font-size: 20px;
        line-height: 1.15;
        overflow-wrap: normal;
        word-break: normal;
    }

    #quote-drawer .quotation-heading-actions {
        grid-column: 1 / -1;
        grid-row: 2;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch;
        gap: 8px;
        width: 100%;
        margin-left: 0;
        justify-self: stretch;
    }

    #quote-drawer .quotation-quick-actions {
        display: contents;
        width: auto;
        max-width: none;
    }

    #quote-drawer .quotation-quick-actions .secondary-action,
    #quote-drawer .quotation-items-heading .list-action {
        width: 100%;
        min-width: 0;
        min-height: 42px;
        padding-inline: 10px;
        justify-content: center;
        white-space: normal;
        text-align: center;
        line-height: 1.15;
    }

    .quote-line-modal-backdrop {
        z-index: 10080 !important;
    }

    .quote-line.quote-line-modal {
        z-index: 10090 !important;
        inset: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        max-height: 100dvh !important;
        border-radius: 0 !important;
        border: none !important;
        margin: 0 !important;
        transform: none !important;
        padding: 16px !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    .quote-line.quote-line-modal .quote-line-fields {
        grid-template-columns: 1fr !important;
    }

    .quote-line.quote-line-modal .quote-line-fields label,
    .quote-line.quote-line-modal .quote-line-fields .quote-line-description,
    .quote-line.quote-line-modal .quote-line-fields .package-line-fx,
    .quote-line.quote-line-modal .quote-line-fields .quote-line-image,
    .quote-line.quote-line-modal .quote-line-fields .quote-line-modal-actions {
        grid-column: 1 / -1 !important;
    }

    .quote-line.quote-line-modal .quote-line-image {
        grid-template-columns: 1fr !important;
    }

    .quote-line.quote-line-modal .quote-upload-drop {
        width: 100% !important;
    }

    .quick-create-panel.is-modal {
        z-index: 10100 !important;
        padding: 0 !important;
        margin: 0 !important;
        display: block !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    .quick-create-panel.is-modal .quick-create-dialog {
        width: 100vw !important;
        max-width: 100vw !important;
        min-height: 100dvh !important;
        padding: 16px !important;
        border: none !important;
        border-radius: 0 !important;
        margin: 0 !important;
    }

    .quick-create-panel.is-modal .form-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Keep quotation sub-modals above the full-screen quotation drawer on phones. */
.quote-expense-modal-open .project-expense-modal[data-quote-expense-modal] {
    z-index: 10110;
}

.quote-expense-modal-open .project-expense-modal[data-quote-expense-modal] .project-expense-modal-backdrop {
    position: fixed;
}

.quote-expense-modal-open .project-expense-modal[data-quote-expense-modal] .project-expense-form {
    z-index: 10111;
}

.line-rich-editor-body.is-invalid {
    border-color: #f97316;
    box-shadow: 0 0 0 3px rgba(249, 115, 22, .16);
}

@media (max-width: 560px) {
    .quote-expense-modal-open .project-expense-modal[data-quote-expense-modal],
    .project-expense-modal-open .project-expense-modal[data-package-expense-modal] {
        position: fixed !important;
        inset: 0 !important;
        display: grid !important;
        place-items: start stretch !important;
        width: 100dvw !important;
        height: 100dvh !important;
        padding: 0 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    .quote-expense-modal-open .project-expense-modal[data-quote-expense-modal] .project-expense-form,
    .project-expense-modal-open .project-expense-modal[data-package-expense-modal] .project-expense-form {
        width: 100% !important;
        min-height: 100dvh !important;
        max-width: none !important;
        max-height: none !important;
        grid-template-columns: 1fr !important;
        padding: 20px !important;
        border-radius: 0 !important;
        margin: 0 !important;
        overflow-y: auto !important;
    }

    .quote-expense-modal-open .project-expense-modal[data-quote-expense-modal] .double-span,
    .quote-expense-modal-open .project-expense-modal[data-quote-expense-modal] .full-span,
    .quote-expense-modal-open .project-expense-modal[data-quote-expense-modal] .quote-expense-field,
    .project-expense-modal-open .project-expense-modal[data-package-expense-modal] .double-span,
    .project-expense-modal-open .project-expense-modal[data-package-expense-modal] .full-span {
        grid-column: 1 / -1 !important;
    }

    .quote-expense-modal-open .project-expense-modal[data-quote-expense-modal] .project-expense-modal-backdrop,
    .project-expense-modal-open .project-expense-modal[data-package-expense-modal] .project-expense-modal-backdrop {
        position: fixed !important;
        inset: 0 !important;
    }
}

/* Quotation items stay table-like, matching the expenses table. */
#quote-drawer .quotation-items-table {
    border: 0;
    border-radius: 0;
    background: transparent;
    padding: 0;
    overflow-x: auto !important;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

#quote-drawer .quotation-items-table .quote-line-header,
#quote-drawer .quotation-items-table .package-lines,
#quote-drawer .quotation-items-table .quote-line,
#quote-drawer .quotation-items-table .quote-line-card {
    width: max-content;
    min-width: 1460px;
    max-width: none;
    overflow: visible !important;
}

#quote-drawer .quotation-items-table .quote-line.is-hidden-by-optional-filter {
    display: none !important;
}

#quote-drawer .quotation-items-table .quote-line .row-actions [hidden],
#quote-drawer .quotation-items-table .quote-line [data-line-remove][hidden],
#quote-drawer .quotation-items-table .quote-line .quote-line-card-drag[hidden] {
    display: none !important;
}

#quote-drawer .quotation-items-table .quote-line-header,
#quote-drawer .quotation-items-table .quote-line-card {
    display: grid !important;
    grid-template-columns: 28px 290px 260px 84px 120px 140px 140px 140px 150px 170px;
    align-items: center;
    gap: 14px;
}

#quote-drawer .quotation-items-table .quote-line-header > span:nth-child(3),
#quote-drawer .quotation-items-table .quote-line-card > .quote-line-cell-description {
    display: none !important;
}

#quote-drawer .quotation-items-table .quote-line-header {
    margin: 0;
    padding: 0 10px 10px;
    border-bottom: 1px solid var(--line);
}

#quote-drawer .quotation-items-table .package-lines {
    display: grid;
    gap: 0;
    margin-top: 0;
    width: max-content;
}

#quote-drawer .quotation-items-table .quote-line-card {
    min-height: 0;
    padding: 14px 10px;
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
}

#quote-drawer .quotation-items-table .quote-line-card > div,
#quote-drawer .quotation-items-table .quote-line-card > strong {
    min-width: 0;
}

#quote-drawer .quotation-items-table .quote-line-card > .quote-line-card-drag {
    grid-column: 1;
    justify-self: center;
}

#quote-drawer .quotation-items-table .quote-line-card > .quote-line-cell-item {
    grid-column: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

#quote-drawer .quotation-items-table .quote-line-card > .quote-line-cell-vendor {
    grid-column: 3;
}

#quote-drawer .quotation-items-table .quote-line-card > .quote-line-cell-qty {
    grid-column: 4;
}

#quote-drawer .quotation-items-table .quote-line-card > .quote-line-cell-cost {
    grid-column: 5;
}

#quote-drawer .quotation-items-table .quote-line-card > .quote-line-cell-discount {
    grid-column: 6;
}

#quote-drawer .quotation-items-table .quote-line-card > .quote-line-cell-revenue {
    grid-column: 7;
}

#quote-drawer .quotation-items-table .quote-line-card > .quote-line-cell-commission {
    grid-column: 8;
}

#quote-drawer .quotation-items-table .quote-line-card > .quote-line-cell-pl {
    grid-column: 9;
}

#quote-drawer .quotation-items-table .quote-line:last-child .quote-line-card {
    border-bottom: 1px solid var(--line);
}

#quote-drawer .quotation-items-table .quote-line-card .row-actions {
    grid-column: 10;
    justify-content: flex-end;
    min-width: 170px;
}

#quote-drawer .quotation-items-table .quote-line-card [data-line-card-total] {
    align-self: center;
    width: 100%;
    min-width: 150px;
}

#quote-drawer .quotation-items-table .budget-item-cell {
    min-width: 0;
}

#quote-drawer .quotation-items-table .budget-item-cell strong,
#quote-drawer .quotation-items-table .budget-item-cell small {
    overflow-wrap: normal;
    word-break: normal;
}

#quote-drawer .quotation-items-table .budget-item-cell strong {
    white-space: normal;
    margin-bottom: 4px;
}

#quote-drawer .quotation-items-table .budget-item-cell [data-line-card-meta] {
    display: block;
    width: 100%;
    margin-top: 0;
}

#quote-drawer .quotation-items-table .budget-item-cell small,
#quote-drawer .quotation-items-table [data-line-card-qty],
#quote-drawer .quotation-items-table [data-line-card-cost],
#quote-drawer .quotation-items-table [data-line-card-revenue],
#quote-drawer .quotation-items-table [data-line-card-commission] {
    white-space: nowrap;
}

#quote-drawer .quotation-items-table [data-line-card-vendor],
#quote-drawer .quotation-items-table [data-line-card-cost],
#quote-drawer .quotation-items-table [data-line-card-revenue],
#quote-drawer .quotation-items-table [data-line-card-commission] {
    display: block;
    overflow-wrap: break-word;
    word-break: normal;
}

#quote-drawer .quotation-items-table .quote-line-cell-vendor {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}

#quote-drawer .quotation-items-table .quote-line-cell-vendor small {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
}

#quote-drawer .quotation-expense-table th:first-child,
#quote-drawer .quotation-expense-table td:first-child {
    min-width: 160px;
    width: 160px;
    white-space: nowrap;
}

#package-drawer .quotation-items-table .quote-line-header,
#package-drawer .quotation-items-table .package-lines,
#package-drawer .quotation-items-table .package-line,
#package-drawer .quotation-items-table .quote-line-card {
    width: 100%;
    min-width: 1060px;
    max-width: none;
    overflow: visible !important;
}

#package-drawer .quotation-items-table .quote-line-header,
#package-drawer .quotation-items-table .quote-line-card {
    display: grid !important;
    grid-template-columns: 22px minmax(170px, 1.35fr) minmax(170px, 1.2fr) 56px minmax(104px, .78fr) minmax(112px, .82fr) minmax(112px, .82fr) minmax(120px, .86fr) minmax(124px, .82fr) minmax(136px, auto);
    align-items: center;
    gap: 10px;
}

#package-drawer .quotation-items-table .quote-line-header {
    margin: 0;
    padding: 0 10px 10px;
    border-bottom: 1px solid var(--line);
}

#package-drawer .quotation-items-table .package-lines {
    display: grid;
    gap: 0;
    margin-top: 0;
}

#package-drawer .quotation-items-table .package-line {
    position: relative;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

#package-drawer .quotation-items-table .quote-line-card {
    min-height: 0;
    padding: 14px 10px;
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
}

#package-drawer .quotation-items-table .quote-line-card .row-actions {
    justify-content: flex-end;
}

#package-drawer .quotation-items-table .quote-line-card [data-line-card-total] {
    display: grid;
    gap: 2px;
    min-width: 112px;
    width: fit-content;
    padding: 9px 12px;
    border: 1px solid #a7f3d0;
    border-radius: 8px;
    background: #ecfdf5;
    color: #007f5f;
}

#package-drawer .quotation-items-table .quote-line-card [data-line-card-total] small {
    color: #008f6f;
    font-size: 11px;
}

#package-drawer .package-line > .line-drag-handle,
#package-drawer .package-line > .quote-line-modal-title,
#package-drawer .package-line > .quote-line-modal-close,
#package-drawer .package-line > .quote-line-fields {
    display: none;
}

#package-drawer .package-line.package-line-modal {
    position: fixed;
    z-index: 1100;
    inset: clamp(10px, 3vh, 28px) clamp(10px, 3vw, 32px) auto;
    display: block;
    max-height: calc(100vh - 56px);
    overflow: auto;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 24px 80px rgba(15, 23, 42, .28);
}

#package-drawer .package-line.package-line-modal > .quote-line-card,
#package-drawer .package-line.package-line-modal > .line-drag-handle {
    display: none !important;
}

#package-drawer .package-line.package-line-modal > .quote-line-modal-title,
#package-drawer .package-line.package-line-modal > .quote-line-modal-close,
#package-drawer .package-line.package-line-modal > .quote-line-fields {
    display: block;
}

#package-drawer .package-line.package-line-modal > .quote-line-modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
}

#package-drawer .package-line.package-line-modal .quote-line-fields {
    display: grid;
    grid-template-columns: minmax(180px, 1.2fr) 54px minmax(180px, 1.15fr) minmax(210px, 1.2fr) 90px 150px minmax(140px, 1fr) minmax(120px, 1fr);
    gap: 12px;
    align-items: end;
    margin-top: 16px;
}

.package-line.package-line-modal {
    position: fixed;
    z-index: 10110;
    top: 50%;
    left: 50%;
    right: auto;
    bottom: auto;
    transform: translate(-50%, -50%);
    display: grid;
    width: min(1180px, calc(100vw - 44px));
    max-height: calc(100vh - 44px);
    overflow: auto;
    padding: 18px;
    grid-template-columns: 1fr auto;
    align-content: start;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcff;
    box-shadow: 0 24px 80px rgba(15, 23, 42, .24);
}

.package-line.package-line-modal > .quote-line-card,
.package-line.package-line-modal > .line-drag-handle {
    display: none !important;
}

.package-line.package-line-modal > .quote-line-modal-title,
.package-line.package-line-modal > .quote-line-modal-close,
.package-line.package-line-modal > .quote-line-fields {
    display: block;
}

.package-line.package-line-modal > .quote-line-modal-close {
    justify-self: end;
}

.package-line.package-line-modal .quote-line-fields {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 10px;
    align-items: start;
    margin-top: 16px;
}
.package-line.package-line-modal .quote-line-fields label:nth-of-type(1) { grid-column: 1 / span 4; }
.package-line.package-line-modal .quote-line-fields label:nth-of-type(2) { grid-column: 5 / span 3; }
.package-line.package-line-modal .quote-line-fields label:nth-of-type(3) { grid-column: 8 / span 3; }
.package-line.package-line-modal .quote-line-fields label:nth-of-type(4) { grid-column: 11 / span 2; }
.package-line.package-line-modal .quote-line-fields label:nth-of-type(5) { grid-column: 1 / span 4; }
.package-line.package-line-modal .quote-line-fields label:nth-of-type(6) { grid-column: 5 / span 4; }
.package-line.package-line-modal .quote-line-fields label:nth-of-type(7) { grid-column: 9 / span 4; }

.package-line.package-line-modal .quote-line-description {
    grid-column: 1 / span 4;
}

.package-line.package-line-modal .package-line-fx {
    grid-column: 4 / span 3;
    align-self: start;
    min-height: 0;
    padding: 10px 12px;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    background: #eff6ff;
    color: #385072;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
}

.package-line.package-line-modal .quote-line-image,
.package-line.package-line-modal .quote-line-modal-actions {
    grid-column: 1 / -1;
}

.package-line.package-line-modal .quote-line-image {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
}

.package-line.package-line-modal .quote-upload-drop {
    width: 220px;
    min-height: 58px;
    padding: 10px 12px;
}

.package-line.package-line-modal [data-line-subtotal] {
    display: flex;
    align-items: center;
    min-height: 46px;
    padding: 8px 12px;
    border: 1px solid #d7dbea;
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
}

.package-line.package-line-modal .line-rich-editor-body {
    min-height: 46px;
}

body.quote-line-modal-open::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 1099;
    background: rgba(15, 23, 42, .32);
}

body.quote-line-modal-open .quote-line-modal-backdrop {
    z-index: 1099;
}

.quote-line.quote-line-modal {
    z-index: 10110;
}

.journal-manual-panel {
    width: min(1080px, calc(100vw - 64px));
    max-height: calc(100vh - 48px);
    overflow: auto;
}

.journal-manual-panel .data-layout {
    margin-bottom: 18px;
}

.journal-manual-panel .table-wrap input[type="text"],
.journal-manual-panel .table-wrap input[type="date"] {
    width: 100%;
    min-width: 120px;
}

.journal-manual-panel .row-actions {
    white-space: nowrap;
}

.detail-inline-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 18px 0 0;
}

@media (max-width: 920px) {
    .journal-manual-panel {
        width: calc(100vw - 28px);
        max-height: calc(100vh - 28px);
    }
}

@media (max-width: 640px) {
    .journal-manual-panel {
        width: 100vw;
        max-height: 100dvh;
        border-radius: 0;
    }
}

@media (max-width: 920px) {
    .package-line.package-line-modal .quote-line-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .package-line.package-line-modal .quote-line-fields > label {
        grid-column: auto !important;
    }

    .package-line.package-line-modal .quote-line-description,
    .package-line.package-line-modal .package-line-fx,
    .package-line.package-line-modal .quote-line-image,
    .package-line.package-line-modal .quote-line-modal-actions {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 640px) {
    .package-line.package-line-modal {
        inset: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        max-height: 100dvh !important;
        border-radius: 0 !important;
        border: none !important;
        margin: 0 !important;
        transform: none !important;
        padding: 16px !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    .package-line.package-line-modal .quote-line-fields,
    .package-line.package-line-modal .quote-line-image {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .package-line.package-line-modal .quote-line-fields > label {
        grid-column: 1 / -1 !important;
    }

    .package-line.package-line-modal .quote-upload-drop {
        width: 100%;
    }
}

@media (max-width: 920px) {
    #quote-drawer .quotation-items-table .quote-line-header {
        display: grid !important;
    }

    #quote-drawer .quotation-items-table .quote-line-card > div:nth-of-type(n+2),
    #quote-drawer .quotation-items-table .quote-line-card > strong[data-line-card-total],
    #package-drawer .quotation-items-table .quote-line-card > div:nth-of-type(n+2),
    #package-drawer .quotation-items-table .quote-line-card > strong[data-line-card-total] {
        grid-column: auto;
    }
}

@media (max-width: 920px) {
    /* Sembunyikan scrollbar untuk semua elemen di layar HP/Tablet agar terasa seperti Native App */
    * {
        scrollbar-width: none !important;
        -ms-overflow-style: none !important;
    }
    *::-webkit-scrollbar {
        display: none !important;
    }
}


@media (max-width: 640px) {
    .settings-logo-row {
    display: flex;
    margin-bottom: 18px;
}
}


.settings-logo-upload-wrapper {
    position: relative;
    display: block;
    cursor: pointer;
    width: 140px;
    flex-shrink: 0;
}

.settings-logo-upload-wrapper input[type="file"] {
    position: absolute;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    top: 0;
    left: 0;
    z-index: 2;
}

.settings-logo-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    opacity: 0;
    transition: opacity 0.2s;
    font-size: 13px;
    font-weight: 500;
    z-index: 1;
    pointer-events: none;
}

.settings-logo-upload-wrapper:hover .settings-logo-overlay {
    opacity: 1;
}

/* Settings tabbed layout */
.settings-tabs {
    display: grid;
    gap: 18px;
}

.settings-tabs__nav {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 5px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #f8fafc;
}

.settings-tabs__nav button {
    flex: 0 0 auto;
    min-height: 40px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    font-weight: 900;
    padding: 0 16px;
}

.settings-tabs__nav button.is-active {
    background: #fff;
    color: #2155d9;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .08);
}

.settings-tabs__panel {
    display: grid;
    gap: 18px;
}

.settings-tabs__panel[hidden] {
    display: none !important;
}

.settings-panel-heading {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}

.settings-panel-heading h3 {
    margin: 0;
    color: var(--ink);
    font-size: 18px;
    line-height: 1.25;
}

.settings-panel-heading p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.5;
}

.settings-tabs .settings-logo-row {
    margin-bottom: 0;
}

.settings-tabs .tox-tinymce {
    border-color: #d7dbea;
    border-radius: 8px;
}

.whatsapp-gateway-card {
    display: grid;
    grid-template-columns: minmax(220px, 280px) 1fr;
    gap: 28px;
    align-items: stretch;
    margin-bottom: 20px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: linear-gradient(135deg, #f8fbff 0%, #fff 54%, #f5fff8 100%);
    box-shadow: 0 16px 38px rgba(15, 23, 42, .06);
}

.whatsapp-gateway-card__pairing {
    display: grid;
    justify-items: center;
    align-content: center;
    gap: 10px;
    min-height: 300px;
    padding: 24px 18px;
    border: 1px solid rgba(203, 213, 225, .75);
    border-radius: 10px;
    background: rgba(255, 255, 255, .78);
    text-align: center;
}

.whatsapp-device-orbit {
    display: none;
    position: relative;
    width: 106px;
    height: 106px;
    place-items: center;
    margin-bottom: 4px;
}

.whatsapp-device-orbit__ring,
.whatsapp-device-orbit__pulse {
    position: absolute;
    inset: 8px;
    border-radius: 50%;
    border: 1px solid rgba(20, 128, 74, .25);
}

.whatsapp-device-orbit__ring {
    animation: whatsappSpin 5.5s linear infinite;
}

.whatsapp-device-orbit__ring::before,
.whatsapp-device-orbit__ring::after {
    content: "";
    position: absolute;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #18a058;
    box-shadow: 0 0 0 5px rgba(24, 160, 88, .12);
}

.whatsapp-device-orbit__ring::before {
    top: 3px;
    left: 17px;
}

.whatsapp-device-orbit__ring::after {
    right: 8px;
    bottom: 12px;
}

.whatsapp-device-orbit__pulse {
    inset: 0;
    border: 0;
    background: rgba(34, 197, 94, .12);
    animation: whatsappPulse 1.8s ease-out infinite;
}

.whatsapp-device-orbit__mark {
    position: relative;
    display: grid;
    place-items: center;
    width: 70px;
    height: 70px;
    border-radius: 22px;
    background: #18a058;
    color: #fff;
    box-shadow: 0 18px 34px rgba(24, 160, 88, .28);
}

.whatsapp-device-orbit__mark svg {
    width: 44px;
    height: 44px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.whatsapp-gateway-card.is-connected .whatsapp-device-orbit {
    display: grid;
}

.whatsapp-gateway-card.is-connected .whatsapp-gateway-card__init {
    display: none;
}

@keyframes whatsappPulse {
    0% { transform: scale(.76); opacity: .78; }
    72% { transform: scale(1.08); opacity: .12; }
    100% { transform: scale(1.14); opacity: 0; }
}

@keyframes whatsappSpin {
    to { transform: rotate(360deg); }
}

.whatsapp-gateway-card__init {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border: 3px solid #1463ff;
    border-radius: 50%;
    background: transparent;
    color: #1463ff;
    cursor: pointer;
}

.whatsapp-gateway-card__init svg {
    width: 32px;
    height: 32px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.whatsapp-gateway-card__pairing p,
.whatsapp-gateway-card__status p {
    margin: 0;
    color: var(--muted);
}

.link-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 0;
    background: transparent;
    color: #145cff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    padding: 0;
}

.link-button svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.whatsapp-gateway-card__status {
    display: grid;
    align-content: start;
    gap: 12px;
    min-width: 0;
    padding: 8px 8px 0;
}

.whatsapp-gateway-card__heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}

.whatsapp-gateway-card__heading h4 {
    margin: 0;
    font-size: 1rem;
    color: var(--ink);
}

.whatsapp-gateway-card__status hr {
    width: 100%;
    border: 0;
    border-top: 1px solid var(--line);
    margin: 8px 0;
}

.whatsapp-gateway-card__connection {
    display: flex;
    align-items: center;
    gap: 7px;
}

.whatsapp-gateway-card__dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #14804a;
    position: relative;
}

.whatsapp-gateway-card__dot::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 3px;
    width: 5px;
    height: 8px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.whatsapp-gateway-card__connection.is-error .whatsapp-gateway-card__dot {
    background: var(--danger);
}

.whatsapp-gateway-card__connection.is-error .whatsapp-gateway-card__dot::after {
    display: none;
}

.whatsapp-gateway-card__hint {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    line-height: 1.45;
    padding: 10px 12px;
    border-radius: 8px;
    background: rgba(248, 250, 252, .85);
}

.whatsapp-gateway-card__hint svg {
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    margin-top: 2px;
}

.whatsapp-gateway-card__qr {
    width: min(190px, 100%);
    min-height: 190px;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.whatsapp-gateway-card__qr img,
.whatsapp-gateway-card__qr svg {
    display: block;
    width: 100%;
    height: auto;
}

.whatsapp-gateway-card__test,
.whatsapp-gateway-card__image-test,
.whatsapp-gateway-card__attachment-test {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)) auto auto;
    gap: 10px;
    align-items: end;
    margin-top: 0;
}

.whatsapp-test-section {
    display: grid;
    gap: 9px;
    padding-top: 12px;
    border-top: 1px dashed var(--line);
}

.whatsapp-test-section__title {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--ink);
    font-size: 12px;
    font-weight: 900;
}

.whatsapp-test-section__title::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #18a058;
    box-shadow: 0 0 0 4px rgba(24, 160, 88, .1);
}

.whatsapp-gateway-card__image-test,
.whatsapp-gateway-card__attachment-test {
    grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
}

.whatsapp-gateway-card__attachment-test {
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
}

.whatsapp-config-panel {
    display: grid;
    gap: 14px;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .045);
}

.whatsapp-config-panel__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line);
}

.whatsapp-config-panel__heading h4 {
    margin: 0;
    color: var(--ink);
    font-size: 15px;
}

.whatsapp-config-panel__heading p {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.whatsapp-config-panel__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    gap: 14px;
}

.whatsapp-token-field {
    position: relative;
}

.whatsapp-token-field input {
    padding-right: 46px;
}

.whatsapp-token-field button {
    position: absolute;
    right: 10px;
    bottom: 9px;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 8px;
    background: #f1f5f9;
    color: #475569;
    cursor: pointer;
}

.whatsapp-token-field button:hover {
    background: #e2e8f0;
    color: #0f172a;
}

.whatsapp-token-field button svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 640px) {
    .settings-tabs__nav {
        margin-inline: -4px;
    }

    .settings-tabs__nav button {
        padding: 0 13px;
    }

    .whatsapp-gateway-card {
        grid-template-columns: 1fr;
        padding: 24px 18px;
    }

    .whatsapp-gateway-card__heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .whatsapp-gateway-card__test,
    .whatsapp-gateway-card__image-test,
    .whatsapp-gateway-card__attachment-test {
        grid-template-columns: 1fr;
    }

    .whatsapp-config-panel__grid {
        grid-template-columns: 1fr;
    }
}



/* Roles & Permissions UI */
.permissions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1.5rem;
    margin-top: 1rem;
}

.permission-card {
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 8px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.permission-card h4 {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-base);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--border-subtle);
    padding-bottom: 0.5rem;
}

.permission-card h4 .select-all-btn {
    background: none;
    border: 1px solid var(--border-subtle);
    border-radius: 4px;
    color: var(--brand-teal);
    font-size: 0.75rem;
    font-weight: 500;
    cursor: pointer;
    padding: 2px 8px;
    text-transform: none;
}
.permission-card h4 .select-all-btn:hover {
    background: var(--bg-subtle);
}

.permission-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.85rem;
    color: var(--text-base);
    cursor: pointer;
    margin: 0;
}

.permission-item input[type="checkbox"] {
    width: 16px !important;
    height: 16px !important;
    margin: 0 !important;
    cursor: pointer;
    accent-color: var(--brand-teal);
    appearance: auto !important;
    -webkit-appearance: checkbox !important;
}

.role-form {
    min-height: calc(100vh - 40px);
}

.role-form .surface-content {
    display: grid;
    gap: 16px;
}

.role-permission-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 6px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line);
}

.role-permission-heading h3 {
    margin: 0;
    font-size: 16px;
}

.role-permission-heading span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.role-dual-select {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px;
    min-height: 520px;
}

.role-dual-select__panel {
    display: grid;
    grid-template-rows: auto auto auto minmax(0, 1fr);
    gap: 10px;
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.role-dual-select__panel header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 40px;
}

.role-dual-select__panel header div {
    display: grid;
    gap: 2px;
}

.role-dual-select__panel header strong {
    color: var(--ink);
    font-size: 14px;
}

.role-dual-select__panel header small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.compact-action {
    min-height: 32px;
    padding: 7px 10px;
    font-size: 12px;
}

.role-permission-search input {
    min-height: 40px;
}

.role-dual-select__groups {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 0;
}

.role-dual-select__groups button {
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #f8fafc;
    color: var(--muted);
    cursor: pointer;
    font-size: 12px;
    font-weight: 700;
    padding: 6px 8px;
}

.role-dual-select__groups button:hover {
    border-color: rgba(87, 155, 252, .55);
    color: var(--brand-blue);
}

.role-dual-select__list {
    display: grid;
    align-content: start;
    gap: 6px;
    min-height: 360px;
    max-height: calc(100vh - 360px);
    overflow: auto;
    padding-right: 4px;
}

.role-dual-select__group {
    margin: 8px 0 2px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.role-permission-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    text-align: left;
}

.role-permission-row:hover {
    border-color: rgba(87, 155, 252, .55);
    background: #f8fbff;
}

.role-permission-row span:first-child {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.role-permission-row strong {
    color: var(--ink);
    font-size: 13px;
    overflow-wrap: anywhere;
}

.role-permission-row small {
    color: var(--muted);
    font-size: 11px;
    overflow-wrap: anywhere;
}

.role-permission-row__action {
    display: grid;
    flex: 0 0 28px;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 7px;
    background: #eef4ff;
    color: #2f6fdb;
    font-weight: 900;
}

.role-dual-select__empty {
    display: grid;
    min-height: 120px;
    place-items: center;
    border: 1px dashed var(--line);
    border-radius: 8px;
    color: var(--muted);
}

@media (max-width: 900px) {
    .role-dual-select {
        grid-template-columns: 1fr;
    }

    .role-dual-select__list {
        max-height: 320px;
    }
}

/* Catalog Share */
.catalog-share-surface {
    display: grid;
    gap: 16px;
}

.catalog-share-note {
    border: 1px solid rgba(87, 155, 252, .3);
    border-radius: 8px;
    background: #eff6ff;
    color: #23456f;
    font-size: 13px;
    line-height: 1.5;
    padding: 12px 14px;
}

.catalog-share-list {
    display: grid;
    gap: 14px;
}

.catalog-share-card {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.catalog-share-card > header,
.catalog-share-scope header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.catalog-share-card > header div,
.catalog-share-scope header div {
    display: grid;
    gap: 2px;
}

.catalog-share-card > header strong,
.catalog-share-scope header strong {
    color: var(--ink);
    font-size: 15px;
}

.catalog-share-card > header small,
.catalog-share-scope header small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.catalog-share-scopes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.catalog-share-scope {
    display: grid;
    gap: 10px;
    align-content: start;
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfdff;
}

.catalog-share-scope header {
    align-items: flex-start;
    min-height: 72px;
}

.catalog-share-scope .primary-action {
    white-space: nowrap;
}

.catalog-share-viewers {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}

.catalog-share-viewer {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 54px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f8fafc;
    cursor: pointer;
}

.catalog-share-viewer input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--brand-teal);
}

.catalog-share-viewer span {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.catalog-share-viewer strong {
    color: var(--ink);
    font-size: 13px;
    overflow-wrap: anywhere;
}

.catalog-share-viewer small {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
}

@media (max-width: 640px) {
    .catalog-share-card > header,
    .catalog-share-scope header {
        align-items: stretch;
        flex-direction: column;
    }

    .catalog-share-card header .primary-action {
        width: 100%;
    }
}

@media (max-width: 1180px) {
    .catalog-share-scopes {
        grid-template-columns: 1fr;
    }
}

.swal-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    text-align: left;
}

.swal-form-grid label {
    display: grid;
    gap: 6px;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 700;
}

.swal-form-grid label:last-child {
    grid-column: 1 / -1;
}

.swal-form-grid .swal2-input,
.swal-form-grid .swal2-select,
.swal-form-grid .swal2-textarea {
    margin: 0;
    width: 100%;
    box-sizing: border-box;
}

.swal-form-grid .swal2-select {
    height: 44px;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 0 12px;
    background: #fff;
    color: var(--ink);
    font: inherit;
}

.swal-commission-picker {
    grid-column: 1 / -1;
    text-align: left;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
    overflow: hidden;
}

.swal-commission-picker__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px 12px;
    border-bottom: 1px solid var(--line);
    background: rgba(240, 245, 255, 0.45);
}

.swal-commission-picker__header p {
    margin: 0 0 4px;
    color: var(--ink);
    font-size: 14px;
    font-weight: 800;
}

.swal-commission-picker__header small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
}

.swal-commission-picker__count {
    flex-shrink: 0;
    padding: 6px 10px;
    border-radius: 999px;
    background: #eaf3ff;
    color: var(--blue);
    font-size: 11px;
    font-weight: 800;
}

.swal-commission-picker__list {
    display: grid;
    gap: 0;
    max-height: 320px;
    overflow: auto;
}

.swal-commission-item {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-top: 1px solid rgba(215, 223, 238, 0.72);
    cursor: pointer;
    transition: background .18s ease, border-color .18s ease;
}

.swal-commission-item:first-child {
    border-top: 0;
}

.swal-commission-item:hover {
    background: rgba(93, 141, 255, 0.04);
}

.swal-commission-item__check {
    position: relative;
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.swal-commission-item input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.swal-commission-item__box {
    width: 18px;
    height: 18px;
    border: 1.5px solid #c7d2e7;
    border-radius: 6px;
    background: #fff;
    position: relative;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
}

.swal-commission-item input[type="checkbox"]:checked + .swal-commission-item__box {
    background: linear-gradient(135deg, var(--blue), var(--teal));
    border-color: transparent;
}

.swal-commission-item input[type="checkbox"]:checked + .swal-commission-item__box::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 1px;
    width: 4px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.journal-source-pill {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

.journal-source-pill.neutral {
    background: #eef3fb;
    color: #45607f;
}

.journal-source-pill.cash-in {
    background: #e7f8ef;
    color: #0d8c5a;
}

.journal-source-pill.cash-out {
    background: #feeceb;
    color: #c2413b;
}

.journal-source-pill.reversed {
    background: #f1ebff;
    color: #7c3aed;
}

.journal-amount {
    display: inline-flex;
    align-items: center;
    font-weight: 700;
    white-space: nowrap;
}

.journal-amount.cash-in {
    color: #0d8c5a;
}

.journal-amount.cash-out {
    color: #c2413b;
}

.journal-amount.reversed {
    color: #7c3aed;
}

.journal-balance-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 120px;
    min-height: 30px;
    padding: 6px 10px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.3;
    white-space: nowrap;
}

.journal-balance-chip.is-balanced {
    background: #e7f8ed;
    border-color: #b7ebc5;
    color: #19723a;
}

.journal-balance-chip.is-unbalanced {
    background: #fff4e5;
    border-color: #ffd8a8;
    color: #b45309;
}

.swal-commission-item__body {
    display: grid;
    gap: 4px;
    min-width: 0;
    overflow: hidden;
}

.swal-commission-item__body strong,
.swal-commission-item__body small {
    display: block;
    min-width: 0;
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
}

.swal-commission-item__body strong {
    color: var(--ink);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.35;
    max-width: 100%;
}

.swal-commission-item__body small {
    color: var(--muted);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
}

.swal-commission-item__amount {
    align-self: center;
    white-space: nowrap;
    color: var(--ink);
    font-size: 13px;
    font-weight: 800;
    text-align: right;
}

.swal-commission-item[hidden] {
    display: none !important;
}

.ap-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.ap-summary-grid .po-meta-card {
    min-height: 92px;
}

.finance-link-card {
    cursor: pointer;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.finance-link-card:hover,
.finance-link-card:focus-visible {
    border-color: rgba(74, 107, 255, 0.28);
    box-shadow: 0 10px 22px rgba(23, 36, 79, 0.08);
    transform: translateY(-1px);
    outline: none;
}

.finance-overview-surface {
    display: grid;
    gap: 22px;
}

.finance-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(320px, 0.9fr);
    gap: 18px;
    align-items: stretch;
}

.finance-hero__heading {
    display: flex;
    align-items: flex-start;
    height: 100%;
    min-height: 144px;
    padding: 20px 22px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background:
        linear-gradient(135deg, rgba(74, 107, 255, 0.04), rgba(23, 190, 187, 0.03)),
        #fff;
}

.finance-hero__copy {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.6;
    max-width: 58ch;
}

.finance-filter-panel {
    display: grid;
    gap: 14px;
    align-content: start;
    align-self: stretch;
    min-height: 100%;
    padding: 18px 18px 16px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fbfcff;
}

.finance-filter-panel__label {
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.finance-filter-panel__fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.finance-section {
    display: grid;
    gap: 12px;
}

.finance-section__head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
}

.finance-section__head h3 {
    margin: 2px 0 0;
    font-size: 14px;
    line-height: 1.3;
}

.quote-line-option-toggle > span {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.quote-line-subtotal-field {
    cursor: default;
}

.project-expense-form {
    max-width: 980px;
    gap: 1.1rem;
    padding: 24px;
}

.project-expense-form .project-budget-form-head {
    margin-bottom: 4px;
}

.project-expense-form .project-budget-form-head .icon-close {
    margin-left: auto;
}

.project-expense-form .project-receipt-drop {
    min-height: 78px;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.project-budget-form input[readonly],
.project-budget-form textarea[readonly] {
    background-color: #f1f5f9 !important;
    color: #475569;
    cursor: default;
}

.project-po-detail-modal {
    position: fixed;
    inset: 0;
    z-index: 230;
    display: grid;
    place-items: center;
    padding: 22px;
}

.project-po-detail-modal[hidden] {
    display: none !important;
}

.project-po-detail-panel {
    position: relative;
    z-index: 1;
    width: min(1120px, calc(100vw - 44px));
    max-height: calc(100vh - 44px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fbfcff;
    box-shadow: 0 24px 80px rgba(15, 23, 42, .18);
}

.project-po-detail-header {
    flex: 0 0 auto;
    padding: 24px;
    border-bottom: 1px solid var(--line);
}

.project-po-detail-header .drawer-actions {
    margin-left: auto;
}

.project-po-detail-body {
    min-height: 0;
    overflow: auto;
    padding: 24px;
}

.finance-period-layout {
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
}

.finance-period-card {
    min-height: 100%;
}

.finance-period-card--list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.finance-period-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.finance-period-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.finance-period-empty {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
}

.finance-period-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}

.finance-period-row.is-reopened {
    background: #faf7ff;
}

.finance-period-row__main {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.finance-period-row__main strong {
    font-size: 14px;
    color: var(--ink);
}

.finance-period-row__main small {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.5;
}

.finance-period-status {
    display: inline-flex;
    width: fit-content;
    padding: 3px 9px;
    border-radius: 999px;
    background: #eef2ff;
    color: #4f46e5;
    font-size: 11px;
    font-weight: 700;
}

.finance-period-row.is-reopened .finance-period-status {
    background: #f3e8ff;
    color: #7c3aed;
}

.audit-context-preview {
    width: 100%;
    max-height: 520px;
    margin: 0;
    padding: 16px;
    overflow: auto;
    border: 1px solid var(--border-subtle);
    border-radius: 8px;
    background: var(--bg-muted);
    color: var(--text-base);
    font-size: 12px;
    line-height: 1.6;
    white-space: pre-wrap;
    word-break: break-word;
}

.finance-overview-grid {
    display: grid;
    gap: 14px;
}

.finance-overview-grid--primary {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.finance-overview-grid--secondary {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.finance-kpi-card {
    display: grid;
    gap: 8px;
    min-height: 104px;
    padding: 16px 16px 14px;
    border-radius: 12px;
    background: #fff;
    align-content: start;
}

.finance-kpi-card span {
    letter-spacing: 0.02em;
}

.finance-kpi-card__label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.finance-kpi-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 7px;
    background: #f4f7fb;
    color: #5e6b85;
    flex: 0 0 24px;
}

.finance-kpi-card__icon svg {
    width: 14px;
    height: 14px;
    stroke: currentColor;
    stroke-width: 1.9;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.finance-kpi-card strong {
    font-size: 18px;
    line-height: 1.18;
    font-weight: 800;
    letter-spacing: 0;
}

.finance-kpi-card small {
    font-size: 11px;
    line-height: 1.5;
}

.finance-kpi-card__hint {
    margin-top: auto;
    color: #4a6bff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
}

.finance-link-card:hover .finance-kpi-card__hint,
.finance-link-card:focus-visible .finance-kpi-card__hint {
    text-decoration: underline;
}

.finance-kpi-card--accent {
    background: linear-gradient(180deg, rgba(23, 190, 187, 0.07), rgba(74, 107, 255, 0.04));
    border-color: rgba(23, 190, 187, 0.18);
}

.finance-kpi-card--accent .finance-kpi-card__icon {
    background: rgba(23, 190, 187, 0.12);
    color: #148c8a;
}

.ap-summary-grid small,
.compact-bill-balance small {
    color: var(--muted);
    font-weight: 700;
}

.inline-date-filter {
    display: grid;
    gap: 4px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    min-width: 150px;
}

.inline-date-filter input {
    width: 100%;
    height: 44px;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 0 12px;
    background: #fff;
    color: var(--ink);
    font: inherit;
}

@media (max-width: 1220px) {
    .finance-hero {
        grid-template-columns: 1fr;
    }

    .finance-period-layout {
        grid-template-columns: 1fr;
    }

    .finance-overview-grid--primary,
    .finance-overview-grid--secondary {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 920px) {
    .finance-filter-panel__fields {
        grid-template-columns: 1fr;
    }

    .finance-overview-grid--primary,
    .finance-overview-grid--secondary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .finance-kpi-card strong {
        font-size: 17px;
    }
}

@media (max-width: 640px) {
    .finance-hero__heading,
    .finance-filter-panel,
    .finance-kpi-card {
        padding: 16px;
    }

    .finance-overview-grid--primary,
    .finance-overview-grid--secondary {
        grid-template-columns: 1fr;
    }
}

.ar-date-filters {
    margin-top: 10px;
    justify-content: flex-start;
}

.ar-date-filters .inline-date-filter {
    min-width: 220px;
}

.ar-table-wrap table {
    min-width: 1180px;
}

.ar-table-wrap th:nth-child(1),
.ar-table-wrap td:nth-child(1) {
    min-width: 170px;
}

.ar-table-wrap th:nth-child(2),
.ar-table-wrap td:nth-child(2) {
    min-width: 160px;
}

.ar-table-wrap th:nth-child(3),
.ar-table-wrap td:nth-child(3) {
    min-width: 140px;
}

.ar-table-wrap th:nth-child(4),
.ar-table-wrap td:nth-child(4) {
    min-width: 150px;
}

.ar-table-wrap th:nth-child(5),
.ar-table-wrap td:nth-child(5) {
    min-width: 110px;
}

.ar-table-wrap th:nth-child(6),
.ar-table-wrap td:nth-child(6),
.ar-table-wrap th:nth-child(7),
.ar-table-wrap td:nth-child(7),
.ar-table-wrap th:nth-child(8),
.ar-table-wrap td:nth-child(8) {
    min-width: 130px;
}

.ar-table-wrap th:nth-child(9),
.ar-table-wrap td:nth-child(9) {
    min-width: 120px;
}

.ar-table-wrap td:nth-child(5),
.ar-table-wrap td:nth-child(6),
.ar-table-wrap td:nth-child(7),
.ar-table-wrap td:nth-child(8),
.ar-table-wrap td:nth-child(9) {
    white-space: normal;
}

@media (max-width: 980px) {
    .ap-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ar-date-filters {
        gap: 12px;
    }
}

@media (max-width: 640px) {
    .ap-summary-grid {
        grid-template-columns: 1fr;
    }

    .inline-date-filter {
        min-width: 100%;
    }

    .ar-date-filters .inline-date-filter {
        min-width: 100%;
    }

    .swal-form-grid {
        grid-template-columns: 1fr;
    }

    .swal-commission-picker__header {
        flex-direction: column;
        align-items: flex-start;
    }

    .swal-commission-picker__count {
        align-self: flex-start;
    }

    .swal-commission-item {
        grid-template-columns: 28px minmax(0, 1fr);
    }

    .swal-commission-item__amount {
        grid-column: 2;
        text-align: left;
        padding-left: 0;
    }
}

.tree__label {
    width: 100%;
    display: block !important;
    flex: 0 0 auto;
}

.tree__collapse {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 18px;
    height: 18px;
    color: #64748b;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    z-index: 30;
}

.tree__collapse svg {
    width: 12px;
    height: 12px;
    display: block;
    opacity: 1 !important;
    fill: currentColor !important;
    stroke: none !important;
}

sortable-tree-node > .tree__subnodes:empty {
    display: none !important;
}

sortable-tree-node > .tree__subnodes:empty + .tree__collapse {
    display: none !important;
}

sortable-tree-node:not([open]) > .tree__subnodes {
    display: none !important;
}

sortable-tree-node[open] > .tree__subnodes {
    display: flex !important;
    flex-direction: column !important;
}

sortable-tree-node,
.tree__subnodes,
.project-operations-tree-root {
    width: 100% !important;
}


/* Modern Modal Form Layout */
.project-operation-form [data-project-operation-form-title] {
    margin: 0;
    padding: 20px 24px;
    font-size: 18px;
    font-weight: 700;
    color: var(--ink);
    border-bottom: 1px solid var(--line);
    background: #fff;
    flex-shrink: 0;
}

.project-operation-form-grid {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 24px;
    overflow-y: auto;
    flex: 1;
}

.project-operation-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 20px;
}

.project-operation-form label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
}

.project-operation-form label.full-span {
    grid-column: 1 / -1;
}

.project-operation-form label > span {
    font-size: 12px;
    font-weight: 600;
    color: var(--secondary-text);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.project-operation-form input,
.project-operation-form select,
.project-operation-form textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-size: 14px;
    color: var(--text);
    background: #fff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.project-operation-form input:focus,
.project-operation-form select:focus,
.project-operation-form textarea:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
    outline: none;
}

.project-operation-form textarea {
    resize: vertical;
    min-height: 80px;
}

.project-operation-details summary {
    font-size: 13px;
    font-weight: 600;
    color: var(--primary);
    cursor: pointer;
    margin-bottom: 16px;
    user-select: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.project-operation-details summary::before {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    border-left: 6px solid currentColor;
    transition: transform 0.2s;
}

.project-operation-details[open] summary::before {
    transform: rotate(90deg);
}

.project-operation-form-actions {
    padding: 16px 24px;
    border-top: 1px solid var(--line);
    background: #f9fafb;
    border-radius: 0 0 16px 16px;
    flex-shrink: 0;
}

.cms-menu-tree {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.cms-menu-intro {
    margin: 0 0 18px;
}

.cms-menu-group {
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
}

.cms-menu-group__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 18px 22px;
    border-bottom: 1px solid var(--line);
    background: #fbfdff;
}

.cms-menu-group__header h3 {
    margin: 4px 0 0;
    font-size: 18px;
    color: var(--ink);
}

.cms-menu-group__badges {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.cms-menu-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px;
}

.cms-menu-card {
    border: 1px solid #dbe3f5;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);
    overflow: hidden;
}

.cms-menu-node {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    padding: 18px 18px 18px 16px;
}

.cms-menu-node.is-child {
    margin-left: 18px;
    border: 1px solid #e7eefb;
    border-radius: 14px;
    background: #fcfdff;
    box-shadow: none;
}

.cms-menu-node__handle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    color: #64748b;
    cursor: grab;
}

.cms-menu-node__handle svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cms-menu-node__body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cms-menu-node__title-row {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 16px;
}

.cms-menu-node__title-wrap {
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.cms-menu-node__title-wrap strong {
    font-size: 15px;
    font-weight: 700;
    color: var(--ink);
}

.cms-menu-node__slug {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    background: #f4f7fc;
    color: #64748b;
    font-size: 12px;
    line-height: 1.4;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cms-menu-node__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
    color: #64748b;
    font-size: 12px;
}

.cms-menu-node__meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: #f8fafc;
}

.cms-menu-node__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
}

.cms-menu-node__actions .status-pill {
    flex-shrink: 0;
}

.cms-menu-node__actions .secondary-action {
    white-space: nowrap;
}

.cms-menu-parent-note {
    margin-top: -10px;
    margin-bottom: 2px;
}

.cms-menu-subtree {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0 18px 18px 42px;
    padding: 14px;
    border-radius: 14px;
    background: linear-gradient(180deg, #fcfdff 0%, #f8fbff 100%);
    border: 1px dashed #d8e4fb;
}

.cms-menu-subtree__empty {
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.75);
    color: #94a3b8;
    font-size: 13px;
}

@media (max-width: 980px) {
    .cms-menu-node {
        grid-template-columns: 24px minmax(0, 1fr);
    }

    .cms-menu-node__actions {
        grid-column: 2;
        justify-content: flex-start;
    }

    .cms-menu-subtree {
        margin-left: 18px;
    }
}

@media (max-width: 640px) {
    .cms-menu-group__header,
    .cms-menu-list {
        padding: 16px;
    }

    .cms-menu-group__header {
        flex-direction: column;
        align-items: flex-start;
    }

    .cms-menu-group__badges {
        width: 100%;
    }

    .cms-menu-node,
    .cms-menu-node.is-child {
        margin-left: 0;
        padding: 14px;
    }

    .cms-menu-node__title-row,
    .cms-menu-node__title-wrap,
    .cms-menu-node__actions {
        width: 100%;
    }

    .cms-menu-node__title-row {
        flex-direction: column;
        align-items: flex-start;
    }

.cms-menu-node__title-wrap {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}

/* CMS Packages final layout overrides. Keep these after the generic form-grid rules. */
.form-grid .cms-package-source-row .cms-package-featured-toggle {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    min-height: 46px;
    width: auto;
    padding: 0 14px;
    margin: 0;
}

.form-grid .cms-package-source-row .cms-package-featured-toggle input {
    position: static !important;
    width: 16px !important;
    height: 16px !important;
    min-height: 16px !important;
    margin: 0 !important;
    opacity: 1 !important;
}

.form-grid .cms-package-source-row .cms-package-featured-toggle span {
    display: inline !important;
    margin: 0 !important;
    color: inherit;
    line-height: 1 !important;
}

.cms-facts-panel .cms-package-item-actions,
.form-grid .cms-facts-panel .cms-package-item-actions,
.cms-facts-panel .cms-package-item-actions.list-controls,
.form-grid .cms-facts-panel .cms-package-item-actions.list-controls {
    display: flex !important;
    justify-content: flex-start !important;
    margin-left: 0 !important;
    width: 100%;
}

/* CMS Packages Public Items EOF overrides. */
.cms-package-item-picker .cms-package-item-picker__header {
    display: grid !important;
    grid-template-columns: 28px 36px 72px minmax(0, 1fr) 88px !important;
    gap: 12px !important;
    align-items: center !important;
    padding: 0 12px 6px !important;
}

.cms-package-item-picker .cms-package-item-option {
    display: grid !important;
    flex-direction: row !important;
    grid-template-columns: 28px 36px 72px minmax(0, 1fr) 88px !important;
    gap: 12px !important;
    align-items: center !important;
    justify-items: stretch !important;
    min-height: 86px !important;
    padding: 10px 12px !important;
    margin: 0 !important;
    text-align: left !important;
}

.cms-package-item-picker .cms-package-item-option__handle {
    grid-column: 1 !important;
    justify-self: center !important;
    align-self: center !important;
    width: 18px !important;
    height: 26px !important;
    border-radius: 6px;
    background-image: radial-gradient(circle, #64748b 1.5px, transparent 1.7px);
    background-position: 3px 4px;
    background-size: 7px 7px;
    cursor: grab;
    opacity: 0.75;
}

.cms-package-item-picker .cms-package-item-option__handle:active {
    cursor: grabbing;
}

.cms-package-item-picker .cms-package-item-option:hover .cms-package-item-option__handle {
    opacity: 1;
}

.cms-package-item-picker .cms-package-item-option input[data-cms-package-public-item] {
    appearance: auto;
    -webkit-appearance: auto;
    grid-column: 2 !important;
    justify-self: center !important;
    align-self: center !important;
    width: 16px !important;
    height: 16px !important;
    min-height: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 2px !important;
    box-shadow: none !important;
}

.cms-package-item-picker .cms-package-item-option__media {
    grid-column: 3 !important;
    justify-self: start !important;
    align-self: center !important;
    width: 72px !important;
    height: 64px !important;
}

.cms-package-item-picker .cms-package-item-option__body {
    grid-column: 4 !important;
    align-self: center !important;
}

.cms-package-item-picker .cms-package-item-option__state {
    grid-column: 5 !important;
    justify-self: start !important;
    align-self: center !important;
}
*** End of File

/* CMS Packages drag handle: match quotation module. */
.cms-package-item-picker .cms-package-item-option .cms-package-item-option__handle {
    width: 20px !important;
    height: 28px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--muted) !important;
    cursor: grab !important;
    display: inline-grid !important;
    place-items: center !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    opacity: 1 !important;
    padding: 0 !important;
    text-align: center !important;
}

.cms-package-item-picker .cms-package-item-option .cms-package-item-option__handle::before {
    content: none !important;
    display: none !important;
}

body .cms-package-item-picker .cms-package-item-option .cms-package-item-option__handle {
    position: relative !important;
    width: 24px !important;
    height: 34px !important;
    border-radius: 8px;
    cursor: grab;
    opacity: 0.9;
}

body .cms-package-item-picker .cms-package-item-option .cms-package-item-option__handle::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #475569;
    box-shadow:
        0 -8px 0 #475569,
        0 8px 0 #475569,
        8px -8px 0 #475569,
        8px 0 0 #475569,
        8px 8px 0 #475569;
    transform: translate(-6px, -50%);
}

body .cms-package-item-picker .cms-package-item-option .cms-package-item-option__handle:active {
    cursor: grabbing;
}

body .cms-package-item-picker .cms-package-item-option:hover .cms-package-item-option__handle {
    background: #f1f5f9;
    opacity: 1;
}

body .cms-package-item-picker .cms-package-item-option .cms-package-item-option__handle {
    position: relative !important;
    width: 24px !important;
    height: 34px !important;
    border-radius: 8px;
    cursor: grab;
    opacity: 0.9;
}

body .cms-package-item-picker .cms-package-item-option .cms-package-item-option__handle::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #475569;
    box-shadow:
        0 -8px 0 #475569,
        0 8px 0 #475569,
        8px -8px 0 #475569,
        8px 0 0 #475569,
        8px 8px 0 #475569;
    transform: translate(-6px, -50%);
}

body .cms-package-item-picker .cms-package-item-option .cms-package-item-option__handle:active {
    cursor: grabbing;
}

body .cms-package-item-picker .cms-package-item-option:hover .cms-package-item-option__handle {
    background: #f1f5f9;
    opacity: 1;
}

/* CMS Packages Public Items final desktop overrides. */
.cms-package-item-picker .cms-package-item-picker__header {
    display: grid !important;
    grid-template-columns: 28px 36px 72px minmax(0, 1fr) 88px !important;
    gap: 12px !important;
    align-items: center !important;
    padding: 0 12px 6px !important;
}

.cms-package-item-picker .cms-package-item-option {
    display: grid !important;
    flex-direction: row !important;
    grid-template-columns: 28px 36px 72px minmax(0, 1fr) 88px !important;
    gap: 12px !important;
    align-items: center !important;
    justify-items: stretch !important;
    min-height: 86px !important;
    padding: 10px 12px !important;
    margin: 0 !important;
    text-align: left !important;
}

.cms-package-item-picker .cms-package-item-option__handle {
    grid-column: 1 !important;
    justify-self: center !important;
    align-self: center !important;
    width: 20px !important;
    height: 28px !important;
}

.cms-package-item-picker .cms-package-item-option input[data-cms-package-public-item] {
    appearance: auto;
    -webkit-appearance: auto;
    grid-column: 2 !important;
    justify-self: center !important;
    align-self: center !important;
    width: 16px !important;
    height: 16px !important;
    min-height: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 2px !important;
    box-shadow: none !important;
}

.cms-package-item-picker .cms-package-item-option__media {
    grid-column: 3 !important;
    justify-self: start !important;
    align-self: center !important;
    width: 72px !important;
    height: 64px !important;
}

.cms-package-item-picker .cms-package-item-option__body {
    grid-column: 4 !important;
    align-self: center !important;
}

.cms-package-item-picker .cms-package-item-option__state {
    grid-column: 5 !important;
    justify-self: start !important;
    align-self: center !important;
}

/* CMS Packages final overrides. Keep this block at the end so generic form/list styles cannot win. */
.form-grid .cms-package-source-row .cms-package-featured-toggle {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    min-height: 46px;
    width: auto;
    padding: 0 14px;
    margin: 0;
}

.form-grid .cms-package-source-row .cms-package-featured-toggle input {
    position: static !important;
    width: 16px !important;
    height: 16px !important;
    min-height: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 1 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.form-grid .cms-package-source-row .cms-package-featured-toggle span {
    display: inline !important;
    margin: 0 !important;
    color: inherit;
    line-height: 1 !important;
}

.cms-facts-panel .cms-package-item-actions,
.form-grid .cms-facts-panel .cms-package-item-actions,
.cms-facts-panel .cms-package-item-actions.list-controls,
.form-grid .cms-facts-panel .cms-package-item-actions.list-controls {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    margin-left: 0 !important;
    width: 100%;
}

.cms-facts-panel .cms-package-item-actions .list-action,
.form-grid .cms-facts-panel .cms-package-item-actions .list-action,
.cms-package-item-actions .secondary-action {
    margin-left: 0 !important;
}

.cms-package-item-picker .cms-package-item-picker__header {
    display: grid !important;
    grid-template-columns: 28px 36px 72px minmax(0, 1fr) 88px !important;
    gap: 12px !important;
    align-items: center !important;
    padding: 0 12px 6px !important;
}

.cms-package-item-picker .cms-package-item-option {
    display: grid !important;
    flex-direction: row !important;
    grid-template-columns: 28px 36px 72px minmax(0, 1fr) 88px !important;
    gap: 12px !important;
    align-items: center !important;
    justify-items: stretch !important;
    min-height: 86px !important;
    padding: 10px 12px !important;
    margin: 0 !important;
    text-align: left !important;
}

.cms-package-item-picker .cms-package-item-option__handle {
    grid-column: 1 !important;
    justify-self: center !important;
    align-self: center !important;
    width: 20px !important;
}

.cms-package-item-picker .cms-package-item-option input[data-cms-package-public-item] {
    appearance: auto;
    -webkit-appearance: auto;
    grid-column: 2 !important;
    justify-self: center !important;
    align-self: center !important;
    width: 16px !important;
    height: 16px !important;
    min-height: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 2px !important;
    box-shadow: none !important;
}

.cms-package-item-picker .cms-package-item-option__media {
    grid-column: 3 !important;
    justify-self: start !important;
    align-self: center !important;
    width: 72px !important;
    height: 64px !important;
}

.cms-package-item-picker .cms-package-item-option__body {
    grid-column: 4 !important;
    align-self: center !important;
}

.cms-package-item-picker .cms-package-item-option__state {
    grid-column: 5 !important;
    justify-self: start !important;
    align-self: center !important;
}

.cms-facts-panel .cms-package-item-actions .list-action,
.form-grid .cms-facts-panel .cms-package-item-actions .list-action {
    margin-left: 0 !important;
}

    .cms-menu-node__slug {
        max-width: 100%;
        white-space: normal;
        word-break: break-word;
    }

    .cms-menu-subtree {
        margin: 0 0 14px;
        padding: 12px;
    }
}

/* CMS Packages desktop-safe final overrides. */
.form-grid .cms-package-source-row .cms-package-featured-toggle {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    min-height: 46px;
    width: auto;
    padding: 0 14px;
    margin: 0;
}

.form-grid .cms-package-source-row .cms-package-featured-toggle input {
    position: static !important;
    width: 16px !important;
    height: 16px !important;
    min-height: 16px !important;
    margin: 0 !important;
    opacity: 1 !important;
}

.form-grid .cms-package-source-row .cms-package-featured-toggle span {
    display: inline !important;
    margin: 0 !important;
    color: inherit;
    line-height: 1 !important;
}

.cms-facts-panel .cms-package-item-actions.list-controls,
.form-grid .cms-facts-panel .cms-package-item-actions.list-controls {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin-left: 0 !important;
    width: 100%;
}

.cms-facts-panel .cms-package-item-actions .list-action,
.form-grid .cms-facts-panel .cms-package-item-actions .list-action,
.cms-package-item-actions .secondary-action {
    margin-left: 0 !important;
}

.cms-package-item-picker .cms-package-item-picker__header {
    display: grid !important;
    grid-template-columns: 28px 36px 72px minmax(0, 1fr) 88px !important;
    gap: 12px !important;
    align-items: center !important;
    padding: 0 12px 6px !important;
}

.cms-package-item-picker .cms-package-item-option {
    display: grid !important;
    flex-direction: row !important;
    grid-template-columns: 28px 36px 72px minmax(0, 1fr) 88px !important;
    gap: 12px !important;
    align-items: center !important;
    justify-items: stretch !important;
    min-height: 86px !important;
    padding: 10px 12px !important;
    margin: 0 !important;
    text-align: left !important;
}

.cms-package-item-picker .cms-package-item-option__handle {
    grid-column: 1 !important;
    justify-self: center !important;
    align-self: center !important;
    position: relative !important;
    width: 24px !important;
    height: 34px !important;
    border-radius: 8px;
    cursor: grab;
    opacity: 0.9;
}

.cms-package-item-picker .cms-package-item-option__handle::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #475569;
    box-shadow:
        0 -8px 0 #475569,
        0 8px 0 #475569,
        8px -8px 0 #475569,
        8px 0 0 #475569,
        8px 8px 0 #475569;
    transform: translate(-6px, -50%);
}

.cms-package-item-picker .cms-package-item-option__handle:active {
    cursor: grabbing;
}

.cms-package-item-picker .cms-package-item-option:hover .cms-package-item-option__handle {
    background: #f1f5f9;
    opacity: 1;
}

.cms-package-item-picker .cms-package-item-option input[data-cms-package-public-item] {
    appearance: auto;
    -webkit-appearance: auto;
    grid-column: 2 !important;
    justify-self: center !important;
    align-self: center !important;
    width: 16px !important;
    height: 16px !important;
    min-height: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border-radius: 2px !important;
    box-shadow: none !important;
}

.cms-package-item-picker .cms-package-item-option__media {
    grid-column: 3 !important;
    justify-self: start !important;
    align-self: center !important;
    width: 72px !important;
    height: 64px !important;
}

.cms-package-item-picker .cms-package-item-option__body {
    grid-column: 4 !important;
    align-self: center !important;
}

.cms-package-item-picker .cms-package-item-option__state {
    grid-column: 5 !important;
    justify-self: start !important;
    align-self: center !important;
}

/* CMS Packages drag handle: match quotation module. */
.cms-package-item-picker .cms-package-item-option .cms-package-item-option__handle {
    width: 20px !important;
    height: 28px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--muted) !important;
    cursor: grab !important;
    display: inline-grid !important;
    place-items: center !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    opacity: 1 !important;
    padding: 0 !important;
    text-align: center !important;
}

.cms-package-item-picker .cms-package-item-option .cms-package-item-option__handle::before {
    content: none !important;
    display: none !important;
}

/* CMS Gallery */
.cms-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 1.25rem;
    padding-top: 1rem;
}

.cms-gallery-view-toggle {
    margin-left: 0;
}

.cms-gallery-view-toggle svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cms-gallery-grid.is-list-view {
    grid-template-columns: 1fr;
    gap: 0.75rem;
}

.cms-gallery-grid.is-loading {
    cursor: progress;
}

.cms-gallery-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--surface-1);
    border: none;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    transition: transform 0.2s, box-shadow 0.2s;
}

.cms-gallery-grid.is-list-view .cms-gallery-card {
    display: grid;
    grid-template-columns: 164px minmax(0, 1fr) auto;
    align-items: center;
}

.cms-gallery-card--loading {
    pointer-events: none;
    transform: none !important;
}

.cms-gallery-skeleton {
    position: relative;
    display: block;
    overflow: hidden;
    background: linear-gradient(90deg, #eef2f7 0%, #f8fafc 45%, #eef2f7 90%);
    background-size: 220% 100%;
    animation: cms-gallery-shimmer 1.1s ease-in-out infinite;
}

.cms-gallery-skeleton.is-image {
    width: 100%;
    aspect-ratio: 4/3;
}

.cms-gallery-skeleton-body {
    padding: 0.75rem;
}

.cms-gallery-skeleton.is-title {
    width: 72%;
    height: 14px;
    border-radius: 999px;
}

.cms-gallery-skeleton.is-meta {
    width: 46%;
    height: 10px;
    margin-top: 8px;
    border-radius: 999px;
}

.cms-gallery-skeleton.is-action {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    border-radius: 8px;
}

@keyframes cms-gallery-shimmer {
    from {
        background-position: 120% 0;
    }

    to {
        background-position: -120% 0;
    }
}

.cms-gallery-card.is-selected {
    box-shadow: 0 0 0 2px var(--primary), 0 4px 12px rgba(0, 0, 0, 0.08);
}

.cms-gallery-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.cms-gallery-card.is-selected:hover {
    box-shadow: 0 0 0 2px var(--primary), 0 4px 12px rgba(0, 0, 0, 0.1);
}

.cms-gallery-card__select {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: auto;
    min-height: 34px;
    padding: 6px 9px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: var(--text-1);
    font-size: 0.78rem;
    font-weight: 700;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.14);
}

.cms-gallery-card__select input,
.cms-gallery-select-all input {
    width: 16px;
    height: 16px;
    min-height: 16px;
    margin: 0;
    padding: 0;
}

.cms-gallery-card__preview {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}

.cms-gallery-card__preview img,
.cms-gallery-card img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    background: var(--surface-3);
}

.cms-gallery-grid.is-list-view .cms-gallery-card__preview img,
.cms-gallery-grid.is-list-view .cms-gallery-card > .cms-gallery-skeleton.is-image {
    height: 112px;
    aspect-ratio: auto;
}

.cms-gallery-grid.is-list-view .cms-gallery-card__select {
    top: 8px;
    left: 8px;
}

.cms-gallery-card > div:not(.row-actions) {
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
}

.cms-gallery-card div strong {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-1);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cms-gallery-card div small {
    font-size: 0.75rem;
    color: var(--text-2);
}

.cms-gallery-card .row-actions {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0 0.75rem 0.75rem 0.75rem;
    gap: 0.35rem;
    flex-wrap: wrap;
    margin-top: auto;
}

.cms-gallery-grid.is-list-view .cms-gallery-card .row-actions {
    align-self: stretch;
    align-content: center;
    min-width: 196px;
    padding: 0.75rem;
}

.cms-gallery-grid.is-list-view .cms-gallery-card--loading .row-actions {
    align-self: center;
}

.cms-gallery-card .row-actions button {
    display: inline-grid;
    place-items: center;
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    padding: 0;
    margin: 0;
    border-radius: 8px;
    background: var(--surface-2);
    border: 1px solid var(--line);
    color: var(--text-2);
    cursor: pointer;
    transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

.cms-gallery-card .row-actions button svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cms-gallery-card .row-actions button:hover {
    background: #fff;
    border-color: color-mix(in srgb, var(--primary) 42%, var(--line));
    color: var(--primary);
    transform: translateY(-1px);
}

.cms-gallery-card .row-actions button.is-danger {
    color: #c2410c;
}

.cms-gallery-card .row-actions button.is-danger:hover {
    border-color: rgba(194, 65, 12, 0.34);
    color: #b42318;
}

@media (max-width: 760px) {
    .cms-gallery-view-toggle {
        margin-left: 0;
    }

    .cms-gallery-grid.is-list-view .cms-gallery-card {
        grid-template-columns: 112px minmax(0, 1fr);
    }

    .cms-gallery-grid.is-list-view .cms-gallery-card .row-actions {
        grid-column: 1 / -1;
        min-width: 0;
        padding-top: 0;
    }
}

.cms-gallery-select-all {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-1);
}

.cms-gallery-bulk-actions {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    margin-left: auto;
}

.cms-gallery-bulk-actions span {
    color: var(--text-2);
    font-size: 0.86rem;
    font-weight: 700;
}

.danger-action {
    color: #b42318 !important;
    border-color: #fecaca !important;
    background: #fff5f5 !important;
}

.swal-form-grid {
    display: grid;
    gap: 12px;
    text-align: left;
}

.swal-form-grid label {
    display: grid;
    gap: 6px;
    color: #334155;
    font-size: 0.9rem;
    font-weight: 700;
}

.swal-form-grid input,
.swal-form-grid select,
.swal-form-grid textarea {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid #d8e2f0;
    border-radius: 8px;
    font: inherit;
}

.cms-gallery-preview-grid { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; }
.cms-gallery-preview-grid img { width: 80px; height: 80px; object-fit: cover; border-radius: 4px; border: 1px solid var(--border); cursor: pointer; transition: opacity 0.2s; }
.cms-gallery-preview-grid img:hover { opacity: 0.8; }

.cms-gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 32px 72px;
    background: rgba(15, 23, 42, 0.86);
}

.cms-gallery-lightbox.open {
    display: flex;
}

.cms-gallery-lightbox__figure {
    width: min(1120px, 100%);
    max-height: calc(100vh - 64px);
    margin: 0;
    display: grid;
    gap: 14px;
}

.cms-gallery-lightbox__figure img {
    width: 100%;
    max-height: calc(100vh - 150px);
    object-fit: contain;
    border-radius: 8px;
    background: #020617;
    box-shadow: 0 24px 72px rgba(0, 0, 0, 0.42);
}

.cms-gallery-lightbox__figure figcaption {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    color: #f8fafc;
}

.cms-gallery-lightbox__figure strong,
.cms-gallery-lightbox__figure span {
    overflow-wrap: anywhere;
}

.cms-gallery-lightbox__figure span {
    color: #cbd5e1;
    font-size: 0.9rem;
}

.cms-gallery-lightbox__close,
.cms-gallery-lightbox__nav {
    position: absolute;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(15, 23, 42, 0.68);
    color: #fff;
    cursor: pointer;
}

.cms-gallery-lightbox__close {
    top: 20px;
    right: 20px;
    width: 44px;
    height: 44px;
    border-radius: 8px;
    font-weight: 800;
}

.cms-gallery-lightbox__nav {
    top: 50%;
    width: 48px;
    height: 72px;
    transform: translateY(-50%);
    border-radius: 8px;
    font-size: 1.7rem;
}

.cms-gallery-lightbox__nav.is-prev {
    left: 18px;
}

.cms-gallery-lightbox__nav.is-next {
    right: 18px;
}

@media (max-width: 720px) {
    .cms-gallery-lightbox {
        padding: 72px 16px 24px;
    }

    .cms-gallery-lightbox__figure figcaption {
        flex-direction: column;
        gap: 4px;
    }

    .cms-gallery-lightbox__nav {
        top: auto;
        bottom: 18px;
        width: 44px;
        height: 44px;
        transform: none;
    }
}

.cms-media-card.is-selected {
    border-color: var(--primary);
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.16);
}

.cms-media-load-more {
    min-height: 44px;
    grid-column: 1 / -1;
    justify-self: center;
    min-width: 160px;
    margin: 0.25rem 0 0.75rem;
}

.cms-media-load-more:disabled {
    cursor: progress;
    opacity: 0.68;
}

.cms-media-actions {
    position: sticky;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 0.5rem;
    padding: 0.75rem 0 0;
    background: var(--surface);
    border-top: 1px solid var(--border);
}

.cms-media-actions span {
    color: var(--text-2);
    font-size: 0.9rem;
    font-weight: 700;
}

.print-only-checklists {
    display: none !important;
}

@media print {
    .print-only-checklists {
        display: block !important;
    }
}

/* Kanban & Task Badge Colors */
.kanban-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
    border: 1px solid #cbd5e1 !important; /* Make border more visible */
}
.kanban-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 16px -4px rgba(15, 23, 42, 0.1) !important;
    border-color: #94a3b8 !important;
}

.kanban-card-status-green { border-left: 4px solid #10b981 !important; }
.kanban-card-status-red { border-left: 4px solid #ef4444 !important; }
.kanban-card-status-orange { border-left: 4px solid #f97316 !important; }
.kanban-card-status-blue { border-left: 4px solid #3b82f6 !important; }
.kanban-card-status-yellow { border-left: 4px solid #eab308 !important; }
.kanban-card-status-gray { border-left: 4px solid #94a3b8 !important; }

.badge-status-green { background: #d1fae5; color: #047857; padding: 2px 8px; border-radius: 12px; font-weight: 600; }
.badge-status-red { background: #fee2e2; color: #b91c1c; padding: 2px 8px; border-radius: 12px; font-weight: 600; }
.badge-status-orange { background: #ffedd5; color: #c2410c; padding: 2px 8px; border-radius: 12px; font-weight: 600; }
.badge-status-blue { background: #dbeafe; color: #1d4ed8; padding: 2px 8px; border-radius: 12px; font-weight: 600; }
.badge-status-yellow { background: #fef3c7; color: #92400e; padding: 2px 8px; border-radius: 12px; font-weight: 600; }
.badge-status-gray { background: #e5e7eb; color: #475569; padding: 2px 8px; border-radius: 12px; font-weight: 600; }

.task-meta-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0;
    text-transform: capitalize;
    white-space: nowrap;
    cursor: pointer;
}

.task-meta-badge-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: auto;
    max-width: 100%;
}

.task-meta-badge--status,
.task-meta-badge--priority {
    min-width: 84px;
    width: auto !important;
    max-width: max-content;
    flex: 0 0 auto;
}
/* FullCalendar Overrides for BWP Premium Look */
.fc-theme-standard td, .fc-theme-standard th {
    border-color: #e2e8f0;
}
.fc-theme-standard .fc-scrollgrid {
    border: none;
}
.fc-col-header-cell {
    padding: 12px 0 !important;
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0 !important;
}
.fc-col-header-cell-cushion {
    font-family: 'Inter', system-ui, sans-serif !important;
    font-size: 14px;
    font-weight: 600;
    color: var(--text);
    text-decoration: none !important;
}
.fc-day-today {
    background: #f8fafc !important; /* Soft slate-50 instead of default yellow */
}
.fc-timegrid-col.fc-day-today {
    background: #f8fafc !important; /* Ensure the column itself is soft */
}
.fc-timegrid-slot-label-cushion {
    font-family: 'Inter', system-ui, sans-serif !important;
    font-size: 12px;
    font-weight: 500;
    color: var(--secondary-text);
}
.fc-timegrid-event {
    border-radius: 6px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    border-top: none !important;
    border-bottom: none !important;
    border-right: none !important;
    border-left-width: 4px !important;
    border-left-style: solid !important;
    padding: 2px 4px;
    transition: all 0.2s;
    overflow: hidden !important;
}
.fc-timegrid-event:hover {
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
    transform: translateY(-1px);
    cursor: pointer;
}
.fc-event-title {
    font-family: 'Inter', system-ui, sans-serif !important;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
}
.fc-event-time {
    font-family: 'Inter', system-ui, sans-serif !important;
    font-size: 11px;
    font-weight: 500;
    opacity: 0.9;
}
.fc-button-primary {
    background: #fff !important;
    border: 1px solid var(--border) !important;
    color: var(--text) !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important;
    border-radius: 6px !important;
    font-family: 'Inter', system-ui, sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-transform: capitalize;
    padding: 6px 14px !important;
    transition: all 0.2s;
}
.fc-button-primary:hover {
    background: #f8fafc !important;
    border-color: #cbd5e1 !important;
}
.fc-button-active {
    background: #f1f5f9 !important;
    border-color: #cbd5e1 !important;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05) !important;
}
.fc-toolbar-title {
    font-family: 'Inter', system-ui, sans-serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--text);
}
.fc-timegrid-now-indicator-line {
    border-color: #ef4444;
}
.fc-timegrid-now-indicator-arrow {
    border-color: #ef4444;
    border-width: 5px 0 5px 6px;
    border-top-color: transparent;
    border-bottom-color: transparent;
}

/* ==========================================================================
   Project Operations List Grid View
   ========================================================================== */
.table-wrap .grid-only {
    display: none !important;
}
.table-wrap .list-only {
    display: block;
}

.table-wrap.is-grid-view table,
.table-wrap.is-grid-view thead,
.table-wrap.is-grid-view tbody,
.table-wrap.is-grid-view tr,
.table-wrap.is-grid-view td,
.table-wrap.is-grid-view th {
    display: block;
}
.table-wrap.is-grid-view thead {
    display: none;
}
.table-wrap.is-grid-view tbody {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
    padding: 16px 0;
    background: transparent;
}
.table-wrap.is-grid-view tr {
    background: #fff;
    border: 1px solid var(--border, #e2e8f0);
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: transform 0.2s, box-shadow 0.2s;
}
.table-wrap.is-grid-view tr:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
}
.table-wrap.is-grid-view td {
    padding: 0;
    border: none;
}

/* Hide List-only stuff in grid view */
.table-wrap.is-grid-view .list-only {
    display: none !important;
}
/* Show Grid-only stuff in grid view */
.table-wrap.is-grid-view .grid-only {
    display: block !important;
}

/* Card Specific Layout */
.table-wrap.is-grid-view td.td-code {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.table-wrap.is-grid-view td.td-code strong {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-main, #0f172a);
}
.table-wrap.is-grid-view td.td-event {
    font-size: 0.875rem;
    color: var(--text-main, #0f172a);
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 4px;
}
.table-wrap.is-grid-view .label-sm {
    font-size: 0.75rem;
    color: var(--text-muted, #64748b);
    text-transform: capitalize;
}
.table-wrap.is-grid-view .mt-3 {
    margin-top: 12px;
}
.table-wrap.is-grid-view td.td-status {
    position: absolute;
    top: 20px;
    right: 20px;
}
.table-wrap.is-grid-view td.td-actions {
    margin-top: 16px;
    display: flex;
    width: 100%;
    gap: 8px;
    justify-content: flex-start;
    align-items: center;
}
.table-wrap.is-grid-view .btn-card {
    background: #fff;
    border: 1px solid var(--border, #e2e8f0);
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    color: var(--text-main, #0f172a);
    transition: background 0.2s;
}
.table-wrap.is-grid-view .btn-card:hover {
    background: var(--background-alt, #f8fafc);
}

body[data-project-operations-page] .table-wrap.is-grid-view td.td-actions,
body[data-project-operations-page] .table-wrap.is-grid-view td.td-actions.action-icon-group,
body[data-project-operations-page] [data-project-operations-projects-table] .td-actions,
body[data-project-operations-page] [data-project-operations-projects-table] .td-actions.action-icon-group {
    display: flex !important;
    width: 100% !important;
    justify-content: flex-start !important;
    align-items: center !important;
    text-align: left !important;
    margin-left: 0 !important;
    margin-right: auto !important;
}

/* ==========================================================================
   Print Run-Sheet Layout
   ========================================================================== */
@media print {
    body, html {
        margin: 0;
        padding: 0;
        background: #fff;
        height: auto;
    }
    
    /* Hide everything except the drawer */
    .sidebar,
    .topbar,
    .drawer-backdrop,
    .main-panel,
    .drawer-header .drawer-actions,
    .project-operations-toolbar-actions button:not(.secondary-action),
    [data-project-operation-add-toolbar],
    .project-operations-view-tabs,
    .project-operations-toolbar-chips,
    .list-controls {
        display: none !important;
    }
    
    /* Optimize the drawer for printing */
    #project-operations-drawer {
        display: block !important;
        position: static !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        box-shadow: none !important;
        border: none !important;
        padding: 0 !important;
        margin: 0 !important;
        transform: none !important;
        overflow: visible !important;
    }

    #project-operations-drawer,
    #project-operations-drawer * {
        visibility: visible !important;
    }
    
    .drawer-body,
    .project-operations-list-shell,
    .project-operations-workspace,
    .project-operations-grid-container,
    .project-operations-table-wrap,
    .project-operations-grid-body {
        overflow: visible !important;
        height: auto !important;
        max-height: none !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding-top: 0 !important;
    }

    #project-operations-drawer .project-operations-meta-strip {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 8px !important;
        margin: 0 0 10px !important;
    }

    #project-operations-drawer .project-operations-meta-card[data-print-meta-key="planner"],
    #project-operations-drawer .project-operations-meta-card[data-print-meta-key="status"] {
        display: none !important;
    }

    #project-operations-drawer .project-operations-meta-card {
        padding: 8px 10px !important;
        border-radius: 8px !important;
        box-shadow: none !important;
    }

    #project-operations-drawer .project-operations-meta-card span {
        font-size: 10px !important;
        line-height: 1.2 !important;
    }

    #project-operations-drawer .project-operations-meta-card strong {
        font-size: 12px !important;
        line-height: 1.25 !important;
    }
    
    /* Adjust Timeline View for Print */
    .fc-theme-standard td, .fc-theme-standard th {
        border-color: #ddd !important;
    }
    
    /* Hide scrollbars */
    ::-webkit-scrollbar {
        display: none;
    }

    #project-operations-drawer .project-operations-grid-header {
        display: grid !important;
        grid-template-columns: 38% 14% 14% 14% 6% 7% 7% !important;
        gap: 8px !important;
        padding: 6px 16px 10px !important;
        border-bottom: 1px solid #cbd5e1 !important;
        background: transparent !important;
        font-size: 10.5px !important;
        font-weight: 800 !important;
        color: #475569 !important;
        text-transform: uppercase;
        align-items: end !important;
    }

    #project-operations-drawer .project-operations-grid-header .p-col-location,
    #project-operations-drawer .project-operation-field--location:empty {
        display: none !important;
    }

    #project-operations-drawer .project-operations-grid-container,
    #project-operations-drawer .project-operations-grid-body,
    #project-operations-drawer .project-operation-list-rows {
        width: 100% !important;
        min-width: auto !important;
        display: block !important;
    }

    #project-operations-drawer .project-operation-group-row {
        padding: 8px 12px 6px !important;
        margin-top: 10px !important;
        border: 1px solid #c7d7f6 !important;
        border-bottom: 0 !important;
        background-color: #ebf0fa !important;
        color: #1a428a !important;
        font-weight: 700 !important;
    }

    #project-operations-drawer .project-operation-grid-row {
        display: grid !important;
        grid-template-columns: 38% 14% 14% 14% 6% 7% 7% !important;
        gap: 8px !important;
        width: 100% !important;
        min-width: auto !important;
        align-items: start !important;
        padding: 10px 0 !important;
        margin: 0 !important;
        border: 0 !important;
        border-bottom: 1px solid #e2e8f0 !important;
        box-shadow: none !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    #project-operations-drawer #print-run-sheet-header {
        display: block !important;
        margin: 0 0 8px !important;
        padding: 0 !important;
        text-align: center !important;
    }

    #project-operations-drawer #print-run-sheet-header h2 {
        margin: 0 !important;
        font-size: 22px !important;
        line-height: 1.2 !important;
    }

    #project-operations-drawer #print-run-sheet-header p {
        display: none !important;
        margin: 0 !important;
        font-size: 12px !important;
        line-height: 1.35 !important;
    }

    #project-operations-drawer .project-operation-grid-row > div,
    #project-operations-drawer .project-operation-grid-row > .project-operation-field {
        display: block !important;
        min-width: 0 !important;
        width: auto !important;
        padding: 2px 0 !important;
        border: 0 !important;
        background: transparent !important;
        overflow: visible !important;
        justify-self: stretch !important;
        align-self: start !important;
        text-align: left !important;
    }

    #project-operations-drawer .project-operation-grid-row > div:first-child {
        grid-column: auto !important;
    }

    #project-operations-drawer .project-operation-field::before,
    #project-operations-drawer .project-operation-row-actions,
    #project-operations-drawer .project-operation-uplevel-btn,
    #project-operations-drawer .quote-line-card-drag,
    #project-operations-drawer .time-adjust-btn,
    #project-operations-drawer .date-cell__spacer {
        display: none !important;
    }

    #project-operations-drawer .project-operation-task-summary,
    #project-operations-drawer .project-operation-task-copy,
    #project-operations-drawer .project-operation-task-head {
        display: block !important;
        padding: 0 !important;
        gap: 0 !important;
        width: auto !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
    }

    #project-operations-drawer .project-operation-grid-row[data-level="1"] .project-operation-task-copy {
        padding-left: 10px !important;
    }

    #project-operations-drawer .project-operation-grid-row[data-level="2"] .project-operation-task-copy {
        padding-left: 18px !important;
    }

    #project-operations-drawer .project-operation-grid-row[data-level="3"] .project-operation-task-copy,
    #project-operations-drawer .project-operation-grid-row[data-level="4"] .project-operation-task-copy,
    #project-operations-drawer .project-operation-grid-row[data-level="5"] .project-operation-task-copy,
    #project-operations-drawer .project-operation-grid-row[data-level="6"] .project-operation-task-copy {
        padding-left: 24px !important;
    }

    #project-operations-drawer .project-operation-task-title {
        font-size: 12px !important;
        font-weight: 700 !important;
        line-height: 1.35 !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    #project-operations-drawer .project-operation-task-notes {
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        margin-top: 6px !important;
        max-width: 100% !important;
    }

    #project-operations-drawer .project-operation-task-notes:not([title="Click to add notes"])::before {
        content: "Notes: ";
        font-style: normal !important;
        font-weight: 700 !important;
        color: #475569 !important;
    }

    #project-operations-drawer .project-operation-task-kicker {
        display: inline-block !important;
        margin-top: 4px !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        color: #64748b !important;
        font-size: 10px !important;
        font-weight: 600 !important;
    }

    #project-operations-drawer .project-operation-field--assignee,
    #project-operations-drawer .project-operation-field--duration,
    #project-operations-drawer .project-operation-field--location,
    #project-operations-drawer .project-operation-field--notes {
        font-size: 11px !important;
        line-height: 1.4 !important;
        color: #0f172a !important;
        white-space: normal !important;
    }

    #project-operations-drawer .project-operation-field--location {
        display: block !important;
        grid-column: 1 / 2 !important;
        padding-top: 0 !important;
        margin-top: -4px !important;
        max-width: 100% !important;
    }

    #project-operations-drawer .project-operation-field--location::before {
        content: "Location: ";
        font-weight: 700 !important;
        color: #475569 !important;
    }

    #project-operations-drawer .project-operation-field--assignee .avatar-circle {
        display: none !important;
    }

    #project-operations-drawer .project-operation-field--start .date-cell,
    #project-operations-drawer .project-operation-field--due .date-cell {
        display: block !important;
        width: auto !important;
    }

    #project-operations-drawer .project-operation-field--start .date-cell .date-cell__value,
    #project-operations-drawer .project-operation-field--due .date-cell .date-cell__value {
        display: block !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        font-size: 11px !important;
        line-height: 1.4 !important;
        color: #0f172a !important;
        text-align: left !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
    }

    #project-operations-drawer .project-operation-field--priority .task-meta-badge-wrap,
    #project-operations-drawer .project-operation-field--status .task-meta-badge-wrap {
        display: flex !important;
        justify-content: flex-start !important;
        width: auto !important;
    }

    #project-operations-drawer .project-operation-field--priority .task-meta-badge,
    #project-operations-drawer .project-operation-field--status .task-meta-badge {
        display: inline-flex !important;
        min-width: 0 !important;
        width: auto !important;
        max-width: none !important;
        padding: 3px 8px !important;
        font-size: 10px !important;
        line-height: 1 !important;
        white-space: nowrap !important;
    }
}

/* Final quotations drawer authority: keep this block last. */
body[data-quotations-page] .quotation-items-heading {
    display: grid;
    grid-template-columns: auto minmax(220px, 1fr) auto;
    align-items: center;
    gap: 12px;
}

body[data-quotations-page] .quotation-heading-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-left: auto;
    min-width: 0;
}

body[data-quotations-page] .quotation-heading-actions .quotation-quick-actions {
    display: flex;
    flex-wrap: nowrap !important;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    width: auto;
    max-width: 520px;
    margin-left: 0;
}

body[data-quotations-page] .quotation-heading-actions .quotation-quick-actions .secondary-action,
body[data-quotations-page] .quotation-heading-actions .list-action {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
}

@media (max-width: 560px) {
    body[data-quotations-page] #quote-drawer .quotation-items-heading {
        grid-template-columns: auto minmax(0, 1fr) !important;
        gap: 10px 12px !important;
    }

    body[data-quotations-page] #quote-drawer .quotation-heading-actions {
        grid-column: 1 / -1 !important;
        display: block !important;
        width: 100% !important;
        margin-left: 0 !important;
        justify-self: stretch !important;
    }

    body[data-quotations-page] #quote-drawer .quotation-heading-actions .quotation-quick-actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
    }

    body[data-quotations-page] #quote-drawer .quotation-heading-actions .quotation-quick-actions .secondary-action,
    body[data-quotations-page] #quote-drawer .quotation-heading-actions .list-action {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 42px !important;
        padding-inline: 10px !important;
        justify-content: center !important;
        white-space: normal !important;
        text-align: center !important;
        line-height: 1.15 !important;
    }

}

body[data-quotations-page] .quotation-list-heading, body[data-leads-page] .quotation-list-heading {
    display: grid;
    grid-template-columns: auto minmax(220px, 1fr) auto;
    align-items: center;
    gap: 12px;
}

body[data-quotations-page] .quotation-list-heading-actions, body[data-leads-page] .quotation-list-heading-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-left: auto;
}

body[data-quotations-page] .quotation-list-heading-actions, body[data-leads-page] .quotation-list-heading-actions .list-action {
    width: auto;
    min-width: 0;
    flex: 0 0 auto;
}

@media (max-width: 1100px) {
    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    /* removed */

    body[data-quotations-page] .quotation-list-heading, body[data-leads-page] .quotation-list-heading {
        grid-template-columns: auto minmax(0, 1fr);
        align-items: flex-start;
        gap: 10px 12px;
    }

    body[data-quotations-page] .quotation-list-heading, body[data-leads-page] .quotation-list-heading > .icon-badge {
        grid-column: 1;
        grid-row: 1;
    }

    body[data-quotations-page] .quotation-list-heading, body[data-leads-page] .quotation-list-heading > div:not(.quotation-list-heading-actions) {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
    }

    body[data-quotations-page] .quotation-list-heading-actions, body[data-leads-page] .quotation-list-heading-actions {
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        justify-content: flex-end;
    }

    body[data-quotations-page] .quotation-list-heading-actions, body[data-leads-page] .quotation-list-heading-actions .list-action {
        margin-left: auto;
    }
}

 
 
/* SortableJS Drop Helper */
.sortable-ghost {
    opacity: 0.5;
    background-color: #f0f4ff !important;
}
.sortable-ghost td {
    border-top: 1px dashed #6366f1 !important;
    border-bottom: 1px dashed #6366f1 !important;
}
.sortable-ghost td:first-child {
    border-left: 1px dashed #6366f1 !important;
}
.sortable-ghost td:last-child {
    border-right: 1px dashed #6366f1 !important;
}

/* Table specific fix for sortable ghost line */
tr.sortable-ghost-line {
    border: none !important;
}
tr.sortable-ghost-line td {
    border-top: 2px dashed #818cf8 !important;
    border-bottom: 2px dashed #818cf8 !important;
    background: #eef2ff !important;
}
tr.sortable-ghost-line td:first-child {
    border-left: 2px dashed #818cf8 !important;
    border-top-left-radius: 6px;
    border-bottom-left-radius: 6px;
}
tr.sortable-ghost-line td:last-child {
    border-right: 2px dashed #818cf8 !important;
    border-top-right-radius: 6px;
    border-bottom-right-radius: 6px;
}

tr.sortable-ghost-line td {
    display: table-cell !important;
    height: 100% !important;
    box-sizing: border-box !important;
}

tr.sortable-ghost-line td.row-actions {
    text-align: left !important;
}

body[data-quotations-page] .quotation-expense-table tbody[data-quote-expenses-table] > tr.sortable-ghost-line > td,
body[data-packages-module] .project-expense-table tbody[data-package-expenses-table] > tr.sortable-ghost-line > td,
body[data-quotations-page] .quotation-expense-table tbody[data-quote-expenses-table] > tr.sortable-ghost > td,
body[data-packages-module] .project-expense-table tbody[data-package-expenses-table] > tr.sortable-ghost > td,
body[data-quotations-page] .quotation-expense-table tbody[data-quote-expenses-table] > tr.sortable-drag > td,
body[data-packages-module] .project-expense-table tbody[data-package-expenses-table] > tr.sortable-drag > td {
    border-top: 0 !important;
    border-bottom: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    box-shadow: none !important;
}

body[data-quotations-page] .quotation-expense-table tbody[data-quote-expenses-table] > tr.sortable-ghost-line,
body[data-packages-module] .project-expense-table tbody[data-package-expenses-table] > tr.sortable-ghost-line,
body[data-quotations-page] .quotation-expense-table tbody[data-quote-expenses-table] > tr.sortable-ghost,
body[data-packages-module] .project-expense-table tbody[data-package-expenses-table] > tr.sortable-ghost,
body[data-quotations-page] .quotation-expense-table tbody[data-quote-expenses-table] > tr.sortable-drag,
body[data-packages-module] .project-expense-table tbody[data-package-expenses-table] > tr.sortable-drag {
    background: #eef2ff !important;
    outline: 2px dashed #818cf8 !important;
    outline-offset: -2px !important;
}
body[data-quotations-page] .sortable-ghost-line .quote-line-card,
body[data-packages-module] .sortable-ghost-line .quote-line-card {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
[data-package-expense-row].is-drop-target {
    background: #eef4ff !important;
    box-shadow: inset 3px 0 0 #5b7cff !important;
}
[data-package-expense-row].is-drop-target td {
    background: transparent !important;
    box-shadow: none !important;
}
[data-package-line].is-drop-target .quote-line-card {
    background: #eef4ff !important;
    box-shadow: inset 3px 0 0 #5b7cff !important;
}







/* =========================================================
   DRAWER STANDARDIZATION UPDATE V5 (Global Slide-Drawer Z-Index)
   ========================================================= */

/* 1. Global Drawer States (Applies to all slide-drawers) */
.slide-drawer:not(.open) {
    transform: translateX(105%) !important;
    visibility: hidden;
}

.slide-drawer.open {
    transform: translateX(0) !important;
    visibility: visible;
}

.slide-drawer {
    z-index: 10040 !important;
}

/* Base Properties for Wide/Full Drawers */
.slide-drawer.wide-drawer,
.slide-drawer.full-drawer {
    inset: 0 0 0 auto !important;
    border-radius: 0 !important;
    padding: 20px !important;
    border-left: 1px solid var(--line) !important;
}

/* 2. Standard Desktop Wide Drawer */
.slide-drawer.wide-drawer {
    width: min(100vw, 920px) !important;
    max-width: calc(100vw - 84px) !important;
}
.admin-shell:not(.sidebar-collapsed) .slide-drawer.wide-drawer {
    max-width: calc(100vw - 280px) !important;
}

/* 3. Full-Page Drawer (Desktop - respects sidebar) */
.slide-drawer.full-drawer {
    width: auto !important;
    max-width: none !important;
}
.admin-shell:not(.sidebar-collapsed) .slide-drawer.full-drawer {
    left: min(280px, calc(100vw - 32px)) !important;
    right: 0 !important;
}
.admin-shell.sidebar-collapsed .slide-drawer.full-drawer {
    left: 84px !important;
    right: 0 !important;
}

/* 4. Tablet & Mobile (<= 1100px) Full Screen for ALL Drawers */
@media (max-width: 1100px) {
    .slide-drawer {
        inset: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        padding: 14px !important;
    }
}/* Fix modal z-indexes to be above the new drawer z-index (10040) */
[class$="-modal"], [class*="-modal "] { z-index: 11000 !important; }
[class$="-modal-backdrop"], [class*="-modal-backdrop "] { z-index: 10999 !important; }
[class$="-modal"] [class$="-modal-backdrop"], [class*="-modal "] [class$="-modal-backdrop"], [class$="-modal"] [class*="-modal-backdrop "], [class*="-modal "] [class*="-modal-backdrop "] { z-index: -1 !important; }

.project-budget-modal > .project-budget-modal-backdrop,
.project-expense-modal > .project-expense-modal-backdrop,
.project-operation-modal > .project-operation-modal-backdrop {
    z-index: 0 !important;
}

.project-budget-modal > .project-budget-form,
.project-expense-modal > .project-expense-form,
.project-operation-modal > .project-operation-form {
    position: relative;
    z-index: 2 !important;
}

body.quote-line-modal-open .quote-line-modal-backdrop {
    z-index: 11080 !important;
}

body.quote-line-modal-open .quote-line.quote-line-modal {
    position: fixed !important;
    z-index: 11090 !important;
}




/* Fix SweetAlert2 z-index to be above all drawers and modals */
.swal2-container { z-index: 20000 !important; }

/* Keep TinyMCE dialogs and menus above admin drawers */
.tox-tinymce-aux,
.tox-dialog-wrap,
.tox-menu.tox-collection.tox-collection--list,
.tox-notifications-container {
    z-index: 12100 !important;
}

/* Mobile table normalization: avoid mixed table header + card body layouts. */
@media (max-width: 560px) {
    .work-surface.table-surface {
        min-width: 0 !important;
        overflow: hidden !important;
    }

    .work-surface.table-surface .table-wrap {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        -webkit-overflow-scrolling: touch;
    }

    .work-surface.table-surface .table-wrap table {
        width: max-content !important;
        min-width: max(100%, var(--admin-table-min-width, 760px)) !important;
        table-layout: var(--admin-table-layout, auto) !important;
        border-collapse: collapse !important;
    }

    .work-surface.table-surface .table-wrap thead {
        display: table-header-group !important;
    }

    .work-surface.table-surface .table-wrap tbody {
        display: table-row-group !important;
    }

    .work-surface.table-surface .table-wrap tr {
        display: table-row !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .work-surface.table-surface .table-wrap th,
    .work-surface.table-surface .table-wrap td {
        display: table-cell !important;
        width: auto !important;
        padding: 12px 14px !important;
        border-bottom: 1px solid var(--line) !important;
        vertical-align: middle !important;
        white-space: nowrap !important;
    }

    .work-surface.table-surface .table-wrap td + td {
        margin-top: 0 !important;
    }

    .work-surface.table-surface .table-wrap .row-actions,
    .work-surface.table-surface .table-wrap .td-actions,
    .work-surface.table-surface .table-wrap .cell-actions {
        display: table-cell !important;
        width: 1% !important;
        text-align: left !important;
        white-space: nowrap !important;
    }

    .work-surface.table-surface .table-wrap .row-actions.action-icon-group,
    .work-surface.table-surface .table-wrap .td-actions.action-icon-group,
    .work-surface.table-surface .table-wrap .cell-actions.action-icon-group {
        gap: 6px !important;
    }

    .work-surface.table-surface .table-wrap .row-actions > .action-icon-group,
    .work-surface.table-surface .table-wrap .row-actions > .action-inline-cluster,
    .work-surface.table-surface .table-wrap .td-actions > .action-icon-group,
    .work-surface.table-surface .table-wrap .td-actions > .action-inline-cluster,
    .work-surface.table-surface .table-wrap .cell-actions > .action-icon-group,
    .work-surface.table-surface .table-wrap .cell-actions > .action-inline-cluster {
        display: inline-flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        width: max-content !important;
        white-space: nowrap !important;
    }

    .slide-drawer .table-wrap {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        -webkit-overflow-scrolling: touch;
    }

    .slide-drawer .table-wrap table {
        width: max-content !important;
        min-width: max(100%, var(--drawer-table-min-width, 720px)) !important;
        table-layout: auto !important;
        border-collapse: collapse !important;
    }

    .slide-drawer .table-wrap thead {
        display: table-header-group !important;
    }

    .slide-drawer .table-wrap tbody,
    .slide-drawer .table-wrap tfoot {
        display: table-row-group !important;
    }

    .slide-drawer .table-wrap tr {
        display: table-row !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .slide-drawer .table-wrap th,
    .slide-drawer .table-wrap td {
        display: table-cell !important;
        width: auto !important;
        padding: 12px 14px !important;
        border-bottom: 1px solid var(--line) !important;
        vertical-align: middle !important;
        white-space: nowrap !important;
    }

    .slide-drawer .table-wrap td + td {
        margin-top: 0 !important;
    }

    .slide-drawer .table-wrap .row-actions,
    .slide-drawer .table-wrap .td-actions,
    .slide-drawer .table-wrap .cell-actions {
        display: table-cell !important;
        width: 1% !important;
        text-align: left !important;
        white-space: nowrap !important;
    }

    .work-surface.table-surface.card-mode .table-wrap,
    .work-surface.table-surface .table-wrap.is-grid-view {
        overflow: visible !important;
    }

    .work-surface.table-surface.card-mode .table-wrap table,
    .work-surface.table-surface.card-mode .table-wrap thead,
    .work-surface.table-surface.card-mode .table-wrap tbody,
    .work-surface.table-surface.card-mode .table-wrap tr,
    .work-surface.table-surface.card-mode .table-wrap td,
    .work-surface.table-surface.card-mode .table-wrap th,
    .work-surface.table-surface .table-wrap.is-grid-view table,
    .work-surface.table-surface .table-wrap.is-grid-view thead,
    .work-surface.table-surface .table-wrap.is-grid-view tbody,
    .work-surface.table-surface .table-wrap.is-grid-view tr,
    .work-surface.table-surface .table-wrap.is-grid-view td,
    .work-surface.table-surface .table-wrap.is-grid-view th {
        display: block !important;
        min-width: 0 !important;
        width: auto !important;
        white-space: normal !important;
    }

    .work-surface.table-surface.card-mode .table-wrap thead,
    .work-surface.table-surface .table-wrap.is-grid-view thead {
        display: none !important;
    }

    .work-surface.table-surface.card-mode .table-wrap tbody,
    .work-surface.table-surface .table-wrap.is-grid-view tbody {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        padding: 12px 0 !important;
        background: transparent !important;
    }

    .work-surface.table-surface.card-mode .table-wrap tr,
    .work-surface.table-surface .table-wrap.is-grid-view tr {
        display: grid !important;
        gap: 10px !important;
        width: 100% !important;
        min-height: 0 !important;
        padding: 14px !important;
        border: 1px solid var(--line) !important;
        border-radius: 8px !important;
        background: #fff !important;
        box-shadow: 0 10px 28px rgba(15, 23, 42, .05) !important;
        overflow: hidden !important;
    }

    .work-surface.table-surface.card-mode .table-wrap td,
    .work-surface.table-surface .table-wrap.is-grid-view td {
        display: block !important;
        position: static !important;
        padding: 0 !important;
        border: 0 !important;
        margin: 0 !important;
        min-width: 0 !important;
        overflow-wrap: anywhere !important;
    }

    .work-surface.table-surface.card-mode .table-wrap .row-actions,
    .work-surface.table-surface.card-mode .table-wrap .td-actions,
    .work-surface.table-surface.card-mode .table-wrap .cell-actions,
    .work-surface.table-surface .table-wrap.is-grid-view .row-actions,
    .work-surface.table-surface .table-wrap.is-grid-view .td-actions,
    .work-surface.table-surface .table-wrap.is-grid-view .cell-actions {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
        align-items: center !important;
        width: 100% !important;
        gap: 8px !important;
        margin-top: 8px !important;
        padding-top: 10px !important;
        border-top: 1px solid var(--line) !important;
        white-space: normal !important;
    }

    .work-surface.table-surface.card-mode .table-wrap .row-actions.action-icon-group,
    .work-surface.table-surface.card-mode .table-wrap .td-actions.action-icon-group,
    .work-surface.table-surface.card-mode .table-wrap .cell-actions.action-icon-group,
    .work-surface.table-surface .table-wrap.is-grid-view .row-actions.action-icon-group,
    .work-surface.table-surface .table-wrap.is-grid-view .td-actions.action-icon-group,
    .work-surface.table-surface .table-wrap.is-grid-view .cell-actions.action-icon-group {
        display: inline-flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        width: auto !important;
        max-width: max-content !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }

    .work-surface.table-surface.card-mode .table-wrap .action-icon-button,
    .work-surface.table-surface .table-wrap.is-grid-view .action-icon-button,
    body[data-projects-module-page] .item-card-actions.action-icon-group .action-icon-button {
        width: 32px !important;
        min-width: 32px !important;
        max-width: 32px !important;
        height: 32px !important;
        min-height: 32px !important;
        flex: 0 0 32px !important;
        padding: 0 !important;
        font-size: 0 !important;
        border-radius: 9px !important;
    }

    .work-surface.table-surface.card-mode .table-wrap .action-icon-button svg,
    .work-surface.table-surface .table-wrap.is-grid-view .action-icon-button svg,
    body[data-projects-module-page] .item-card-actions.action-icon-group .action-icon-button svg {
        width: 14px !important;
        height: 14px !important;
        flex: 0 0 14px !important;
    }
}

/* Mobile phone drawer shape: use full-screen drawers while keeping form grids single-column. */
@media (max-width: 560px) {
    .drawer-backdrop,
    .admin-shell:not(.sidebar-collapsed) .drawer-backdrop,
    .admin-shell.sidebar-collapsed .drawer-backdrop,
    .admin-shell:not(.sidebar-collapsed) .drawer-backdrop[data-drawer-backdrop],
    .admin-shell.sidebar-collapsed .drawer-backdrop[data-drawer-backdrop] {
        inset: 0 !important;
        background: rgba(15, 23, 42, .32) !important;
    }

    .slide-drawer,
    .slide-drawer.wide-drawer,
    .slide-drawer.full-drawer,
    .admin-shell:not(.sidebar-collapsed) .slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed .slide-drawer.wide-drawer,
    .admin-shell:not(.sidebar-collapsed) .slide-drawer.full-drawer,
    .admin-shell.sidebar-collapsed .slide-drawer.full-drawer,
    .admin-shell:not(.sidebar-collapsed) #quote-drawer.slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed #quote-drawer.slide-drawer.wide-drawer,
    .admin-shell:not(.sidebar-collapsed) #project-drawer.slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed #project-drawer.slide-drawer.wide-drawer,
    .admin-shell:not(.sidebar-collapsed) #package-drawer.slide-drawer.wide-drawer,
    .admin-shell.sidebar-collapsed #package-drawer.slide-drawer.wide-drawer {
        inset: 0 !important;
        left: 0 !important;
        right: 0 !important;
        top: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        padding: 10px !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: var(--bg) !important;
        box-shadow: none !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    .slide-drawer.open {
        transform: translateX(0) !important;
    }

    .slide-drawer:not(.open) {
        transform: translateX(105%) !important;
    }

    .slide-drawer > .work-surface,
    .slide-drawer > form.work-surface,
    .slide-drawer > .drawer-panel {
        width: 100%;
        min-height: calc(100dvh - 20px) !important;
        max-height: none !important;
        padding: 16px !important;
        border: 1px solid rgba(203, 213, 225, .9) !important;
        border-radius: 8px !important;
        background: #fff !important;
        box-shadow: 0 24px 70px rgba(15, 23, 42, .18) !important;
        overflow: visible !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch;
    }

    .slide-drawer > .work-surface > .surface-heading:first-child,
    .slide-drawer > .drawer-header.surface-heading {
        min-height: 56px;
        gap: 10px;
        align-items: flex-start;
    }

    .slide-drawer .surface-heading h1,
    .slide-drawer .surface-heading h2 {
        font-size: 22px;
        line-height: 1.08;
    }

    .slide-drawer .icon-close {
        width: 38px;
        height: 38px;
        min-height: 38px;
    }

    .slide-drawer.wide-drawer .form-grid,
    .slide-drawer.full-drawer .form-grid,
    .slide-drawer.wide-drawer .price-form-grid,
    .slide-drawer.wide-drawer .master-item-form-grid,
    .slide-drawer.wide-drawer .vendor-form-grid,
    .slide-drawer.wide-drawer .vendor-rate-form-grid {
        grid-template-columns: 1fr !important;
    }

    .slide-drawer .full-span,
    .price-form-grid .price-master-item-field,
    .price-form-grid .price-item-preview {
        grid-column: 1 / -1 !important;
    }

    #package-drawer .table-wrap[data-preserve-table-layout],
    #package-drawer .quotation-items-table[data-preserve-table-layout],
    #package-drawer .project-expense-table[data-preserve-table-layout] {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        -webkit-overflow-scrolling: touch;
    }

    #package-drawer .quotation-items-table[data-preserve-table-layout] .quote-line-header,
    #package-drawer .quotation-items-table[data-preserve-table-layout] .package-lines,
    #package-drawer .quotation-items-table[data-preserve-table-layout] .package-line,
    #package-drawer .quotation-items-table[data-preserve-table-layout] .quote-line-card {
        min-width: 960px !important;
        width: 960px !important;
        max-width: none !important;
    }

    #package-drawer .quotation-items-table[data-preserve-table-layout] .quote-line-header,
    #package-drawer .quotation-items-table[data-preserve-table-layout] .quote-line-card {
        display: grid !important;
        grid-template-columns: 32px minmax(180px, 1.35fr) minmax(130px, 1fr) 70px 120px 120px 120px 120px 120px 96px !important;
        gap: 8px !important;
        align-items: center !important;
    }

    #package-drawer .quotation-items-table[data-preserve-table-layout] .package-lines {
        display: grid !important;
        gap: 0 !important;
        padding: 0 !important;
    }

    #package-drawer .quotation-items-table[data-preserve-table-layout] .package-line {
        display: block !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    #package-drawer .quotation-items-table[data-preserve-table-layout] .quote-line-card {
        min-height: 64px !important;
        padding: 12px 0 !important;
        border: 0 !important;
        border-bottom: 1px solid var(--line) !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        overflow: visible !important;
    }

    #package-drawer .quotation-items-table[data-preserve-table-layout] .quote-line-card > div,
    #package-drawer .quotation-items-table[data-preserve-table-layout] .quote-line-card > strong,
    #package-drawer .quotation-items-table[data-preserve-table-layout] .quote-line-card > span {
        min-width: 0 !important;
        overflow-wrap: anywhere !important;
    }

    #package-drawer .quotation-items-table[data-preserve-table-layout] .quote-line-card .row-actions {
        display: flex !important;
        gap: 6px !important;
        justify-content: flex-start !important;
        align-items: center !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        white-space: nowrap !important;
    }

    #package-drawer .project-expense-table[data-preserve-table-layout] table {
        display: table !important;
        width: max-content !important;
        min-width: 760px !important;
        table-layout: auto !important;
        border-collapse: collapse !important;
    }

    #package-drawer .project-expense-table[data-preserve-table-layout] thead {
        display: table-header-group !important;
    }

    #package-drawer .project-expense-table[data-preserve-table-layout] tbody {
        display: table-row-group !important;
    }

    #package-drawer .project-expense-table[data-preserve-table-layout] tr {
        display: table-row !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    #package-drawer .project-expense-table[data-preserve-table-layout] th,
    #package-drawer .project-expense-table[data-preserve-table-layout] td {
        display: table-cell !important;
        padding: 12px 14px !important;
        border-bottom: 1px solid var(--line) !important;
        white-space: nowrap !important;
        vertical-align: middle !important;
    }

    #package-drawer .project-expense-table[data-preserve-table-layout] td.row-actions {
        width: 1% !important;
        text-align: left !important;
    }
}


/* =========================================================
   GLOBAL INLINE HEADING (Prevents wrapping on iPad/Mobile)
   ========================================================= */
.surface-heading.surface-heading-inline {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 12px;
}
.surface-heading.surface-heading-inline > div:not(.surface-heading-actions):not(.icon-badge) {
    flex: 1 1 0%;
    min-width: 0;
}
.surface-heading.surface-heading-inline > div:not(.surface-heading-actions):not(.icon-badge) h2,
.surface-heading.surface-heading-inline > div:not(.surface-heading-actions):not(.icon-badge) .eyebrow {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.surface-heading.surface-heading-inline .surface-heading-actions {
    flex: 0 0 auto;
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 10px;
}

body[data-finance-layout-page] .finance-heading-actions,
body[data-finance-layout-page] .work-surface.table-surface > .surface-heading .surface-heading-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

@media (max-width: 1180px) {
    body[data-finance-layout-page] .work-surface.table-surface > .surface-heading.surface-heading-inline {
        flex-wrap: nowrap !important;
        align-items: center !important;
    }

    body[data-finance-layout-page] .work-surface.table-surface > .surface-heading.surface-heading-inline > div:not(.surface-heading-actions):not(.icon-badge) {
        flex: 1 1 auto;
        min-width: 0;
    }

    body[data-finance-layout-page] .finance-heading-actions,
    body[data-finance-layout-page] .work-surface.table-surface > .surface-heading.surface-heading-inline .surface-heading-actions {
        width: auto;
        margin-left: auto;
        justify-content: flex-end;
        flex: 0 0 auto;
        flex-wrap: nowrap;
    }

    body[data-finance-layout-page] .finance-heading-actions .primary-action,
    body[data-finance-layout-page] .finance-heading-actions .secondary-action,
    body[data-finance-layout-page] .work-surface.table-surface > .surface-heading.surface-heading-inline .surface-heading-actions .primary-action,
    body[data-finance-layout-page] .work-surface.table-surface > .surface-heading.surface-heading-inline .surface-heading-actions .secondary-action {
        flex: 0 0 auto;
        min-width: 0;
    }
}







.cms-gallery-select-all, [data-cms-gallery-selected-count] { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 7px; padding: 11px 13px; background: #fff; color: var(--ink); line-height: 1.15; box-sizing: border-box; }

/* Guest form configuration */
.guest-form-builder {
    display: grid;
    gap: 16px;
}

.guest-form-toolbar select:first-child {
    min-width: min(420px, 100%);
}

.guest-form-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.guest-form-summary article {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.guest-form-summary span,
.guest-form-summary small {
    display: block;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.guest-form-summary strong {
    display: block;
    margin: 6px 0 4px;
    color: var(--ink);
    font-size: 22px;
}

.guest-form-sections,
.guest-form-preview-panel {
    display: grid;
    gap: 14px;
}

.guest-form-section,
.guest-form-preview-section {
    display: grid;
    gap: 12px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.guest-form-preview-section h3 {
    margin: 0;
    color: var(--ink);
    font-size: 18px;
}

.guest-form-field-list {
    display: grid;
    gap: 10px;
}

.guest-form-field {
    display: grid;
    grid-template-columns: minmax(220px, 1.15fr) minmax(180px, .9fr) minmax(140px, .7fr) 110px minmax(170px, 1fr) minmax(170px, 1fr);
    gap: 10px;
    align-items: end;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #f8fbff;
}

.guest-form-field > label,
.guest-form-field__main,
.guest-form-field__control {
    min-width: 0;
}

.guest-form-field__main {
    display: grid;
    gap: 6px;
}

.guest-form-field__control {
    display: grid;
    gap: 6px;
}

.guest-form-field__control > span {
    min-height: 16px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
}

.guest-form-field__meta {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--muted);
    font-size: 12px;
    overflow-wrap: anywhere;
}

.guest-form-field__toggle,
.guest-form-field__required {
    min-height: 48px;
    background: #fff;
}

.guest-form-field input[type="number"],
.guest-form-field input[type="text"],
.guest-form-field input:not([type]) {
    width: 100%;
}

.form-message[data-tone="success"] {
    color: #047857;
}

.form-message[data-tone="error"] {
    color: #b91c1c;
}

@media (max-width: 980px) {
    .guest-form-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .guest-form-field {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .guest-form-field__main {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .guest-form-summary,
    .guest-form-field {
        grid-template-columns: 1fr;
    }

    .guest-form-toolbar select:first-child {
        min-width: 0;
    }
}

/* Global drawer scroll lock: keep background pages from creating a second scrollbar. */
html.drawer-open,
body.drawer-open {
    overflow: hidden !important;
}

body.drawer-open {
    position: fixed;
    inset: var(--drawer-scroll-y, 0) 0 auto 0;
    width: 100%;
    height: 100%;
    overscroll-behavior: none;
}

html.drawer-open .admin-shell,
body.drawer-open .admin-shell {
    height: 100vh;
    max-height: 100vh;
    overflow: hidden !important;
    overscroll-behavior: none;
}

html.drawer-open .slide-drawer,
body.drawer-open .slide-drawer {
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

html.drawer-open .drawer-backdrop.open,
body.drawer-open .drawer-backdrop.open {
    touch-action: none;
}


