﻿@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root {
  --ink:#0F172A;--ink-2:#1E293B;--muted:#64748B;--line:#E2E8F0;--line-2:#CBD5E1;
  --paper:#F1F5F9;--panel:#FFFFFF;
  --blue:#1E40AF;--blue-dark:#1E3A8A;--blue-mid:#2563EB;--blue-light:#EFF6FF;--blue-border:#BFDBFE;
  --green:#059669;--ok-bg:#ECFDF5;
  --gold:#B45309;--gold-bg:#FFFBEB;--gold-border:#FDE68A;
  --red:#EF4444;--danger:#DC2626;--bad-bg:#FEF2F2;--warn-bg:#FFFBEB;
  --shadow-xs:0 1px 2px rgba(15,23,42,.05);
  --shadow-sm:0 1px 4px rgba(15,23,42,.07),0 1px 2px rgba(15,23,42,.04);
  --shadow:0 4px 14px rgba(15,23,42,.08),0 2px 4px rgba(15,23,42,.04);
  --shadow-lg:0 12px 40px rgba(15,23,42,.13),0 4px 12px rgba(15,23,42,.06);
  --radius-sm:7px;--radius:10px;--radius-lg:14px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Inter',Arial,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--blue-mid);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4,p{margin:0}
h1{font-size:22px;font-weight:700;letter-spacing:-.4px}
h2{font-size:16px;font-weight:600;letter-spacing:-.2px}
small{font-size:12px;line-height:1.4}

button,.button-link{border:1.5px solid var(--blue-mid);background:var(--blue-mid);color:#fff;border-radius:var(--radius-sm);padding:9px 16px;min-height:38px;font-weight:600;font-size:13.5px;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;letter-spacing:-.1px;transition:background .15s,border-color .15s,box-shadow .15s,transform .1s}
button:hover,.button-link:hover{background:var(--blue);border-color:var(--blue);text-decoration:none;box-shadow:0 2px 10px rgba(37,99,235,.28)}
button:active{transform:translateY(1px)}
button:disabled{opacity:.5;cursor:not-allowed}
.danger{background:var(--danger);border-color:var(--danger)}
.danger:hover{background:#b91c1c;border-color:#b91c1c;box-shadow:0 2px 8px rgba(220,38,38,.28)}
.secondary-action,.customer-clear{background:#fff;color:var(--blue-mid);border-color:var(--line-2);font-weight:600}
.secondary-action:hover,.customer-clear:hover{background:var(--blue-light);border-color:var(--blue-border);color:var(--blue);box-shadow:none}

input,select,textarea{width:100%;border:1.5px solid var(--line-2);border-radius:var(--radius-sm);padding:9px 12px;min-height:40px;background:#fff;color:var(--ink);font:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue-mid);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
input:disabled{background:#F8FAFC;color:var(--muted);cursor:not-allowed}
textarea{resize:vertical}

.app-header{height:64px;background:linear-gradient(90deg,#0F172A 0%,#1E2D4D 100%);border-bottom:1px solid rgba(255,255,255,.05);display:flex;align-items:center;gap:8px;padding:0 22px;position:sticky;top:0;z-index:100;box-shadow:0 2px 16px rgba(15,23,42,.22)}
.brand{display:flex;align-items:center;gap:10px;color:#fff;min-width:200px;text-decoration:none}
.brand:hover{text-decoration:none}
.brand img{width:38px;height:38px;object-fit:contain;filter:brightness(0) invert(1);opacity:.9}
.brand strong{display:block;color:#fff;font-weight:700;font-size:15px;letter-spacing:-.2px}
.brand small,.user-box>span small,.list-table small{display:block}
.brand small{color:rgba(255,255,255,.42);font-size:11px}
.main-nav{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.main-nav::-webkit-scrollbar{display:none}
.main-nav a{padding:8px 13px;border-radius:var(--radius-sm);color:rgba(255,255,255,.6);font-weight:500;font-size:13.5px;white-space:nowrap;letter-spacing:-.1px;transition:color .15s,background .15s}
.main-nav a:hover{background:rgba(255,255,255,.09);color:#fff;text-decoration:none}
.user-box{display:flex;align-items:center;gap:10px;flex-shrink:0}
.user-box>span{display:grid;text-align:right;gap:1px}
.user-box>span strong{display:block;color:#fff;font-size:13px;font-weight:600}
.user-box>span small{color:rgba(255,255,255,.38);font-size:11px}
.user-box a{padding:7px 13px;border-radius:var(--radius-sm);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.7);font-size:12.5px;font-weight:500;transition:background .15s,color .15s}
.user-box a:hover{background:rgba(255,255,255,.14);color:#fff;text-decoration:none}

.page{padding:22px;max-width:1600px}
.app-footer{padding:16px 22px;color:var(--muted);font-size:12px}

.flash{margin:12px 22px 0;padding:11px 16px;border-radius:var(--radius-sm);background:var(--ok-bg);color:#065F46;border:1px solid #A7F3D0;font-weight:500;font-size:13.5px;display:flex;align-items:center;gap:8px}
.flash.error{background:var(--bad-bg);color:#991B1B;border-color:#FECACA}

.login-page{min-height:100vh;display:grid;place-items:center;padding:16px;background:linear-gradient(135deg,#0A1628 0%,#1E3A5F 55%,#0D1F3C 100%)}
.login-card{width:min(420px,100%);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:38px 34px;display:grid;gap:18px}
.login-card h1{text-align:center;font-size:24px;letter-spacing:-.5px;color:var(--ink)}
.login-card>p{text-align:center;color:var(--muted);font-size:13.5px;margin-top:-10px}
.login-card button{width:100%;height:44px;font-size:15px;font-weight:700}

.card,.board-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px;min-width:0}
.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}
.eyebrow{font-size:11px;text-transform:uppercase;font-weight:700;color:var(--muted);letter-spacing:.6px;margin-bottom:4px}

.stats{display:grid;grid-template-columns:repeat(4,minmax(76px,1fr));gap:8px}
.stats div{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;background:#FAFBFC}
.stats strong{display:block;font-size:22px;font-weight:700;letter-spacing:-.5px}
.stats span{display:block;font-size:11.5px;color:var(--muted);overflow-wrap:anywhere;margin-top:2px}

.legend{display:flex;gap:14px;flex-wrap:wrap;margin:10px 0 14px;color:var(--muted);font-size:13px}
.legend span{display:inline-flex;gap:6px;align-items:center}
.dot{width:11px;height:11px;border-radius:50%;border:1.5px solid rgba(0,0,0,.08);display:inline-block;flex:0 0 auto}
.empty{background:#F1F5F9}.reserved{background:#F59E0B}.deposit{background:#10B981}.sold{background:#EF4444;color:#fff}

.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.apartment-table{border-collapse:collapse;width:100%;min-width:860px;table-layout:fixed}
.apartment-table th,.apartment-table td{border:1px solid var(--line);height:54px;padding:4px;text-align:center}
.floor-label{width:54px;background:#94A3B8;font-weight:700;color:#fff;font-size:12px;letter-spacing:.2px}
.apt-btn{display:grid;width:100%;height:100%;place-items:center;border-radius:5px;color:var(--ink);font-weight:700;padding:4px;border:0;line-height:1.1;cursor:pointer;transition:filter .12s,transform .1s}
.apt-btn:hover{filter:brightness(.92);transform:scale(.96)}
.apt-btn small{font-size:10px;font-weight:500;color:rgba(15,23,42,.55)}
.apt-btn.sold small{color:rgba(255,255,255,.72)}
.apt-btn.is-active{outline:3px solid var(--blue-mid);outline-offset:-3px;box-shadow:0 0 0 6px rgba(37,99,235,.14)}

.side-panel{display:grid;gap:18px;align-content:start;min-width:0}
.details{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.details div{border:1px solid var(--line);border-radius:var(--radius-sm);background:#FAFBFC;padding:10px}
.details dt{font-size:10.5px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.details dd{margin:0;font-weight:700;overflow-wrap:anywhere;font-size:14px}

.stack{display:grid;gap:12px}
.stack label{display:grid;gap:5px;font-weight:600;color:var(--ink-2);font-size:13px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.discount-box{background:var(--gold-bg);border:1px solid var(--gold-border);border-radius:var(--radius-sm);padding:12px}
.check{display:flex !important;align-items:center;gap:8px}
.check input{width:auto;min-height:0}

.plan-list{display:grid;gap:8px;margin:10px 0}
.plan-item{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;background:#FAFBFC;font-weight:600;overflow-wrap:anywhere;transition:border-color .15s}
.plan-item:hover{border-color:var(--line-2)}
.plan-item small{color:var(--muted);flex:0 0 auto}

.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.price-grid div{border:1px solid var(--line);border-radius:var(--radius-sm);background:#FAFBFC;padding:10px}
.price-grid span{display:block;color:var(--muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.price-grid strong{font-size:15px;font-weight:700;overflow-wrap:anywhere}

.deal-line{display:grid;grid-template-columns:1fr auto;gap:4px 10px;border-top:1px solid var(--line);padding:10px 0;align-items:center}
.deal-line span,.deal-line em{color:var(--muted);font-style:normal;overflow-wrap:anywhere}

.sold-box{display:grid;gap:6px;border:1px solid #A7F3D0;background:var(--ok-bg);border-radius:var(--radius-sm);padding:12px;margin:10px 0 14px}
.sold-box span{color:#065F46;overflow-wrap:anywhere;font-weight:500}

.split-page{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:20px;align-items:start}
.wide{min-width:0}

.list-table{width:100%;border-collapse:collapse;background:#fff}
.list-table th{background:#F8FAFC;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:700;padding:10px 14px;white-space:nowrap;border-bottom:1px solid var(--line)}
.list-table td{border-bottom:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top;overflow-wrap:anywhere;font-size:13.5px}
.list-table tr:last-child td{border-bottom:0}
.list-table tbody tr:hover td{background:#F8FAFC}
.list-table small{display:block;color:var(--muted);font-size:12px;margin-top:2px}

.inline-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.inline-form select{min-width:140px}
.inline-form button{padding:8px 12px;min-height:36px}
.action-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.return-form{display:grid;grid-template-columns:minmax(150px,1fr) auto;gap:6px;margin:6px 0}

.approval{display:inline-flex;border-radius:999px;padding:4px 10px;font-weight:600;font-size:11.5px;line-height:1.3;letter-spacing:.1px}
.approval.none{background:#F1F5F9;color:#475569}
.approval.pending{background:var(--warn-bg);color:#92400E;border:1px solid var(--gold-border)}
.approval.approved{background:var(--ok-bg);color:#065F46;border:1px solid #A7F3D0}
.approval.rejected{background:var(--bad-bg);color:#991B1B;border:1px solid #FECACA}

.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:20px;align-items:start}

.contract-body{background:#E5E7EB}
.contract-toolbar{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);padding:12px 20px;display:flex;gap:10px;z-index:5;box-shadow:var(--shadow-xs)}
.contract-page{width:210mm;min-height:297mm;margin:18px auto;background:#fff;padding:22mm;box-shadow:var(--shadow-lg);font-family:Arial,sans-serif}
.contract-head{display:flex;justify-content:space-between;gap:16px;border-bottom:2px solid #111;padding-bottom:10px;margin-bottom:16px}
.contract-head p{color:var(--muted);font-family:Arial,sans-serif}
.contract-section{margin-top:18px}
.contract-section h2{font-size:18px;margin-bottom:8px}
.contract-section table{width:100%;border-collapse:collapse}
.contract-section th,.contract-section td{border:1px solid #bbb;padding:8px;text-align:left}
.contract-section th{width:38%;background:#f7f7f7}
.signatures{display:grid;grid-template-columns:1fr 1fr;gap:30mm;margin-top:28mm}
.signatures span{display:block;border-bottom:1px solid #111;height:18mm}

.customer-picker{position:relative;display:grid;gap:8px}
.customer-results{border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);overflow:hidden;max-height:260px;overflow-y:auto}
.customer-result{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);display:grid;justify-items:start;text-align:left;padding:10px 14px;white-space:normal;font-weight:500}
.customer-result:last-child{border-bottom:0}
.customer-result:hover{background:var(--blue-light);color:var(--ink)}
.customer-result span{color:var(--muted);font-size:12px}
.customer-selected{display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center;border:1px solid #A7F3D0;background:var(--ok-bg);border-radius:var(--radius-sm);padding:10px 12px}
.customer-selected span{color:#065F46;font-size:13px;font-weight:500}
.customer-clear{min-height:30px;padding:5px 10px;font-size:12px;grid-row:1/span 2;grid-column:2}
.quick-customer-form{border:1px solid var(--line);border-radius:var(--radius-sm);background:#FAFBFC;padding:12px;display:grid;gap:10px}
.error-text{color:var(--danger) !important}

.pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px}
.pagination span{color:var(--muted);font-weight:600;font-size:13px}
.button-link.is-disabled{opacity:.4;pointer-events:none}

.audit-meta{border:1px solid var(--line);border-radius:var(--radius-sm);background:#FAFBFC;padding:10px 14px;text-align:right}
.audit-meta strong{display:block;font-size:22px;font-weight:700;letter-spacing:-.5px}
.audit-meta span{display:block;color:var(--muted);font-size:12px;margin-top:2px}

.reports-hero{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;background:linear-gradient(135deg,#0F172A 0%,#1E3A5F 100%);border-radius:var(--radius);padding:26px;margin-bottom:20px}
.reports-hero .eyebrow{color:rgba(255,255,255,.45)}
.reports-hero h1{font-size:26px;line-height:1.15;color:#fff}
.reports-hero>div>p:not(.eyebrow){color:rgba(255,255,255,.55);margin-top:6px;max-width:520px;font-size:13.5px}
.report-actions{display:flex;gap:8px;flex-wrap:wrap}
.report-actions .button-link{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:#fff}
.report-actions .button-link:hover{background:rgba(255,255,255,.2);box-shadow:none}
.report-kpis{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:12px;margin-bottom:20px}
.kpi-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px;min-height:112px;display:grid;align-content:space-between;transition:box-shadow .15s,transform .15s}
.kpi-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.kpi-card span{display:block;color:var(--muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;line-height:1.3}
.kpi-card strong{display:block;font-size:30px;font-weight:700;line-height:1;letter-spacing:-1px;margin-top:8px}
.kpi-card small{color:var(--muted);font-weight:600;font-size:12px}
.kpi-card.primary{border-top:3px solid var(--blue-mid)}
.kpi-card.success{border-top:3px solid var(--green)}
.kpi-card.warning{border-top:3px solid #F59E0B}
.kpi-card.danger-soft{border-top:3px solid var(--danger)}
.report-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:18px}
.report-card{box-shadow:var(--shadow-sm)}
.report-card.span-2{grid-column:span 2}
.section-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}
.section-heading strong{font-size:24px;font-weight:700;letter-spacing:-.5px}
.source-bars{display:grid;gap:12px}
.source-row{display:grid;gap:6px}
.source-row div{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.source-row span{color:var(--muted);font-size:12px}
.source-row meter{width:100%;height:8px;border-radius:4px}
.month-bars{display:grid;grid-template-columns:repeat(12,minmax(28px,1fr));gap:8px;align-items:end;min-height:150px}
.month-bar{display:grid;gap:5px;justify-items:center;align-items:end}
.month-bar span{display:block;width:100%;max-width:26px;background:linear-gradient(180deg,var(--blue-mid),#93C5FD);border-radius:5px 5px 2px 2px}
.month-bar small{color:var(--muted);font-size:11px}
.month-bar strong{font-size:12px}
.mini-list{display:grid;gap:8px}
.mini-list div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:8px}
.mini-list div:last-child{border-bottom:0}
.mini-list span{overflow-wrap:anywhere}
.mini-list small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.compact-table th,.compact-table td{padding:9px 14px}

.plan-preview-link{position:relative;align-items:center;isolation:isolate}
.plan-preview-link:hover{background:var(--blue-light);border-color:var(--blue-border);color:var(--blue);text-decoration:none}
.plan-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plan-hover-preview{position:absolute;right:12px;bottom:calc(100% + 10px);width:min(260px,72vw);background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:10px;display:grid;gap:8px;color:var(--ink);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .16s,transform .16s,visibility .16s;pointer-events:none;z-index:40}
.plan-hover-preview::after{content:"";position:absolute;right:22px;top:100%;border:8px solid transparent;border-top-color:#fff;filter:drop-shadow(0 1px 0 var(--line))}
.plan-preview-link:hover .plan-hover-preview,.plan-preview-link:focus-visible .plan-hover-preview{opacity:1;visibility:visible;transform:translateY(0)}
.plan-hover-preview img{width:100%;aspect-ratio:4/3;object-fit:contain;border:1px solid var(--line);border-radius:var(--radius-sm);background:#F8FAFC}
.plan-hover-preview span:last-child{color:var(--muted);font-size:12px;font-weight:600}
.pdf-preview-badge{display:grid;place-items:center;min-height:120px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#F8FAFC;color:var(--danger);font-size:28px;font-weight:900}
.plan-modal{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:rgba(15,23,42,.72);z-index:100;backdrop-filter:blur(4px)}
.plan-modal[hidden]{display:none}
.plan-modal-dialog{width:min(1180px,100%);max-height:min(820px,calc(100vh - 48px));background:#fff;border-radius:var(--radius-lg);box-shadow:0 25px 80px rgba(0,0,0,.4);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
.plan-modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:14px 18px;background:#fff}
.plan-modal-title{font-size:17px;font-weight:600;line-height:1.2;overflow-wrap:anywhere}
.plan-modal-tools{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.plan-modal-close,.plan-zoom-btn{width:38px;min-width:38px;height:38px;padding:0}
.plan-zoom-btn[data-plan-zoom="reset"]{width:58px;min-width:58px;font-size:12px}
.plan-zoom-btn[data-plan-zoom="fit"]{width:48px;min-width:48px;font-size:12px}
.plan-modal-shell{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 300px;background:#F8FAFC}
.plan-modal-body{min-width:0;overflow:hidden;align-items:stretch;justify-items:stretch;padding:0}
.plan-image-scroll{width:100%;height:min(720px,calc(100vh - 170px));overflow:auto;display:block;background:#F8FAFC;padding:16px;cursor:grab}
.plan-image-scroll:active{cursor:grabbing}
.plan-modal-image{display:block;height:auto;max-width:none;max-height:none;margin:0 auto;transform-origin:0 0;transition:width .12s;background:#fff;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}
.plan-modal-info{border-left:1px solid var(--line);background:#fff;padding:16px;min-width:0;overflow:auto}
.plan-modal-info h4{margin:0 0 14px;font-size:17px;font-weight:700}
.plan-apartment-list{display:grid;gap:8px}
.plan-apartment-card{display:grid;gap:3px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px;color:var(--ink);background:#FAFBFC;transition:border-color .15s,background .15s}
.plan-apartment-card:hover{border-color:var(--blue-border);background:var(--blue-light);text-decoration:none}
.plan-apartment-card strong{font-size:14px;font-weight:700}
.plan-apartment-card span,.plan-apartment-card small{color:var(--muted);font-size:12px}
.plan-apartment-head{display:flex;align-items:center;justify-content:space-between;gap:8px}

.apt-status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font-style:normal;font-size:11px;font-weight:700;white-space:nowrap}
.apt-status-badge.empty{background:#ECFDF5;color:#065F46}
.apt-status-badge.reserved{background:#FFFBEB;color:#92400E}
.apt-status-badge.deposit{background:#F0FDF4;color:#166534}
.apt-status-badge.sold{background:#FEF2F2;color:#991B1B}

.package-picker{display:grid;gap:6px}
.field-title{color:var(--muted);font-size:13px;font-weight:600}
.package-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.package-options label{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;min-height:58px;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:#fff;padding:10px 12px;cursor:pointer;color:var(--ink);transition:border-color .15s,background .15s}
.package-options label:hover{border-color:var(--blue-border);background:var(--blue-light)}
.package-options input{width:16px;min-height:16px;accent-color:var(--blue-mid)}
.package-options span{display:grid;gap:2px;min-width:0}
.package-options strong{font-weight:700}
.package-options small{color:var(--muted);font-size:12px}
.package-options small del{display:block;font-weight:400;opacity:.6;margin-top:2px}
.package-options label:has(input:checked){border-color:var(--blue-mid);background:var(--blue-light);box-shadow:inset 0 0 0 1px var(--blue-mid)}

.sale-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:1px solid #A7F3D0;border-radius:var(--radius-sm);background:var(--ok-bg);padding:12px}
.sale-summary div{display:grid;gap:3px;min-width:0}
.sale-summary span{color:#065F46;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.sale-summary strong{color:var(--ink);font-size:15px;font-weight:700;overflow-wrap:anywhere}
.sale-summary-note{margin-top:-4px}
.selected-price-packages{margin:14px 0;padding-top:12px;border-top:1px solid var(--line)}
.selected-price-packages h3{margin:0 0 10px;font-size:20px;font-weight:700;letter-spacing:-.3px}

.board-panel .table-wrap{overflow-x:hidden}
.board-panel .apartment-table{min-width:0}
.board-panel .apartment-table th,.board-panel .apartment-table td{height:clamp(40px,4.2vw,54px);padding:3px}
.board-panel .floor-label{width:clamp(34px,4vw,54px)}
.board-panel .apt-btn{min-width:0;font-size:clamp(11px,1.1vw,14px)}
.board-panel .apt-btn small{font-size:clamp(8px,.9vw,10px)}
.board-history{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.board-history h2{margin-bottom:10px}
.board-history .deal-line{grid-template-columns:minmax(120px,1fr) minmax(220px,1.4fr) auto auto}
.history-list{display:grid;gap:10px}
.history-item{display:grid;grid-template-columns:1.1fr .9fr 1.3fr .7fr .9fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:var(--radius);background:#FAFBFC;padding:12px;transition:border-color .15s,background .15s}
.history-item:hover{border-color:var(--line-2);background:#F1F5F9}
.history-item div{min-width:0}
.history-item span{display:block;color:var(--muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px}
.history-item strong{display:block;font-weight:700;overflow-wrap:anywhere}
.history-item small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.history-actions{justify-self:end}
.history-actions .button-link{min-height:34px;padding:7px 12px;font-size:13px}

@media(max-width:1280px){.report-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.month-bars{grid-template-columns:repeat(6,minmax(34px,1fr))}}
@media(max-width:1180px){.dashboard-grid,.split-page{grid-template-columns:1fr}.side-panel{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.reports-hero{display:grid;align-items:start}.report-layout{grid-template-columns:1fr}.report-card.span-2{grid-column:auto}.report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-modal-shell{grid-template-columns:1fr}.plan-modal-info{border-left:0;border-top:1px solid var(--line);max-height:220px}}
@media(max-width:820px){.app-header{height:auto;min-height:64px;align-items:flex-start;flex-wrap:wrap;padding:10px 16px}.brand{min-width:0}.main-nav{order:3;width:100%;padding-bottom:6px}.user-box{min-width:0}.side-panel{grid-template-columns:1fr}.panel-head{display:grid}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid,.details,.price-grid{grid-template-columns:1fr}.return-form{grid-template-columns:1fr}.board-history .deal-line{grid-template-columns:1fr}.history-item{grid-template-columns:1fr 1fr}.history-actions{justify-self:stretch}}
@media(max-width:700px){.plan-hover-preview{display:none}.plan-modal{padding:10px}.plan-modal-body{min-height:260px;padding:8px}.plan-modal-head{align-items:flex-start}.plan-modal-tools{flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:560px){.page{padding:12px}.card,.board-panel{padding:14px}button,.button-link{white-space:normal}.deal-line{grid-template-columns:1fr}.contract-page{width:auto;min-height:0;margin:0;padding:14px}.contract-toolbar{position:static;flex-wrap:wrap}.contract-head,.signatures{display:grid;grid-template-columns:1fr}.customer-selected{grid-template-columns:1fr}.customer-clear{grid-column:auto;grid-row:auto;width:100%}.package-options{grid-template-columns:1fr}.pagination{justify-content:stretch;display:grid;grid-template-columns:1fr}.audit-meta{text-align:left}.sale-summary{grid-template-columns:1fr}.reports-hero,.report-card{padding:14px}.reports-hero h1{font-size:20px}.report-actions{display:grid}.report-kpis{grid-template-columns:1fr}.month-bars{grid-template-columns:repeat(4,minmax(34px,1fr))}.source-row div,.mini-list div{display:grid;gap:3px}.history-item{grid-template-columns:1fr}}
@media print{.app-header,.app-footer,.contract-toolbar,.flash{display:none !important}.page{padding:0}.contract-body{background:#fff}.contract-page{box-shadow:none;margin:0;width:auto;min-height:0;padding:10mm}.contract-section th,.contract-section td{font-size:10pt}}
/* ── NOTIFICATION BADGE ───────────────── */
.nav-notif-link{position:relative;display:inline-flex;align-items:center;gap:6px}
.notif-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#EF4444;color:#fff;font-size:10.5px;font-weight:700;line-height:1;letter-spacing:0;flex-shrink:0}
.notif-pulse{animation:notif-pop .3s ease,notif-glow 2s ease-in-out 0.3s infinite}
@keyframes notif-pop{0%{transform:scale(0)}70%{transform:scale(1.2)}100%{transform:scale(1)}}
@keyframes notif-glow{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.5)}50%{box-shadow:0 0 0 4px rgba(239,68,68,0)}}
