:root{--accent-color: #5bd1d7;--error-color: #f87171;--success-color: #34d399;--top-bar-height: 4.5rem}.dark{--primary-bg: #0f172a;--secondary-bg: #1e293b;--text-primary: #f8fafc;--text-secondary: #94a3b8;--gradient-start: #1e293b;--gradient-end: #0f172a;--glass-bg: rgba(30, 41, 59, .7);--glass-border: rgba(255, 255, 255, .1);--glass-text-secondary: rgba(255, 255, 255, .6);--error-bg: rgba(248, 113, 113, .1);--error-border: rgba(248, 113, 113, .2);--success-bg: rgba(52, 211, 153, .1);--success-color: #34d399;--warning-color: #fbbf24;--warning-bg: rgba(251, 191, 36, .1);--warning-border: rgba(251, 191, 36, .2);--overlay-bg: rgba(0, 0, 0, .5);--card-shadow: 0 8px 32px 0 rgba(0, 0, 0, .37);--input-bg: rgba(255, 255, 255, .05);--row-hover: rgba(255, 255, 255, .03);--table-header-bg: rgba(255, 255, 255, .05);--btn-text: #ffffff;--btn-secondary-text: #f8fafc}.light{--primary-bg: #f8fafc;--secondary-bg: #ffffff;--accent-color: #5bd1d7;--text-primary: #0f172a;--text-secondary: #475569;--gradient-start: #f1f5f9;--gradient-end: #f8fafc;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(0, 0, 0, .15);--error-color: #ef4444;--error-bg: rgba(239, 68, 68, .1);--error-border: rgba(239, 68, 68, .2);--success-color: #10b981;--success-bg: rgba(16, 185, 129, .1);--success-border: rgba(16, 185, 129, .2);--warning-color: #d97706;--warning-bg: #fef3c7;--warning-border: rgba(217, 119, 6, .3);--overlay-bg: rgba(0, 0, 0, .4);--card-shadow: 0 8px 32px 0 rgba(31, 38, 135, .1);--input-bg: rgba(0, 0, 0, .05);--row-hover: rgba(0, 0, 0, .04);--table-header-bg: rgba(0, 0, 0, .06);--btn-text: #ffffff;--btn-secondary-text: var(--text-primary)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--primary-bg);color:var(--text-primary);min-height:100vh;overflow-x:hidden}.app-container{width:100%;margin:0;padding:.5rem 2rem 2rem}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:1rem;padding:2rem;box-shadow:var(--card-shadow);transition:transform .3s ease,box-shadow .3s ease}.glass-card:hover{box-shadow:0 12px 48px #00000080}h1,.page-title{font-size:2.2rem;font-weight:700;color:var(--accent-color);margin-bottom:1.5rem}button{background:var(--accent-color);color:var(--btn-text);border:none;padding:.75rem 1.5rem;border-radius:.5rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 14px #5bd1d763}button:hover{filter:brightness(1.1);box-shadow:0 6px 20px #5bd1d73b}button:disabled{opacity:.5;cursor:not-allowed;filter:none!important;box-shadow:none!important;pointer-events:none}.fade-in{animation:fadeIn .8s ease-out forwards}.form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}.form-group label{font-size:.875rem;font-weight:600;color:var(--text-secondary);margin-left:.25rem}input,select,textarea{width:100%;padding:.75rem 1rem;background:var(--input-bg);border:1px solid var(--glass-border);border-radius:.75rem;color:var(--text-primary);font-size:1rem;transition:all .3s ease;outline:none}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;padding:5px;border-radius:4px;transition:transform .2s}.dark input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1)}input[type=date]::-webkit-calendar-picker-indicator:hover{transform:scale(1.2);filter:invert(.8) sepia(100%) saturate(5000%) hue-rotate(170deg)}input:focus,select:focus,textarea:focus{border-color:var(--accent-color);background:var(--secondary-bg);box-shadow:0 0 0 4px #5bd1d71a}select option{background-color:var(--secondary-bg);color:var(--text-primary)}.btn-secondary{background:transparent;border:1px solid var(--glass-border);box-shadow:none;color:var(--btn-secondary-text)}.btn-secondary:hover{background:var(--row-hover);border-color:var(--text-secondary)}.btn-active{background:var(--accent-color);color:#fff;border:none}table{width:100%;border-collapse:separate;border-spacing:0;margin-top:1rem}th{text-align:left;padding:1rem;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--glass-border)}.sticky-header{position:sticky;top:var(--top-bar-height, 4.5rem);z-index:10;background:var(--secondary-bg);box-shadow:0 2px 5px #0003}.glass-card-sticky-container{overflow:visible!important}td{padding:1rem;color:var(--text-primary);border-bottom:1px solid var(--glass-border);opacity:.9}tbody tr:hover{background:var(--row-hover)}.billing-page td,.billing-page th{min-width:50px;padding:.75rem 1rem!important}.summary-row td{transition:background .2s}.summary-row:hover td{background:var(--row-hover)!important}.billing-data-row{transition:background .2s}.billing-data-row:hover{background:var(--row-hover)}.flex-between{display:flex;justify-content:space-between;align-items:center}.text-sm{font-size:.875rem}.text-gray{color:var(--text-secondary)}.mr-4{margin-right:1rem}.mb-4{margin-bottom:1rem}.switch{position:relative;display:inline-block;width:48px;height:24px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#ffffff1a;transition:.4s;border-radius:24px;border:1px solid var(--glass-border)}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:2px;background-color:var(--text-secondary);transition:.4s;border-radius:50%}input:checked+.slider{background-color:var(--accent-color);border-color:var(--accent-color)}input:checked+.slider:before{transform:translate(22px);background-color:#fff}input:focus+.slider{box-shadow:0 0 1px var(--accent-color)}.notification-container{position:fixed;bottom:2rem;right:2rem;display:flex;flex-direction:column;gap:1rem;z-index:9999;pointer-events:none}.notification-toast{pointer-events:auto;min-width:300px;max-width:450px;padding:1rem 1.25rem;border-radius:.75rem;background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--glass-border);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;display:flex;align-items:center;gap:.75rem;cursor:pointer;animation:slideInRight .3s cubic-bezier(.4,0,.2,1);transition:all .2s ease}.notification-toast:hover{transform:translateY(-2px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.notification-icon{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;font-size:.875rem;font-weight:700;flex-shrink:0}.notification-message{font-size:.9375rem;font-weight:500;color:var(--text-primary);line-height:1.4}.notification-toast.success{border-left:4px solid var(--success-color)}.notification-toast.success .notification-icon{background:var(--success-bg);color:var(--success-color)}.notification-toast.error{border-left:4px solid var(--error-color)}.notification-toast.error .notification-icon{background:var(--error-bg);color:var(--error-color)}.notification-toast.info{border-left:4px solid var(--accent-color)}.notification-toast.info .notification-icon{background:#5bd1d71a;color:var(--accent-color)}@keyframes slideInRight{0%{opacity:0;transform:translate(100%) scale(.9)}to{opacity:1;transform:translate(0) scale(1)}}.loading-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--primary-bg)}.loading-spinner{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.spinner-large{width:48px;height:48px;border:4px solid var(--glass-border);border-top-color:var(--accent-color);border-radius:50%;animation:spin .8s linear infinite}.loading-text{color:var(--text-secondary);font-size:1rem;font-weight:500;margin:0}.filter-input{width:100%;padding:.35rem .5rem;border-radius:.4rem;background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text-primary);font-size:.8rem;margin-top:.25rem;font-weight:400}.filter-input:focus{outline:none;border-color:var(--accent-color);background:#ffffff1a}.table-container{position:relative;min-height:400px;overflow-x:auto;width:100%}.billing-page,.billing-category-report,.billing-entity-report{height:calc(100vh - 8rem);max-height:calc(100vh - 8rem);display:flex;flex-direction:column;overflow:hidden}.billing-page .glass-card,.billing-category-report .glass-card,.billing-entity-report .glass-card{flex:1;display:flex;flex-direction:column;min-height:0}.billing-page .table-container,.billing-category-report .table-container,.billing-entity-report .table-container{flex:1;min-height:0;overflow:auto;width:100%}.table-container .sticky-header{top:0}.table-loading-blur{filter:blur(4px);pointer-events:none;transition:filter .3s ease}.updating-indicator{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--accent-color);color:#000;padding:.75rem 1.5rem;border-radius:2rem;font-weight:700;display:flex;align-items:center;gap:.75rem;z-index:1000;box-shadow:0 4px 20px #0006;animation:slideUpFade .3s ease-out}@keyframes slideUpFade{0%{opacity:0;transform:translate(-50%,-40%)}to{opacity:1;transform:translate(-50%,-50%)}}.updating-spinner{width:18px;height:18px;border:2px solid rgba(0,0,0,.2);border-top-color:#000;border-radius:50%;animation:spin .8s linear infinite}.description-col{min-width:180px;max-width:320px}.sticky-actions-col{position:sticky;right:0;background:var(--secondary-bg);z-index:4;box-shadow:-6px 0 12px #00000040;border-left:1px solid var(--glass-border)}th.sticky-actions-col{z-index:12}tr:hover .sticky-actions-col{background:var(--secondary-bg)}.dark tr:hover .sticky-actions-col{background:#243049}.light tr:hover .sticky-actions-col{background:#f1f5f9}.description-cell{position:relative;cursor:help}.description-text{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.45;max-height:4.35em;transition:color .2s ease}.description-cell:hover .description-text{color:var(--text-primary)}.description-cell .description-tooltip{position:absolute;bottom:calc(100% + 8px);left:0;background:var(--secondary-bg);border:1px solid var(--glass-border);border-radius:.75rem;padding:.8rem 1rem;color:var(--text-primary);font-size:.85rem;font-weight:500;width:max-content;max-width:450px;box-shadow:0 10px 30px #0006,0 1px 8px #0003;z-index:1000;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(6px);transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1),visibility .2s;white-space:pre-wrap;word-break:break-word}.description-cell:hover .description-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.description-cell .description-tooltip:after{content:"";position:absolute;top:100%;left:20px;border-width:6px;border-style:solid;border-color:var(--secondary-bg) transparent transparent transparent}.description-cell .description-tooltip:before{content:"";position:absolute;top:100%;left:19px;border-width:7px;border-style:solid;border-color:var(--glass-border) transparent transparent transparent;z-index:-1}.top-bar{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;margin-bottom:.5rem;border-radius:0 0 1rem 1rem;position:sticky;top:0;z-index:100}.top-bar-brand .brand-link{font-size:1.6rem;font-weight:700;text-decoration:none;color:var(--text-primary);letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:400px;display:block;transition:all .3s ease}.top-bar-brand .brand-link:hover{color:var(--accent-color);transform:translateY(-1px)}.top-bar-menu{display:flex;align-items:center;gap:1.5rem}.menu-link{color:var(--text-secondary);text-decoration:none;font-weight:500;transition:all .3s ease;padding:.5rem .75rem;border-radius:.4rem}.menu-link:hover,.menu-link.active{color:var(--text-primary);background:#ffffff0d}.menu-link.active{color:var(--accent-color);font-weight:600}.theme-toggle{cursor:pointer;display:flex;align-items:center;justify-content:center;padding:.5rem;border-radius:.4rem;transition:all .3s ease;color:var(--text-secondary)}.theme-toggle:hover{background:#ffffff0d;color:var(--text-primary)}.theme-toggle svg{display:block}.user-menu{position:relative;margin-left:1rem}.user-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-color);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .3s ease;border:2px solid transparent}.user-avatar:hover{border-color:var(--accent-color);transform:scale(1.05)}.user-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:240px;background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:.75rem;box-shadow:var(--card-shadow);padding:1rem;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .3s ease;z-index:1000}.user-menu:hover .user-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.user-info{padding-bottom:.75rem;margin-bottom:.75rem;border-bottom:1px solid var(--glass-border)}.user-name{font-weight:600;color:var(--text-primary);margin-bottom:.25rem;font-size:.95rem}.user-email{font-size:.8rem;color:var(--text-secondary);margin-bottom:.25rem}.user-role{display:inline-block;font-size:.75rem;padding:.25rem .5rem;background:var(--accent-color);color:#fff;border-radius:.375rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.logout-button{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1rem;background:transparent;border:1px solid var(--glass-border);color:var(--text-primary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:none}.logout-button:hover{background:var(--error-bg);border-color:var(--error-color);color:var(--error-color)}.logout-button svg{flex-shrink:0}.login-page{display:flex;flex-direction:column;min-height:100vh}.login-container{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;position:relative;overflow:hidden}.login-background{position:absolute;inset:0;z-index:0;overflow:hidden}.gradient-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.3;animation:float 20s ease-in-out infinite}.orb-1{width:400px;height:400px;background:var(--accent-color);top:-200px;left:-200px;animation-delay:0s}.orb-2{width:500px;height:500px;background:#a78bfa;bottom:-250px;right:-250px;animation-delay:5s}.orb-3{width:350px;height:350px;background:var(--accent-color);top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:10s}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}.login-card{position:relative;z-index:1;width:100%;max-width:440px;padding:3rem;animation:fadeInUp .6s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:2.5rem}.login-title{font-size:2.5rem;font-weight:800;margin-bottom:.5rem;color:var(--accent-color)}.login-subtitle{color:var(--text-secondary);font-size:1rem;margin:0}.login-form{display:flex;flex-direction:column;gap:1.5rem}.login-form input:focus::placeholder{color:transparent}.login-error{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--error-bg);border:1px solid var(--error-border);border-radius:.75rem;color:var(--error-color);font-size:.9rem;animation:shake .4s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.login-error svg{flex-shrink:0}.login-button{margin-top:.5rem;padding:1rem 1.5rem;font-size:1rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .3s ease}.login-button:disabled{opacity:.7;cursor:not-allowed}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:640px){.login-card{padding:2rem 1.5rem}.login-title{font-size:2rem}.gradient-orb{filter:blur(60px)}}.modal-overlay{position:fixed;inset:0;background:var(--overlay-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.modal-content{width:90%;max-width:450px;padding:2rem;background:var(--secondary-bg);border-radius:1rem;text-align:center;border:1px solid var(--glass-border);box-shadow:var(--card-shadow);animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}.modal-title{margin-top:0;margin-bottom:1rem;font-size:1.5rem;font-weight:700;color:var(--accent-color)}.modal-message{color:var(--text-secondary);line-height:1.6;margin-bottom:2rem}.modal-actions{display:flex;gap:1rem;justify-content:center}.modal-actions button{padding:.75rem 1.5rem;border-radius:.6rem;font-weight:600;cursor:pointer;transition:all .2s ease;flex:1}.btn-confirm{background:var(--accent-color);color:#fff;border:none;box-shadow:0 4px 14px #0076ff63}.btn-confirm:hover{filter:brightness(1.1);transform:translateY(-2px)}.btn-cancel{background:var(--input-bg);color:var(--text-primary);border:1px solid var(--glass-border)}.btn-cancel:hover{background:var(--row-hover)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.rte-container{display:flex;flex-direction:column;width:100%;background:#0003;border:1px solid var(--glass-border);border-radius:.5rem;overflow:hidden;transition:border-color .3s ease}.rte-container:focus-within{border-color:var(--accent-color)}.rte-toolbar{display:flex;flex-wrap:wrap;gap:4px;padding:6px;background:#ffffff0d;border-bottom:1px solid var(--glass-border);align-items:center}.rte-toolbar-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;font-size:14px;padding:0;box-shadow:none!important}.rte-toolbar-btn:hover{background:#ffffff1a;color:var(--text-primary);filter:none!important;box-shadow:none!important}.rte-toolbar-btn.active{background:#5bd1d733;color:var(--accent-color);border-color:#5bd1d74d}.rte-divider{width:1px;height:20px;background:var(--glass-border);margin:0 4px}.rte-content{padding:12px;min-height:100px;max-height:400px;overflow-y:auto;color:var(--text-primary);font-size:.95rem;line-height:1.5}.rte-content .ProseMirror{outline:none}.rte-content .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--text-secondary);pointer-events:none;height:0}.rte-dropdown{position:relative;display:inline-block}.rte-dropdown-content{position:absolute;top:100%;left:0;z-index:100;background:var(--secondary-bg);border:1px solid var(--glass-border);border-radius:8px;padding:8px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;box-shadow:0 10px 25px #0000004d;margin-top:4px}.color-swatch{width:24px;height:24px;border-radius:4px;cursor:pointer;border:1px solid rgba(255,255,255,.1);transition:transform .2s ease}.color-swatch:hover{transform:scale(1.2)}.light .rte-container{background:#fff}.light .rte-toolbar{background:#f1f5f9}.note-content mark{background-color:transparent;color:inherit}.note-content ul,.note-content ol,.rte-content ul,.rte-content ol{padding-left:1.5rem!important;margin:.5rem 0}.note-content li,.rte-content li{margin-bottom:.25rem}
