:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{font-size:100%}html[data-theme=light]{color-scheme:light;color:#213547;background-color:#fff;font-size:80%}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}html,body,#root{height:100%;min-height:100vh}body{margin:0;min-width:320px}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#f9f9f9;color:#213547;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.layout{display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(180deg,#f6f2ff,#f9f9ff);color:#1d1d1f}.content{display:flex;flex:1;min-height:100vh}.main{flex:1;padding:16px 24px;overflow:auto}.page-title{font-size:1.125rem;font-weight:600;margin:12px 0 16px}.header{height:56px;background:#fff;border-bottom:1px solid #ececf2;display:flex;align-items:center;justify-content:space-between;padding:0 16px;position:sticky;top:0;z-index:10}.header__left{display:flex;align-items:center;gap:12px}.brand{font-weight:700;text-transform:none;display:flex;align-items:center;gap:6px;font-size:1.05rem;letter-spacing:.01em}.brand__name{font-size:1.05rem}.brand__pill{display:inline-block;background:#6f63ff;color:#fff;border-radius:12px;padding:4px 10px;margin-left:2px;font-size:.95rem;font-weight:700}.divider{width:1px;height:22px;background:#e6e6ee}.header__right{display:flex;align-items:center;gap:8px}.sidebar{width:220px;background:#fff;border-right:1px solid #ececf2;padding:16px 12px;position:sticky;top:12px;height:calc(100vh - 24px);overflow:auto;display:flex;flex-direction:column;gap:12px;border-radius:12px;margin:12px}.sidebar__top{display:flex;align-items:center;justify-content:space-between}.nav-section{font-size:.75rem;color:#8b8b98;margin:12px 8px 6px;text-transform:uppercase}.sidebar ul{list-style:none;margin:0;padding:0}.sidebar li{padding:8px 10px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:10px}.sidebar li.active,.sidebar li:hover{background:#f1f1f7}.nav-icon{width:18px;min-width:18px;display:inline-flex;align-items:center;justify-content:center;color:#6b6b76}.nav-icon svg{width:18px;height:18px}.nav-label{white-space:nowrap}.sidebar.collapsed{width:56px;padding:12px 8px}.sidebar.collapsed .brand,.sidebar.collapsed .sidebar__info,.sidebar.collapsed .nav-section{display:none}.sidebar.collapsed ul li{justify-content:center}.sidebar.collapsed .nav-label{display:none}.table-card{background:#fff;border:1px solid #ececf2;border-radius:12px;overflow:visible}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px;border-bottom:1px solid #ececf2;gap:12px;flex-wrap:wrap}.toolbar-split{align-items:flex-start}.toolbar-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0;flex-wrap:wrap}.toolbar-right{display:flex;align-items:center;gap:10px;flex-shrink:0;justify-content:flex-end;color:#8b8fa3;font-size:.75rem}.toolbar-meta{color:#8b8fa3;font-size:.75rem;white-space:nowrap}.filters select{margin-right:8px;padding:8px 32px 8px 12px;border:1px solid #dcdce6;border-radius:10px;background:#fff;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b6b76' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:16px;transition:box-shadow .2s,border-color .2s}.filters input[type=search]{margin-right:8px;padding:8px 12px;border:1px solid #dcdce6;border-radius:10px;min-width:240px;background:#fff;transition:box-shadow .2s,border-color .2s}.filters select:focus,.filters input[type=search]:focus{outline:none;border-color:#6a5cff;box-shadow:0 4px 12px #0000000f,0 0 0 3px #6a5cff26}.actions .btn{padding:6px 10px}.date-range{display:inline-flex;align-items:center;gap:8px;margin-right:8px}.date-range input[type=date]{padding:8px 10px;border:1px solid #dcdce6;border-radius:10px;background:#fff}.date-filter{position:relative}.date-filter__toggle{border:1px solid #dcdce6;background:#fff;border-radius:10px;padding:8px 12px;min-width:150px;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;font-size:.875rem}.date-filter__icon{font-size:.9rem;opacity:.7}.date-filter__popover{position:absolute;top:110%;left:0;z-index:1000;background:#fff;border:1px solid #ececf2;border-radius:12px;box-shadow:0 8px 24px #0000001f;padding:12px 16px;display:flex;flex-direction:column;gap:10px;min-width:260px}.date-filter__presets{display:flex;flex-direction:column;gap:4px}.date-filter__preset{text-align:left;border:none;background:transparent;padding:6px 4px;border-radius:8px;cursor:pointer;font-size:.875rem}.date-filter__preset:hover{background:#f1f1f7}.date-filter__preset--active{background:#f1f1f7;font-weight:600}.date-filter__inputs{display:flex;gap:8px;margin-top:4px}.date-filter__inputs label{display:flex;flex-direction:column;gap:4px;font-size:.75rem}.date-filter__inputs input[type=date]{padding:6px 8px;border-radius:8px;border:1px solid #dcdce6}.date-filter__footer{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.project-filter-panel{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid #ececf2;border-radius:8px;background:#fff}.project-filter-panel select{min-width:240px}.table{width:100%;border-collapse:separate;border-spacing:0 8px;min-width:1100px}.table thead th{text-align:left;font-size:.75rem;font-weight:600;color:#6b6b76;padding:12px;background:#f7f5ff;border-bottom:none;white-space:normal}.table tbody tr{background:#fff;border:1px solid #e6e6f2;border-radius:12px;box-shadow:0 8px 20px #6c5dff0f;transition:background-color .15s ease,box-shadow .2s ease,transform .1s ease}.table tbody tr:hover{background:#f4f3ff;box-shadow:0 10px 24px #6c5dff14;transform:translateY(-1px)}.table tbody tr.row--debt{border-left:3px solid #ff5a5a}.table tbody td{padding:10px 12px;border-bottom:none}.row-alt{background:transparent}.name{font-weight:500}.sub{font-size:.75rem;color:#8b8b98}.muted{color:#8b8b98}.badge{padding:0 10px;border-radius:999px;font-size:.75rem;font-weight:600;height:24px;display:inline-flex;align-items:center;gap:6px;border:1px solid transparent}.badge--green{background:#e6f7ed;color:#1d7a45;border-color:#b6e3cb}.badge--orange{background:#fff3e6;color:#8a4b00;border-color:#ffd7b3}.badge--gray{background:#f0f0f3;color:#5f616b;border-color:#d5d9e3}.badge--info{background:#e7f0ff;color:#2f6fe4;border-color:#c7d9ff}.icon-btn{background:transparent;border:none;cursor:pointer;font-size:1rem}.table-footer{display:flex;align-items:center;gap:8px;padding:12px}.spacer{flex:1}.pager{display:inline-flex;align-items:center;gap:8px}.pager__btn{border:1px solid #dcdce6;background:#fff;border-radius:10px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.pager__btn:disabled{opacity:.5;cursor:default}.pager__info{font-size:.75rem;color:#6b6b76;min-width:48px;text-align:center}.pager__size{padding:6px 30px 6px 10px;border:1px solid #dcdce6;border-radius:10px;background:#fff}.btn{border:1px solid #dcdce6;background:#fff;border-radius:8px;padding:8px 12px;cursor:pointer}.btn--primary{background:#6a5cff;border-color:#6a5cff;color:#fff}.btn--secondary{background:#fff;border-color:#6a5cff;color:#6a5cff}.btn--ghost{background:transparent}.support-cta-btn{border-radius:10px;border:none;background:linear-gradient(135deg,#7a6afd,#5f48f5);color:#fff;box-shadow:0 4px 12px #5956e940;padding:10px 32px;font-size:.95rem;display:inline-flex;align-items:center;gap:8px;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease,background .15s ease}.support-cta-btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px #5956e947}.support-cta-btn:active{transform:translateY(0);box-shadow:0 3px 10px #5956e933}.modal-card input[type=text],.modal-card input[type=number],.modal-card input[type=search],.modal-card input[type=tel],.modal-card select,.modal-card textarea{width:100%;background:#f5f5f7;border:1px solid #e6e6ee;border-radius:10px;padding:10px 12px;font-size:.875rem;box-sizing:border-box}.modal-card textarea{resize:vertical}.modal-card .section-title{font-weight:600;font-size:1rem;margin:12px 0 4px}.modal-card .hint{font-size:.75rem;color:#8b8b98}.modal-card .radio-row{display:flex;align-items:center;gap:16px}.modal-card select{appearance:none;background:#f5f5f7;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238b8b98' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;transition:box-shadow .2s,border-color .2s}.modal-card select:focus,.modal-card input[type=text]:focus,.modal-card input[type=number]:focus,.modal-card input[type=search]:focus,.modal-card input[type=tel]:focus,.modal-card textarea:focus{outline:none;border-color:#6a5cff;box-shadow:0 4px 14px #00000014,0 0 0 3px #6a5cff26}.support-form input[type=text],.support-form input[type=tel],.support-form textarea{width:100%;background:#f5f5f7;border:1px solid #e6e6ee;border-radius:10px;padding:10px 12px;font-size:.9rem;box-sizing:border-box}.support-form textarea{resize:vertical}.support-form input:focus,.support-form textarea:focus{outline:none;border-color:#6a5cff;box-shadow:0 4px 12px #0000000f,0 0 0 3px #6a5cff26}.export-dropdown{position:relative;display:inline-block}.export-dropdown__button{display:flex;align-items:center;gap:6px;position:relative}.export-dropdown__arrow{font-size:.625rem;transition:transform .2s ease;margin-left:4px}.export-dropdown__arrow.open{transform:rotate(180deg)}.export-dropdown__menu{position:absolute;top:100%;right:0;background:#fff;border:1px solid #ececf2;border-radius:8px;box-shadow:0 4px 12px #0000001a;z-index:1000;min-width:120px;margin-top:4px}.export-dropdown__item{width:100%;padding:10px 12px;background:none;border:none;text-align:left;cursor:pointer;font-size:.875rem;color:#1d1d1f;transition:background-color .2s ease}.export-dropdown__item:hover{background:#f1f1f7}.export-dropdown__item:first-child{border-radius:8px 8px 0 0}.export-dropdown__item:last-child{border-radius:0 0 8px 8px}.export-dropdown__item:only-child{border-radius:8px}.delivery-select{appearance:none;padding:4px 28px 4px 10px;border-radius:999px;font-size:.75rem;font-weight:600;border:1px solid;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b6b76' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:12px;transition:box-shadow .2s,border-color .2s}.delivery-select:focus{outline:none;box-shadow:0 0 0 3px #6a5cff33}.delivery-select--green{background-color:#e6f7ed;border-color:#1d7a45;color:#1d7a45}.delivery-select--orange{background-color:#fff3e6;border-color:#8a4b00;color:#8a4b00}.delivery-select--gray{background-color:#f0f0f3;border-color:#5f616b;color:#5f616b}.delivery-select:disabled{opacity:.6;cursor:not-allowed}.chip-stack{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.client-row .remaining-negative{color:#d83a3a;font-weight:700}.client-summary-card{padding:16px;display:flex;flex-direction:column;gap:12px}.client-summary__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.client-summary__title{font-size:1.1rem;font-weight:700;margin:0}.client-summary__meta{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.client-summary__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:stretch}.client-summary__actions .btn{flex:1 1 160px;min-width:160px;padding:6px 10px;font-size:.85rem;line-height:1.2;min-height:40px}.client-summary__actions .btn .badge{height:20px;padding:0 8px;font-size:.7rem}@media(max-width:900px){.client-summary__actions .btn{flex:1 1 calc(50% - 8px);min-width:0}}@media(max-width:560px){.client-summary__actions .btn{flex:1 1 100%}}@media(max-width:700px){.client-summary__meta{flex-wrap:wrap}}.summary-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.summary-card{background:#fff;border:1px solid #ececf2;border-radius:12px;padding:12px;min-height:72px;display:flex;flex-direction:column;justify-content:space-between}.summary-card .value{font-size:1.2rem;font-weight:700}.summary-card .value--negative{color:#d83a3a}.btn__meta{display:inline-flex;gap:6px;margin-left:8px;align-items:center}@media(max-width:768px){.main{padding:12px}.table-toolbar{flex-direction:column;align-items:stretch;gap:8px}.filters{display:flex;flex-wrap:wrap;gap:8px}.filters .btn{width:100%}.project-filter-panel{flex-direction:column;align-items:stretch;width:100%}.project-filter-panel select{width:100%;min-height:140px}.filters input[type=search]{min-width:0;flex:1 1 100%;margin-right:0}.filters select{flex:1 1 calc(50% - 4px);margin-right:0}.actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.date-range{width:100%;justify-content:space-between;display:grid;grid-template-columns:1fr 1fr;gap:8px}}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#f7f7fb,#ececf2);padding:20px}.login-card{width:100%;max-width:420px;background:#fff;border-radius:16px;box-shadow:0 10px 40px #00000014,0 2px 8px #0000000a;padding:40px 32px;animation:loginFadeIn .4s ease-out}@keyframes loginFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:32px}.login-title{font-size:1.75rem;font-weight:700;color:#1d1d1f;margin:0 0 8px;letter-spacing:-.5px}.login-subtitle{font-size:.875rem;color:#8b8b98;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.login-field{display:flex;flex-direction:column;gap:8px}.login-label{display:flex;align-items:center;gap:8px;font-size:.8125rem;font-weight:600;color:#6b6b76;text-transform:uppercase;letter-spacing:.5px}.login-icon{color:#6a5cff;flex-shrink:0}.login-input{width:100%;background:#f5f5f7;border:2px solid #e6e6ee;border-radius:12px;padding:14px 16px;font-size:.9375rem;color:#1d1d1f;transition:all .2s ease;box-sizing:border-box}.login-input::placeholder{color:#8b8b98}.login-input:hover:not(:disabled){border-color:#dcdce6;background:#fafafc}.login-input:focus{outline:none;border-color:#6a5cff;background:#fff;box-shadow:0 4px 14px #6a5cff1f,0 0 0 4px #6a5cff14}.login-input:disabled{opacity:.6;cursor:not-allowed}.login-error{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fff5f5;border:1px solid #fecaca;border-radius:10px;color:#dc2626;font-size:.8125rem;animation:errorShake .3s ease}.login-error svg{flex-shrink:0;color:#dc2626}@keyframes errorShake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.login-button{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;background:linear-gradient(135deg,#6a5cff,#5a4dee);border:none;border-radius:12px;color:#fff;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:8px;box-shadow:0 4px 12px #6a5cff4d}.login-button:hover:not(:disabled){background:linear-gradient(135deg,#5a4dee,#4a3ddd);box-shadow:0 6px 16px #6a5cff66;transform:translateY(-1px)}.login-button:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #6a5cff4d}.login-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:480px){.login-card{padding:32px 24px;border-radius:12px}.login-title{font-size:1.5rem}.login-subtitle{font-size:.8125rem}}
