:root{color:#0f172a;--bg:#f4f6fa;--surface:#fff;--surface-strong:#fff;--surface-soft:#f8fafc;--border:#e2e8f0;--text-muted:#64748b;--brand:#3b82f6;--brand-strong:#2563eb;--shadow-md:0 2px 6px #0f172a0a;--shadow-sm:0 1px 3px #0f172a0d;background:#f8fafc;font-family:Inter,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{color:#0f172a;background:var(--bg);margin:0}#app{min-height:100vh}.app-shell{grid-template-rows:auto 1fr;grid-template-columns:270px 1fr;min-height:100vh;display:grid}.app-topbar{z-index:40;background:#fff;border-bottom:1px solid #e2e8f0;grid-column:1/-1;justify-content:flex-end;align-items:center;padding:.42rem 1rem;display:flex;position:sticky;top:0}.app-topbar-inner{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.65rem;width:100%;display:flex}.app-user-display{color:#475569;text-overflow:ellipsis;white-space:nowrap;max-width:min(360px,70vw);font-size:.84rem;overflow:hidden}.app-signout-btn{white-space:nowrap}.sidebar{color:#334155;background:#fff;border-right:1px solid #e2e8f0;flex-direction:column;align-self:start;max-height:100vh;padding:1rem .8rem;display:flex;position:sticky;top:0;overflow-y:auto}.app-shell:has(.app-topbar) .sidebar{max-height:calc(100vh - 48px);top:48px}.brand{border-bottom:1px solid #eef2f7;align-items:center;gap:.75rem;margin-bottom:1.1rem;padding:.5rem .45rem .85rem;display:flex}.brand-badge{color:#fff;background:linear-gradient(130deg,#4f46e5,#2563eb);border-radius:12px;place-items:center;width:54px;height:54px;font-weight:700;display:grid;box-shadow:0 8px 20px #2563eb59}.brand-logo-box{box-shadow:none;background:0 0;padding:0}.brand-logo{object-fit:contain;filter:drop-shadow(0 3px 6px #00000059);border-radius:10px;width:100%;height:100%}.sidebar h1{letter-spacing:.01em;color:#0f172a;margin:0;font-size:1rem}.sidebar nav{flex:1;gap:.5rem;display:grid}.sidebar a{color:#475569;border:1px solid #0000;border-radius:8px;padding:.58rem .62rem;font-size:.88rem;font-weight:600;text-decoration:none;transition:all .18s}.sidebar a:hover,.sidebar a.active{color:#0f172a;box-shadow:none;background:#f1f5f9;border-color:#dbe4ef}.content{min-width:0;padding:1rem 1.25rem 2rem}.page-wrap{min-width:0;max-width:1360px}.topbar,.page-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.company-save-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.35rem;display:flex}.company-save-actions .primary{width:auto;min-width:6.5rem}.company-save-feedback{text-align:right;max-width:18rem;margin:0;font-size:.82rem;line-height:1.35}.topbar{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:var(--shadow-sm);background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:1rem;padding:.9rem 1rem}.muted{color:var(--text-muted);margin:0;font-size:.88rem}.tiny{color:#94a3b8;margin:.48rem 0 0;font-size:.76rem}h2{letter-spacing:-.015em;margin:.25rem 0 0;font-size:1.25rem}h3{letter-spacing:-.01em;margin:0;font-size:.95rem}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-top:1rem;display:grid}.crm-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-top:.9rem;display:grid}.section-panel{margin-top:.9rem}.quick-actions{flex-wrap:wrap;gap:.4rem;margin-top:.8rem;display:flex}.dashboard-actions{gap:.45rem;margin-top:.75rem;display:flex}.action-chip{color:#334155;background:#f8fafc;border:1px solid #d5deeb;border-radius:999px;padding:.34rem .62rem;font-size:.75rem;font-weight:600}.card,.summary-panel{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:10px;padding:.9rem .95rem}.kpi-card{background:linear-gradient(#fff 0%,#f9fbff 100%);border-color:#dbe6f8}.kpi-up{color:#15803d}.card h3+.muted{margin-top:.35rem}.milestone-list{gap:.62rem;margin-top:.75rem;display:grid}.milestone-row{border:1px solid #e2e8f0;border-radius:12px;align-items:flex-start;gap:.62rem;padding:.5rem .55rem;display:flex}.dot{background:#94a3b8;border-radius:999px;width:10px;height:10px;margin-top:.3rem}.dot.done{background:#22c55e}.dot.progress{background:#f59e0b}.score-ring{background:conic-gradient(#4f46e5 0deg 309deg,#e2e8f0 309deg 360deg);border-radius:999px;width:126px;height:126px;margin:.8rem auto;padding:10px}.score-ring-inner{text-align:center;background:#fff;border-radius:999px;place-items:center;width:100%;height:100%;display:grid}.score-ring-inner strong{font-size:1.35rem}.score-ring-inner span{color:#64748b;font-size:.72rem}.split-grid{grid-template-columns:1.45fr 1fr;gap:.9rem;margin-top:.9rem;display:grid}.dashboard-panel-head{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.mini-trend{color:#64748b;background:#f8fbff;border:1px solid #dbe5f2;border-radius:999px;padding:.18rem .45rem;font-size:.75rem}.insight-banner{color:#1e3a8a;background:linear-gradient(90deg,#eff6ff,#f8fafc);border:1px solid #dbeafe;border-radius:12px;margin-top:.75rem;padding:.62rem .75rem;font-size:.84rem}.bars{justify-content:space-between;align-items:end;gap:.35rem;width:100%;min-height:136px;margin-top:.85rem;display:flex}.bar-wrap{color:#64748b;flex:1 1 0;justify-items:center;gap:.32rem;min-width:0;font-size:.74rem;display:grid}.bar{background:linear-gradient(#6366f1,#3b82f6);border-radius:10px;width:24px;box-shadow:0 6px 14px #3b82f647}.dashboard-finance-grid{margin-top:1rem}.dashboard-period-tabs{flex-wrap:wrap;gap:.35rem;display:flex}.dashboard-period-tab{color:#475569;cursor:pointer;background:#f8fafc;border:1px solid #dbe5f2;border-radius:999px;padding:.22rem .55rem;font-size:.72rem;font-weight:700}.dashboard-period-tab.active{color:#1d4ed8;background:#eff6ff;border-color:#93c5fd}.dashboard-period-caption{margin-top:.45rem;font-size:.78rem}.dashboard-chart-legend{color:#64748b;gap:.85rem;margin-top:.55rem;font-size:.74rem;display:flex}.legend-dot{vertical-align:middle;border-radius:999px;width:.62rem;height:.62rem;margin-right:.28rem;display:inline-block}.legend-billed{background:linear-gradient(#6366f1,#3b82f6)}.legend-paid{background:linear-gradient(#34d399,#059669)}.dashboard-dual-bars{width:100%}.dashboard-dual-bars .bar-wrap{flex:1 1 0;min-width:0}.dashboard-dual-bars .bar-group{justify-content:center;align-items:end;gap:.18rem;width:100%;min-height:92px;display:flex}.bar-billed{background:linear-gradient(#6366f1,#3b82f6);width:11px}.bar-paid{background:linear-gradient(#34d399,#059669);width:11px;box-shadow:0 6px 14px #10b98138}.dashboard-period-summary{color:#475569;flex-wrap:wrap;justify-content:space-between;gap:.75rem;width:100%;margin-top:.75rem;font-size:.78rem;display:flex}.payment-field-help{margin:.35rem 0 .65rem;font-size:.82rem;line-height:1.45}.payment-preview{background:#f8fafc;border:1px solid #dbe5f2;border-radius:10px;margin-top:.75rem;padding:.65rem .75rem;font-size:.84rem}.payment-preview p{color:#475569;margin:.35rem 0 0}.card-lite{box-shadow:none}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.72rem;margin-top:.85rem;display:grid}.required-fields-note{color:#64748b;margin:.7rem 0 0;font-size:.82rem}.required-fields-note span,.required-mark{color:#dc2626}.form-validation-error{color:#b91c1c;background:#fff1f2;border:1px solid #fecaca;border-radius:10px;margin:.7rem 0 0;padding:.65rem .75rem;font-size:.86rem}.client-combobox{position:relative}.client-options{z-index:20;background:#fff;border:1px solid #dbe5f2;border-radius:12px;gap:.25rem;padding:.3rem;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;box-shadow:0 10px 24px #0f172a1f}.client-option{background:#fff;border:1px solid #0000;border-radius:10px;justify-items:start;gap:.08rem;width:100%;padding:.5rem .55rem;display:grid}.client-option span{color:#64748b;font-size:.78rem}.client-option:hover{background:#eef2ff;border-color:#c7d2fe}.add-option{background:#eef2ff;border:1px dashed #a5b4fc}.two-col-simple{grid-template-columns:repeat(2,minmax(0,1fr))}label{color:#334155;align-content:start;gap:.35rem;font-size:.83rem;font-weight:500;display:grid}.field-hint-inline{color:#64748b;font-size:.72rem;line-height:1.2}.group-box-stack{gap:.75rem;display:grid}.group-box-grid,.settings-lower-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.security-password-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:.72rem;margin-top:.2rem;display:grid}.security-password-stack{gap:.72rem;display:grid}.security-rule-row{grid-column:1/-1}.security-group-box{width:min(560px,100%)}.group-box{background:#fcfdff;border:1px solid #e2e8f0;border-radius:10px;margin:0;padding:.7rem .75rem .75rem}.group-box legend{color:#64748b;letter-spacing:.04em;text-transform:uppercase;padding:0 .4rem;font-size:.76rem;font-weight:700}.group-box .form-grid{margin-top:.2rem}.prefix-logo-preview{background:#fff;border:1px solid #dbe5f2;border-radius:10px;justify-content:center;align-items:center;min-height:84px;margin-top:.65rem;padding:.6rem;display:flex}.prefix-logo-preview img{object-fit:contain;max-width:180px;max-height:64px}input,select,textarea,button{background:var(--surface-strong);color:#0f172a;border:1px solid #c9d6ea;border-radius:12px;width:100%;padding:.65rem .7rem;font-size:.9rem;transition:border-color .18s,box-shadow .18s,transform .12s}input,select{height:40px;line-height:1.2}input[type=checkbox]{border-radius:4px;width:16px;height:16px;padding:0}input:focus,select:focus,textarea:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 4px #6366f124}textarea{resize:vertical;min-height:90px;line-height:1.35}button{cursor:pointer;letter-spacing:.01em;width:auto;font-weight:700;transition:transform .14s,box-shadow .16s,filter .14s,border-color .16s,background .16s}button:hover{filter:saturate(1.06);transform:translateY(-1px)}button:focus-visible{outline:none;box-shadow:0 0 0 4px #3b82f633}.row{flex-wrap:wrap;gap:.6rem;margin-top:.9rem;display:flex}.catalog-entry{grid-template-columns:minmax(220px,2.2fr) minmax(130px,1fr) minmax(120px,.9fr) minmax(100px,.8fr) minmax(90px,.7fr) auto;align-items:center;gap:.6rem;margin-top:.9rem;display:grid}.catalog-entry .field-add{white-space:nowrap;min-width:96px}.table{gap:.5rem;margin-top:.8rem;display:grid}.data-grid{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:.45rem}.data-grid-head{min-height:38px}.data-grid-row{min-height:44px}.data-grid-footer{border-top:1px solid #edf2f7;margin-top:.5rem;padding-top:.5rem}.table-scroll{overflow-x:auto}.table-row{box-shadow:none;background:#fff;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:1.7fr .8fr .9fr .8fr .7fr;align-items:center;gap:.5rem;padding:.55rem .6rem;display:grid}.table-head-row{color:#64748b;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc;border-style:solid;font-size:.76rem}.table-row button{width:100%}.icon-btn{color:#365177;background:linear-gradient(#fff 0%,#f6f9ff 100%);border:1px solid #d2def0;border-radius:8px;justify-content:center;align-items:center;width:34px;min-width:34px;height:34px;padding:0;font-size:.9rem;line-height:1;display:inline-flex;box-shadow:0 5px 12px #24529e14}.icon-btn:hover{background:linear-gradient(#fff 0%,#edf4ff 100%);border-color:#b9cbeb;box-shadow:0 8px 16px #24529e24}.icon-btn:focus-visible{border-color:#7fb0f9;outline:none;box-shadow:0 0 0 4px #3b82f633}.icon-btn svg{width:16px;height:16px}.row-actions .icon-btn,.invoice-table-row .icon-btn{width:34px;min-width:34px}.catalog-row{grid-template-columns:1.7fr .8fr .9fr .8fr .7fr 1.2fr}.client-row{grid-template-columns:40px minmax(180px,1.2fr) minmax(140px,1fr) minmax(130px,.9fr) minmax(160px,1.2fr) minmax(100px,.8fr) minmax(170px,1fr);align-items:center}.client-row span,.client-row strong{white-space:normal;overflow-wrap:anywhere}.clients-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;margin-top:.8rem;margin-bottom:.5rem;display:flex}.table-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-top:.75rem;margin-bottom:.55rem;display:flex}.search-box{background:#fff;border:1px solid #cbd5e1;border-radius:12px;flex:auto;align-items:center;gap:.45rem;min-width:280px;max-width:540px;padding:.2rem .55rem;display:flex}.search-box.compact{min-width:260px;max-width:420px}.search-icon{color:#64748b;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.search-icon svg{width:16px;height:16px}.search-box input{box-shadow:none;border:none;padding-left:0;padding-right:0}.search-box input:focus{box-shadow:none}.sort-box{background:#fff;border:1px solid #cbd5e1;border-radius:12px;align-items:center;gap:.45rem;padding:.2rem .5rem;display:flex}.table-toolbar-actions{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.table-toolbar-actions>button{padding:.45rem .62rem;font-size:.8rem}.table-toolbar-actions .icon-btn,.primary.icon-btn{width:34px;min-width:34px;padding:0}.sort-label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.clients-toolbar input{min-width:0}.clients-toolbar select{box-shadow:none;border:none;flex:0 0 180px;padding:.35rem .2rem}.catalog-block{border-radius:12px}.row-actions{gap:.35rem;display:flex}.row-actions button{width:100%;padding:.45rem .5rem;font-size:.76rem}.danger-btn{color:#b91c1c;background:#fff1f2;border-color:#fecaca}.danger-btn.icon-btn{color:#be123c;background:#fff1f2;border-color:#fecdd3}.inline-editor{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:.45rem;padding:.62rem}.editor-actions{gap:.5rem;margin-top:.6rem;display:flex}.inline-modal-backdrop{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:50;background:#0f172a47;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.inline-modal{background:#fff;border:1px solid #dbe5f2;border-radius:16px;width:min(680px,100%);padding:1rem;box-shadow:0 16px 38px #0f172a33}.delete-confirm-modal code{background:#f1f5f9;border-radius:6px;padding:.1rem .35rem;font-size:.92em}.delete-confirm-box{background:#fff1f2;border:1px solid #fecaca;border-radius:12px;margin-top:.85rem;padding:.85rem}.delete-confirm-box input{width:100%;margin-top:.55rem}.delete-confirm-error{margin-top:.65rem;font-size:.86rem}.invoice-row-actions{align-items:center;gap:.35rem;display:inline-flex}.invoice-layout{grid-template-columns:1.55fr .75fr;gap:.9rem;margin-top:.9rem;display:grid}.logo-upload{margin-top:.9rem}.company-tabs{flex-wrap:wrap;gap:.55rem;margin-top:.8rem;margin-bottom:.8rem;display:flex}.company-tab{color:#334155;background:#f8fafc;border:1px solid #d8e1ee;border-radius:8px;padding:.4rem .65rem;font-size:.8rem;font-weight:700}.company-tab.active{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.logo-preview{object-fit:contain;background:#f8fafc;border:1px solid #dbe5f2;border-radius:12px;max-width:260px;max-height:60px;margin-top:.75rem;padding:.55rem}.summary-panel{align-self:start;position:sticky;top:1rem}.summary-row{justify-content:space-between;gap:.65rem;margin-top:.72rem;font-size:.9rem;display:flex}.summary-row.total{color:#1e293b;border-top:2px solid #4a7262;margin-top:.9rem;padding-top:.85rem;font-size:1rem}.summary-row.total strong{color:#4a7262;font-weight:700}.invoice-sender-strip{color:#f8fafc;background:#0f172a;border:1px solid #1e293b;border-radius:10px;gap:.28rem;margin-bottom:.9rem;padding:.85rem .95rem;display:grid}.invoice-sender-strip strong{letter-spacing:.01em;font-size:1.06rem}.invoice-sender-strip__muted{color:#cbd5e1;font-size:.8rem;line-height:1.45}.invoice-sender-strip__reg{color:#94a3b8;margin-top:.35rem;font-size:.74rem}.invoice-details-card h3{margin-bottom:.2rem}.invoice-meta-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:.85rem;display:grid}.invoice-meta-label{letter-spacing:.06em;text-transform:uppercase;color:#64748b;margin-bottom:.28rem;font-size:.7rem;font-weight:700;display:block}.invoice-client-full{margin-top:.35rem}.invoice-field-span{grid-column:1/-1}.invoice-line-table{min-width:640px}.invoice-line-head,.invoice-line-row{border-radius:12px;align-items:center;gap:.45rem;padding:.52rem .55rem;display:grid}.invoice-line-head{color:#475569;letter-spacing:.04em;text-transform:uppercase;background:#f1f5f9;grid-template-columns:1.55fr .62fr .58fr .9fr .82fr .58fr auto;font-size:.7rem;font-weight:700}.invoice-line-row{background:#fff;border:1px solid #e2e8f0;grid-template-columns:1.55fr .62fr .58fr .9fr .82fr .58fr auto}.invoice-tax-cell{font-size:.8rem;line-height:1.35}.invoice-tax-cell small{color:#64748b;font-size:.72rem;font-weight:400;display:block}.invoice-line-empty{border-radius:12px;min-width:0;margin-top:.5rem}.primary{color:#fff;background:linear-gradient(140deg,#5b8cff 0%,#3b82f6 52%,#2563eb 100%);border:1px solid #2a63d7;box-shadow:0 10px 20px #2563eb4d,inset 0 1px #ffffff40}.primary:hover{box-shadow:0 14px 22px #2563eb59,inset 0 1px #ffffff47}.ghost{color:#314865;box-shadow:none;background:linear-gradient(#fff 0%,#f8fbff 100%);border-color:#d2def0}.ghost:hover{background:linear-gradient(#fff 0%,#eef4ff 100%);border-color:#b9cbeb}.kpi-list{gap:.55rem;margin-top:.8rem;display:grid}.kpi-row{background:#fbfdff;border:1px solid #e6edf7;border-radius:8px;justify-content:space-between;align-items:center;gap:.7rem;padding:.52rem .58rem;font-size:.84rem;display:flex}.danger{color:#b91c1c}.invoice-table{gap:.55rem;margin-top:.8rem;display:grid}.invoice-table-head,.invoice-table-row{grid-template-columns:44px 1.1fr 1.3fr .85fr .9fr .9fr .8fr .9fr;align-items:center;gap:.5rem;display:grid}.invoice-table-head{color:#64748b;text-transform:uppercase;letter-spacing:.04em;padding:.1rem .55rem;font-size:.74rem;font-weight:700}.invoice-table-row{box-shadow:none;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.55rem .58rem;font-size:.84rem}.invoice-table-row button{padding:.4rem .55rem;font-size:.78rem}.dashboard-invoice-grid{grid-template-columns:1.1fr 1.4fr .8fr .9fr .8fr}.dashboard-invoice-grid-ext{grid-template-columns:1.1fr 1.2fr .8fr .9fr .8fr .8fr}.payment-row{box-shadow:none;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.45rem}.payment-controls{grid-template-columns:minmax(220px,1.5fr) minmax(170px,.9fr) minmax(130px,.8fr) minmax(220px,auto);align-items:center;gap:.5rem;margin-top:.5rem;display:grid}.payment-controls--usd{grid-template-columns:minmax(260px,1.4fr) minmax(150px,.8fr) minmax(135px,.7fr) minmax(150px,.8fr) minmax(100px,auto)}.payment-meta{white-space:nowrap}.payment-channel-field,.payment-amount-field{min-width:0}.payment-actions{justify-content:flex-end;gap:.45rem;display:flex}.payment-actions button{min-width:102px}.payment-actions .icon-btn{min-width:34px}.table-footer{justify-content:space-between;align-items:center;margin-top:.55rem;padding:.35rem .2rem;display:flex}.invoice-edit-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin-top:.1rem;display:grid}.invoice-edit-grid .invoice-field-span{grid-column:span 2}.client-form{border-top:1px solid #e2e8f0;margin-top:1rem;padding-top:.9rem}.client-form .primary{margin-top:.8rem}.status-chip{border:1px solid #0000;border-radius:999px;justify-self:start;padding:.24rem .56rem;font-size:.72rem;font-weight:700}.status-paid{color:#166534;background:#dcfce7;border-color:#bbf7d0}.status-open{color:#1d4ed8;background:#dbeafe;border-color:#bfdbfe}.status-draft{color:#475569;background:#e2e8f0;border-color:#cbd5e1}.status-overdue{color:#991b1b;background:#fee2e2;border-color:#fecaca}.status-partial{color:#9a3412;background:#ffedd5;border-color:#fed7aa}.empty-state{text-align:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;padding:.8rem}.empty-state p{margin:0;font-weight:600}.app-mobile-header,.sidebar-backdrop,.mobile-nav-toggle,.sidebar-mobile-toolbar,.sidebar-close-btn,.mobile-table-scroll-hint{display:none}.sidebar-brand-compact{border-bottom:none;margin-bottom:0;padding:0}@media (width>=769px){.app-mobile-header,.sidebar-backdrop,.mobile-nav-toggle,.sidebar-mobile-toolbar,.sidebar-close-btn,.mobile-table-scroll-hint{display:none!important}.sidebar-brand-desktop{display:flex}.app-shell{grid-template-rows:auto 1fr;grid-template-columns:270px 1fr}.sidebar{width:auto;box-shadow:none;max-height:100vh;position:sticky;top:0;bottom:auto;left:auto;visibility:visible!important;pointer-events:auto!important;transform:none!important}.app-shell:has(.app-topbar) .sidebar{max-height:calc(100vh - 48px);top:48px}.app-shell--nav-open .sidebar{transform:none!important}}@media (width<=768px){.app-shell{--mobile-radius:14px;--mobile-radius-sm:10px;--mobile-gap:.75rem;--mobile-card-border:#e2e8f0eb;--mobile-card-shadow:0 1px 2px #0f172a0a, 0 6px 16px #0f172a0d;--mobile-label:#94a3b8;--mobile-ease-out:cubic-bezier(.32, .72, 0, 1)}.app-mobile-header{padding:max(.5rem, env(safe-area-inset-top,0px)) .9rem .5rem;border-bottom:1px solid var(--mobile-card-border);-webkit-backdrop-filter:blur(12px)saturate(1.4);z-index:45;background:#ffffffeb;grid-area:1/1/auto/-1;align-items:center;gap:.55rem;display:flex;position:sticky;top:0;box-shadow:inset 0 1px #fffc,0 4px 18px #0f172a0a}.app-topbar--desktop{display:none!important}.mobile-nav-toggle{width:42px;height:42px;box-shadow:none;touch-action:manipulation;background:#f8fafc;border-color:#e2e8f0;border-radius:11px;flex-shrink:0;display:inline-flex}.mobile-nav-toggle:active{background:#eef2f7;transform:scale(.96)}.app-mobile-brand{letter-spacing:-.02em;color:#0f172a;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:1rem;font-weight:700;overflow:hidden}.app-mobile-header-actions{flex-shrink:0;align-items:center;gap:.35rem;margin-left:auto;display:flex}.app-mobile-header-actions .app-user-display{display:none}.app-signout-btn--compact{touch-action:manipulation;border-radius:999px;min-height:36px;padding:.45rem .72rem;font-size:.78rem}.app-shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.content{padding:1rem .9rem;padding-bottom:max(1rem, env(safe-area-inset-bottom,0px));grid-area:2/1/auto/-1;min-width:0}.page-wrap{max-width:100%}h2{letter-spacing:-.025em;font-size:1.35rem}.topbar{border-radius:var(--mobile-radius);padding:.85rem .9rem}@keyframes mobileBackdropIn{0%{opacity:0}to{opacity:1}}.sidebar-backdrop{z-index:55;cursor:pointer;-webkit-backdrop-filter:blur(2px);animation:mobileBackdropIn .22s var(--mobile-ease-out);background:#0f172a61;border:none;margin:0;padding:0;display:block;position:fixed;inset:0}.sidebar{z-index:60;width:min(292px,88vw);max-height:100vh;padding:.35rem .65rem 1rem;padding-top:max(.35rem, env(safe-area-inset-top,0px));padding-bottom:max(1rem, env(safe-area-inset-bottom,0px));transition:transform .34s var(--mobile-ease-out);visibility:hidden;pointer-events:none;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border-right:none;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:12px 0 40px #0f172a24}.app-shell:has(.app-topbar) .sidebar{max-height:100vh;top:0}.app-shell--nav-open .sidebar{visibility:visible;pointer-events:auto;transform:translate(0)}.sidebar-mobile-toolbar{border-bottom:1px solid #eef2f7;justify-content:space-between;align-items:center;gap:.65rem;margin-bottom:.15rem;padding:.55rem .15rem .85rem;display:flex}.sidebar-close-btn{width:42px;height:42px;box-shadow:none;touch-action:manipulation;background:#f8fafc;border-color:#e2e8f0;border-radius:11px;flex-shrink:0;display:inline-flex}.sidebar-brand-desktop{display:none}.sidebar-nav{gap:.28rem;padding:.35rem .1rem .5rem}.sidebar-nav a{color:#475569;touch-action:manipulation;border:1px solid #0000;border-radius:11px;align-items:center;min-height:48px;padding:.75rem .9rem;font-size:.92rem;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:flex}.sidebar-nav a:active{transform:scale(.99)}.sidebar-nav a.active{color:#1d4ed8;background:linear-gradient(135deg,#eff6ff 0%,#f0f7ff 100%);border-color:#bfdbfe;box-shadow:inset 3px 0 #3b82f6}.stats-grid,.crm-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.card,.summary-panel,.kpi-card{border-radius:var(--mobile-radius);padding:.85rem .9rem}.split-grid,.invoice-layout,.form-grid,.form-grid.two-col-simple,.two-col-simple,.group-box-grid,.settings-lower-grid,.security-password-grid,.invoice-meta-grid{gap:var(--mobile-gap);grid-template-columns:1fr}.summary-panel{position:static}.topbar,.page-head{flex-direction:column;align-items:stretch;gap:.85rem}.page-head .row{flex-direction:column;gap:.5rem;width:100%}.page-head .row button,.page-head .primary,button.primary,.ghost,a.primary{touch-action:manipulation;border-radius:11px;width:100%;min-height:44px}.company-save-actions{align-items:stretch;width:100%}.company-save-actions .primary{width:100%}.company-save-feedback{text-align:left;max-width:none}.dashboard-panel-head{flex-direction:column;align-items:stretch;gap:.65rem}.dashboard-period-tabs{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.28rem;width:100%;padding:.28rem;display:grid}.dashboard-period-tab{text-align:center;color:#64748b;touch-action:manipulation;background:0 0;border:none;border-radius:9px;min-width:0;padding:.48rem .35rem;font-size:.72rem;transition:background .15s,box-shadow .15s,color .15s}.dashboard-period-tab.active{color:#1d4ed8;background:#fff;box-shadow:0 1px 3px #0f172a14}.dashboard-actions,.quick-actions{flex-direction:column}.dashboard-actions button,.quick-actions .action-chip{text-align:center;width:100%;min-height:40px}.bars{gap:.2rem;min-height:112px}.bar{width:18px}.bar-wrap{font-size:.68rem}.company-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:.45rem;margin-bottom:-.15rem;padding-bottom:.35rem;overflow-x:auto}.company-tabs::-webkit-scrollbar{display:none}.company-tab{flex:none;min-height:40px;padding-inline:.85rem}.mobile-table-scroll-hint{color:#64748b;background:#f8fafc;border:1px solid #e8eef5;border-radius:999px;align-items:center;gap:.4rem;width:fit-content;max-width:100%;margin:.45rem 0 .55rem;padding:.42rem .65rem;font-size:.72rem;display:flex}.mobile-table-scroll-hint:before{content:"↔";color:#94a3b8;flex-shrink:0;font-size:.82rem}.table-scroll{-webkit-overflow-scrolling:touch;margin-inline:-.25rem;padding-inline:.25rem;scroll-padding-inline:.25rem;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12px calc(100% - 12px),#0000);mask-image:linear-gradient(90deg,#0000,#000 12px calc(100% - 12px),#0000)}.invoice-line-table{min-width:560px}.mobile-stack-table.data-grid,.mobile-stack-table.invoice-table{background:0 0;border:none;flex-direction:column;gap:.55rem;margin-top:.65rem;padding:0;display:flex}.mobile-stack-table .invoice-table-head,.mobile-stack-table .table-head-row,.mobile-stack-table .data-grid-head{display:none}.mobile-stack-table .mobile-stack-card,.mobile-stack-table .payment-row,.mobile-stack-table .catalog-block,.mobile-stack-table .mobile-stack-row.mobile-stack-card,.mobile-stack-table>.invoice-table-row.mobile-stack-row{border:1px solid var(--mobile-card-border);border-radius:var(--mobile-radius);box-shadow:var(--mobile-card-shadow);background:#fff;margin-top:0;padding:.75rem;overflow:hidden}.mobile-stack-table .mobile-stack-row,.mobile-stack-table .invoice-table-row.mobile-stack-row,.mobile-stack-table .data-grid-row.mobile-stack-row{box-shadow:none;background:0 0;border:none;grid-template-columns:1fr 1fr!important;gap:.4rem .5rem!important;min-width:0!important;padding:0!important;display:grid!important}.mobile-stack-table [data-label]:not(.cell-actions){background:#f8fafc;border:none;border-radius:8px;flex-direction:column;gap:.15rem;min-width:0;margin:0;padding:.38rem .5rem;font-size:.8125rem;line-height:1.35;display:flex}.mobile-stack-table [data-label]:not(.cell-actions):before{content:attr(data-label);color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin:0;padding:0;font-size:.62rem;font-weight:700;line-height:1.2;display:block}.mobile-stack-table [data-label=Invoice],.mobile-stack-table [data-label=Name]{letter-spacing:-.02em;color:#0f172a;background:0 0;grid-area:1/1;align-self:center;padding:0;font-size:.96rem;font-weight:700}.mobile-stack-table [data-label=Invoice]:before,.mobile-stack-table [data-label=Name]:before{display:none}.mobile-stack-table .catalog-block [data-label=Name]{grid-column:1/-1}.mobile-stack-table [data-label=Status]{background:0 0;grid-area:1/2;place-self:center end;padding:0}.mobile-stack-table [data-label=Status]:before{display:none}.mobile-stack-table [data-label=Status].status-chip{justify-self:end}.mobile-stack-table [data-label=Client]{color:#475569;background:0 0;border-bottom:1px solid #f1f5f9;border-radius:0;grid-column:1/-1;margin-bottom:.05rem;padding:0 0 .35rem;font-size:.84rem;font-weight:500}.mobile-stack-table [data-label=Client]:before{display:none}.mobile-stack-table [data-label=Member]{background:0 0;border-bottom:1px solid #f1f5f9;border-radius:0;grid-column:1/-1;margin-bottom:.05rem;padding:0 0 .4rem}.mobile-stack-table [data-label=Member]:before{display:none}.mobile-stack-table [data-label=Member] strong{color:#0f172a;font-size:.96rem;font-weight:700;line-height:1.3;display:block}.mobile-stack-table [data-label=Member] .muted{margin-top:.12rem;font-size:.78rem;line-height:1.35;display:block}.mobile-stack-table [data-label=Total],.mobile-stack-table [data-label=Amount]{color:#0f172a;font-weight:700}.mobile-stack-table [data-label=Pending]{color:#b91c1c;font-weight:600}.mobile-stack-table .cell-checkbox{display:none}.mobile-stack-table .payment-row .mobile-stack-row,.mobile-stack-table .catalog-block .mobile-stack-row,.mobile-stack-table .mobile-stack-row.mobile-stack-card{grid-template-columns:minmax(0,1fr) auto!important}.mobile-stack-table .payment-row [data-label=Invoice],.mobile-stack-table .catalog-block [data-label=Name],.mobile-stack-table .mobile-stack-row.mobile-stack-card [data-label=Member]{grid-area:1/1;padding-right:.35rem}.mobile-stack-table .payment-row .cell-actions,.mobile-stack-table .catalog-block .cell-actions,.mobile-stack-table .mobile-stack-row.mobile-stack-card>.cell-actions{background:0 0;border:none;flex-flow:row;grid-area:1/2;place-self:center end;align-items:center;gap:.28rem;margin:0;padding:0;display:inline-flex}.mobile-stack-table .payment-row [data-label=Status]{grid-area:2/1;place-self:center start;width:fit-content}.mobile-stack-table .payment-row [data-label=Client]{text-align:right;border-bottom:none;grid-area:2/2;margin-bottom:.35rem;padding-bottom:0;font-size:.8rem}.mobile-stack-table>.invoice-table-row.mobile-stack-row{grid-template-columns:minmax(0,1fr) auto!important}.mobile-stack-table>.invoice-table-row [data-label=Invoice]{grid-area:1/1}.mobile-stack-table>.invoice-table-row [data-label=Status]{grid-area:2/1;justify-self:start;width:fit-content}.mobile-stack-table>.invoice-table-row [data-label=Client]{border-bottom:1px solid #f1f5f9;grid-area:3/1/auto/-1;margin-bottom:.05rem;padding-bottom:.35rem}.mobile-stack-table .cell-actions{background:0 0;border-top:1px solid #f1f5f9;border-radius:0;flex-flow:row;grid-column:1/-1;justify-content:flex-end;align-items:center;gap:.28rem;margin:.05rem 0 0;padding:.4rem 0 0;display:inline-flex}.mobile-stack-table .payment-row .cell-actions,.mobile-stack-table .catalog-block .cell-actions,.mobile-stack-table .mobile-stack-row.mobile-stack-card>.cell-actions{border-top:none;grid-area:1/2;margin:0;padding:0}.mobile-stack-table .cell-actions:before{display:none}.mobile-stack-table .cell-actions .icon-btn{touch-action:manipulation;border-radius:9px;flex:none;width:36px;min-width:36px;height:36px;padding:0}.mobile-stack-table .cell-actions .icon-btn svg{width:15px;height:15px}.mobile-stack-table .status-chip{white-space:nowrap;padding:.2rem .5rem;font-size:.68rem}.mobile-stack-table .payment-row .payment-controls{border-top:1px solid #eef2f7;margin-top:.55rem;padding-top:.6rem}.payment-controls{grid-template-columns:1fr;gap:.65rem}.payment-meta{white-space:normal;font-size:.82rem;line-height:1.45}.payment-actions{flex-wrap:wrap;justify-content:stretch;gap:.5rem}.payment-actions button{border-radius:10px;flex:calc(50% - .25rem);min-width:0;min-height:42px}.payment-actions .icon-btn,.row-actions .icon-btn{touch-action:manipulation;border-radius:9px;flex:none;width:36px;min-width:36px;height:36px}.invoice-edit-grid,.catalog-entry{grid-template-columns:1fr}.invoice-edit-grid .invoice-field-span{grid-column:auto}.clients-toolbar,.table-toolbar{flex-wrap:wrap;gap:.6rem;margin-top:.65rem}.search-box,.sort-box{border-radius:12px;flex:100%;min-width:0;max-width:100%;min-height:44px}.sort-box select{width:100%}.table-toolbar-actions{justify-content:stretch;gap:.5rem;width:100%}.table-toolbar-actions>button{flex:1;min-height:42px}input,select,textarea{font-size:16px}.inline-modal-backdrop{-webkit-backdrop-filter:blur(3px);background:#0f172a6b;align-items:flex-end;padding:0}.inline-modal{border-radius:18px 18px 0 0;width:100%;max-height:min(90vh,760px);padding-top:.35rem;overflow-y:auto;box-shadow:0 -8px 32px #0f172a1f}.inline-modal:before{content:"";background:#cbd5e1;border-radius:999px;width:36px;height:4px;margin:.35rem auto .85rem;display:block}.editor-actions{flex-direction:column;gap:.5rem}.editor-actions button{border-radius:11px;width:100%;min-height:44px}.kpi-row{border-radius:var(--mobile-radius-sm);flex-direction:column;align-items:flex-start;gap:.35rem}.login-page{padding:1rem}.login-card{border-radius:var(--mobile-radius);box-shadow:var(--mobile-card-shadow);padding:1.35rem}}@media (width<=768px) and (prefers-reduced-motion:reduce){.sidebar,.sidebar-backdrop,.mobile-nav-toggle,.sidebar-close-btn,.dashboard-period-tab{transition:none;animation:none}.mobile-nav-toggle:active,.sidebar-nav a:active{transform:none}}.login-page{background:var(--bg);place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-card{width:min(420px,100%);padding:1.75rem}.login-brand{align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.login-form{flex-direction:column;gap:1rem;display:flex}.login-form label{flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.login-form input{border:1px solid var(--border);font:inherit;border-radius:8px;padding:.55rem .65rem}.login-error{color:#b91c1c;margin:0;font-size:.875rem}.login-submit{margin-top:.25rem}.auth-loading{min-height:100vh;color:var(--text-muted);place-items:center;font-size:.95rem;display:grid}a.primary,a.ghost{box-sizing:border-box;cursor:pointer;letter-spacing:.01em;border-radius:12px;justify-content:center;align-items:center;width:auto;padding:.62rem 1rem;font-size:.9rem;font-weight:700;text-decoration:none;display:inline-flex}a.primary{border:1px solid #2a63d7}a.ghost{border:1px solid #d2def0}
