: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;--accent-contrast-text: #0f172a;--badge-hash-bg: rgba(91, 209, 215, .15);--badge-hash-text: #5bd1d7;--badge-hash-border: rgba(91, 209, 215, .35)}.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);--accent-contrast-text: #0f172a;--badge-hash-bg: rgba(91, 209, 215, .25);--badge-hash-text: #0369a1;--badge-hash-border: rgba(91, 209, 215, .5)}*{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}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border-radius:8px;background:transparent;border:1px solid transparent;color:var(--text-secondary);box-shadow:none;transition:background .15s ease,color .15s ease,border-color .15s ease}.icon-btn:hover{filter:none;box-shadow:none;background:var(--row-hover);border-color:var(--glass-border);color:var(--text-primary)}.icon-btn:focus-visible{outline:2px solid var(--accent-color);outline-offset:1px}.icon-btn svg{width:16px;height:16px;display:block}.icon-btn-danger:hover{color:var(--error-color);border-color:var(--error-color)}.icon-btn-success:hover{color:var(--success-color);border-color:var(--success-color)}.icon-btn-accent:hover{color:var(--accent-color);border-color:var(--accent-color)}.table-actions{display:flex;align-items:center;gap:.35rem;white-space:nowrap}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}.security-modal-overlay{position:fixed;inset:0;background:var(--overlay-bg, rgba(0, 0, 0, .6));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:flex-start;justify-content:center;z-index:1000;overflow-y:auto;padding:2rem 0;animation:fadeIn .2s ease-out}.security-modal{padding:0!important;text-align:left;max-width:480px;width:90%;border-radius:12px;background:var(--secondary-bg, #1a1a1a);border:1px solid var(--glass-border);box-shadow:var(--card-shadow);display:flex;flex-direction:column;color:var(--text-primary);animation:modalFadeIn .3s ease-out;margin-top:5vh;margin-bottom:2rem}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--glass-border)}.modal-header h2{font-size:1.25rem;font-weight:600;margin:0}.btn-close-x{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:0 .5rem;transition:color .2s}.btn-close-x:hover{color:var(--text-primary)}.modal-body{padding:1.5rem;overflow-y:auto;max-height:70vh}.security-error{padding:.75rem 1rem;background:#dc354526;border:1px solid rgba(220,53,69,.3);color:#ea868f;border-radius:6px;margin-bottom:1.25rem;font-size:.9rem}.security-success{padding:.75rem 1rem;background:#28a74526;border:1px solid rgba(40,167,69,.3);color:#75b798;border-radius:6px;margin-bottom:1.25rem;font-size:.9rem}.status-banner{display:flex;align-items:center;gap:8px;background:#ffffff08;border:1px solid var(--glass-border);padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.95rem}.status-label{color:var(--text-secondary)}.status-badge{font-weight:600;padding:2px 8px;border-radius:4px;font-size:.85rem}.status-badge.active{background:#28a74533;color:#28a745}.status-badge.pending{background:#ffc10733;color:#ffc107}.security-desc{color:var(--text-secondary);font-size:.9rem;line-height:1.4;margin:0 0 1.5rem}.setup-options h3{font-size:1rem;margin:0 0 1rem;border-bottom:1px solid var(--glass-border);padding-bottom:.5rem}.setup-card{display:flex;flex-direction:column;gap:12px;background:#ffffff05;border:1px solid var(--glass-border);padding:1.25rem;border-radius:8px;margin-bottom:1.25rem;transition:transform .2s,background .2s}.setup-card:hover{background:#ffffff0a}.setup-card-info h4{margin:0 0 6px;font-size:.95rem;font-weight:600}.setup-card-info p{margin:0;font-size:.85rem;color:var(--text-secondary);line-height:1.4}.phone-input-group{display:flex;flex-direction:column;gap:6px;margin-top:12px}.phone-input-group label{font-size:.8rem;color:var(--text-secondary);font-weight:500}.phone-input-group input{padding:.6rem .75rem;border-radius:6px;border:1px solid var(--glass-border);background:#ffffff0d;color:inherit;font-size:.9rem}.btn-setup{align-self:flex-start;padding:.5rem 1rem;background:var(--accent-color, #007bff);color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:opacity .2s;width:100%}.btn-setup:disabled{opacity:.5;cursor:not-allowed}.security-setup-form h3{margin:0 0 .5rem;font-size:1.1rem}.security-setup-form p{color:var(--text-secondary);font-size:.85rem;line-height:1.4;margin:0 0 1.25rem}.code-input{text-align:center;font-size:1.5rem;letter-spacing:.5rem;padding:.75rem;border-radius:8px;border:1px solid var(--glass-border);background:#ffffff0d;color:inherit;width:100%;margin-top:.5rem}.security-actions{display:flex;gap:12px;margin-top:1.5rem}.security-actions button{flex:1;padding:.6rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer}.qr-container{background:#fff;padding:12px;border-radius:8px;margin:0 auto 1.25rem;width:fit-content;box-shadow:0 4px 12px #0000001a}.qr-container img{display:block;max-width:160px}.manual-key-box{font-size:.8rem;color:var(--text-secondary);background:#ffffff08;border:1px solid var(--glass-border);padding:.6rem .75rem;border-radius:6px;width:100%;word-break:break-all;text-align:center;margin-bottom:1.25rem}.manual-key-box code{font-family:monospace;letter-spacing:1px;color:var(--text-primary)}.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(--secondary-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}.login-success{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--success-bg, rgba(40, 167, 69, .15));border:1px solid var(--success-border, rgba(40, 167, 69, .3));border-radius:.75rem;color:var(--success-color, #28a745);font-size:.9rem;animation:fadeIn .3s ease-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}.header-filter-container{position:relative;width:100%;box-sizing:border-box}.header-filter-trigger{background:var(--input-bg);border:1px solid var(--glass-border);color:var(--text-primary);padding:.3rem .5rem;border-radius:6px;font-size:.76rem;font-weight:500;text-transform:none;outline:none;width:100%;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.35rem;transition:all .2s ease;text-align:left}.header-filter-trigger:hover,.header-filter-trigger.active{border-color:var(--accent-color);background:var(--row-hover, rgba(255, 255, 255, .05))}.header-filter-trigger.has-value{background:var(--accent-color);border-color:var(--accent-color);color:var(--accent-contrast-text, #0f172a);font-weight:700}.header-filter-trigger.has-value .header-filter-arrow{color:var(--accent-contrast-text, #0f172a)}.header-filter-trigger-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.header-filter-arrow{flex-shrink:0;transition:transform .2s ease;color:var(--text-secondary)}.header-filter-arrow.open{transform:rotate(180deg);color:var(--accent-color)}.header-filter-dropdown{position:absolute;top:calc(100% + 4px);z-index:1050;background:var(--secondary-bg, #1a1a24);border:1px solid var(--glass-border, rgba(255, 255, 255, .1));border-radius:8px;box-shadow:0 10px 28px #00000073;min-width:180px;max-width:280px;width:max-content;max-height:320px;display:flex;flex-direction:column;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:.35rem;animation:filterDropdownFade .15s ease-out}.header-filter-dropdown.align-left{left:0}.header-filter-dropdown.align-right{right:0}.header-filter-dropdown.align-center{left:50%;transform:translate(-50%)}@keyframes filterDropdownFade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.header-filter-search-box{padding:.25rem;margin-bottom:.35rem;border-bottom:1px solid var(--glass-border)}.header-filter-search-input{width:100%;padding:.35rem .6rem;background:var(--input-bg);border:1px solid var(--glass-border);border-radius:5px;color:var(--text-primary);font-size:.78rem;outline:none;box-sizing:border-box}.header-filter-search-input:focus{border-color:var(--accent-color)}.header-filter-options-list{overflow-y:auto;flex:1;max-height:240px;display:flex;flex-direction:column;gap:2px}.header-filter-option{padding:.4rem .6rem;border-radius:5px;font-size:.78rem;font-weight:400;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.5rem;transition:background .15s ease;text-transform:none;letter-spacing:normal}.header-filter-option:hover{background:var(--row-hover, rgba(255, 255, 255, .08))}.header-filter-option.selected{background:#7c4dff2e;color:var(--accent-color);font-weight:600}.header-filter-no-options{padding:.75rem;text-align:center;color:var(--text-secondary);font-size:.75rem;font-style:italic}.header-date-container{position:relative;width:100%;box-sizing:border-box}.header-date-trigger{background:var(--input-bg);border:1px solid var(--glass-border);color:var(--text-primary);padding:.3rem .5rem;border-radius:6px;font-size:.76rem;font-weight:500;text-transform:none;outline:none;width:100%;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.35rem;transition:all .2s ease;text-align:left}.header-date-trigger:hover,.header-date-trigger.active{border-color:var(--accent-color);background:var(--row-hover, rgba(255, 255, 255, .05))}.header-date-trigger.has-value{background:var(--accent-color);border-color:var(--accent-color);color:var(--accent-contrast-text, #0f172a);font-weight:700}.header-date-trigger.has-value .header-date-arrow{color:var(--accent-contrast-text, #0f172a)}.header-date-trigger-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.header-date-arrow{flex-shrink:0;transition:transform .2s ease;color:var(--text-secondary)}.header-date-arrow.open{transform:rotate(180deg);color:var(--accent-color)}.header-date-dropdown{position:absolute;top:calc(100% + 4px);z-index:1050;background:var(--secondary-bg, #1a1a24);border:1px solid var(--glass-border, rgba(255, 255, 255, .1));border-radius:8px;box-shadow:0 10px 28px #00000073;min-width:210px;display:flex;flex-direction:column;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:.65rem;gap:.6rem;animation:dateDropdownFade .15s ease-out}.header-date-dropdown.align-left{left:0}.header-date-dropdown.align-right{right:0}.header-date-dropdown.align-center{left:50%;transform:translate(-50%)}@keyframes dateDropdownFade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.header-date-inputs{display:flex;flex-direction:column;gap:.5rem}.header-date-field{display:flex;flex-direction:column;gap:.25rem}.header-date-field label{font-size:.72rem;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.4px}.header-date-input{width:100%;padding:.35rem .5rem;background:var(--input-bg);border:1px solid var(--glass-border);border-radius:5px;color:var(--text-primary);font-size:.78rem;outline:none;box-sizing:border-box}.header-date-input::-webkit-calendar-picker-indicator{cursor:pointer;padding:3px;border-radius:4px;filter:invert(.95) brightness(1.2);opacity:.9;transition:filter .2s ease,transform .2s ease,opacity .2s ease}.header-date-input::-webkit-calendar-picker-indicator:hover{transform:scale(1.15);opacity:1;filter:invert(.8) sepia(100%) saturate(5000%) hue-rotate(170deg)}.light .header-date-input::-webkit-calendar-picker-indicator{filter:none;opacity:.75}.light .header-date-input::-webkit-calendar-picker-indicator:hover{opacity:1;filter:sepia(100%) saturate(5000%) hue-rotate(170deg)}.header-date-presets{display:flex;gap:.4rem}.header-date-preset-btn{flex:1;background:var(--input-bg);border:1px solid var(--glass-border);color:var(--text-primary);font-size:.73rem;padding:.25rem .4rem;border-radius:4px;cursor:pointer;transition:all .15s ease}.header-date-preset-btn:hover{background:var(--row-hover);border-color:var(--accent-color)}.header-date-actions{display:flex;justify-content:flex-end;gap:.4rem;border-top:1px solid var(--glass-border);padding-top:.4rem;margin-top:.2rem}.header-date-clear-btn{background:transparent;border:none;color:var(--text-secondary);font-size:.75rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px}.header-date-clear-btn:hover{color:var(--error-color, #ef4444)}.header-date-apply-btn{background:var(--accent-color);color:#000;border:none;font-size:.75rem;font-weight:600;cursor:pointer;padding:.25rem .65rem;border-radius:4px}.header-date-apply-btn:hover{filter:brightness(1.1)}.commit-msg-container{position:relative;width:100%;cursor:help}.highlight-text-wrapper{display:inline}.search-highlight-mark{background-color:#fbbf2459;color:var(--warning-color, #fbbf24);border-radius:3px;padding:0 3px;font-weight:700;box-shadow:0 0 6px #fbbf244d}.commit-msg-tooltip{position:absolute;bottom:calc(100% + 8px);left:0;background:var(--secondary-bg, #1e293b);border:1px solid var(--glass-border, rgba(255, 255, 255, .15));border-radius:.75rem;padding:.75rem 1rem;color:var(--text-primary);font-size:.85rem;font-weight:500;line-height:1.45;width:max-content;max-width:480px;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}.commit-msg-container:hover .commit-msg-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.commit-msg-tooltip:after{content:"";position:absolute;top:100%;left:20px;border-width:6px;border-style:solid;border-color:var(--secondary-bg, #1e293b) transparent transparent transparent}.commit-msg-tooltip:before{content:"";position:absolute;top:100%;left:19px;border-width:7px;border-style:solid;border-color:var(--glass-border, rgba(255, 255, 255, .15)) transparent transparent transparent;z-index:-1}.github-commits-container{padding:.5rem .5rem 1rem;width:100%;margin:0}.github-tabs-bar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--glass-border);margin-bottom:1rem;padding-bottom:.25rem;flex-wrap:wrap;gap:1rem}.github-tabs{display:flex;gap:.5rem;margin-bottom:-1px}.github-tab-btn{background:transparent;border:none;padding:.6rem 1rem;font-size:.9rem;font-weight:600;color:var(--text-secondary);cursor:pointer;border-bottom:3px solid transparent;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.github-tab-btn:hover{color:var(--text-primary)}.github-tab-btn.active{color:var(--accent-color);border-bottom-color:var(--accent-color)}.github-tab-badge{background:var(--accent-color);color:#000;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:12px}.github-tabs-bar-right{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.search-header-input{width:280px;max-width:320px;background:var(--input-bg);border:1px solid var(--glass-border);color:var(--text-primary);padding:.45rem .85rem;border-radius:8px;font-size:.85rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.search-header-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 2px #7c4dff33}.th-header-content{display:flex;flex-direction:column;gap:.35rem;justify-content:flex-start}.th-title-row{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.35rem}.th-header-title{color:var(--text-secondary);transition:color .2s ease,font-weight .2s ease}.th-header-title.is-active{color:var(--accent-color, #5bd1d7);font-weight:800;letter-spacing:.5px}.clear-column-filter-btn{background:#5bd1d726;border:1px solid rgba(91,209,215,.35);color:var(--accent-color, #5bd1d7);font-size:.68rem;font-weight:700;width:16px;height:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;line-height:1;transition:all .15s ease;flex-shrink:0}.clear-column-filter-btn:hover{background:var(--accent-color, #5bd1d7);color:#000;border-color:var(--accent-color, #5bd1d7);transform:scale(1.15)}.header-filter-select{background:var(--input-bg);border:1px solid var(--glass-border);color:var(--text-primary);padding:.3rem .5rem;border-radius:6px;font-size:.76rem;font-weight:500;text-transform:none;outline:none;width:100%;min-width:120px;box-sizing:border-box;cursor:pointer;transition:border-color .2s ease}.header-filter-input{background:var(--input-bg);border:1px solid var(--glass-border);color:var(--text-primary);padding:.3rem .5rem;border-radius:6px;font-size:.76rem;font-weight:500;text-transform:none;outline:none;width:100%;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease}.header-filter-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 2px #7c4dff33}.commits-table-container{border-radius:10px;padding:0;min-height:400px;position:relative}.commits-table{width:100%;border-collapse:collapse;text-align:left}.commits-table th{background:var(--table-header-bg);padding:.6rem .65rem;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:1px solid var(--glass-border);vertical-align:bottom}.commits-table th:first-child,.commits-table td:first-child{padding-left:1rem}.commits-table th:last-child,.commits-table td:last-child{padding-right:1rem}.commits-table td{padding:.45rem .65rem;border-bottom:1px solid var(--glass-border);vertical-align:middle;font-size:.85rem}.commits-table tr:hover{background:var(--row-hover)}.commits-table input[type=checkbox]{appearance:auto;accent-color:var(--accent-color, #7c4dff);width:1.25rem;height:1.25rem;cursor:pointer;border-radius:4px;vertical-align:middle;margin:0;transition:transform .15s ease,filter .15s ease}.commits-table input[type=checkbox]:hover{transform:scale(1.1);filter:brightness(1.2)}.commit-date-cell{white-space:nowrap;font-size:.82rem;color:var(--text-primary);font-weight:500}.commit-time{display:block;font-size:.74rem;color:var(--text-secondary);margin-top:1px}.commit-hash-cell{white-space:nowrap;width:90px}.commit-msg-cell{min-width:220px;max-width:450px}.commit-msg{font-weight:500;color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word;line-height:1.35;cursor:help}.commit-meta{font-size:.8rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5rem}.commit-hash{font-family:monospace;background:var(--badge-hash-bg);border:1px solid var(--badge-hash-border);padding:2px 7px;border-radius:6px;font-size:.75rem;font-weight:700;color:var(--badge-hash-text);text-decoration:none;flex-shrink:0;transition:all .15s ease;display:inline-block;letter-spacing:.3px}.commit-hash:hover{text-decoration:none;background:var(--accent-color, #5bd1d7);border-color:var(--accent-color, #5bd1d7);color:var(--accent-contrast-text, #0f172a);transform:translateY(-1px);box-shadow:0 2px 8px #5bd1d759}.branch-chip{display:inline-flex;align-items:center;gap:.25rem;padding:2px 8px;border-radius:12px;background:var(--input-bg);border:1px solid var(--glass-border);font-size:.78rem;color:var(--text-secondary);white-space:nowrap}.no-branch{color:var(--text-secondary);opacity:.4;font-size:.85rem}.author-chip{display:inline-flex;align-items:center;gap:.4rem;padding:2px 8px;border-radius:14px;background:var(--input-bg);font-size:.8rem;white-space:nowrap}.author-chip.unmapped{background:var(--warning-bg);color:var(--warning-color);border:1px solid var(--warning-border)}.batch-action-bar{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background:var(--secondary-bg);border:1px solid var(--glass-border);padding:1rem 2rem;border-radius:50px;box-shadow:0 10px 30px #0006;display:flex;align-items:center;gap:1.5rem;z-index:1000;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translate(-50%,100%);opacity:0}to{transform:translate(-50%);opacity:1}}.btn-primary{background:var(--accent-color);color:#000;border:none;padding:.6rem 1.25rem;border-radius:25px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-secondary{background:var(--input-bg);color:var(--text-primary);border:1px solid var(--glass-border);padding:.6rem 1.25rem;border-radius:25px;font-weight:600;cursor:pointer}.btn-secondary:hover{background:var(--row-hover)}.commit-count-link{background:var(--badge-bg, rgba(255, 255, 255, .08));color:inherit;border:none;padding:2px 8px;border-radius:4px;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease}.commit-count-link:hover{background:var(--row-hover);color:var(--accent-color, #5bd1d7);text-decoration:underline}.commit-count-link:focus-visible{outline:2px solid var(--accent-color, #5bd1d7);outline-offset:2px}
