body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.donut-chart-container{display:flex;flex-direction:column;flex-shrink:0;gap:0;max-height:100%;overflow:hidden;padding:0;position:relative;width:100%;z-index:2}.donut-chart-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;flex-shrink:0;font-size:clamp(16px,2.5vw,32px);font-weight:700;line-height:1;margin:0;padding:clamp(3px,.4vh,6px) 0;text-align:center}.donut-chart-responsive{aspect-ratio:1;flex-shrink:1;margin:0 auto;max-height:clamp(200px,35vh,450px);max-width:100%;padding:0;position:relative;width:100%}.donut-chart-stats-toggle{align-items:center;background:#fff;display:flex;flex-shrink:1;gap:clamp(2px,.1vw,2px);justify-content:center;margin:0;min-width:0;padding:clamp(3px,.4vh,6px) 0;position:relative;z-index:3}.three-stage-toggle{border-radius:34px;box-shadow:inset 0 2px 4px #0000001a;cursor:pointer;flex-shrink:0;height:clamp(16px,2vw,28px);position:relative;transition:background-color .3s ease;width:clamp(32px,4vw,54px)}.toggle-pill{background:#fff;border-radius:50%;box-shadow:0 2px 6px #0003;height:clamp(12px,1.6vw,24px);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);transition:left .3s ease;width:clamp(12px,1.6vw,24px)}.donut-charts-row{display:flex;flex-direction:row;gap:8px;width:100%}.donut-charts-row .donut-chart-responsive{flex:1 1}.donut-toggles-row{display:flex;flex-direction:row;flex-wrap:wrap;gap:clamp(8px,2vw,24px);justify-content:center;width:100%}.donut-toggles-row .donut-chart-stats-toggle{flex:1 1;min-width:160px}.stat-item{align-items:center;background:#00000005;border-radius:8px;display:flex;flex-direction:column;flex-shrink:0;gap:clamp(2px,.2vh,4px);min-width:clamp(40px,5vw,90px);padding:clamp(2px,.3vw,2px);transition:all .2s ease}.stat-item:hover{background:#0000000a;transform:translateY(-2px)}.stat-label{font-size:clamp(9px,1.1vw,17px);font-weight:600;letter-spacing:.5px;line-height:1;opacity:.9;text-transform:uppercase}.stat-count{font-size:clamp(12px,1.6vw,28px);font-weight:800;line-height:1}.donut-label{stroke:#000c;stroke-width:3px;stroke-linejoin:round;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4));font-size:clamp(14px,2vw,20px);font-weight:900;paint-order:stroke fill;pointer-events:none}.donut-cell{stroke:#fff;stroke-width:2}@media (max-width:968px){.three-stage-toggle{height:clamp(20px,2.5vw,24px);width:clamp(38px,4.5vw,48px)}.toggle-pill{height:clamp(16px,2vw,20px);width:clamp(16px,2vw,20px)}.donut-chart-container{flex-shrink:0;height:auto;overflow:hidden}.donut-charts-row{flex-shrink:1;min-height:0}.donut-chart-responsive{aspect-ratio:1;flex-shrink:1;max-height:150px}.donut-chart-title{font-size:clamp(14px,2vw,18px);padding:clamp(2px,.3vh,4px) 0}.donut-label{stroke-width:2.5px;font-size:clamp(12px,1.8vw,16px)}.donut-toggles-row{align-items:center;flex-direction:row;flex-wrap:nowrap;gap:4px}.donut-toggles-row .donut-chart-stats-toggle{flex:1 1;min-width:0}.stat-item{min-width:clamp(50px,7vw,70px);padding:clamp(2px,.4vw,6px)}.stat-label{font-size:clamp(9px,1.2vw,13px)}.stat-count{font-size:clamp(14px,1.8vw,20px)}}.devices-container{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;padding:0;position:relative;text-align:center;z-index:1}.devices-title{flex-shrink:0;font-size:clamp(14px,2vw,24px);font-weight:600;line-height:1.1;margin:0 0 clamp(2px,.3vh,5px);padding:clamp(2px,.3vw,5px)}.search-input{font-size:clamp(8px,.9vw,14px);min-width:0;padding:clamp(2px,.3vw,5px)}.search-input:focus{border-color:#4338ca;outline:none}.no-results{color:#999;font-size:clamp(9px,1.1vw,16px);font-style:italic;padding:clamp(8px,1.5vh,16px);text-align:center}.warning-select-wrapper{position:relative;width:100%}.warning-select-wrapper:after{color:#fff;content:"▾";font-size:clamp(8px,.9vw,12px);pointer-events:none;position:absolute;right:6px;top:50%;transform:translateY(-50%)}.warning-select{appearance:none;border:2px solid #4f46e5;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;font-size:clamp(8px,.9vw,14px);font-weight:600;padding:clamp(2px,.3vw,5px) clamp(18px,2vw,24px) clamp(2px,.3vw,5px) clamp(4px,.5vw,8px);text-align:center;transition:all .2s ease;width:100%}.warning-select:focus{border-color:#4338ca;outline:none}.warning-select option{background-color:#fff;color:#333;font-weight:500}.devices-table-wrapper{border:1px solid #ddd;border-radius:12px;box-shadow:0 4px 12px #0000000d;flex:1 1;margin:0 auto;min-height:0;overflow:auto;position:relative;width:100%;z-index:1}.devices-table-wrapper::-webkit-scrollbar{height:8px;width:8px}.devices-table-wrapper::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.devices-table-wrapper::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.devices-table-wrapper::-webkit-scrollbar-thumb:hover{background:#555}.devices-table{border-collapse:initial;border-spacing:0;font-size:clamp(9px,1.1vw,16px);position:relative;table-layout:auto;width:100%}.devices-table thead th{width:auto}.devices-table thead{background-color:#4f46e5;position:sticky;top:0;z-index:10}.devices-table td,.devices-table th{border-bottom:1px solid #eee;font-size:clamp(9px,1.1vw,16px);min-width:0;padding:clamp(2px,.2vw,4px) clamp(1px,.15vw,3px);text-align:center;white-space:nowrap}.devices-table thead tr:first-child th{background-color:#4f46e5;border-top:clamp(1px,.2vh,2px) solid #3d35c7;box-shadow:0 2px 4px #0000001a;color:#fff;padding-bottom:clamp(2px,.3vw,8px);padding-top:clamp(2px,.3vw,8px);position:sticky;text-align:center;top:0;z-index:12}.devices-table tbody{background-color:#fafafa}.devices-table tbody tr{border-bottom:1px solid #e0e0e0}.devices-table tbody tr:hover{background-color:#f5f5f5}.devices-table tbody tr:first-child td{padding-top:clamp(6px,.8vw,14px)}.devices-table tbody tr:last-child td{padding-bottom:clamp(6px,.8vw,14px)}.devices-table th{font-size:clamp(9px,1.1vw,16px);font-weight:600}.devices-table .sortable-header:hover{background-color:#4338ca}.devices-table td:last-child,.devices-table th:last-child{padding-right:clamp(6px,1vw,14px)}.devices-table .search-row th{background-color:#5b4fe5;box-shadow:0 2px 4px #0000001a;padding:clamp(2px,.3vw,5px);position:sticky;top:calc(clamp(3px, .4vw, 10px)*2 + clamp(9px, 1.1vw, 16px) + 1px);z-index:11}@media (max-width:968px){.devices-table thead tr:first-child th{padding-bottom:4px;padding-top:4px}.devices-table .search-row th{padding:2px;top:26px}.devices-table tbody tr:first-child td{padding-top:12px}.devices-table tbody tr:last-child td{padding-bottom:12px}.devices-container{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.devices-table-wrapper{flex:1 1;max-height:none;min-height:0;overflow:auto}}.header{background:#f2f2f2;box-shadow:0 2px 4px #0000001a;flex-wrap:nowrap;justify-content:space-between;min-height:0;padding:clamp(8px,1.5vh,15px) clamp(15px,2vw,30px);position:relative}.header,.header-left{align-items:center;display:flex;flex-shrink:0}.header-left{gap:clamp(8px,1.5vw,15px)}.header-logo{flex-shrink:0;height:clamp(40px,6vh,60px);object-fit:contain;width:clamp(35px,5vh,50px)}.header-title{color:#333;flex-shrink:0;font-size:clamp(14px,2.2vw,28px);font-weight:700;margin:0;white-space:nowrap}.header-nav{gap:clamp(8px,1.5vw,20px);left:49%;position:absolute;transform:translateX(-50%)}.header-nav,.header-right{align-items:center;display:flex;flex-shrink:0}.header-right{gap:clamp(8px,1vw,15px)}.global-search-wrapper{align-items:center;display:flex;position:relative}.global-search-input{border:2px solid #4f46e5;border-radius:6px;font-size:clamp(10px,1.2vw,13px);outline:none;padding:clamp(3px,.5vh,6px) 20px clamp(3px,.5vh,6px) clamp(6px,.8vw,10px);transition:border-color .2s;width:clamp(100px,12vw,160px)}.global-search-input:focus{border-color:#4338ca}.global-search-input::placeholder{color:#999}.global-search-clear{background:none;border:none;color:#999;cursor:pointer;font-size:16px;padding:0 2px;position:absolute;right:6px}.global-search-clear:hover,.nav-link{color:#333}.nav-link{border-radius:6px;flex-shrink:0;font-size:clamp(13px,1.6vw,18px);font-weight:500;padding:clamp(6px,1vh,10px) clamp(8px,1.2vw,16px);text-decoration:none;transition:all .2s ease;white-space:nowrap}.nav-link:hover{background:#2196f31a;color:#2196f3}.nav-link-active{background:#2196f326;color:#2196f3;font-weight:700}.logout-button{background:#d9534f;border:none;border-radius:6px;box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;flex-shrink:0;font-size:clamp(12px,1.5vw,16px);font-weight:600;padding:clamp(6px,1vh,10px) clamp(10px,1.5vw,18px);transition:all .2s ease;white-space:nowrap}.logout-button:hover{background:#c9302c;box-shadow:0 3px 6px #00000026;transform:translateY(-1px)}.logout-button:active{box-shadow:0 1px 2px #0000001a;transform:translateY(0)}.dashboard-container{background-color:#f5f5f5;display:flex;flex-direction:column;height:100vh;overflow:hidden}.dashboard-content{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow-x:hidden;overflow-y:auto;padding:5px}.dashboard-grid{display:flex;flex:1 1;gap:clamp(5px,.8vw,12px);min-height:0;padding:clamp(5px,.8vw,12px)}.dashboard-card{background:#fff;border-radius:6px;box-shadow:0 1px 4px #0000001a;display:flex;flex:1 1;flex-direction:column;gap:clamp(3px,.5vh,8px);min-width:300px;overflow:hidden;padding:clamp(3px,.5vw,8px)}.dashboard-card>:first-child{flex-grow:0;flex-shrink:1;min-height:0;overflow:visible}.dashboard-card>:last-child{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}@media (max-width:968px){.dashboard-content{-webkit-overflow-scrolling:touch;display:block;height:100%;overflow-x:hidden;overflow-y:auto;padding:3px 3px 5px}.dashboard-grid{display:flex;flex-direction:column;gap:clamp(8px,1vh,12px);height:auto;padding:clamp(3px,.5vw,8px)}.dashboard-card{display:flex;flex:none;flex-direction:column;height:90vh;max-width:100%;min-width:100%;overflow:hidden}.dashboard-card>:first-child{flex:0 0 auto;overflow:hidden}.dashboard-card>:last-child{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.dashboard-card:has(.donut-chart-container){grid-template-rows:auto auto auto;max-height:none;min-height:auto}.dashboard-card:has(.devices-table-wrapper){max-height:50vh;min-height:35vh}}.dashboard-loading{align-items:center;display:flex;flex-direction:column;gap:20px;justify-content:center;min-height:60vh}.dashboard-loading p{color:#667eea;font-size:18px;font-weight:600}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #667eea33;border-radius:50%;border-top-color:#667eea;height:50px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}:root{---background-color:#f5f7fa;---header-text-color:#cf2e2e;--normal-heading-color:#cf2e2e;---text-darker:#000;--subheading-text-color:#1d3c6e}.button{background-color:#cf2e2e;border:1px solid #a82626;border-radius:5px;color:#fff;cursor:pointer;display:block;font-size:1rem;font-weight:500;margin:.5rem 0;padding:.2rem .5rem;transition:#f5f7fa .2s ease,transform .1s ease;transition:var(---background-color) .2s ease,transform .1s ease}.button:hover{background-color:#a82626;transform:translateY(-1px)}.button:active{transform:translateY(1px)}.button:disabled{background-color:#94a3b8;cursor:not-allowed}.disp-transactions-btn-group{display:flex;gap:1rem;margin-bottom:1rem;margin-left:1rem}.date-picker-wrapper{align-items:center;display:flex;gap:.5rem}.date-picker{border:2px solid #cf2e2e;border-radius:8px;font-size:1rem;padding:.5rem .8rem}.date-arrow{background-color:#cf2e2e;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;padding:.4rem .6rem;transition:background .1s}.date-arrow:hover{background-color:#a82626}.dropdown{gap:.5rem;min-width:150px;width:100%}.dropdown label{color:#333;font-size:1rem;font-weight:600}.dropdown select{background-color:#fff;border:2px solid #cf2e2e;border-radius:7px;color:#333;cursor:pointer;font-size:1.1rem;font-weight:500;padding:.5rem .75rem}.dropdown select:focus{outline:none}.dropdown select:focus,.dropdown select:hover{background-color:#f5f7fa;border-color:#cf2e2e}.dropdown select:active{background-color:#f5f7fa;border-color:#a82626;transform:translateY(.5px)}.login-container{align-items:center;background-color:#7a7a7a;display:flex;height:100vh;justify-content:center}.login-box{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:2rem;text-align:center;width:320px}.login-logo{margin-bottom:1rem;width:200px}.login-title{margin-bottom:1.5rem}.form-group{margin-bottom:1rem;text-align:left}.form-group label{display:block;margin-bottom:.5rem}.form-group input{border:1px solid #ccc;border-radius:6px;padding:.6rem;width:100%}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:clamp(5px,1vw,10px);position:fixed;right:0;top:0;z-index:1000}.modal-container{background-color:#fff;border:1px solid #e0e0e0;border-radius:clamp(6px,1vw,10px);box-shadow:0 8px 24px #00000026;display:flex;flex-direction:column;max-height:92vh;overflow:hidden;padding:0;width:clamp(300px,85vw,500px)}.modal-header{align-items:center;background:linear-gradient(135deg,#4f46e5,#5b4fe5);box-shadow:0 2px 8px #0000001a;color:#fff;display:flex;gap:clamp(6px,1vw,10px);justify-content:space-between;padding:clamp(8px,1.2vw,12px) clamp(10px,1.5vw,14px);position:sticky;top:0;z-index:10}.modal-title{color:#fff;flex:1 1;font-size:clamp(13px,1.6vw,16px);font-weight:600;margin:0}.modal-header-buttons{display:flex;flex-shrink:0;gap:clamp(4px,.6vw,6px)}.modal-message-container{background-color:#fff;border-bottom:2px solid #e0e0e0;box-shadow:0 3px 8px #0000001f;padding:clamp(8px,1vw,12px) clamp(10px,1.5vw,14px);position:sticky;top:calc(clamp(8px, 1.2vw, 12px)*2 + clamp(13px, 1.6vw, 16px) + 1px);z-index:9}.modal-message{animation:slideDown .3s ease-out;border:3px solid;border-radius:clamp(5px,.7vw,7px);box-shadow:0 6px 16px #0003;font-size:clamp(13px,1.3vw,15px);font-weight:700;margin:0;padding:clamp(12px,1.4vw,16px);text-shadow:1px 1px 2px #fffc,-1px -1px 2px #fffc,1px -1px 2px #fffc,-1px 1px 2px #fffc}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.modal-message.success{background:linear-gradient(135deg,#86efac,#4ade80);border-color:#16a34a;color:#15803d}.modal-message.error{background:linear-gradient(135deg,#fca5a5,#f87171);border-color:#dc2626;color:#b91c1c}.modal-form{background-color:#fafafa;display:flex;flex:1 1;flex-direction:column;gap:clamp(6px,.9vh,8px);overflow-y:auto;padding:clamp(8px,1.2vw,12px)}.modal-form::-webkit-scrollbar{width:5px}.modal-form::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.modal-form::-webkit-scrollbar-thumb{background:#888;border-radius:3px}.modal-form::-webkit-scrollbar-thumb:hover{background:#555}.modal-field{background-color:#fff;border:1px solid #e0e0e0;border-radius:clamp(5px,.7vw,6px);box-shadow:0 1px 2px #00000005;display:flex;flex-direction:column;padding:clamp(6px,.9vw,9px)}.modal-label{color:#333;font-size:clamp(11px,1.1vw,12px);font-weight:600;margin-bottom:clamp(3px,.5vw,5px)}.modal-input,.modal-select,.modal-textarea{background-color:#fff;border:2px solid #e0e0e0;border-radius:clamp(4px,.6vw,5px);font-size:clamp(11px,1.1vw,12px);outline:none;padding:clamp(6px,.8vw,8px) clamp(8px,1.1vw,10px);transition:all .2s}.modal-input:focus,.modal-select:focus,.modal-textarea:focus{border-color:#4f46e5;box-shadow:0 0 0 2px #4f46e51a}.modal-input:hover,.modal-select:hover,.modal-textarea:hover{border-color:#5b4fe5}.modal-textarea{min-height:clamp(50px,8vh,70px);resize:vertical}.modal-buttons{display:flex;gap:clamp(4px,.6vw,6px);justify-content:flex-end}.modal-cancel-btn{background-color:#fff3;border:2px solid #fff;border-radius:clamp(4px,.6vw,5px);color:#fff;cursor:pointer;font-size:clamp(11px,1.1vw,12px);font-weight:500;padding:clamp(5px,.7vw,8px) clamp(10px,1.3vw,14px);transition:all .2s;white-space:nowrap}.modal-cancel-btn:hover{background-color:#ffffff4d;border-color:#fff}.modal-submit-btn{background-color:#fff;border:2px solid #fff;border-radius:clamp(4px,.6vw,5px);color:#4f46e5;cursor:pointer;font-size:clamp(11px,1.1vw,12px);font-weight:600;padding:clamp(5px,.7vw,8px) clamp(10px,1.3vw,14px);transition:all .2s;white-space:nowrap}.modal-submit-btn:hover:not(:disabled){background-color:#f0f0f0;box-shadow:0 2px 5px #0000001a;transform:translateY(-1px)}.modal-submit-btn:disabled{cursor:not-allowed;opacity:.6}.modal-delete-btn{background-color:#e53935;border:2px solid #fff;border-radius:clamp(4px,.6vw,5px);color:#fff;cursor:pointer;font-size:clamp(11px,1.1vw,12px);font-weight:500;padding:clamp(5px,.7vw,8px) clamp(10px,1.3vw,14px);transition:all .2s;white-space:nowrap}.modal-delete-btn:hover:not(:disabled){background-color:#c62828;box-shadow:0 2px 5px #0000001a;transform:translateY(-1px)}.modal-delete-btn:disabled{cursor:not-allowed;opacity:.6}body,html{margin:0;padding:0}#root,body,html{height:100%;overflow:hidden}.tenant-form-container{box-sizing:border-box;display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:clamp(2px,.3vw,5px) clamp(2px,.3vw,5px) clamp(30px,10vh,10px)}.form-section{flex-shrink:0}.form-section,.toggle-form-btn{margin-bottom:clamp(3px,.5vh,5px)}.toggle-form-btn{background-color:#4f46e5;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:clamp(11px,1.2vw,14px);font-weight:500;padding:clamp(4px,.6vw,10px) clamp(8px,1vw,15px);transition:background .2s}.toggle-form-btn:hover{background-color:#4338ca}.tenant-form{background-color:#fefefe;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 4px 12px #0000000d;display:flex;flex-direction:column;gap:clamp(4px,.6vw,8px);max-height:40vh;overflow-y:auto;padding:clamp(8px,1vw,12px)}.form-message{font-size:clamp(11px,1.2vw,14px);font-weight:500;margin-bottom:clamp(2px,.3vw,4px)}.form-message.success{color:green}.form-message.error{color:red}.form-field{display:flex;flex-direction:column}.form-field label{font-weight:500;margin-bottom:clamp(2px,.3vw,4px)}.form-field label,.form-input{font-size:clamp(11px,1.2vw,14px)}.form-input{border:1px solid #ccc;border-radius:8px;outline:none;padding:clamp(4px,.6vw,8px) clamp(8px,1vw,12px);transition:border .2s}.form-input:focus{border-color:#4f46e5}.form-textarea{min-height:clamp(40px,6vh,60px);resize:vertical}.submit-btn{background-color:#4f46e5;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:clamp(11px,1.2vw,14px);font-weight:600;margin-top:clamp(2px,.3vw,4px);padding:clamp(4px,.6vw,8px) clamp(10px,1.2vw,16px);transition:background .2s}.submit-btn:hover:not(:disabled){background-color:#4338ca}.submit-btn:disabled{cursor:not-allowed;opacity:.6}.clear-btn{background:#ffd600;border:1px solid #f9a825;border-radius:4px;color:#333;cursor:pointer;font-size:12px;font-weight:600;padding:4px 10px;transition:all .2s ease;white-space:nowrap;width:100%}.clear-btn:hover{background:#ffab00;border-color:#e65100;box-shadow:0 2px 6px #ffa00080;color:#000;transform:translateY(-1px)}.search-input-wrapper{align-items:center;display:flex;position:relative}.search-input-wrapper .search-input{padding-right:22px;width:100%}.search-clear-btn{background:none;border:none;color:#999;cursor:pointer;font-size:14px;line-height:1;padding:0 2px;position:absolute;right:4px}.search-clear-btn:hover{color:#333}.table-wrapper{display:flex;flex:1 1;flex-direction:column;margin-bottom:clamp(20px,3vh,40px);min-height:0}.table-scroll-container{border-radius:12px;box-shadow:0 4px 12px #0000000d;flex:1 1;min-height:0;overflow:auto;padding-bottom:clamp(40px,6vh,60px);position:relative}.table-scroll-container::-webkit-scrollbar{height:8px;width:8px}.table-scroll-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.table-scroll-container::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.table-scroll-container::-webkit-scrollbar-thumb:hover{background:#555}.tenant-table{border-collapse:collapse;font-size:clamp(9px,1.1vw,16px);table-layout:fixed;width:100%}.tenant-table td:last-child,.tenant-table th:last-child{width:clamp(80px,10vw,120px)}.table-header{background-color:#4f46e5;color:#fff;position:sticky;top:0;z-index:10}.sortable-header{cursor:pointer;font-size:clamp(10px,1.2vw,14px);overflow:hidden;padding:clamp(4px,.5vw,8px);text-align:left;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.sortable-header:hover{background-color:#4338ca}.table-header th{overflow:hidden;padding:clamp(4px,.5vw,8px);text-overflow:ellipsis}.search-row{background-color:#5b4fe5;position:sticky;top:calc(clamp(4px, .5vw, 8px)*2 + clamp(10px, 1.2vw, 14px));z-index:9}.search-row th{padding:clamp(2px,.3vw,4px);vertical-align:middle}.search-input{border:2px solid #4f46e5;border-radius:4px;box-sizing:border-box;font-size:clamp(9px,1vw,12px);padding:clamp(2px,.3vw,4px);width:100%}.table-body{background-color:#fafafa}.table-body tr:last-child td{padding-bottom:clamp(20px,3vh,30px)}.table-row{border-bottom:1px solid #e0e0e0}.table-row:hover{background-color:#f5f5f5}.table-row td{font-size:clamp(10px,1.2vw,14px);overflow:hidden;padding:clamp(4px,.5vw,8px);text-overflow:ellipsis;white-space:nowrap}.action-buttons{align-items:center;display:flex;gap:clamp(3px,.5vw,6px);height:100%;justify-content:center}.edit-btn{background-color:#4f46e5;border:none;border-radius:6px;color:#fff;cursor:pointer;flex:1 1;font-size:clamp(10px,1.1vw,13px);min-width:0;padding:clamp(4px,.5vw,6px) clamp(8px,1vw,12px);transition:background .2s;white-space:nowrap}.edit-btn:hover{background-color:#4338ca}.delete-btn{background-color:#e53935;border:none;border-radius:6px;color:#fff;cursor:pointer;flex:1 1;font-size:clamp(10px,1.1vw,13px);min-width:0;padding:clamp(4px,.5vw,6px) clamp(8px,1vw,12px);transition:background .2s;white-space:nowrap}.delete-btn:hover{background-color:#c62828}.loading-message,.no-data-message{color:#666;font-size:clamp(12px,1.5vw,18px);padding:clamp(12px,2vh,24px);text-align:center}@media (max-width:968px){.table-header th{padding-bottom:4px;padding-top:4px}.search-row{top:26px}.search-row th{padding:2px}}.general-container{box-sizing:border-box;height:100vh;margin:0 auto;max-width:1200px;overflow-y:auto;padding:clamp(12px,2vw,24px)}.general-section{margin-bottom:clamp(20px,3vh,30px)}.general-toggle-btn{background-color:#4f46e5;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:clamp(12px,1.3vw,15px);font-weight:500;margin-bottom:clamp(8px,1vh,12px);padding:clamp(6px,.8vw,10px) clamp(12px,1.5vw,20px);transition:background .2s}.general-toggle-btn:hover{background-color:#4338ca}.general-form{background-color:#fefefe;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 4px 12px #0000000d;display:flex;flex-direction:column;gap:clamp(10px,1.5vh,15px);margin-bottom:clamp(15px,2vh,20px);padding:clamp(15px,2vw,25px)}.general-form-message{border-radius:6px;font-size:clamp(12px,1.3vw,15px);font-weight:500;padding:clamp(6px,.8vw,10px)}.general-form-message.success{background-color:#f0fdf4;color:green}.general-form-message.error{background-color:#fef2f2;color:red}.general-form-field{display:flex;flex-direction:column}.general-form-field label{font-size:clamp(12px,1.3vw,15px);font-weight:500;margin-bottom:clamp(4px,.6vw,8px)}.general-form-input{border:1px solid #ccc;border-radius:8px;font-size:clamp(12px,1.3vw,15px);outline:none;padding:clamp(8px,1vw,12px) clamp(10px,1.3vw,16px);transition:border .2s}.general-form-input:focus{border-color:#4f46e5}.general-submit-btn{background-color:#4f46e5;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:clamp(12px,1.3vw,15px);font-weight:600;margin-top:clamp(6px,.8vh,10px);padding:clamp(8px,1vw,12px) clamp(12px,1.5vw,20px);transition:background .2s}.general-submit-btn:hover:not(:disabled){background-color:#4338ca}.general-submit-btn:disabled{cursor:not-allowed;opacity:.6}.general-table-wrapper{margin-bottom:clamp(25px,4vh,40px)}.general-table-title{font-size:clamp(16px,2vw,20px);font-weight:600;margin-bottom:clamp(8px,1vh,12px)}.general-table-scroll{border-radius:12px;box-shadow:0 4px 12px #0000000d;overflow-x:auto}.general-table-scroll::-webkit-scrollbar{height:8px;width:8px}.general-table-scroll::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.general-table-scroll::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.general-table-scroll::-webkit-scrollbar-thumb:hover{background:#555}.general-table{border-collapse:collapse;border-radius:12px;font-size:clamp(11px,1.2vw,14px);overflow:hidden;table-layout:fixed;width:100%}.general-table td:last-child,.general-table th:last-child{width:clamp(80px,10vw,120px)}.general-table thead{background-color:#4f46e5;color:#fff;position:sticky;top:0;z-index:10}.general-table th{font-size:clamp(11px,1.2vw,14px);font-weight:500;overflow:hidden;padding:clamp(8px,1vw,12px) clamp(10px,1.3vw,16px);text-align:left;text-overflow:ellipsis;white-space:nowrap}.general-table tbody{background-color:#fafafa}.general-table tbody tr{border-bottom:1px solid #e0e0e0}.general-table tbody tr:hover{background-color:#f5f5f5}.general-table td{font-size:clamp(11px,1.2vw,14px);overflow:hidden;padding:clamp(8px,1vw,12px) clamp(10px,1.3vw,16px);text-overflow:ellipsis;white-space:nowrap}.general-action-buttons{align-items:center;display:flex;gap:clamp(3px,.5vw,6px);height:100%;justify-content:center}.general-edit-btn{background-color:#4f46e5;border:none;border-radius:6px;color:#fff;cursor:pointer;flex:1 1;font-size:clamp(10px,1.1vw,13px);min-width:0;padding:clamp(4px,.5vw,6px) clamp(8px,1vw,12px);transition:background .2s;white-space:nowrap}.general-edit-btn:hover{background-color:#4338ca}.general-delete-btn{background-color:#e53935;border:none;border-radius:6px;color:#fff;cursor:pointer;flex:1 1;font-size:clamp(10px,1.1vw,13px);min-width:0;padding:clamp(4px,.5vw,6px) clamp(8px,1vw,12px);transition:background .2s;white-space:nowrap}.general-delete-btn:hover{background-color:#c62828}@media (max-width:768px){.general-container{padding:12px}.general-table-scroll{max-width:100%}}.tabs-container{border-bottom:1px solid #ccc;display:flex;margin:2px 0}.tab-button{background-color:#fff;border:1px solid #ccc;border-radius:5px 5px 0 0;cursor:pointer;font-weight:400;margin-right:2px;outline:none;padding:10px;transition:all .2s}.tab-button.active{background-color:#f3f4f6;border-bottom:3px solid #4f46e5;font-weight:700}.tab-button:hover{background-color:#f9fafb}.tab-content{padding:2px 0}
/*# sourceMappingURL=main.b9baab85.css.map*/