:root {
  --purple: #504ca2;
  --deep: #302b75;
  --yellow: #fbb400;
  --orange: #ef9816;
  --paper: #fffaf7;
  --ink: #29263d;
  --muted: #6d697a;
  --line: #dfdbe9;
  --bg: #f2f0f5;
  --success: #197347;
  --danger: #a93039;
  --shadow: 0 20px 60px rgba(48, 43, 117, .15);
}

* { box-sizing: border-box; }
html { color-scheme: light; }
body { margin: 0; color: var(--ink); background: var(--bg); font: 15px/1.45 Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; }
body.is-busy { cursor: progress; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: wait; opacity: .6; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }

.login-view { display: grid; min-height: 100vh; place-items: center; padding: 24px; background: radial-gradient(circle at 20% 12%, rgba(251,180,0,.24), transparent 28%), radial-gradient(circle at 86% 90%, rgba(80,76,162,.2), transparent 30%), #f7f5fb; }
.login-card { width: min(100%, 470px); padding: clamp(28px, 6vw, 48px); background: #fff; border: 1px solid var(--line); border-radius: 28px; box-shadow: 0 26px 80px rgba(48,43,117,.17); }
.login-card > img { width: 124px; margin: 0 auto 24px; }
.login-card .eyebrow, .login-card h1, .login-card > p { text-align: center; }
.login-card h1 { margin: 0; color: var(--deep); font-size: clamp(2rem, 6vw, 2.8rem); line-height: 1; letter-spacing: -.04em; }
.login-card > p:not(.eyebrow) { margin: 10px 0 24px; color: var(--muted); }
.login-card label { display: block; margin: 15px 0 6px; color: var(--deep); font-size: .82rem; font-weight: 850; }
.login-card input { width: 100%; min-height: 48px; padding: 10px 13px; border: 1px solid #cbc6d9; border-radius: 11px; }

.app-shell { min-height: 100vh; }
.topbar { position: sticky; z-index: 30; top: 0; display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 24px; padding: 12px clamp(17px, 3vw, 44px); color: #fff; background: linear-gradient(120deg, var(--deep), var(--purple)); box-shadow: 0 10px 30px rgba(48,43,117,.27); }
.brand { display: flex; align-items: center; gap: 13px; }
.brand img { width: 76px; padding: 6px 9px; background: #fff; border-radius: 11px; }
.brand strong, .brand span { display: block; }
.brand strong { letter-spacing: -.02em; }
.brand span { color: #ddd9ff; font-size: .78rem; }
.top-actions { display: flex; align-items: center; gap: 8px; }
.top-button, .button { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; gap: 7px; padding: 8px 14px; color: var(--deep); background: #fff; border: 1px solid var(--line); border-radius: 999px; font-weight: 850; text-decoration: none; transition: transform .16s ease, background .16s ease; }
.top-button { color: #fff; background: rgba(255,255,255,.11); border-color: rgba(255,255,255,.2); }
.top-button.primary, .button.primary { color: var(--deep); background: var(--yellow); border-color: var(--yellow); }
.top-button.quiet { padding-inline: 11px; background: transparent; border-color: transparent; }
.button.secondary { color: var(--purple); background: #f2effc; }
.button.light { color: var(--deep); background: #fff; }
.button.danger { color: var(--danger); background: #fff0f1; border-color: #f0d6d8; }
.button.small { min-height: 36px; padding: 7px 12px; font-size: .79rem; }
.button.wide { width: 100%; min-height: 49px; margin-top: 22px; }
.top-button:hover, .button:hover { transform: translateY(-1px); }

.section-nav { position: sticky; z-index: 20; top: 76px; display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: 18px; padding: 8px clamp(17px,3vw,44px); background: #fff; border-bottom: 1px solid var(--line); box-shadow: 0 6px 18px rgba(48,43,117,.06); }
.section-tabs { display: flex; width: 100%; min-width: 0; max-width: 100%; flex-wrap: wrap; align-items: center; gap: 5px; overflow: visible; }
.section-tab { display: inline-flex; min-height: 40px; flex: none; align-items: center; gap: 7px; padding: 8px 13px; color: var(--muted); background: transparent; border: 0; border-radius: 10px; font-size: .81rem; font-weight: 850; }
.section-tab:hover { color: var(--purple); background: #f4f1fc; }
.section-tab.active { color: var(--deep); background: #eeeafd; }
.nav-menu { position: relative; flex: none; }
.nav-menu > summary { display: flex; min-height: 40px; align-items: center; gap: 7px; padding: 8px 13px; color: var(--muted); border-radius: 10px; font-size: .81rem; font-weight: 850; list-style: none; cursor: pointer; }
.nav-menu > summary::-webkit-details-marker { display: none; }
.nav-menu > summary::after { content: "⌄"; margin-left: 2px; font-size: .75rem; }
.nav-menu:hover > summary,.nav-menu[open] > summary,.nav-menu.active > summary { color: var(--deep); background: #eeeafd; }
.nav-menu-panel { position: absolute; z-index: 45; top: calc(100% + 7px); left: 0; display: grid; min-width: 225px; padding: 8px; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 18px 48px rgba(48,43,117,.18); }
.nav-menu-panel-right { right: 0; left: auto; }
.nav-menu-panel .section-tab { width: 100%; justify-content: space-between; text-align: left; }
.nav-count { display: grid; min-width: 21px; height: 21px; place-items: center; padding: 0 5px; color: #fff; background: var(--orange); border-radius: 999px; font-size: .68rem; }
.signed-user { display: flex; flex: none; align-items: center; gap: 8px; padding-left: 16px; border-left: 1px solid var(--line); }
.signed-user span { color: var(--muted); font-size: .72rem; }
.signed-user strong { color: var(--deep); font-size: .82rem; }

.dashboard-view { background: radial-gradient(circle at 92% 5%,rgba(251,180,0,.13),transparent 25%),var(--bg); }
.dashboard-header { align-items: center; }
.dashboard-stat-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; max-width: 1320px; margin: 0 auto 20px; }
.dashboard-stat-grid article { padding: 20px; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 10px 28px rgba(48,43,117,.06); }
.dashboard-stat-grid span,.dashboard-stat-grid strong,.dashboard-stat-grid small { display: block; }.dashboard-stat-grid span { color: var(--muted); font-size: .71rem; font-weight: 900; text-transform: uppercase; }.dashboard-stat-grid strong { margin-top: 3px; color: var(--deep); font-size: 1.75rem; }.dashboard-stat-grid small { margin-top: 3px; color: var(--muted); }.dashboard-finance-card { color: #fff; background: linear-gradient(130deg,var(--deep),var(--purple))!important; }.dashboard-finance-card span,.dashboard-finance-card strong,.dashboard-finance-card small { color: #fff; }
.dashboard-layout { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(340px,.92fr); gap: 18px; max-width: 1320px; margin: 0 auto; }
.dashboard-panel { padding: 20px; background: #fff; border: 1px solid var(--line); border-radius: 19px; box-shadow: 0 10px 28px rgba(48,43,117,.05); }.section-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }.section-title-row h2,.section-title-row p { margin: 0; }.section-title-row h2 { color: var(--deep); font-size: 1.12rem; }.section-title-row p { margin-top: 3px; color: var(--muted); font-size: .78rem; }
.dashboard-task-list,.dashboard-event-list { display: grid; gap: 9px; margin-top: 15px; }.dashboard-task { display: grid; grid-template-columns: 9px minmax(0,1fr) auto; gap: 11px; align-items: center; padding: 12px; background: #faf9fc; border: 1px solid var(--line); border-radius: 13px; }.dashboard-task > span { width: 9px; height: 34px; background: var(--purple); border-radius: 9px; }.dashboard-task.warning > span { background: var(--orange); }.dashboard-task.danger > span { background: var(--danger); }.dashboard-task strong,.dashboard-task p { margin: 0; }.dashboard-task strong { color: var(--deep); font-size: .87rem; }.dashboard-task p { margin-top: 2px; color: var(--muted); font-size: .75rem; }.dashboard-clear strong,.dashboard-clear span { display: block; }
.dashboard-event { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 11px; align-items: center; padding: 11px; background: #faf9fc; border: 1px solid var(--line); border-radius: 13px; }.dashboard-date { display: grid; place-items: center; padding: 6px; color: #fff; background: var(--purple); border-radius: 10px; }.dashboard-date strong { font-size: 1.08rem; line-height: 1; }.dashboard-date span { font-size: .62rem; font-weight: 850; text-transform: uppercase; }.dashboard-event > div:nth-child(2) > strong,.dashboard-event p,.dashboard-event small { display: block; margin: 0; }.dashboard-event > div:nth-child(2) > strong { color: var(--deep); }.dashboard-event p,.dashboard-event small { color: var(--muted); font-size: .72rem; }
.dashboard-shortcuts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; max-width: 1320px; margin: 18px auto 0; }.dashboard-shortcuts button { padding: 15px 17px; color: var(--deep); background: #fff; border: 1px solid var(--line); border-radius: 15px; text-align: left; }.dashboard-shortcuts span,.dashboard-shortcuts strong { display: block; }.dashboard-shortcuts span { color: var(--orange); font-size: .67rem; font-weight: 900; text-transform: uppercase; }.dashboard-shortcuts strong { margin-top: 2px; }

.workspace { display: grid; grid-template-columns: minmax(610px, 1fr) minmax(360px, 460px); min-height: calc(100vh - 134px); }
.editor { position: relative; z-index: 4; padding: 27px; background: #fff; border-right: 1px solid var(--line); }
.editor-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.eyebrow { margin: 0 0 4px; color: var(--orange); font-size: .73rem; font-weight: 950; letter-spacing: .12em; text-transform: uppercase; }
.editor h1 { margin: 0; color: var(--deep); font-size: clamp(2rem, 3vw, 2.55rem); line-height: 1.03; letter-spacing: -.045em; }
.lead { margin: 8px 0 23px; color: var(--muted); }
.status-badge { flex: none; padding: 6px 10px; color: var(--muted); background: #f3f1f6; border-radius: 999px; font-size: .72rem; font-weight: 850; }
.status-badge.saved { color: var(--success); background: #e9f7ef; }

.card { padding: 20px; margin-bottom: 16px; background: #fff; border: 1px solid var(--line); border-radius: 20px; box-shadow: 0 9px 28px rgba(48,43,117,.055); }
.card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.card-header-actions { display: flex; flex: none; align-items: center; gap: 9px; }
.inline-action { padding: 4px 0; color: var(--purple); background: transparent; border: 0; font-size: .74rem; font-weight: 900; }
.card h2, .dialog h2, .dialog h3 { margin: 0; color: var(--deep); }
.card h2 { font-size: 1.05rem; }
.card-header p { margin: 3px 0 0; color: var(--muted); font-size: .8rem; }
.card-header b { display: grid; width: 29px; height: 29px; flex: none; place-items: center; color: #fff; background: var(--purple); border-radius: 9px; font-size: .78rem; }

.fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.fields label, .standalone-label, .search-field { min-width: 0; color: var(--deep); font-size: .77rem; font-weight: 850; }
.fields .full { grid-column: 1 / -1; }
.fields input, .fields textarea, .fields select, .standalone-label textarea, .search-field input { width: 100%; min-height: 43px; margin-top: 6px; padding: 9px 11px; color: var(--ink); background: #fbfafc; border: 1px solid #cec9dc; border-radius: 10px; outline: none; }
.fields textarea, .standalone-label textarea { resize: vertical; }
.standalone-label { display: block; }
.standalone-label textarea { min-height: 92px; }
.fields input:focus, .fields textarea:focus, .fields select:focus, .standalone-label textarea:focus, .search-field input:focus, .item-main input:focus, .item-main textarea:focus, .item-price input:focus { border-color: var(--orange); box-shadow: 0 0 0 3px rgba(239,152,22,.18); }
.hint { color: var(--muted); font-weight: 550; }
.input-action { display: flex; gap: 8px; }
.input-action input { flex: 1; min-width: 0; }
.input-action .button { flex: none; margin-top: 6px; border-radius: 10px; }

.items-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.items-list { display: grid; gap: 10px; }
.item-editor { display: grid; grid-template-columns: 35px minmax(0,1fr) 118px 33px; gap: 9px; align-items: start; padding: 11px; background: #faf9fc; border: 1px solid var(--line); border-radius: 13px; }
.item-order { display: grid; width: 35px; height: 42px; place-items: center; color: var(--purple); background: #edeaff; border-radius: 9px; font-weight: 900; }
.item-main { display: grid; gap: 7px; }
.item-main input, .item-main textarea, .item-price input { width: 100%; padding: 8px 10px; color: var(--ink); background: #fff; border: 1px solid #d3cedd; border-radius: 9px; outline: none; }
.item-main input { color: var(--deep); font-weight: 850; }
.item-main textarea { min-height: 68px; resize: vertical; }
.item-price label { display: block; margin-bottom: 4px; color: var(--muted); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.item-price input { font-size: .8rem; }
.item-price small { display: block; margin-top: 4px; color: var(--muted); font-size: .65rem; text-align: right; }
.item-breakdown { display: grid; gap: 4px; padding: 8px 10px; background: #f1eff9; border-radius: 9px; }
.item-breakdown span { display: flex; align-items: center; gap: 5px; color: var(--deep); font-size: .72rem; }
.item-breakdown small { margin-left: auto; color: var(--muted); }
.configure-item { justify-self: start; padding: 5px 8px; color: var(--purple); background: #fff4cd; border: 1px solid #f0d36e; border-radius: 8px; font-size: .7rem; font-weight: 850; }
.remove-item { width: 33px; height: 33px; padding: 0; color: var(--danger); background: #fff1f1; border: 1px solid #efd7d9; border-radius: 9px; font-size: 1.15rem; }
.empty-items { display: grid; gap: 3px; padding: 24px; color: var(--muted); background: #faf9fc; border: 1px dashed #cac5d8; border-radius: 13px; text-align: center; }
.empty-items strong { color: var(--deep); }
.empty-items span { font-size: .8rem; }

.total-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; color: #fff; background: linear-gradient(120deg, var(--purple), var(--deep)); border-radius: 17px; }
.total-card span, .total-card strong, .total-card small { display: block; }
.total-card span { color: #dad7ff; font-size: .77rem; font-weight: 850; text-transform: uppercase; }
.total-card strong { margin-top: 2px; font-size: 1.65rem; line-height: 1; }
.total-card small { margin-top: 5px; color: #cbc7f7; }
.privacy-note { margin: 12px 0 0; color: var(--muted); font-size: .76rem; text-align: center; }

.preview { min-width: 0; padding: 28px clamp(14px,3vw,42px) 60px; overflow: hidden; background: #efedf3; }
.preview-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; width: min(100%,1120px); margin: 0 auto 17px; }
.preview-header h2 { margin: 0; color: var(--deep); font-size: 1rem; }
.preview-header p, .preview-header span { margin: 2px 0 0; color: var(--muted); font-size: .78rem; }
.preview-meta { display: grid; flex: none; justify-items: end; gap: 5px; }
.preview-open { padding: 0; color: var(--purple); background: transparent; border: 0; font-size: .75rem; font-weight: 850; }
.preview-pages { display: grid; gap: 24px; width: min(100%,1120px); margin: 0 auto; }
.preview-pages .pdf-page:not(:first-child) { display: none; }

.management-view { min-height: calc(100vh - 134px); padding: clamp(25px,4vw,54px); background: var(--bg); }
.management-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; max-width: 1320px; margin: 0 auto 25px; }
.management-header h1 { margin: 0; color: var(--deep); font-size: clamp(2rem,4vw,3.1rem); line-height: 1; letter-spacing: -.045em; }
.management-header p:last-child { max-width: 700px; margin: 8px 0 0; color: var(--muted); }
.stat-row { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; max-width: 1320px; margin: 0 auto 22px; }
.stat-row article { padding: 17px 19px; background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 8px 24px rgba(48,43,117,.05); }
.stat-row span,.stat-row strong { display: block; }
.stat-row span { color: var(--muted); font-size: .73rem; font-weight: 800; text-transform: uppercase; }
.stat-row strong { margin-top: 4px; color: var(--deep); font-size: 1.55rem; }
.management-search { display: block; max-width: 1320px; margin: 0 auto 18px; color: var(--deep); font-size: .78rem; font-weight: 850; }
.management-search input { display: block; width: 100%; min-height: 47px; margin-top: 6px; padding: 10px 14px; background: #fff; border: 1px solid #cbc6d8; border-radius: 12px; outline: none; }
.management-list,.client-grid,.service-grid { max-width: 1320px; margin: 0 auto; }
.management-list { display: grid; gap: 11px; }
.client-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.record-card { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 18px; background: #fff; border: 1px solid var(--line); border-radius: 15px; box-shadow: 0 8px 24px rgba(48,43,117,.05); }
.record-copy { min-width: 0; }
.record-copy h3 { margin: 0 0 4px; color: var(--deep); font-size: .98rem; }
.record-copy p { margin: 0; color: var(--muted); font-size: .79rem; }
.record-meta { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.record-badge { display: inline-flex; align-items: center; padding: 4px 8px; color: var(--purple); background: #f0edff; border-radius: 999px; font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.record-badge.pending { color: #8a5a00; background: #fff4d1; }
.record-badge.approved,.record-badge.active { color: var(--success); background: #e8f7ef; }
.record-badge.rejected,.record-badge.inactive { color: var(--danger); background: #fff0f1; }
.record-badge.confirmed,.record-badge.completed { color: var(--success); background: #e8f7ef; }.record-badge.declined { color: var(--danger); background: #fff0f1; }.record-badge.maintenance { color: #8a5a00; background: #fff4d1; }
.client-card { padding: 17px; background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 8px 24px rgba(48,43,117,.05); }
.client-card h3 { margin: 0 0 4px; color: var(--deep); font-size: 1rem; }
.client-card p { margin: 4px 0; color: var(--muted); font-size: .78rem; }
.client-card .button { margin-top: 11px; }
.service-card-db { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 10px 30px rgba(48,43,117,.07); }
.service-card-db .service-db-image { width: 100%; height: 175px; object-fit: cover; }
.service-card-content { padding: 16px; }
.service-sku { display: block; margin-bottom: 5px; color: var(--orange); font-size: .66rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.service-card-content h3 { margin: 0 0 5px; color: var(--deep); font-size: 1.05rem; }
.service-card-content p { min-height: 40px; margin: 0 0 10px; color: var(--muted); font-size: .78rem; }
.service-price { color: var(--purple); font-size: 1.18rem; font-weight: 900; }
.service-card-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.permission-banner { display: flex; align-items: center; gap: 12px; max-width: 1320px; margin: 0 auto 20px; padding: 14px 17px; color: var(--deep); background: #fff8e5; border: 1px solid #f4df9d; border-radius: 14px; }
.permission-banner strong { flex: none; }
.permission-banner span { color: #6d5d32; font-size: .82rem; }
.permission-matrix { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; max-width: 1320px; margin: 0 auto 22px; }
.permission-matrix article { padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 15px; }
.permission-matrix strong,.permission-matrix span { display: block; }
.permission-matrix strong { color: var(--deep); }
.permission-matrix span { margin-top: 5px; color: var(--muted); font-size: .8rem; }
.record-type { display: block; margin-bottom: 4px; color: var(--orange); font-size: .65rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.management-header-actions,.calendar-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.calendar-controls strong { min-width: 160px; color: var(--deep); text-align: center; text-transform: capitalize; }
.calendar-weekdays,.calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); max-width: 1320px; margin: 0 auto; }
.calendar-weekdays { overflow: hidden; color: #fff; background: var(--purple); border-radius: 14px 14px 0 0; }
.calendar-weekdays span { padding: 10px; font-size: .72rem; font-weight: 900; text-align: center; text-transform: uppercase; }
.calendar-grid { overflow: hidden; background: var(--line); border: 1px solid var(--line); border-radius: 0 0 14px 14px; gap: 1px; box-shadow: 0 10px 30px rgba(48,43,117,.06); }
.calendar-day { min-width: 0; min-height: 128px; padding: 9px; background: #fff; }
.calendar-day.outside { background: #f7f5f9; opacity: .62; }
.calendar-day.today { box-shadow: inset 0 0 0 3px var(--yellow); }
.calendar-day > strong { display: grid; width: 26px; height: 26px; place-items: center; margin-bottom: 5px; color: var(--deep); border-radius: 50%; font-size: .78rem; }
.calendar-day.today > strong { background: var(--yellow); }
.calendar-day > div { display: grid; gap: 4px; }
.calendar-event-chip { display: grid; min-width: 0; padding: 5px 6px; overflow: hidden; color: #fff; background: var(--purple); border: 0; border-radius: 7px; font-size: .66rem; font-weight: 800; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event-chip span { color: #ffe49a; font-size: .58rem; }
.calendar-day small { color: var(--muted); font-size: .62rem; }
.calendar-upcoming { max-width: 1320px; margin: 27px auto 0; }.calendar-upcoming h2,.section-title { color: var(--deep); }
.event-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-bottom: 14px; }
.event-detail-grid article { padding: 12px 13px; background: #f4f2f9; border-radius: 11px; }
.event-detail-grid span,.event-detail-grid strong { display: block; }.event-detail-grid span { color: var(--muted); font-size: .66rem; font-weight: 900; text-transform: uppercase; }.event-detail-grid strong { margin-top: 3px; color: var(--deep); font-size: .82rem; }
.compact-list { margin-top: 14px; }.compact-list .record-card { padding: 11px 13px; }
.supplier-section-title { max-width: 1320px; padding-top: 28px; margin: 26px auto 12px; border-top: 1px solid var(--line); }
.supplier-section-title h2,.supplier-section-title p { margin: 0; }.supplier-section-title p { margin-top: 4px; color: var(--muted); }
.supplier-staff-editor { padding: 16px; margin: 16px 0; background: #faf9fc; border: 1px solid var(--line); border-radius: 14px; }
.supplier-staff-row { display: grid; grid-template-columns: minmax(150px,1.25fr) minmax(120px,.8fr) minmax(130px,.85fr) minmax(150px,1fr) 34px; gap: 8px; align-items: end; padding: 10px; margin-top: 8px; background: #fff; border: 1px solid var(--line); border-radius: 11px; }
.supplier-staff-row label { color: var(--deep); font-size: .7rem; font-weight: 850; }.supplier-staff-row input { width: 100%; min-height: 39px; margin-top: 5px; padding: 8px 9px; border: 1px solid #cec9dc; border-radius: 9px; }
.supplier-staff-picker { padding: 12px 14px; margin: 12px 0; background: #fff; border: 1px solid var(--line); border-radius: 12px; }.supplier-staff-picker legend { padding: 0 6px; color: var(--deep); font-size: .76rem; font-weight: 850; }.supplier-staff-picker > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }.supplier-staff-picker label { display: flex; align-items: center; gap: 8px; padding: 9px 10px; background: #f5f3f9; border-radius: 9px; cursor: pointer; }.supplier-staff-picker label span { min-width: 0; }.supplier-staff-picker label small { display: block; color: var(--muted); }
.event-brief-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px; margin-top: 14px; background: #f4f2f9; border: 1px solid #ded9e8; border-radius: 12px; }
.event-brief-actions strong,.event-brief-actions span { display: block; }.event-brief-actions span { margin-top: 3px; color: var(--muted); font-size: .76rem; }
.event-checklist { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }.event-task { display: flex; min-height: 44px; align-items: center; gap: 9px; padding: 9px 11px; color: var(--deep); background: #fff; border: 1px solid var(--line); border-radius: 11px; text-align: left; }.event-task span { display: grid; width: 22px; height: 22px; flex: none; place-items: center; color: #fff; background: #ddd9e8; border-radius: 7px; font-size: .75rem; }.event-task strong { font-size: .76rem; }.event-task.completed { color: #276347; background: #eef9f2; border-color: #c7e6d2; }.event-task.completed span { background: var(--success); }
.calendar-team { margin-top: 5px!important; color: var(--deep)!important; font-weight: 750; }
.calendar-event-chip small { display: block; overflow: hidden; color: #fff; font-size: .55rem; text-overflow: ellipsis; white-space: nowrap; }
.import-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; max-width: 1320px; margin: 0 auto 28px; }
.import-card { display: flex; min-width: 0; flex-direction: column; padding: 19px; background: #fff; border: 1px solid var(--line); border-radius: 17px; box-shadow: 0 8px 24px rgba(48,43,117,.05); }
.import-card h2 { margin: 0; color: var(--deep); font-size: 1.08rem; }.import-card p { flex: 1; color: var(--muted); font-size: .76rem; }.import-card input { width: 100%; margin: 10px 0 13px; padding: 10px; color: var(--muted); background: #f8f6fb; border: 1px dashed #bdb7cc; border-radius: 10px; }.import-card .button { align-self: flex-start; }
.section-title { max-width: 1320px; margin: 0 auto 14px; font-size: 1.25rem; }
.finance-insights { max-width: 1320px; padding-top: 26px; margin: 26px auto 0; border-top: 1px solid var(--line); }.forecast-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-top: 15px; }.forecast-grid article { padding: 16px; background: #fff; border: 1px solid var(--line); border-radius: 15px; }.forecast-grid span,.forecast-grid strong,.forecast-grid small { display: block; }.forecast-grid span { color: var(--muted); font-size: .7rem; font-weight: 850; text-transform: uppercase; }.forecast-grid strong { margin-top: 4px; color: var(--deep); font-size: 1.35rem; }.forecast-grid small { margin-top: 4px; color: var(--muted); font-size: .7rem; }.performance-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 24px; }.performance-grid > section { padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 17px; }.performance-grid h2 { margin: 0 0 13px; color: var(--deep); font-size: 1.05rem; }.performance-grid .record-card { box-shadow: none; }
.checkbox-field { display: flex; min-height: 44px; align-items: center; gap: 9px; padding: 10px 12px; background: #f8f6fc; border-radius: 10px; }
.checkbox-field input { width: 18px; min-height: 18px; margin: 0; }
.pricing-rule-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 14px; background: #fff8e5; border: 1px solid #f1dda0; border-radius: 12px; }
.pricing-rule-fields[hidden],.service-options-editor[hidden] { display: none; }
.service-options-editor { padding: 14px; background: #f8f6fc; border: 1px solid var(--line); border-radius: 13px; }
.photo-uploader { padding: 15px; background: #f8f6fc; border: 1px solid var(--line); border-radius: 13px; }
.photo-upload-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.photo-upload-slot { min-width: 0; padding: 10px; background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.photo-preview { position: relative; display: grid; width: 100%; aspect-ratio: 4 / 3; place-items: center; overflow: hidden; margin-bottom: 9px; color: var(--muted); background: #f0edf5; border: 1px dashed #bbb5ce; border-radius: 9px; font-size: .75rem; font-weight: 850; }
.photo-preview img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.photo-upload-slot > div:last-child { display: flex; flex-wrap: wrap; gap: 5px; }
.photo-upload-slot .button { flex: 1; min-width: 115px; white-space: normal; }
.photo-remove { padding: 5px 7px; color: var(--danger); background: transparent; border: 0; font-size: .72rem; font-weight: 850; }
.crop-dialog { width: min(95vw, 980px); }
.crop-body { display: grid; gap: 16px; }
.crop-body canvas { display: block; width: auto; max-width: 100%; height: auto; max-height: 52vh; aspect-ratio: 4 / 3; justify-self: center; background: #ece9f3; border: 1px solid var(--line); border-radius: 14px; }
.crop-controls { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.crop-controls label { color: var(--deep); font-size: .76rem; font-weight: 850; }
.crop-controls input { width: 100%; margin-top: 7px; accent-color: var(--purple); }
.crop-actions { display: flex; justify-content: flex-end; gap: 9px; }
.service-option-editor { display: grid; grid-template-columns: 1fr 1.3fr 120px 34px; gap: 8px; align-items: end; padding: 10px; margin-top: 8px; background: #fff; border: 1px solid var(--line); border-radius: 11px; }
.service-option-editor.with-cost { grid-template-columns: 1fr 1.2fr 115px 115px 34px; }
.service-option-editor label { font-size: .7rem; }.service-option-editor input { width: 100%; margin-top: 4px; padding: 8px; border: 1px solid #d3cedd; border-radius: 8px; }
.remove-option { width: 34px; height: 34px; color: var(--danger); background: #fff0f1; border: 1px solid #efd7d9; border-radius: 8px; font-size: 1.1rem; }
.empty-state.compact { padding: 15px; }
.service-config-dialog { width: min(94vw,900px); }
.service-config-intro { display: grid; grid-template-columns: 150px 1fr; gap: 16px; align-items: center; margin-bottom: 18px; }
.service-config-intro img { width: 150px; height: 110px; object-fit: cover; border-radius: 13px; }
.service-config-intro img.missing { padding: 22px; object-fit: contain; background: #f3f0fa; }
.service-config-intro p { margin: 0 0 6px; color: var(--deep); font-weight: 750; }.service-config-intro small { color: var(--muted); font-weight: 850; text-transform: uppercase; }
.config-options-list { display: grid; gap: 9px; }
.config-option { display: grid; grid-template-columns: minmax(0,1fr) 82px 145px; gap: 10px; align-items: center; padding: 11px 12px; background: #faf9fc; border: 1px solid var(--line); border-radius: 12px; }
.config-option-check { display: flex; align-items: center; gap: 10px; }.config-option-check input { width: 19px; height: 19px; flex: none; }.config-option-check strong,.config-option-check small { display: block; }.config-option-check small { margin-top: 2px; color: var(--muted); font-size: .7rem; }
.config-option > label:not(.config-option-check) { color: var(--muted); font-size: .68rem; font-weight: 850; }.config-option > label input { width: 100%; margin-top: 4px; padding: 8px; border: 1px solid #d3cedd; border-radius: 8px; }
.config-total { display: flex; align-items: center; justify-content: space-between; margin: 16px 0 10px; padding: 14px 16px; color: #fff; background: var(--purple); border-radius: 12px; }.config-total span { font-size: .78rem; font-weight: 850; text-transform: uppercase; }.config-total strong { font-size: 1.35rem; }
.approval-hint { padding: 11px 13px; margin-top: 14px; color: #68531b; background: #fff7dc; border-radius: 10px; font-size: .78rem; font-weight: 750; }
.client-picker-list { display: grid; max-height: 260px; gap: 8px; overflow: auto; }
.client-picker-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 13px; background: #faf9fc; border: 1px solid var(--line); border-radius: 11px; }
.client-picker-item strong,.client-picker-item span { display: block; }
.client-picker-item span { color: var(--muted); font-size: .75rem; }
.preview-dialog { width: min(96vw,1280px); }
.preview-dialog-body { position: relative; z-index: 1; display: grid; gap: 24px; padding: 24px; background: #eceaf1; }
.preview-dialog-body .pdf-page { display: block !important; width: 100%; box-shadow: var(--shadow); }
.image-placeholder { display: grid; place-items: center; color: #8a86a2; background: linear-gradient(135deg,#f4f1f9,#e9e5f1); }
.image-placeholder span { font-size: .7rem; font-weight: 850; text-transform: uppercase; }

.pdf-page { position: relative; width: 100%; aspect-ratio: 297 / 210; overflow: hidden; color: var(--purple); background: var(--yellow); box-shadow: var(--shadow); container-type: inline-size; font-family: "Trebuchet MS", Arial, sans-serif; }
.brand-yellow { background: #ffb509 url("/assets/proposta/fundo-amarelo.png") center / cover no-repeat; }
.brand-white { background: #fff url("/assets/proposta/fundo-branco.png") center / cover no-repeat; }
.brand-pattern { position: absolute; inset: 0; pointer-events: none; }
.pdf-page .page-logo { position: absolute; z-index: 3; top: 4.3%; left: 4%; width: 13%; }
.pdf-page .page-logo.compact { width: 8.2%; }
.pdf-page .page-inner { position: absolute; inset: 0; z-index: 1; }

.cover-page .cover-logo { position: absolute; z-index: 2; top: 25%; left: 28%; width: 44%; }
.cover-client { position: absolute; z-index: 3; top: 63%; right: 23%; left: 23%; display: grid; justify-items: center; color: var(--purple); text-align: center; text-transform: uppercase; }
.cover-client span { font-size: 1.05cqw; font-weight: 900; letter-spacing: .16em; }
.cover-client strong { margin-top: .35cqw; font-size: 1.65cqw; }
.cover-client small { margin-top: .2cqw; font-size: .95cqw; font-weight: 750; }
.cover-meta { display: flex; align-items: center; gap: 1.15cqw; margin-top: 1.15cqw; padding: .7cqw 1.25cqw; background: rgba(255,255,255,.88); border: .12cqw solid rgba(80,76,162,.2); border-radius: 999px; font-size: .82cqw; letter-spacing: .05em; }
.cover-meta i { width: .18cqw; height: 1.2cqw; background: var(--yellow); }
.cover-wave { position: absolute; z-index: 2; bottom: -8%; width: 45%; height: 20%; background: var(--purple); border-radius: 50% 50% 0 0 / 70% 70% 0 0; }
.wave-one { left: -5%; }.wave-two { left: 28%; }.wave-three { right: -5%; }

.about-page .page-inner { display: grid; grid-template-columns: 45% 48%; gap: 4.5%; align-items: center; padding: 11.5% 4.5% 5%; }
.about-left h2 { display: inline-block; margin: 0 0 4%; padding: 2.8% 5.5%; color: var(--purple); background: #fff; box-shadow: 0 .45cqw 1.2cqw rgba(66,55,118,.16); font-size: 3.15cqw; line-height: 1; text-transform: uppercase; }
.about-left p { margin: 0 0 2.3%; padding: 3.3% 4.5%; color: #fff; background: var(--purple); font-size: 1.48cqw; line-height: 1.28; }
.about-social { overflow: hidden; padding: 1.3cqw; color: #fff; background: var(--purple); border-radius: 1.3cqw; }
.social-head { padding: .25cqw .4cqw 1cqw; font-size: 1.4cqw; }
.about-photo { width: 100%; height: 29cqw; object-fit: cover; border: .6cqw solid var(--yellow); border-radius: 1.7cqw; }
.social-icons { height: 3.1cqw; padding: .35cqw .4cqw 0; font-size: 1.75cqw; letter-spacing: .1em; }

.offer-page .page-inner { display: flex; flex-direction: column; padding: 4.5% 6.2% 4%; }
.offer-page h2 { margin: 0 0 1.8%; color: var(--purple); font-size: 3.1cqw; text-align: center; }
.offer-grid { display: grid; min-height: 0; flex: 1; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(3,minmax(0,1fr)); gap: 1.05cqw .95cqw; }
.offer-card { display: grid; min-height: 0; grid-template-rows: minmax(0,1fr) 2.65cqw; overflow: hidden; background: var(--purple); border: .35cqw solid var(--purple); }
.offer-card img,.offer-card .image-placeholder { width: 100%; height: 100%; object-fit: cover; }
.offer-card strong { display: grid; place-items: center; padding: .3cqw .4cqw; color: #fff; font-size: 1.02cqw; line-height: 1.02; text-align: center; }

.quote-page .page-inner { display: flex; flex-direction: column; padding: 5.2% 3.3% 3.5%; }
.quote-heading { margin: 0 auto 2.4%; text-align: center; }
.quote-heading h2, .quote-heading h3, .quote-heading p { margin: 0; text-transform: uppercase; }
.quote-heading h2 { font-size: 2.85cqw; line-height: 1; }
.quote-heading h3 { margin-top: .55cqw; font-size: 1.65cqw; line-height: 1; }
.quote-heading p { font-size: 1.35cqw; font-weight: 850; }
.quote-number { position: absolute; top: 3.4%; right: 3.5%; font-size: .82cqw; font-weight: 850; text-align: right; }
.quote-number span { display: block; }
.quote-columns { display: grid; grid-template-columns: 15% 1fr 14%; padding: 0 .35cqw .4cqw; color: var(--purple); font-size: .75cqw; font-weight: 900; text-transform: uppercase; }
.quote-columns span:nth-child(2) { padding-left: 1cqw; }.quote-columns span:last-child { text-align: right; }
.quote-table { display: grid; gap: .65cqw; }
.quote-row { display: grid; grid-template-columns: 15% 1fr 14%; min-height: 5.65cqw; color: var(--purple); background: rgba(255,250,247,.97); }
.quote-service, .quote-description, .quote-value { display: flex; align-items: center; padding: .85cqw 1.15cqw; }
.quote-service { justify-content: center; border-right: .4cqw solid var(--purple); font-size: 1.3cqw; font-weight: 900; line-height: 1; text-align: center; text-transform: uppercase; }
.quote-description { font-size: 1.25cqw; line-height: 1.22; }
.quote-description ul { padding: 0; margin: 0; list-style-position: inside; }
.quote-description li:first-child { font-weight: 900; }
.quote-value { justify-content: flex-end; border-left: .4cqw solid var(--purple); font-size: 1.25cqw; font-weight: 800; white-space: nowrap; }
.quote-total { display: grid; grid-template-columns: 1fr 24%; min-height: 4cqw; align-items: center; margin-top: .85cqw; padding: 0 1.25cqw; color: var(--purple); background: rgba(255,250,247,.97); font-size: 1.35cqw; font-weight: 900; text-align: right; }
.quote-footer { display: flex; justify-content: space-between; gap: 4%; margin-top: 1.15cqw; color: var(--deep); font-size: .76cqw; }
.quote-footer p { margin: 0; }

.detail-title { position: absolute; z-index: 2; top: 4.5%; left: 31%; width: 38%; padding: 1.7% 2%; background: #fff; box-shadow: 0 .5cqw 1.3cqw rgba(71,57,103,.18); text-align: center; }
.detail-title h2 { margin: 0; color: var(--purple); font-size: 3.05cqw; line-height: 1.05; }
.detail-layout { position: absolute; inset: 23% 6% 7%; display: grid; grid-template-columns: 43% 1fr; gap: 4%; align-items: center; }
.detail-copy { max-height: 100%; overflow: hidden; padding: 5.5% 6%; color: #fff; background: var(--purple); border-radius: 2.1cqw; }
.detail-copy > p { margin: 0 0 1.1cqw; font-size: 1.42cqw; line-height: 1.42; }
.detail-selected { display: grid; gap: .75cqw; padding: 0; margin: 0; list-style: none; }
.detail-selected li { padding-top: .65cqw; border-top: 1px solid rgba(255,255,255,.25); }
.detail-selected strong,.detail-selected span { display: block; }.detail-selected strong { font-size: 1.18cqw; }.detail-selected span { margin-top: .2cqw; font-size: .95cqw; line-height: 1.3; }
.detail-gallery { display: grid; grid-template-columns: 1.08fr .92fr; grid-template-rows: 1fr 1fr; gap: 1.5cqw; height: 100%; align-items: stretch; }
.detail-gallery img,.detail-photo-empty { width: 100%; height: 100%; object-fit: cover; background: rgba(255,255,255,.2); border: .55cqw solid var(--purple); border-radius: 1.35cqw; }
.detail-gallery > :first-child { grid-row: 1 / 3; }

.partners-page .page-inner { display: flex; flex-direction: column; padding: 6.5% 5.5% 4.5%; }
.partners-page h2 { margin: 0 0 4%; color: var(--purple); font-size: 2.5cqw; line-height: 1.08; text-align: center; }
.partners-page h2 strong { display: block; font-size: 3cqw; }
.partner-grid { display: grid; min-height: 0; flex: 1; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(4,minmax(0,1fr)); gap: 1.1cqw 2.4cqw; align-items: center; }
.partner-grid img { width: 100%; height: 7.4cqw; object-fit: contain; transform: scale(1.6); }

.contact-logo { position: absolute; z-index: 2; top: 5%; left: 4.5%; width: 12%; }
.contact-heading { position: absolute; z-index: 2; top: 7%; right: 7%; display: grid; justify-items: end; color: var(--purple); text-transform: uppercase; }
.contact-heading span { font-size: 1cqw; font-weight: 900; letter-spacing: .12em; }.contact-heading strong { font-size: 2.55cqw; }
.contact-columns { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(5,1fr); gap: 1%; padding: 0 4.5% 14%; align-items: end; }
.contact-strip { display: flex; min-height: 73%; flex-direction: column; align-items: center; justify-content: flex-end; padding: 8% 4% 13%; color: var(--purple); background: var(--yellow); text-align: center; }
.contact-strip img { width: 6.5cqw; height: 6.5cqw; margin-bottom: 1.3cqw; object-fit: contain; }
.contact-strip strong { font-size: .9cqw; word-break: break-word; }
.contact-tagline { position: absolute; right: 0; bottom: 5%; left: 0; margin: 0; color: var(--purple); font-size: 1.8cqw; text-align: center; }

.internal-cost { display: block; padding-top: 5px; color: #6f4a00 !important; font-weight: 800; }
.finance-month-control { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; }.finance-month-control label { margin: 0; }
.finance-stat-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; max-width: 1500px; margin: 0 auto 16px; }
.finance-stat-grid article { padding: 15px; background: #fff; border: 1px solid var(--line); border-radius: 15px; box-shadow: 0 7px 20px rgba(48,43,117,.05); }.finance-stat-grid span,.finance-stat-grid strong { display: block; }.finance-stat-grid span { min-height: 28px; color: var(--muted); font-size: .66rem; font-weight: 850; text-transform: uppercase; }.finance-stat-grid strong { margin-top: 4px; color: var(--deep); font-size: 1.18rem; }.finance-stat-grid .finance-result { color: #fff; background: var(--purple); }.finance-stat-grid .finance-result span,.finance-stat-grid .finance-result strong { color: #fff; }
.negative { color: var(--danger) !important; }
.finance-alert-panel { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 15px; max-width: 1500px; padding: 12px 15px; margin: 0 auto 18px; color: #356342; background: #eff9f2; border: 1px solid #cbe7d2; border-radius: 13px; }.finance-alert-panel strong { margin-right: 8px; }.finance-alert-panel span { font-size: .76rem; }.finance-alert-panel.has-alerts { color: #87313a; background: #fff2f3; border-color: #efc8cc; }
.finance-layout { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(300px,.75fr); gap: 18px; max-width: 1500px; margin: 0 auto; }.finance-layout > section,.finance-expenses { min-width: 0; }.finance-layout h2 { margin: 0 0 4px; }.finance-layout p { margin: 0 0 14px; color: var(--muted); }
.finance-expenses form > label { display: grid; gap: 5px; }.finance-expenses form > label input,.finance-expenses form > label textarea { width: 100%; }
.finance-expenses { align-self: start; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 17px; }.finance-expenses form { display: grid; gap: 10px; padding-bottom: 17px; border-bottom: 1px solid var(--line); }.finance-expenses form .fields { gap: 8px; }.finance-expense-list { display: grid; gap: 8px; padding-top: 13px; }.finance-expense-list > article { display: grid; grid-template-columns: minmax(0,1fr) auto 28px; gap: 8px; align-items: center; padding: 10px; background: #faf9fc; border-radius: 10px; }.finance-expense-list strong,.finance-expense-list span { display: block; }.finance-expense-list span { margin-top: 2px; color: var(--muted); font-size: .7rem; }
.finance-event-card { align-items: flex-start; }.finance-mini-grid { display: grid; grid-template-columns: repeat(3,minmax(115px,1fr)); gap: 7px; margin: 10px 0; }.finance-mini-grid span { padding: 7px 9px; color: var(--muted); background: #f6f4fa; border-radius: 8px; font-size: .67rem; }.finance-mini-grid b { display: block; margin-top: 2px; color: var(--deep); font-size: .83rem; }
.finance-dialog { width: min(96vw,1050px); }.finance-event-totals { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; margin-bottom: 15px; }.finance-event-totals article { padding: 12px; background: #f5f3f9; border-radius: 11px; }.finance-event-totals span,.finance-event-totals strong { display: block; }.finance-event-totals span { color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }.finance-event-totals strong { margin-top: 3px; color: var(--deep); font-size: 1rem; }.finance-event-totals .highlight { color: #fff; background: var(--purple); }.finance-event-totals .highlight span,.finance-event-totals .highlight strong { color: #fff; }.invoice-action { display: flex; align-items: center; justify-content: space-between; gap: 15px; }.invoice-action h3,.invoice-action p { margin: 0; }.invoice-action p { margin-top: 4px; color: var(--muted); font-size: .76rem; }
.integration-safety { display: flex; align-items: center; gap: 10px 18px; max-width: 1500px; padding: 14px 17px; margin: 0 auto 18px; color: #285b3c; background: #eef9f2; border: 1px solid #c4e3ce; border-radius: 14px; }.integration-safety span { font-size: .78rem; line-height: 1.5; }.integration-safety.compact { margin: 12px 0 0; }.integration-safety.warning { color: #7c4c1e; background: #fff8eb; border-color: #edcf9b; }
.integration-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; max-width: 1500px; margin: 0 auto; }.integration-card,.integration-roadmap { padding: 20px; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 8px 24px rgba(48,43,117,.05); }.integration-card-title,.integration-card-title > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.integration-card-title > div { justify-content: flex-start; }.integration-card-title h2,.integration-card-title p { margin: 0; }.integration-card-title p { margin-top: 3px; color: var(--muted); font-size: .75rem; }.integration-icon { display: grid; place-items: center; width: 46px; height: 46px; color: #fff; background: #820ad1; border-radius: 14px; font-size: 1rem; font-weight: 900; }.integration-icon.fiscal { background: var(--purple); }
.integration-checklist { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin: 17px 0; }.integration-check { display: flex; align-items: center; gap: 8px; padding: 9px 10px; background: #f3f8f4; border-radius: 10px; font-size: .7rem; }.integration-check > span { display: grid; place-items: center; width: 20px; height: 20px; color: #fff; background: #3c8a57; border-radius: 50%; font-weight: 900; }.integration-check.pending { color: #74501f; background: #fff7e8; }.integration-check.pending > span { background: #e79a2b; }.secure-toggle { display: flex !important; align-items: flex-start; gap: 10px; padding: 12px; margin-top: 10px; background: #f7f5fa; border-radius: 11px; }.secure-toggle input { width: auto !important; min-height: auto !important; margin-top: 3px; }.secure-toggle span,.secure-toggle small { display: block; }.secure-toggle small { margin-top: 3px; color: var(--muted); font-size: .66rem; }.integration-roadmap { grid-column: 1/-1; }.integration-roadmap h2,.integration-roadmap p { margin: 0; }.integration-roadmap p { margin-top: 5px; color: var(--muted); }.roadmap-steps { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; margin-top: 15px; }.roadmap-steps span { padding: 10px; color: var(--deep); background: #f4f2f8; border-radius: 10px; font-size: .7rem; font-weight: 800; text-align: center; }.integration-actions { grid-column: 1/-1; display: flex; justify-content: flex-end; }
.payout-batch-panel { margin-top: 12px; }.payout-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }.payout-summary > div { padding: 11px; background: #f5f3f9; border-radius: 11px; }.payout-summary span,.payout-summary strong { display: block; }.payout-summary span { color: var(--muted); font-size: .65rem; font-weight: 800; text-transform: uppercase; }.payout-summary strong { margin-top: 3px; color: var(--deep); }.payout-warning { padding: 10px 12px; color: #7b3a42; background: #fff0f1; border-radius: 9px; }.payout-items { display: grid; gap: 7px; margin-top: 10px; }.payout-item { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 10px; padding: 11px 12px; background: #f3f8f4; border-left: 4px solid #4a9a61; border-radius: 10px; }.payout-item.blocked { background: #fff5f1; border-color: #d87352; }.payout-item span,.payout-item small { display: block; margin-top: 2px; color: var(--muted); font-size: .68rem; }.payout-item small { color: #8a4148; }

.dialog { width: min(94vw, 850px); max-height: 89vh; padding: 0; color: var(--ink); background: #fff; border: 0; border-radius: 22px; box-shadow: 0 28px 90px rgba(30,25,70,.34); }
.dialog::backdrop { background: rgba(32,27,65,.64); backdrop-filter: blur(4px); }
.dialog-header { position: sticky; z-index: 50; top: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 21px; background: #fff; border-bottom: 1px solid var(--line); }
.dialog-header .eyebrow { margin-bottom: 2px; }
.dialog-close { width: 38px; height: 38px; flex: none; padding: 0; color: var(--purple); background: #f1effb; border: 0; border-radius: 50%; font-size: 1.4rem; }
.dialog-body { padding: 20px 21px 25px; overflow: auto; }
.search-field { display: block; margin-bottom: 15px; }
.catalog-list, .saved-list { display: grid; gap: 10px; }
.catalog-item, .saved-item { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; background: #faf9fc; border: 1px solid var(--line); border-radius: 13px; }
.catalog-item-copy, .saved-item-copy { min-width: 0; }
.catalog-item h3, .saved-item h3 { margin: 0 0 3px; font-size: .95rem; }
.catalog-item p, .saved-item p { margin: 0; color: var(--muted); font-size: .77rem; }
.item-actions { display: flex; flex: none; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.dialog-separator { height: 1px; margin: 21px 0; background: var(--line); }
.form-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; margin-bottom: 14px; }
.form-title h3 { font-size: 1rem; }
.form-title p { margin: 3px 0 0; color: var(--muted); font-size: .78rem; }
.catalog-form > .button { margin-top: 15px; }
.empty-state { padding: 26px; color: var(--muted); background: #faf9fc; border: 1px dashed #ccc7d8; border-radius: 13px; text-align: center; }
.notice { padding: 12px 14px; margin: 14px 0; border-radius: 11px; font-weight: 750; }
.notice.error { color: #95252e; background: #fff0f1; }
.person-type-switch { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0 0 3px; border: 0; }
.person-type-switch legend { width: 100%; margin-bottom: 5px; color: var(--deep); font-size: .77rem; font-weight: 850; }
.person-type-switch label { position: relative; margin: 0; }
.person-type-switch input { position: absolute; opacity: 0; pointer-events: none; }
.person-type-switch span { display: block; padding: 10px 16px; color: var(--deep); background: #f3f1f8; border: 1px solid #d7d2e3; border-radius: 999px; cursor: pointer; }
.person-type-switch input:checked + span { color: #fff; background: var(--purple); border-color: var(--purple); box-shadow: 0 0 0 3px rgba(79,75,161,.14); }
.contract-dialog { width: min(96vw, 1050px); }
.contract-status-panel { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-bottom: 18px; }
.contract-status-panel > div { padding: 13px 15px; color: var(--deep); background: #f4f2f9; border-radius: 12px; }
.contract-status-panel span,.contract-status-panel strong { display: block; }.contract-status-panel span { margin-bottom: 3px; color: var(--muted); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.contract-edit-section { padding: 16px; margin: 0 0 14px; background: #faf9fc; border: 1px solid var(--line); border-radius: 14px; }
.contract-edit-section h3 { margin: 0 0 12px; }
.contract-edit-section > textarea { width: 100%; padding: 12px; color: var(--ink); background: #fff; border: 1px solid #cec9dc; border-radius: 10px; font: inherit; line-height: 1.5; resize: vertical; }
.contract-link-panel { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; margin: 12px 0; background: #eef8f1; border: 1px solid #c9e5d1; border-radius: 12px; }
.contract-link-panel span,.contract-link-panel a { display: block; }.contract-link-panel span { color: #55705c; font-size: .68rem; font-weight: 850; text-transform: uppercase; }.contract-link-panel a { max-width: 680px; overflow: hidden; color: var(--deep); font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.contract-actions,.contract-admin-actions,.contract-preview-toolbar { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.contract-admin-actions { padding-top: 14px; margin-top: 14px; border-top: 1px solid var(--line); }
.contract-preview-toolbar { padding: 12px 22px; background: #f4f2f9; }
.contract-preview-pages { display: grid; gap: 22px; padding: 22px; background: #dedbe6; }
.contract-sheet { box-sizing: border-box; width: 210mm; min-height: 297mm; padding: 19mm 20mm 18mm; margin: 0 auto; color: #181818; background: #fff; box-shadow: 0 12px 38px rgba(30,25,70,.16); font-family: Arial, sans-serif; font-size: 10.5pt; line-height: 1.55; }
.contract-sheet header { padding-bottom: 10mm; margin-bottom: 7mm; text-align: center; border-bottom: 2px solid var(--purple); }.contract-sheet header img { width: 48mm; }.contract-sheet header h1 { margin: 7mm 0 1mm; color: var(--purple); font-size: 15pt; text-transform: uppercase; }.contract-sheet header p { margin: 0; font-size: 9pt; }
.contract-sheet h2 { margin: 7mm 0 3mm; color: var(--purple); font-size: 11pt; text-transform: uppercase; }.contract-sheet p { margin: 0 0 4mm; text-align: justify; }.contract-sheet .contract-pre { white-space: pre-wrap; }.contract-sheet .contract-signatures { display: grid; grid-template-columns: 1fr 1fr; gap: 16mm; margin-top: 18mm; text-align: center; }.contract-signatures div { padding-top: 3mm; border-top: 1px solid #222; }.contract-signatures img { display: block; width: 42mm; height: 18mm; margin: -20mm auto 2mm; object-fit: contain; }
#contractPrintPages { display: none; }
.toast { position: fixed; z-index: 100; right: 20px; bottom: 20px; max-width: 360px; padding: 13px 16px; color: #fff; background: var(--deep); border-radius: 12px; box-shadow: var(--shadow); font-weight: 750; opacity: 0; pointer-events: none; transform: translateY(12px); transition: .2s ease; }
.toast.visible { opacity: 1; transform: none; }
.toast.error { background: var(--danger); }

@media (max-width: 1180px) { .workspace { grid-template-columns: minmax(560px,1fr) minmax(330px,390px); } .editor { padding: 21px; } .signed-user span { display: none; } }
@media (max-width: 960px) { .topbar { position: static; align-items: flex-start; flex-direction: column; } .top-actions { width: 100%; flex-wrap: wrap; } .section-nav { position: static; width: 100%; min-width: 0; align-items: flex-start; flex-direction: column; } .signed-user { padding-left: 0; border-left: 0; } .workspace { grid-template-columns: 1fr; } .editor { border-right: 0; } .dashboard-layout { grid-template-columns: 1fr; }.dashboard-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.nav-menu-panel-right { right: auto; left: 0; } }
@media (max-width: 590px) {
  .topbar { padding: 12px; } .brand span { display: none; } .top-button { min-height: 36px; padding: 6px 10px; font-size: .75rem; }
  .editor { padding: 18px 12px; } .fields { grid-template-columns: 1fr; } .fields .full { grid-column: auto; } .card { padding: 16px; }
  .item-editor { grid-template-columns: 35px minmax(0,1fr) 33px; } .item-price { grid-column: 2 / 3; } .preview { padding: 20px 8px 40px; }
  .catalog-item, .saved-item { align-items: flex-start; flex-direction: column; } .item-actions { justify-content: flex-start; } .service-option-editor,.config-option,.pricing-rule-fields,.service-config-intro,.photo-upload-grid,.crop-controls,.supplier-staff-row,.supplier-staff-picker > div { grid-template-columns: 1fr; } .service-config-intro img { width: 100%; height: 180px; }
  .management-view { padding: 24px 12px; } .management-header { align-items: flex-start; flex-direction: column; } .stat-row,.client-grid,.service-grid,.permission-matrix,.contract-status-panel,.import-grid,.event-detail-grid,.finance-stat-grid,.finance-layout,.finance-event-totals,.integration-grid,.payout-summary,.payout-item,.dashboard-stat-grid,.dashboard-shortcuts,.forecast-grid,.performance-grid,.event-checklist { grid-template-columns: 1fr; } .integration-roadmap,.integration-actions { grid-column: 1; }.integration-checklist { grid-template-columns: 1fr; }.roadmap-steps { grid-template-columns: 1fr 1fr; }.finance-mini-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.invoice-action,.integration-safety { align-items: flex-start; flex-direction: column; } .record-card { align-items: flex-start; flex-direction: column; }.event-brief-actions { align-items: flex-start; flex-direction: column; }.section-tabs { gap: 4px; }.section-tab,.nav-menu > summary { padding: 7px 9px; font-size: .75rem; }.nav-menu-panel { right: auto; left: 0; min-width: min(82vw,260px); }
  .calendar-weekdays span { padding: 7px 2px; font-size: .6rem; }.calendar-day { min-height: 78px; padding: 4px; }.calendar-day > strong { width: 21px; height: 21px; font-size: .65rem; }.calendar-event-chip { padding: 4px; font-size: 0; }.calendar-event-chip span { font-size: .56rem; }.calendar-controls { justify-content: flex-start; }
}

@media print {
  @page { size: A4 landscape; margin: 0; }
  @page contract { size: A4 portrait; margin: 0; }
  html, body { width: 100%; margin: 0; padding: 0; background: #fff; }
  body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .login-view, .topbar, .section-nav, .editor, .preview-header, .management-view, .dialog, .toast { display: none !important; }
  .app-shell, .workspace, .preview, .preview-pages { display: block !important; width: 100%; min-height: 0; margin: 0; padding: 0; background: #fff; }
  .preview-pages { max-width: none; }
  .preview-pages .pdf-page { display: block !important; width: 297mm; height: 210mm; aspect-ratio: auto; margin: 0; break-after: page; page-break-after: always; border: 0; box-shadow: none; }
  .pdf-page:last-child { break-after: auto; page-break-after: auto; }
  body.printing-contract .app-shell, body.printing-contract .login-view { display: none !important; }
  body.printing-contract #contractPrintPages { display: block !important; width: 210mm; margin: 0; padding: 0; }
  body.printing-contract #contractPrintPages .contract-sheet { display: block !important; width: 210mm; min-height: 297mm; padding: 19mm 20mm 18mm; margin: 0; box-shadow: none; page: contract; break-after: page; page-break-after: always; }
  body.printing-contract #contractPrintPages .contract-sheet:last-child { break-after: auto; page-break-after: auto; }
}
