: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-columns:270px 1fr;min-height:100vh;display:grid}.sidebar{color:#334155;background:#fff;border-right:1px solid #e2e8f0;flex-direction:column;height:100vh;padding:1rem .8rem;display:flex;position:sticky;top:0}.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{padding:1rem 1.25rem 2rem}.page-wrap{max-width:1360px}.topbar,.page-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.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{align-items:end;gap:.6rem;min-height:136px;margin-top:.85rem;display:flex}.bar-wrap{color:#64748b;justify-items:center;gap:.32rem;font-size:.74rem;display:grid}.bar{background:linear-gradient(#6366f1,#3b82f6);border-radius:10px;width:24px;box-shadow:0 6px 14px #3b82f647}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.72rem;margin-top:.85rem;display:grid}.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}.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.65fr .5fr .55fr 1fr .58fr .58fr auto;font-size:.7rem;font-weight:700}.invoice-line-row{background:#fff;border:1px solid #e2e8f0;grid-template-columns:1.65fr .5fr .55fr 1fr .58fr .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}.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-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}@media (width<=1120px){.app-shell,.stats-grid,.crm-kpis,.split-grid,.invoice-layout,.form-grid{grid-template-columns:1fr}.summary-panel{position:static}.invoice-table-head,.invoice-table-row,.invoice-meta-grid,.payment-controls{grid-template-columns:1fr}.payment-meta{white-space:normal}.payment-actions{justify-content:flex-start}.invoice-edit-grid,.catalog-entry{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-entry .field-add{width:100%}.clients-toolbar{flex-wrap:wrap}.search-box,.sort-box{flex:100%;max-width:100%}.sort-box select{width:100%}.group-box-grid,.settings-lower-grid,.security-password-grid{grid-template-columns:1fr}}@media (width<=760px){.content{padding:1rem}.table-row{grid-template-columns:1fr}.topbar,.page-head{flex-direction:column;align-items:flex-start}.catalog-entry,.invoice-edit-grid{grid-template-columns:1fr}.invoice-edit-grid .invoice-field-span{grid-column:auto}.page-wrap{max-width:100%}}.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}.sidebar-signout{border-top:1px solid #eef2f7;margin-top:auto;padding:.75rem .45rem 0}.sidebar-signout button{width:100%}
