.sidebar{width:16rem;height:100svh;background:#0d0e20;display:flex;flex-direction:column}.sidebar-logo{height:5rem;display:flex;align-items:center;gap:.75rem;padding:0 2rem;color:var(--white);font-weight:700;font-size:1.25rem}.sidebar-logo-icon{width:3rem;height:3rem;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:var(--white);font-size:.875rem}.sidebar-logo-icon svg{width:100%;height:100%;fill:var(--white)}.sidebar-nav{flex:1;padding:1.5rem 1rem 5rem;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;min-height:0}.nav-item{display:flex;gap:1rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;border-radius:var(--radius-lg);transition:all .2s ease}.nav-item:hover{background:var(--dark-700);color:var(--white);transition:all .2s ease}.nav-item.active{background:var(--brand-purple);color:var(--white)}.nav-item.active svg{stroke:var(--white)}.nav-item i{width:1.25rem;text-align:center}.nav-section-title{padding:1.5rem 1rem .5rem;font-size:.75rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em}.quick-link{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:var(--radius-lg);opacity:.7;transition:all .2s ease}.quick-link:hover{background:var(--dark-700);color:var(--white);opacity:1}.quick-link i{width:1.25rem;text-align:center}.sidebar-logo-text{display:flex;flex-direction:column;line-height:1;font-size:1.25rem;font-weight:700;color:var(--white)}.sidebar-logo-role{font-size:.75rem;font-weight:400;color:var(--gray-500)}.sidebar-footer{padding:.5rem}.mobile-nav-footer{position:absolute;bottom:0;left:0;right:0;padding:.5rem;background:var(--dark-800);z-index:1}.user-footer-trigger{display:flex;flex-direction:row;align-items:center;gap:.5rem;padding:.8rem;border-radius:var(--radius-lg);transition:background .3s ease}.user-info-text{text-align:left;line-height:1.3}.user-footer-trigger:hover{background:var(--dark-700)}.user-menu-btn{width:100%;display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:var(--radius-lg);background:transparent;border:none;color:inherit;cursor:pointer;transition:background .2s ease;text-align:left}.user-menu-btn:hover{background:var(--dark-700)}.user-menu-btn:focus-visible{outline:2px solid var(--brand-purple);outline-offset:2px}.user-avatar{width:2rem;height:2rem;border-radius:var(--radius-full);border:2px solid var(--dark-600);flex-shrink:0}.user-meta{display:flex;flex-direction:column;min-width:0}.user-name{font-size:.875rem;font-weight:500;color:var(--white);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;max-height:2.625rem}.user-role{font-size:.75rem;color:var(--gray-500)}.user-menu-icon{margin-left:auto;color:var(--gray-400);transition:color .2s ease;flex-shrink:0}.user-menu-btn:hover .user-menu-icon{color:var(--white)}.user-menu-icon svg{width:1.25rem;height:1.25rem;stroke-width:2.5}.logout-btn:hover{background:#ef444433;border-color:#ef444466}.popover{position:fixed;top:5rem;right:2rem;width:20rem;background:var(--dark-700);border:1px solid var(--dark-600);border-radius:var(--radius);padding:1.5rem;box-shadow:0 10px 15px -3px #0000004d;z-index:20}.popover::backdrop{background:transparent}.popover h4{color:var(--white);font-weight:600;font-size:1.125rem;margin-bottom:1rem}.mobile-nav{position:fixed;top:0;left:0;width:16rem;height:100lvh;bottom:0;margin:0;padding:0;background:var(--dark-800);border:none;border-right:1px solid var(--dark-700);color:var(--gray-300);font-family:var(--font-sans);display:flex;flex-direction:column}.close-btn{position:absolute;top:.5rem;right:.5rem;background:transparent;border:none;color:var(--gray-400);font-size:1.25rem;cursor:pointer}.close-btn:hover{color:var(--white)}@keyframes slideInBounce{0%{transform:translate(-100%);opacity:.5}65%{transform:translate(10px);opacity:1}85%{transform:translate(-5px)}to{transform:translate(0);opacity:1}}.mobile-nav[popover]{transition:transform .5s ease,display .2s allow-discrete,overlay .2s allow-discrete;transform:translate(-100%)}.mobile-nav[popover]:popover-open{opacity:1;transform:translate(0);animation:slideInBounce .5s ease-out}.settings-dialog{position-anchor:--user-footer;position-area:top center;margin-bottom:.5rem;max-height:20rem;width:100%;background:var(--dark-700);border:1px solid var(--dark-600);border-radius:var(--radius);box-shadow:0 10px 15px -3px #0000004d;z-index:30}#mobile-user-setting.settings-dialog{position-anchor:--mobile-user-footer}.settings-dialog-content{flex:1;display:flex;flex-direction:column;justify-content:flex-start;padding:.5rem}.settings-dialog-content .settings-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem;text-align:left;color:var(--white);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s ease}.settings-dialog-content .settings-btn:hover{background:var(--dark-600);border-radius:var(--radius-sm);transition:background .2s ease}.logout-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:var(--radius-sm);color:red;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s ease}.settings-dialog[popover]{transition:opacity .2s,transform .2s;opacity:0;transform:translateY(3rem);transition:opacity .2s ease,transform .2s ease,display .2s allow-discrete}.settings-dialog[popover]:popover-open{opacity:1;transform:none}@starting-style{.settings-dialog[popover]:popover-open{opacity:0;transform:translateY(1rem)}}.quick-link{position:relative}.quick-link-label{flex:1}.quick-link-remove{opacity:0;color:var(--gray-500);padding:.125rem .25rem;border-radius:var(--radius-sm);font-size:.75rem;transition:opacity .15s ease,color .15s ease;flex-shrink:0}.quick-link:hover .quick-link-remove{opacity:1}.quick-link-remove:hover{color:var(--red)}.quick-link-add{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;font-size:.8125rem;font-weight:500;color:var(--gray-500);border-radius:var(--radius-lg);transition:all .2s ease}.quick-link-add:hover{background:var(--dark-700);color:var(--white)}.quick-link-add i{width:1.25rem;text-align:center;font-size:.75rem}@media(max-width:767px){.sidebar{display:none}}@media(min-width:640px){.clock{display:flex}}@media(min-width:768px){.mobile-menu-btn{display:none}}.header{height:5rem;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;border-bottom:1px solid var(--dark-700);background:var(--bg-content);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;border-radius:35px 0 0}.header h1{font-size:1.5rem;font-weight:700;letter-spacing:-.025em}.header-right{display:flex;align-items:center;gap:1.5rem}.clock{display:none;flex-direction:column;align-items:flex-end}.clock-time{font-size:1.125rem;font-family:var(--font-mono);font-weight:700;color:var(--white);line-height:1}.clock-date{font-size:.75rem;color:var(--gray-500);text-transform:uppercase}.notification-btn{position:relative}.mobile-menu-btn{color:var(--gray-400);transition:color .2s ease}.mobile-menu-btn:hover{color:var(--white)}.mobile-menu-btn i{font-size:1.25rem}@media(max-width:767px){.header{border-radius:0}.header h1{font-size:1.25rem}.clock{display:none}}#overview .card:nth-child(1){grid-column:1 / span 2;grid-row:1 / span 2}#overview .card:nth-child(2){grid-column:3 / span 3;grid-row:1 / span 2}#overview .card:nth-child(3){grid-column:1 / span 3;grid-row:3 / span 3}.card-title{font-size:clamp(.838rem,.775rem + .5vw,1.25rem);font-weight:600;color:var(--white);display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;text-wrap:balance}.card-title svg{width:45px;height:45px;stroke:var(--brand-purple);display:block}.card-row{display:flex;justify-content:space-between;align-items:center}.hover-purple-faint:hover{border-color:#8b5cf64d}.badge{display:flex;align-items:center;gap:.25rem;padding:.225rem .5rem;border-radius:var(--radius-sm);font-size:clamp(.5rem,.5rem + .15vw,.625rem);font-weight:700;cursor:default}.badge.red{background:#562b9b;color:var(--white)}.badge.blue{background:#321f88;color:var(--white)}.badge.yellow{background:#710ba1;color:var(--white)}.badges{display:flex;gap:.5rem;margin-top:.5rem}.stats-row{display:flex;gap:.75rem;margin-bottom:1rem}.stat-box{display:flex;justify-content:center;align-items:center;gap:.75rem;flex:1;background:#2e3047;border-radius:var(--radius-lg);padding:.75rem;text-align:center}.stat-label{display:block;font-size:clamp(.5rem,.5rem + .15vw,.625rem);color:var(--gray-400);text-transform:uppercase}.stat-value{color:var(--white);font-weight:500;font-size:clamp(.8rem,.5rem + .15vw,.625rem)}.avatar{width:4rem;height:4rem;border-radius:var(--radius-sm);background:linear-gradient(to bottom right,var(--brand-purple),var(--brand-blue));display:flex;align-items:center;justify-content:center;color:var(--white);font-weight:700;font-size:clamp(.75rem,.675rem + .35vw,1rem);flex-shrink:0}.class-day{background:var(--brand-purple);padding:.225rem .8rem;color:var(--white);border-radius:var(--radius-sm);font-size:clamp(1rem,1rem,1rem);text-transform:uppercase;font-weight:700}.instructor{background:#2e3047;border-radius:1rem;padding:1rem;display:flex;align-items:center;gap:1rem}.instructor-name{color:var(--white);font-weight:600;font-size:clamp(1rem,.6rem + .2vw,.75rem)}.instructor-code{font-size:clamp(.8rem,.5rem + .15vw,.625rem);color:var(--brand-purple);text-transform:uppercase;font-weight:500}.instructor-subject{font-size:clamp(.5rem,1rem + .15vw,.9rem);color:var(--gray-400);font-weight:500}.event-grid{display:flex;flex-direction:column;gap:1rem}.event-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#2e3047;border-radius:20px;justify-content:left;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:.5s ease-in-out}.event-item:hover{background:#3a3d5a}.event-title{color:var(--white);font-weight:600;font-size:clamp(.75rem,.7rem + .35vw,.938rem)}.card.gradient-fund{background:linear-gradient(325deg,#330b75,#9200fa);position:relative;overflow:hidden}.fund-bg{position:absolute;bottom:-50px;right:-50px;width:480px;opacity:.1;color:var(--white);pointer-events:none}.balance{font-family:Mine;font-size:clamp(2rem,1.25rem + 1.5vw,2.5rem);font-weight:700;color:var(--white);display:flex;align-items:center;line-height:1;margin-bottom:1rem}.currency{font-size:clamp(1rem,.85rem + 1vw,1.5rem);margin-right:.25rem}.activity-list{display:flex;flex-direction:column;gap:1rem}.activity-item{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.activity-left{display:flex;align-items:center;gap:.75rem;flex:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f9fafb1a;padding:.75rem;border-radius:var(--radius-lg)}.activity-icon{width:2rem;height:2rem;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:clamp(.5rem,.5rem + .15vw,.625rem);flex-shrink:0}.activity-icon.green{color:var(--green)}.activity-info{display:flex;flex-direction:row;justify-content:space-between;align-items:center;flex:1;gap:.25rem}.activity-p{display:flex;flex-direction:row;align-items:center;gap:.5rem}.activity-rec{text-align:right}.positive{color:var(--green);font-weight:500;font-size:clamp(.625rem,.6rem + .2vw,.75rem)}.negative{color:var(--red);font-weight:500;font-size:clamp(.625rem,.6rem + .2vw,.75rem)}.event-date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:56px;height:56px;background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border)}.event-date .month{font-size:clamp(.5rem,.5rem + .125vw,.625rem);font-weight:600;text-transform:uppercase;color:var(--muted);line-height:1;letter-spacing:.05em}.event-date .day{font-size:clamp(.875rem,.8rem + .5vw,1.125rem);font-weight:700;color:var(--fg);line-height:1}.event-item{display:flex;gap:1rem;align-items:flex-start}@media(max-width:1024px){#overview{grid-template-columns:1fr 1fr}#overview .card:nth-child(1){grid-column:1 / span 1;grid-row:auto}#overview .card:nth-child(2){grid-column:2 / span 1;grid-row:auto}#overview .card:nth-child(3){grid-column:1 / span 2;grid-row:auto}}@media(max-width:640px){#overview{grid-template-columns:1fr}#overview .card:nth-child(1),#overview .card:nth-child(2),#overview .card:nth-child(3){grid-column:1 / span 1;grid-row:auto}}@media(max-width:768px){.stats-row{flex-direction:column}.activity-p{flex-direction:column;align-items:flex-start;gap:0;line-height:1.3;font-size:clamp(.8rem,.6rem + .2vw,.75rem)}.fund-bg{width:400px}.mobile-center{justify-content:center}}.table-wrapper{position:relative;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;border-radius:.5rem}.period-background{position:absolute;top:0;left:120px;right:0;bottom:0;z-index:0;display:flex}.period-band{height:100%}.period-band.period-morning{flex:22;background-color:#7c3aed26}.period-band.period-afternoon{flex:24;background-color:#3a247645}.period-band.period-evening{flex:18;background-color:#4f46e526}.schedule-table{position:relative;z-index:1;width:100%;border-collapse:separate;border-spacing:0;font-size:.75rem;min-width:1200px;table-layout:fixed;border-radius:.5rem}.schedule-table thead tr:first-child th:first-child{border-radius:.5rem 0 0}.schedule-table thead tr:first-child th:last-child{border-radius:0 .5rem 0 0}.schedule-table tbody tr:last-child td:first-child{border-radius:0 0 0 .5rem}.schedule-table tbody tr:last-child td:last-child{border-radius:0 0 .5rem}.schedule-table th{padding:.5rem;border:none;text-align:left;vertical-align:top}.schedule-table td{border:none;text-align:left;vertical-align:top}.schedule-table th{color:var(--white);font-weight:600;text-transform:uppercase;font-size:.7rem;letter-spacing:.05em}.schedule-table th:first-child{width:120px;min-width:120px}.schedule-table thead tr:nth-child(2) th{font-weight:400;border-bottom:1px solid rgba(255,255,255,.08)}.schedule-table tbody tr td,.schedule-table tbody tr th{border-bottom:1px solid rgba(255,255,255,.08)}.schedule-table td{color:var(--gray-300)}.schedule-table .day-label{font-weight:700;font-size:13px;color:var(--white);height:90px;width:120px;min-width:120px;white-space:nowrap;text-align:center;vertical-align:middle}.schedule-table tbody tr:nth-child(1) .day-label{background:#46288da6}.schedule-table tbody tr:nth-child(2) .day-label{background:#3e217eb3}.schedule-table tbody tr:nth-child(3) .day-label{background:#361b6fbf}.schedule-table tbody tr:nth-child(4) .day-label{background:#2c1460cc}.schedule-table tbody tr:nth-child(5) .day-label{background:#220e50d9}.schedule-table tbody tr:nth-child(6) .day-label{background:#180840e6}.schedule-table tbody tr:nth-child(7) .day-label{background:#0e0430f2}.period-morning{color:var(--brand-purple)}.period-afternoon,.period-evening{color:var(--brand-blue)}.class-entry{width:100%;height:90px;padding:.4rem;background:#3e237ec5;border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:.1rem;cursor:pointer;transition:background .15s ease,box-shadow .15s ease;box-sizing:border-box;box-shadow:-6px 8px 2px #0000001a}.class-entry:hover{background:#4b2d96d9;box-shadow:-6px 8px 2px #0003}.class-entry-header{display:flex;align-items:center;justify-content:space-between}.class-code{font-weight:700;color:var(--brand-purple);font-size:.9rem;text-transform:uppercase}.class-name{color:var(--white);font-size:.7rem;font-weight:500}.class-time{color:var(--gray-400);font-size:.7rem}.class-room{color:var(--gray-500);font-size:.65rem}.overlap-error{background:#ef44441f;border:1px solid rgba(239,68,68,.3);color:var(--red);font-size:.8rem;padding:.5rem .75rem;border-radius:var(--radius-sm);margin:0}.schedule-controls{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.funds-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.125rem;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:600;cursor:pointer;transition:background .2s ease,border-color .2s ease;border:none;color:var(--white)}#schedule .funds-btn.add{color:var(--green)}.view-toggle{display:flex;gap:.25rem;background:var(--dark-800);border-radius:var(--radius-sm);padding:.2rem}.toggle-btn{padding:.4rem .8rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;color:var(--gray-400);transition:background .2s ease,color .2s ease}.toggle-btn.active{background:var(--brand-purple);color:var(--white)}.toggle-btn:not(.active):hover{color:var(--white)}.subject-list-wrapper{overflow-x:auto;border-radius:.5rem}.subject-list-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.8rem}.subject-list-table th{text-align:left;padding:.75rem 1rem;color:var(--white);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(255,255,255,.08);background:#46288d80}.subject-list-table td{padding:.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.08);color:var(--gray-300)}.subject-list-table tbody tr{transition:background .15s ease}.subject-list-table tbody tr:hover{background:#8b5cf61a}.subject-code-cell{font-weight:700;color:var(--brand-purple);text-transform:uppercase}.mobile-day-schedule{max-height:calc(100vh - 120px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.mobile-day-tabs{display:flex;justify-content:space-around;gap:.25rem;padding:.75rem .5rem;overflow-x:hidden;position:sticky;top:-1px;z-index:5;width:100%;background:var(--bg-content);box-shadow:0 4px 4px #0000001a}.mobile-day-tab{flex:1;min-width:32px;width:32px;height:35px;padding:0;font-size:.95rem;font-weight:600;color:var(--gray-400);background:transparent;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;transition:background .2s,color .2s}.mobile-day-tab.active{background:var(--brand-purple);border-radius:var(--radius-sm);color:var(--white)}.mobile-day-tab:not(.active):hover{color:var(--white);background:#8b5cf626}.mobile-time-grid{display:grid;grid-template-columns:45px 1fr;gap:1px}.mobile-time-slot{display:flex;align-items:flex-start;justify-content:center;padding:.25rem .5rem;background:transparent;border-bottom:none;position:relative}.mobile-time-slot.hour:after{content:"";position:absolute;right:-100vw;width:100vw;height:1px;background:var(--dark-600);z-index:1}.mobile-time-slot.hour{min-height:48px;align-items:center}.mobile-time-value{font-size:.75rem;color:#fff;font-weight:500;line-height:1;padding-top:.1rem}.mobile-class-entry{background:#513b84;border-radius:12px;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.25rem;overflow:hidden;margin:.375rem .5rem;cursor:default;box-shadow:-3px -3px 8px #00000026;z-index:2;animation:slideleft .3s ease forwards}@keyframes slideleft{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.mobile-class-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.mobile-class-code{font-weight:700;font-size:1rem;color:var(--white);text-transform:uppercase}.mobile-class-time{font-size:.65rem;color:var(--gray-400);white-space:nowrap;flex-shrink:0}.mobile-class-name{font-size:.75rem;color:var(--gray-300);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-class-room{font-size:.65rem;color:var(--gray-500)}@media(max-width:768px){.table-wrapper,.schedule-table,.period-background,.week{display:none}.schedule-controls{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.schedule-controls{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.calendar-header h2{font-size:1.25rem;font-weight:600}.calendar-nav{display:flex;gap:.5rem}.calendar-nav button{background:var(--dark-600);color:var(--white);padding:.375rem .75rem;border-radius:var(--radius-sm);font-size:.75rem;transition:background .2s ease}.calendar-nav button:hover{background:var(--dark-500)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:.25rem}.calendar-weekdays span{text-align:center;font-size:.7rem;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.05em;padding:.5rem 0}.calendar-wrapper{width:100%;max-width:100%;overflow:hidden;box-sizing:border-box}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--dark-600);border-radius:var(--radius);overflow:hidden;width:100%;max-width:100%}.calendar-day{min-height:90px;min-width:0;padding:.375rem;border-right:1px solid var(--dark-600);border-bottom:1px solid var(--dark-600);background:var(--dark-800);cursor:pointer;transition:background .15s ease}.calendar-day:nth-child(7n){border-right:none}.calendar-grid .calendar-day:nth-last-child(-n+7){border-bottom:none}.calendar-day:hover{background:var(--dark-700)}.calendar-day.muted{opacity:.35}.calendar-day.today{background:#8b5cf61f}.calendar-day.today .day-number{background:var(--brand-purple);color:var(--white);border-radius:var(--radius-full);width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem}.day-number{font-size:.75rem;font-weight:600;color:var(--gray-300);margin-bottom:.25rem;display:inline-block}.calendar-day.muted .day-number{color:var(--gray-500)}.event-pill{font-size:.6rem;padding:.125rem .375rem;border-radius:var(--radius-sm);color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;margin-top:2px;line-height:1.4;transition:opacity .15s ease;max-width:100%}.event-pill:hover{opacity:.8}.event-more{font-size:.6rem;color:var(--gray-400);padding:.125rem .375rem;cursor:pointer}.event-more:hover{color:var(--white)}.color-options{display:flex;gap:.5rem;flex-wrap:wrap}.color-option{width:1.5rem;height:1.5rem;border-radius:var(--radius-full);border:2px solid transparent;cursor:pointer;transition:border-color .15s ease,transform .15s ease}.color-option:hover{transform:scale(1.15)}.color-option.selected{border-color:var(--white);transform:scale(1.15)}.event-modal{max-width:420px}.event-modal-content{display:flex;flex-direction:column}.event-modal-content h3{font-size:1rem;font-weight:600;margin-bottom:1rem}.event-form{display:flex;flex-direction:column;gap:.75rem}.upcoming-strip{margin-bottom:1rem;width:100%}.upcoming-strip-items{display:flex;flex-direction:column;overflow-y:auto;scroll-snap-type:y mandatory;gap:.75rem;max-height:220px;scrollbar-width:none}.upcoming-strip-items::-webkit-scrollbar{display:none}.upcoming-strip-item{display:flex;align-items:center;gap:.625rem;border-radius:var(--radius);padding:.625rem .75rem;scroll-snap-align:start;width:100%;flex-shrink:0;box-sizing:border-box}.upcoming-strip-info{min-width:0;overflow:hidden}.upcoming-strip-title{color:var(--white);font-weight:600;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.upcoming-strip-time{color:var(--gray-400);font-size:.7rem}.event-date{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--white)}.event-date .month{font-size:.7rem;font-weight:600;text-transform:uppercase;color:var(--white);line-height:1;letter-spacing:.05em}.event-date .day{font-size:1.5rem;font-weight:700;color:var(--white);line-height:1}.event-date.compact{min-width:44px;height:44px;padding:.25rem .375rem;color:var(--white)}.event-date.compact .month{font-size:.6rem}.event-date.compact .day{font-size:1.125rem}.pending-approvals{max-width:800px}.pending-subtitle{color:var(--gray-400);font-size:.875rem;margin-bottom:1.5rem}.pending-error{color:var(--red);font-size:.875rem}.pending-list{display:flex;flex-direction:column;gap:.75rem}.pending-info{display:flex;flex-direction:column;gap:.25rem}.pending-name{color:var(--white);font-weight:600;font-size:.9375rem}.pending-details{display:flex;gap:.75rem;font-size:.8125rem}.pending-id{color:var(--gray-400)}.pending-type{color:var(--brand-purple);font-weight:500}.pending-actions{display:flex;gap:.5rem}.pending-btn{padding:.375rem .75rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;cursor:pointer;transition:background .2s ease;border:none;color:var(--white)}.pending-btn.approve-admin{background:var(--brand-purple)}.pending-btn.approve-admin:hover{background:var(--brand-blue)}.pending-btn.approve-user{background:#22c55e33;color:var(--green)}.pending-btn.approve-user:hover{background:#22c55e4d}.pending-btn.reject{background:#ef444426;color:var(--red)}.pending-btn.reject:hover{background:#ef444440}.funds-balance{font-family:Mine;font-size:3rem;font-weight:700;color:var(--white);display:flex;align-items:center;line-height:1;margin-bottom:1rem}.funds-balance .currency{font-size:1.875rem;margin-right:.25rem}.funds-actions{display:flex;gap:.75rem}.funds-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.125rem;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:600;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease;border:none;color:var(--white)}.add-btn{color:var(--white);background:#a212ef}.add-btn:hover{background:oklch(from #b937ff l c h / .85);color:var(--white)}.deduct-btn{color:var(--white);background:#42364f94}.deduct-btn:hover{background:oklch(from rgba(66,54,79,.814) l c h / .85)}.funds-btn svg{flex-shrink:0}.funds-tx-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.funds-tx-header h3{margin-bottom:0}.funds-view-all-link{font-size:.75rem;color:var(--brand-purple);font-weight:500;transition:color .15s ease;background:none;border:none;cursor:pointer}.funds-view-all-link:hover{color:var(--brand-blue)}.funds-tx-list{display:flex;flex-direction:column;gap:.5rem}.funds-tx-item{display:flex;align-items:center;padding:.75rem 1rem;background:#150f1d28;border-radius:var(--radius-sm);gap:.75rem;transition:background .15s ease}.funds-tx-item:hover{background:#52446440}.funds-tx-icon{width:3rem;height:3rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#33284146}.funds-tx-icon.add,.funds-tx-icon.remove{color:var(--gray-400)}.funds-tx-details{flex:1;min-width:0}.funds-tx-label{color:var(--white);font-size:.875rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.funds-tx-date{color:var(--gray-400);font-size:.75rem}.funds-tx-amount{font-weight:600;font-size:.875rem;flex-shrink:0;white-space:nowrap}.funds-tx-amount.add{color:var(--green)}.funds-tx-amount.remove{color:var(--red)}.funds-tx-empty{color:var(--gray-500);text-align:center;padding:2rem;font-size:.875rem}.funds-modal{max-width:420px}.funds-modal-content{display:flex;flex-direction:column}.funds-modal-content h3{font-size:1rem;font-weight:600;margin-bottom:1rem;text-wrap:balance}.funds-form{display:flex;flex-direction:column;gap:.75rem}.funds-modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}.funds-modal-actions .btn-primary.green{background:var(--green)}.funds-modal-actions .btn-primary.green:hover{background:oklch(from var(--green) l c h / .85)}.funds-modal-actions .btn-primary.red{background:var(--red)}.funds-modal-actions .btn-primary.red:hover{background:oklch(from var(--red) l c h / .85)}.funds-modal-actions .btn-secondary{background:var(--dark-600);color:var(--gray-300);padding:.5rem 1.25rem;border-radius:var(--radius-sm);font-size:.8rem;transition:background .2s ease}.funds-modal-actions .btn-secondary:hover{background:var(--dark-500)}.funds-history-modal{max-width:500px}.funds-history-list{display:flex;flex-direction:column;gap:.5rem;max-height:60vh;overflow-y:auto}.card-title svg{width:32px;height:32px}.login-wrapper{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;width:100%;background:#0d0e20;padding:2rem}.result-card{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#0d0e20,#1a1c2c);border-radius:var(--radius);max-width:500px;text-align:center;padding:2rem}.login-card{display:flex;flex-direction:row;max-width:960px;width:100%;background:linear-gradient(135deg,#0d0e20,#1a1c2c);border-radius:var(--radius);box-shadow:0 20px 25px -5px #0006;overflow:hidden}.login-left-panel{flex:1;min-height:500px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;min-width:0}.panel-header{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;padding:1.5rem}.panel-header h2{position:absolute;top:20px;color:var(--white);font-size:1rem;font-weight:300;padding:7px 1.25rem;border-radius:30px;border:1px solid rgba(255,255,255,.216);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f9fafb1a;display:inline-block;animation:slideUpBounce .6s cubic-bezier(.25,.46,.45,.94) 3.5s backwards;z-index:3}@keyframes slideUpBounce{0%{transform:translateY(100%);opacity:0}40%{transform:translateY(-10px);opacity:1}80%{transform:translateY(2px)}to{transform:translateY(0)}}.login-left-hero{position:relative;z-index:5;padding:1.5rem}.login-left-hero-text{color:var(--white);font-size:.875rem;font-weight:500;opacity:.6}.shape-3{position:absolute;bottom:-130px;left:-100px;filter:blur(60px);width:150%;z-index:1;animation:slideUp 1s ease-out 1.3s backwards}.shape-logo{width:550px;align-self:center;z-index:2;animation:slideUp 1s ease-out 1s backwards}.shape-2{position:absolute;bottom:-220px;left:-150px;filter:blur(50px);width:150%;z-index:3;animation:slideUp 1s ease-out .8s backwards}.shape-1{position:absolute;bottom:-250px;left:-80px;filter:blur(20px);width:130%;z-index:4;mix-blend-mode:plus-lighter;animation:slideUp 1s ease-out .5s backwards}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}50%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.login-right-panel{flex:1;display:flex;align-items:center;justify-content:center;position:relative;padding:1rem;min-width:0}.login-right-content{display:flex;flex-direction:column;width:100%;max-width:340px}.login-title{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.login-subtitle{color:var(--gray-400);font-size:.875rem;margin-bottom:1.5rem}.login-form{display:flex;flex-direction:column;gap:1rem}.login-form-section{background:var(--dark-700);border:1px solid var(--dark-600);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.75rem}.login-field{display:flex;flex-direction:column;gap:.375rem}.login-field label{font-size:.75rem;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.05em}.login-field input{width:100%;background:var(--dark-700);border:1px solid var(--dark-600);border-radius:var(--radius-sm);padding:.625rem .875rem;color:var(--white);font-family:var(--font-sans);font-size:.875rem;outline:none;transition:border-color .2s ease}.login-field input:focus{border-color:var(--brand-purple)}.login-field input::placeholder{color:var(--gray-500)}.login-field-row{display:flex;gap:.75rem}.login-field-row .login-field{flex:1;min-width:0}.login-field select{background:var(--dark-700);border:1px solid var(--dark-600);border-radius:var(--radius-sm);padding:.625rem 2rem .625rem .875rem;color:var(--white);font-family:var(--font-sans);font-size:.875rem;outline:none;transition:border-color .2s ease;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239ca3af' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.login-field select:focus{border-color:var(--brand-purple)}.login-btn{background:var(--brand-purple);color:var(--white);padding:.625rem;border-radius:var(--radius-sm);font-weight:600;font-size:.875rem;cursor:pointer;border:none;transition:background .2s ease;margin-top:.25rem;width:100%;display:flex;align-items:center;justify-content:center}.login-btn:hover{background:var(--brand-blue)}.login-toggle{text-align:center;color:var(--gray-400);font-size:.8125rem;margin-top:1.25rem}.login-toggle-btn{color:var(--brand-purple);font-weight:600;cursor:pointer;background:none;border:none;font-size:.8125rem}.login-toggle-btn:hover{color:var(--brand-blue)}.login-hint{text-align:center;color:var(--gray-500);font-size:.75rem;margin-top:1.5rem}.login-hint strong{color:var(--gray-400)}.field-error{color:#ef4444;font-size:.75rem;margin-top:.25rem;display:block}.login-duplicate-warning{background:#fbbf241f;border:1px solid rgba(251,191,36,.3);border-radius:8px;padding:.75rem 1rem;margin-bottom:.5rem;color:#fbbf24;font-size:.8rem;line-height:1.5}.login-duplicate-warning p{margin:0 0 .25rem}.login-duplicate-warning p:last-child{margin-bottom:0}.login-duplicate-warning strong{color:#fcd34d}.login-step-actions{display:flex;gap:.75rem}.login-step-actions .login-btn-secondary{flex:0 0 auto;background:transparent;border:1px solid var(--dark-600);color:var(--gray-400);padding:.625rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-sans);cursor:pointer;transition:border-color .2s ease,color .2s ease}.login-step-actions .login-btn-secondary:hover{border-color:var(--gray-400);color:var(--white)}.login-step-actions .login-btn{flex:1}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.login-error{position:absolute;top:20px;left:50%;transform:translate(-50%);background:#ef444426;border:1px solid rgba(239,68,68,.3);color:var(--red);padding:.625rem .875rem;border-radius:var(--radius-sm);font-size:.8125rem;white-space:nowrap;z-index:1000;animation:slideDown .25s ease-out}@media(prefers-reduced-motion:reduce){.panel-header h2,.shape-3,.shape-logo,.shape-2,.shape-1{animation:none;opacity:1;transform:none}.login-error{animation:none;opacity:1;transform:translate(-50%) translateY(0)}}@media(max-width:428px){.login-wrapper{padding:0;justify-content:flex-start;align-items:flex-start}.login-card{flex-direction:column;border-radius:0;background:#fff0;box-shadow:none}.login-left-panel{min-height:220px;border-bottom-left-radius:30px;border-bottom-right-radius:30px;border:1px solid rgba(231,202,255,.233);border-bottom:none}.shape-logo{width:330px}.shape-3{position:absolute;bottom:-170px;left:-100px;filter:blur(60px);width:150%}.shape-2{position:absolute;bottom:-250px;left:-150px;filter:blur(50px);width:150%}.shape-1{position:absolute;bottom:-23 0px;left:-40px;filter:blur(20px);width:120%}.login-right-panel{padding:1rem}.login-right-content h1,.login-right-content p{text-align:center}}.skeleton-block{background:var(--dark-700);position:relative;overflow:hidden}.skeleton-block:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent);animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.skeleton-block:after{animation:none}}@font-face{font-family:OpenSans;src:url(/fonts/OpenSans-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url(/fonts/Poppins-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Mine;src:url(/fonts/mac_Minecraft.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--dark-900: #1a1c23;--dark-800: #242631;--dark-700: #2d303e;--dark-600: #363a47;--dark-500: #4a4e5e;--brand-purple: #8b5cf6;--brand-blue: #6366f1;--white: #ffffff;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--red: #ef4444;--green: #22c55e;--font-sans: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--radius-sm: .375rem;--radius-lg: .75rem;--radius-full: 9999px;--radius: 1rem;--bg-content: #1b1c31;--brand-purple-light: #edc8f7}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-sans);background:var(--dark-900);color:var(--gray-300);height:100lvh;display:flex}::selection{background:var(--brand-purple);color:var(--white)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}img{display:block;max-width:100%}h1,h2,h3,h4{color:var(--white);font-weight:600}#root{flex:1;width:100%}.nav-item svg{width:1.2rem;height:1.2rem;fill:var(--gray-400);stroke:var(--gray-400);transition:fill .2s ease-in-out}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--dark-900)}::-webkit-scrollbar-thumb{background:var(--dark-600);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--dark-500)}@media(max-width:768px){*::-webkit-scrollbar{display:none}*{scrollbar-width:none;-ms-overflow-style:none}}@media(max-width:768px){*{-webkit-tap-highlight-color:transparent}}@keyframes fadeIn{0%{opacity:0;transform:translateY(30px)}50%{opacity:1;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}dialog{opacity:0;scale:.95;transition:opacity .2s ease,scale .2s ease,display .2s allow-discrete,overlay .2s allow-discrete}dialog[open]{opacity:1;scale:1}@starting-style{dialog[open]{opacity:0;scale:.95}}dialog::backdrop{opacity:0;transition:opacity .2s ease,display .2s allow-discrete,overlay .2s allow-discrete}dialog[open]::backdrop{opacity:1}@starting-style{dialog[open]::backdrop{opacity:0}}.flex{display:flex}.flex-1{flex:1}.muted{color:var(--gray-400)}.fade-in{animation:fadeIn .5s cubic-bezier(.215,.61,.355,1)}.space-between-column{display:flex;flex-direction:column;justify-content:space-between}.all-caps-text{text-transform:uppercase}.app-layout{display:flex;width:100%;height:100vh}main{flex:1;display:flex;flex-direction:column;height:100vh;background:#0d0e20}.panel{flex:1;display:flex;flex-direction:column;overflow:hidden;border-radius:0 0 0 35px}.panel-section{display:flex;flex-direction:column;padding:2px 8px}.content{flex:1;overflow-y:auto;padding:2rem;background:var(--bg-content)}.view{display:grid;grid-template-columns:repeat(5,1fr);gap:25px}.card{background:#28293d;border-radius:var(--radius);padding:1.5rem;transition:border-color .3s ease;box-shadow:0 10px 15px -3px #0000004d}@media(prefers-reduced-motion:reduce){.fade-in{animation:none;opacity:1;transform:none}}.auth-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100%;background:#0d0e20}@media(prefers-reduced-motion:reduce){.auth-loading .dotlottie-container{display:none}.auth-loading:after{content:"Loading...";color:var(--gray-400);font-size:.875rem}}.modal-base{margin:auto;border:none;background:var(--dark-700);border:1px solid var(--dark-600);border-radius:var(--radius);padding:1.5rem;width:100%;max-width:420px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0006;color:var(--white);font-family:var(--font-sans)}.modal-base::backdrop{background:#0009}.btn-primary{background:var(--brand-purple);color:var(--white)}.btn-primary:hover{background:var(--brand-blue)}.btn-secondary{background:var(--dark-600);color:var(--white)}.btn-secondary:hover{background:var(--dark-500)}.btn-danger{background:var(--red);color:var(--white)}.btn-danger:hover{opacity:.85}.modal-actions{display:flex;gap:.5rem;margin-top:.5rem}.modal-actions button{flex:1;padding:.5rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;transition:background .2s ease}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group label{font-size:.7rem;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.05em}.form-group input,.form-group textarea,.form-group select{background:var(--dark-800);border:1px solid var(--dark-600);border-radius:var(--radius-sm);padding:.5rem .625rem;color:var(--white);font-family:var(--font-sans);font-size:.8rem;outline:none;transition:border-color .2s ease}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--brand-purple)}.form-group select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%239ca3af' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;padding-right:1.5rem}.form-group textarea{resize:vertical;min-height:60px}.form-row{display:flex;gap:.75rem}.form-row>*{flex:1}.time-selects{display:flex;gap:.25rem}.time-selects>*{flex:1}button[popovertarget]{cursor:pointer}[popover]:open{animation:fadeIn .2s ease-out}@media(prefers-reduced-motion:reduce){[popover]:open{animation:none}}[anchor-name]{anchor-name:var(--anchor-name)}[position-anchor]{position-anchor:var(--position-anchor)}[position-area]{position-area:var(--position-area)}.border-current{border-color:currentColor}.fill-current{fill:currentColor}.stroke-current{stroke:currentColor}.shadow-current{box-shadow:0 0 0 1px currentColor}h1,h2,h3,h4{text-wrap:balance}.has-focus:has(:focus-visible){outline:2px solid var(--brand-purple);outline-offset:2px}.not-first:not(:first-child){border-top:1px solid var(--dark-600)}.not-last:not(:last-child){border-bottom:1px solid var(--dark-600)}.not-active:not(.active){opacity:.6}:root{--brand-purple-hover: oklch(from var(--brand-purple) calc(l*1.15) c h);--brand-purple-active: oklch(from var(--brand-purple) calc(l*.85) c h);--brand-blue-hover: oklch(from var(--brand-blue) calc(l*1.15) c h);--brand-blue-active: oklch(from var(--brand-blue) calc(l*.85) c h);--red-hover: oklch(from var(--red) calc(l*1.15) c h);--red-active: oklch(from var(--red) calc(l*.85) c h);--green-hover: oklch(from var(--green) calc(l*1.15) c h);--green-active: oklch(from var(--green) calc(l*.85) c h);--white-hover: oklch(from var(--white) calc(l*.9) c h);--white-active: oklch(from var(--white) calc(l*.8) c h)}.hover-brand-purple:hover{background:var(--brand-purple-hover)}.active-brand-purple:active{background:var(--brand-purple-active)}.hover-brand-blue:hover{background:var(--brand-blue-hover)}.active-brand-blue:active{background:var(--brand-blue-active)}.hover-red:hover{background:var(--red-hover)}.active-red:active{background:var(--red-active)}.hover-green:hover{background:var(--green-hover)}.active-green:active{background:var(--green-active)}.hover-white:hover{background:var(--white-hover);color:var(--dark-900)}.active-white:active{background:var(--white-active);color:var(--dark-900)}.focus-visible:focus-visible{outline:2px solid var(--brand-purple);outline-offset:2px}.anchor-top{anchor-name:--anchor-top}.anchor-bottom{anchor-name:--anchor-bottom}.anchor-left{anchor-name:--anchor-left}.anchor-right{anchor-name:--anchor-right}.anchor-center{anchor-name:--anchor-center}.position-anchor-top{position-anchor:--anchor-top}.position-anchor-bottom{position-anchor:--anchor-bottom}.position-anchor-left{position-anchor:--anchor-left}.position-anchor-right{position-anchor:--anchor-right}.position-anchor-center{position-anchor:--anchor-center}.position-area-top{position-area:top}.position-area-bottom{position-area:bottom}.position-area-left{position-area:left}.position-area-right{position-area:right}.position-area-top-span{position-area:top span-all}.position-area-bottom-span{position-area:bottom span-all}.position-area-left-span{position-area:left span-all}.position-area-right-span{position-area:right span-all}@media(max-width:768px){.panel{border-radius:0}.content{padding:1rem}}
