@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--brand-900:#0b1f3a;--brand-800:#12325a;--brand-700:#1a4480;--brand-600:#2563eb;--brand-500:#3b82f6;--brand-100:#dbeafe;--brand-50:#eff6ff;--gray-950:#0f172a;--gray-900:#1e293b;--gray-700:#475569;--gray-500:#64748b;--gray-400:#94a3b8;--gray-200:#e2e8f0;--gray-100:#f1f5f9;--gray-50:#f8fafc;--white:#fff;--primary:var(--brand-600);--primary-hover:var(--brand-700);--primary-soft:var(--brand-50);--success:#059669;--success-soft:#ecfdf5;--warning:#d97706;--warning-soft:#fffbeb;--danger:#dc2626;--danger-soft:#fef2f2;--info:#0284c7;--info-soft:#f0f9ff;--bg:#f4f7fb;--bg-elevated:var(--white);--surface:var(--white);--surface-muted:var(--gray-50);--sidebar-bg:linear-gradient(180deg, #0b1f3a 0%, #12325a 100%);--text:var(--gray-900);--text-muted:var(--gray-500);--text-inverse:#f8fafc;--border:var(--gray-200);--border-strong:#cbd5e1;--shadow-xs:0 1px 2px #0f172a0d;--shadow-sm:0 4px 12px #0f172a0f;--shadow-md:0 12px 32px #0f172a14;--shadow-lg:0 24px 48px #0f172a1f;--radius:16px;--radius-sm:10px;--radius-lg:20px;--sidebar-width:272px;--content-max:1280px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body,#root{height:100%}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.55;overflow-x:hidden}body.nav-open{overflow:hidden}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted-text{color:var(--text-muted);font-size:.92rem}.form-success{border-radius:var(--radius-sm);color:var(--success);background:var(--success-soft);margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem;font-weight:600}.search-bar{margin-bottom:1.25rem}.list-toolbar{flex-wrap:wrap;align-items:flex-end;gap:.85rem;margin-bottom:1.25rem;display:flex}.list-toolbar .search-bar{flex:220px;margin-bottom:0}.field--grow{min-width:0}.empty-inline{text-align:center;padding:1.5rem 0}.form-error{color:var(--danger);font-size:.9rem}.app-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);height:100vh;display:grid;overflow:hidden}.app-shell__content{background:radial-gradient(ellipse 80% 50% at 100% 0%, #2563eb0f, transparent), var(--bg);flex-direction:column;min-width:0;height:100vh;min-height:0;display:flex;overflow:hidden}.mobile-topbar,.sidebar-backdrop{display:none}.app-topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:30;background:#fffffff2;flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 2rem;display:flex;position:sticky;top:0}.app-topbar__start{align-items:center;gap:.85rem;min-width:0;display:flex}.app-topbar__title{color:var(--gray-950);letter-spacing:-.02em;margin:0;font-size:.95rem;font-weight:700;display:none}.menu-toggle{display:none}.user-menu{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);box-shadow:var(--shadow-xs);flex-shrink:0;align-items:center;gap:.75rem;padding:.35rem .45rem .35rem .55rem;display:flex}.user-menu__profile{align-items:center;gap:.65rem;min-width:0;display:flex}.user-menu .user-card__avatar{width:2.25rem;height:2.25rem;color:var(--brand-700);background:var(--brand-50);border:1px solid var(--brand-100);border-radius:999px;font-size:.78rem;font-weight:700}.user-menu__info{flex-direction:column;gap:.05rem;min-width:0;display:flex}.user-menu__name{color:var(--gray-950);white-space:nowrap;text-overflow:ellipsis;max-width:10rem;font-size:.88rem;font-weight:700;line-height:1.25;overflow:hidden}.user-menu__role{color:var(--text-muted);text-transform:capitalize;font-size:.72rem;font-weight:600;line-height:1.2}.sidebar__scroll{flex-direction:column;flex:1;gap:.5rem;min-height:0;display:flex;overflow-y:auto}.sidebar{height:100vh;max-height:100vh;color:var(--text-inverse);background:var(--sidebar-bg);border-right:1px solid #ffffff0f;flex-direction:column;gap:0;padding:1.25rem 1rem;display:flex;overflow:hidden}.brand{align-items:center;gap:.85rem;padding:.35rem .5rem .75rem;display:flex}.brand__mark{width:2.75rem;height:2.75rem;color:var(--white);background:linear-gradient(135deg, var(--brand-500), var(--brand-600));border-radius:12px;place-items:center;font-size:1.1rem;font-weight:800;display:grid;box-shadow:0 8px 20px #2563eb59}.brand__name{letter-spacing:-.02em;font-size:1rem;font-weight:700}.brand__tagline{color:#f8fafca6;margin-top:.15rem;font-size:.8rem}.user-card{border-radius:var(--radius-sm);background:#ffffff0f;border:1px solid #ffffff14;align-items:center;gap:.75rem;padding:.85rem;display:flex}.user-card__avatar{width:2.5rem;height:2.5rem;color:var(--brand-700);background:var(--white);border-radius:10px;place-items:center;font-size:.85rem;font-weight:700;display:grid}.user-card__name{font-size:.92rem;font-weight:600}.user-card__role{color:#f8fafc99;margin-top:.1rem;font-size:.78rem}.sidebar__group{flex-direction:column;gap:.35rem;display:flex}.sidebar__section-title{color:#f8fafc73;letter-spacing:.1em;text-transform:uppercase;padding:.5rem .65rem .25rem;font-size:.68rem;font-weight:700}.sidebar__nav{flex-direction:column;gap:.2rem;display:flex}.nav-link{border-radius:var(--radius-sm);color:#f8fafcc7;align-items:center;gap:.65rem;padding:.65rem .75rem;font-size:.9rem;font-weight:500;transition:background .15s,color .15s;display:flex}.nav-link svg{opacity:.85;flex-shrink:0;width:1.15rem;height:1.15rem}.nav-link:hover{color:var(--white);background:#ffffff14}.nav-link.active{color:var(--white);box-shadow:inset 3px 0 0 var(--brand-500);background:#2563eb40;font-weight:600}.nav-link.active svg{opacity:1}.main-content{width:100%;min-height:0;max-width:var(--content-max);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;margin:0 auto;padding:1.75rem 2rem 2.5rem;overflow:auto}.page{flex-direction:column;gap:1.5rem;width:100%;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:.25rem;display:flex}.page-header h1{letter-spacing:-.03em;color:var(--gray-950);font-size:clamp(1.5rem,2.5vw,1.85rem);font-weight:700}.page-header p{max-width:40rem;color:var(--text-muted);margin-top:.35rem;font-size:.95rem}.page-header__action{flex-shrink:0}.stats-grid,.dashboard-grid,.two-column{gap:1.25rem;display:grid}.stats-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.dashboard-grid,.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid--single{grid-template-columns:minmax(0,1fr);max-width:36rem}.page-stack{grid-template-columns:minmax(0,1fr);gap:1.25rem;display:grid}.page-stack--split{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}@media (width<=1100px){.page-stack--split{grid-template-columns:minmax(0,1fr)}}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.detail-label{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.3rem;font-size:.72rem;font-weight:700}.stack{flex-direction:column;gap:.85rem;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.4rem;padding:.62rem 1.1rem;font-size:.9rem;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s,transform .1s;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{color:var(--white);background:var(--primary);box-shadow:var(--shadow-xs)}.btn--primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-sm)}.btn--secondary{color:var(--brand-700);background:var(--brand-50);border-color:var(--brand-100)}.btn--secondary:hover:not(:disabled){background:var(--brand-100)}.btn--ghost{color:var(--gray-700);background:var(--white);border-color:var(--border)}.btn--ghost:hover:not(:disabled){background:var(--gray-50);border-color:var(--border-strong)}.btn--success{color:var(--white);background:var(--success)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);overflow:hidden}.card__header{border-bottom:1px solid var(--border);background:linear-gradient(180deg, var(--white) 0%, var(--gray-50) 100%);padding:1.15rem 1.35rem}.card__header h2{letter-spacing:-.02em;color:var(--gray-950);font-size:1.02rem;font-weight:700}.card__header p{color:var(--text-muted);margin-top:.25rem;font-size:.88rem}.card__body{padding:1.25rem 1.35rem}.card__footer{border-top:1px solid var(--border);background:var(--gray-50);padding:1rem 1.35rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);padding:1.15rem 1.25rem 1.15rem 1.35rem;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--stat-accent,var(--primary));border-radius:4px 0 0 4px;width:4px;height:100%;position:absolute;top:0;left:0}.stat-card__top{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.65rem;display:flex}.stat-card__icon{background:var(--stat-icon-bg,var(--brand-50));width:2.35rem;height:2.35rem;color:var(--stat-accent,var(--primary));border-radius:10px;place-items:center;display:grid}.stat-card__icon svg{width:1.15rem;height:1.15rem}.stat-card__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;font-weight:600}.stat-card__value{letter-spacing:-.03em;color:var(--gray-950);font-size:1.65rem;font-weight:800;line-height:1.2}.stat-card__hint{color:var(--text-muted);margin-top:.35rem;font-size:.82rem}.stat-card--blue{--stat-accent:var(--brand-600);--stat-icon-bg:var(--brand-50)}.stat-card--green{--stat-accent:var(--success);--stat-icon-bg:var(--success-soft)}.stat-card--amber{--stat-accent:var(--warning);--stat-icon-bg:var(--warning-soft)}.stat-card--slate{--stat-accent:var(--gray-700);--stat-icon-bg:var(--gray-100)}.stat-card--clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.stat-card--clickable:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.stat-card--clickable:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}.status-tags{display:inline}.status-link{color:var(--brand-700);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.status-link:hover{color:var(--brand-800)}.badge{text-transform:capitalize;border:1px solid #0000;border-radius:999px;align-items:center;padding:.22rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge--neutral{color:var(--gray-700);background:var(--gray-100);border-color:var(--border)}.badge--info{color:var(--info);background:var(--info-soft)}.badge--success{color:var(--success);background:var(--success-soft)}.badge--warning{color:var(--warning);background:var(--warning-soft)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.form-grid--compact{gap:.65rem}.field{flex-direction:column;gap:.4rem;display:flex}.field span{color:var(--gray-700);font-size:.85rem;font-weight:600}.field input,.field select,.field textarea,.inline-form input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);width:100%;color:var(--text);padding:.68rem .85rem;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus,.inline-form input:focus{border-color:var(--brand-500);outline:none;box-shadow:0 0 0 3px #2563eb1f}.field--full{grid-column:1/-1}.field-hint{color:var(--gray-500);font-size:.78rem;font-weight:500;line-height:1.35}.form-actions,.inline-form,.filter-row{flex-wrap:nowrap;align-items:center;gap:.65rem;display:flex}.filter-row{flex-wrap:wrap;margin-bottom:1rem}.pagination{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-top:1rem;padding-top:1rem;display:flex}.pagination__summary{color:var(--text-muted);margin:0;font-size:.82rem;font-weight:600}.pagination__controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.pagination__pages{color:var(--gray-700);text-align:center;min-width:6.5rem;font-size:.82rem;font-weight:600}.medicine-picker__row{flex-wrap:wrap;align-items:flex-end;gap:.65rem;display:flex}.medicine-picker__qty{flex-shrink:0;width:6rem}.medicine-picker__hint{margin-top:.35rem;font-size:.82rem}.medicine-picker__selected-item{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.pharmacy-preview{margin-top:.5rem}.pharmacy-preview__total{margin-top:.65rem}.searchable-dropdown{width:100%;position:relative}.searchable-dropdown__trigger{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;padding:.68rem .85rem;transition:border-color .15s,box-shadow .15s;display:flex}.searchable-dropdown--open .searchable-dropdown__trigger,.searchable-dropdown__trigger:focus-visible{border-color:var(--brand-500);outline:none;box-shadow:0 0 0 3px #2563eb1f}.searchable-dropdown__trigger:disabled{opacity:.6;cursor:not-allowed}.searchable-dropdown__placeholder{color:var(--gray-500)}.searchable-dropdown__value{font-weight:500}.searchable-dropdown__chevron{color:var(--gray-500);font-size:.85rem;line-height:1}.searchable-dropdown__panel--floating{z-index:10000;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:fixed;overflow:hidden}.searchable-dropdown__search{border:none;border-bottom:1px solid var(--border);background:var(--white);width:100%;color:var(--text);font:inherit;border-radius:0;padding:.6rem .75rem}.searchable-dropdown__search:focus{outline:none;box-shadow:inset 0 0 0 2px #2563eb1f}.searchable-dropdown__list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;margin:0;padding:0;list-style:none;overflow-y:auto}.searchable-dropdown__option{border:none;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;flex-direction:column;align-items:flex-start;gap:.12rem;padding:.55rem .7rem;display:flex}.searchable-dropdown__option:last-child{border-bottom:none}.searchable-dropdown__option:hover,.searchable-dropdown__option:focus-visible{background:var(--brand-50);outline:none}.searchable-dropdown__option--active{background:var(--brand-50)}.searchable-dropdown__option-label{font-size:.9rem;font-weight:600}.searchable-dropdown__option-hint{color:var(--gray-500);font-size:.8rem}.searchable-dropdown__empty{color:var(--gray-500);padding:.7rem;font-size:.85rem}.searchable-dropdown__footer{border-top:1px solid var(--border);background:var(--gray-50);color:var(--gray-500);margin:0;padding:.5rem .75rem;font-size:.78rem;line-height:1.35}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:visible}.data-table{border-collapse:collapse;width:100%;min-width:720px;font-size:.9rem}.data-table th,.data-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:.8rem 1rem}.data-table th{background:var(--gray-50);color:var(--gray-700);letter-spacing:.05em;text-transform:uppercase;font-size:.72rem;font-weight:700}.data-table tbody tr:hover{background:#2563eb05}.data-table tbody tr:last-child td{border-bottom:0}.table-actions{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.table-actions a{color:var(--primary);font-size:.88rem;font-weight:600}.data-table--compact{min-width:820px;font-size:.84rem}.data-table--medicine{min-width:1120px}.data-table--compact th,.data-table--compact td{padding:.5rem .55rem}.data-table--compact th{letter-spacing:.04em;font-size:.67rem}.data-table--compact td{text-overflow:ellipsis;white-space:nowrap;vertical-align:top;max-width:9rem;overflow:hidden}.data-table--compact tbody td:has(.bill-charge){white-space:normal;max-width:7.5rem}.data-table--compact .col-id{width:4.25rem;max-width:4.25rem}.data-table--compact .col-name{max-width:9.5rem;font-weight:600}.data-table--compact .col-phone{max-width:8rem}.data-table--compact .col-doctor{max-width:7.5rem}.bill-charge{flex-direction:column;gap:.15rem;font-size:.85rem;line-height:1.3;display:flex}.bill-charge__amount{font-weight:600}.bill-charge__tag{text-transform:uppercase;letter-spacing:.03em;font-size:.7rem;font-weight:600}.bill-charge--paid .bill-charge__tag{color:var(--success,#15803d)}.bill-charge--due .bill-charge__tag{color:var(--warning,#b45309)}.bill-charge__line--paid{color:var(--success,#15803d);font-weight:600}.bill-charge__line--due{color:var(--warning,#b45309);font-weight:600}.bill-summary-paid{color:var(--success,#15803d);font-weight:600}.bill-summary-due{color:var(--warning,#b45309);font-weight:600}.data-table--compact .col-actions{width:6.5rem;max-width:6.5rem;padding-left:.35rem;padding-right:.35rem}.data-table--compact th.col-actions{text-align:right;vertical-align:bottom}.data-table--compact tbody td.col-actions{vertical-align:top;padding-top:.55rem;padding-bottom:.55rem}.table-actions--icons{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:.2rem;min-height:1.85rem;display:inline-flex}.icon-action{width:1.85rem;height:1.85rem;color:var(--gray-600);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:inline-flex;position:relative}.icon-action svg{width:1rem;height:1rem}.icon-action:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.icon-action--primary{color:var(--primary)}.icon-action--primary:hover,.icon-action--primary:focus-visible{background:var(--brand-50);border-color:var(--brand-100);color:var(--brand-700)}.icon-action--default:hover,.icon-action--default:focus-visible{background:var(--gray-100);color:var(--text)}.icon-action--danger{color:#dc2626}.icon-action--danger:hover,.icon-action--danger:focus-visible{color:#b91c1c;background:#dc262614;border-color:#dc262633}.data-table--compact .col-actions,.data-table--compact td.col-actions{white-space:nowrap;overflow:visible}.data-table--compact tbody td:has(.status-badge){vertical-align:top;padding-top:.6rem}.icon-tooltip-float{z-index:10001;color:#fff;white-space:nowrap;pointer-events:none;background:#0f172a;border-radius:5px;padding:.35rem .6rem;font-size:.72rem;font-weight:600;line-height:1.2;animation:.12s ease-out tooltip-fade-in;position:fixed;transform:translate(-50%,-100%);box-shadow:0 4px 14px #0f172a33}@keyframes tooltip-fade-in{0%{opacity:0;transform:translate(-50%,calc(4px - 100%))}to{opacity:1;transform:translate(-50%,-100%)}}.module-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.85rem;display:grid}.module-list__item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);flex-direction:column;gap:.35rem;padding:1rem 1.1rem;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.module-list__item:hover{border-color:var(--brand-100);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.module-list__section{color:var(--primary);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:700}.module-list__item h3{color:var(--gray-950);font-size:.98rem;font-weight:700}.list-row,.history-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);padding:1rem 1.1rem}.list-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.history-card{flex-direction:column;gap:.75rem;display:flex}.history-card__top{justify-content:space-between;gap:1rem;display:flex}.history-card__top h3{font-size:1rem;font-weight:700}.history-card__dates{color:var(--text-muted);text-align:right;flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.patient-history-billing-summary{border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:1.25rem}.patient-history-billing-summary__value{color:var(--success);margin-top:.25rem;font-size:1.35rem;font-weight:700}.simple-list{color:var(--gray-700);margin:0;padding-left:1.15rem;font-size:.9rem}.invoice-print-wrapper--hidden{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.invoice-print-wrapper--hidden .invoice-print{background:0 0;border:none;padding:0}.invoice-print{border-radius:var(--radius-sm);background:var(--gray-50);border:1px dashed var(--border-strong);padding:1.25rem}.invoice-print__header h3{margin:0 0 .35rem;font-size:1.15rem}.invoice-print__meta{color:var(--text-muted);flex-wrap:wrap;gap:.75rem 1.5rem;margin:0 0 1rem;font-size:.88rem;display:flex}.invoice-print__patient{border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem 1.25rem;margin:0 0 1.25rem;padding:.85rem 1rem;display:grid}.invoice-print__patient dt{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 .15rem;font-size:.75rem;font-weight:600}.invoice-print__patient dd{margin:0;font-weight:600}.invoice-print__status{text-transform:capitalize}.invoice-print__section{margin-bottom:1.25rem}.invoice-print__section h4{margin:0 0 .5rem;font-size:.92rem;font-weight:700}.invoice-print__balance-due td{border-top:2px solid var(--border);padding-top:.65rem}.invoice-table{border-collapse:collapse;width:100%;font-size:.88rem}.invoice-table th,.invoice-table td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .65rem}.invoice-table th{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);background:#fff;font-size:.75rem;font-weight:600}.invoice-table th:nth-child(2){white-space:nowrap}.invoice-table th:nth-child(3),.invoice-table th:nth-child(4),.invoice-table th:nth-child(5),.invoice-table td:nth-child(3),.invoice-table td:nth-child(4),.invoice-table td:nth-child(5){text-align:right;white-space:nowrap}.invoice-table--medicines th:nth-child(4){text-align:left}.invoice-table--medicines th:nth-child(3),.invoice-table--medicines th:nth-child(5),.invoice-table--medicines th:nth-child(6),.invoice-table--medicines td:nth-child(3),.invoice-table--medicines td:nth-child(5),.invoice-table--medicines td:nth-child(6){text-align:right;white-space:nowrap}.invoice-table__section-total td{border-top:2px solid var(--border-strong);font-weight:700}.invoice-table tfoot td{background:#fff9;border-bottom:none;font-weight:600}.invoice-table--summary{max-width:20rem;margin-top:.5rem;margin-left:auto}.invoice-table--summary td{border-bottom:1px solid var(--border)}.invoice-table--summary td:last-child{text-align:right;font-weight:600}.invoice-table__subtotal td{background:color-mix(in srgb, var(--gray-50) 80%, transparent);font-weight:600}.invoice-table__adjustment td{color:var(--text-muted);font-size:.92rem;font-weight:500}.invoice-table__adjustment td:last-child{color:var(--text)}.invoice-table__vat td{font-size:.92rem;font-weight:500}.invoice-table__total td{border-top:2px solid var(--border-strong);border-bottom:none;padding-top:.65rem;font-size:1rem;font-weight:700}.empty-state{text-align:center;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--gray-50);padding:2.5rem 1.5rem}.empty-state h3{color:var(--gray-950);font-size:1rem}.empty-state p{margin-top:.4rem}.login-page{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.login-brand{color:var(--text-inverse);background:var(--sidebar-bg);flex-direction:column;justify-content:center;padding:3rem;display:flex}.login-brand__logo{background:linear-gradient(135deg, var(--brand-500), var(--brand-600));border-radius:14px;place-items:center;width:3.5rem;height:3.5rem;margin-bottom:1.5rem;font-size:1.35rem;font-weight:800;display:grid;box-shadow:0 12px 28px #2563eb66}.login-brand h1{letter-spacing:-.03em;font-size:clamp(1.75rem,3vw,2.25rem);font-weight:800;line-height:1.2}.login-brand p{color:#f8fafcb8;max-width:22rem;margin-top:1rem;font-size:1rem;line-height:1.6}.login-brand__features{flex-direction:column;gap:.85rem;margin-top:2.5rem;display:flex}.login-brand__feature{color:#f8fafcd9;align-items:center;gap:.65rem;font-size:.9rem;display:flex}.login-brand__feature:before{content:"";background:var(--brand-500);border-radius:50%;width:6px;height:6px}.login-panel{background:var(--bg);place-items:center;padding:2rem;display:grid}.login-panel .card{width:min(100%,420px);box-shadow:var(--shadow-md)}.login-form{margin-bottom:.5rem}.demo-accounts{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1.25rem}.demo-accounts>p{color:var(--gray-700);text-transform:uppercase;letter-spacing:.05em;font-size:.82rem;font-weight:700}.demo-accounts ul{margin:.75rem 0 0;padding:0;list-style:none}.demo-accounts li{border-bottom:1px solid var(--border);color:var(--text-muted);padding:.5rem 0;font-size:.88rem}.demo-accounts li:last-child{border-bottom:0}.toast-viewport{z-index:9999;pointer-events:none;flex-direction:column-reverse;align-items:flex-end;gap:.75rem;width:min(380px,100vw - 2rem);display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.toast{border-radius:var(--radius-md);background:var(--white);border:1px solid var(--border);pointer-events:auto;align-items:flex-start;gap:.75rem;width:100%;padding:1rem 1.1rem 1rem 1rem;animation:.4s cubic-bezier(.22,1,.36,1) toast-slide-in;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 6px #0f172a0f,0 12px 32px #0f172a24}.toast:after{content:"";transform-origin:0;width:100%;height:3px;animation:4s linear forwards toast-progress;position:absolute;bottom:0;left:0}.toast--success:after{background:var(--success)}.toast--error:after{background:#dc2626}.toast--info:after{background:var(--brand-500)}.toast--exiting{animation:.28s cubic-bezier(.4,0,1,1) forwards toast-slide-out}.toast--exiting:after{opacity:0;animation:none}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)scale(.92)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes toast-slide-out{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(100%)scale(.92)}}@keyframes toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.toast--success{border-color:color-mix(in srgb, var(--success) 35%, var(--border))}.toast--success .toast__icon{color:var(--success);background:var(--success-soft)}.toast--error{border-color:color-mix(in srgb, #dc2626 35%, var(--border))}.toast--error .toast__icon{color:#dc2626;background:#dc26261a}.toast--info{border-color:color-mix(in srgb, var(--brand-500) 35%, var(--border))}.toast--info .toast__icon{color:var(--brand-600);background:var(--brand-50)}.toast__icon{border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;font-size:.95rem;font-weight:700;display:inline-flex}.toast__message{color:var(--text);flex:1;margin:0;padding-top:.15rem;font-size:.95rem;font-weight:600;line-height:1.45}.toast__close{border-radius:var(--radius-sm);width:1.75rem;height:1.75rem;color:var(--gray-500);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:1.25rem;line-height:1}.toast__close:hover{background:var(--gray-100);color:var(--text)}.confirm-backdrop{z-index:10000;background:#0f172a73;justify-content:center;align-items:center;padding:1.25rem;animation:.2s ease-out confirm-backdrop-in;display:flex;position:fixed;inset:0}@keyframes confirm-backdrop-in{0%{opacity:0}to{opacity:1}}.confirm-dialog{border-radius:var(--radius-md);background:var(--white);border:1px solid color-mix(in srgb, #dc2626 35%, var(--border));flex-direction:column;gap:1rem;width:min(420px,100%);padding:1.35rem 1.4rem;animation:.35s cubic-bezier(.22,1,.36,1) confirm-dialog-in;display:flex;box-shadow:0 4px 6px #0f172a0f,0 12px 32px #0f172a24}@keyframes confirm-dialog-in{0%{opacity:0;transform:scale(.92)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.confirm-dialog__icon{color:#dc2626;background:#dc26261a;border-radius:999px;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:1.1rem;font-weight:700;display:inline-flex}.confirm-dialog__title{color:var(--text);margin:0;font-size:1.1rem;font-weight:700}.confirm-dialog__message{color:var(--text-muted);margin:.35rem 0 0;font-size:.95rem;font-weight:500;line-height:1.5}.confirm-dialog__actions{flex-wrap:wrap;justify-content:flex-end;gap:.65rem;margin-top:.25rem;display:flex}.btn--danger{color:var(--white);background:#dc2626;border-color:#dc2626}.prompt-dialog{border-color:color-mix(in srgb, var(--primary) 35%, var(--border))}.prompt-dialog__icon{color:var(--primary);background:var(--brand-50)}.prompt-dialog__hint{color:var(--text-muted);margin:.5rem 0 0;font-size:.85rem}.prompt-dialog__field{margin-top:.85rem}.prompt-dialog__error{color:#dc2626;margin:.35rem 0 0;font-size:.85rem;font-weight:600}.confirm-dialog--info{border-color:color-mix(in srgb, var(--primary) 35%, var(--border));width:min(520px,100%)}.confirm-dialog__icon--info{color:var(--primary);background:var(--brand-50)}.confirm-backdrop:has(.payment-record-dialog){padding-top:max(1rem, calc(env(safe-area-inset-top,0px) + .5rem));padding-bottom:max(1rem, calc(env(safe-area-inset-bottom,0px) + .5rem));padding-left:max(.75rem, env(safe-area-inset-left,0px));padding-right:max(.75rem, env(safe-area-inset-right,0px));justify-content:center;align-items:flex-start}.payment-record-dialog.confirm-dialog{border:1px solid var(--border);gap:0;width:min(34rem,100%);min-height:0;max-height:calc(100dvh - 2rem);padding:0;overflow:hidden;box-shadow:0 8px 16px #0f172a0f,0 24px 48px #0f172a1f}.payment-record-dialog .confirm-dialog__content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:auto;min-height:0;padding:0 1.25rem 1rem;overflow-y:auto}.payment-record-dialog__header{border-bottom:1px solid var(--border);background:linear-gradient(180deg, var(--brand-50) 0%, var(--white) 100%);flex-shrink:0;align-items:flex-start;gap:.85rem;padding:1.15rem 1.25rem 1rem;display:flex}.payment-record-dialog__header-icon{border-radius:var(--radius-sm);width:2.5rem;height:2.5rem;color:var(--primary);background:var(--white);border:1px solid var(--brand-100);flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:0 1px 2px #0f172a0f}.payment-record-dialog__header-text{flex:1;min-width:0}.payment-record-dialog__title{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:1.125rem;font-weight:700;line-height:1.3}.payment-record-dialog__subtitle{color:var(--text-muted);margin:.25rem 0 0;font-size:.875rem;font-weight:500;line-height:1.45}.payment-record-dialog__hero{text-align:center;border-radius:var(--radius-md);background:linear-gradient(135deg, var(--brand-600) 0%, var(--brand-700) 100%);color:var(--white);flex-direction:column;align-items:center;gap:.2rem;margin:1rem 0 .25rem;padding:1rem 1.1rem;display:flex;box-shadow:0 4px 14px #2563eb47}.payment-record-dialog__hero-label{letter-spacing:.06em;text-transform:uppercase;opacity:.9;font-size:.72rem;font-weight:600}.payment-record-dialog__hero-amount{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:800;line-height:1.15}.payment-record-dialog__hero-meta{opacity:.88;max-width:100%;margin-top:.35rem;font-size:.8rem;font-weight:500;line-height:1.4}.payment-record-dialog__body{flex-direction:column;gap:0;display:flex}.payment-record-dialog__section{border-top:1px solid var(--border);padding-top:1.1rem}.payment-record-dialog__section:first-of-type{border-top:none;padding-top:.5rem}.payment-record-dialog__section-title{letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin:0 0 .75rem;font-size:.7rem;font-weight:700}.payment-record-dialog__metrics{grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr));gap:.6rem;margin:0;display:grid}.payment-record-dialog__metric{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--gray-50);flex-direction:column;gap:.25rem;padding:.65rem .75rem;display:flex}.payment-record-dialog__metric dt{color:var(--text-muted);margin:0;font-size:.72rem;font-weight:600;line-height:1.3}.payment-record-dialog__metric dd{color:var(--text);font-variant-numeric:tabular-nums;margin:0;font-size:.95rem;font-weight:700}.payment-record-dialog__metric--positive dd{color:var(--success,#15803d)}.payment-record-dialog__metric--highlight{border-color:color-mix(in srgb, var(--primary) 35%, var(--border));background:color-mix(in srgb, var(--brand-50) 60%, var(--white))}.payment-record-dialog__metric--highlight dd{color:var(--primary)}.payment-record-dialog__fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem;display:grid}.payment-record-dialog__error{color:#dc2626;margin:.5rem 0 0;font-size:.82rem;font-weight:600}.payment-record-dialog__partial-field{margin-top:.75rem}.payment-record-dialog__toggle{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--white);cursor:pointer;align-items:flex-start;gap:.75rem;padding:.75rem .85rem;transition:border-color .15s,background .15s;display:flex}.payment-record-dialog__toggle:hover{border-color:color-mix(in srgb, var(--primary) 40%, var(--border));background:var(--brand-50)}.payment-record-dialog__toggle input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.payment-record-dialog__toggle-box{border:2px solid var(--border);background:var(--white);border-radius:.25rem;flex-shrink:0;width:1.125rem;height:1.125rem;margin-top:.15rem;transition:border-color .15s,background .15s}.payment-record-dialog__toggle input:checked+.payment-record-dialog__toggle-box{border-color:var(--primary);background:var(--primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 6l2.5 2.5 4.5-5' stroke='white' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:.7rem}.payment-record-dialog__toggle-text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.payment-record-dialog__toggle-text strong{color:var(--text);font-size:.9rem;font-weight:600}.payment-record-dialog__toggle-text span{color:var(--text-muted);font-size:.8rem;font-weight:500;line-height:1.35}.payment-record-summary{margin:0}.payment-record-summary__info{color:var(--text-muted);background:var(--gray-50);border-radius:var(--radius-sm);border-left:3px solid var(--brand-500);margin:0 0 .65rem;padding:.6rem .75rem;font-size:.8rem;line-height:1.45}.payment-record-summary__panel{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--white);overflow:hidden}.payment-record-summary__row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:1rem;padding:.55rem .85rem;font-size:.875rem;display:flex}.payment-record-summary__row:last-child{border-bottom:none}.payment-record-summary__label{min-width:0;color:var(--text-muted);flex:1;font-weight:500}.payment-record-summary__value{font-variant-numeric:tabular-nums;color:var(--text);text-align:right;flex-shrink:0;font-weight:700}.payment-record-summary__row--deduct .payment-record-summary__value{color:#b45309}.payment-record-summary__row--add .payment-record-summary__value{color:var(--primary)}.payment-record-summary__row--emphasis{background:color-mix(in srgb, var(--brand-50) 55%, var(--white))}.payment-record-summary__row--emphasis .payment-record-summary__label,.payment-record-summary__row--emphasis .payment-record-summary__value{color:var(--text);font-weight:700}.payment-record-dialog__footer{border-top:1px solid var(--border);background:var(--gray-50);flex-shrink:0;gap:.65rem;margin-top:0;padding:.85rem 1.25rem 1.1rem}.payment-record-dialog__confirm-btn{justify-content:center;align-items:center;gap:.5rem;min-width:8.5rem;display:inline-flex}.payment-record-dialog__confirm-amount{font-variant-numeric:tabular-nums;background:#ffffff38;border-radius:999px;padding:.15rem .5rem;font-size:.85rem;font-weight:700}.payment-record-dialog__field-hint{color:var(--gray-500);font-size:.78rem;font-weight:500;line-height:1.35;display:block}.payment-progress-mini{font-size:.88rem;line-height:1.4}@media (width<=540px){.payment-record-dialog.confirm-dialog{width:100%}.payment-record-dialog .confirm-dialog__content{padding:0 1rem .85rem}.payment-record-dialog__header{padding:1rem}.payment-record-dialog__fields{grid-template-columns:1fr}.payment-record-dialog__hero-amount{font-size:1.5rem}.payment-record-dialog__footer{flex-direction:column-reverse;align-items:stretch;padding:.85rem 1rem 1rem}.payment-record-dialog__footer .btn{justify-content:center;width:100%}.payment-record-dialog__confirm-btn{min-width:0}}.btn--danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}@keyframes dashboard-fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes dashboard-chart-reveal{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes dashboard-tooltip-pop{0%{opacity:0;transform:translateY(6px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes dashboard-value-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.dashboard-charts{flex-direction:column;gap:1.25rem;margin-bottom:1.25rem;display:flex}.dashboard-charts__intro{margin-bottom:.25rem}.dashboard-charts__intro--animate{animation:.55s cubic-bezier(.22,1,.36,1) backwards dashboard-fade-up}.dashboard-chart-card--animate{animation:.6s cubic-bezier(.22,1,.36,1) backwards dashboard-fade-up;animation-delay:var(--chart-delay,0s)}.dashboard-chart--draw{animation:.7s cubic-bezier(.22,1,.36,1) backwards dashboard-chart-reveal;animation-delay:calc(var(--chart-delay,0s) + .12s)}.dashboard-chart__tooltip--animate{animation:.22s cubic-bezier(.22,1,.36,1) dashboard-tooltip-pop}.dashboard-chart__empty--animate{animation:.45s ease-out backwards dashboard-fade-up}.stats-grid--animate .stat-card{animation:.5s cubic-bezier(.22,1,.36,1) backwards dashboard-fade-up}.stats-grid--animate .stat-card:first-child{animation-delay:0s}.stats-grid--animate .stat-card:nth-child(2){animation-delay:50ms}.stats-grid--animate .stat-card:nth-child(3){animation-delay:.1s}.stats-grid--animate .stat-card:nth-child(4){animation-delay:.15s}.stats-grid--animate .stat-card:nth-child(5){animation-delay:.2s}.stats-grid--animate .stat-card:nth-child(6){animation-delay:.25s}.stats-grid--animate .stat-card:nth-child(7){animation-delay:.3s}.stats-grid--animate .stat-card:nth-child(8){animation-delay:.35s}.stats-grid--animate .stat-card:hover{transition:transform .2s,box-shadow .2s}.stats-grid--animate .stat-card:hover .stat-card__value{animation:.45s dashboard-value-pulse}.dashboard-grid--animate .card{animation:.55s cubic-bezier(.22,1,.36,1) backwards dashboard-fade-up}.dashboard-grid--animate .card:first-child{animation-delay:.96s}.dashboard-grid--animate .card:nth-child(2){animation-delay:1.04s}.dashboard-chart-card--animate:hover{transition:transform .25s,box-shadow .25s;transform:translateY(-2px);box-shadow:0 8px 24px #0f172a14}@media (prefers-reduced-motion:reduce){.dashboard-charts__intro--animate,.dashboard-chart-card--animate,.dashboard-chart--draw,.dashboard-chart__tooltip--animate,.dashboard-chart__empty--animate,.stats-grid--animate .stat-card,.dashboard-grid--animate .card{animation:none}.dashboard-chart-card--animate:hover{transform:none}.recharts-bar-rectangle,.recharts-area-area,.recharts-line-curve,.recharts-pie-sector{transition:none!important}}.dashboard-charts__heading{color:var(--text);margin:0 0 .35rem;font-size:1.15rem;font-weight:700}.dashboard-charts__desc{max-width:42rem;margin:0;font-size:.9rem}.dashboard-charts__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.dashboard-charts__grid--wide{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-chart-card--span-2{grid-column:1/-1}.dashboard-chart{width:100%;min-height:240px}.dashboard-chart--tall{min-height:280px}.dashboard-chart__empty{text-align:center;margin:2rem 0}.dashboard-chart__tooltip{border-radius:var(--radius-sm);background:var(--white);border:1px solid var(--border);padding:.5rem .65rem;font-size:.82rem;box-shadow:0 4px 12px #0f172a1f}.dashboard-chart__tooltip-label{color:var(--text);margin:0 0 .35rem;font-weight:700}.dashboard-chart__tooltip p{margin:.15rem 0 0}.dashboard-chart-card .card__body{padding-top:.25rem}.recharts-default-legend{font-size:.8rem!important}.recharts-cartesian-axis-tick-value{fill:var(--text-muted)}.dashboard-charts--operations{background:linear-gradient(180deg, var(--brand-50) 0%, transparent 12rem);border-radius:var(--radius-md);margin:0 -.25rem;padding:1rem 1rem .5rem}.dashboard-charts--operations .dashboard-charts__badge{letter-spacing:.08em;text-transform:uppercase;color:var(--brand-700);background:var(--white);border:1px solid var(--brand-100);border-radius:999px;margin-bottom:.35rem;padding:.2rem .55rem;font-size:.68rem;font-weight:700;display:inline-block}.dashboard-charts__section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:.5rem 0 0;font-size:.72rem;font-weight:700}.dashboard-charts__grid--quad{grid-template-columns:repeat(4,minmax(0,1fr))}.stats-grid--operations .stat-card{border-radius:var(--radius-md)}.financial-reports{flex-direction:column;gap:1.5rem;display:flex}.financial-reports__hero{border-radius:var(--radius-md);color:var(--white);background:linear-gradient(135deg,#0f766e 0%,#134e4a 55%,#1e293b 100%);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.25rem;padding:1.35rem 1.5rem;display:flex;box-shadow:0 12px 32px #0f766e40}.financial-reports__title{letter-spacing:-.02em;margin:.35rem 0 .25rem;font-size:1.35rem;font-weight:800}.financial-reports__lead{opacity:.9;max-width:32rem;margin:0;font-size:.9rem;line-height:1.5}.financial-reports__hero-stats{flex-wrap:wrap;gap:1.25rem 2rem;margin:0;display:flex}.financial-reports__hero-stats div{text-align:right}.financial-reports__hero-stats dt{text-transform:uppercase;letter-spacing:.06em;opacity:.8;margin:0;font-size:.72rem;font-weight:600}.financial-reports__hero-stats dd{font-variant-numeric:tabular-nums;margin:.15rem 0 0;font-size:1.15rem;font-weight:800}.finance-tag{letter-spacing:.07em;text-transform:uppercase;color:inherit;background:#ffffff26;border-radius:4px;padding:.18rem .5rem;font-size:.65rem;font-weight:700;display:inline-block}.finance-tag--hero{background:#fff3}.finance-tag--panel{color:#047857;background:#ecfdf5;margin-bottom:.4rem}.finance-tag--government{color:#4338ca;background:#eef2ff}.financial-reports__kpi-block{flex-direction:column;gap:.75rem;display:flex}.financial-reports__kpi-block--vat{border-radius:var(--radius-md);background:linear-gradient(#eef2ff 0%,#f8fafc 100%);border:1px solid #c7d2fe;padding:1rem 1.1rem 1.1rem}.financial-reports__kpi-block-title{color:var(--text);margin:0;font-size:.95rem;font-weight:700}.financial-reports__kpi-block-desc{max-width:40rem;margin:0;font-size:.84rem;line-height:1.45}.financial-reports__kpi-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.finance-kpi{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--white);border-left:4px solid var(--primary);padding:1rem 1.1rem}.finance-kpi--success{border-left-color:#059669}.finance-kpi--warning{border-left-color:#d97706}.finance-kpi--primary{border-left-color:#0f766e}.finance-kpi--info{border-left-color:#0284c7}.finance-kpi--vat{background:var(--white);border-left-color:#4f46e5}.finance-kpi--vat-single{max-width:22rem}.finance-kpi__hint{margin:.45rem 0 0;font-size:.72rem;line-height:1.35}.finance-kpi__label{color:var(--text-muted);margin:.35rem 0 .15rem;font-size:.82rem;font-weight:600}.finance-kpi__value{font-variant-numeric:tabular-nums;color:var(--text);margin:0;font-size:1.35rem;font-weight:800}.financial-reports__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.finance-panel{border-radius:var(--radius-md);background:var(--white);border:1px solid #d1fae5;overflow:hidden;box-shadow:0 1px 3px #0f172a0f}.finance-panel--wide{grid-column:1/-1}.finance-panel__head{background:linear-gradient(180deg, #f0fdf4 0%, var(--white) 100%);border-bottom:1px solid #d1fae5;padding:1rem 1.15rem .75rem}.finance-panel__title{color:#134e4a;margin:0;font-size:1rem;font-weight:700}.finance-panel__subtitle{color:var(--text-muted);margin:.25rem 0 0;font-size:.82rem;line-height:1.4}.finance-panel__body{padding:.75rem 1rem 1rem}.finance-chart{width:100%;min-height:260px}.finance-chart--tall{min-height:300px}.finance-chart__empty{text-align:center;margin:2.5rem 0}.finance-chart__tooltip{border-radius:var(--radius-sm);color:#f8fafc;background:#1e293b;padding:.65rem .85rem;font-size:.82rem;box-shadow:0 8px 20px #0f172a33}.finance-chart__tooltip-title{margin:0 0 .25rem;font-weight:700}.finance-chart__tooltip-meta{opacity:.75;margin:0 0 .5rem;font-size:.75rem}.finance-chart__tooltip-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.finance-chart__tooltip-list li{grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;display:grid}.finance-chart__dot{border-radius:999px;width:8px;height:8px}@media (width<=1100px){.dashboard-charts__grid--quad,.financial-reports__kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.dashboard-charts__grid,.dashboard-charts__grid--wide,.dashboard-charts__grid--quad,.financial-reports__grid,.financial-reports__kpi-row{grid-template-columns:1fr}.dashboard-chart-card--span-2,.finance-panel--wide{grid-column:auto}.financial-reports__hero{flex-direction:column;align-items:flex-start}.financial-reports__hero-stats{justify-content:flex-start;width:100%}.financial-reports__hero-stats div{text-align:left}}.error-boundary{border-radius:var(--radius-md);background:#fef2f2;border:1px solid #fecaca;max-width:32rem;padding:2rem}.error-boundary h2{color:#991b1b;margin:0 0 .5rem;font-size:1.1rem}.roles-editor-card .card__body{padding:0}.roles-editor{flex-direction:column;display:flex}.roles-editor__hero{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#eef2ff 0%,#f8fafc 55%,#f0fdf4 100%);justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:1.35rem 1.5rem;display:flex}.roles-editor__badge{letter-spacing:.04em;text-transform:uppercase;color:#4338ca;background:#ffffffd9;border:1px solid #c7d2fe;border-radius:999px;margin-bottom:.45rem;padding:.2rem .55rem;font-size:.68rem;font-weight:700;display:inline-block}.roles-editor__heading{letter-spacing:-.02em;color:var(--text);margin:0 0 .35rem;font-size:1.2rem;font-weight:800}.roles-editor__desc{max-width:36rem;margin:0;font-size:.88rem;line-height:1.5}.roles-progress{border-radius:var(--radius-md);background:#ffffffeb;border:1px solid #6366f133;flex-shrink:0;min-width:10.5rem;padding:.85rem 1rem;box-shadow:0 1px 3px #0f172a0f}.roles-progress--dual{min-width:16rem;box-shadow:none;background:0 0;border:none;gap:.75rem;padding:0;display:flex}.roles-progress--dual .roles-progress__block{border-radius:var(--radius-md);background:#ffffffeb;border:1px solid #6366f133;flex:1;padding:.75rem .9rem}.roles-progress__track--actions .roles-progress__bar--actions{background:linear-gradient(90deg,#059669,#047857)}.roles-progress__meta{align-items:baseline;gap:.35rem;margin-bottom:.5rem;display:flex}.roles-progress__count{font-variant-numeric:tabular-nums;color:#4338ca;font-size:1.35rem;font-weight:800;line-height:1}.roles-progress__count strong{font-weight:800}.roles-progress__sep{color:var(--text-muted);margin:0 .1rem;font-weight:600}.roles-progress__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.roles-progress__track{background:#e2e8f0;border-radius:999px;height:6px;overflow:hidden}.roles-progress__bar{border-radius:inherit;background:linear-gradient(90deg,#6366f1,#4f46e5);height:100%;transition:width .25s}.roles-editor__name-panel{border-bottom:1px solid var(--border);background:var(--white);padding:1.25rem 1.5rem}.roles-editor__name-field{flex-direction:column;gap:.4rem;max-width:28rem;display:flex}.roles-editor__name-label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:700}.roles-editor__name-field input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);width:100%;color:var(--text);padding:.7rem .9rem;font-size:1rem;font-weight:600;transition:border-color .15s,box-shadow .15s}.roles-editor__name-field input:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f126}.roles-editor__permissions-head{background:var(--white);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;padding:1.15rem 1.5rem .85rem;display:flex}.roles-editor__permissions-title{color:var(--text);margin:0 0 .2rem;font-size:.95rem;font-weight:700}.roles-editor__permissions-sub{margin:0;font-size:.82rem}.roles-editor__global-actions{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.roles-editor__link-btn{color:#4f46e5;cursor:pointer;background:0 0;border:none;padding:.35rem 0;font-size:.82rem;font-weight:700;transition:color .15s}.roles-editor__link-btn:hover:not(:disabled){color:#3730a3;text-decoration:underline}.roles-editor__link-btn:disabled{opacity:.45;cursor:not-allowed}.roles-editor__link-btn--muted{color:var(--text-muted)}.roles-editor__link-btn--muted:hover:not(:disabled){color:var(--text)}.roles-editor__action-divider{background:var(--border);width:1px;height:1rem}.roles-editor__legend{border-bottom:1px solid var(--border);color:var(--text-muted);background:#f1f5f9;flex-wrap:wrap;gap:.5rem 1rem;padding:.65rem 1.5rem;font-size:.72rem;font-weight:600;display:flex}.roles-legend__item{align-items:center;gap:.35rem;display:inline-flex}.roles-legend__abbr{color:#4338ca;background:#eef2ff;border:1px solid #c7d2fe;border-radius:6px;justify-content:center;align-items:center;min-width:1.35rem;height:1.35rem;font-size:.68rem;font-weight:800;display:inline-flex}.roles-permissions{background:#f8fafc;flex-direction:column;gap:0;padding:0 1.5rem 1.25rem;display:flex}.roles-permissions__modules{flex-direction:column;gap:.65rem;display:flex}.roles-module-row{border-radius:var(--radius-md);background:var(--white);border:1px solid #e2e8f0;transition:border-color .15s,box-shadow .15s;overflow:hidden}.roles-module-row--on{border-color:#a5b4fc;box-shadow:0 1px 4px #6366f114}.roles-module-row__head{background:#fafbfc;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .9rem;display:flex}.roles-module-row--on .roles-module-row__head{background:linear-gradient(#eef2ff 0%,#fafbfc 100%);border-bottom-color:#e0e7ff}.roles-module-row__access{cursor:pointer;align-items:center;gap:.65rem;min-width:0;display:flex}.roles-module-row__access input[type=checkbox]{accent-color:#4f46e5;flex-shrink:0;width:1rem;height:1rem}.roles-module-row__icon{color:#64748b;background:#f1f5f9;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.roles-module-row__icon svg{width:1.1rem;height:1.1rem}.roles-module-row--on .roles-module-row__icon{color:#fff;background:#4f46e5}.roles-module-row__info{flex-direction:column;gap:.08rem;min-width:0;display:flex}.roles-module-row__name{color:var(--text);font-size:.9rem;font-weight:700}.roles-module-row__key{color:var(--text-muted);font-family:ui-monospace,monospace;font-size:.65rem}.roles-module-row__crud{flex-wrap:wrap;align-items:center;gap:.85rem;padding:.7rem .9rem;display:flex}.roles-module-row__crud--disabled{opacity:.45;pointer-events:none}.roles-module-row__crud-label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);min-width:5.5rem;font-size:.68rem;font-weight:700}.roles-action-chips{flex-wrap:wrap;flex:1;gap:.4rem;display:flex}.roles-action-chip{cursor:pointer;-webkit-user-select:none;user-select:none;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:.35rem;padding:.35rem .55rem;transition:border-color .12s,background .12s,color .12s;display:inline-flex}.roles-action-chip:hover{border-color:#c7d2fe}.roles-action-chip--on{background:#eef2ff;border-color:#6366f1}.roles-action-chip--on.roles-action-chip--view{color:#fff;background:#4f46e5;border-color:#4f46e5}.roles-action-chip--on.roles-action-chip--view .roles-action-chip__abbr,.roles-action-chip--on.roles-action-chip--view .roles-action-chip__label{color:#fff}.roles-action-chip__input{opacity:0;pointer-events:none;position:absolute}.roles-action-chip__abbr{color:#64748b;justify-content:center;align-items:center;min-width:1.15rem;font-size:.68rem;font-weight:800;display:inline-flex}.roles-action-chip--on .roles-action-chip__abbr{color:#4338ca}.roles-action-chip__label{color:#475569;font-size:.72rem;font-weight:600}.roles-table__crud-list{flex-direction:column;gap:.45rem;max-width:36rem;display:flex}.roles-table__crud-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:minmax(7rem,10rem) 1fr;align-items:start;gap:.5rem .75rem;padding:.4rem .55rem;display:grid}.roles-table__crud-module{color:var(--text);font-size:.78rem;font-weight:700}.roles-table__crud-actions{font-variant-numeric:tabular-nums;color:#4338ca;letter-spacing:.02em;font-size:.72rem;font-weight:600}.roles-permissions__section{padding-top:1.1rem}.roles-permissions__section+.roles-permissions__section{border-top:1px solid var(--border);margin-top:1.1rem;padding-top:1.1rem}.roles-permissions__section-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.roles-permissions__section-title{letter-spacing:.06em;text-transform:uppercase;color:#475569;margin:0;font-size:.8rem;font-weight:800}.roles-permissions__section-meta{margin:.15rem 0 0;font-size:.75rem}.roles-permissions__grid{grid-template-columns:repeat(auto-fill,minmax(11.5rem,1fr));gap:.65rem;display:grid}.roles-permission-tile{border-radius:var(--radius-md);background:var(--white);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #e2e8f0;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;padding:.75rem .85rem;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s;display:grid;position:relative}.roles-permission-tile:hover{border-color:#c7d2fe;box-shadow:0 2px 8px #6366f114}.roles-permission-tile--on{background:linear-gradient(#eef2ff 0%,#fff 100%);border-color:#818cf8;box-shadow:0 0 0 1px #6366f11f}.roles-permission-tile__input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.roles-permission-tile__icon{color:#64748b;background:#f1f5f9;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;display:flex}.roles-permission-tile__icon svg{width:1.15rem;height:1.15rem}.roles-permission-tile--on .roles-permission-tile__icon{color:#fff;background:#4f46e5}.roles-permission-tile__text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.roles-permission-tile__label{color:var(--text);font-size:.84rem;font-weight:700;line-height:1.25}.roles-permission-tile__key{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,monospace;font-size:.65rem;font-weight:500;line-height:1.2;overflow:hidden}.roles-permission-tile__indicator{color:#0000;border:2px solid #cbd5e1;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:1.35rem;height:1.35rem;font-size:.7rem;font-weight:800;transition:border-color .15s,background .15s,color .15s;display:flex}.roles-permission-tile--on .roles-permission-tile__indicator{color:#fff;background:#4f46e5;border-color:#4f46e5}.roles-editor__footer{border-top:1px solid var(--border);background:var(--white);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.roles-editor__footer-hint{margin:0;font-size:.84rem}.roles-editor__footer-actions{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.roles-table__role{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.roles-table__badge{text-transform:uppercase;letter-spacing:.03em;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:.12rem .45rem;font-size:.65rem;font-weight:700;display:inline-block}.roles-table__badge--custom{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.roles-table__badge--locked{color:#92400e;background:#fffbeb;border-color:#fde68a}.roles-table__perm-list{flex-direction:column;gap:.4rem;display:flex}.roles-table__perm-item{grid-template-columns:minmax(7rem,10rem) 1fr;align-items:baseline;gap:.35rem .75rem;font-size:.82rem;display:grid}.roles-table__perm-module{color:var(--text);font-weight:700}.roles-table__perm-actions{color:var(--text-muted);line-height:1.4}.roles-admin-card .card__body{padding:0}.roles-admin-card__head{background:linear-gradient(135deg,#fffbeb 0%,#f8fafc 100%);border-bottom:1px solid #fde68a;justify-content:space-between;align-items:flex-start;gap:1.25rem;padding:1.25rem 1.5rem;display:flex}.roles-admin-card__badge{letter-spacing:.04em;text-transform:uppercase;color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:999px;margin-bottom:.4rem;padding:.2rem .55rem;font-size:.68rem;font-weight:700;display:inline-block}.roles-admin-card__title{margin:0 0 .35rem;font-size:1.15rem;font-weight:800}.roles-admin-card__desc{max-width:36rem;margin:0;font-size:.88rem}.roles-page--stack{flex-direction:column;gap:1.5rem;width:100%;display:flex}.roles-section{flex-direction:column;gap:.85rem;width:100%;display:flex}.roles-section__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.roles-section__title{letter-spacing:-.02em;color:var(--text);margin:0;font-size:1.08rem;font-weight:800}.roles-section__subtitle{max-width:40rem;margin:.3rem 0 0;font-size:.86rem;line-height:1.45}.roles-section__actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.roles-page--stack .stats-grid--roles{grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.roles-created-card .card__body{flex-direction:column;gap:1rem;padding:1rem 1.25rem;display:flex}.roles-created-card__search{width:100%;margin:0}.roles-created-list{flex-direction:column;gap:.6rem;width:100%;display:flex}.roles-created-list__empty{text-align:center;border:1px dashed var(--border);border-radius:var(--radius-md);background:#f8fafc;margin:0;padding:1.25rem}.roles-page--stack .roles-role-card,.roles-page--stack .roles-editor-card,.roles-page--stack .roles-admin-details{width:100%}.roles-section--protected .roles-admin-details{margin:0}.roles-role-avatar{letter-spacing:.02em;width:2.5rem;height:2.5rem;color:hsl(var(--role-hue,220) 55% 28%);background:hsl(var(--role-hue,220) 85% 94%);border:1px solid hsl(var(--role-hue,220) 70% 82%);box-shadow:0 1px 2px hsl(var(--role-hue,220) 40% 70% / .2);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:.82rem;font-weight:800;display:flex}.roles-role-avatar--sm{border-radius:10px;width:2.1rem;height:2.1rem;font-size:.7rem}.roles-role-avatar--lg{border-radius:14px;width:3rem;height:3rem;font-size:1rem}.roles-ring{flex-shrink:0;width:2.75rem;height:2.75rem;position:relative}.roles-ring--compact{width:2.35rem;height:2.35rem}.roles-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.roles-ring__track{fill:none;stroke:#e2e8f0;stroke-width:4px}.roles-ring__fill{fill:none;stroke:#4f46e5;stroke-width:4px;stroke-linecap:round;transition:stroke-dashoffset .3s}.roles-ring__value{color:#4338ca;justify-content:center;align-items:center;font-size:.58rem;font-weight:800;display:flex;position:absolute;inset:0}.roles-sidebar__list{flex-direction:column;gap:.55rem;display:flex}.roles-admin-details{border-radius:var(--radius-md);background:linear-gradient(135deg,#fffbeb 0%,#fff 100%);border:1px solid #fde68a;overflow:hidden}.roles-admin-details__summary{cursor:pointer;align-items:center;gap:.65rem;padding:.85rem 1rem;list-style:none;display:flex}.roles-admin-details__summary::-webkit-details-marker{display:none}.roles-admin-details__summary:after{content:"";border-bottom:2px solid #92400e;border-right:2px solid #92400e;flex-shrink:0;width:.45rem;height:.45rem;margin-left:auto;transition:transform .2s;transform:rotate(45deg)}.roles-admin-details[open] .roles-admin-details__summary:after{margin-top:.2rem;transform:rotate(-135deg)}.roles-admin-details__icon{border-radius:var(--radius-sm);color:#b45309;background:#fef3c7;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:flex}.roles-admin-details__icon svg{width:1.15rem;height:1.15rem}.roles-admin-details__text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.roles-admin-details__badge{letter-spacing:.05em;text-transform:uppercase;color:#92400e;font-size:.62rem;font-weight:700}.roles-admin-details__title{color:var(--text);font-size:.92rem;font-weight:800}.roles-admin-details__meta{color:var(--text-muted);font-size:.72rem}.roles-admin-details__stat{color:#92400e;white-space:nowrap;font-size:.72rem;font-weight:700}.roles-admin-details__body{border-top:1px solid #fde68a;padding:0 1rem 1rem}.roles-admin-details__desc{margin:.85rem 0;font-size:.82rem}.roles-role-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);align-items:stretch;gap:0;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.roles-role-card:hover{border-color:#c7d2fe;box-shadow:0 2px 8px #6366f114}.roles-role-card--active{border-color:#818cf8;box-shadow:0 0 0 3px #6366f11f}.roles-role-card__main{text-align:left;cursor:pointer;min-width:0;font:inherit;color:inherit;background:0 0;border:none;flex-direction:column;flex:1;gap:.35rem;padding:.75rem .85rem;display:flex}.roles-role-card__main:focus-visible{outline-offset:-2px;outline:2px solid #6366f1}.roles-role-card__head{align-items:center;gap:.55rem;display:flex}.roles-role-card__identity{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.roles-role-card__name{color:var(--text);font-size:.9rem;font-weight:800;line-height:1.2}.roles-role-card__stats{color:var(--text-muted);font-size:.72rem;font-weight:600}.roles-role-card__dot{margin:0 .2rem}.roles-role-card__track{background:#e2e8f0;border-radius:999px;height:4px;overflow:hidden}.roles-role-card__bar{border-radius:inherit;background:linear-gradient(90deg,#6366f1,#4f46e5);height:100%}.roles-role-card__tags{flex-wrap:wrap;gap:.3rem;display:flex}.roles-role-card__empty{font-size:.72rem}.roles-role-card__actions{border-left:1px solid var(--border);background:#f8fafc;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.35rem .25rem;display:flex}.roles-workspace-card .card__body,.roles-workspace-empty{min-height:20rem}.roles-workspace-empty{flex-direction:column;gap:2rem;padding:2rem 1.75rem;display:flex}.roles-workspace-empty__hero{text-align:center;flex-direction:column;align-items:center;gap:.75rem;display:flex}.roles-workspace-empty__icon{color:#4f46e5;background:linear-gradient(135deg,#eef2ff,#f0fdf4);border-radius:50%;justify-content:center;align-items:center;width:4rem;height:4rem;display:flex}.roles-workspace-empty__icon svg{width:2rem;height:2rem}.roles-workspace-empty__title{margin:0;font-size:1.15rem;font-weight:800}.roles-workspace-empty__desc{max-width:22rem;margin:0;font-size:.9rem;line-height:1.55}.roles-editor__steps{border-bottom:1px solid var(--border);background:#f8fafc;margin:0;padding:.75rem 1.25rem;font-size:.82rem;line-height:1.5}.roles-editor__steps a{color:#4338ca;font-weight:700;text-decoration:none}.roles-editor__steps a:hover{text-decoration:underline}.roles-editor__unsaved{color:#92400e;background:#fffbeb;border-bottom:1px solid #fde68a;justify-content:center;align-items:center;padding:.45rem 1rem;font-size:.78rem;font-weight:700;display:flex}.roles-editor__toolbar{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#eef2ff 0%,#f8fafc 60%,#f0fdf4 100%);flex-wrap:wrap;align-items:center;gap:1rem;padding:1.1rem 1.25rem;display:flex}.roles-editor__toolbar-secondary{border-bottom:1px solid var(--border);background:#fafbff;flex-wrap:wrap;align-items:center;gap:.85rem;padding:.75rem 1.25rem;display:flex}.roles-editor__preset{align-items:center;gap:.5rem;display:flex}.roles-editor__preset-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);white-space:nowrap;font-size:.72rem;font-weight:700}.roles-editor__preset select{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);min-width:11rem;color:var(--text);padding:.45rem .65rem;font-size:.84rem;font-weight:600}.roles-editor__preset select:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f11f}.roles-editor__toolbar-main{flex-direction:column;flex:1;gap:.35rem;min-width:12rem;display:flex}.roles-editor__name-inline input{letter-spacing:-.02em;border:1px solid var(--border);border-radius:var(--radius-md);background:#fffffff2;width:100%;max-width:16rem;padding:.55rem .75rem;font-size:1.05rem;font-weight:800}.roles-editor__name-inline input:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f126}.roles-editor__toolbar-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.roles-editor__controls{background:var(--white);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.65rem;padding:.85rem 1.25rem;display:flex}.roles-editor__search{min-width:10rem;max-width:14rem;margin:0}.roles-editor__search input{font-size:.86rem}.roles-filter-tabs{border:1px solid var(--border);background:#f1f5f9;border-radius:999px;padding:.2rem;display:inline-flex}.roles-filter-tabs__btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.35rem .75rem;font-size:.78rem;font-weight:700;transition:background .15s,color .15s}.roles-filter-tabs__btn--active{background:var(--white);color:#4338ca;box-shadow:0 1px 3px #0f172a14}.roles-view-toggle{border-radius:var(--radius-md);border:1px solid var(--border);background:#f8fafc;margin-left:auto;padding:.2rem;display:inline-flex}.roles-view-toggle__btn{border-radius:calc(var(--radius-md) - 2px);color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.35rem .85rem;font-size:.78rem;font-weight:700}.roles-view-toggle__btn--active{background:var(--white);color:#4338ca;box-shadow:0 1px 2px #0f172a0f}.roles-editor__group-actions{gap:.5rem;display:flex}.roles-editor__matrix-area{padding:0 0 .5rem}.roles-matrix-empty{text-align:center;border:1px dashed var(--border);border-radius:var(--radius-md);background:#f8fafc;margin:1.5rem 1.25rem;padding:2rem}.roles-editor__pill-btn{color:#4338ca;cursor:pointer;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:.4rem .85rem;font-size:.78rem;font-weight:700;transition:background .15s,border-color .15s}.roles-editor__pill-btn:hover:not(:disabled){background:#e0e7ff;border-color:#a5b4fc}.roles-editor__pill-btn:disabled{opacity:.5;cursor:not-allowed}.roles-editor__pill-btn--muted{border-color:var(--border);color:var(--text-muted);background:#f8fafc}.roles-editor__pill-btn--muted:hover:not(:disabled){background:#f1f5f9}.roles-template-grid__label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);grid-column:1/-1;margin:0 0 .35rem;font-size:.72rem;font-weight:700}.roles-template-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;display:grid}.roles-template-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:.35rem;padding:.85rem;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.roles-template-card:hover{border-color:#a5b4fc;transform:translateY(-1px);box-shadow:0 4px 14px #6366f11f}.roles-template-card__name{color:var(--text);font-size:.9rem;font-weight:800}.roles-template-card__hint{font-size:.72rem}.roles-cards-grid{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.75rem;padding:0 1rem 1rem;display:grid}.roles-module-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);flex-direction:column;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.roles-module-card--on{border-color:#a5b4fc;box-shadow:0 2px 10px #6366f114}.roles-module-card__head{border-bottom:1px solid var(--border);background:#f8fafc;align-items:center;gap:.55rem;padding:.75rem .85rem;display:flex}.roles-module-card--on .roles-module-card__head{background:#f5f7ff}.roles-module-card__icon{border-radius:var(--radius-sm);color:#4f46e5;background:#eef2ff;justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.roles-module-card__icon svg{width:1rem;height:1rem}.roles-module-card__info{flex:1;min-width:0}.roles-module-card__group{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:.62rem;font-weight:700;display:block}.roles-module-card__title{margin:.1rem 0 0;font-size:.88rem;font-weight:800}.roles-module-card__actions{flex-wrap:wrap;gap:.35rem;padding:.75rem .85rem;display:flex}.roles-module-card__actions--off{opacity:.55}.roles-module-card__chip{color:var(--text-muted);cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;align-items:center;padding:.28rem .55rem;font-size:.72rem;font-weight:600;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.roles-module-card__chip input{opacity:0;width:0;height:0;position:absolute}.roles-module-card__chip--on{color:#4338ca;background:#eef2ff;border-color:#818cf8}.roles-module-card__foot{padding:0 .85rem .75rem}.roles-module-card__all-btn{color:#4338ca;cursor:pointer;background:0 0;border:none;padding:0;font-size:.72rem;font-weight:700}.roles-module-card__all-btn:disabled{opacity:.45;cursor:not-allowed}.roles-matrix-panel{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);margin:0 1rem 1rem;box-shadow:0 1px 2px #0f172a0a}.roles-matrix-panel--readonly{opacity:.94}.roles-matrix tbody{overflow-anchor:none}.roles-matrix__action-abbr{color:var(--text);cursor:help;font-size:.72rem;font-weight:800;text-decoration:none;display:block}.roles-matrix__check input[type=checkbox]{opacity:0;width:0;height:0;margin:0;position:absolute}.roles-matrix__check-box{background:var(--white);border:2px solid #cbd5e1;border-radius:4px;width:1.2rem;height:1.2rem;transition:background .12s,border-color .12s;display:block}.roles-matrix__check--on .roles-matrix__check-box,.roles-matrix__check input:checked+.roles-matrix__check-box{background:#4f46e5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' d='M2 6l3 3 5-5'/%3E%3C/svg%3E") 50%/.75rem no-repeat;border-color:#4f46e5}.roles-matrix__check input:focus-visible+.roles-matrix__check-box{outline-offset:2px;outline:2px solid #6366f1}.roles-matrix__check input:disabled+.roles-matrix__check-box{opacity:.45;cursor:not-allowed}.roles-table__perm-tag--more{color:#4338ca;background:#eef2ff;border-color:#c7d2fe}.roles-page,.roles-page .roles-editor-card,.roles-page .roles-workspace-card,.roles-page .roles-admin-details,.roles-page .roles-editor-card .card__body,.roles-page .roles-workspace-card .card__body,.roles-page .roles-editor,.roles-page .roles-matrix-wrap,.roles-page .roles-matrix-panel,.roles-page .table-wrap,.roles-page .card,.roles-page .card__body{overflow:visible}.roles-matrix-wrap{padding:0;overflow-x:auto}.roles-matrix-wrap--readonly{opacity:.92}.roles-matrix{border-collapse:collapse;background:var(--white);width:100%;min-width:48rem;font-size:.82rem}.roles-matrix th,.roles-matrix td{border:1px solid var(--border);vertical-align:middle}.roles-matrix thead th{text-align:center;background:#f8fafc;padding:.55rem .45rem}.roles-matrix__module-col{background:#f8fafc;min-width:11rem;text-align:left!important;padding:.55rem .75rem!important}.roles-matrix__action-col{min-width:2.75rem;max-width:3.25rem;padding:.45rem .25rem!important}.roles-matrix__action-name{color:var(--text);font-size:.78rem;font-weight:700;display:block}.roles-matrix__action-hint{color:var(--text-muted);margin-top:.15rem;font-size:.62rem;font-weight:500;line-height:1.25;display:block}.roles-matrix__all-col{min-width:3rem;font-size:.78rem;font-weight:700}.roles-matrix__group-row td{background:#f1f5f9;border-bottom:1px solid #cbd5e1;padding:0}.roles-matrix__group-label{letter-spacing:.04em;text-transform:uppercase;color:#475569;justify-content:space-between;align-items:center;gap:.75rem;width:100%;padding:.5rem .75rem;font-size:.72rem;font-weight:700;display:flex}.roles-matrix__group-count{text-transform:none;letter-spacing:0;color:var(--text-muted);white-space:nowrap;font-size:.68rem;font-weight:600}.roles-access-btn{cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0}.roles-access-btn:disabled{opacity:.45;cursor:not-allowed}.roles-access-btn__track{background:#cbd5e1;border-radius:999px;width:2.6rem;height:1.4rem;transition:background .15s;display:block;position:relative}.roles-access-btn--on .roles-access-btn__track{background:#4f46e5}.roles-access-btn__track:after{content:"";background:var(--white);border-radius:50%;width:1.05rem;height:1.05rem;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0f172a40}.roles-access-btn--on .roles-access-btn__track:after{transform:translate(1.15rem)}.roles-access-btn:focus-visible .roles-access-btn__track{outline-offset:2px;outline:2px solid #6366f1}.roles-perm-btn{color:#475569;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;padding:.38rem .7rem;font-size:.78rem;font-weight:600;transition:background .12s,border-color .12s,color .12s,transform .1s}.roles-perm-btn:hover:not(:disabled){background:#eef2ff;border-color:#a5b4fc}.roles-perm-btn--on{color:#fff;background:#4f46e5;border-color:#4f46e5}.roles-perm-btn--on:hover:not(:disabled){background:#4338ca;border-color:#4338ca}.roles-perm-btn--compact{min-width:2.75rem;padding:.3rem .45rem;font-size:.68rem}.roles-perm-btn:disabled{opacity:.45;cursor:not-allowed}.roles-perm-btn:active:not(:disabled){transform:scale(.97)}.roles-matrix__view-switch{cursor:pointer;flex-shrink:0;width:2rem;height:1.15rem;display:inline-flex;position:relative}.roles-matrix__view-switch input{opacity:0;width:0;height:0;position:absolute}.roles-matrix__view-slider{background:#cbd5e1;border-radius:999px;width:100%;height:100%;transition:background .15s;display:block}.roles-matrix__view-slider:after{content:"";background:var(--white);border-radius:50%;width:.85rem;height:.85rem;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0f172a33}.roles-matrix__view-switch input:checked+.roles-matrix__view-slider{background:#4f46e5}.roles-matrix__view-switch input:checked+.roles-matrix__view-slider:after{transform:translate(.85rem)}.roles-matrix__view-switch input:focus-visible+.roles-matrix__view-slider{outline-offset:2px;outline:2px solid #6366f1}.roles-matrix__module-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.roles-matrix__module-meta{color:var(--text-muted);font-size:.68rem;font-weight:600}.roles-matrix__row--on{background:#fafbff}.roles-matrix__row--on .roles-matrix__module-col{background:#f5f7ff}.roles-matrix__module{align-items:center;gap:.5rem;display:flex}.roles-matrix__module-icon{border-radius:var(--radius-sm);color:#4f46e5;background:#eef2ff;flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.roles-matrix__module-icon svg{width:1rem;height:1rem}.roles-matrix__module-label{color:var(--text);font-weight:600}.roles-matrix__cell{text-align:center;padding:.4rem}.roles-matrix__cell--na{background:#f8fafc}.roles-matrix__na{color:#cbd5e1;-webkit-user-select:none;user-select:none;font-weight:600}.roles-matrix__check{cursor:pointer;justify-content:center;align-items:center;min-width:2rem;min-height:2rem;margin:0 auto;display:inline-flex}.roles-matrix-wrap--readonly .roles-matrix__check{cursor:not-allowed}.roles-matrix__perms{flex-direction:column;gap:.5rem;display:flex}.roles-table__perm-count{font-variant-numeric:tabular-nums;color:#4338ca;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;align-self:flex-start;padding:.15rem .5rem;font-size:.72rem;font-weight:800;display:inline-flex}.roles-table__perm-tags{flex-wrap:wrap;gap:.35rem;display:flex}.roles-table__perm-tag{color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:.2rem .5rem;font-size:.72rem;font-weight:600;display:inline-block}@media (width<=1100px){.roles-page--stack .stats-grid--roles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.roles-editor__hero,.roles-editor__toolbar{flex-direction:column;align-items:stretch}.roles-progress,.roles-progress--dual{width:100%;min-width:0}.roles-progress--dual{flex-direction:column}.roles-editor__toolbar-actions{justify-content:flex-end;width:100%}.roles-module-row__crud{flex-direction:column;align-items:flex-start}.roles-table__crud-item,.roles-table__perm-item{grid-template-columns:1fr}.roles-matrix{min-width:36rem}.roles-admin-card__head{flex-direction:column}.roles-editor__controls{flex-direction:column;align-items:stretch}.roles-view-toggle{justify-content:stretch;width:100%;margin-left:0}.roles-view-toggle__btn{flex:1}.roles-template-grid{grid-template-columns:1fr}.roles-editor__legend{order:3}}@media (width<=600px){.roles-page--stack .stats-grid--roles{grid-template-columns:1fr}.roles-editor__hero,.roles-editor__toolbar,.roles-editor__controls,.roles-editor__name-panel,.roles-editor__permissions-head,.roles-permissions,.roles-editor__footer{padding-left:1rem;padding-right:1rem}.roles-matrix-panel{margin-left:.75rem;margin-right:.75rem}.roles-permissions__grid{grid-template-columns:1fr}.roles-editor__footer{flex-direction:column;align-items:stretch}.roles-editor__footer-actions{justify-content:stretch}.roles-editor__footer-actions .btn{flex:1}}.logs-card .card__body{flex-direction:column;padding:0;display:flex}.logs-card__header{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f8fafc 0%,#f5f7ff 100%);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.15rem 1.35rem;display:flex}.logs-card__title{letter-spacing:-.02em;margin:0 0 .25rem;font-size:1.05rem;font-weight:800}.logs-card__subtitle{margin:0;font-size:.84rem}.logs-toolbar{background:var(--white);border-bottom:1px solid var(--border);grid-template-columns:minmax(12rem,1fr) minmax(9rem,12rem) minmax(9rem,12rem);align-items:end;gap:.85rem;padding:1rem 1.35rem;display:grid}.logs-toolbar__label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.35rem;font-size:.72rem;font-weight:700;display:block}.logs-toolbar__search{min-width:0;margin:0}.logs-toolbar__search input{width:100%}.logs-toolbar__filter{min-width:0;margin:0}.logs-toolbar__filter select{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);width:100%;color:var(--text);padding:.55rem .7rem;font-size:.86rem;font-weight:600}.logs-toolbar__filter select:focus{border-color:#818cf8;outline:none;box-shadow:0 0 0 3px #6366f11f}.logs-table-panel{background:var(--white)}.logs-table-wrap{max-height:min(70vh,42rem);overflow:auto}.logs-table{font-size:.84rem}.logs-table thead{z-index:2;position:sticky;top:0}.logs-table thead th{letter-spacing:.04em;text-transform:uppercase;color:#475569;white-space:nowrap;background:#f1f5f9;border-bottom:2px solid #e2e8f0;padding:.65rem .85rem;font-size:.72rem;font-weight:700}.logs-table tbody td{vertical-align:top;border-bottom:1px solid #f1f5f9;padding:.7rem .85rem}.logs-table__row:hover{background:#fafbff}.logs-table__row--create{box-shadow:inset 3px 0 #22c55e}.logs-table__row--update{box-shadow:inset 3px 0 #3b82f6}.logs-table__row--delete{box-shadow:inset 3px 0 #f59e0b}.logs-table__row--login{box-shadow:inset 3px 0 #10b981}.logs-table__row--logout{box-shadow:inset 3px 0 #94a3b8}.logs-table__col-summary{min-width:12rem}.logs-table__col-time{width:8.5rem}.logs-table__time{white-space:nowrap}.logs-table__date{font-variant-numeric:tabular-nums;color:var(--text);font-size:.8rem;font-weight:700;display:block}.logs-table__clock{font-variant-numeric:tabular-nums;color:var(--text-muted);margin-top:.1rem;font-size:.72rem;display:block}.logs-table__user{flex-direction:column;gap:.12rem;min-width:9rem;display:flex}.logs-table__user strong{font-size:.88rem}.logs-table__user-meta{font-size:.74rem}.logs-table__module{font-size:.84rem;font-weight:700;display:block}.logs-table__path{color:#64748b;background:#f8fafc;border-radius:4px;margin-top:.25rem;padding:.12rem .35rem;font-family:ui-monospace,monospace;font-size:.68rem;display:inline-block}.logs-table__summary{color:var(--text);word-break:break-word;line-height:1.45;display:block}.logs-table__entity{flex-direction:column;gap:.2rem;font-size:.82rem;display:flex}.logs-table__id{color:#4338ca;background:#eef2ff;border-radius:4px;padding:.1rem .35rem;font-family:ui-monospace,monospace;font-size:.68rem;display:inline-block}.logs-empty{text-align:center;flex-direction:column;align-items:center;gap:.65rem;padding:2.5rem 1.5rem;display:flex}.logs-empty__title{margin:0;font-size:1rem;font-weight:800}.logs-empty__desc{max-width:22rem;margin:0}.logs-footer{border-top:1px solid var(--border);background:#f8fafc;padding:.85rem 1.35rem}.logs-footer .pagination{background:0 0;border-top:none;margin:0;padding:0}@media (width<=900px){.logs-toolbar{grid-template-columns:1fr}}@media print{.login-page{grid-template-columns:1fr}}@media (width<=1100px){.dashboard-grid,.two-column,.detail-grid,.form-grid,.login-page{grid-template-columns:1fr}.login-brand{display:none}}@media (width<=900px){.app-shell{grid-template-columns:1fr;height:auto;min-height:100vh;overflow:visible}.app-shell__content{height:auto;min-height:100vh;overflow:hidden}.main-content{overflow:hidden auto}.app-topbar{padding:.75rem max(1rem, env(safe-area-inset-right)) .75rem max(1rem, env(safe-area-inset-left))}.app-topbar__title{display:block}.menu-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);cursor:pointer;flex-direction:column;justify-content:center;gap:.28rem;width:2.75rem;height:2.75rem;padding:0;display:inline-flex}.menu-toggle__bar{background:var(--gray-900);border-radius:999px;width:1.1rem;height:2px;margin:0 auto;display:block}.sidebar-backdrop{z-index:90;opacity:0;visibility:hidden;cursor:pointer;background:#0b1f3a8c;border:0;padding:0;transition:opacity .2s,visibility .2s;display:block;position:fixed;inset:0}.sidebar-backdrop--visible{opacity:1;visibility:visible}.sidebar{z-index:100;width:min(100%,300px);padding-top:max(1.25rem, env(safe-area-inset-top));padding-bottom:max(1.25rem, env(safe-area-inset-bottom));padding-left:max(1rem, env(safe-area-inset-left));box-shadow:var(--shadow-lg);transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar--open{transform:translate(0)}.main-content{padding:1rem}}@media (width<=720px){.page-header{flex-direction:column;align-items:stretch}.page-header__action,.page-header__action .btn{width:100%}.stat-card__value{font-size:1.45rem}.module-list{grid-template-columns:1fr}.history-card__top,.list-row{flex-direction:column;align-items:flex-start}.history-card__dates{text-align:left;width:100%}.filter-row{flex-direction:column}.data-table--compact tbody td.table-actions--icons{flex-flow:row;justify-content:flex-start;gap:.35rem;padding-top:.5rem;display:flex}.data-table--compact tbody td.table-actions--icons:before{width:100%;margin-bottom:.15rem}.filter-row .btn,.form-actions .btn,.table-actions:not(.table-actions--icons) .btn,.table-actions:not(.table-actions--icons) a{width:100%}.table-actions:not(.table-actions--icons){flex-direction:column;align-items:stretch}.data-table{min-width:0}.table-wrap{border:0}.data-table thead{display:none}.data-table tbody tr{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);margin-bottom:.85rem;padding:.85rem;display:block}.data-table tbody td{border-bottom:0;grid-template-columns:minmax(7rem,40%) 1fr;gap:.45rem;padding:.4rem 0;display:grid}.data-table tbody td:before{content:attr(data-label);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:700}.data-table tbody td.table-actions{flex-direction:column;gap:.45rem;padding-top:.65rem;display:flex}.data-table tbody td.table-actions:before{content:"Actions";margin-bottom:.1rem}}@media (width<=480px){.main-content,.login-panel{padding:.85rem}.toast-viewport{width:calc(100vw - 1.5rem);bottom:.75rem;right:.75rem}.btn{min-height:2.65rem}}@media print{@page{margin:1.5cm;size:A4}body{background:#fff!important}.sidebar,.sidebar-backdrop,.app-topbar,.toast-viewport,.confirm-backdrop,.user-menu,.menu-toggle,.no-print{display:none!important}.app-shell,.main-content{height:auto!important;display:block!important;overflow:visible!important}.page>:not(.invoice-print-wrapper){display:none!important}.invoice-print-wrapper{margin:0!important;padding:0!important;display:block!important}.invoice-print-wrapper--hidden{clip:auto!important;clip-path:none!important;white-space:normal!important;border:none!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important;position:static!important;overflow:visible!important}.invoice-print-wrapper .card{box-shadow:none!important;background:0 0!important;border:none!important}.invoice-print-wrapper .card__header,.invoice-print-wrapper .card__body{padding:0!important}.invoice-print-wrapper .card__header{display:none!important}.main-content{margin:0!important;padding:0!important}.invoice-print{color:#111827!important;background:#fff!important;border:none!important;padding:0!important;display:block!important}.invoice-print h3{margin:0 0 1rem;font-size:1.35rem}.invoice-print p{margin:.35rem 0;font-size:.95rem}.invoice-table th,.invoice-table td{border-color:#d1d5db!important}.invoice-table--summary{max-width:100%}}
