:root{--weak-primary-color: #caf0f8;--strong-primary-color: #023e8a;--primary-color: #0077b6;--primary-hover: #0096c7;--button-text-color: #ffffff;--background-dark: var(--card-background);--card-background: #2c2c2c;--text-color: black;--input-background: white;--error-color: #ff0000;--success-color: #00ff00;--shadow: 0 8px 24px rgba(0, 0, 0, .3);--shadow-small: 0 4px 12px rgba(0, 0, 0, .3);--border-radius: 8px;--border-radius-small: 4px;--sidebar-width: 200px;--top-header-height: 40px;--font-family: "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;--font-size: 11px;--line-height: 1.4;--font-size-sm: 10px}#root{margin:0 auto;height:100vh;overflow:hidden}*{box-sizing:border-box;font-family:var(--font-family);font-size:var(--font-size);line-height:var(--line-height)}.App{display:flex;margin:0 auto;height:100vh;overflow:hidden;flex-direction:row;background-color:var(--background-dark)}body{padding:0;margin:0;height:95%;overflow:hidden}span{color:var(--text-color)}h1{color:var(--strong-primary-color);font-size:1.5rem;text-shadow:1px 1px 1px rgba(0,0,0,.5)}h2{color:var(--text-color);text-align:center}strong{color:var(--text-color)}.nowrap{white-space:nowrap}.SplitPane{position:relative!important;height:100%!important;width:100%!important}.Pane{display:flex;flex-direction:column;min-height:0;overflow:auto}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:1rem}.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:var(--font-size-sm)}.form-grid input,.form-grid select,.form-grid textarea{background:var(--input-background);border:1px solid var(--border-color);border-radius:var(--border-radius);color:var(--text-color);padding:8px 10px}.form-grid textarea{min-height:80px;resize:vertical}.form-grid label.span-2{grid-column:span 2}.form-grid fieldset{border:1px solid var(--border-color);border-radius:var(--border-radius-small);padding:8px 12px}.form-grid fieldset.span-2{grid-column:span 2}.form-grid fieldset legend{padding:0 6px;font-weight:600;color:var(--text-color)}.receipt-flags{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;background:var(--input-background);border:1px solid var(--border-color);border-radius:10px;padding:6px 12px 2px;box-shadow:var(--shadow-small)}.receipt-flags legend{margin-bottom:2px;font-weight:700;font-size:.9rem;color:var(--text-color)}.receipt-flags .flag{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;white-space:nowrap}.receipt-flags .flag span{color:var(--text-color)}.receipt-flags .flag input[type=checkbox]{transform:scale(.95)}.toolbar{display:flex;flex-wrap:wrap}.search{position:relative;display:flex;align-items:center;gap:6px;flex:1;background:#fff;padding:0 12px;border:1px solid var(--border-color);border-radius:var(--border-radius)}.toolbar .search{position:relative;display:flex;align-items:center;gap:6px;flex:1;background:var(--input-background);padding:0 12px;border:1px solid var(--border-color);border-radius:var(--border-radius)}.toolbar .search input{flex:1;border:none;color:var(--text-color);height:36px;outline:none;background:var(--input-background);padding:0 12px;border:1px solid var(--border-color);border-radius:var(--border-radius)}.toolbar search svg{opacity:.6}.toolbar search .clear{background:transparent;border:none;color:var(--text-color);opacity:.6;cursor:pointer}.toolbar search .clear:hover{opacity:1}.main-content{flex:1;display:flex;flex-direction:column;height:100%;position:relative;overflow:hidden}.main-content.has-topbar{padding-top:var(--top-header-height, 60px)}.main-content>div{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;overflow:hidden}.btn{background:var(--primary-color);color:var(--button-text-color);border:none;padding:.5rem .8rem;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;margin-left:.5rem}.btn:hover{transform:scale(1.06);outline:2.5px solid var(--primary-color, #0077b6);outline-offset:2px;box-shadow:0 0 0 2px #0077b621}.btn.secondary{background:var(--input-background);border:1px solid var(--border-color);color:var(--text-color)}.btn.secondary:hover{background:var(--input-background);outline:2.5px solid var(--primary-color, #0077b6);outline-offset:2px;box-shadow:0 0 0 2px #0077b621}.btn.primary{background:var(--primary-color);color:var(--button-text-color)}.btn.danger{background:#c0392b}.mini-btn{cursor:pointer}.mini-btn{border:none!important;outline:none!important;background:transparent;border:none;cursor:pointer;color:var(--text-color);display:inline-flex;align-items:center;justify-content:center}.mini-btn::-moz-focus-inner{border:0;padding:0}.mini-btn.danger{color:#d64545;background:transparent}.mini-btn.danger:hover{color:red}.button{width:100%;max-width:300px;padding:.75rem;background-color:var(--primary-color);color:var(--text-color);border:none;border-radius:var(--border-radius);font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .3s ease,transform .2s ease;margin:0 auto;display:block}.button:hover{background-color:var(--primary-hover);transform:translateY(-2px)}.button:active{transform:translateY(0)}.input{width:100%;padding:.75rem;border:2px solid var(--primary-color);border-radius:var(--border-radius);background-color:var(--input-background);color:var(--text-color);font-size:1rem;transition:border-color .3s ease,box-shadow .3s ease;margin:0 auto}.input:focus{outline:none;border-color:var(--primary-hover);box-shadow:0 0 8px #0096c780}.input::placeholder{color:#a0a0a0}.input.input-error{border-color:var(--error-color)}.error-message{color:var(--error-color);font-size:1.5rem;margin-top:.25rem;display:block;text-align:center}.success-message{color:var(--success-color);font-size:1.2rem;font-weight:600;margin-top:.5rem;display:block;text-align:center;padding:.5rem;border-radius:var(--border-radius-small);background-color:#00ff001a}.card{background-color:var(--card-background);padding:2rem;border-radius:var(--border-radius);box-shadow:var(--shadow);width:100%;text-align:center;margin:0 auto;position:relative}.title{color:var(--text-color);font-size:1.8rem;margin-bottom:1.5rem;font-weight:600}.input-group{margin-bottom:1.5rem;display:flex;flex-direction:column;align-items:center;width:100%}.input-group label{display:block;color:var(--text-color);font-size:.9rem;margin-bottom:.5rem;width:100%;text-align:center}.td-actions{width:1%}th.active-sort{color:var(--primary-color);text-decoration:underline;cursor:pointer}th{cursor:pointer}.actions{justify-content:left;white-space:nowrap}.table{width:100%;border-collapse:collapse}.table th,.table td{display:table-cell;padding:.5rem;color:var(--text-color);text-align:left;vertical-align:middle}.table th{background-color:var(--weak-primary-color);font-weight:600}.table tr:nth-child(2n){background-color:var(--evenrow-color)}.action-button{background-color:var(--primary-color);color:var(--text-color);border:none;padding:.5rem 1rem;border-radius:var(--border-radius-small);cursor:pointer;margin-right:.5rem;transition:background-color .3s ease}.action-button:hover{background-color:var(--primary-hover)}.action-button.delete{background-color:var(--error-color)}.action-button.delete:hover{background-color:#c00}.pagination{display:flex;align-items:center;gap:1rem;margin-top:1rem;margin-bottom:2rem;padding-left:.5rem}@media (max-width: 768px){.main-content{margin-left:0;width:100%}.main-content.has-topbar{margin-left:var(--sidebar-width, 60px);width:calc(100% - var(--sidebar-width, 60px))}.card{padding:1.5rem;margin:1rem;max-width:90%}.title{font-size:1.5rem}.input,.button{max-width:100%}}.sidebar{--sidebar-width: 200px;--icon-size: 16px;--submenu-icon-size: var(--icon-size);--chevron-size: 1rem;--sidebar-text-color: #000000;width:var(--sidebar-width);background-color:var(--card-background);color:var(--sidebar-text-color);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;display:flex;flex-direction:column;height:100vh;min-height:0;overflow:hidden;box-shadow:2px 0 8px #0000004d;position:relative;top:0;left:0;z-index:1100;transition:width .3s ease}.sidebar.collapsed{width:60px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto}.sidebar-logo{max-width:100%;height:auto;padding-top:.5rem}.toggle-btn{background:none;border:none;color:var(--text-color);font-size:1.2rem;cursor:pointer;margin-left:auto}.sidebar-links{list-style:none;padding:0;color:var(--sidebar-text-color);flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.sidebar-link{display:flex;align-items:center;padding:.75rem 1rem;font-size:1rem;font-weight:300;color:var(--sidebar-text-color);text-decoration:none;transition:background-color .3s,color .3s;border-radius:var(--border-radius-small)}.sidebar-link .icon{margin-right:.75rem;font-size:var(--icon-size);line-height:1;display:inline-flex;align-items:center}.sidebar-link .icon svg,.group-link .icon svg,.submenu-link .icon svg{width:var(--icon-size);height:var(--icon-size)}.sidebar-link:hover{color:var(--primary-hover);background-color:#ffffff14}.sidebar-link.active{background-color:var(--primary-color);color:var(--button-text-color)}.sidebar-links>li>.sidebar-link.active,.sidebar-links>li>.sidebar-link.active .label,.sidebar-links>li>.sidebar-link.active .icon{color:var(--button-text-color)!important}.sidebar-group{margin-top:.25rem}.sidebar-group .group-link,.sidebar-group .group-link:hover,.sidebar-group.active .group-link,.sidebar-group.active .group-link:hover{color:var(--sidebar-text-color)!important;font-weight:300}.sidebar-group.active>.group-link{background-color:#ffffff0d}.sidebar-group.active>.group-link.submenu-link.active{background-color:var(--primary-color);color:var(--text-color)}.group-link{display:flex;align-items:center;justify-content:space-between}.group-link .icon{margin-right:.75rem;font-size:var(--icon-size);line-height:1;display:inline-flex;align-items:center}.submenu-arrow{margin-left:auto;display:flex;align-items:center}.submenu-arrow svg{font-size:var(--chevron-size)}.submenu{list-style:none;padding-left:1.75rem;margin:.25rem 0 .5rem;border-left:1px solid rgba(255,255,255,.06)}.submenu-link{padding:.5rem .75rem;font-size:.95rem;font-weight:300;color:var(--sidebar-text-color)}.sidebar .label,.sidebar .sidebar-link .label,.sidebar .submenu-link .label{color:var(--sidebar-text-color)!important;font-weight:300}.submenu-link .icon{margin-right:.5rem;font-size:var(--submenu-icon-size);line-height:1;display:inline-flex;align-items:center}.submenu-link.active{background-color:var(--primary-color);color:var(--button-text-color)}.submenu-link.active .label{color:var(--button-text-color)}.submenu .sidebar-group>.group-link{padding:.5rem .75rem;font-size:.95rem}.submenu .sidebar-group>.group-link .icon{margin-right:.5rem;font-size:var(--submenu-icon-size)}.sidebar.collapsed .label,.sidebar-collapsed .submenu-arrow{display:none}.sidebar.collapsed .sidebar-logo{max-width:40px;margin:0 auto}.sidebar.collapsed .submenu{display:none}@media (max-width: 768px){.sidebar-logo{display:none}.sidebar{position:fixed;width:60px;padding:0 1rem;height:100vh;overflow:hidden}.sidebar-links{margin-top:1rem;overflow-y:auto}}.top-header{position:fixed;top:0;background-color:var(--card-background);display:flex;justify-content:space-between;align-items:center;padding:0 1rem;left:var(--sidebar-width);right:0;z-index:1000;box-shadow:var(--shadow-small)}.topbar-left{display:flex;align-items:center;gap:.75rem;min-width:0}.topbar-title{color:var(--text-color);font-size:1.5rem;font-weight:700;color:var(--strong-primary-color);margin:0;display:inline-flex;align-items:baseline;gap:.5rem;white-space:nowrap;padding-bottom:1rem;padding-top:1rem}.topbar-subtitle{font-size:1.2rem;font-weight:400;opacity:.8}.top-header-title{color:var(--text-color);font-size:1.5rem;font-weight:600;white-space:nowrap}.top-header-user{display:flex;align-items:center;gap:1rem}.icon-button,.button-icon{background:none;border:none;cursor:pointer;padding:.5rem;border-radius:var(--border-radius-small);color:var(--text-color);transition:background-color .3s ease,opacity .15s ease}.icon-button:hover,.button-icon:hover{background-color:var(--input-background);opacity:.95}.top-header .icon-button svg{font-size:20px;width:20px;height:20px}.chat-with-badge{position:relative}.chat-with-badge .chat-badge{position:absolute;top:-4px;right:-2px;min-width:16px;height:16px;padding:0 4px;background:#ef4444;color:#fff;border-radius:999px;font-size:11px;line-height:16px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.2)}.user-greeting{color:var(--text-color);opacity:.9;font-size:.95rem}.topbar-center{flex:1 1 auto;display:flex;align-items:center;justify-content:center;pointer-events:none;min-width:0}.topbar-status{font-size:.95rem;color:var(--text-color);opacity:.75;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:50vw}.topbar-client{font-size:1.05rem;color:var(--text-color);font-weight:600;margin-right:.75rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:50vw}@media (max-width: 768px){.top-header{left:var(--sidebar-width, 0px);padding:0 .75rem;gap:.5rem}.topbar-title{font-size:1.05rem;max-width:50vw;overflow:hidden;text-overflow:ellipsis}.topbar-subtitle{display:none}.topbar-status{max-width:40vw;font-size:.85rem}.top-header-user{gap:.5rem}}.login-container{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;width:100%;padding:1rem 1rem 6.75rem;box-sizing:border-box;background-color:var(--background-dark, #1a1a1a);background-image:image-set(var(--bg-desktop-1x) 1x,var(--bg-desktop-1_5x) 1.5x,var(--bg-desktop-2x) 2x);background-image:-webkit-image-set(var(--bg-desktop-1x) 1x,var(--bg-desktop-1_5x) 1.5x,var(--bg-desktop-2x) 2x);background-size:cover;background-position:center;background-repeat:no-repeat;color:var(--text-color, #ffffff)}.login-header{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.9rem;margin:0 0 1.5rem;padding:.55rem .95rem;border-radius:16px;background:#f0eee4;border:1px solid rgba(2,62,138,.14);box-shadow:0 12px 34px #00000042,0 0 0 1px #ffffff47}.login-miami-logo{display:block;height:clamp(46px,3.2vw + 18px,78px);width:auto;max-width:92vw;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(0,0,0,.52)) drop-shadow(0 0 14px rgba(255,255,255,.22))}@media (max-width: 480px){.login-header{gap:.65rem;padding:.45rem .75rem}.login-miami-logo{height:clamp(40px,5.6vw + 14px,60px)}.login-miami-title{font-size:clamp(1.25rem,3.2vw + .6rem,1.65rem);text-align:center}}.login-container:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#00000073,#00000073);pointer-events:none;z-index:0}.login-card,.login-signup{position:relative;z-index:1}.login-card{width:100%;max-width:400px;background:#f8fafceb;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:8px;padding:2rem;box-shadow:0 12px 34px #00000047;color:#0b1220;--text-color: #0b1220;--input-background: rgba(255, 255, 255, .96)}@media (orientation: portrait),(max-width: 768px){.login-container{background-image:image-set(var(--bg-mobile-1x) 1x,var(--bg-mobile-2x) 2x);background-image:-webkit-image-set(var(--bg-mobile-1x) 1x,var(--bg-mobile-2x) 2x);background-position:center top}}.login-logo,.login-card-logo{max-width:100%;height:auto;margin-bottom:1.5rem;display:block;margin-left:auto;margin-right:auto}.login-card-logo{height:72px;width:auto;object-fit:contain;margin-bottom:1.25rem;filter:drop-shadow(0 10px 18px rgba(0,0,0,.28)) drop-shadow(0 0 12px rgba(0,150,199,.18))}.server-error{margin-bottom:1rem}.error-message,.server-error{color:var(--error-color, #ff0000);font-size:1.1rem;line-height:1.5;font-weight:700;letter-spacing:.2px;text-shadow:0 1px 2px rgba(0,0,0,.45)}.error-message.server-error{display:block;padding:.65rem .85rem;border-radius:8px;background:#d32f2f14;border:1px solid rgba(211,47,47,.28)}.input-group .error-message:not(.server-error){display:block;margin-top:.4rem}.input-group{margin-bottom:1rem}.input{width:100%;padding:.75rem;border-radius:6px;border:1px solid transparent;background:var(--input-background, #3a3a3a);color:var(--text-color, #ffffff);box-sizing:border-box}.input:focus{outline:none;border-color:var(--primary-color, #0077b6)}.input-error{border-color:var(--error-color, #ff0000)}.login-button{width:100%;padding:.75rem;border:none;border-radius:6px;cursor:pointer;background:var(--primary-color, #0077b6);background-color:var(--primary-color, #0077b6);color:var(--button-text-color, #fff);font-weight:600;transition:background .15s ease-in-out}.login-button:hover{background:var(--strong-primary-color, #023e8a);background-color:var(--strong-primary-color, #023e8a)}.login-card .login-button{background:var(--primary-color, #0077b6);background-color:var(--primary-color, #0077b6);color:var(--button-text-color, #fff)}.login-card .login-button:hover{background:var(--strong-primary-color, #023e8a);background-color:var(--strong-primary-color, #023e8a)}.forgot-password{margin-top:1rem;text-align:center}.forgot-password-link,.forgot-password-link:visited{color:var(--primary-color, #0077b6)!important;text-decoration:none}.forgot-password-link:hover{color:var(--primary-hover, #0096c7)!important;text-decoration:underline}.login-container a{color:var(--primary-color, #0077b6);text-decoration:none}.login-container a:hover{color:var(--primary-hover, #0096c7);text-decoration:underline}.login-signup{margin-top:1.25rem;font-size:1.05rem;color:#fff;text-align:center;line-height:1.4;padding:.6rem .9rem;border-radius:12px;background:#00000047;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 10px 26px #00000047}.login-signup-link,.login-signup-link:visited{color:#fff!important;font-weight:800;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}.login-signup-link:hover{color:var(--weak-primary-color, #caf0f8)!important}.login-footer{position:fixed;left:1rem;right:1rem;bottom:1rem;margin:0 auto;max-width:980px;padding:.65rem .9rem;border-radius:12px;background:#00000059;color:#ffffffeb;text-align:center;line-height:1.35;font-size:.95rem;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 10px 26px #00000047;z-index:2}.login-footer-link,.login-footer-link:visited{color:var(--weak-primary-color, #caf0f8);font-weight:700;text-decoration:none}.login-footer-link:hover{text-decoration:underline;text-underline-offset:3px}.storage-error-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;justify-content:center;align-items:center;z-index:2000}.storage-error-card{background:#fff;color:var(--text-color, #000);padding:2rem;border-radius:12px;max-width:560px;width:calc(100% - 2rem);text-align:left;box-shadow:0 8px 24px #0006}.storage-error-card h2{margin:0 0 .75rem;color:var(--error-color, #d32f2f)}.storage-error-help ul{margin:.75rem 0 1rem 1.25rem;line-height:1.4}.storage-error-actions{display:flex;gap:.5rem;margin-top:.5rem}.storage-error-actions .button{cursor:pointer}@media (max-width: 480px){.login-disclaimer{font-size:.75rem;opacity:.8;padding:0 .5rem}.login-logo{max-width:80%}}.forgot-password-container{display:flex;justify-content:center;align-items:center;min-height:100vh;margin:0;padding:0;width:100vw;position:relative;box-sizing:border-box}.forgot-password-card{max-width:400px;z-index:10}.forgot-password-logo{max-width:100%;height:auto;margin-bottom:1.5rem;display:block;margin-left:auto;margin-right:auto}.back-to-login{margin-top:1rem;text-align:center}.forgot-password-card .success-message{color:var(--strong-primary-color, #023e8a);background-color:#0096c71f;border:1px solid rgba(0,150,199,.35)}.loading-modal{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#00000080;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;justify-content:center;align-items:center;z-index:100}.loading-content{padding:1.5rem;border-radius:var(--border-radius);box-shadow:var(--shadow-small);display:flex;align-items:center;gap:1rem;font-size:1rem;font-weight:500}.loading-icon{width:24px;height:24px;border:3px solid var(--primary-color);border-top:3px solid var(--text-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 480px){.forgot-password-logo{max-width:80%}.loading-content{padding:1rem;font-size:.9rem}}.signup-container{min-height:100dvh;width:100%;display:flex;align-items:center;justify-content:center;padding:1rem;background:linear-gradient(180deg,#0077b629,#0000008c)}.signup-card{width:100%;max-width:520px;background:#f8fafcf2;color:#0b1220;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 14px 38px #00000047}.signup-logo{display:block;height:72px;width:auto;max-width:100%;object-fit:contain;margin:0 auto .75rem}.signup-title{margin:.25rem 0 .5rem;color:var(--strong-primary-color, #023e8a)}.signup-subtitle{margin:0 0 1.25rem;opacity:.9}.signup-back{margin-top:.9rem;text-align:center}.signup-actions{margin-top:1rem;display:flex;justify-content:center}
