:root{--nav-bg: #16365f;--nav-active: #0c2746;--primary: #1773e0;--primary-ink: #ffffff;--positive: #2e9e2e;--danger: #d4233b;--page-bg: #f4f5f7;--card-bg: #ffffff;--border: #e4e7eb;--shadow: 0 1px 2px rgba(16, 24, 40, .06);--text: #1a2233;--muted: #6b7280;--radius: 8px;--surface-alt: #f9fafb;--overlay-bg: rgba(15, 23, 42, .45);--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--shadow-sm: var(--shadow);--topnav-height: 52px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif;font-size:.9375rem;line-height:1.5;color:var(--text);background:var(--page-bg);-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:flex;flex-direction:column;min-height:100%}.content{flex:1;overflow-y:auto;padding:var(--spacing-xl);background:var(--page-bg)}.topnav{display:flex;align-items:stretch;background:var(--nav-bg);height:var(--topnav-height);padding:0 var(--spacing-lg);flex-shrink:0;position:relative;z-index:200}.topnav__brand{display:flex;align-items:center;gap:.5rem;color:#fff;font-weight:700;font-size:1rem;letter-spacing:.01em;margin-right:var(--spacing-lg);text-decoration:none;white-space:nowrap;flex-shrink:0}.topnav__brand:hover{color:#fff;text-decoration:none}.topnav__org{display:flex;align-items:center;gap:var(--spacing-md);margin-right:var(--spacing-md);flex-shrink:0}.topnav__org .company-selector{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;color:#ffffffd9}.topnav__org .company-selector__label{color:#ffffff8c;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;white-space:nowrap}.topnav__org .company-selector select{padding:.22rem .5rem;border:1px solid rgba(255,255,255,.22);border-radius:5px;background:#ffffff1a;color:#fff;font:inherit;font-size:.82rem;cursor:pointer;max-width:160px}.topnav__org .company-selector select option{background:var(--nav-bg);color:#fff}.topnav__tabs{display:flex;align-items:stretch;list-style:none;flex:1;gap:1px;overflow:visible}.topnav__tabs::-webkit-scrollbar{display:none}.topnav__tab{display:flex;align-items:center;padding:0 .9rem;color:#ffffffc7;font-size:.875rem;font-weight:500;text-decoration:none;white-space:nowrap;border-radius:5px 5px 0 0;transition:background .12s,color .12s;cursor:pointer;background:transparent;border:none}.topnav__tab:hover{background:#ffffff1a;color:#fff;text-decoration:none}.topnav__tab--active{background:var(--nav-active);color:#fff;font-weight:600}.topnav__menu{position:absolute;top:var(--topnav-height);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 6px 24px #10182824;min-width:200px;padding:.35rem 0;z-index:300}.topnav__menu-label{display:block;padding:.5rem 1rem .2rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);pointer-events:none;-webkit-user-select:none;user-select:none}.topnav__menu-item{display:flex;align-items:center;padding:.45rem 1rem;font-size:.875rem;color:var(--text);text-decoration:none;background:transparent;border:none;width:100%;cursor:pointer;transition:background .1s;text-align:left}.topnav__menu-item:hover{background:var(--page-bg);color:var(--primary);text-decoration:none}.topnav__right{display:flex;align-items:center;gap:var(--spacing-sm);margin-left:var(--spacing-md);flex-shrink:0}.topnav__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:transparent;color:#ffffffd9;font-size:.85rem;cursor:pointer;transition:background .12s,border-color .12s}.topnav__icon-btn:hover{background:#ffffff1f;border-color:#ffffff73}.page__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);gap:var(--spacing-md);flex-wrap:wrap}.page__title{font-size:1.5rem;font-weight:700;color:var(--text);line-height:1.2}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.kpi{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--spacing-md) var(--spacing-lg);display:flex;flex-direction:column;gap:4px}.card.kpi{padding:var(--spacing-md) var(--spacing-lg);margin-bottom:0}.kpi__label{font-size:.74rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.kpi__value{font-size:2rem;font-weight:700;color:var(--text);line-height:1.1;font-variant-numeric:tabular-nums}.kpi__sub{font-size:.78rem;color:var(--muted)}.table-wrapper{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:auto;box-shadow:var(--shadow)}.table-wrapper--plain{border:none;border-radius:0;box-shadow:none}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th{background:var(--page-bg);color:var(--muted);font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;padding:.6rem var(--spacing-md);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:.65rem var(--spacing-md);border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#f7f9fc}.data-table code,code{font-family:Menlo,Monaco,Courier New,monospace;font-size:.82rem;background:#f0f2f5;border-radius:4px;padding:1px 5px;color:var(--text)}.status--paid,.status--ok{color:var(--positive);font-weight:600}.status--overdue,.status--error{color:var(--danger);font-weight:600}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;white-space:nowrap;line-height:1.4}.badge--info{background:#eef2ff;color:#3730a3}.badge--pending{background:#fef3c7;color:#854d0e}.badge--ok{background:#ecfdf5;color:#065f46}.badge--sky{background:#e0f2fe;color:#075985}.badge--danger{background:#fee2e2;color:#991b1b}.badge--neutral{background:#f3f4f6;color:#374151}.badge--brand{background:#e8f1fc;color:var(--primary)}.status-badge{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;white-space:nowrap;background:#f3f4f6;color:#374151}.status-badge--active{background:#ecfdf5;color:#065f46}.status-badge--inactive{background:#f3f4f6;color:var(--muted)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:var(--spacing-md)}.tab{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .85rem;font-size:.875rem;color:var(--muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .12s,border-color .12s;margin-bottom:-1px}.tab:hover{color:var(--text)}.tab--active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.tab__count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--border);color:var(--muted);font-size:.7rem;font-weight:700}.tab--active .tab__count{background:#dceffe;color:var(--primary)}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;border:1px solid transparent;transition:background .13s,border-color .13s,opacity .13s;text-decoration:none;white-space:nowrap;line-height:1.4}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.btn--primary:not(:disabled):hover{background:#1561c4;border-color:#1561c4}.btn--positive{background:var(--positive);color:#fff;border-color:var(--positive)}.btn--positive:not(:disabled):hover{background:#258025;border-color:#258025}.btn--ghost{background:var(--card-bg);color:var(--text);border-color:var(--border)}.btn--ghost:not(:disabled):hover{background:var(--page-bg);border-color:#c4c9d4}.btn--sm{padding:.28rem .65rem;font-size:.8rem;border-radius:6px}.status-msg{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius);margin-bottom:var(--spacing-md);background:var(--page-bg);border:1px solid var(--border);color:var(--muted);font-size:.875rem}.status-msg--ok{background:#f0fdf4;border-color:#bbf7d0;color:var(--positive)}.status-msg--error{background:#fff1f2;border-color:#fecdd3;color:var(--danger)}.placeholder-note{color:var(--muted);font-style:italic;margin-bottom:var(--spacing-lg);font-size:.9rem}.company-selector{display:inline-flex;align-items:center;gap:var(--spacing-sm);font-size:.85rem}.company-selector__label{color:var(--muted)}.company-selector select{padding:.35rem .5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);font:inherit}.page__subtitle{color:var(--muted);font-size:.875rem;margin-top:.15rem}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.card--dense{padding:.75rem 1rem}.card__title{font-size:.9375rem;font-weight:700;color:var(--text);margin-bottom:var(--spacing-sm)}.card__hint{color:var(--muted);font-size:.85rem;margin-bottom:var(--spacing-md)}.card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.card__header .card__title{margin-bottom:0}.card__menu{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:1rem;cursor:pointer;transition:background .12s;flex-shrink:0}.card__menu:hover{background:var(--page-bg)}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-lg)}.form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.form-row{display:flex;flex-direction:column;gap:.3rem;font-size:.875rem}.form-row>span{color:var(--muted);font-size:.8rem;font-weight:500}.form-row input,.form-row select{padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius);font:inherit;font-size:.875rem;background:var(--card-bg);color:var(--text);transition:border-color .12s,box-shadow .12s}.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1773e01f}.inline-form{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.inline-form input{flex:1;padding:.45rem .65rem;border:1px solid var(--border);border-radius:var(--radius);font:inherit}.chip-list{list-style:none;display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.chip{background:var(--page-bg);border:1px solid var(--border);border-radius:999px;padding:.2rem .7rem;font-size:.82rem;color:var(--text)}.data-table .num,.num{text-align:right;font-variant-numeric:tabular-nums}.row{display:flex;gap:.5rem}.row--center{align-items:center}.row--between{justify-content:space-between;align-items:center}.row--end{justify-content:flex-end}.row--wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:.5rem}.stack--tight{gap:.15rem}.text-xs{font-size:.75rem}.text-sm{font-size:.8rem}.text-md{font-size:.85rem}.label-caps{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:var(--muted)}.m-0{margin:0}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mt-sm{margin-top:.5rem}.mt-md{margin-top:1rem}.mb-sm{margin-bottom:.5rem}.mb-md{margin-bottom:1rem}.w-5r{width:5rem}.w-6r{width:6rem}.w-8r{width:8rem}.text-danger{color:var(--danger)}.text-warn{color:#854d0e}.row--clickable{cursor:pointer}.row--clickable:hover td{background:#f6f9fc}.nowrap{white-space:nowrap}.readable{max-width:760px}.muted{color:var(--muted)}.bar-chart{display:flex;flex-direction:column;gap:.5rem}.bar{display:grid;grid-template-columns:10rem 1fr auto;align-items:center;gap:.75rem;font-size:.85rem}.bar__fill{height:8px;background:var(--primary);border-radius:999px;transition:width .3s ease;min-width:2px}.bar__track{background:var(--border);border-radius:999px;overflow:hidden;height:8px}.bar__value{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.bar__label{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login{display:flex;align-items:center;justify-content:center;min-height:100%;padding:var(--spacing-lg);background:linear-gradient(150deg,var(--nav-bg) 0%,#2a5080 100%)}.login__card{width:100%;max-width:360px;background:var(--card-bg);border-radius:12px;box-shadow:0 12px 48px #00000038;padding:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-md)}.login__brand{display:flex;align-items:center;gap:.5rem;font-weight:700;color:var(--nav-bg);font-size:1.1rem}.login__title{font-size:1.25rem;font-weight:700;color:var(--text)}.login__hint{color:var(--muted);font-size:.8rem;text-align:center}.form-row--inline{flex-direction:row;align-items:center;gap:.5rem}.form-row--inline>span{color:var(--text)}.topnav__org-label{color:#ffffff8c;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.topnav__org>select{padding:.22rem .5rem;border:1px solid rgba(255,255,255,.22);border-radius:5px;background:#ffffff1a;color:#fff;font:inherit;font-size:.82rem;cursor:pointer;max-width:180px}.topnav__org>select option{background:var(--nav-bg);color:#fff}.topnav__org>select:disabled{opacity:.5;cursor:default}.topnav__tab-group{position:relative;display:flex;align-items:stretch}.topnav__caret{width:8px;height:5px;opacity:.65;flex-shrink:0;margin-left:2px}.topnav__menu-item--active{color:var(--primary);font-weight:600;background:#eef4fc}.topnav__role{display:inline-flex;align-items:center;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#ffffffe6;background:#ffffff24;border:1px solid rgba(255,255,255,.2);padding:.18rem .55rem;border-radius:999px;white-space:nowrap;margin:0 .2rem}.topnav__signout.btn--ghost{color:#ffffffd1;border-color:#ffffff40;background:transparent}.topnav__signout.btn--ghost:hover{background:#ffffff1a;border-color:#fff6;color:#fff}
