*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{line-height:1.5;-webkit-text-size-adjust:100%}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none}:root{--color-primary: #7B93C0;--color-primary-dark: #5B7AA8;--color-primary-hover: #6E88B8;--color-primary-light: #9BADC8;--color-primary-lighter: #c8e0ff;--color-primary-rgb: 123, 147, 192;--color-background: #ebeef5;--color-surface: #F9FAFB;--color-surface-hover: #F3F4F6;--color-text-primary: #4A4A4A;--color-text-secondary: #6B7280;--color-border: #E5E7EB;--color-border-light: #F3F4F6;--color-gray-button: #dee0e4;--color-gray-button-hover: #D1D5DB;--color-gray-button-text: #4A4A4A;--color-success: #10B981;--color-error: #EF4444;--color-warning: #F59E0B;--color-info: #3B82F6;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--page-title-content-gap: var(--spacing-lg);--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--breakpoint-xs: 320px;--breakpoint-sm: 640px;--breakpoint-md: 850px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--breakpoint-3xl: 1920px;--container-xs: 100%;--container-sm: 640px;--container-md: 850px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px;--spacing-responsive-sm: clamp(.5rem, 2vw, 1rem);--spacing-responsive-md: clamp(1rem, 3vw, 2rem);--spacing-responsive-lg: clamp(1.5rem, 4vw, 3rem);--spacing-responsive-xl: clamp(2rem, 5vw, 4rem)}[data-theme=dark]{--color-background: #1a2332;--color-surface: #24303f;--color-surface-hover: #3d4a5c;--color-text-primary: #F9FAFB;--color-text-secondary: #D1D5DB;--color-border: #3d4a5c;--color-border-light: #4f5d6f;--color-gray-button: #6d7585;--color-gray-button-hover: #7e8696;--color-gray-button-text: #F9FAFB}html{scrollbar-gutter:stable}body{font-family:var(--font-sans);background-color:var(--color-background);color:var(--color-text-primary);transition:background-color var(--transition-base),color var(--transition-base);margin:0;padding:0}#root{min-height:100vh;min-height:100dvh}.app-layout{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.app-layout--calendar{height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;overflow:hidden}@media(max-width:1060px){.app-layout{padding-top:56px}}.app-layout .page-transition{flex:1;display:flex;flex-direction:column;min-height:0;contain:layout}.app-layout .page-transition>*{flex:1;min-height:0;display:flex;flex-direction:column}.page-transition{width:100%;min-height:100vh;min-height:100dvh;height:100%}.page-transition--initial{animation:pageFadeIn .4s cubic-bezier(.32,.72,0,1)}.page-transition--forward{animation:pageSlideFromRight .5s cubic-bezier(.32,.72,0,1)}.page-transition--back{animation:pageSlideFromLeft .5s cubic-bezier(.32,.72,0,1)}.page-transition--none{animation:none}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes pageSlideFromRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pageSlideFromLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@media(max-width:850px){.page-transition--initial,.page-transition--forward,.page-transition--back{animation:pageFadeInMobile .4s cubic-bezier(.32,.72,0,1)}@keyframes pageFadeInMobile{0%{opacity:0}to{opacity:1}}}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.hide-mobile{display:none}.show-mobile{display:block}@media(min-width:851px){.hide-mobile{display:block}.show-mobile,.hide-tablet{display:none}.show-tablet{display:block}}@media(min-width:1024px){.hide-tablet{display:block}.show-tablet,.hide-desktop{display:none}.show-desktop{display:block}}@media(min-width:1280px){.hide-desktop{display:block}.show-desktop{display:none}}.grid-responsive{display:grid;gap:var(--spacing-md);grid-template-columns:1fr}@media(min-width:851px){.grid-responsive{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.grid-responsive{grid-template-columns:repeat(3,1fr)}}.grid-auto-fit{display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.grid-1-2-3{display:grid;gap:var(--spacing-md);grid-template-columns:1fr}@media(min-width:851px){.grid-1-2-3{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.grid-1-2-3{grid-template-columns:repeat(3,1fr)}}.grid-1-2-4{display:grid;gap:var(--spacing-md);grid-template-columns:1fr}@media(min-width:851px){.grid-1-2-4{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.grid-1-2-4{grid-template-columns:repeat(4,1fr)}}.flex-wrap-mobile{flex-wrap:wrap}@media(min-width:851px){.flex-wrap-mobile{flex-wrap:nowrap}}.flex-col-mobile{flex-direction:column}@media(min-width:851px){.flex-col-mobile{flex-direction:row}}.flex-row-desktop{flex-direction:column}@media(min-width:1024px){.flex-row-desktop{flex-direction:row}}.text-center-mobile{text-align:center}@media(min-width:851px){.text-center-mobile{text-align:left}}.text-responsive{font-size:clamp(.875rem,2vw,1rem)}.text-responsive-lg{font-size:clamp(1.125rem,3vw,1.5rem)}.text-responsive-xl{font-size:clamp(1.5rem,4vw,2.25rem)}.p-responsive{padding:var(--spacing-responsive-sm)}@media(min-width:851px){.p-responsive{padding:var(--spacing-responsive-md)}}@media(min-width:1024px){.p-responsive{padding:var(--spacing-responsive-lg)}}.gap-responsive{gap:var(--spacing-sm)}@media(min-width:851px){.gap-responsive{gap:var(--spacing-md)}}@media(min-width:1024px){.gap-responsive{gap:var(--spacing-lg)}}.responsive-table{width:100%;overflow-x:auto}@media(max-width:850px){.responsive-table table{display:block}.responsive-table thead{display:none}.responsive-table tbody,.responsive-table tr{display:block}.responsive-table tr{margin-bottom:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md);background-color:var(--color-surface)}.responsive-table td{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border:none}.responsive-table td:before{content:attr(data-label);font-weight:600;color:var(--color-text-secondary);margin-right:var(--spacing-md)}}.touch-target{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.container-fluid{width:100%;padding:0 var(--spacing-md)}@media(min-width:851px){.container-fluid{padding:0 var(--spacing-lg)}}@media(min-width:1280px){.container-fluid{padding:0 var(--spacing-xl)}}.btn,.btn-primary,.btn-secondary,.btn-cancel,.btn-submit,.btn-duplicate,.btn-delete,.btn-add-task,.btn-add-expense,.btn-add-category,.btn-clear-filters,.logout-button,.settings-btn,.logout-btn{padding:var(--spacing-sm) var(--spacing-lg);height:40px;min-width:100px;box-sizing:border-box;font-size:var(--text-base);font-weight:600;font-family:var(--font-sans);line-height:1;text-transform:uppercase;letter-spacing:.5px;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.btn-primary,.btn-submit,.btn-duplicate,.btn-add-task,.settings-btn-save,.logout-btn-cancel{background-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled),.btn-submit:hover:not(:disabled),.btn-duplicate:hover:not(:disabled),.btn-add-task:hover:not(:disabled),.settings-btn-save:hover:not(:disabled),.logout-btn-cancel:hover:not(:disabled){background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary,.btn-cancel,.btn-clear-filters,.btn-add-category,.settings-btn-cancel,.logout-btn-logout,.logout-button{background-color:var(--color-gray-button);color:var(--color-gray-button-text)}.btn-secondary:hover:not(:disabled),.btn-cancel:hover:not(:disabled),.btn-clear-filters:hover:not(:disabled),.btn-add-category:hover:not(:disabled),.settings-btn-cancel:hover:not(:disabled),.logout-btn-logout:hover:not(:disabled),.logout-button:hover:not(:disabled){background-color:var(--color-gray-button-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-delete{background-color:#ef4444;color:#fff}.btn:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-cancel:disabled,.btn-submit:disabled,.btn-duplicate:disabled,.btn-delete:disabled,.btn-add-task:disabled,.btn-clear-filters:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-small,.btn-add-small{padding:var(--spacing-xs) var(--spacing-md);height:32px;min-width:80px;font-size:var(--text-sm);line-height:1}.btn-add-small{background-color:var(--color-primary);color:#fff;font-weight:600;border-radius:var(--radius-lg);transition:all var(--transition-base)}.btn-add-small:hover:not(:disabled){background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-add-grade{width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border-radius:50%;background-color:var(--color-primary);color:#fff;font-size:var(--text-xl);font-weight:700;text-transform:none;display:flex;align-items:center;justify-content:center}.btn-add-grade img{width:20px;height:20px;object-fit:contain}.btn-add-expense{background-color:var(--color-primary);color:#fff}.btn-add-expense:hover:not(:disabled){background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.modal-backdrop{position:fixed;inset:0;background-color:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:center;padding:20px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box;z-index:1000;animation:fadeIn .25s cubic-bezier(.4,0,.2,1)}.modal-backdrop.is-closing{animation:fadeOut .25s cubic-bezier(.4,0,.2,1) forwards}.modal-container{position:relative;z-index:1001}.modal-backdrop.modal-nested{z-index:2000}.modal-backdrop.modal-nested .modal-container{z-index:2001}.modal-backdrop.has-nested-above{transition:transform .35s cubic-bezier(.4,0,.2,1),filter .35s cubic-bezier(.4,0,.2,1);transform:scale(.96);filter:brightness(.75)}.modal-backdrop.has-nested-above .modal-container{transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s cubic-bezier(.4,0,.2,1);transform:scale(.96);box-shadow:none}.modal-backdrop.modal-nested .modal-container{animation:slideDownIn .35s cubic-bezier(.34,1.56,.64,1)}.modal-backdrop.modal-nested.is-closing .modal-container{animation:slideUpOut .3s cubic-bezier(.4,0,1,1) forwards}@keyframes slideDownIn{0%{transform:translateY(-40px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes slideUpOut{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-30px) scale(.95);opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.modal-container{background-color:var(--color-surface);border-radius:var(--radius-xl);width:90%;max-width:800px;max-height:calc(100vh - 40px);overflow:hidden;overflow-x:hidden;box-shadow:var(--shadow-xl);animation:slideUp .35s cubic-bezier(.34,1.56,.64,1);margin:auto;box-sizing:border-box;position:relative;min-width:0}.modal-container.is-closing{animation:slideDown .25s cubic-bezier(.4,0,1,1) forwards}@keyframes slideUp{0%{transform:translateY(30px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes slideDown{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(20px) scale(.95);opacity:0}}.modal-header{background-color:var(--color-primary);padding:var(--spacing-sm) var(--spacing-lg);display:flex;justify-content:space-between;align-items:center}.modal-title{color:#fff;font-size:var(--text-xl);font-weight:600;margin:0;font-family:var(--font-sans)}.modal-header-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.modal-close-btn{background:none;border:none;color:#fff;cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-base)}.modal-close-btn:hover{background-color:#ffffff1a;transform:scale(1.1)}.modal-close-btn:active{background-color:#fff3}.modal-close-btn img{width:20px;height:20px}.modal-delete-btn{background:none;border:none;color:#fff;cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-base)}.modal-delete-btn:hover{background-color:#ffffff1a;transform:scale(1.1)}.modal-delete-btn:active{background-color:#fff3}.modal-delete-btn:disabled{opacity:.5;cursor:not-allowed}.modal-delete-btn svg,.modal-delete-btn img{width:20px;height:20px;fill:#fff}.icon-button{background:none;border:none;color:#fff;cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-base)}.icon-button:hover{background-color:#ffffff1a;transform:scale(1.1)}.icon-button:active{background-color:#fff3}.icon-button:disabled{opacity:.5;cursor:not-allowed}.icon-button img{width:20px;height:20px}.modal-body{padding:var(--spacing-xl);overflow-y:auto;overflow-x:hidden;max-height:calc(90vh - 80px);display:flex;flex-direction:column;box-sizing:border-box;width:100%;min-width:0;scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.modal-body::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.modal-body::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.modal-body:has(.delete-confirm),.modal-body:has(.delete-confirmation-text){padding:var(--spacing-lg) var(--spacing-xl)}.modal-container:has(.delete-confirm),.modal-container:has(.delete-confirmation-text){max-width:500px}.modal-container.modal-narrow,.modal-container.app-alert-modal,.modal-container.app-confirm-modal{max-width:440px}.app-alert-content{padding:var(--spacing-sm) 0}.app-alert-message{margin:0 0 var(--spacing-lg);font-size:var(--text-base);color:var(--color-text-primary);white-space:pre-wrap;word-break:break-word}.modal-body>form,.modal-body>div:first-child{display:flex;flex-direction:column;min-height:0;min-width:0;flex:1 1 auto}.modal-body .modal-actions,.modal-body .form-actions{margin-top:auto;padding-top:var(--spacing-lg);flex-shrink:0;position:relative;z-index:10;display:flex;gap:var(--spacing-md);justify-content:flex-end;align-items:center;flex-wrap:wrap}.modal-body .form-actions .form-actions-left{display:flex;gap:var(--spacing-sm);margin-right:auto}.modal-body .form-actions .form-actions-right{display:flex;gap:var(--spacing-md);margin-left:auto}.modal-body .modal-actions .btn,.modal-body .form-actions .btn{opacity:1!important;visibility:visible!important;position:relative;z-index:1;background-color:var(--color-primary)!important}.modal-body .modal-actions .btn-secondary,.modal-body .form-actions .btn-secondary{background-color:var(--color-gray-button)!important;color:var(--color-gray-button-text)!important}.modal-body .modal-actions .btn-primary,.modal-body .form-actions .btn-primary{background-color:var(--color-primary)!important;color:#fff!important}.modal-body select,.modal-body input[type=select],.modal-body input[type=date],.modal-body input[type=time],.modal-body input[type=number],.modal-body textarea,.modal-body input[type=text],.modal-body input[type=email],.modal-body input[type=password]{font-size:var(--text-base);box-sizing:border-box;max-width:100%;min-width:0}.modal-body .form-group,.modal-body .datetime-group,.modal-body .datetime-inputs{min-width:0}@media(max-width:1024px){.modal-container{width:90%;max-width:700px}.modal-body{padding:var(--spacing-lg)}.modal-header{padding:var(--spacing-sm) var(--spacing-md)}}@media(max-width:850px){.modal-backdrop{padding:16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));align-items:center}.modal-container{width:min(95vw,calc(100% - 32px));max-width:none;max-height:calc(100vh - 32px);margin:auto;box-sizing:border-box}.modal-header{padding:var(--spacing-sm) var(--spacing-md)}.modal-title{font-size:var(--text-lg)}.modal-body{padding:var(--spacing-md);max-height:calc(85vh - 64px);padding-bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom,0px))}.modal-body:has(.delete-confirm),.modal-body:has(.delete-confirmation-text){padding:var(--spacing-md)}.modal-body .modal-actions,.modal-body .form-actions{padding-top:var(--spacing-md);gap:var(--spacing-sm);flex-wrap:wrap}.modal-body .form-actions .form-actions-left,.modal-body .form-actions .form-actions-right{margin-left:0;margin-right:0;width:100%}.modal-body .modal-actions .btn,.modal-body .form-actions .btn,.modal-body .modal-actions button,.modal-body .form-actions button,.modal-body .modal-actions .btn-primary,.modal-body .modal-actions .btn-cancel,.modal-body .modal-actions .btn-submit,.modal-body .modal-actions .btn-delete,.modal-body .modal-actions .btn-secondary,.modal-body .form-actions .btn-primary,.modal-body .form-actions .btn-cancel,.modal-body .form-actions .btn-submit,.modal-body .form-actions .btn-delete,.modal-body .form-actions .btn-secondary{flex:1 1 0!important;min-width:120px!important;height:48px!important;max-height:48px!important;min-height:48px!important;padding:0 var(--spacing-lg)!important;border-radius:var(--radius-lg)!important;font-size:var(--text-base)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:48px!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important}.modal-close-btn,.modal-delete-btn,.icon-button{min-width:44px;min-height:44px;padding:var(--spacing-sm)}.modal-body select,.modal-body input[type=select]{min-height:48px;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-base)}.modal-body input[type=date],.modal-body input[type=time]{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.modal-body .datetime-inputs{width:100%;min-width:0}.modal-body .datetime-inputs .form-input,.modal-body .datetime-inputs input,.modal-body .datetime-inputs .time-input-12h{min-width:0;max-width:100%}}@media(max-width:640px){.modal-backdrop{padding:12px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));align-items:center}.modal-container{width:min(calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)),calc(100% - 24px));max-height:calc(100vh - 24px);border-radius:var(--radius-xl);margin:auto;box-sizing:border-box}.modal-header{padding:var(--spacing-xs) var(--spacing-md)}.modal-title{font-size:var(--text-base);line-height:1.2}.modal-body{padding:var(--spacing-md);max-height:calc(90vh - 64px)}.modal-body:has(.delete-confirm),.modal-body:has(.delete-confirmation-text){padding:var(--spacing-md)}.modal-body .modal-actions,.modal-body .form-actions{flex-direction:column;gap:var(--spacing-sm);padding-top:var(--spacing-md)}.modal-body .form-actions .form-actions-left,.modal-body .form-actions .form-actions-right{margin-left:0;margin-right:0;width:100%}.modal-body .modal-actions .btn,.modal-body .form-actions .btn,.modal-body .modal-actions button,.modal-body .form-actions button,.modal-body .modal-actions .btn-primary,.modal-body .modal-actions .btn-cancel,.modal-body .modal-actions .btn-submit,.modal-body .modal-actions .btn-delete,.modal-body .modal-actions .btn-secondary,.modal-body .form-actions .btn-primary,.modal-body .form-actions .btn-cancel,.modal-body .form-actions .btn-submit,.modal-body .form-actions .btn-delete,.modal-body .form-actions .btn-secondary{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:44px!important;height:44px!important;max-height:44px!important;padding:0 var(--spacing-lg)!important;border-radius:var(--radius-lg)!important;font-size:var(--text-base)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:44px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}.modal-close-btn,.modal-delete-btn,.icon-button{min-width:44px;min-height:44px}.modal-close-btn img,.modal-delete-btn img,.modal-delete-btn svg,.icon-button img{width:24px;height:24px}.modal-body select,.modal-body input[type=select]{min-height:44px;padding:var(--spacing-sm);font-size:var(--text-sm)}.modal-body input[type=date],.modal-body input[type=time]{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.modal-body .datetime-inputs .form-input,.modal-body .datetime-inputs input,.modal-body .datetime-inputs .time-input-12h{min-width:0;max-width:100%}}.auth-form{display:flex;flex-direction:column;gap:1.25rem;padding-bottom:0;min-width:0}.auth-form:has(.delete-confirmation-text){gap:0}.form-group{display:flex;flex-direction:column;gap:.5rem;min-width:0}.form-row{display:flex;gap:var(--spacing-md);align-items:flex-end}.form-row .form-group{flex:1 1 0;min-width:0}.form-row .form-input{min-width:0;width:100%;box-sizing:border-box}.form-label{font-size:.875rem;font-weight:500;color:var(--color-text-primary);font-family:var(--font-sans)}.checkbox-label{display:flex;align-items:center;gap:0;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--color-text-primary);font-family:var(--font-sans)}.form-input{padding:.625rem;font-size:.875rem;border:2px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);color:var(--color-text-primary);font-family:var(--font-sans);transition:border-color var(--transition-base),box-shadow var(--transition-base);outline:none;box-sizing:border-box;width:100%;max-width:100%;min-width:0}.form-input:focus{outline:none!important;border-color:var(--color-primary)!important;border-width:2px!important;box-shadow:0 0 0 4px #7b93c040!important}.form-input:disabled{opacity:.6;cursor:not-allowed}.form-textarea{resize:vertical;min-height:80px;font-family:inherit}.form-input--readonly{background-color:var(--color-surface-hover);cursor:default;color:var(--color-text-secondary)}.btn-link{background:none;border:none;padding:0;font-size:var(--text-base);color:var(--color-primary);cursor:pointer;text-decoration:underline;font-family:inherit}.btn-link:hover:not(:disabled){color:var(--color-primary-hover, var(--color-primary))}.btn-link:disabled{opacity:.6;cursor:not-allowed}select.form-input{appearance:none;-webkit-appearance:none;-moz-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='%236B7280' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-md) center;padding-right:calc(var(--spacing-md) + 20px)}.form-input-error{border-color:var(--color-error)}.form-input-error:focus{border-color:var(--color-error);box-shadow:0 0 0 3px #ef44441a}.form-error-text{display:block;font-size:var(--text-sm);color:var(--color-error);font-family:var(--font-sans);margin-top:var(--spacing-xs)}.form-helper-text{display:block;font-size:var(--text-sm);color:var(--color-text-secondary);font-family:var(--font-sans);margin-top:var(--spacing-xs)}.form-error-general{padding:var(--spacing-md);background-color:#ef44441a;border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--text-sm);font-family:var(--font-sans);text-align:center;margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.form-success-message{padding:var(--spacing-md);background-color:#22c55e1a;border:1px solid #22c55e;border-radius:var(--radius-md);color:#166534;font-size:var(--text-sm);font-family:var(--font-sans);text-align:center;margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.auth-form-divider-section{display:flex;flex-direction:column;gap:var(--spacing-md);margin-top:0;margin-bottom:0}.auth-form-divider{text-align:center;color:var(--color-text-secondary);font-size:var(--text-sm);margin:0}.form-actions--column{flex-direction:column;justify-content:stretch}.form-actions--column .btn-google{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--text-base);font-weight:600;border:2px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-base);font-family:var(--font-sans)}.form-actions--column .btn-google:hover:not(:disabled){border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.05)}.form-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-lg);justify-content:flex-end}.resend-verification-section{border-top:1px solid var(--color-border);padding-top:var(--spacing-md)}.form-link{align-self:flex-start;border:none;background:none;color:var(--color-primary);font-size:var(--text-sm);padding:0;cursor:pointer;font-family:var(--font-sans);display:block;width:100%;text-align:left;margin-top:var(--spacing-sm)}.form-link:disabled{opacity:.6;cursor:not-allowed}.btn-cancel:active:not(:disabled),.btn-submit:active:not(:disabled),.btn-delete:active:not(:disabled){transform:translateY(0)}.btn-cancel:disabled,.btn-submit:disabled,.btn-delete:disabled{opacity:.5;cursor:not-allowed}.color-picker-container{display:flex;align-items:center;gap:var(--spacing-md)}.color-picker-button{width:200px;height:48px;border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.color-picker-button:hover:not(:disabled){border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:scale(1.05)}.color-picker-button:disabled{opacity:.6;cursor:not-allowed}.category-color-presets{display:flex;gap:var(--spacing-md);flex-wrap:wrap;margin-bottom:var(--spacing-md)}.category-color-swatch{width:40px;height:40px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all var(--transition-base);padding:0}.category-color-swatch:hover:not(:disabled){transform:scale(1.1)}.category-color-swatch.active{border-color:var(--color-text-primary);box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-text-primary)}.category-graded-color-options{margin-bottom:var(--spacing-md)}.category-graded-default-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:2px solid var(--color-border);background:var(--color-surface);cursor:pointer;font-size:var(--text-sm);transition:all var(--transition-base)}.category-graded-default-btn:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-surface-hover)}.category-graded-default-btn.active{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-primary)}.category-graded-default-swatch{display:inline-block;width:24px;height:24px;border-radius:50%;flex-shrink:0}.category-custom-color{align-items:center;gap:var(--spacing-sm)}.category-custom-color-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.delete-confirmation-text{font-size:var(--text-base);color:var(--color-text-primary);text-align:center;line-height:1.5;margin:0 0 var(--spacing-lg) 0}@media(max-width:850px){.auth-form{gap:1rem}.form-input{padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem;min-height:48px}.auth-form-divider-section{gap:var(--spacing-md)}.form-actions{flex-direction:column;gap:var(--spacing-md);margin-top:var(--spacing-lg)}.form-actions .btn-cancel,.form-actions .btn-submit,.form-actions .btn-delete,.form-actions button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:48px!important;height:48px!important;max-height:48px!important;padding:0 var(--spacing-lg)!important;border-radius:var(--radius-lg)!important;font-size:var(--text-base)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:48px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}.color-picker-container{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.color-picker-button{width:100%;min-height:56px}}@media(max-width:640px){.auth-form{gap:var(--spacing-md)}.auth-form .form-group{gap:.375rem}.form-label{font-size:var(--text-sm)}.form-input{padding:var(--spacing-sm);font-size:var(--text-sm);min-height:44px}.form-helper-text,.form-error-text{font-size:var(--text-xs)}.form-error-text{margin-top:var(--spacing-sm)}.form-link{margin-top:var(--spacing-md)}.form-error-general,.form-success-message{padding:var(--spacing-sm);font-size:var(--text-xs);margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.auth-form-divider-section{gap:var(--spacing-lg);margin-top:var(--spacing-xs)}.form-actions{gap:var(--spacing-md);margin-top:var(--spacing-lg)}.color-picker-button{min-height:48px}.form-actions .btn-cancel,.form-actions .btn-submit,.form-actions .btn-delete,.form-actions button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:44px!important;height:44px!important;max-height:44px!important;padding:0 var(--spacing-lg)!important;border-radius:var(--radius-lg)!important;font-size:var(--text-base)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:44px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}}.screen-size-guard{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-background, #ebeef5);z-index:10000;padding:var(--spacing-xl)}.screen-size-guard__content{text-align:center;max-width:400px;animation:screenSizeGuardFadeIn .3s ease-in-out}@keyframes screenSizeGuardFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.screen-size-guard__icon{margin-bottom:var(--spacing-xl);color:var(--color-text-primary);opacity:.7}.screen-size-guard__icon svg{display:inline-block}.screen-size-guard__title{font-size:var(--text-3xl);font-weight:700;margin-bottom:var(--spacing-md);color:var(--color-text-primary)}.screen-size-guard__message{font-size:var(--text-base);line-height:1.6;margin-bottom:var(--spacing-lg);color:var(--color-text-secondary)}.screen-size-guard__details{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);font-size:var(--text-sm);color:var(--color-text-secondary);box-shadow:var(--shadow-md)}.screen-size-guard__details p{margin:var(--spacing-xs) 0}.screen-size-guard__suggestion{font-size:var(--text-sm);color:var(--color-text-secondary);font-style:italic}.merge-modal-content{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-lg);max-height:60vh;overflow-y:auto}.merge-loading,.merge-error{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}.merge-error{color:var(--color-error);background-color:#ff00001a;border-radius:var(--radius-md);padding:var(--spacing-md)}.merge-description{color:var(--color-text-secondary);line-height:1.5;margin:0}.merge-warning{background-color:#ffa5001a;color:var(--color-warning, #ff9800);padding:var(--spacing-md);border-radius:var(--radius-md);margin:0;line-height:1.5}.merge-info{background-color:#2196f31a;color:var(--color-info, #2196f3);padding:var(--spacing-md);border-radius:var(--radius-md);margin:0;line-height:1.5;font-size:var(--text-sm)}.merge-import-options{padding:var(--spacing-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--spacing-md)}.merge-import-options-title{margin:0 0 var(--spacing-xs) 0;font-size:var(--text-base);font-weight:600;color:var(--color-text-primary)}.merge-checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;color:var(--color-text-primary)}.merge-checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.merge-date-range{margin-left:26px;display:flex;flex-direction:column;gap:var(--spacing-xs)}.merge-date-range-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.merge-date-range-select{padding:.625rem;border:2px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);color:var(--color-text-primary);font-size:.875rem;cursor:pointer;max-width:180px}.merge-date-range-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.merge-date-range-select:disabled{opacity:.6;cursor:not-allowed}.merge-section-title{margin:0 0 var(--spacing-sm) 0;font-size:var(--text-base);font-weight:600;color:var(--color-text-primary)}.merge-mappings{display:flex;flex-direction:column;gap:var(--spacing-md)}.merge-unmapped-section{padding:var(--spacing-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.merge-unmapped-description{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.5;margin:0}.merge-unmapped-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.merge-unmapped-row{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-background, #E8EBF0);border:1px solid var(--color-border);border-radius:var(--radius-md)}.merge-unmapped-row:hover{background-color:var(--color-surface-hover)}.merge-unmapped-color{width:14px;height:14px;border-radius:50%;flex-shrink:0;border:2px solid var(--color-border)}.merge-unmapped-name{flex:1;min-width:0;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.merge-unmapped-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-base);cursor:pointer;min-width:180px}.merge-unmapped-select:focus{outline:none;border-color:var(--color-primary)}.merge-unmapped-select:disabled{opacity:.6;cursor:not-allowed}.merge-mapping-row{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:background-color .2s ease}.merge-mapping-row:hover{background-color:var(--color-surface-hover)}.merge-category-badge{display:flex;align-items:center;gap:var(--spacing-sm);flex:1;min-width:0}.merge-category-color{width:16px;height:16px;border-radius:50%;flex-shrink:0;border:2px solid var(--color-border)}.merge-category-name{font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.merge-arrow{color:var(--color-text-secondary);font-size:var(--text-lg);flex-shrink:0;width:24px;text-align:center}.merge-dropdown{flex:1;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-base);cursor:pointer;transition:all .2s ease;min-width:0}.merge-dropdown:hover:not(:disabled){border-color:var(--color-primary)}.merge-dropdown:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.merge-dropdown:disabled{opacity:.6;cursor:not-allowed}.merge-footer{display:flex;gap:var(--spacing-md);padding:var(--spacing-lg);border-top:1px solid var(--color-border);justify-content:flex-end}.merge-btn{padding:var(--spacing-sm) var(--spacing-xl);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all .2s ease;border:none;min-width:120px;height:44px;display:flex;align-items:center;justify-content:center}.merge-btn:disabled{opacity:.5;cursor:not-allowed}.merge-btn-cancel{background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.merge-btn-cancel:hover:not(:disabled){background-color:var(--color-surface-hover)}.merge-btn-confirm{background-color:var(--color-primary);color:#fff}.merge-btn-confirm:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:0 4px 8px #0000001a}.merge-btn-confirm:active:not(:disabled){transform:translateY(0)}@media(max-width:1024px){.merge-modal-content{padding:var(--spacing-md);max-height:50vh}.merge-mapping-row{padding:var(--spacing-sm)}.merge-footer{flex-direction:column;padding:var(--spacing-md)}.merge-btn{width:100%;min-width:100%}}@media(max-width:640px){.merge-modal-content{padding:var(--spacing-sm);gap:var(--spacing-md)}.merge-description,.merge-warning,.merge-info{font-size:var(--text-sm);padding:var(--spacing-sm)}.merge-mappings{gap:var(--spacing-sm)}.merge-mapping-row{flex-direction:column;align-items:stretch;gap:var(--spacing-sm);padding:var(--spacing-sm)}.merge-category-badge{flex:none;width:100%}.merge-arrow{display:none}.merge-dropdown{width:100%;padding:var(--spacing-sm);min-height:44px}.merge-footer{padding:var(--spacing-sm);gap:var(--spacing-sm)}.merge-btn{min-height:44px;font-size:var(--text-sm)}.merge-unmapped-row{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:var(--spacing-sm)}.merge-unmapped-color{grid-column:1;grid-row:1}.merge-unmapped-name{grid-column:2;grid-row:1;min-width:0;white-space:normal;word-break:break-word}.merge-unmapped-select{grid-column:1 / -1;grid-row:2;min-width:0;width:100%}}.import-setup-modal-content{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-lg);max-height:60vh;overflow-y:auto}.import-setup-loading,.import-setup-error{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}.import-setup-error{color:var(--color-error);background-color:#ff00001a;border-radius:var(--radius-md);padding:var(--spacing-md)}.import-setup-description{color:var(--color-text-secondary);line-height:1.5;margin:0}.import-setup-section{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.import-setup-label{font-weight:600;color:var(--color-text-primary)}.import-setup-select-all{margin-bottom:var(--spacing-xs)}.import-setup-checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;padding:var(--spacing-sm) 0;color:var(--color-text-primary)}.import-setup-checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.import-setup-calendars{display:flex;flex-direction:column;gap:var(--spacing-xs);max-height:200px;overflow-y:auto}.import-setup-calendar-row{padding:var(--spacing-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.import-setup-calendar-row:hover{background-color:var(--color-surface-hover)}.import-setup-calendar-color{width:14px;height:14px;border-radius:50%;flex-shrink:0;border:2px solid var(--color-border)}.import-setup-calendar-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-setup-select{padding:.625rem;border:2px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);color:var(--color-text-primary);font-size:.875rem;cursor:pointer;max-width:200px}.import-setup-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.import-setup-select:disabled{opacity:.6;cursor:not-allowed}.import-setup-footer{display:flex;gap:var(--spacing-md);padding:var(--spacing-lg);border-top:1px solid var(--color-border);justify-content:flex-end}.import-setup-btn{padding:var(--spacing-sm) var(--spacing-xl);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all .2s ease;border:none;min-width:120px;height:44px;display:flex;align-items:center;justify-content:center}.import-setup-btn:disabled{opacity:.5;cursor:not-allowed}.import-setup-btn-cancel{background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.import-setup-btn-cancel:hover:not(:disabled){background-color:var(--color-surface-hover)}.import-setup-btn-confirm{background-color:var(--color-primary);color:#fff}.import-setup-btn-confirm:hover:not(:disabled){opacity:.9}@media(max-width:640px){.import-setup-modal-content{padding:var(--spacing-md)}.import-setup-footer{flex-direction:column;padding:var(--spacing-md)}.import-setup-btn{width:100%;min-width:100%}}.sync-manage-content{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-lg);max-height:60vh;overflow-y:auto}.sync-manage-loading,.sync-manage-error{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}.sync-manage-error{color:var(--color-error);background-color:#ff00001a;border-radius:var(--radius-md);padding:var(--spacing-md)}.sync-manage-description{color:var(--color-text-secondary);line-height:1.5;margin:0}.sync-manage-warning{background-color:#ffa5001a;color:var(--color-warning, #ff9800);padding:var(--spacing-md);border-radius:var(--radius-md);margin:0;line-height:1.5}.sync-manage-section-title{margin:0 0 var(--spacing-sm) 0;font-size:var(--text-base);font-weight:600;color:var(--color-text-primary)}.sync-manage-mappings{display:flex;flex-direction:column;gap:var(--spacing-md)}.sync-manage-mapping-row{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:background-color .2s ease}.sync-manage-mapping-row:hover{background-color:var(--color-surface-hover)}.sync-manage-category-badge{display:flex;align-items:center;gap:var(--spacing-sm);flex:1;min-width:0}.sync-manage-category-color{width:16px;height:16px;border-radius:50%;flex-shrink:0;border:2px solid var(--color-border)}.sync-manage-category-name{font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync-manage-arrow{color:var(--color-text-secondary);font-size:var(--text-lg);flex-shrink:0;width:24px;text-align:center}.sync-manage-dropdown{flex:1;padding:.625rem;border:2px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);color:var(--color-text-primary);font-size:.875rem;cursor:pointer;transition:border-color var(--transition-base),box-shadow var(--transition-base);min-width:0}.sync-manage-dropdown:hover:not(:disabled){border-color:var(--color-primary)}.sync-manage-dropdown:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.sync-manage-dropdown:disabled{opacity:.6;cursor:not-allowed}.sync-manage-unmapped-section{padding:var(--spacing-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.sync-manage-unmapped-description{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.5;margin:0}.sync-manage-date-range{margin:var(--spacing-sm) 0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.sync-manage-date-range-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.sync-manage-date-range-select{padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-background, #E8EBF0);color:var(--color-text-primary);font-size:var(--text-base);cursor:pointer;max-width:180px}.sync-manage-unmapped-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.sync-manage-unmapped-row{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-background, #E8EBF0);border:1px solid var(--color-border);border-radius:var(--radius-md)}.sync-manage-unmapped-row:hover{background-color:var(--color-surface-hover)}.sync-manage-unmapped-color{width:14px;height:14px;border-radius:50%;flex-shrink:0;border:2px solid var(--color-border)}.sync-manage-unmapped-name{flex:1;min-width:0;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync-manage-unmapped-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-base);cursor:pointer;min-width:180px}.sync-manage-unmapped-select:focus{outline:none;border-color:var(--color-primary)}.sync-manage-unmapped-select:disabled{opacity:.6;cursor:not-allowed}.sync-manage-footer{display:flex;gap:var(--spacing-md);padding:var(--spacing-lg);border-top:1px solid var(--color-border);justify-content:flex-end}.sync-manage-btn{padding:var(--spacing-sm) var(--spacing-xl);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all .2s ease;border:none;min-width:120px;height:44px;display:flex;align-items:center;justify-content:center}.sync-manage-btn:disabled{opacity:.5;cursor:not-allowed}.sync-manage-btn-cancel{background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border)}.sync-manage-btn-cancel:hover:not(:disabled){background-color:var(--color-surface-hover)}.sync-manage-btn-save{background-color:var(--color-primary);color:#fff}.sync-manage-btn-save:hover:not(:disabled){opacity:.9}@media(max-width:640px){.sync-manage-mapping-row{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.sync-manage-arrow{display:none}.sync-manage-unmapped-row{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:var(--spacing-sm)}.sync-manage-unmapped-select{grid-column:1 / -1;grid-row:2;min-width:0;width:100%}}.modal-container.settings-modal{max-width:600px}.settings-modal .modal-body{padding:0;display:flex;flex-direction:column}.settings-form{display:flex;flex-direction:column;gap:var(--spacing-xl);padding:var(--spacing-xl);flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.settings-form::-webkit-scrollbar{width:6px}.settings-form::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.settings-form::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.settings-form::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.settings-form-group{display:flex;flex-direction:column;gap:.5rem}.settings-label{font-size:.875rem;font-weight:500;color:var(--color-text-primary);font-family:var(--font-sans)}.settings-input{padding:.625rem;border:2px solid var(--color-border);border-radius:var(--radius-lg);font-size:.875rem;font-family:var(--font-sans);background-color:var(--color-surface);color:var(--color-text-primary);transition:border-color var(--transition-base),box-shadow var(--transition-base);box-sizing:border-box;width:100%;max-width:100%}.settings-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.settings-input:disabled{background-color:var(--color-border-light);color:var(--color-text-secondary);cursor:not-allowed}.settings-input-error{border-color:var(--color-error)}.settings-input-error:focus{border-color:var(--color-error);box-shadow:0 0 0 3px #ef44441a}.settings-error-text{font-size:var(--text-sm);color:var(--color-error);font-family:var(--font-sans);margin-top:calc(var(--spacing-xs) * -1)}.settings-helper-text{font-size:var(--text-sm);color:var(--color-text-secondary);font-family:var(--font-sans);margin-top:calc(var(--spacing-xs) * -1)}.settings-profile-picture-container{padding:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface)}.settings-profile-picture-wrapper{display:flex;align-items:center;gap:var(--spacing-xl);flex-wrap:wrap}.settings-profile-picture-preview,.settings-profile-picture-placeholder{flex-shrink:0;width:96px;height:96px;border-radius:50%;overflow:hidden;border:2px solid var(--color-primary);display:flex;align-items:center;justify-content:center}.settings-profile-picture-preview{padding:0}.settings-profile-picture-preview img{width:100%;height:100%;object-fit:cover}.settings-profile-picture-placeholder{background-color:var(--color-border-light);flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-sm)}.settings-profile-picture-placeholder img{opacity:.5}.settings-profile-picture-placeholder span{font-size:var(--text-xs);color:var(--color-text-secondary);text-align:center}.settings-profile-picture-actions{display:flex;gap:var(--spacing-md);align-items:center;flex-wrap:wrap;flex:1;min-width:0}.settings-upload-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.settings-upload-btn-icon{width:14px;height:14px;display:block;filter:brightness(0) invert(1)}.settings-section{display:flex;flex-direction:column;gap:var(--spacing-md);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.settings-section:last-child{padding-bottom:0;border-bottom:none}.settings-section-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.settings-section-title{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0;font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;opacity:.9}.settings-subsection-label{font-size:var(--text-base);font-weight:500;color:var(--color-text-primary);font-family:var(--font-sans);display:block;margin-bottom:var(--spacing-sm)}.settings-password-fields{display:flex;flex-direction:column;gap:var(--spacing-md)}.settings-password-section{display:flex;flex-direction:column;gap:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.settings-color-themes{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.settings-color-theme{width:50px;height:50px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all var(--transition-base);position:relative}.settings-color-theme:hover{transform:scale(1.1)}.settings-color-theme.active{border-color:var(--color-text-primary);box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-text-primary)}.settings-mode-options{display:flex;gap:var(--spacing-lg)}.settings-radio-label{display:flex;align-items:center;gap:var(--spacing-md);cursor:pointer;font-size:var(--text-base);color:var(--color-text-primary);font-family:var(--font-sans)}.settings-radio-label input[type=radio]{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;width:20px!important;height:20px!important;border:2px solid var(--color-border)!important;border-radius:50%!important;cursor:pointer!important;position:relative!important;background-color:var(--color-surface)!important;transition:all var(--transition-base)!important;margin:0!important}.settings-radio-label input[type=radio]:hover{border-color:var(--color-primary)!important}.settings-radio-label input[type=radio]:checked{border-color:var(--color-primary)!important}.settings-radio-label input[type=radio]:checked:after{content:""!important;position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;width:10px!important;height:10px!important;border-radius:50%!important;background-color:var(--color-primary)!important;display:block!important}.settings-modal-footer{padding:var(--spacing-xl);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-shrink:0;background-color:var(--color-surface);border-top:1px solid var(--color-border)}.settings-modal-credits{font-size:var(--text-sm);color:var(--color-text-secondary)}.settings-modal-credits a{color:var(--color-primary);text-decoration:none}.settings-modal-credits a:hover{text-decoration:underline}.settings-modal-footer-buttons{display:flex;gap:var(--spacing-md)}.settings-btn{padding:var(--spacing-md) var(--spacing-xl)}.settings-btn:active{transform:scale(.98)}.settings-google-calendar-connected{display:flex;flex-direction:column;gap:var(--spacing-lg)}.settings-google-calendar-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-md)}.settings-google-calendar-row .settings-label,.settings-google-calendar-row .settings-btn{flex:0 0 auto}@media(max-width:1024px){.settings-form,.settings-modal-footer{padding:var(--spacing-lg)}}@media(max-width:850px){.settings-form{padding:var(--spacing-md);gap:var(--spacing-lg)}.settings-section{padding-bottom:var(--spacing-md)}.settings-input{padding:var(--spacing-sm) var(--spacing-md);min-height:48px}.settings-profile-picture-container{padding:var(--spacing-md)}.settings-profile-picture-wrapper{flex-direction:column;align-items:stretch;gap:var(--spacing-lg)}.settings-profile-picture-preview,.settings-profile-picture-placeholder{margin:0 auto}.settings-profile-picture-actions,.settings-color-themes{justify-content:center}.settings-color-theme{width:44px;height:44px}.settings-modal-footer{flex-direction:column;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md)}.settings-modal-footer-buttons{width:100%}.settings-modal-footer .settings-btn,.settings-modal-footer button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:48px!important;height:48px!important;max-height:48px!important;padding:0 var(--spacing-lg)!important;border-radius:var(--radius-lg)!important;font-size:var(--text-base)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:48px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}}@media(max-width:640px){.settings-form{padding:var(--spacing-md);gap:var(--spacing-md)}.settings-form-group{gap:.375rem}.settings-label{font-size:var(--text-sm)}.settings-input{padding:var(--spacing-sm);min-height:44px}.settings-helper-text,.settings-error-text{font-size:var(--text-xs)}.settings-profile-picture-container{padding:var(--spacing-sm)}.settings-profile-picture-preview,.settings-profile-picture-placeholder{width:80px;height:80px}.settings-profile-picture-actions{flex-direction:column}.settings-profile-picture-actions .settings-btn{width:100%}.settings-color-themes{justify-content:center;gap:var(--spacing-sm)}.settings-color-theme{width:40px;height:40px}.settings-mode-options{flex-direction:column;gap:var(--spacing-md)}.settings-section-title{font-size:var(--text-base)}.settings-password-fields{gap:var(--spacing-sm)}.settings-modal-footer{padding:var(--spacing-md)}.settings-modal-footer .settings-btn,.settings-modal-footer button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:44px!important;height:44px!important;max-height:44px!important;padding:0 var(--spacing-lg)!important;border-radius:var(--radius-lg)!important;font-size:var(--text-base)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:44px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}}.modal-container.logout-modal{max-width:400px}.logout-modal .modal-body{padding:var(--spacing-xl)}.logout-modal-question{color:var(--color-text-primary);font-size:var(--text-base);font-weight:400;margin:0;font-family:var(--font-sans);text-align:center}.logout-modal-footer{padding:0 var(--spacing-xl) var(--spacing-xl) var(--spacing-xl);display:flex;gap:var(--spacing-md);justify-content:center}.logout-btn-logout:active{box-shadow:inset 0 2px 4px #00000026}.logout-btn-cancel:active{transform:scale(.98)}@media(max-width:850px){.logout-modal .modal-body{padding:var(--spacing-lg)}.logout-modal-footer{flex-direction:column;gap:var(--spacing-sm);padding:0 var(--spacing-lg) var(--spacing-lg) var(--spacing-lg)}.logout-modal-footer .logout-btn,.logout-modal-footer button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:48px!important;height:48px!important;max-height:48px!important;padding:0 var(--spacing-lg)!important;border-radius:var(--radius-lg)!important;font-size:var(--text-base)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:48px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}}@media(max-width:640px){.logout-modal .modal-body{padding:var(--spacing-md)}.logout-modal-question{font-size:var(--text-sm)}.logout-modal-footer{padding:0 var(--spacing-md) var(--spacing-md) var(--spacing-md)}.logout-modal-footer .logout-btn,.logout-modal-footer button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:44px!important;height:44px!important;max-height:44px!important;padding:0 var(--spacing-lg)!important;border-radius:var(--radius-lg)!important;font-size:var(--text-base)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:44px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}}.navbar{background-color:var(--color-primary);display:flex;align-items:center;justify-content:space-between;padding:.5rem 1.5rem;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100;height:56px;min-height:56px;flex-shrink:0;contain:layout;transform:none}.navbar-left{flex:0 0 auto;display:flex;align-items:center;gap:1rem}.navbar-logo{display:flex;align-items:center;text-decoration:none}.navbar-logo-img{height:32px;width:auto}.navbar-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;background:none;border:none;cursor:pointer;z-index:102;transition:transform var(--transition-slow),background-color var(--transition-slow)}.navbar-hamburger:hover{transform:scale(1.1)}.hamburger-line{width:100%;height:3px;background-color:#fff;border-radius:2px;transition:all .3s ease;transform-origin:center}.hamburger-line.open:nth-child(1){transform:translateY(8px) rotate(45deg)}.hamburger-line.open:nth-child(2){opacity:0}.hamburger-line.open:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.navbar-overlay{display:none;position:fixed;inset:56px 0 0;background-color:#00000080;z-index:98;pointer-events:auto}.navbar-center{flex:1;display:flex;justify-content:center;padding:0 2rem}.navbar-links{display:flex;list-style:none;gap:.5rem;margin:0;padding:0}.navbar-link-icon{width:20px;height:20px;margin-right:.5rem;object-fit:contain;flex-shrink:0}.navbar-link{display:flex;align-items:center;position:relative;padding:.5rem 1rem .6rem;color:color-mix(in srgb,white 85%,var(--color-primary));text-decoration:none;border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:500;font-variant:small-caps;text-transform:uppercase;white-space:nowrap;transition:color var(--transition-slow),text-shadow var(--transition-slow)}.navbar-link:hover{color:#fff;text-shadow:.2px 0 0 white,-.2px 0 0 white,0 .2px 0 white,0 -.2px 0 white}.navbar-link:after{content:"";position:absolute;bottom:.25rem;left:0;right:0;height:2px;background:#fff;border-radius:1px;transform:scaleX(0);transform-origin:center;transition:transform var(--transition-slow)}.navbar-link:hover:after{transform:scaleX(1)}.navbar-link:active:after{opacity:.9}.navbar-link.active{color:#fff;font-variant:small-caps;text-shadow:.18px 0 0 white,-.18px 0 0 white,0 .18px 0 white,0 -.18px 0 white}.navbar-link.active:after{transform:scaleX(1)}.navbar-link.active:hover{color:#fff;font-variant:small-caps;text-shadow:.18px 0 0 white,-.18px 0 0 white,0 .18px 0 white,0 -.18px 0 white}.navbar-link.active:hover:after{transform:scaleX(1)}.navbar-right{flex:0 0 auto;display:flex;align-items:center;gap:1.5rem}.navbar-logout{background:none;border:none;color:#fff;cursor:pointer;padding:.375rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:transform var(--transition-slow),background-color var(--transition-slow)}.navbar-logout:hover{transform:scale(1.1)}.navbar-logout-icon{width:24px;height:24px;display:block}.navbar-user{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.25rem;border-radius:var(--radius-xl);transition:transform var(--transition-slow),background-color var(--transition-slow)}.navbar-user:hover{transform:scale(1.05)}.navbar-username{color:#fff;font-size:var(--text-base);font-weight:500;white-space:nowrap}.navbar-avatar{width:34px;height:34px;border-radius:50%;overflow:hidden;background-color:#fff3;display:flex;align-items:center;justify-content:center;border:2px solid white}.navbar-avatar img{width:100%;height:100%;object-fit:cover}.navbar-avatar-initials{color:#fff;font-size:var(--text-sm);font-weight:700;text-transform:uppercase}@media(prefers-reduced-motion:reduce){.navbar-link:after{transition:none}.navbar-link:hover:after{transform:scaleX(1)}.navbar-hamburger:hover,.navbar-logout:hover,.navbar-user:hover{transform:none}}@media(max-width:1024px){.navbar{padding:.5rem 1.25rem}.navbar-center{padding:0 1rem}.navbar-links{gap:.25rem}.navbar-link{padding:.4rem .85rem;font-size:var(--text-sm)}.navbar-username{font-size:var(--text-sm)}}@media(max-width:1060px){.navbar{padding:.4rem .75rem;position:fixed;width:100%;left:0;right:0;top:0;z-index:1010;margin:0}.navbar-hamburger{display:flex}.navbar-center{position:fixed;top:56px;left:0;width:280px;height:calc(100vh - 56px);background-color:var(--color-primary);padding:1.5rem 0;transform:translate(-100%);transition:transform var(--transition-base);z-index:1002;box-shadow:var(--shadow-lg);overflow-y:auto}.navbar-center.mobile-open{transform:translate(0)}.navbar-overlay{display:block;position:fixed;inset:56px 0 0;background-color:#00000080;z-index:1001}.navbar-links{flex-direction:column;gap:0;width:100%}.navbar-links li{width:100%}.navbar-link{width:100%;padding:1rem 1.5rem 1.1rem;font-size:var(--text-base);border-radius:0;justify-content:flex-start;min-height:48px}.navbar-link:after{left:1.5rem;right:1.5rem;bottom:.5rem}.navbar-username{display:none}.navbar-right{gap:.5rem}.navbar-avatar{width:38px;height:38px}.navbar-logout{padding:.5rem}.navbar-logout-icon{width:28px;height:28px}}@media(max-width:1060px)and (min-width:769px){.navbar{z-index:100}.navbar.navbar--menu-open{z-index:1010}.navbar-center{z-index:98}.navbar-overlay{z-index:97}}@media(max-width:1060px){body.modal-open .navbar{z-index:100}body.modal-open .navbar-center{z-index:98}body.modal-open .navbar-overlay{z-index:97}body.modal-open .navbar-hamburger{z-index:98}}@media(max-width:640px){.navbar-logo-img{height:28px}.navbar-avatar{width:36px;height:36px}}.landing-container{height:100vh;height:100dvh;display:flex;flex-direction:column;background-color:var(--color-background);overflow:hidden;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-top:env(safe-area-inset-top);box-sizing:border-box}.landing-logo-corner{position:absolute;top:0;left:0;padding:var(--spacing-md) var(--spacing-xl);padding-top:calc(var(--spacing-md) + env(safe-area-inset-top));padding-left:calc(var(--spacing-xl) + env(safe-area-inset-left));z-index:1}.landing-logo{height:40px;width:auto;display:block}.landing-topbar{display:none}.landing-main{flex:1;display:flex;flex-direction:column;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}@media(max-width:1023px){.landing-card-wrapper{order:-1}}@media(min-width:1024px){.landing-main{flex-direction:row;align-items:stretch;position:relative;overflow:hidden}.landing-main:after{content:"";position:absolute;left:50%;top:0;bottom:0;width:0;pointer-events:none;box-shadow:8px 0 24px #0000001f;z-index:1}.landing-card-wrapper{order:0;position:relative;z-index:0}}.landing-hero{flex:1;display:none;align-items:center;justify-content:center;min-height:200px;padding:var(--spacing-lg);background:var(--color-primary)}@media(min-width:1024px){.landing-hero{display:flex;min-height:0;overflow:hidden;padding:clamp(var(--spacing-md),3vh,var(--spacing-xl));flex:1 1 50%;border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}}.landing-hero-image{width:100%;max-width:520px;height:auto;object-fit:contain}@media(min-width:1024px){.landing-hero-image{max-width:100%;max-height:100%;object-fit:contain;object-position:center left}}.landing-card-wrapper{display:flex;align-items:center;justify-content:center;padding:clamp(var(--spacing-md),4vw,var(--spacing-2xl));padding-bottom:calc(clamp(var(--spacing-md),4vw,var(--spacing-2xl)) + env(safe-area-inset-bottom));background:var(--color-background);min-width:0;overflow-y:auto;-webkit-overflow-scrolling:touch}@media(min-width:1024px){.landing-card-wrapper{flex:1 1 50%;min-width:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:clamp(var(--spacing-md),3vh,var(--spacing-2xl));padding-bottom:calc(clamp(var(--spacing-md),3vh,var(--spacing-2xl)) + env(safe-area-inset-bottom))}}@media(min-width:1024px)and (max-height:700px){.landing-card-wrapper{align-items:flex-start;justify-content:flex-start}}.landing-card{width:100%;max-width:min(520px,calc(100vw - 2 * var(--spacing-lg)));min-width:0;min-height:420px;background-color:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:clamp(var(--spacing-xl),5vw,var(--spacing-2xl));display:flex;flex-direction:column;align-items:center;text-align:center;box-sizing:border-box}@media(min-width:1024px){.landing-card{padding:clamp(.75rem,3vh,var(--spacing-2xl));min-height:0}}.landing-card-icon{width:56px;height:56px;margin-bottom:var(--spacing-lg);flex-shrink:0;object-fit:contain}.landing-card-title{font-size:2.25rem;font-weight:700;color:var(--color-primary-dark);margin:0 0 var(--spacing-lg);line-height:1.2}@media(min-width:640px){.landing-card-title{font-size:2.75rem}}@media(min-width:1024px){.landing-card-title{font-size:clamp(1.75rem,3vh,2.75rem);margin-bottom:clamp(var(--spacing-sm),2vh,var(--spacing-lg))}.landing-card-icon{width:clamp(40px,8vh,56px);height:clamp(40px,8vh,56px);margin-bottom:clamp(var(--spacing-sm),2vh,var(--spacing-lg))}.landing-divider{margin:clamp(var(--spacing-sm),2vh,var(--spacing-lg)) 0}.landing-card-form{margin-bottom:clamp(var(--spacing-sm),2vh,var(--spacing-lg))}.landing-card-primary-actions{margin-top:clamp(var(--spacing-xs),1vh,var(--spacing-md))}}.landing-card-form{width:100%;margin-bottom:var(--spacing-lg);text-align:left}.landing-card .form-label,.landing-card .form-input{font-size:var(--text-lg)}.landing-card .form-link{font-size:var(--text-sm)}.landing-card .form-error-text,.landing-card .form-error-general{font-size:var(--text-base)}.landing-card-form .form-group{margin-bottom:0}.landing-card-primary-actions{display:flex;flex-direction:column;gap:0;width:100%;margin-top:var(--spacing-md)}.landing-card-form-actions{margin-top:0;margin-bottom:0;justify-content:stretch}.landing-divider{display:flex;align-items:center;width:100%;margin:var(--spacing-lg) 0;gap:var(--spacing-md)}.landing-divider:before,.landing-divider:after{content:"";flex:1;height:1px;background-color:var(--color-border)}.landing-divider-text{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.landing-card-actions{display:flex;flex-direction:column;gap:var(--spacing-md);width:100%}.landing-card .landing-btn,.landing-card-form-actions .btn-submit.landing-btn,.landing-card .landing-card-form-actions .btn-submit.landing-btn{width:100%;min-width:0;height:56px!important;min-height:56px!important;max-height:56px!important;padding:0 var(--spacing-lg);font-size:var(--text-xl)!important;font-weight:600;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.02em;border:none;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:1!important}.landing-btn{width:100%;min-width:0;height:56px;padding:0 var(--spacing-lg);font-size:var(--text-xl);font-weight:600;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.02em;border:none;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.landing-btn-primary{background-color:var(--color-primary);color:#fff}.landing-btn-primary:hover:not(:disabled){filter:brightness(.97)}.landing-btn-primary:disabled{opacity:.5;cursor:not-allowed}.landing-btn-secondary{background-color:#e5e7eb;color:var(--color-gray-button-text)}.landing-btn-secondary:hover:not(:disabled){background-color:#dee0e4}.landing-btn-google{background-color:var(--color-surface);color:var(--color-text-primary);border:2px solid var(--color-border);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.landing-card .landing-btn-google{border:2px solid var(--color-border)}.landing-btn-google:hover:not(:disabled){border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.05)}[data-theme=dark] .landing-btn-secondary{background-color:#6b7280}[data-theme=dark] .landing-btn-secondary:hover:not(:disabled){background-color:var(--color-gray-button-hover)}.landing-card .landing-btn:hover:not(:disabled),.landing-card-form-actions .btn-submit.landing-btn:hover:not(:disabled){transform:none}.landing-card .landing-btn:active:not(:disabled),.landing-card-form-actions .btn-submit.landing-btn:active:not(:disabled){transform:none}.landing-btn-google-icon{width:20px;height:20px;object-fit:contain}@media(max-width:1023px){.landing-container{height:auto;min-height:100vh;min-height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}.landing-logo-corner{display:none}.landing-topbar{display:flex;align-items:center;justify-content:flex-start;width:100%;padding:var(--spacing-sm) var(--spacing-lg);padding-top:calc(var(--spacing-sm) + env(safe-area-inset-top));padding-left:calc(var(--spacing-lg) + env(safe-area-inset-left));padding-right:calc(var(--spacing-lg) + env(safe-area-inset-right));background-color:var(--color-primary);border-bottom:1px solid var(--color-border);flex-shrink:0}.landing-topbar .landing-logo{height:32px}.landing-main{flex:1;min-height:0}.landing-card-wrapper{flex:1;min-height:0;padding:var(--spacing-lg);padding-bottom:calc(var(--spacing-lg) + env(safe-area-inset-bottom));overflow-y:auto}.landing-card{background:transparent;box-shadow:none;border-radius:0;padding:var(--spacing-md);min-height:0;max-width:min(400px,calc(100vw - 2 * var(--spacing-md)))}.landing-card .landing-btn-secondary{background-color:#d1d5db;color:var(--color-text-primary)}.landing-card .landing-btn-secondary:hover:not(:disabled){background-color:#9ca3af}[data-theme=dark] .landing-card .landing-btn-secondary{background-color:#6b7280;color:#fff}[data-theme=dark] .landing-card .landing-btn-secondary:hover:not(:disabled){background-color:#4b5563}.landing-card .landing-divider:before,.landing-card .landing-divider:after{background-color:#9ca3af}.landing-card .landing-divider-text{color:#6b7280}[data-theme=dark] .landing-card .landing-divider:before,[data-theme=dark] .landing-card .landing-divider:after{background-color:#6b7280}[data-theme=dark] .landing-card .landing-divider-text{color:#9ca3af}}@media(max-width:640px){.landing-card-wrapper{padding:var(--spacing-md);padding-bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom))}.landing-card{max-width:min(400px,calc(100vw - 2 * var(--spacing-md)));padding:var(--spacing-sm)}.landing-card-icon{width:48px;height:48px;margin-bottom:var(--spacing-md)}.landing-card-title{font-size:1.5rem}.landing-card .form-label,.landing-card .form-input{font-size:var(--text-base)}}@media(max-width:320px){.landing-card{padding:var(--spacing-md)}.landing-card-title{font-size:1.25rem}}.time-input-12h{display:flex;align-items:center;gap:var(--spacing-xs);width:100%;min-width:0;box-sizing:border-box}.time-input-12h .time-input-part{width:100%;min-width:0;max-width:100%;box-sizing:border-box}.time-input-12h .time-input-separator{color:var(--color-text);font-weight:600}.event-form{display:flex;flex-direction:column;gap:1.25rem;padding-bottom:0;min-width:0}.event-form .form-group{display:flex;flex-direction:column;gap:.5rem;min-width:0}.event-form .form-label{font-size:.875rem;font-weight:500;color:var(--color-text-primary)}.event-form .form-input{padding:.625rem;border:2px solid var(--color-border);border-radius:var(--radius-lg);font-size:.875rem;background-color:var(--color-surface);color:var(--color-text-primary);transition:border-color var(--transition-base),box-shadow var(--transition-base);outline:none;box-sizing:border-box;max-width:100%;min-width:0}.event-form .form-input:focus{outline:none!important;border-color:var(--color-primary)!important;border-width:2px!important;box-shadow:0 0 0 4px #7b93c040!important}.event-form .form-input:disabled{opacity:.6;cursor:not-allowed}.event-form .form-textarea{resize:vertical;min-height:80px;font-family:inherit}.checkbox-label{display:flex;align-items:center;gap:0;cursor:pointer;font-size:.875rem;color:var(--color-text-primary)}.checkbox-label span{margin-left:.5rem}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed;opacity:.6}.radio-label{display:flex;align-items:center;cursor:pointer;font-size:.875rem;color:var(--color-text-primary)}.radio-label input[type=radio]{cursor:pointer;accent-color:var(--color-primary);flex-shrink:0;margin:0 .75rem 0 0}.radio-label span{flex:1}.monthly-repeat-rule-options{display:flex;flex-direction:column;gap:.5rem}.school-event-section{padding:1rem;background-color:var(--color-surface-hover);border-radius:6px;border:1px solid var(--color-border);display:flex;flex-direction:column;gap:1rem}.datetime-group{display:flex;flex-direction:column;gap:1rem;min-width:0}.custom-repeat-section{padding:1rem;background-color:var(--color-surface-hover);border-radius:6px;border:1px solid var(--color-border)}.custom-repeat-inputs{display:flex;gap:.5rem;align-items:center}.custom-repeat-inputs input[type=number]{width:80px}.custom-repeat-inputs select{flex:1}.days-of-week{display:flex;gap:.5rem;flex-wrap:wrap}.day-button{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-base);min-width:50px;min-height:32px}.day-button:hover:not(:disabled){background-color:var(--color-surface-hover);border-color:var(--color-primary)}.day-button.active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.day-button:disabled{opacity:.5;cursor:not-allowed}.repeat-end-section{padding:1rem;background-color:var(--color-surface-hover);border-radius:6px;border:1px solid var(--color-border);display:flex;flex-direction:column;gap:1rem}.form-helper-error{margin-top:.25rem;font-size:.875rem;color:#dc2626}.form-actions{display:flex;gap:1rem;justify-content:space-between;margin-top:1.5rem;margin-bottom:0;padding-top:1rem;padding-bottom:1rem}@media(max-width:850px){.event-form{gap:1rem}.event-form .form-input{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-base);min-height:48px}.datetime-inputs{flex-direction:column;width:100%;min-width:0}.datetime-inputs .form-input,.datetime-inputs .time-input-12h,.datetime-inputs input[type=date],.datetime-inputs input[type=time]{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.custom-repeat-inputs{flex-direction:column;gap:var(--spacing-sm)}.custom-repeat-inputs input[type=number],.custom-repeat-inputs select{width:100%}.custom-repeat-section,.school-event-section,.repeat-end-section{padding:var(--spacing-md);gap:var(--spacing-md)}.days-of-week{justify-content:space-between}.day-button{flex:1;min-width:40px;min-height:40px;padding:var(--spacing-xs);font-size:var(--text-xs)}.form-actions{flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-lg);padding-top:var(--spacing-md)}.form-actions-left,.form-actions-right{width:100%;flex-direction:column;gap:var(--spacing-sm)}.btn-cancel,.btn-submit,.btn-delete,.btn-duplicate{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:48px!important;height:48px!important;max-height:48px!important;padding:0 var(--spacing-lg)!important;border-radius:var(--radius-lg)!important;font-size:var(--text-base)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:48px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}}@media(max-width:640px){.event-form{gap:var(--spacing-md)}.event-form .form-group{gap:.375rem}.event-form .form-label{font-size:var(--text-xs)}.event-form .form-input{padding:var(--spacing-sm);font-size:var(--text-sm);min-height:44px}.custom-repeat-section,.school-event-section,.repeat-end-section{padding:var(--spacing-sm)}.checkbox-label{font-size:var(--text-xs)}.checkbox-label input[type=checkbox]{width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important}.day-button{min-height:36px;padding:var(--spacing-xs)}.form-error-general{padding:var(--spacing-sm);font-size:var(--text-xs)}.btn-cancel,.btn-submit,.btn-delete,.btn-duplicate{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:44px!important;height:44px!important;max-height:44px!important;padding:0 var(--spacing-lg)!important;border-radius:var(--radius-lg)!important;font-size:var(--text-base)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:44px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}}.task-form{display:flex;flex-direction:column;gap:1.25rem;padding-bottom:0;min-width:0}.task-form .form-group{display:flex;flex-direction:column;gap:.5rem;min-width:0}.task-form .form-label{font-size:.875rem;font-weight:500;color:var(--color-text-primary)}.task-form .form-input{padding:.625rem;border:2px solid var(--color-border);border-radius:var(--radius-lg);font-size:.875rem;background-color:var(--color-surface);color:var(--color-text-primary);transition:border-color var(--transition-base),box-shadow var(--transition-base);outline:none;box-sizing:border-box;max-width:100%;min-width:0}.task-form .form-input:focus{outline:none!important;border-color:var(--color-primary)!important;border-width:2px!important;box-shadow:0 0 0 4px #7b93c040!important}.task-form .form-input:disabled{opacity:.6;cursor:not-allowed}.task-form .form-textarea{resize:vertical;min-height:80px;font-family:inherit}.checkbox-group{margin:.5rem 0}.checkbox-label{display:flex;align-items:center;gap:1rem;cursor:pointer;font-size:.875rem;color:var(--color-text-primary)}.task-form input[type=checkbox],.checkbox-label input[type=checkbox],input[type=checkbox].task-checkbox{-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;border:2px solid var(--color-border)!important;border-radius:4px!important;cursor:pointer!important;position:relative!important;background-color:var(--color-surface)!important;background-image:none!important;transition:all var(--transition-base)!important;flex-shrink:0!important;margin:0!important;padding:0!important;vertical-align:middle!important;outline:none!important}.task-form input[type=checkbox]:hover:not(:disabled),.checkbox-label input[type=checkbox]:hover:not(:disabled){border-color:var(--color-primary)!important}.task-form input[type=checkbox]:checked,.checkbox-label input[type=checkbox]:checked{background-color:var(--color-primary)!important;border-color:var(--color-primary)!important;background-image:none!important}.task-form input[type=checkbox]:checked:after,.checkbox-label input[type=checkbox]:checked:after{content:""!important;position:absolute!important;left:5px!important;top:2px!important;width:4px!important;height:8px!important;border:solid white!important;border-width:0 2px 2px 0!important;transform:rotate(45deg)!important;display:block!important;box-sizing:border-box!important}.task-form input[type=checkbox]:disabled,.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed!important;opacity:.6!important}.school-task-section{padding:1rem;background-color:var(--color-surface-hover);border-radius:6px;border:1px solid var(--color-border);display:flex;flex-direction:column;gap:1rem}.duration-inputs{display:flex;gap:.5rem;align-items:center}.duration-inputs .form-input{width:80px}.duration-inputs span{font-size:.875rem;color:var(--color-text-secondary)}.datetime-inputs{display:flex;gap:.5rem;min-width:0}.datetime-inputs .form-input{flex:1;min-width:0;max-width:100%;box-sizing:border-box}.datetime-inputs input[type=date],.datetime-inputs input[type=time]{min-width:0;width:100%}.datetime-inputs .time-input-12h{min-width:0;flex:1}.schedule-section{padding:1rem;background-color:var(--color-surface-hover);border-radius:6px;border:1px solid var(--color-border);display:flex;flex-direction:column;gap:1rem}.form-error-general{padding:.75rem;background-color:#dc26261a;border:1px solid rgba(220,38,38,.3);border-radius:4px;color:#dc2626;font-size:.875rem}.task-form .form-actions{display:flex;gap:1rem;justify-content:space-between;margin-top:1.5rem;margin-bottom:0;padding-top:1rem;padding-bottom:1rem}.form-actions-left{display:flex;gap:.5rem}.form-actions-right{display:flex;gap:1rem}.btn-task-status{padding:var(--spacing-xs) var(--spacing-md);min-width:90px;height:32px;border:none;border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:600;letter-spacing:.5px;text-transform:uppercase;line-height:1;color:#fff;cursor:pointer;transition:all var(--transition-base)}.btn-task-status.complete{background-color:#84c596}.btn-task-status.complete:hover:not(:disabled){background-color:#81b790;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-task-status.reopen{background-color:#f5ab44}.btn-task-status.reopen:hover:not(:disabled){background-color:#e19223;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-task-status:disabled{opacity:.5;cursor:not-allowed}.modal-header-actions .btn-task-status{flex:0 0 auto;width:auto;min-width:90px}@media(max-width:850px){.task-form{gap:1rem}.task-form .form-input{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-base);min-height:48px}.datetime-inputs{flex-direction:column;width:100%;min-width:0}.datetime-inputs .form-input,.datetime-inputs .time-input-12h,.datetime-inputs input[type=date],.datetime-inputs input[type=time]{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.duration-inputs{flex-wrap:wrap;gap:var(--spacing-sm)}.duration-inputs .form-input{width:100px}.school-task-section,.schedule-section{padding:var(--spacing-md);gap:var(--spacing-md)}.task-form .form-actions{flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-lg);padding-top:var(--spacing-md)}.task-form .form-actions-left,.task-form .form-actions-right{width:100%;flex-direction:column;gap:var(--spacing-sm)}.task-form .form-actions .btn-cancel,.task-form .form-actions .btn-submit,.task-form .form-actions .btn-delete{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:48px!important;height:48px!important;max-height:48px!important;padding:0 var(--spacing-lg)!important;border-radius:var(--radius-lg)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:48px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:var(--text-base)!important}}@media(max-width:640px){.task-form{gap:var(--spacing-md)}.task-form .form-group{gap:.375rem}.task-form .form-label{font-size:var(--text-xs)}.task-form .form-input{padding:var(--spacing-sm);font-size:var(--text-sm);min-height:44px}.school-task-section,.schedule-section{padding:var(--spacing-sm)}.checkbox-label{font-size:var(--text-xs)}.task-form input[type=checkbox],.checkbox-label input[type=checkbox]{width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important}.duration-inputs{justify-content:space-between}.duration-inputs .form-input{width:80px;flex:0 0 80px}.form-error-general{padding:var(--spacing-sm);font-size:var(--text-xs)}.task-form .form-actions .btn-cancel,.task-form .form-actions .btn-submit,.task-form .form-actions .btn-delete{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:44px!important;height:44px!important;max-height:44px!important;padding:0 var(--spacing-lg)!important;border-radius:var(--radius-lg)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:44px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:var(--text-base)!important}}.expense-details-section{display:flex;flex-direction:column;gap:1.25rem}.expense-repeat-section{padding:1rem;background-color:var(--color-surface-hover);border-radius:6px;border:1px solid var(--color-border);display:flex;flex-direction:column;gap:1rem}.expense-repeat-section-title{margin:0;font-size:.875rem;font-weight:600;color:var(--color-text-primary)}.recurring-scope-modal{padding:1rem 0;display:flex;flex-direction:column;min-height:0}.recurring-scope-modal .event-name{font-weight:600;font-size:1.1rem;margin-bottom:1rem;color:var(--color-text-primary)}.recurring-scope-modal .scope-question{margin-bottom:.5rem;color:var(--color-text-secondary);line-height:1.5}.recurring-scope-modal .scope-note{margin-bottom:1.5rem;padding:.75rem;background-color:var(--color-surface-hover);border-left:3px solid var(--color-primary);border-radius:4px;font-size:.9rem;color:var(--color-text-secondary);line-height:1.5}.recurring-scope-modal .scope-restriction{background-color:rgba(var(--color-primary-rgb, 123, 147, 192),.1);border-left-color:var(--color-primary);font-weight:500}.recurring-scope-modal .error-message{margin-top:.75rem;margin-bottom:1rem;padding:.75rem;background-color:#dc35451a;border-left:3px solid #dc3545;border-radius:4px;font-size:.9rem;color:#dc3545;line-height:1.5;font-weight:500}.scope-options{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.scope-option{display:flex;align-items:flex-start;gap:1rem;padding:1rem;border:2px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s ease}.scope-option:hover{border-color:var(--color-primary);background-color:var(--color-surface-hover)}.scope-option input[type=radio]{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;margin-top:.25rem!important;width:20px!important;height:20px!important;border:2px solid var(--color-border)!important;border-radius:50%!important;cursor:pointer!important;position:relative!important;background-color:var(--color-surface)!important;transition:all var(--transition-base)!important;flex-shrink:0!important}.scope-option input[type=radio]:hover{border-color:var(--color-primary)!important}.scope-option input[type=radio]:checked{border-color:var(--color-primary)!important}.scope-option input[type=radio]:checked:after{content:""!important;position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;width:10px!important;height:10px!important;border-radius:50%!important;background-color:var(--color-primary)!important;display:block!important}.scope-option input[type=radio]:checked+.option-content{color:var(--color-primary)}.option-content{display:flex;flex-direction:column;gap:.25rem;flex:1}.option-title{font-weight:600;font-size:.95rem;color:var(--color-text-primary)}.option-description{font-size:.85rem;color:var(--color-text-secondary);line-height:1.4}.scope-option input[type=radio]:checked~.option-content .option-title{color:var(--color-primary)}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:auto;padding-top:1.5rem;flex-shrink:0;position:relative;z-index:10}.modal-actions .btn{opacity:1!important;visibility:visible!important;position:relative;z-index:1}@media(max-width:850px){.recurring-scope-modal .event-name{font-size:1rem;margin-bottom:var(--spacing-md)}.recurring-scope-modal .scope-note,.recurring-scope-modal .error-message{padding:var(--spacing-sm);font-size:var(--text-sm)}.scope-options{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.scope-option{padding:var(--spacing-md);gap:var(--spacing-md)}.option-title{font-size:var(--text-sm)}.option-description{font-size:var(--text-xs)}.modal-actions{flex-direction:column;gap:var(--spacing-sm);padding-top:var(--spacing-md)}.modal-actions .btn,.modal-actions button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:48px!important;height:48px!important;max-height:48px!important;padding:0 var(--spacing-lg)!important;border-radius:var(--radius-lg)!important;font-size:var(--text-base)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:48px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}}@media(max-width:640px){.recurring-scope-modal{padding:var(--spacing-sm) 0}.recurring-scope-modal .event-name{font-size:var(--text-base)}.recurring-scope-modal .scope-question{font-size:var(--text-sm)}.scope-option{padding:var(--spacing-sm);gap:var(--spacing-sm)}.scope-option input[type=radio]{width:18px!important;height:18px!important}.scope-option input[type=radio]:checked:after{width:8px!important;height:8px!important}.modal-actions .btn,.modal-actions button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:44px!important;height:44px!important;max-height:44px!important;padding:0 var(--spacing-lg)!important;border-radius:var(--radius-lg)!important;font-size:var(--text-base)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:44px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}}.average-grade-chart{position:relative;flex:1;min-height:120px;display:flex;flex-direction:column;width:100%}.grade-chart-scale-selector{flex-shrink:0;margin-bottom:var(--spacing-sm)}.grade-scale-select{font-size:var(--text-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer}.grade-scale-select:focus{outline:none;border-color:var(--color-primary)}.average-grade-chart-svg{width:100%;flex:1;min-height:100px}.chart-legend{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-top:var(--spacing-md);font-size:var(--text-xs);color:var(--color-text-secondary)}.chart-legend-item{display:flex;align-items:center;gap:var(--spacing-xs)}.chart-legend-color{width:10px;height:10px;border-radius:2px}.chart-bar{transition:opacity .15s ease}.chart-bar:hover,.chart-bar-hover{opacity:.85}.monthly-expense-chart{position:relative;flex:1;min-height:120px;display:flex;flex-direction:column;width:100%;overflow:visible}.monthly-expense-chart .recharts-wrapper,.monthly-expense-chart .recharts-surface{overflow:visible}.monthly-expense-chart-svg{width:100%;flex:1;min-height:100px}.chart-loading,.chart-empty{color:var(--color-text-secondary);font-size:var(--text-sm);margin:var(--spacing-lg) 0;text-align:center}.chart-axis-labels{display:flex;justify-content:space-between;padding:0 var(--spacing-sm);margin-top:var(--spacing-xs)}.chart-month-label{font-size:var(--text-xs);color:var(--color-text-secondary);flex:1;text-align:center}.chart-point{transition:transform .15s ease}.chart-point:hover,.chart-point-hover{transform:scale(1.5)}.chart-tooltip{position:absolute;transform:translate(-50%,-100%);margin-top:-8px;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-surface-elevated, var(--color-surface));border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--text-sm);color:var(--color-text-primary);pointer-events:none;z-index:10;white-space:nowrap}.chart-tooltip-recharts{position:relative;transform:translate(-50%,-100%);margin-top:-8px;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-surface-elevated, var(--color-surface));border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--text-sm);color:var(--color-text-primary);pointer-events:none;z-index:10;white-space:nowrap}.chart-time-navigator{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.chart-nav-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;transition:background-color .15s,border-color .15s}.chart-nav-btn:hover:not(:disabled){background-color:var(--color-surface-hover, rgba(0, 0, 0, .05));border-color:var(--color-border-hover, var(--color-border))}.chart-nav-btn:disabled{opacity:.4;cursor:not-allowed}.chart-nav-btn img{display:block}[data-theme=dark] .chart-nav-btn img{filter:invert(1) brightness(1.2)}.chart-view-range-select{font-size:var(--text-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;min-width:0}.chart-view-range-select:focus{outline:none;border-color:var(--color-primary)}.dashboard-container{height:100vh;display:flex;flex-direction:column;background-color:var(--color-background);overflow:hidden;width:100%;max-width:100vw}.dashboard-content{flex:1;padding:var(--spacing-2xl);overflow-y:auto;height:calc(100vh - 56px)}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr 1fr 400px;grid-template-rows:auto auto auto auto;grid-template-areas:"welcome welcome welcome welcome" "clock clock clock schedule" "exams budget grades schedule" "gradeChart gradeChart expenseChart expenseChart";gap:var(--spacing-xl);max-width:1800px;margin:0 auto;width:100%;box-sizing:border-box}.widget-welcome{grid-area:welcome;margin-bottom:calc(var(--page-title-content-gap) - var(--spacing-xl))}.widget-clock{grid-area:clock}.widget-exams{grid-area:exams}.widget-budget{grid-area:budget}.widget-grades{grid-area:grades}.widget-schedule{--dashboard-schedule-fade-height: 56px;grid-area:schedule}.widget-grade-chart{grid-area:gradeChart;min-width:0;min-height:400px;max-height:520px}.widget-expense-chart{grid-area:expenseChart;min-width:0;min-height:400px;max-height:520px}.widget-grade-chart .card-content-chart,.widget-expense-chart .card-content-chart{min-width:0;min-height:0;flex:1;display:flex;flex-direction:column;overflow:visible}.widget-expense-chart .card-header .expense-category-select-header{flex-shrink:0;font-size:var(--text-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer;min-width:0}.widget-expense-chart .card-header .expense-category-select-header:focus{outline:none;border-color:var(--color-primary)}.card-header-actions{display:flex;align-items:center;gap:var(--spacing-md);flex-shrink:0}.widget-grade-chart .card-header,.widget-expense-chart .card-header{flex-direction:row;flex-wrap:nowrap;align-items:center;gap:var(--spacing-sm)}.widget-grade-chart .card-header .card-title,.widget-expense-chart .card-header .card-title{flex:1;min-width:0}.widget-grade-chart .card-header .card-header-actions,.widget-expense-chart .card-header .card-header-actions{flex-shrink:0;justify-content:flex-end}@media(max-width:768px){.widget-expense-chart .card-header .expense-category-select.expense-category-select-header{display:none}}@media(max-width:640px){.widget-grade-chart .card-header,.widget-expense-chart .card-header{flex-direction:column;flex-wrap:wrap;align-items:stretch}.widget-grade-chart .card-header .card-title,.widget-expense-chart .card-header .card-title{flex:none}.widget-grade-chart .card-header .card-header-actions,.widget-expense-chart .card-header .card-header-actions{justify-content:flex-end}}.widget-grade-chart .card-content-chart .average-grade-chart,.widget-expense-chart .card-content-chart .monthly-expense-chart{flex:1;min-height:220px}.widget-grade-chart .recharts-responsive-container,.widget-expense-chart .recharts-responsive-container{flex:1;min-height:0}.widget-schedule .card-title{text-align:left}.welcome-message{font-size:var(--text-4xl);font-weight:700;color:var(--color-text-primary);margin:0}.clock-widget{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-md);display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--spacing-lg);width:100%;box-sizing:border-box;min-width:0}.clock-main{display:flex;flex-direction:column;justify-content:center;text-align:left;padding-left:var(--spacing-2xl);padding-right:var(--spacing-xl)}.clock-weather{display:flex;align-items:center;gap:var(--spacing-md);color:var(--color-text-secondary);font-size:var(--text-lg)}.clock-weather-icon{flex-shrink:0;color:var(--color-text-primary);width:56px;height:56px}.clock-weather-temp{font-weight:600;font-size:var(--text-xl);color:var(--color-text-primary)}.clock-weather-loading{color:var(--color-text-secondary)}.clock-weather-text{display:flex;align-items:center;gap:var(--spacing-md)}.clock-quote{font-size:var(--text-lg);color:var(--color-text-secondary);font-style:italic;margin:0;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);border-left:3px solid var(--color-border);max-width:360px;line-height:1.5}@media(min-width:851px){.clock-widget{gap:var(--spacing-xl)}.clock-weather{flex-direction:column;align-items:center;gap:var(--spacing-xs)}.clock-weather-icon{width:72px;height:72px}.clock-quote{max-width:none}}.clock-time{font-size:5rem;font-weight:700;color:var(--color-text-primary);line-height:1;display:flex;align-items:baseline;justify-content:center;gap:var(--spacing-sm)}.clock-ampm{font-size:2rem;font-weight:400;color:var(--color-text-secondary)}.clock-date{font-size:clamp(var(--text-xs),4vw,var(--text-xl));font-weight:500;color:var(--color-text-secondary);margin-top:var(--spacing-md);white-space:nowrap}.info-card{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;max-height:400px;width:100%;box-sizing:border-box;min-width:0}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);gap:var(--spacing-sm);min-height:40px}.widget-exams .card-header,.widget-grades .card-header,.widget-budget .card-header{margin-bottom:var(--spacing-sm)}.card-title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0;text-align:center}.card-header .card-title{margin:0;flex:1;min-width:0;text-align:left}.card-title-link{display:inline-flex;align-items:center;gap:.5rem;color:inherit;text-decoration:none;cursor:pointer;transition:opacity .2s}.card-title-icon{width:20px;height:20px;object-fit:contain;flex-shrink:0}.card-title-link:hover{opacity:.7;text-decoration:underline}.card-content{flex:1;display:flex;flex-direction:column;justify-content:center}.card-content-with-items{justify-content:flex-start}.card-remaining{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.widget-exams .card-remaining,.widget-grades .card-remaining{margin-top:var(--spacing-lg)}@media(max-width:850px){.widget-exams .card-remaining,.widget-grades .card-remaining{display:none}}.card-empty{text-align:center;color:var(--color-text-secondary);font-size:var(--text-sm);margin:0}.schedule-empty{display:flex;flex-direction:column;gap:var(--spacing-md);align-items:center}.schedule-empty-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap;justify-content:center;padding-top:var(--spacing-lg);margin-top:var(--spacing-md)}.schedule-empty-actions .btn-add-expense,.schedule-empty-actions .btn-add-category{flex:0 0 auto}.schedule-more{flex:1;display:flex;flex-direction:column;gap:var(--spacing-md);align-items:center;justify-content:flex-start;min-height:0;margin-top:var(--spacing-md);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.card-content-exams-empty,.card-content-grades-empty{justify-content:flex-start;align-items:stretch}.exams-empty,.grades-empty{display:flex;flex-direction:column;gap:var(--spacing-md);align-items:center;width:100%;padding-top:0}.exams-empty .card-empty,.grades-empty .card-empty{margin:0}.add-graded-event-btn{width:40px;min-width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;line-height:1;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background-color:var(--color-primary);color:#fffffff2;border:none;border-radius:var(--radius-md);cursor:pointer;flex-shrink:0}.add-graded-event-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.add-graded-event-btn:active{transform:scale(.95)}.add-graded-event-btn img{width:20px;height:20px;display:block;filter:brightness(0) invert(1)}.exams-empty .btn-add-expense{flex:0 0 auto}.exams-list,.grades-list{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.exam-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);height:59px;box-sizing:border-box;background-color:var(--color-border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base)}.exam-item:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.exam-date{display:flex;align-items:baseline;gap:var(--spacing-xs);font-size:var(--text-base);color:var(--color-text-primary)}.exam-day{font-weight:700;font-size:var(--text-lg)}.exam-month{font-weight:400}.exam-subject{font-weight:600;font-size:var(--text-lg);color:var(--color-text-primary)}.widget-budget .card-content{margin-top:0;justify-content:flex-start}.budget-content{display:flex;flex-direction:column;gap:var(--spacing-lg);min-width:0;width:100%;margin-top:0}.widget-budget .progress-bar-container{width:100%;height:35px;min-height:35px;flex-shrink:0;background-color:var(--color-border-light);border-radius:var(--radius-full);overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.widget-budget .progress-bar{height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal);position:absolute;left:0;top:0}.widget-budget .progress-bar-green{background-color:#10b981}.widget-budget .progress-bar-yellow{background-color:#f59e0b}.widget-budget .progress-bar-red{background-color:#ef4444}.widget-budget .progress-bar-dark-red{background-color:#991b1b}.widget-budget .progress-bar-green~.total-percentage,.widget-budget .progress-bar-yellow~.total-percentage{color:var(--color-text-primary)}.widget-budget .progress-bar-red~.total-percentage,.widget-budget .progress-bar-dark-red~.total-percentage{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.widget-budget .total-percentage{font-size:var(--text-base);font-weight:600;text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;color:var(--color-text-primary);margin:0}.budget-details{display:flex;flex-direction:column;gap:var(--spacing-md)}.budget-row{display:flex;justify-content:space-between;align-items:center}.budget-row--total{padding-top:var(--spacing-md);margin-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.budget-label,.budget-value{font-size:var(--text-base);color:var(--color-text-primary)}.budget-value--bold,.budget-row--total .budget-label,.budget-row--total .budget-value{font-weight:600}.budget-row--days-until{padding-top:var(--spacing-sm);margin-top:var(--spacing-sm);border-top:1px solid var(--color-border);justify-content:flex-end}.budget-row--days-until .budget-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.widget-budget .budget-days-until{margin-top:var(--spacing-md);font-size:var(--text-sm);color:var(--color-text-secondary);text-align:right}.grade-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);height:59px;box-sizing:border-box;background-color:var(--color-border-light);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base)}.grade-item:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.grade-value{font-weight:700;font-size:var(--text-lg);color:var(--color-text-primary)}.grade-subject{font-weight:600;font-size:var(--text-lg);color:var(--color-text-primary)}.events-card{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;min-height:0;max-height:650px;overflow:hidden;width:100%;box-sizing:border-box;min-width:0}.widget-schedule.events-card{position:relative}.widget-schedule.events-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:var(--dashboard-schedule-fade-height);background:linear-gradient(to top,var(--color-surface) 0%,var(--color-surface) 25%,transparent 100%);pointer-events:none;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.events-list{flex:1;display:flex;flex-direction:column;gap:var(--spacing-md);overflow-y:auto;margin-top:var(--spacing-md);padding-top:var(--spacing-xs);padding-right:var(--spacing-xs);min-height:0;scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.widget-schedule .events-list{padding-bottom:var(--dashboard-schedule-fade-height)}.events-list::-webkit-scrollbar{width:6px}.events-list::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.events-list::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.events-list::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.event-item{padding:var(--spacing-md)!important;border-radius:var(--radius-lg)!important;display:flex;flex-direction:column;gap:var(--spacing-xs);min-height:80px;justify-content:center;cursor:pointer;transition:all var(--transition-base)}.event-item:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.event-time{font-size:var(--text-lg);font-weight:700}.event-name{font-size:var(--text-base);font-weight:500}.schedule-task-item{padding:var(--spacing-md);border-radius:var(--radius-lg);background-color:var(--color-surface);color:var(--color-text-primary);display:flex;flex-direction:row;align-items:center;gap:var(--spacing-md);min-height:80px;position:relative;transition:transform .2s,box-shadow .2s;box-shadow:0 1px 2px #00000014;cursor:pointer}.task-content-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1;min-width:0}.schedule-task-item:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.schedule-task-item.completed{opacity:.6}.schedule-task-item.completed .task-name{text-decoration:line-through}.schedule-task-item.overdue{border-color:#dc2626!important;border-width:2px!important}.task-checkmark{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);display:flex;align-items:center;justify-content:center;width:18px;height:18px;background-color:var(--color-text-secondary);border-radius:50%;color:#fff;z-index:10;flex-shrink:0;opacity:1;box-shadow:0 1px 2px #0000001a}.task-checkmark svg{width:12px;height:12px}.task-overdue-indicator{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);display:flex;align-items:center;justify-content:center;width:32px;height:32px;background-color:#dc2626;border-radius:50%;color:#fff;font-weight:700;font-size:1.25rem;line-height:1;z-index:10;flex-shrink:0;opacity:1;box-shadow:0 1px 2px #0000001a}.task-time{font-size:var(--text-sm);font-weight:600;margin-bottom:2px}.task-name{font-size:var(--text-base);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-task-checkbox{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:var(--spacing-sm)}.dashboard-task-checkbox-input{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;width:24px!important;height:24px!important;border:2px solid var(--color-border)!important;border-radius:4px!important;cursor:pointer!important;position:relative!important;background-color:var(--color-surface)!important;transition:all var(--transition-base)!important;flex-shrink:0!important;margin:0!important}.dashboard-task-checkbox-input:hover{border-color:var(--color-primary)!important}.dashboard-task-checkbox-input:checked{background-color:var(--color-primary)!important;border-color:var(--color-primary)!important}.dashboard-task-checkbox-input:checked:after{content:""!important;position:absolute!important;left:7px!important;top:3px!important;width:5px!important;height:10px!important;border:solid white!important;border-width:0 2.5px 2.5px 0!important;transform:rotate(45deg)!important;display:block!important}@media(max-width:1280px){.dashboard-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto auto auto auto auto;grid-template-areas:"welcome welcome" "clock clock" "exams grades" "budget budget" "schedule schedule" "gradeChart gradeChart" "expenseChart expenseChart";gap:var(--spacing-lg)}.events-card{min-height:auto;max-height:none;overflow:visible}.events-list{overflow-y:visible;min-height:auto}.widget-schedule.events-card:after{display:none}.widget-schedule .events-list{padding-bottom:0}}@media(max-width:1024px){.dashboard-container{flex:1;min-height:calc(100dvh - 56px)}.dashboard-content{padding:var(--spacing-xl);flex:1;min-height:0;overflow-y:auto}.dashboard-grid{gap:var(--spacing-md)}}@media(max-width:850px){.dashboard-content{padding:var(--spacing-lg);padding-top:var(--spacing-lg);flex:1;min-height:0}.dashboard-grid{grid-template-columns:1fr;grid-template-rows:auto;grid-template-areas:"welcome" "clock" "exams" "grades" "budget" "schedule" "gradeChart" "expenseChart";gap:var(--spacing-md);height:auto;max-height:none}.welcome-message{font-size:var(--text-3xl);margin-top:var(--spacing-md)}.clock-widget{flex-direction:column;text-align:center;padding-top:var(--spacing-2xl)}.clock-main{text-align:center}.clock-quote{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);padding-top:var(--spacing-md);margin-top:var(--spacing-sm);border-left:none;border-top:3px solid var(--color-border);max-width:none}.clock-weather-icon{width:60px;height:60px}.clock-time{font-size:3.5rem}.clock-ampm{font-size:1.25rem}.events-card{min-height:auto;max-height:none;overflow:visible}.events-list{overflow-y:visible;min-height:auto}.widget-schedule.events-card:after{display:none}.widget-schedule .events-list{padding-bottom:0}}@media(max-width:640px){.clock-weather-icon{width:52px;height:52px}.dashboard-content{padding:var(--spacing-md);padding-top:var(--spacing-md)}.welcome-message{font-size:var(--text-2xl);margin-top:var(--spacing-lg)}.dashboard-grid{gap:var(--spacing-md)}.clock-time{font-size:3rem}.clock-ampm{font-size:1rem}.clock-date,.info-card h3{font-size:var(--text-sm)}.info-card-value{font-size:var(--text-xl)}}@media(max-width:380px){.clock-weather-icon{width:48px;height:48px}.dashboard-content{padding:var(--spacing-xs);padding-top:var(--spacing-xs)}.dashboard-grid{gap:var(--spacing-sm)}.welcome-message{font-size:var(--text-xl);margin-top:var(--spacing-sm)}.clock-time{font-size:2.5rem}.clock-ampm{font-size:.875rem}.clock-date{font-size:var(--text-xs)}.clock-quote{font-size:var(--text-base)}.info-card,.clock-widget,.events-card{padding:var(--spacing-sm);min-width:0;overflow:hidden}.widget-schedule.events-card{overflow:visible}.clock-widget{padding-top:var(--spacing-lg)}.card-title{font-size:var(--text-base)}.exam-item,.grade-item{padding:var(--spacing-sm)}.exam-subject,.grade-subject,.exam-day,.grade-value{font-size:var(--text-base)}.budget-widget-title{font-size:var(--text-xl)}}.delete-category-confirm.auth-form .delete-confirmation-text,.delete-category-confirm.auth-form .form-label,.delete-category-confirm.auth-form .form-input{color:var(--color-text-primary);font-family:var(--font-sans)}.delete-category-confirm.auth-form .form-input::placeholder{color:var(--color-text-secondary)}.delete-category-confirm.auth-form .delete-confirmation-text{text-align:left;margin-bottom:var(--spacing-lg);line-height:1.6}.delete-category-confirm.auth-form .form-group{margin-bottom:var(--spacing-md)}.task-preview-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.task-preview-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background-color:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);cursor:grab;transition:all var(--transition-fast)}.task-preview-item:active{cursor:grabbing}.task-preview-item:hover{background-color:var(--color-surface-hover);border-color:var(--color-primary)}.task-preview-item.completed{opacity:.6}.task-preview-item.overdue{border-color:#dc2626;border-width:2px}.task-preview-checkbox{flex-shrink:0}.task-preview-checkbox input[type=checkbox]{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;width:18px!important;height:18px!important;border:2px solid var(--color-border)!important;border-radius:4px!important;cursor:pointer!important;position:relative!important;background-color:var(--color-surface)!important;transition:all var(--transition-base)!important;flex-shrink:0!important;margin:0!important}.task-preview-checkbox input[type=checkbox]:hover{border-color:var(--color-primary)!important}.task-preview-checkbox input[type=checkbox]:checked{background-color:var(--color-primary)!important;border-color:var(--color-primary)!important}.task-preview-checkbox input[type=checkbox]:checked:after{content:""!important;position:absolute!important;left:5px!important;top:2px!important;width:4px!important;height:8px!important;border:solid white!important;border-width:0 2px 2px 0!important;transform:rotate(45deg)!important;display:block!important}.task-preview-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.task-preview-name{font-size:.875rem;font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-preview-item.completed .task-preview-name{text-decoration:line-through}.task-preview-meta{display:flex;align-items:center;gap:var(--spacing-sm)}.task-preview-due{font-size:.75rem;color:var(--color-text-secondary)}.task-preview-due.overdue{color:#dc2626;font-weight:600}.task-preview-category{width:12px;height:12px;border-radius:50%;flex-shrink:0}.task-preview-loading,.task-preview-error,.task-preview-empty{padding:var(--spacing-md);text-align:center;font-size:.875rem;color:var(--color-text-secondary)}.task-preview-error{color:var(--color-error)}.calendar-container{--calendar-time-column-width: 60px;height:100%;max-height:100%;min-height:0;display:flex;flex-direction:column;background-color:var(--color-background);overflow:hidden}.calendar-content{flex:1;padding:var(--spacing-2xl);max-width:1800px;margin:0 auto;width:100%;display:flex;flex-direction:column;min-height:0;overflow:hidden}.calendar-layout{display:grid;grid-template-columns:1fr 300px;gap:var(--spacing-xl);flex:1;min-height:0;overflow:hidden}@media(min-width:1600px){.calendar-layout{grid-template-columns:1fr 320px}}@media(min-width:1920px){.calendar-layout{grid-template-columns:1fr 350px}}.calendar-main{display:flex;flex-direction:column;gap:var(--spacing-md);background-color:transparent;border-radius:0;padding:0;box-shadow:none;min-height:0;overflow:hidden}.calendar-controls{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:center;gap:var(--spacing-lg);width:100%;margin-bottom:0;min-height:52px}.calendar-view-selector{display:flex;align-items:stretch;gap:0;background-color:var(--color-surface);border-radius:var(--radius-lg);padding:4px;margin-left:0;margin-bottom:0;width:fit-content;min-width:260px;min-height:44px;box-sizing:border-box;order:2;flex-shrink:0}.view-btn{padding:0 var(--spacing-lg);border:none;background-color:transparent;color:var(--color-text-secondary);font-size:var(--text-base);font-weight:500;cursor:pointer;border-radius:calc(var(--radius-lg) - 2px);transition:background-color var(--transition-slow),color var(--transition-slow),box-shadow var(--transition-slow);min-height:36px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;flex:1;min-width:0;display:inline-flex;align-items:center;justify-content:center}.view-btn:hover:not(.active){background-color:color-mix(in srgb,var(--color-primary) 8%,transparent);color:var(--color-text-primary)}.view-btn.active{background-color:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.view-btn:active{transform:scale(.98)}.calendar-navigation-center{display:flex;justify-content:flex-start;align-items:center;padding-bottom:0;order:1;flex:1 1 0;min-width:0;min-height:44px}.calendar-navigation{display:flex;align-items:stretch;justify-content:center;gap:0;background-color:var(--color-surface);border-radius:var(--radius-lg);padding:4px;margin-right:0;margin-bottom:0;min-height:44px;box-sizing:border-box;order:3;flex-shrink:0}.btn.nav-btn,.nav-btn{min-width:40px;width:40px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;line-height:1;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:none;background-color:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-slow),color var(--transition-slow);border-radius:calc(var(--radius-lg) - 2px)}.btn.nav-btn:hover,.nav-btn:hover{background-color:var(--color-surface-hover);transform:none}.btn.nav-btn:active,.nav-btn:active{transform:scale(.98)}.nav-btn img{width:20px;height:20px;display:block;filter:brightness(0) saturate(100%) invert(42%) sepia(14%) saturate(500%) hue-rotate(180deg)}[data-theme=dark] .nav-btn img{filter:invert(1) brightness(1.2)}.btn.today-btn,.today-btn{min-width:40px;width:40px;min-height:36px;height:36px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:none;background-color:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-slow),color var(--transition-slow);padding:0;margin:0;font-weight:500;border-radius:calc(var(--radius-lg) - 2px);display:inline-flex;align-items:center;justify-content:center}.btn.today-btn:hover,.today-btn:hover{background-color:var(--color-surface-hover);transform:none}.btn.today-btn:active,.today-btn:active{transform:scale(.98)}.today-btn img:not(.calendar-period-title-icon){width:20px;height:20px;object-fit:contain;flex-shrink:0;display:block;filter:brightness(0) saturate(100%) invert(42%) sepia(14%) saturate(500%) hue-rotate(180deg)}[data-theme=dark] .today-btn img:not(.calendar-period-title-icon){filter:invert(1) brightness(1.2)}.calendar-period-title{display:flex;align-items:center;gap:12px;font-size:var(--text-3xl);font-weight:700;letter-spacing:1.5px;color:var(--color-text);margin:0;padding-bottom:0;white-space:nowrap}.calendar-period-title-icon{width:28px;height:28px;flex-shrink:0}.calendar-grid-container{flex:1;overflow-y:auto;overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-xl);background-color:var(--color-surface);min-height:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;box-shadow:var(--shadow-sm);position:relative;width:100%}.calendar-view-wrapper{width:100%;height:100%;overflow:visible}.calendar-transition{animation-fill-mode:both}.calendar-transition--forward{animation:calendarSlideFromRight .7s cubic-bezier(.32,.72,0,1) both}.calendar-transition--back{animation:calendarSlideFromLeft .7s cubic-bezier(.32,.72,0,1) both}.calendar-transition--none{animation:none}@keyframes calendarSlideFromRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes calendarSlideFromLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@media(max-width:850px){.calendar-transition--forward,.calendar-transition--back{animation:calendarFadeIn .55s cubic-bezier(.32,.72,0,1) both}@keyframes calendarFadeIn{0%{opacity:0}to{opacity:1}}}.calendar-grid-container{scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.calendar-grid-container::-webkit-scrollbar{width:8px;height:8px}.calendar-grid-container::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.calendar-grid-container::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.calendar-grid-container::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.calendar-week-view{display:flex;flex-direction:column;min-width:800px;width:100%;height:auto;min-height:100%}.calendar-week-sticky-top{position:sticky;top:0;z-index:10;background-color:var(--color-surface);border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.calendar-week-header{display:grid;grid-template-columns:var(--calendar-time-column-width) repeat(7,1fr);border-bottom:2px solid var(--color-border);background-color:var(--color-surface);border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md);min-height:40px}.calendar-allday-section{display:grid;border-bottom:1px solid var(--color-border);background-color:var(--color-surface)}.calendar-allday-week{grid-template-columns:var(--calendar-time-column-width) repeat(7,1fr)}.calendar-allday-day{grid-template-columns:var(--calendar-time-column-width) 1fr}.allday-label{padding:var(--spacing-sm);text-align:right;font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);border-right:1px solid var(--color-border);background-color:var(--color-surface);display:flex;align-items:center;justify-content:flex-end}.allday-column{border-right:1px solid var(--color-border);padding:4px;display:flex;flex-direction:column;gap:4px;min-height:40px;min-width:0;background-color:var(--color-surface)}.calendar-allday-day .allday-column{border-right:none}.allday-column:last-child{border-right:none}.allday-event-pill{padding:4px 6px;border-radius:4px;font-size:.7rem;cursor:pointer;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;touch-action:manipulation;-webkit-tap-highlight-color:transparent;box-shadow:0 1px 2px #0000001f}.time-column-header{border-right:1px solid var(--color-border);border-top-left-radius:var(--radius-md);min-height:40px}.day-header{padding:6px var(--spacing-sm);min-height:40px;text-align:center;border-right:1px solid var(--color-border);display:flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;background-color:var(--color-surface)}.day-header:last-child{border-right:none}.day-header.today{background-color:var(--color-surface-hover);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.day-label{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);letter-spacing:.05em;white-space:nowrap}.day-header.today .day-label{color:var(--color-primary);font-weight:700}.day-name{font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary);letter-spacing:.05em;line-height:1.2;white-space:nowrap}.day-header.today .day-name{color:var(--color-primary);font-weight:700}.day-number{font-size:var(--text-lg);color:var(--color-text-secondary);font-weight:600;line-height:1.2;white-space:nowrap}.day-header.today .day-number{color:var(--color-primary-light);font-weight:600}.calendar-week-grid{display:flex;flex-direction:column;position:relative;height:auto;min-height:fit-content}.time-row{display:grid;grid-template-columns:var(--calendar-time-column-width) repeat(7,1fr);height:60px;border-bottom:1px solid var(--color-border);position:relative}.time-row:last-child{border-bottom:none}.time-label{padding:var(--spacing-sm);padding-right:var(--spacing-md);padding-top:var(--spacing-xxs);text-align:right;font-size:var(--text-sm);color:var(--color-text-secondary);border-right:1px solid var(--color-border);background-color:var(--color-surface);font-weight:500}.time-label.current-hour{font-weight:700;color:var(--color-primary)}.time-cell{border-right:1px solid var(--color-border);position:relative;cursor:pointer;transition:background-color var(--transition-base);touch-action:manipulation;-webkit-tap-highlight-color:transparent;background-color:var(--color-surface)}.time-cell:hover,.time-cell:active{background-color:var(--color-surface-hover)}.time-cell:last-child{border-right:none}.time-cell.today{background-color:rgba(var(--color-primary-rgb),.05)}.calendar-day-view{display:flex;flex-direction:column;min-width:400px;height:auto;min-height:100%}.calendar-day-header{display:grid;grid-template-columns:var(--calendar-time-column-width) 1fr;border-bottom:2px solid var(--color-border);background-color:var(--color-surface);position:sticky;top:0;z-index:10}.calendar-day-grid{display:flex;flex-direction:column;position:relative;height:auto;min-height:fit-content}.calendar-day-grid .time-row{grid-template-columns:var(--calendar-time-column-width) 1fr}.day-events-column{position:absolute;top:0;height:100%;pointer-events:none}.day-events-column-day{left:var(--calendar-time-column-width);width:calc(100% - var(--calendar-time-column-width))}.calendar-month-view{display:flex;flex-direction:column;height:100%;width:100%}.calendar-month-header{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:2px solid var(--color-border);background-color:var(--color-surface);position:sticky;top:0;z-index:10;min-height:40px}.month-day-name{padding:6px var(--spacing-sm);min-height:40px;text-align:center;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary);letter-spacing:.05em;line-height:1.2;white-space:nowrap;border-right:1px solid var(--color-border)}.month-day-name:last-child{border-right:none}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,1fr);flex:1;min-height:0}.month-day-cell{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:var(--spacing-sm);min-height:100px;cursor:pointer;transition:background-color var(--transition-base);display:flex;flex-direction:column;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background-color:var(--color-surface);overflow:hidden}.month-day-cell:hover,.month-day-cell:active{background-color:var(--color-surface-hover)}.month-day-cell:nth-child(7n){border-right:none}.month-day-cell.today{background-color:rgba(var(--color-primary-rgb),.08);box-shadow:inset 0 0 0 1px var(--color-primary)}.month-day-cell.other-month{background-color:var(--color-surface-hover);opacity:.5}.month-day-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-xs);flex-shrink:0;margin-bottom:var(--spacing-xs)}.month-day-number{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary)}.month-day-cell.today .month-day-number{color:var(--color-primary);font-weight:700}.month-day-events{flex:1;min-height:0;display:flex;flex-direction:column;gap:2px;overflow:hidden}.calendar-sidebar{--calendar-list-fade-height: 56px;display:flex;flex-direction:column;gap:var(--spacing-lg);align-items:stretch;min-height:0;overflow:hidden}.calendar-actions{display:flex;flex-direction:row;align-items:center;gap:var(--spacing-md);flex-shrink:0;width:100%;min-height:52px}.calendar-actions .btn-add-expense,.calendar-actions .btn-add-category{flex:1;min-width:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.calendar-actions .btn-add-expense:active,.calendar-actions .btn-add-category:active{transform:scale(.98)}.categories-section{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;flex:.9 1 0;min-height:0;overflow:hidden;position:relative}.categories-section:after{content:"";position:absolute;bottom:0;left:0;right:0;height:var(--calendar-list-fade-height);background:linear-gradient(to top,var(--color-surface) 0%,var(--color-surface) 25%,transparent 100%);pointer-events:none;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm);gap:var(--spacing-sm);min-height:32px}.section-header h3{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tasks-section .section-header .btn{display:flex;align-items:center;gap:var(--spacing-xs)}.tasks-section .section-header .btn img{flex-shrink:0}.add-category-btn{width:40px;min-width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;line-height:1;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background-color:var(--color-primary);color:#fffffff2}.add-category-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.add-category-btn:active{transform:scale(.95)}.add-category-btn img{width:20px;height:20px;display:block;filter:brightness(0) invert(1)}.category-list{display:flex;flex-direction:column;gap:var(--spacing-sm);flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:var(--spacing-xs);padding-bottom:var(--calendar-list-fade-height);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.category-list::-webkit-scrollbar{width:6px}.category-list::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.category-list::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.category-list::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.category-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-base);cursor:pointer;min-height:44px;min-width:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.category-item:hover{opacity:.97;transform:scale(1.008)}.category-item:active{transform:scale(.98)}.category-checkbox-wrapper{display:flex;align-items:center;pointer-events:auto;z-index:10}.category-visibility-checkbox{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;width:18px!important;height:18px!important;border:1px solid rgba(0,0,0,.2)!important;border-radius:4px!important;cursor:pointer!important;position:relative!important;background-color:#fff!important;transition:all var(--transition-base)!important;flex-shrink:0!important;pointer-events:auto!important;margin:0!important}.category-visibility-checkbox:hover{border-color:#00000059!important}.category-visibility-checkbox:checked{background-color:#fff!important;border-color:#0003!important}.category-visibility-checkbox:checked:after{content:""!important;position:absolute!important;left:50%!important;top:50%!important;width:4px!important;height:8px!important;border:solid var(--color-text-primary)!important;border-width:0 2px 2px 0!important;transform:translate(-50%,-50%) rotate(45deg)!important;display:block!important}.category-name{font-size:var(--text-sm);font-weight:400;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-sidebar .categories-section .category-name{font-weight:600!important;font-size:1rem}.tasks-section{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;flex:1.1 1 0;min-height:0;overflow:hidden;position:relative}.tasks-section:after{content:"";position:absolute;bottom:0;left:0;right:0;height:var(--calendar-list-fade-height);background:linear-gradient(to top,var(--color-surface) 0%,var(--color-surface) 25%,transparent 100%);pointer-events:none;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.tasks-section .task-preview-list{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:var(--spacing-xs);padding-bottom:var(--calendar-list-fade-height);-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.tasks-section .task-preview-list{scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.tasks-section .task-preview-list::-webkit-scrollbar{width:6px}.tasks-section .task-preview-list::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.tasks-section .task-preview-list::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.tasks-section .task-preview-list::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.calendar-sidebar .btn.btn-secondary:not(.add-category-btn){background-color:var(--color-gray-button);color:var(--color-gray-button-text)}.calendar-sidebar .btn.btn-secondary:not(.add-category-btn):hover:not(:disabled){background-color:var(--color-gray-button-hover)}.calendar-sidebar .btn.add-category-btn{background-color:var(--color-primary);color:#fffffff2}.calendar-sidebar .btn.add-category-btn:hover:not(:disabled){background-color:var(--color-primary-hover)}.tasks-placeholder{margin-top:var(--spacing-md);min-height:150px}.loading-text{text-align:center;color:var(--color-text-secondary);font-size:var(--text-sm);padding:var(--spacing-md)}.error-text{text-align:center;color:var(--color-error);font-size:var(--text-sm);padding:var(--spacing-md)}@media(max-width:1115px){.mobile-bottom-sheet-backdrop{display:block;position:fixed;inset:0;background-color:#0006;z-index:999;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mobile-bottom-sheet{display:flex;flex-direction:column;position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top-left-radius:20px;border-top-right-radius:20px;box-shadow:0 -4px 20px #0000004d;transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:1000;transform:translateY(calc(100% - 52px));border-top:1px solid var(--color-border);height:66.67vh;height:66.67dvh;max-height:66.67vh;max-height:66.67dvh;overflow:hidden}.bottom-sheet-viewport{flex:1 1 0;min-height:0;overflow:hidden;position:relative;display:flex;flex-direction:column}.bottom-sheet-content{flex:1 1 0;min-height:0}.bottom-sheet-fade{position:absolute;bottom:0;left:0;right:0;height:56px;background:linear-gradient(to top,var(--color-surface) 0%,var(--color-surface) 25%,transparent 100%);pointer-events:none;z-index:1}.mobile-bottom-sheet.open{transform:translateY(0)}.bottom-sheet-toggle{position:absolute;top:12px;left:50%;transform:translate(-50%);background:var(--color-surface-hover);border:none;color:var(--color-text-secondary);cursor:pointer;padding:6px 20px;border-radius:20px;z-index:10;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .2s}.bottom-sheet-toggle:active{background:var(--color-border)}.bottom-sheet-content{padding:56px 16px 88px;display:flex;flex-direction:column;gap:18px;min-height:220px;overflow-y:auto;-webkit-overflow-scrolling:touch;position:relative;z-index:0}.bottom-sheet-content{scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.bottom-sheet-content::-webkit-scrollbar{width:4px}.bottom-sheet-content::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1)}.bottom-sheet-content::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:2px}.bottom-sheet-content::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.bottom-sheet-actions{display:flex;gap:12px;flex-shrink:0}.bottom-sheet-btn{flex:1 1 0;min-width:0;height:50px;border-radius:14px;font-size:15px!important;font-weight:600;letter-spacing:.8px;text-transform:uppercase}.bottom-sheet-btn.btn-secondary{background-color:var(--color-gray-button);color:var(--color-gray-button-text)}.bottom-sheet-btn.btn-secondary:active{background-color:var(--color-gray-button-hover)}.bottom-sheet-categories{display:flex;flex-direction:column;gap:8px;overflow-y:auto;max-height:50vh;padding-right:4px;padding-bottom:56px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.bottom-sheet-categories::-webkit-scrollbar{width:4px}.bottom-sheet-categories::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1)}.bottom-sheet-categories::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:2px}.bottom-sheet-categories::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.category-pill{display:flex;align-items:center;gap:10px;padding:14px 18px;border-radius:12px;border:none;font-size:15px;font-weight:500;color:#fff;width:100%;flex-shrink:0;transition:opacity .2s,transform .1s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;box-shadow:0 2px 6px #00000026}.category-pill.hidden{opacity:.4;box-shadow:0 1px 3px #0000001a}.category-pill:active{transform:scale(.98)}.category-pill-name{font-size:16px;font-weight:600;flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;min-height:44px;display:flex;align-items:center}.category-pill-checkbox-wrapper{display:flex;align-items:center;flex-shrink:0;pointer-events:auto}.category-pill .category-pill-checkbox{background-color:#ffffffe6!important;border-color:#ffffffe6!important}.category-pill .category-pill-checkbox:checked{background-color:#fffffff2!important;border-color:#fffffff2!important}.category-pill .category-pill-checkbox:checked:after{border-color:#333!important}}.view-btn-short{display:none}.view-btn-full{display:inline}@media(max-width:1115px){.view-btn-short{display:inline}.view-btn-full{display:none}.calendar-controls{flex-wrap:nowrap}.calendar-view-selector{width:fit-content;min-width:0;flex-shrink:0}.view-btn{flex:0 0 auto}.calendar-navigation{width:fit-content;flex-shrink:0}.today-btn{min-width:40px;width:40px;padding:0;display:inline-flex;align-items:center;justify-content:center}}@media(max-width:1400px){.calendar-content{padding:var(--spacing-xl)}.calendar-layout{grid-template-columns:1fr 280px;gap:var(--spacing-lg)}}@media(max-width:1200px){.calendar-content{padding:var(--spacing-lg)}.calendar-layout{grid-template-columns:1fr 250px;gap:var(--spacing-md)}.categories-section,.tasks-section{min-height:150px;max-height:300px}}@media(max-width:1115px){.calendar-content{padding:var(--spacing-2xl)}.calendar-layout{grid-template-columns:1fr!important;gap:0;padding-bottom:60px}.calendar-sidebar{display:none!important}}@media(max-width:900px){.calendar-period-title .calendar-period-title-icon{display:none}.calendar-container{background-color:var(--color-background)}.calendar-content{padding:0;background-color:var(--color-background)}.calendar-layout{padding-bottom:60px}.calendar-main{padding:12px 0 0;margin-left:0;margin-right:0}.calendar-controls{display:flex;flex-wrap:nowrap;gap:8px;align-items:center;margin-bottom:0;padding:0 12px;min-height:52px}.calendar-view-selector{justify-content:flex-start;width:fit-content;min-width:0;margin-left:0;margin-bottom:0;padding:3px;min-height:36px;border-radius:var(--radius-lg);background-color:var(--color-surface);order:2;flex-shrink:0}.view-btn{flex:0 0 auto;padding:0 12px;font-size:14px;font-weight:600;min-height:30px;min-width:36px;border:none;border-radius:calc(var(--radius-lg) - 2px);background-color:transparent;color:var(--color-text-secondary);margin-right:0;transition:background-color var(--transition-slow),color var(--transition-slow),box-shadow var(--transition-slow)}.view-btn:not(:last-child){border-right:none}.view-btn.active{background-color:var(--color-primary);color:#fff}.calendar-navigation-center{order:1;text-align:left;padding-bottom:0;flex:1 1 0;min-width:0}.calendar-period-title{font-size:17px;font-weight:600;padding-bottom:0;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:1px}.calendar-navigation{order:3;justify-content:flex-end;width:fit-content;flex-shrink:0;margin-right:0;margin-bottom:0;padding:3px;min-height:36px;border-radius:var(--radius-lg);background-color:var(--color-surface)}.nav-btn,.today-btn{border:none;border-radius:calc(var(--radius-lg) - 2px);background-color:transparent;color:var(--color-text-primary);min-height:30px;height:30px;margin-right:0}.nav-btn:not(:last-child),.today-btn{border-right:none}.nav-btn:last-child{border-right:none}.today-btn{min-width:36px;width:36px;padding:0}.nav-btn{min-width:36px;width:36px}.calendar-sidebar{display:none}.calendar-grid-container{overflow-x:auto;overflow-y:auto;min-height:calc(100vh - 164px);max-height:calc(100vh - 164px);background-color:var(--color-surface);border:none;border-radius:0;box-shadow:none;-webkit-overflow-scrolling:touch}.calendar-week-view{min-width:100%;width:100%;height:auto}.calendar-week-sticky-top{border-top-left-radius:0;border-top-right-radius:0}.calendar-week-header{grid-template-columns:60px repeat(7,minmax(0,1fr));min-height:32px;background-color:var(--color-surface);border-top-left-radius:0;border-top-right-radius:0}.calendar-week-header .day-header{min-height:28px;padding:4px 2px;gap:2px}.calendar-week-header .day-header .day-number{font-size:.75rem}.calendar-week-header .day-header .day-name{font-size:.65rem}.calendar-allday-week{grid-template-columns:60px repeat(7,minmax(0,1fr));background-color:var(--color-surface);border-bottom:1px solid var(--color-border)}.calendar-allday-day{grid-template-columns:60px 1fr;background-color:var(--color-surface);border-bottom:1px solid var(--color-border)}.time-row{grid-template-columns:60px repeat(7,minmax(0,1fr));height:60px;border-bottom:1px solid var(--color-border)}.time-label{font-size:11px;padding:4px 2px;color:var(--color-text-secondary);background-color:var(--color-surface);border-right:1px solid var(--color-border)}.time-label.current-hour{font-weight:700;color:var(--color-primary)}.time-cell{background-color:var(--color-surface);border-right:1px solid var(--color-border)}.time-cell.today{background-color:rgba(var(--color-primary-rgb),.05)}.day-label{font-size:11px;letter-spacing:0;color:var(--color-text-secondary)}.day-header{padding:6px 2px;min-width:0;min-height:36px;background-color:var(--color-surface);border-right:1px solid var(--color-border);overflow:hidden;flex-direction:row;gap:4px}.day-header.today{background-color:var(--color-surface-hover);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.day-header .day-name,.day-header .day-number{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-header.today .day-name{color:var(--color-primary);font-weight:700}.day-header.today .day-number{color:var(--color-primary-light);font-weight:600}.calendar-day-view{background-color:var(--color-surface);height:auto;min-width:0}.calendar-day-header{grid-template-columns:60px 1fr;background-color:var(--color-surface);border-top-left-radius:0;border-top-right-radius:0}.calendar-day-header .time-column-header{background-color:var(--color-surface);border-right:1px solid var(--color-border)}.calendar-day-header .day-header{background-color:var(--color-surface);display:flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;border-right:none;width:100%;min-height:32px;padding:4px var(--spacing-sm);text-align:center;box-sizing:border-box}.calendar-day-header .day-header .day-name,.calendar-day-header .day-header .day-number{text-align:center;width:auto}.calendar-day-header .day-header .day-number{font-size:var(--text-base)}.calendar-day-header .day-header .day-name{font-size:var(--text-xs)}.calendar-day-header .day-header.today{background-color:var(--color-surface)}.day-events-column-day{left:60px;width:calc(100% - 60px);box-sizing:border-box}.calendar-day-grid .calendar-day-grid-now-indicator{left:60px;width:calc(100% - 60px)}.calendar-day-grid{background-color:var(--color-surface)}.calendar-day-grid .time-row{grid-template-columns:60px 1fr}.allday-label{background-color:var(--color-surface);color:var(--color-text-secondary);border-right:1px solid var(--color-border)}.allday-column{background-color:var(--color-surface)}.allday-column.today{background-color:rgba(var(--color-primary-rgb),.05)}.month-day-cell{min-height:80px;padding:4px;background-color:var(--color-surface);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);overflow:hidden}.month-day-cell.today{background-color:rgba(var(--color-primary-rgb),.08);box-shadow:inset 0 0 0 2px var(--color-primary)}.month-day-cell.today .month-day-number{color:var(--color-primary)}.month-day-number{font-size:11px;color:var(--color-text-secondary)}.calendar-month-view{background-color:var(--color-surface);width:100%;min-width:100%}.calendar-month-header{background-color:var(--color-surface);border-top-left-radius:0;border-top-right-radius:0;grid-template-columns:repeat(7,minmax(0,1fr));min-height:28px}.month-day-name{background-color:var(--color-surface);color:var(--color-text-primary);border-right:1px solid var(--color-border);padding:4px;min-height:28px;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-day-name:last-child{border-right:none}.calendar-month-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-week-view .event-item-positioned,.calendar-week-view .task-item-positioned{padding:2px 4px;font-size:.65rem;min-height:32px;gap:1px}.calendar-week-view .event-time,.calendar-week-view .task-time-row,.calendar-week-view .event-item-positioned.short-event .event-time{display:none}.calendar-week-view .event-item-positioned.short-event .event-name,.calendar-week-view .event-name,.calendar-week-view .task-name{font-size:.65rem}.calendar-week-view .allday-event-pill{font-size:.6rem;padding:2px 4px}.calendar-week-view .allday-column{padding:2px;gap:2px}.calendar-month-view .month-day-cell{padding:2px;min-height:72px}.calendar-month-view .month-day-header{margin-bottom:1px}.calendar-month-view .month-day-number{font-size:9px}.calendar-month-view .month-day-events{gap:1px}.calendar-month-view .month-event-item,.calendar-month-view .month-task-item{font-size:.6rem;padding:1px 3px;margin-bottom:1px}.calendar-month-view .month-event-name,.calendar-month-view .month-task-name{font-size:.6rem}.calendar-month-view .month-event-more{font-size:.55rem;padding:1px 2px}.calendar-month-view .allday-event-pill{font-size:.55rem;padding:1px 3px}}@media(max-width:768px){.time-row{height:50px}.calendar-week-header,.calendar-allday-week,.time-row{grid-template-columns:50px repeat(7,minmax(0,1fr))}.calendar-allday-day,.calendar-day-header,.calendar-day-grid .time-row{grid-template-columns:50px 1fr}.day-events-column-day,.calendar-day-grid .calendar-day-grid-now-indicator{left:50px;width:calc(100% - 50px)}.calendar-day-header .day-header{min-height:36px;padding:4px var(--spacing-sm);gap:6px}.calendar-day-header .day-header .day-number{font-size:.9375rem}.calendar-day-header .day-header .day-name{font-size:.8rem}.calendar-week-header{min-height:36px}.calendar-week-header .day-header{min-height:36px;padding:4px 2px}.calendar-week-header .day-header .day-number{font-size:.8rem}.calendar-week-header .day-header .day-name{font-size:.7rem}.calendar-month-header{min-height:36px}.month-day-name{min-height:36px;padding:4px;font-size:.75rem}.calendar-week-view .event-item-positioned,.calendar-week-view .task-item-positioned{padding:2px 3px;font-size:.6rem;min-height:28px}.calendar-week-view .event-time,.calendar-week-view .task-time{font-size:.55rem}.calendar-week-view .event-name,.calendar-week-view .task-name{font-size:.6rem}.calendar-week-view .allday-event-pill{font-size:.55rem;padding:1px 3px}.calendar-month-view .month-day-cell{padding:1px 2px;min-height:64px}.calendar-month-view .month-day-number{font-size:8px}.calendar-month-view .month-event-item,.calendar-month-view .month-task-item{font-size:.55rem;padding:1px 2px}.calendar-month-view .month-event-name,.calendar-month-view .month-task-name{font-size:.55rem}.calendar-month-view .allday-event-pill{font-size:.5rem;padding:1px 2px}.calendar-view-selector,.calendar-navigation{padding:2px}.calendar-view-selector .view-btn{padding:0 6px;min-width:28px}.calendar-navigation .today-btn,.calendar-navigation .nav-btn{min-width:32px;width:32px}}@media(max-width:576px){.time-row{height:48px}.calendar-week-header,.calendar-allday-week,.time-row{grid-template-columns:45px repeat(7,minmax(0,1fr))}.calendar-allday-day,.calendar-day-header,.calendar-day-grid .time-row{grid-template-columns:45px 1fr}.day-events-column-day,.calendar-day-grid .calendar-day-grid-now-indicator{left:45px;width:calc(100% - 45px)}.calendar-day-header .day-header{min-height:36px;padding:4px 6px}.calendar-day-header .day-header .day-number{font-size:.9375rem}.calendar-day-header .day-header .day-name{font-size:.8rem}.calendar-week-header{min-height:36px}.calendar-week-header .day-header{min-height:36px;padding:4px 2px}.calendar-week-header .day-header .day-number{font-size:.8rem}.calendar-week-header .day-header .day-name{font-size:.7rem}.calendar-month-header{min-height:36px}.month-day-name{min-height:36px;padding:4px;font-size:.75rem}.calendar-week-view .event-item-positioned,.calendar-week-view .task-item-positioned{padding:1px 3px;min-height:26px}.calendar-week-view .event-time,.calendar-week-view .task-time{font-size:.5rem}.calendar-week-view .event-name,.calendar-week-view .task-name{font-size:.55rem}.calendar-week-view .allday-event-pill{font-size:.5rem;padding:1px 2px}.calendar-month-view .month-day-cell{min-height:56px;padding:1px 2px}.calendar-month-view .month-day-number{font-size:8px}.calendar-month-view .month-event-item,.calendar-month-view .month-task-item{font-size:.5rem;padding:1px 2px}.calendar-month-view .month-event-name,.calendar-month-view .month-task-name{font-size:.5rem}.calendar-month-view .allday-event-pill{font-size:.45rem;padding:1px 2px}}@media(max-width:400px){.time-row{height:45px}.calendar-week-header,.calendar-allday-week,.time-row{grid-template-columns:40px repeat(7,minmax(0,1fr))}.calendar-allday-day,.calendar-day-header,.calendar-day-grid .time-row{grid-template-columns:40px 1fr}.day-events-column-day,.calendar-day-grid .calendar-day-grid-now-indicator{left:40px;width:calc(100% - 40px)}.calendar-day-header .day-header{min-height:36px;padding:4px;gap:4px}.calendar-day-header .day-header .day-number{font-size:.875rem}.calendar-day-header .day-header .day-name{font-size:.75rem}.calendar-week-header{min-height:36px}.calendar-week-header .day-header{min-height:36px;padding:4px 2px}.calendar-week-header .day-header .day-number{font-size:.75rem}.calendar-week-header .day-header .day-name{font-size:.65rem}.calendar-month-header{min-height:36px}.month-day-name{min-height:36px;padding:4px 2px;font-size:.7rem}}@media(max-height:600px)and (orientation:landscape){.calendar-content{padding:0;gap:0}.calendar-main{padding:8px 0;margin-left:0;margin-right:0}.calendar-controls{margin-bottom:0;gap:6px}.view-btn{padding:6px 8px;font-size:12px;min-height:32px;min-width:32px;transition:background-color var(--transition-slow),color var(--transition-slow),box-shadow var(--transition-slow)}.nav-btn{min-width:32px;width:32px;height:32px}.today-btn{height:32px;min-height:32px;min-width:32px;width:32px;padding:0}.calendar-period-title{font-size:13px}.calendar-grid-container{min-height:calc(100vh - 140px);max-height:calc(100vh - 140px);overflow-y:auto;-webkit-overflow-scrolling:touch}.time-row{height:45px}.month-day-cell{min-height:60px;padding:2px}.calendar-sidebar{display:none}.calendar-layout{grid-template-columns:1fr}.event-item-positioned,.task-item-positioned{font-size:11px;padding:4px 6px;min-height:35px}.task-time-row{padding-right:16px}.calendar-week-view .event-time,.calendar-week-view .task-time{font-size:8px}.calendar-week-view .event-name,.calendar-week-view .task-name{font-size:9px}.calendar-week-view .event-item-positioned,.calendar-week-view .task-item-positioned{padding:3px 4px;min-height:30px}.calendar-month-view .month-event-item,.calendar-month-view .month-task-item{font-size:8px;padding:1px 3px}.calendar-month-view .month-event-name,.calendar-month-view .month-task-name{font-size:8px}.calendar-month-view .allday-event-pill{font-size:8px;padding:2px 3px}.calendar-day-view .event-time,.calendar-day-view .task-time{font-size:10px}.calendar-day-view .event-name,.calendar-day-view .task-name{font-size:11px}.calendar-day-view .event-item-positioned,.calendar-day-view .task-item-positioned{padding:4px 6px}}@media(min-width:768px)and (max-width:850px)and (orientation:landscape){.calendar-layout{grid-template-columns:1fr 200px}.tasks-section{display:none}}@media(max-width:1024px){.calendar-view-selector,.calendar-navigation{min-height:36px;height:36px;padding:3px;box-sizing:border-box}.calendar-container{height:100vh;height:100dvh;max-height:100vh;max-height:100dvh}.calendar-content{min-height:0}.mobile-bottom-sheet{max-height:66.67vh;max-height:66.67dvh;display:flex;flex-direction:column;overflow:hidden}.mobile-bottom-sheet.open{height:66.67vh;height:66.67dvh;max-height:66.67vh;max-height:66.67dvh}.bottom-sheet-viewport{flex:1 1 0;min-height:0;position:relative;overflow:hidden}.bottom-sheet-content{flex:1 1 0;min-height:0;max-height:min(60vh,calc(100vh - 100px));max-height:min(60dvh,calc(100dvh - 100px));overflow-y:auto}.bottom-sheet-categories{max-height:min(40vh,calc(100vh - 220px));max-height:min(40dvh,calc(100dvh - 220px))}}@media(orientation:landscape)and (max-height:800px){.calendar-container{height:100vh;height:100dvh;max-height:100vh;max-height:100dvh}.calendar-content{min-height:0}.mobile-bottom-sheet{max-height:66.67vh;max-height:66.67dvh;display:flex;flex-direction:column;overflow:hidden}.mobile-bottom-sheet.open{height:66.67vh;height:66.67dvh;max-height:66.67vh;max-height:66.67dvh}.bottom-sheet-viewport{flex:1 1 0;min-height:0;position:relative;overflow:hidden}.bottom-sheet-content{flex:1 1 0;min-height:0;max-height:min(60vh,calc(100vh - 100px));max-height:min(60dvh,calc(100dvh - 100px));overflow-y:auto}.bottom-sheet-categories{max-height:min(40vh,calc(100vh - 220px));max-height:min(40dvh,calc(100dvh - 220px))}}.events-layer{position:absolute;top:0;left:0;right:0;height:100%;pointer-events:none;z-index:5}.calendar-now-indicator-full{position:absolute;left:0;height:1px;background-color:var(--color-primary);pointer-events:none;z-index:14;opacity:.6}.calendar-now-indicator{position:absolute;height:2px;background-color:var(--color-primary);pointer-events:none;z-index:15;filter:drop-shadow(0 0 1px rgba(255,255,255,.95))}.calendar-day-grid .calendar-day-grid-now-indicator{left:var(--calendar-time-column-width);width:calc(100% - var(--calendar-time-column-width))}.calendar-now-indicator:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:0;height:0;border-style:solid;border-width:5px 0 5px 6px;border-color:transparent transparent transparent var(--color-primary)}.event-item-positioned{position:absolute;padding:4px 6px;border-radius:var(--radius-md);font-size:.75rem;cursor:pointer;transition:box-shadow var(--transition-base),transform var(--transition-base);opacity:1;pointer-events:auto;overflow:hidden;box-sizing:border-box;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;gap:2px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;max-width:100%;min-height:0}.event-item-positioned.short-event{flex-direction:row;align-items:center;gap:6px}.event-item-positioned.short-event .event-time{font-size:.65rem;margin-bottom:0;flex-shrink:0}.event-item-positioned.short-event .event-name{font-size:.7rem;flex:1;min-width:0;-webkit-line-clamp:1}.event-item-positioned:hover{box-shadow:0 2px 4px #0000001f;transform:translateY(-1px);z-index:100!important}.event-item-positioned:active{transform:translateY(0)}.task-item-positioned{position:absolute;padding:4px 6px;border-radius:var(--radius-md);font-size:.75rem;cursor:pointer;transition:box-shadow var(--transition-base),transform var(--transition-base);opacity:.95;pointer-events:auto;overflow:hidden;box-sizing:border-box;box-shadow:0 1px 2px #00000014;background-color:var(--color-surface);display:flex;flex-direction:column;gap:2px;min-height:40px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;max-width:100%}.task-item-positioned:hover{box-shadow:0 3px 6px #00000026;opacity:1;transform:translateY(-1px);z-index:100!important}.task-item-positioned:active{transform:translateY(0)}.task-time-row{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:14px;position:relative;padding-right:20px}.task-content-row{display:flex;align-items:center;gap:6px;width:100%;flex:1;min-width:0}.task-checkbox-wrapper{display:flex;align-items:center;flex-shrink:0;z-index:10}.task-checkbox-wrapper input[type=checkbox]{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;width:14px!important;height:14px!important;border:2px solid var(--color-border)!important;border-radius:3px!important;cursor:pointer!important;position:relative!important;background-color:var(--color-surface)!important;transition:all var(--transition-base)!important;flex-shrink:0!important;margin:0!important}.task-checkbox-wrapper input[type=checkbox]:hover{border-color:var(--color-primary)!important}.task-checkbox-wrapper input[type=checkbox]:checked{background-color:var(--color-primary)!important;border-color:var(--color-primary)!important}.task-checkbox-wrapper input[type=checkbox]:checked:after{content:""!important;position:absolute!important;left:3px!important;top:1px!important;width:3px!important;height:6px!important;border:solid white!important;border-width:0 2px 2px 0!important;transform:rotate(45deg)!important;display:block!important}.task-checkmark{position:absolute;top:3px;right:2px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;background-color:var(--color-text-secondary);border-radius:50%;color:#fff;z-index:10;flex-shrink:0;opacity:1;box-shadow:0 1px 2px #0000001a}.task-checkmark svg{width:10px;height:10px}.task-item-positioned.completed .task-checkmark{opacity:1}.task-time{font-size:.7rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;line-height:1.2;max-width:100%}.task-name{font-size:.75rem;font-weight:500;overflow:hidden;overflow-wrap:break-word;word-break:break-word;line-height:1.25;flex:1;min-width:0;min-height:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;text-overflow:ellipsis}.task-item-positioned.overdue{border-color:#dc2626!important;border-width:2px!important}.task-item-positioned.overdue .task-time,.task-item-positioned.overdue .task-name{color:#dc2626!important}.task-overdue-indicator{position:absolute;top:3px;right:2px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;background-color:#dc2626;border-radius:50%;color:#fff;font-weight:700;font-size:.7rem;line-height:1;z-index:10;flex-shrink:0;opacity:1;box-shadow:0 1px 2px #0000001a}.task-item-positioned.completed{opacity:.6}.task-item-positioned.completed .task-name{text-decoration:line-through}.day-events{display:flex;flex-direction:column;gap:4px;padding:4px}.event-item{padding:6px 8px;border-radius:var(--radius-md);font-size:.75rem;cursor:pointer;transition:opacity .2s;opacity:.9;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.event-item:hover{opacity:1}.event-item:active{opacity:1;transform:scale(.98)}.event-time{font-size:.7rem;font-weight:600;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;opacity:.9}.event-name{font-size:.85rem;font-weight:500;overflow:hidden;overflow-wrap:break-word;word-break:break-word;flex:1;min-width:0;min-height:0;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:ellipsis}.month-event-item{padding:2px 6px;border-radius:6px;font-size:.7rem;margin-bottom:2px;cursor:pointer;transition:opacity .2s;opacity:.9;touch-action:manipulation;-webkit-tap-highlight-color:transparent;flex:0 1 auto;min-height:0;overflow:hidden;display:flex;align-items:center}.month-event-item:hover{opacity:1}.month-event-item:active{opacity:1;transform:scale(.98)}.month-event-name{font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.25;flex:1;min-width:0}.month-event-more{font-size:.6rem;color:var(--color-text-secondary);padding:0 2px;font-weight:500;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1}.month-task-item{padding:2px 6px;border-radius:6px;font-size:.7rem;margin-bottom:2px;cursor:pointer;transition:opacity .2s;opacity:.9;background-color:var(--color-background);display:flex;align-items:center;gap:4px;overflow:hidden;touch-action:manipulation;-webkit-tap-highlight-color:transparent;flex:0 1 auto;min-height:0}.month-task-item:hover{opacity:1}.month-task-item:active{opacity:1;transform:scale(.98)}.month-task-item.completed{opacity:.6}.month-task-item.completed .month-task-name{text-decoration:line-through}.month-task-item input[type=checkbox]{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;width:12px!important;height:12px!important;border:2px solid var(--color-border)!important;border-radius:3px!important;cursor:pointer!important;position:relative!important;background-color:var(--color-surface)!important;transition:all var(--transition-base)!important;flex-shrink:0!important;margin:0!important}.month-task-item input[type=checkbox]:hover{border-color:var(--color-primary)!important}.month-task-item input[type=checkbox]:checked{background-color:var(--color-primary)!important;border-color:var(--color-primary)!important}.month-task-item input[type=checkbox]:checked:after{content:""!important;position:absolute!important;left:2px!important;top:0!important;width:3px!important;height:5px!important;border:solid white!important;border-width:0 1.5px 1.5px 0!important;transform:rotate(45deg)!important;display:block!important}.month-task-name{font-size:.75rem;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;line-height:1.25}.month-task-item .task-overdue-indicator{position:relative;top:auto;right:auto;width:14px;height:14px;font-size:.65rem;flex-shrink:0}.subject-comparison-chart{position:relative;flex:1;min-height:280px;height:100%;display:flex;flex-direction:column;width:100%;min-width:0;overflow:visible}.subjects-widget--chart .card-content-chart .subject-comparison-chart{flex:1 1 auto}.subject-comparison-chart .recharts-wrapper,.subject-comparison-chart .recharts-surface{overflow:visible}.subject-comparison-chart .chart-loading,.subject-comparison-chart .chart-empty{color:var(--color-text-secondary);font-size:var(--text-sm);margin:var(--spacing-lg) 0;text-align:center}.info-card.subjects-summary-card{min-width:0;overflow:hidden}.subjects-summary-card__title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary)}.subjects-summary-card__content{display:flex;flex-direction:column;gap:var(--spacing-lg);min-width:0;overflow:hidden}.subjects-summary-card__progress-row{display:flex;align-items:center;gap:var(--spacing-md);width:100%;min-width:0}.subjects-summary-card__progress-bar-container{flex:1;min-width:0;height:28px;min-height:28px;flex-shrink:0;background-color:var(--color-background);border-radius:var(--radius-full);overflow:hidden;position:relative;transform:translateZ(0);backface-visibility:hidden}.subjects-summary-card__segment{position:absolute;left:0;top:0;height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal);transform:translateZ(0)}.subjects-summary-card__segment--behind{z-index:0}.subjects-summary-card__segment--actual{z-index:1}.subjects-summary-card__segment--on-track{background-color:var(--color-grade-green, #10b981)}.subjects-summary-card__segment--close-to-goal{background-color:var(--color-grade-yellow, #facc15)}.subjects-summary-card__segment--need-improvement{background-color:var(--color-grade-red, #ef4444)}.subjects-summary-card__lines{display:flex;flex-direction:column;gap:var(--spacing-md);min-width:0;overflow-wrap:break-word;word-break:break-word}.subjects-summary-card__line{font-size:var(--text-base);color:var(--color-text-primary)}.subjects-summary-card__line .subjects-summary-card__count{font-weight:700;font-size:var(--text-base)}.subjects-summary-card__line-label{font-weight:700}.subjects-summary-card__line--on-track .subjects-summary-card__count{color:var(--color-grade-green, #10b981)}.subjects-summary-card__line--close-to-goal .subjects-summary-card__count{color:var(--color-grade-yellow, #facc15)}.subjects-summary-card__line--need-improvement .subjects-summary-card__count{color:var(--color-grade-red, #ef4444)}.subjects-summary-card__line--no-grades .subjects-summary-card__count{color:var(--color-text-secondary)}.subjects-summary-card__line--no-grades .subjects-summary-card__line-label{font-weight:400}.subjects-summary-card__section{display:flex;flex-direction:column;gap:var(--spacing-xs)}.subjects-summary-card__section-header{display:flex;align-items:baseline;gap:var(--spacing-sm)}.subjects-summary-card__count{font-weight:700;font-size:var(--text-xl);color:var(--color-text-primary)}.subjects-summary-card__section--on-track .subjects-summary-card__count{color:var(--color-grade-green, #10b981)}.subjects-summary-card__section--need-improvement .subjects-summary-card__count{color:var(--color-grade-red, #ef4444)}.subjects-summary-card__section--no-grades .subjects-summary-card__count{color:var(--color-text-secondary)}.subjects-summary-card__label{font-size:var(--text-sm);color:var(--color-text-secondary)}.subjects-summary-card__list{margin:0;padding-left:var(--spacing-lg);font-size:var(--text-sm);color:var(--color-text-primary);min-width:0;overflow-wrap:break-word;word-break:break-word}.subjects-summary-card__list li{margin-bottom:var(--spacing-xs);overflow-wrap:break-word;word-break:break-word}.subjects-summary-card__list li:last-child{margin-bottom:0}.subjects-container{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background-color:var(--color-background)}.subjects-content{flex:1;padding:var(--spacing-2xl);max-width:1800px;margin:0 auto;width:100%;display:flex;flex-direction:column}.subjects-page-header{margin-bottom:var(--page-title-content-gap)}.subjects-content .page-title{display:flex;align-items:center;gap:12px;font-size:var(--text-3xl);font-weight:700;letter-spacing:1.5px;color:var(--color-text-primary);margin:0}.subjects-content .page-title-icon{width:28px;height:28px;flex-shrink:0}.loading-text{text-align:center;font-size:var(--text-lg);color:var(--color-text-secondary);padding:var(--spacing-2xl)}.error-message{background-color:#fee;color:#c00;padding:var(--spacing-lg);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);text-align:center}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--spacing-3xl) var(--spacing-xl);max-width:600px;margin:auto;flex:1;background-color:var(--color-background)!important;border:none!important;box-shadow:none!important;border-radius:0!important}.empty-state h2{font-size:var(--text-4xl);font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.empty-state p{font-size:var(--text-lg);color:var(--color-text-secondary);margin-bottom:0}.empty-state-actions{display:flex;flex-direction:column;gap:var(--spacing-md);align-items:center;width:100%;margin-top:var(--spacing-lg)}.subjects-main{display:flex;flex-direction:column;gap:var(--page-title-content-gap);width:100%;min-width:0}.subjects-dashboard{display:flex;flex-direction:column;gap:var(--spacing-xl)}.subjects-top-section{display:grid;grid-template-columns:minmax(0,2.5fr) minmax(320px,1.2fr);gap:var(--spacing-xl);align-items:flex-start}.subjects-left-column{display:flex;flex-direction:column;gap:var(--spacing-xl);min-width:0}.subjects-right-column{display:flex;flex-direction:column;gap:var(--spacing-lg);min-width:0}.subjects-right-column .subjects-header-actions{flex-shrink:0;width:100%;display:flex;justify-content:stretch}.subjects-right-column .subjects-header-actions button{flex:1;min-width:0}.subjects-widgets{display:flex;flex-direction:column;gap:var(--spacing-lg);width:100%;min-width:0}.subjects-widgets-row{display:grid;gap:var(--spacing-lg);width:100%;min-width:0}.subjects-widgets-row--first{grid-template-columns:1fr}.subjects-widgets-row--second{display:flex;flex:1 1 auto;min-height:0;width:100%;max-width:100%}.subjects-widgets-row--second>.subjects-widget--upcoming.widget-exams{flex:1 1 auto;width:100%;min-width:0;max-width:none;min-height:0;align-self:stretch;box-sizing:border-box}.subjects-widgets-row--second .subjects-widget--upcoming.info-card{max-height:none}.subjects-widgets-row--second .subjects-widget--upcoming{display:flex;flex-direction:column}.subjects-widgets-row--second .subjects-widget--upcoming .card-content{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.subjects-widgets-row--second .subjects-widget--upcoming .exams-list{flex:1 1 auto;min-height:0}.subjects-widget .card-title{margin-bottom:var(--spacing-sm)}.subjects-widget--upcoming.widget-exams .card-title{margin-bottom:0}.subjects-widget--chart .card-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.subjects-widget--chart .card-header .card-header-actions{flex-shrink:0}.subjects-widget--chart.info-card{max-height:none}.subjects-widget--chart .card-content-chart{min-height:0;flex:1 1 auto}.subjects-upcoming-list,.subjects-recent-grades-list{list-style:none;margin:0;padding:0}.subjects-upcoming-meta,.subjects-recent-grade-meta{display:block;font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:2px}.subjects-recent-grade-text{display:flex;flex-direction:column;gap:2px}@media(max-width:768px){.subjects-widgets-row--first,.subjects-widgets-row--second{grid-template-columns:1fr}}.subjects-grade-chart-wrapper{width:100%;min-width:0}.subjects-grade-chart-wrapper .info-card.widget-grade-chart{width:100%;max-height:520px;min-height:400px}.subjects-grade-chart-wrapper .card-title{display:flex;align-items:center;gap:.5rem}.grade-chart-subject-selector{padding:0 var(--spacing-lg) var(--spacing-sm);display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm)}.grade-chart-subject-selector--inline{padding:0;flex-wrap:nowrap;flex-shrink:0}.grade-chart-subject-selector-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.grade-chart-subject-dropdown{position:relative}.grade-chart-subject-dropdown-trigger{font-size:var(--text-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer;min-width:140px;text-align:left;display:inline-flex;align-items:center;justify-content:space-between}.grade-chart-subject-dropdown-trigger:hover{border-color:var(--color-primary)}.grade-chart-subject-dropdown-trigger:focus{outline:none;border-color:var(--color-primary)}.grade-chart-subject-dropdown-panel{position:absolute;top:calc(100% + var(--spacing-xs));left:0;z-index:10;min-width:180px;max-height:240px;overflow-y:auto;padding:var(--spacing-xs);background:var(--color-surface-elevated, var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:2px}.grade-chart-subject-dropdown-option{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--text-sm);color:var(--color-text-primary);cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);white-space:nowrap}.grade-chart-subject-dropdown-option:hover{background:var(--color-surface-variant)}.grade-chart-subject-dropdown-option input{cursor:pointer;flex-shrink:0}.grade-chart-subject-checkboxes{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.grade-chart-subject-checkbox-label{display:inline-flex;align-items:center;gap:var(--spacing-xs);font-size:var(--text-sm);color:var(--color-text-primary);cursor:pointer;padding:4px 10px;border-radius:var(--radius-full);background-color:var(--color-surface-variant);border:1px solid transparent}.grade-chart-subject-checkbox{cursor:pointer}.grade-chart-subject-checkbox:checked+span{color:var(--color-primary);font-weight:600}.subjects-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:0}.group-name-with-selector{display:flex;align-items:center;gap:var(--spacing-md)}.group-name-icon{width:28px;height:28px;flex-shrink:0}.subjects-page-title{font-size:var(--text-3xl);font-weight:700;letter-spacing:1.5px;color:var(--color-text-primary);margin:0;display:flex;align-items:center;flex-wrap:wrap;gap:2px}.group-name-clickable{font-size:inherit;font-weight:700;color:var(--color-text-primary);cursor:pointer;text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .2s;margin:0}.group-name-clickable:hover{text-decoration-color:var(--color-text-primary)}.group-selector-arrow{background:none;border:none;padding:var(--spacing-xs);font-size:var(--text-xl);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-base);line-height:1;display:flex;align-items:center;justify-content:center;min-width:32px;height:32px}.group-selector-arrow:hover{color:var(--color-primary);transform:scale(1.1)}.subjects-header-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap;align-items:center}.subjects-table-wrapper{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;display:flex;flex-direction:column;width:100%;min-height:0;flex:0 0 auto}.subjects-table-body{display:flex;flex-direction:column;width:100%;flex:1;min-height:0;overflow:hidden;max-height:calc(100vh - 300px);max-height:calc(100dvh - 300px)}.subjects-table-footer{flex-shrink:0}.subjects-table{width:100%;border-collapse:collapse;table-layout:fixed}.subjects-table thead{background-color:var(--color-primary);color:#fff}.subjects-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:600;font-size:var(--text-sm);letter-spacing:.05em;text-transform:uppercase}.subjects-table th.grade-column-header,.subjects-table th.goal-column-header{text-align:center}.subjects-table .sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-fast)}.subjects-table .sortable-header:hover{background-color:#ffffff1a}.subjects-table .sort-indicator{font-size:var(--text-xs);margin-left:var(--spacing-xs);color:#fff}.subjects-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color .2s}.subjects-table tbody tr.clickable-row{cursor:pointer}.subjects-table tbody tr.clickable-row:hover{background-color:var(--color-hover)}.subjects-table td{padding:var(--spacing-md) var(--spacing-lg);color:var(--color-text-primary)}.subjects-table td.grade-column,.subjects-table td.goal-column{text-align:center}.subjects-table tfoot{background-color:var(--color-surface-variant);font-weight:600}.subjects-table tfoot td{padding:var(--spacing-md) var(--spacing-lg);border-top:2px solid var(--color-border)}.total-row{font-size:var(--text-lg)}.subjects-table tfoot .total-row .goal-column strong,.subjects-table tfoot .total-row .total-average-cell strong{font-weight:600}.total-average-label-short{display:none}.subjects-table-scrollable{display:block;flex:1 1 auto;min-height:280px;height:auto;max-height:calc(100dvh - 320px);overflow-y:auto;overflow-x:hidden;position:relative;width:100%;margin:0;padding-bottom:0;-webkit-overflow-scrolling:touch;box-sizing:border-box}.subjects-table-scrollable table{width:100%;border-collapse:collapse;margin:0}.subjects-table-scrollable::-webkit-scrollbar{width:8px}.subjects-table-scrollable::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.subjects-table-scrollable::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.subjects-table-scrollable::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.subjects-table-scrollable{scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.grade-cell{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md)}.grade-value{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-weight:600;min-width:60px;min-height:35px;line-height:1;text-align:center;box-sizing:border-box}.grade-default{background-color:var(--color-surface-variant);color:var(--color-text-secondary)}.grade-empty{display:inline-flex;align-items:center;justify-content:center;min-width:60px;min-height:35px;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);background-color:var(--color-surface-variant);color:var(--color-text-secondary)}.grade-empty-icon{font-size:1.25rem;font-weight:400;opacity:.6}.grade-green{background-color:#d4edda;color:#155724}.grade-yellow{background-color:#fff3cd;color:#856404}.grade-red{background-color:#f8d7da;color:#721c24}[data-theme=dark] .grade-green{background-color:#064e3b;color:#6ee7b7}[data-theme=dark] .grade-yellow{background-color:#78350f;color:#fcd34d}[data-theme=dark] .grade-red{background-color:#7f1d1d;color:#fca5a5}.btn-add-grade img{filter:brightness(0) invert(1)}.archive-list-container{display:flex;flex-direction:column;gap:var(--spacing-lg)}.archive-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:400px;overflow-y:auto}.archive-list-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background-color .2s,border-color .2s;text-align:left;width:100%}.archive-list-item:hover{background-color:var(--color-hover);border-color:var(--color-primary)}.archive-group-name{font-weight:600;color:var(--color-text-primary);font-size:var(--text-base)}.archive-group-date{font-size:var(--text-sm);color:var(--color-text-secondary)}.empty-state-text{text-align:center;color:var(--color-text-secondary);padding:var(--spacing-xl);font-size:var(--text-base)}.archived-group-container{display:flex;flex-direction:column;gap:var(--spacing-lg)}.subjects-table-container{max-height:400px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.archived-group-container .subjects-table-container .subjects-table thead,.archived-group-container .subjects-table thead th{background-color:var(--color-surface-variant)!important;color:var(--color-text-primary)!important}.selector-overlay{position:fixed;inset:0;background-color:#00000080;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:center;padding:var(--spacing-xl) var(--spacing-md);overflow-y:auto;overflow-x:hidden;box-sizing:border-box;z-index:1000;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.group-selector-modal{position:relative;z-index:1001;width:100%;max-width:500px;margin:auto}.group-selector-content{background-color:var(--color-surface);border-radius:var(--radius-xl);width:100%;max-height:80vh;overflow:hidden;box-shadow:var(--shadow-xl);box-sizing:border-box;animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.group-selector-header{background-color:var(--color-primary);padding:var(--spacing-sm) var(--spacing-lg);display:flex;justify-content:space-between;align-items:center}.group-selector-title{color:#fff;font-size:var(--text-xl);font-weight:600;margin:0;font-family:var(--font-sans)}.group-selector-close-btn{background:none;border:none;color:#fff;cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-base);min-width:32px;min-height:32px}.group-selector-close-btn:hover{background-color:#ffffff1a;transform:scale(1.1)}.group-selector-close-btn:active{background-color:#fff3}.group-selector-close-btn img{width:20px;height:20px}.group-selector-list{display:flex;flex-direction:column;overflow-y:auto;max-height:calc(80vh - 64px);padding:0}.group-selector-item{width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background:none;border:none;text-align:left;font-size:var(--text-base);color:var(--color-text-primary);cursor:pointer;transition:background-color var(--transition-fast);border-bottom:1px solid var(--color-border-light)}.group-selector-item:last-child{border-bottom:none}.group-selector-item:hover{background-color:var(--color-surface-hover)}.group-selector-item.active{background-color:var(--color-surface-variant);color:var(--color-text-primary);font-weight:600}.group-selector-item.active .archived-badge{background-color:var(--color-surface-hover);color:var(--color-text-secondary)}.group-item-name{font-weight:500;font-size:var(--text-base)}.group-selector-divider{height:1px;background-color:var(--color-border);margin:var(--spacing-xs) 0}.group-selector-empty{padding:var(--spacing-2xl);text-align:center;color:var(--color-text-secondary);font-size:var(--text-base)}.archived-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-surface-variant);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:600;letter-spacing:.05em;border-radius:var(--radius-sm);margin-left:var(--spacing-sm)}.archived-label{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-surface-variant);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:600;letter-spacing:.05em;border-radius:var(--radius-sm);margin-left:var(--spacing-md)}.group-name-clickable.archived{color:var(--color-text-secondary);cursor:default;text-decoration:none;opacity:.8}.group-name-clickable.archived:hover{text-decoration:none}.subjects-main.archived-view .subjects-table tbody{opacity:.9}.subjects-main.archived-view .subjects-table td{color:var(--color-text-secondary)}.subject-detail-container{display:flex;flex-direction:column;gap:var(--spacing-lg)}.subject-detail-panels{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.subject-detail-panels.single-panel{grid-template-columns:1fr}.subject-detail-panel{display:flex;flex-direction:column;gap:var(--spacing-md);min-height:0}.panel-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-sm)}.panel-header h3{font-size:var(--text-xl);font-weight:600;color:var(--color-text-primary)}.grades-table-container{max-height:400px;min-height:0;overflow-y:auto;overflow-x:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);flex-shrink:1}.grades-table{width:100%;border-collapse:collapse}.grades-table thead{background-color:var(--color-surface-variant);position:sticky;top:0;z-index:5}.grades-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:600;font-size:var(--text-sm);color:var(--color-text-primary);border-bottom:1px solid var(--color-border)}.grades-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color .2s}.grades-table tbody tr.clickable-row{cursor:pointer}.grades-table tbody tr.clickable-row:hover{background-color:var(--color-hover)}.grades-table td{padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-primary);font-size:var(--text-sm)}.grades-table tfoot{background-color:var(--color-surface-variant);font-weight:600;position:sticky;bottom:0}.grades-table tfoot td{padding:var(--spacing-sm) var(--spacing-md);border-top:2px solid var(--color-border)}.average-row{font-size:var(--text-base)}.modal-description{color:var(--color-text-secondary);font-size:var(--text-base);line-height:1.5;margin-bottom:var(--spacing-lg)}.delete-confirmation-text{color:var(--color-text-primary);font-size:var(--text-base);line-height:1.5;margin:0 0 var(--spacing-lg) 0;text-align:center}@media(max-width:1280px){.subjects-content{padding:var(--spacing-xl)}.subjects-top-section{grid-template-columns:1fr}}@media(min-width:769px)and (max-width:1280px){.subjects-top-section{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto auto;grid-template-areas:"actions actions" "table table" "summary avggrade" "comparison upcoming";gap:var(--spacing-xl)}.subjects-left-column,.subjects-dashboard,.subjects-right-column,.subjects-widgets,.subjects-widgets-row--first,.subjects-widgets-row--second{display:contents}.subjects-table-wrapper{grid-area:table}.subjects-header-actions{grid-area:actions}.subjects-summary-card{grid-area:summary}.subjects-grade-chart-wrapper{grid-area:avggrade}.subjects-widget--chart{grid-area:comparison}.subjects-widget--upcoming{grid-area:upcoming}}@media(max-width:1279px){.subjects-table-body{max-height:360px}.subjects-table-scrollable{flex:1 1 auto;height:auto;min-height:0;max-height:360px}}@media(max-width:1024px){.subjects-content{padding:var(--spacing-lg);min-height:0}.subject-detail-panels{grid-template-columns:1fr;gap:var(--spacing-md)}.subjects-table-scrollable{max-height:min(360px,calc(100dvh - 280px))}}@media(max-width:850px){.subjects-content{padding:var(--spacing-lg);padding-top:var(--spacing-lg)}.subjects-main{gap:var(--page-title-content-gap)}.subjects-header{flex-direction:column;align-items:stretch;gap:var(--spacing-md);margin-bottom:0}.group-name-with-selector{justify-content:flex-start;width:100%}.subjects-breadcrumb{display:none}.group-name-clickable{font-size:var(--text-2xl);flex:0 1 auto}.group-selector-arrow{min-width:28px;height:28px;font-size:var(--text-lg)}.subjects-right-column .subjects-header-actions{width:100%;justify-content:stretch;gap:var(--spacing-sm)}.subjects-right-column .subjects-header-actions button{flex:1;min-width:0;font-size:var(--text-sm)}.subjects-table th,.subjects-table td{padding:var(--spacing-sm);font-size:var(--text-sm)}.empty-state h2{font-size:var(--text-3xl)}.grade-cell{flex-direction:column;align-items:center;gap:var(--spacing-xs)}.grade-cell .grade-value,.grade-cell .grade-empty,.subjects-table tfoot .total-row .grade-column .grade-value{min-width:50px;min-height:32px;font-size:var(--text-sm);padding:4px var(--spacing-xs)}.subjects-table tfoot .total-row td{font-size:var(--text-sm);padding:var(--spacing-sm)}.grade-cell .grade-empty-icon{font-size:1.1rem}.btn-add-grade{display:none}.subjects-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.subjects-table thead th:nth-child(2),.subjects-table tbody td:nth-child(2),.subjects-table tfoot td:nth-child(2){display:none}.subjects-table colgroup{display:none}.subjects-table th,.subjects-table td{text-align:center}.grade-cell{justify-content:center}.total-average-label-long{display:none}.total-average-label-short{display:inline}.subjects-table tfoot .total-row .total-average-cell{text-align:center}.subjects-table-scrollable{max-height:calc(100vh - 320px);min-height:300px}.subjects-table-scrollable::-webkit-scrollbar{width:6px}.subjects-table-scrollable::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1)}.subjects-table-scrollable::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4)}.subjects-table-scrollable::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.selector-overlay{padding:var(--spacing-md);padding-top:56px;align-items:flex-start}.group-selector-modal{max-width:none;width:95vw}.group-selector-content{max-height:calc(100vh - 72px)}.group-selector-header{padding:var(--spacing-sm) var(--spacing-md)}.group-selector-title{font-size:var(--text-lg)}.group-selector-list{max-height:calc(100vh - 136px)}.group-selector-close-btn{min-width:44px;min-height:44px;padding:var(--spacing-sm)}}@media(max-width:640px){.subjects-content{padding:var(--spacing-md);padding-top:var(--spacing-md)}.subjects-header h1{font-size:var(--text-2xl)}.group-name-clickable{font-size:var(--text-xl);flex-wrap:wrap}.archived-label{font-size:var(--text-xs);padding:2px var(--spacing-xs);margin-left:var(--spacing-xs)}.empty-state h2{font-size:var(--text-2xl)}.empty-state-actions{flex-direction:column;gap:var(--spacing-sm)}.empty-state-actions button{width:100%;max-width:300px}.subjects-table th,.subjects-table td{padding:.375rem;font-size:var(--text-xs)}.grade-cell .grade-value{min-width:40px;font-size:var(--text-xs);padding:2px 4px}.subjects-table tfoot .total-row .grade-column .grade-value{min-width:40px;min-height:32px;font-size:var(--text-xs);padding:2px 4px}.subjects-table tfoot .total-row td{font-size:var(--text-xs);padding:.375rem}.subjects-table tfoot .total-row .goal-column strong{font-size:inherit;font-weight:600}.group-name-clickable{font-size:var(--text-xl)}.group-selector-arrow{min-width:24px;height:24px;font-size:var(--text-base);padding:2px}.selector-overlay{padding:var(--spacing-sm);padding-top:var(--spacing-sm);align-items:flex-start}.group-selector-modal{max-width:none;width:calc(100vw - var(--spacing-md))}.group-selector-content{max-height:calc(100vh - 56px - var(--spacing-md));border-radius:var(--radius-xl)}.group-selector-header{padding:var(--spacing-xs) var(--spacing-md)}.group-selector-title{font-size:var(--text-base);line-height:1.2}.group-selector-list{max-height:calc(100vh - 120px)}.group-selector-close-btn{min-width:44px;min-height:44px}.group-selector-close-btn img{width:24px;height:24px}.group-selector-item{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-sm)}.archived-badge{font-size:.65rem;padding:2px var(--spacing-xs)}}@media(max-width:320px){.subjects-content{padding:var(--spacing-sm);padding-top:var(--spacing-sm)}.subjects-header h1{font-size:var(--text-xl)}.grade-cell .grade-value,.subjects-table tfoot .total-row .grade-column .grade-value{min-width:36px;font-size:.65rem;padding:2px 4px}}.tasks-page{display:flex;flex-direction:column;height:calc(100vh - 56px);height:calc(100dvh - 56px);max-height:calc(100vh - 56px);max-height:calc(100dvh - 56px);background:var(--color-background);padding:0;overflow:hidden;max-width:1800px;margin:0 auto;width:100%}.tasks-header{display:flex;justify-content:space-between;align-items:center;padding:48px 48px var(--page-title-content-gap) 48px;flex-shrink:0}.page-title{display:flex;align-items:center;gap:12px;font-size:var(--text-3xl);font-weight:700;letter-spacing:1.5px;color:var(--color-text);margin:0}.add-task-btn-desktop{width:100%;padding:12px 24px;font-size:14px;font-weight:600;letter-spacing:.5px;border-radius:8px;border:none;cursor:pointer;transition:all .2s}.tasks-content{display:flex;flex-direction:row;gap:var(--spacing-xl);padding:0 48px 48px;flex:1;overflow:hidden;min-height:0}.tasks-main{display:flex;flex-direction:column;gap:var(--spacing-md);flex:1 1 auto;min-width:0;min-height:0;overflow:hidden}.error-message{padding:16px;background:#dc26261a;border:1px solid rgba(220,38,38,.3);border-radius:8px;color:#dc2626;font-size:14px}.loading-message,.empty-message{padding:40px 16px;text-align:center;color:var(--color-text-secondary);font-size:15px}.tasks-table-container{flex:1 1 auto;min-height:0;background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;overflow:hidden}.tasks-table-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;position:relative}.tasks-table-scroll::-webkit-scrollbar{width:8px}.tasks-table-scroll::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.tasks-table-scroll::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.tasks-table-scroll::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.tasks-table-scroll{scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.tasks-table{width:100%;border-collapse:collapse;display:table;table-layout:auto}.tasks-table thead{background-color:var(--color-primary);color:#fff}.tasks-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-size:var(--text-sm);font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.tasks-table .sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-fast)}.tasks-table .sortable-header:hover{background-color:#ffffff1a}.tasks-table .sort-indicator{font-size:var(--text-xs);margin-left:var(--spacing-xs);color:#fff}.tasks-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color .2s}.tasks-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--text-base);color:var(--color-text-primary)}.task-row{cursor:pointer;transition:background-color var(--transition-fast)}.task-row:hover{background-color:var(--color-hover)}.task-row.completed{opacity:.6}.task-row.completed .col-name{text-decoration:line-through}.tasks-empty-cell{text-align:center;padding:40px var(--spacing-lg)!important;color:var(--color-text-secondary);font-size:15px}.col-checkbox{width:50px;text-align:center}.col-name{font-weight:400}.col-duration{width:120px}.col-scheduled-date,.col-due-date{width:150px}.col-category{width:200px;max-width:200px;overflow:hidden}.col-checkbox input[type=checkbox]{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;width:18px!important;height:18px!important;border:2px solid var(--color-border)!important;border-radius:4px!important;cursor:pointer!important;position:relative!important;background-color:var(--color-surface)!important;transition:all var(--transition-base)!important;flex-shrink:0!important;margin:0!important}.col-checkbox input[type=checkbox]:hover{border-color:var(--color-primary)!important}.col-checkbox input[type=checkbox]:checked{background-color:var(--color-primary)!important;border-color:var(--color-primary)!important}.col-checkbox input[type=checkbox]:checked:after{content:""!important;position:absolute!important;left:5px!important;top:2px!important;width:4px!important;height:8px!important;border:solid white!important;border-width:0 2px 2px 0!important;transform:rotate(45deg)!important;display:block!important}.col-due-date .overdue{color:#dc2626;font-weight:600}.category-badge{display:inline-block;max-width:100%;padding:.25rem .75rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.category-badge .subject-abbr{opacity:.85;font-weight:400;margin-left:.25rem}.pagination-footer{padding:0!important;border-bottom:none!important}.task-filters-wrapper{display:flex;flex-direction:column;gap:var(--spacing-md);flex:0 0 280px;width:280px;min-width:280px;max-width:280px;align-self:flex-start}.task-filters{display:flex;flex-direction:column;gap:var(--spacing-lg);padding:var(--spacing-lg);background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow-y:auto;max-height:calc(100vh - 310px)}.filters-title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:0}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-label{font-size:.875rem;font-weight:500;color:var(--color-text-primary)}.filter-input{padding:.5rem;border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;background-color:var(--color-surface);color:var(--color-text-primary);transition:border-color var(--transition-base);outline:none}.filter-input:focus{border-color:var(--color-primary)}.btn-clear-filters{width:100%;padding:12px;background:var(--color-gray-button);color:var(--color-gray-button-text);border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;transition:all .2s}.btn-clear-filters:hover{background:var(--color-gray-button-hover)}.sort-section{display:flex;flex-direction:column;gap:var(--spacing-md);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.sort-order{display:flex;gap:var(--spacing-md)}.sort-radio-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-text-primary);cursor:pointer}.sort-radio-label input[type=radio]{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;width:16px!important;height:16px!important;border:2px solid var(--color-border)!important;border-radius:50%!important;cursor:pointer!important;position:relative!important;background-color:var(--color-surface)!important;transition:all var(--transition-base)!important;margin:0!important}.sort-radio-label input[type=radio]:hover{border-color:var(--color-primary)!important}.sort-radio-label input[type=radio]:checked{border-color:var(--color-primary)!important}.sort-radio-label input[type=radio]:checked:after{content:""!important;position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;width:8px!important;height:8px!important;border-radius:50%!important;background-color:var(--color-primary)!important;display:block!important}.mobile-bottom-sheet,.mobile-bottom-sheet-backdrop{display:none}@media(max-width:1100px){.mobile-bottom-sheet-backdrop{display:block;position:fixed;inset:0;background-color:#0006;z-index:999;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mobile-bottom-sheet{display:flex;flex-direction:column;position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top-left-radius:20px;border-top-right-radius:20px;box-shadow:0 -4px 20px #0000004d;transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:1000;transform:translateY(calc(100% - 52px));border-top:1px solid var(--color-border);height:66.67vh;height:66.67dvh;max-height:66.67vh;max-height:66.67dvh;overflow:hidden}.bottom-sheet-viewport{flex:1 1 0;min-height:0;overflow:hidden;position:relative;display:flex;flex-direction:column}.bottom-sheet-content{flex:1 1 0;min-height:0}.bottom-sheet-fade{position:absolute;bottom:0;left:0;right:0;height:56px;background:linear-gradient(to top,var(--color-surface) 0%,var(--color-surface) 25%,transparent 100%);pointer-events:none;z-index:1}.mobile-bottom-sheet.open{transform:translateY(0)}.bottom-sheet-top-bar{position:absolute;top:0;left:0;right:0;height:60px;background:var(--color-surface);z-index:1;border-top-left-radius:20px;border-top-right-radius:20px}.bottom-sheet-toggle{position:absolute;top:12px;left:50%;transform:translate(-50%);background:var(--color-surface-hover);border:none;color:var(--color-text-secondary);cursor:pointer;padding:6px 20px;border-radius:20px;z-index:10;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .2s}.bottom-sheet-toggle:active{background:var(--color-border)}.bottom-sheet-content{padding:60px 16px 88px;display:flex;flex-direction:column;gap:24px;min-height:220px;overflow-y:auto;-webkit-overflow-scrolling:touch;position:relative;z-index:0}.bottom-sheet-content::-webkit-scrollbar{width:4px}.bottom-sheet-content::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1)}.bottom-sheet-content::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:2px}.bottom-sheet-content::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.bottom-sheet-actions{display:flex;gap:12px;flex-shrink:0}.bottom-sheet-btn{flex:1 1 0;min-width:0;height:50px;border-radius:14px;font-size:var(--text-lg);font-weight:600;letter-spacing:.5px;text-transform:uppercase;border:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:all .2s}.bottom-sheet-btn.btn-primary{background-color:var(--color-primary);color:#fff}.bottom-sheet-btn.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.bottom-sheet-btn.btn-primary:active{background-color:var(--color-primary-hover);transform:scale(.98)}.bottom-sheet-actions .btn-clear-filters{width:auto;flex:1 1 0;min-width:0;padding:0 16px;margin:0;background:var(--color-gray-button);color:var(--color-gray-button-text);border-radius:14px;font-size:var(--text-lg)}.bottom-sheet-actions .btn-clear-filters:hover{background:var(--color-gray-button-hover)}.bottom-sheet-actions .btn-clear-filters:active{background:var(--color-gray-button-hover);transform:scale(.98)}.filters-section{display:flex;flex-direction:column;gap:16px;padding-top:8px}.filters-section .filters-title{font-size:16px;font-weight:600;color:var(--color-text);margin:0;letter-spacing:.5px}.filters-section .filter-group{display:flex;flex-direction:column;gap:8px}.filters-section .filter-label{font-size:13px;font-weight:500;color:var(--color-text-secondary);letter-spacing:.3px}.filters-section .filter-input{width:100%;padding:12px 14px;background:var(--color-background);border:1px solid var(--color-border);border-radius:10px;color:var(--color-text);font-size:14px;font-family:inherit;transition:all .2s;-webkit-appearance:none;appearance:none}.filters-section .filter-input:focus{outline:none;border-color:var(--color-primary);background:var(--color-surface)}.filters-section .filter-input[type=date]{position:relative;color-scheme:dark}.filters-section select.filter-input{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='%23999' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-md) center;padding-right:40px}.filters-section .btn-clear-filters{width:100%;padding:14px;background:var(--color-gray-button);color:var(--color-gray-button-text);border:none;border-radius:12px;font-size:13px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;cursor:pointer;margin-top:8px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:all .2s}.filters-section .btn-clear-filters:active{background:var(--color-gray-button-hover);transform:scale(.98)}.filters-section .sort-section{display:flex;flex-direction:column;gap:12px;padding-top:16px;border-top:1px solid var(--color-border)}.sort-info{font-size:13px;color:var(--color-text-secondary);font-style:italic}}@media(max-width:1250px){.col-scheduled-date{display:none}}@media(max-width:1200px){.task-filters-wrapper{width:280px;flex:0 0 280px;min-width:280px;max-width:280px}}@media(max-width:1024px){.tasks-page{height:calc(100vh - 56px);height:calc(100dvh - 56px);max-height:calc(100vh - 56px);max-height:calc(100dvh - 56px);min-height:0}.tasks-content{gap:var(--spacing-md);flex:1;min-height:0;overflow:hidden}.tasks-main{flex:1;min-height:0;overflow:hidden}.tasks-table-container{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.tasks-table-scroll{flex:1;min-height:0;overflow-y:auto}.pagination-container{display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);flex-shrink:0}.task-filters-wrapper{width:250px;flex:0 0 250px;min-width:250px;max-width:250px}.task-filters{padding:var(--spacing-md)}.tasks-table td{font-size:var(--text-sm)}.pagination-info{flex-shrink:0;font-size:var(--text-xs)}.pagination-controls{flex-shrink:0}.page-size-selector{flex-shrink:0;font-size:var(--text-xs)}.bottom-sheet-content{max-height:min(70vh,calc(100vh - 100px));max-height:min(70dvh,calc(100dvh - 100px))}}@media(max-width:1100px){.tasks-page{padding:0 0 60px}.tasks-header{padding:24px var(--spacing-lg) 16px var(--spacing-lg)}.tasks-title{font-size:24px}.add-task-btn-desktop{display:none}.tasks-content{flex-direction:column;padding:0 var(--spacing-lg);gap:0;flex:1;min-height:0}.tasks-main{padding:0;flex:1;min-height:0}.task-filters-wrapper{display:none}}@media(max-width:850px){.tasks-header{padding:24px var(--spacing-md) 16px var(--spacing-md);padding-top:24px}.tasks-content{padding:0 var(--spacing-md)}.tasks-table{font-size:14px;table-layout:fixed}.tasks-table thead th{padding:6px var(--spacing-sm);font-size:var(--text-sm);line-height:1.25}.tasks-table td{padding:var(--spacing-sm);font-size:var(--text-sm)}.col-checkbox{width:44px;padding-right:0!important}.col-name{width:calc(42% - 14px)}.col-due-date{width:24%}.col-category{width:34%}.checkbox-wrapper{display:flex;align-items:center;justify-content:center;padding:4px;cursor:pointer;-webkit-tap-highlight-color:transparent;flex-shrink:0;z-index:10}.tasks-page .col-checkbox .task-checkbox{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;width:18px!important;height:18px!important}.overdue{font-size:11px}.category-badge{font-size:11px;padding:4px 10px;border-radius:12px}.pagination-footer{padding:0!important}.pagination-container{padding:var(--spacing-sm);flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:var(--spacing-xs)}.pagination-info{flex-shrink:1;font-size:.65rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.pagination-controls{flex-shrink:0;gap:2px}.pagination-button{min-width:32px;height:32px;font-size:.65rem;padding:4px}.page-size-selector{flex-shrink:0;font-size:.65rem;white-space:nowrap}.page-size-selector label{display:none}.page-size-selector select{font-size:.65rem;padding:var(--spacing-xs) 4px;min-width:50px}}@media(max-width:768px){.col-duration{display:none}}@media(max-width:400px){.tasks-header{padding:24px var(--spacing-sm) 16px var(--spacing-sm);padding-top:24px}.tasks-content{padding:0 var(--spacing-sm)}.tasks-title{font-size:20px}.tasks-table thead th{padding:5px 8px;font-size:var(--text-xs);line-height:1.2}.tasks-table td{padding:14px 8px;font-size:var(--text-xs)}.col-checkbox{width:40px}.tasks-page .col-checkbox .task-checkbox{width:16px!important;height:16px!important}.col-name{min-width:110px}.col-due-date,.col-category{min-width:80px}.category-badge{font-size:10px;padding:3px 8px}.pagination-container{padding:var(--spacing-xs) 4px;gap:4px;flex-wrap:nowrap}.pagination-info{font-size:.6rem;min-width:0;flex-shrink:1}.pagination-controls{gap:2px;flex-shrink:0}.pagination-button{min-width:28px;height:28px;font-size:.6rem;padding:2px}.page-size-selector{font-size:.6rem;flex-shrink:0}.page-size-selector select{font-size:.6rem;padding:2px 4px;min-width:45px}}@media(max-height:600px)and (orientation:landscape){.tasks-page{padding-bottom:60px}.bottom-sheet-content{max-height:85vh}.tasks-header,.pagination{padding:16px}}@media(orientation:landscape)and (max-height:800px){.tasks-page{height:calc(100vh - 56px);height:calc(100dvh - 56px);max-height:calc(100vh - 56px);max-height:calc(100dvh - 56px);min-height:0}.tasks-header{padding:16px var(--spacing-lg) 12px;flex-shrink:0}.tasks-content{flex:1;min-height:0;overflow:hidden;padding-bottom:16px}.tasks-main{flex:1;min-height:0;overflow:hidden}.tasks-table-container{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.tasks-table-scroll{flex:1;min-height:0;overflow-y:auto}.pagination-container{flex-shrink:0}.bottom-sheet-content{max-height:min(70vh,calc(100vh - 100px));max-height:min(70dvh,calc(100dvh - 100px))}}.month-navigator{display:flex;align-items:center;gap:.5rem}.month-nav-btn{background:none;border:none;color:var(--color-text-primary);cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);font-weight:600;transition:color var(--transition-fast)}.month-nav-btn:hover{color:var(--color-text-secondary)}.month-nav-btn img{width:24px;height:24px;display:block}[data-theme=dark] .month-nav-btn img{filter:invert(1) brightness(1.2)}.month-display{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);min-width:auto;text-align:center;padding:0;margin:0}.month-text{text-decoration:none}@media(max-width:850px){.month-navigator{justify-content:center;width:100%;gap:var(--spacing-sm)}.month-nav-btn{width:32px;height:32px;padding:var(--spacing-xs)}.month-display{font-size:var(--text-xl);white-space:nowrap}.month-text{display:inline;white-space:nowrap}}@media(max-width:480px){.month-navigator{gap:var(--spacing-xs)}.month-nav-btn{width:28px;height:28px;padding:2px}.month-nav-btn img{width:20px;height:20px}}.monthly-total-card{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;max-height:400px;width:100%;box-sizing:border-box;min-width:0}.monthly-total-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm);gap:var(--spacing-sm);min-height:40px}.monthly-total-card__title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:0;text-align:left}.monthly-total-card__content{flex:1;display:flex;flex-direction:column;justify-content:flex-start;margin-top:0}.monthly-total-card__progress-row{display:flex;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.monthly-total-card__progress-bar-container{flex:1;min-width:0;height:35px;min-height:35px;flex-shrink:0;background-color:var(--color-background);border-radius:var(--radius-full);overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center}.monthly-total-card__progress-bar{height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal);position:absolute;left:0;top:0}.monthly-total-card__progress-bar--behind{z-index:0}.monthly-total-card__progress-bar--actual{z-index:1}.monthly-total-card__progress-bar--green{background-color:#10b981}.monthly-total-card__progress-bar--yellow{background-color:#f59e0b}.monthly-total-card__progress-bar--red{background-color:#ef4444}.monthly-total-card__progress-bar--dark-red{background-color:#991b1b}.monthly-total-card__progress-bar--pending{background-color:var(--color-primary-lighter)}.monthly-total-card__pending-suffix,.monthly-total-card__remaining-incl-pending{font-size:var(--text-sm);color:var(--color-text-secondary)}.monthly-total-card__percentage{font-size:var(--text-base);font-weight:600;text-align:right;flex-shrink:0;color:var(--color-text-primary);margin:0}.monthly-total-card__percentage--green,.monthly-total-card__percentage--yellow{color:var(--color-text-primary)}.monthly-total-card__percentage--red,.monthly-total-card__percentage--dark-red{color:#991b1b}.monthly-total-card__percentage-incl-pending{font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary)}.monthly-total-card--over-incl-pending .monthly-total-card__percentage-incl-pending,.monthly-total-card--over-incl-pending .monthly-total-card__pending-suffix,.monthly-total-card--over-incl-pending .monthly-total-card__remaining-incl-pending{color:#991b1b;font-weight:600}.monthly-total-card__budget-details{display:flex;flex-direction:column;gap:var(--spacing-md)}.monthly-total-card__budget-row{display:flex;justify-content:space-between;align-items:center}.monthly-total-card__budget-row--total{padding-top:var(--spacing-md);margin-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.monthly-total-card__budget-label,.monthly-total-card__budget-value{font-size:var(--text-base);color:var(--color-text-primary)}.monthly-total-card__budget-value--bold{font-weight:600}.monthly-total-card__budget-row--over .monthly-total-card__budget-label,.monthly-total-card__budget-row--over .monthly-total-card__budget-value{color:#991b1b;font-weight:600}.monthly-total-card__budget-row--total .monthly-total-card__budget-label,.monthly-total-card__budget-row--total .monthly-total-card__budget-value{font-weight:600}.monthly-total-card__days-until{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap}.monthly-total-card--compact{max-height:none;padding:var(--spacing-md) var(--spacing-lg)}.monthly-total-card--compact .monthly-total-card__progress-row{margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.monthly-total-card--compact .monthly-total-card__progress-bar-container{height:28px;min-height:28px}.monthly-total-card--compact .monthly-total-card__budget-details{gap:var(--spacing-sm)}.monthly-total-card--compact .monthly-total-card__budget-row--total{padding-top:var(--spacing-sm);margin-top:var(--spacing-xs)}@media(max-width:1024px){.monthly-total-card{padding:var(--spacing-lg) var(--spacing-xl)}.monthly-total-card__progress-bar-container{height:32px;min-height:32px}}@media(max-width:640px){.monthly-total-card{padding:var(--spacing-md) var(--spacing-lg)}.monthly-total-card__title{font-size:var(--text-base)}.monthly-total-card__progress-bar-container{height:28px;min-height:28px}.monthly-total-card__budget-label,.monthly-total-card__budget-value{font-size:var(--text-sm)}}.budget-category-tile{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg) var(--spacing-xl);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--spacing-sm);width:100%}.budget-category-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.category-name{font-size:var(--text-lg);font-weight:700;color:var(--color-text-primary);text-align:left;margin:0}.category-amount-row{display:flex;width:100%}.category-amount-block{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.category-amount{font-size:var(--text-base);font-weight:500;color:var(--color-text-primary)}.category-remaining{font-size:var(--text-sm);color:var(--color-text-secondary)}.category-remaining--overbudget{color:#991b1b;font-weight:600}.progress-row{display:flex;align-items:center;gap:var(--spacing-md);width:100%}.progress-bar-container{flex:1;height:8px;background-color:var(--color-background);border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-percentage{font-size:var(--text-sm);font-weight:600;flex-shrink:0}.progress-percentage-green{color:#10b981}.progress-percentage-yellow{color:#f59e0b}.progress-percentage-red{color:#ef4444}.progress-percentage-dark-red{color:#991b1b}.progress-bar{height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal);position:absolute;left:0;top:0}.progress-bar--behind{z-index:0}.progress-bar--actual{z-index:1}.progress-bar-pending{background-color:var(--color-primary-lighter)}.category-amount-pending-suffix,.category-remaining-incl-pending,.progress-percentage-incl-pending{font-size:var(--text-xs);color:var(--color-text-secondary)}.budget-category-tile--over-incl-pending .category-amount-pending-suffix,.budget-category-tile--over-incl-pending .category-remaining-incl-pending,.budget-category-tile--over-incl-pending .progress-percentage-incl-pending{color:#991b1b;font-weight:600}.progress-bar-green{background-color:#10b981}.progress-bar-yellow{background-color:#f59e0b}.progress-bar-red{background-color:#ef4444}.progress-bar-dark-red{background-color:#991b1b}@media(max-width:1024px){.budget-category-tile{padding:var(--spacing-md) var(--spacing-lg)}}@media(max-width:850px){.budget-category-tile{padding:var(--spacing-md);border:1px solid var(--color-border)}.category-name{font-size:var(--text-base)}.category-amount{font-size:var(--text-sm)}}@media(max-width:640px){.budget-category-tile{padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-xs)}.category-name{font-size:var(--text-base)}.progress-bar-container{height:6px}}.expenses-table-outer{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;display:flex;flex-direction:column;width:100%;min-height:0;flex:1}.expenses-table-wrapper{display:flex;flex-direction:column;width:100%;flex:1;min-height:0;overflow:hidden;max-height:calc(100vh - 360px);max-height:calc(100dvh - 360px)}.expenses-table-pagination{flex-shrink:0}.expenses-table-container{flex:0 0 560px;min-height:0;height:560px;max-height:560px;overflow-y:auto;overflow-x:hidden;position:relative;width:100%}.expenses-table{width:100%;border-collapse:collapse;table-layout:fixed}.expenses-table thead{background-color:var(--color-primary);color:#fff}.expenses-table thead tr{border-bottom:none}.expenses-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-size:var(--text-sm);font-weight:400;color:#fff;text-transform:uppercase;letter-spacing:.05em;background-color:var(--color-primary)}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-fast)}.sortable-header:hover{background-color:#ffffff1a}.sort-indicator{font-size:var(--text-xs);margin-left:var(--spacing-xs);color:#fff}.expenses-table-container::-webkit-scrollbar{width:8px}.expenses-table-container::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.expenses-table-container::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.expenses-table-container::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.expenses-table-container{scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.expense-row{cursor:pointer;transition:background-color .2s;border-bottom:1px solid var(--color-border)}.expense-row:hover{background-color:var(--color-hover)}.expense-row:last-child{border-bottom:none}.expenses-table-container--end-of-list .expense-row:last-child{border-bottom:1px solid var(--color-border)}.expenses-table-end-message{padding:var(--spacing-lg) var(--spacing-xl);text-align:center;color:var(--color-text-secondary);font-size:var(--text-sm);border-top:1px solid var(--color-border)}.expenses-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--text-sm);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expenses-table th:nth-child(1),.expenses-table td:nth-child(1){width:100px;min-width:100px}.expenses-table th:nth-child(2),.expenses-table td:nth-child(2){width:36%}.expenses-table th:nth-child(3),.expenses-table td:nth-child(3){width:26%}.expenses-table th:nth-child(4),.expenses-table td:nth-child(4){width:95px;min-width:95px;text-align:right}.expenses-table th:nth-child(5),.expenses-table td:nth-child(5){width:95px;min-width:95px}.expenses-table thead th:nth-child(5){padding-left:var(--spacing-sm);padding-right:var(--spacing-sm);overflow:visible;white-space:nowrap}.status-header-text{display:inline}.status-header-icon{display:none}.status-header-icon svg{display:block;vertical-align:middle}.expenses-table tbody td:nth-child(5){overflow:visible}.expense-status-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px;border-radius:var(--radius-full);white-space:nowrap}.expense-status-badge svg{display:block;flex-shrink:0}.expense-status-badge.paid{background-color:#d4edda;color:#155724}.expense-status-badge.planned{background-color:#fff3cd;color:#856404}.expense-status-badge.cancelled{background-color:#f8d7da;color:#721c24}[data-theme=dark] .expense-status-badge.paid{background-color:#064e3b;color:#6ee7b7}[data-theme=dark] .expense-status-badge.planned{background-color:#78350f;color:#fcd34d}[data-theme=dark] .expense-status-badge.cancelled{background-color:#7f1d1d;color:#fca5a5}[data-theme=dark] .expense-recurring-badge{background-color:#60a5fa33;color:#60a5fa}.expense-recurring-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:var(--spacing-xs);width:20px;height:20px;padding:3px;border-radius:var(--radius-full);background-color:#3b82f626;color:#3d68c4;flex-shrink:0}.description-cell{font-weight:400}.expenses-table td.amount-cell{font-weight:400;overflow:visible;text-overflow:clip}.table-empty{padding:var(--spacing-2xl);text-align:center;color:var(--color-text-secondary);font-size:var(--text-base)}.table-empty p{margin:0}.pagination-container{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-surface);border-top:1px solid var(--color-border);flex-wrap:wrap;gap:var(--spacing-md);flex-shrink:0}.pagination-button{min-width:36px;height:36px;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-primary);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:400;transition:all var(--transition-base);display:inline-flex;align-items:center;justify-content:center}.pagination-button.active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:400}.pagination-button.ellipsis{cursor:default;border:none;background:transparent}.pagination-button.ellipsis:hover{background:transparent;transform:none}.page-size-selector{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--text-sm);color:var(--color-text-secondary)}.page-size-selector label{display:none;white-space:nowrap}.page-size-selector select{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--transition-base)}@media(max-width:1279px){.expenses-table-wrapper{max-height:400px}.expenses-table-container{flex:1 1 auto;height:auto;min-height:0;max-height:400px}}@media(max-width:1024px){.expenses-table th,.expenses-table td{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-sm)}.pagination-container{display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)}.pagination-info{flex-shrink:0;font-size:var(--text-xs)}.pagination-controls{flex-shrink:0}.page-size-selector{flex-shrink:0;font-size:var(--text-xs)}.page-size-selector select{font-size:var(--text-xs);padding:var(--spacing-xs) var(--spacing-sm);min-width:50px}}@media(max-width:850px){.expenses-table-container{max-height:600px;overflow-x:visible}.expenses-table th,.expenses-table td{padding:var(--spacing-sm);font-size:var(--text-sm)}.expenses-table th:nth-child(3),.expenses-table td:nth-child(3){display:none}.expenses-table th:nth-child(1),.expenses-table td:nth-child(1){width:25%}.expenses-table th:nth-child(2),.expenses-table td:nth-child(2){width:50%}.expenses-table th:nth-child(4),.expenses-table td:nth-child(4){width:25%}.expense-status-badge{padding:3px}.expense-status-badge svg{width:12px;height:12px}.expense-recurring-badge{width:16px;height:16px;padding:2px;margin-left:2px}.expense-recurring-badge svg{width:10px;height:10px}.expenses-table th:nth-child(5),.expenses-table td:nth-child(5){width:56px;min-width:56px}.status-header-text{display:none}.status-header-icon{display:inline-flex;align-items:center;vertical-align:middle}}@media(max-width:768px){.pagination-container{padding:var(--spacing-sm);flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:var(--spacing-xs)}.pagination-info{flex-shrink:1;font-size:.65rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.pagination-controls{flex-shrink:0;gap:2px}.page-size-selector{flex-shrink:0;font-size:.65rem;white-space:nowrap}.page-size-selector label{display:none}.page-size-selector select{font-size:.65rem;padding:var(--spacing-xs) 4px;min-width:50px}.pagination-button{min-width:32px;height:32px;font-size:.65rem;padding:4px}}@media(max-width:640px){.expenses-table th,.expenses-table td{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--text-xs)}.expenses-table th{font-size:10px}.expenses-table th:nth-child(1),.expenses-table td:nth-child(1){width:22%}.expenses-table th:nth-child(2),.expenses-table td:nth-child(2){width:53%}.expenses-table th:nth-child(4),.expenses-table td:nth-child(4){width:25%}.expense-status-badge{padding:2px}.expense-status-badge svg{width:10px;height:10px}.expense-recurring-badge{width:14px;height:14px;padding:2px;margin-left:2px}.expense-recurring-badge svg{width:8px;height:8px}.expenses-table th:nth-child(5),.expenses-table td:nth-child(5){width:46px;min-width:46px}.status-header-icon svg{width:10px;height:10px}}@media(max-width:480px){.pagination-container{padding:var(--spacing-xs) 4px;gap:4px;flex-wrap:nowrap}.pagination-info{font-size:.6rem;min-width:0;flex-shrink:1}.pagination-controls{gap:2px;flex-shrink:0}.pagination-button{min-width:28px;height:28px;font-size:.6rem;padding:2px}.page-size-selector{font-size:.6rem;flex-shrink:0}.page-size-selector select{font-size:.6rem;padding:2px 4px;min-width:45px}.expenses-table th:nth-child(5),.expenses-table td:nth-child(5){width:42px;min-width:42px}.status-header-icon svg{width:10px;height:10px}}.edit-occurrence-info{font-size:.875rem;color:var(--color-text-primary);font-family:var(--font-sans);padding:var(--spacing-md) 0}.edit-occurrence-info p{margin:0 0 var(--spacing-sm) 0}.edit-occurrence-info p:last-of-type{margin-bottom:0}.edit-occurrence-info .info-label{font-weight:500;color:var(--color-text-secondary, #6b7280)}.edit-occurrence-modal.modal-container{max-width:570px}.edit-occurrence-edit-series-wrap{margin-bottom:var(--spacing-lg)}.edit-occurrence-modal-edit-series-btn:disabled{opacity:.6;cursor:not-allowed}.budget-details-modal .modal-body{max-height:70vh;overflow-y:auto}.budget-details-modal-header-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.modal-edit-btn{background:none;border:none;color:#fff;cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-base)}.modal-edit-btn:hover{background-color:#ffffff1a;transform:scale(1.1)}.modal-edit-btn:active{background-color:#fff3}.modal-edit-btn img{width:20px;height:20px}.budget-details-content{display:flex;flex-direction:column;gap:var(--spacing-xl)}.budget-details-summary{display:flex;flex-direction:column;gap:var(--spacing-sm)}.budget-details-row{display:flex;align-items:center;justify-content:space-between}.budget-details-row--progress{margin-top:var(--spacing-xs)}.budget-details-label{font-size:var(--text-base);color:var(--color-text-secondary)}.budget-details-value{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary)}.budget-details-value--over{color:#991b1b}.budget-details-progress-bar{flex:1;height:8px;background-color:var(--color-border-light);border-radius:var(--radius-full);overflow:hidden;margin-right:var(--spacing-sm)}.budget-details-progress-bar--container{position:relative}.budget-details-progress-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal)}.budget-details-progress-fill--actual{position:absolute;left:0;top:0;z-index:1}.budget-details-progress-fill--behind{position:absolute;top:0;z-index:0}.budget-details-progress-fill--pending{background-color:var(--color-primary-lighter)}.budget-details-value-pending-suffix,.budget-details-value-remaining-incl-pending,.budget-details-percentage-incl-pending{font-size:var(--text-xs);color:var(--color-text-secondary);font-weight:500}.budget-details-summary--over-incl-pending .budget-details-value-pending-suffix,.budget-details-summary--over-incl-pending .budget-details-value-remaining-incl-pending,.budget-details-summary--over-incl-pending .budget-details-percentage-incl-pending{color:#991b1b;font-weight:600}.budget-details-percentage{font-size:var(--text-sm);font-weight:600;flex-shrink:0}.budget-details-percentage--green{color:#10b981}.budget-details-percentage--yellow{color:#f59e0b}.budget-details-percentage--red{color:#ef4444}.budget-details-percentage--dark-red{color:#991b1b}.budget-details-expenses-section{display:flex;flex-direction:column;gap:var(--spacing-md);min-height:0}.budget-details-expenses-title{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin:0}.budget-details-expenses-table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;flex-shrink:1;display:flex;flex-direction:column}.budget-details-expenses-table-header{flex-shrink:0;border-bottom:1px solid var(--color-border)}.budget-details-expenses-table-container{max-height:400px;min-height:0;overflow-y:auto;overflow-x:hidden}.budget-details-expenses-table{width:100%;border-collapse:collapse;table-layout:fixed}.budget-details-expenses-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:600;font-size:var(--text-sm);color:var(--color-text-primary);background-color:var(--color-surface)}.budget-details-expenses-table td{padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-primary);font-size:var(--text-sm)}.budget-details-expenses-table-body tbody tr{border-bottom:1px solid var(--color-border);transition:background-color .2s}.budget-details-expenses-table-body tbody tr.clickable-row{cursor:pointer}.budget-details-expenses-table-body tbody tr.clickable-row:hover{background-color:var(--color-hover)}.budget-details-expenses-empty{text-align:center;padding:var(--spacing-xl)!important;color:var(--color-text-secondary)!important}.budget-details-delete-confirm{padding:var(--spacing-md) 0}.budget-details-delete-confirm .delete-confirmation-text,.budget-details-delete-confirm .form-label,.budget-details-delete-confirm .form-input,.budget-details-delete-confirm .form-input::placeholder{color:var(--color-text-primary);font-family:var(--font-sans)}.budget-details-delete-confirm .delete-confirmation-text{text-align:left;margin-bottom:var(--spacing-lg);line-height:1.6}.budget-details-delete-confirm .form-group{margin-bottom:var(--spacing-md)}.budget-vs-expense-chart{position:relative;flex:1;min-height:280px;min-width:0;display:flex;flex-direction:column;width:100%;overflow:visible}.budget-vs-expense-chart .recharts-wrapper,.budget-vs-expense-chart .recharts-surface{overflow:visible}.budget-vs-expense-chart .chart-loading,.budget-vs-expense-chart .chart-empty{color:var(--color-text-secondary);font-size:var(--text-sm);margin:var(--spacing-lg) 0;text-align:center}.budget-vs-expense-chart .recharts-legend-wrapper{padding-top:var(--spacing-sm)}.budget-vs-expense-chart .recharts-default-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-md)}.pacing-chart{position:relative;flex:1;min-height:0;height:100%;min-width:0;display:flex;flex-direction:column;width:100%;overflow:visible}.pacing-chart .recharts-wrapper,.pacing-chart .recharts-surface{overflow:visible}.pacing-chart .chart-loading,.pacing-chart .chart-empty{color:var(--color-text-secondary);font-size:var(--text-sm);margin:var(--spacing-lg) 0;text-align:center}.pacing-chart .recharts-legend-wrapper{padding-top:var(--spacing-sm)}.pacing-chart .recharts-default-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-md)}.category-comparison-chart{position:relative;flex:1;min-height:280px;height:100%;display:flex;flex-direction:column;width:100%;min-width:0;overflow:visible}.category-comparison-chart .recharts-wrapper,.category-comparison-chart .recharts-surface{overflow:visible}.category-comparison-chart .chart-loading,.category-comparison-chart .chart-empty{color:var(--color-text-secondary);font-size:var(--text-sm);margin:var(--spacing-lg) 0;text-align:center}.category-comparison-chart .recharts-legend-wrapper{padding-top:var(--spacing-sm)}.category-comparison-chart .recharts-default-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-md)}.finances-container{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background-color:var(--color-background)}.finances-content{flex:1;padding:var(--spacing-2xl);max-width:1800px;margin:0 auto;width:100%}.finances-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--page-title-content-gap)}.finances-header-controls{display:none}.page-title{display:flex;align-items:center;gap:12px;font-size:var(--text-3xl);font-weight:700;color:var(--color-text-primary);text-align:left;letter-spacing:.05em;margin:0}.finances-dashboard{display:flex;flex-direction:column;gap:var(--spacing-2xl)}.finances-dashboard .finances-categories-tiles{margin-top:calc(-1 * var(--spacing-md))}.finances-top-section{display:grid;grid-template-columns:1fr auto;gap:var(--spacing-xl);align-items:stretch}.finances-left-column{min-width:0;display:flex;flex-direction:column;gap:var(--spacing-xl)}.finances-chart-card--budget-vs-expense{width:100%;min-width:0;flex:1;min-height:320px;display:flex;flex-direction:column}.finances-chart-card--budget-vs-expense .finances-chart-content{flex:1;min-height:0;display:flex;flex-direction:column}.finances-right-column{display:flex;flex-direction:column;gap:var(--spacing-xl);min-width:0;width:fit-content;max-width:100%;min-height:0;overflow:hidden;flex-shrink:0}.finances-controls-strip{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-md);flex-shrink:0;width:fit-content}.finances-controls-strip .btn-add-expense,.finances-controls-strip .btn-add-category,.finances-controls-strip .month-navigator{flex:0 0 auto}.finances-summary-strip{min-width:0;width:100%}.finances-chart-card--pacing{width:100%;min-width:0;display:flex;flex-direction:column;min-height:280px}.finances-chart-card--pacing .finances-chart-content{flex:1;min-height:240px;display:flex;flex-direction:column}.finances-chart-card--category{width:100%;min-width:0;flex:1;min-height:320px;display:flex;flex-direction:column}.finances-chart-card--category .finances-chart-content{flex:1;min-height:280px;display:flex;flex-direction:column}.finances-table-section{width:100%}.finances-chart-card--with-tiles{display:flex;flex-direction:column}.finances-chart-content--category{flex:1;min-height:280px;min-width:0}.finances-chart-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:400}.finances-categories-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-xl)}.finances-transition{animation-duration:.25s;animation-timing-function:ease;animation-fill-mode:both}.finances-transition--forward{animation-name:financeSlideLeft}.finances-transition--back{animation-name:financeSlideRight}.finances-transition--none{animation:none}@keyframes financeSlideLeft{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes financeSlideRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.finances-chart-card{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.finances-chart-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-xl)}.finances-chart-title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:0}.finances-chart-header-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm)}.chart-view-mode-select,.chart-category-select{font-size:var(--text-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;min-width:0}.chart-view-mode-select:focus,.chart-category-select:focus{outline:none;border-color:var(--color-primary)}.finances-chart-content{padding:var(--spacing-lg) var(--spacing-xl);min-height:340px}.finances-container .categories-section{display:flex;flex-direction:column;gap:var(--spacing-md);background-color:transparent;box-shadow:none;padding:0;margin:0}.finances-container .finances-categories-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);background-color:transparent;box-shadow:none;padding:0;margin:0}.loading-state{display:flex;justify-content:center;align-items:center;padding:var(--spacing-3xl);font-size:var(--text-lg);color:var(--color-text-secondary)}.finances-container .empty-state{display:flex;justify-content:center;align-items:flex-start;padding:var(--spacing-xl);padding-top:calc(var(--spacing-xl) * 2);background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.empty-state p{color:var(--color-text-secondary);font-size:var(--text-base);margin:0}.delete-icon-btn{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:none;border:none;color:#ef4444;cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-base)}.delete-icon-btn:hover{background-color:#ef44441a;transform:scale(1.1)}.delete-confirm{padding:0}.delete-confirm p{margin-bottom:var(--spacing-lg);color:var(--color-text-primary);font-size:var(--text-base);text-align:center}.finances-mobile-wrapper{display:none}@media(max-width:1279px){.finances-top-section{grid-template-columns:1fr}.finances-header-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-md);flex-shrink:0}.finances-header-controls .btn-add-expense,.finances-header-controls .btn-add-category,.finances-header-controls .month-navigator{flex:0 0 auto}.finances-controls-strip,.finances-chart-card--category{display:none}.finances-right-column{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);align-items:stretch;width:100%;max-width:100%}.finances-summary-strip,.finances-chart-card--pacing{min-height:280px}.finances-summary-strip{display:flex}.finances-summary-strip .monthly-total-card{flex:1;min-height:280px}.finances-chart-card--pacing{display:flex;flex-direction:column}.finances-chart-card--pacing .finances-chart-content{flex:1;min-height:0}.finances-categories-tiles,.finances-container .finances-categories-tiles{grid-template-columns:repeat(2,1fr)}}@media(max-width:1024px){.finances-content{padding:var(--spacing-xl);min-height:0}.finances-chart-header{padding:var(--spacing-md) var(--spacing-lg)}.finances-chart-content{padding:var(--spacing-md) var(--spacing-lg);min-height:300px}.finances-chart-content--category{min-height:260px}.finances-header{margin-bottom:var(--page-title-content-gap);flex-shrink:0}.finances-categories-tiles{max-height:min(500px,calc(100dvh - 300px));overflow-y:auto;padding-right:var(--spacing-xs)}.finances-categories-tiles{scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.finances-categories-tiles::-webkit-scrollbar{width:6px}.finances-categories-tiles::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.finances-categories-tiles::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.finances-categories-tiles::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}}@media(max-width:850px){.finances-content{padding:var(--spacing-lg);padding-top:var(--spacing-lg)}.finances-header{margin-bottom:var(--page-title-content-gap)}.finances-header h1{font-size:var(--text-3xl)}.finances-table-section,.finances-chart-card--category,.finances-categories-tiles,.finances-container .finances-categories-tiles,.finances-controls-strip{display:none!important}.finances-header-controls .btn-add-expense,.finances-header-controls .btn-add-category{display:none}.finances-top-section{display:flex;flex-direction:column;gap:var(--spacing-xl)}.finances-left-column,.finances-right-column{display:contents}.finances-summary-strip{order:1}.finances-chart-card--budget-vs-expense{order:2}.finances-chart-card--pacing{order:3}.finances-chart-card--budget-vs-expense{min-height:380px;flex:0 0 auto}.finances-chart-card--budget-vs-expense .finances-chart-content{height:300px;min-height:300px;flex:0 0 300px}.finances-chart-card--budget-vs-expense .budget-vs-expense-chart{height:100%;min-height:260px}.finances-summary-strip{min-width:100%;width:100%}.finances-chart-card--pacing{width:100%;min-height:360px;flex:0 0 auto}.finances-chart-card--pacing .finances-chart-content{height:280px;min-height:280px;flex:0 0 280px}.finances-chart-card--pacing .pacing-chart{height:100%;min-height:220px}.finances-mobile-wrapper{display:block;background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xs);margin-top:0;box-shadow:var(--shadow-sm)}.mobile-tabs{display:flex;position:relative;background-color:var(--color-border-light);border-radius:var(--radius-full);padding:4px;gap:4px}.tab-button{flex:1;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-gray-button);border:none;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:600;letter-spacing:.05em;cursor:pointer;transition:all var(--transition-base);border-radius:var(--radius-full);position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);min-height:48px}.tab-button.active{background-color:var(--color-primary);color:#fff}.tab-button.active .tab-label{color:#fff}.tab-label{flex:1;text-align:center}.tab-add-icon{flex-shrink:0;width:32px;height:32px;min-width:32px;min-height:32px;border-radius:50%;border:none;font-size:var(--text-lg);font-weight:300;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);line-height:1;padding:0;box-shadow:var(--shadow-sm)}.tab-button:not(.active) .tab-add-icon{background-color:var(--color-primary);color:#fff}.tab-button:not(.active) .tab-add-icon:hover:not(:disabled):not(.disabled){background-color:var(--color-primary-hover);transform:scale(1.05);box-shadow:var(--shadow-md)}.tab-button:not(.active) .tab-add-icon img{filter:brightness(0) invert(1) opacity(.9)}.tab-button.active .tab-add-icon{background-color:var(--color-gray-button);color:var(--color-text-primary)}.tab-button.active .tab-add-icon:hover:not(:disabled):not(.disabled){background-color:var(--color-gray-button-hover);transform:scale(1.05);box-shadow:var(--shadow-md)}.tab-button.active .tab-add-icon img{filter:brightness(0) saturate(100%) opacity(.7)}.tab-add-icon:disabled,.tab-add-icon.disabled{opacity:.5;cursor:not-allowed;background-color:var(--color-gray-button)}.tab-add-icon img{width:20px;height:20px;object-fit:contain}.mobile-content{display:block;margin-top:var(--spacing-sm);padding:0 var(--spacing-xs)}.mobile-content .expenses-table-wrapper,.mobile-content .categories-section-mobile{display:none}.mobile-content.show-expenses .expenses-table-wrapper{display:flex;flex-direction:column;min-height:0;max-height:calc(100vh - 320px);max-height:calc(100dvh - 320px)}.mobile-content.show-categories .categories-section-mobile{display:block}.categories-section-mobile{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);max-height:500px;overflow-y:auto;padding-right:var(--spacing-xs);padding-bottom:var(--spacing-xs)}.categories-section-mobile{scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.categories-section-mobile::-webkit-scrollbar{width:4px}.categories-section-mobile::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.categories-section-mobile::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.categories-section-mobile::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}}@media(max-width:640px){.finances-content{padding:var(--spacing-md);padding-top:var(--spacing-md)}.finances-categories-tiles,.finances-container .finances-categories-tiles,.categories-section-mobile{grid-template-columns:repeat(2,1fr)}.mobile-content.show-expenses .expenses-table-wrapper{max-height:calc(100vh - 280px);max-height:calc(100dvh - 280px)}.finances-header h1{font-size:var(--text-2xl)}.finances-header{gap:var(--spacing-sm)}.tab-button{font-size:var(--text-xs);padding:var(--spacing-xs) var(--spacing-sm);min-height:44px}.tab-add-icon{width:28px;height:28px;min-width:28px;min-height:28px;font-size:var(--text-base)}}.group-members-modal{max-width:900px}.group-members-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.group-members-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.group-members-header .search-section{display:flex;gap:var(--spacing-sm);flex:1;min-width:250px}.group-members-header .search-input{flex:1;padding:.625rem;border:2px solid var(--color-border);border-radius:var(--radius-lg);font-size:.875rem;color:var(--color-text-primary);background-color:var(--color-surface);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.group-members-header .search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.group-members-header .search-input::placeholder{color:var(--color-text-secondary)}.btn-search{padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:center}.btn-search:hover{border-color:var(--color-primary);background-color:var(--color-surface-hover)}.btn-search img{width:20px;height:20px;opacity:.6}.btn-add-member{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.btn-add-member:hover{opacity:.9;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-add-member img{width:16px;height:16px;filter:brightness(0) invert(1)}.loading-state{padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary)}.members-table-container{max-height:450px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.members-table{width:100%;border-collapse:collapse}.members-table thead{background-color:var(--color-surface-hover);position:sticky;top:0;z-index:1}.members-table th{padding:var(--spacing-md);text-align:left;font-weight:600;color:var(--color-text-primary);border-bottom:2px solid var(--color-border);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.5px}.members-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color var(--transition-base)}.members-table tbody tr.clickable-row{cursor:pointer}.members-table tbody tr.clickable-row:hover{background-color:var(--color-surface-hover)}.members-table td{padding:var(--spacing-md);color:var(--color-text-primary);font-size:var(--text-base)}.members-table .no-data{text-align:center;color:var(--color-text-secondary);padding:var(--spacing-xl);font-style:italic}.status-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-badge.active{background-color:#4caf501a;color:#4caf50}.status-badge.banned{background-color:#f443361a;color:#f44336}.btn-icon{padding:var(--spacing-xs);border:none;background:transparent;cursor:pointer;transition:all var(--transition-base);border-radius:var(--radius-sm)}.btn-icon:hover:not(:disabled){background-color:var(--color-surface-hover);transform:scale(1.1)}.btn-icon:disabled{opacity:.3;cursor:not-allowed}.btn-icon img{width:20px;height:20px}.group-members-pagination{display:flex;justify-content:space-between;align-items:center;padding-top:var(--spacing-md);border-top:1px solid var(--color-border);flex-wrap:wrap;gap:var(--spacing-md)}.pagination-info{color:var(--color-text-secondary);font-size:var(--text-sm)}.pagination-button{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-base);font-size:var(--text-sm);min-width:32px;height:32px;display:flex;align-items:center;justify-content:center}.pagination-button:hover:not(:disabled){border-color:var(--color-primary);background-color:var(--color-surface-hover)}.pagination-button:disabled{opacity:.3;cursor:not-allowed}.pagination-current{padding:0 var(--spacing-sm);color:var(--color-text-secondary);font-size:var(--text-sm);white-space:nowrap}.add-user-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.add-user-content .search-section{display:flex;gap:var(--spacing-sm)}.add-user-content .search-input{flex:1;padding:.625rem;border:2px solid var(--color-border);border-radius:var(--radius-lg);font-size:.875rem;color:var(--color-text-primary);background-color:var(--color-surface);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.add-user-content .search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.add-user-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:400px;overflow-y:auto}.add-user-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-base)}.add-user-item:hover{border-color:var(--color-primary);background-color:var(--color-surface-hover)}.user-info{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs)}.user-name{font-weight:600;color:var(--color-text-primary);font-size:var(--text-base)}.user-details{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--text-sm);color:var(--color-text-secondary)}.user-email,.user-separator,.user-username{color:var(--color-text-secondary)}.btn-add-user{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.btn-add-user:hover{opacity:.9;transform:translateY(-1px)}.add-user-list .no-data{text-align:center;color:var(--color-text-secondary);padding:var(--spacing-xl);font-style:italic}.user-details-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.user-detail-item{display:flex;flex-direction:column;gap:var(--spacing-xs);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.user-detail-item:last-of-type{border-bottom:none}.user-detail-label{font-weight:600;color:var(--color-text-secondary);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.5px}.user-detail-value{color:var(--color-text-primary);font-size:var(--text-base)}.permissions-section{margin-top:var(--spacing-md)}.permissions-section h4{margin:0 0 var(--spacing-md) 0;color:var(--color-text-primary);font-size:var(--text-lg)}.permissions-categorized{display:flex;flex-direction:column;gap:var(--spacing-md)}.permission-category{display:flex;flex-direction:column;gap:var(--spacing-sm)}.category-title{font-weight:600;color:var(--color-text-primary);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.5px}.permission-badge{display:inline-block;padding:4px 12px;background-color:rgba(var(--color-primary-rgb),.1);color:var(--color-primary);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500}.no-data{text-align:center;color:var(--color-text-secondary);font-style:italic}@media(min-width:769px)and (max-width:1024px){.group-members-modal .members-table th:nth-child(2),.group-members-modal .members-table td:nth-child(2){display:none}}@media(max-width:850px){.group-members-header{flex-direction:column;align-items:stretch}.group-members-header .search-section{width:100%}.btn-add-member{width:100%;justify-content:center}.members-table-container{max-height:calc(100vh - 300px);min-height:auto;overflow-x:auto;-webkit-overflow-scrolling:touch}.members-table{min-width:100%;font-size:var(--text-sm)}.members-table thead{display:table-header-group}.members-table tbody{display:table-row-group}.members-table tbody tr{display:table-row}.members-table td{display:table-cell;padding:var(--spacing-sm) var(--spacing-xs);font-size:var(--text-sm)}.members-table th{padding:var(--spacing-sm) var(--spacing-xs);font-size:var(--text-xs)}.group-members-modal .members-table th:nth-child(1),.group-members-modal .members-table td:nth-child(1),.group-members-modal .members-table th:nth-child(2),.group-members-modal .members-table td:nth-child(2),.group-members-modal .members-table th:nth-child(4),.group-members-modal .members-table td:nth-child(4){display:none}.group-members-modal .members-table th:nth-child(3),.group-members-modal .members-table td:nth-child(3){width:70%}.group-members-modal .members-table th:nth-child(5),.group-members-modal .members-table td:nth-child(5){width:30%;min-width:80px}.pagination-info{width:100%;text-align:center}.pagination-controls{width:100%;justify-content:center}.add-user-item{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.btn-add-user{width:100%}}@media(max-width:640px){.group-members-modal .members-table{font-size:.75rem}.group-members-modal .members-table th{font-size:.65rem;padding:var(--spacing-xs) 4px}.group-members-modal .members-table td{padding:var(--spacing-xs) 4px;font-size:.75rem}}@media(max-width:480px){.group-members-modal{max-width:100%;margin:0}.pagination-button{min-width:28px;height:28px;padding:var(--spacing-xs);font-size:var(--text-xs)}.pagination-current{font-size:var(--text-xs)}}.user-management-container{display:flex;flex-direction:column;height:calc(100vh - 56px);height:calc(100dvh - 56px);max-height:calc(100vh - 56px);max-height:calc(100dvh - 56px);overflow:hidden;background-color:var(--color-background)}.user-management-content{flex:1;display:flex;flex-direction:column;min-height:0;padding:var(--spacing-2xl);max-width:1800px;margin:0 auto;width:100%;overflow:hidden}.user-management-header{margin-bottom:var(--page-title-content-gap)}.page-title{display:flex;align-items:center;gap:12px;font-size:var(--text-3xl);font-weight:700;color:var(--color-text-primary);margin:0}.page-title-icon{width:28px;height:28px;flex-shrink:0}.header-buttons{display:flex;gap:var(--spacing-md);align-items:center;margin-bottom:-2px}.tabs-container{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-xl);justify-content:space-between;align-items:center;flex-wrap:wrap}.desktop-controls{display:flex;gap:var(--spacing-md);align-items:center}.mobile-tab-buttons,.mobile-search-section{display:none}.user-management-view-selector{display:flex;align-items:stretch;gap:0;background-color:var(--color-surface);border-radius:var(--radius-lg);padding:4px;width:fit-content;min-width:260px;min-height:44px;box-sizing:border-box;flex-shrink:0}.user-management-view-selector .tab-button{padding:0 var(--spacing-lg);border:none;background-color:transparent;color:var(--color-text-secondary);font-size:var(--text-base);font-weight:500;cursor:pointer;border-radius:calc(var(--radius-lg) - 2px);transition:background-color var(--transition-slow),color var(--transition-slow),box-shadow var(--transition-slow);min-height:36px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;flex:1;min-width:0;display:inline-flex;align-items:center;justify-content:center}.user-management-view-selector .tab-button:hover:not(.active){background-color:color-mix(in srgb,var(--color-primary) 8%,transparent);color:var(--color-text-primary)}.user-management-view-selector .tab-button.active{background-color:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.user-management-view-selector .tab-button:active{transform:scale(.98)}.tab-content{width:100%;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.tab-transition{animation-duration:.25s;animation-timing-function:ease;animation-fill-mode:both}.tab-transition--forward{animation-name:tabSlideLeft}.tab-transition--back{animation-name:tabSlideRight}.tab-transition--none{animation:none}@keyframes tabSlideLeft{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes tabSlideRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.search-section{display:flex;gap:var(--spacing-md);align-items:center;margin-bottom:-2px}.search-input{flex:1;max-width:400px;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--color-text-primary);background-color:var(--color-surface);transition:border-color var(--transition-base)}.search-input:focus{outline:none;border-color:var(--color-primary)}.search-input::placeholder{color:var(--color-text-secondary)}.table-wrapper{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow-x:auto;overflow-y:hidden;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%}.table-wrapper>table:first-child{flex-shrink:0}.table-container{flex:1;min-height:0;overflow-y:auto;overflow-x:auto;position:relative;width:100%}.table-container::-webkit-scrollbar{width:8px}.table-container::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.table-container::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.table-container::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.table-container{scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.users-table{width:100%;min-width:600px;border-collapse:collapse;table-layout:fixed}.users-table thead{background-color:var(--color-primary);color:#fff}.users-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:600;font-size:var(--text-sm);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background-color var(--transition-fast)}.users-table thead th.sortable-header:hover{background-color:#ffffff1a}.sort-indicator{font-size:var(--text-xs);margin-left:var(--spacing-xs);color:#fff;display:inline-block;vertical-align:middle}.users-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color var(--transition-base)}.users-table tbody tr:hover{background-color:var(--color-surface-hover)}.users-table tbody tr.clickable-row{cursor:pointer}.users-table td{padding:var(--spacing-md) var(--spacing-lg);color:var(--color-text-primary);font-size:var(--text-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.users-table-name-cell{display:flex;align-items:center;gap:var(--spacing-md)}.users-table-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.users-table-avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;background-color:rgba(var(--color-primary-rgb),.2);display:flex;align-items:center;justify-content:center;flex-shrink:0}.users-table-avatar-initials{color:var(--color-primary);font-size:var(--text-sm);font-weight:700}@media(max-width:1024px){.users-table-avatar{width:28px;height:28px}.users-table-avatar-initials{font-size:var(--text-xs)}.users-table-name-cell{gap:var(--spacing-sm)}}@media(max-width:850px){.users-table-avatar{width:24px;height:24px}.users-table-avatar-initials{font-size:.65rem}.users-table-name-cell{gap:var(--spacing-sm)}}.users-table-avatar img{width:100%;height:100%;object-fit:cover}.tab-content:not(.groups-section) .users-table thead th:nth-child(1),.tab-content:not(.groups-section) .users-table tbody td:nth-child(1){width:18%}.tab-content:not(.groups-section) .users-table thead th:nth-child(2),.tab-content:not(.groups-section) .users-table tbody td:nth-child(2){width:22%}.tab-content:not(.groups-section) .users-table thead th:nth-child(3),.tab-content:not(.groups-section) .users-table tbody td:nth-child(3){width:16%}.tab-content:not(.groups-section) .users-table thead th:nth-child(4),.tab-content:not(.groups-section) .users-table tbody td:nth-child(4){width:25%}.tab-content:not(.groups-section) .users-table thead th:nth-child(5),.tab-content:not(.groups-section) .users-table tbody td:nth-child(5){width:10%;min-width:95px;max-width:100px}.tab-content:not(.groups-section) .users-table thead th:nth-child(5){padding-left:var(--spacing-sm);padding-right:var(--spacing-sm);min-width:95px;box-sizing:border-box}.tab-content:not(.groups-section) .users-table tbody td:nth-child(5){overflow:visible}.groups-section .users-table thead th:nth-child(1),.groups-section .users-table tbody td:nth-child(1){width:30%}.groups-section .users-table thead th:nth-child(2),.groups-section .users-table tbody td:nth-child(2){width:55%}.groups-section .users-table thead th:nth-child(3),.groups-section .users-table tbody td:nth-child(3){width:15%}.status-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px;border-radius:var(--radius-full);white-space:nowrap}.status-badge svg{display:block;flex-shrink:0}.status-badge.active{background-color:#d4edda;color:#155724}.status-badge.banned{background-color:#f8d7da;color:#721c24}[data-theme=dark] .status-badge.active{background-color:#064e3b;color:#6ee7b7}[data-theme=dark] .status-badge.banned{background-color:#7f1d1d;color:#fca5a5}.modal-header-action-buttons{display:flex;gap:var(--spacing-xs);align-items:center;margin-right:var(--spacing-xs)}.modal-header-action-buttons .btn-icon{background:none;border:none;padding:var(--spacing-xs);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:center}.modal-header-action-buttons .btn-icon:hover:not(:disabled){background-color:#ffffff1a;transform:scale(1.1)}.modal-header-action-buttons .btn-icon:active:not(:disabled){background-color:#fff3}.modal-header-action-buttons .btn-icon img{width:20px;height:20px;object-fit:contain}.modal-header-action-buttons .btn-icon.edit img,.modal-header-action-buttons .btn-icon.ban img,.modal-header-action-buttons .btn-icon.unban img,.modal-header-action-buttons .btn-icon.delete img{filter:brightness(0) invert(1)}.modal-header-action-buttons .btn-icon:disabled{opacity:.5;cursor:not-allowed}.btn-icon{width:32px;height:32px;padding:6px;border:none;border-radius:var(--radius-md);cursor:pointer;background-color:transparent;transition:all var(--transition-base);display:inline-flex;align-items:center;justify-content:center}.btn-icon img{width:100%;height:100%;object-fit:contain}.btn-icon.edit img{filter:invert(45%) sepia(89%) saturate(2384%) hue-rotate(201deg) brightness(98%) contrast(94%)}.btn-icon.edit:hover:not(:disabled){opacity:.7;transform:scale(1.1)}.btn-icon.ban img{filter:brightness(0) saturate(100%)}[data-theme=dark] .btn-icon.ban img{filter:brightness(0) saturate(100%) invert(1)}.btn-icon.ban:hover:not(:disabled){opacity:.7;transform:scale(1.1)}.btn-icon.unban img{filter:brightness(0) saturate(100%)}[data-theme=dark] .btn-icon.unban img{filter:brightness(0) saturate(100%) invert(1)}.btn-icon.unban:hover:not(:disabled){opacity:.7;transform:scale(1.1)}.btn-icon.delete:hover:not(:disabled){opacity:.7;transform:scale(1.1)}.btn-icon:disabled{opacity:.3;cursor:not-allowed;transform:none!important}.groups-section h2{font-size:var(--text-2xl);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-lg)}.groups-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}.groups-header h2{margin-bottom:0}.btn-search{width:40px;height:40px;padding:8px;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);display:inline-flex;align-items:center;justify-content:center}.btn-search img{width:100%;height:100%;object-fit:contain;filter:brightness(0) invert(1);opacity:1}.btn-search:hover{background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-create{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-lg);cursor:pointer;font-weight:600;font-size:var(--text-base);transition:all var(--transition-base);text-transform:uppercase}.btn-create:hover{background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.modal-large{max-width:900px!important;width:95%!important}.modal-scroll .modal-body{max-height:70vh!important}.modal-body:has(.form-section){display:block!important}.modal-body:has(.form-section)>.form-section{display:block!important}.modal-body:has(.form-group){display:block!important}.modal-body h4{display:block!important;font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0;width:100%;clear:both;float:none!important}.modal-body p{color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.form-section{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border);clear:both;flex:0 0 auto;width:100%;display:block}.form-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.form-section>h4{display:block!important;clear:both;margin-top:0;width:100%;position:static}.form-group{margin-bottom:var(--spacing-lg);display:block;clear:both;width:100%}.form-group label{display:block;font-weight:500;color:var(--color-text-primary);margin-bottom:.5rem;font-size:.875rem;width:100%;clear:both}.modal-input{width:100%;padding:.625rem;border:2px solid var(--color-border);border-radius:var(--radius-lg);font-size:.875rem;color:var(--color-text-primary);background-color:var(--color-surface);transition:border-color var(--transition-base),box-shadow var(--transition-base);box-sizing:border-box}.modal-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.modal-input:disabled{opacity:.6;cursor:not-allowed;background-color:var(--color-surface-hover)}.modal-input::placeholder{color:var(--color-text-secondary)}.modal-select{width:100%;padding:.625rem;border:2px solid var(--color-border);border-radius:var(--radius-lg);font-size:.875rem;color:var(--color-text-primary);background-color:var(--color-surface);transition:border-color var(--transition-base),box-shadow var(--transition-base);cursor:pointer;box-sizing:border-box}.modal-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.modal-textarea{width:100%;min-height:80px;padding:.625rem;border:2px solid var(--color-border);border-radius:var(--radius-lg);font-size:.875rem;font-family:var(--font-sans);color:var(--color-text-primary);background-color:var(--color-surface);resize:vertical;transition:border-color var(--transition-base),box-shadow var(--transition-base);box-sizing:border-box}.modal-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.modal-textarea::placeholder{color:var(--color-text-secondary)}.form-note{display:block;margin-top:var(--spacing-xs);font-size:var(--text-sm);color:var(--color-text-secondary);font-style:italic}.groups-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.group-chip{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-primary);color:#fff;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500}.chip-remove{background:none;border:none;color:#fff;font-size:var(--text-lg);line-height:1;cursor:pointer;padding:0;margin-left:var(--spacing-xs);transition:opacity var(--transition-base)}.chip-remove:hover:not(:disabled){opacity:.7}.chip-remove:disabled{opacity:.3;cursor:not-allowed}.warning-message{background-color:#fef2f2;border:2px solid #fecaca;border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.warning-message p{color:#991b1b;margin-bottom:var(--spacing-sm)}.warning-message p:last-child{margin-bottom:0}.permissions-section{margin-top:var(--spacing-md);padding-top:var(--spacing-md)}.permissions-section h4{font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-xs);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.5px}.permissions-categorized{display:flex;flex-direction:column;gap:var(--spacing-lg)}.permission-category{background-color:var(--color-background);border-radius:var(--radius-md);padding:var(--spacing-md)}.category-title{font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-sm);font-size:var(--text-base)}.permission-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.permission-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:500}.no-data{color:var(--color-text-secondary);font-style:italic;text-align:center;padding:var(--spacing-lg)}.user-detail-label-with-action{display:flex!important;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.user-detail-label-with-action .user-detail-label{margin-bottom:0}.btn-manage-members-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base);flex-shrink:0}.btn-manage-members-icon img{width:14px;height:14px;filter:brightness(0) invert(1)}.btn-manage-members-icon:hover{opacity:.9;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-manage-members{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--transition-base)}.btn-manage-members:hover{opacity:.9;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-manage-members-small{padding:4px 8px;background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.btn-manage-members-small:hover{opacity:.9;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.permissions-management{display:flex;flex-direction:column;gap:var(--spacing-lg)}.permission-category-section{background-color:var(--color-background);border-radius:var(--radius-md);padding:var(--spacing-md);border:1px solid var(--color-border)}.category-header{font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-md);font-size:var(--text-base);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-border)}.permission-checkboxes{display:flex;flex-direction:column;gap:var(--spacing-sm)}.permission-checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-sm);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-base);min-width:0}.permission-label-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.permission-checkbox-label:hover{background-color:var(--color-surface-hover)}.permission-checkbox{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;margin-top:2px!important;width:18px!important;height:18px!important;border:2px solid var(--color-border)!important;border-radius:4px!important;cursor:pointer!important;position:relative!important;background-color:var(--color-surface)!important;transition:all var(--transition-base)!important;flex-shrink:0!important}.permission-checkbox:hover{border-color:var(--color-primary)!important}.permission-checkbox:checked{background-color:var(--color-primary)!important;border-color:var(--color-primary)!important}.permission-checkbox:checked:after{content:""!important;position:absolute!important;left:5px!important;top:2px!important;width:4px!important;height:8px!important;border:solid white!important;border-width:0 2px 2px 0!important;transform:rotate(45deg)!important;display:block!important}.permission-name{font-weight:500;color:var(--color-text-primary);font-size:var(--text-sm);min-width:0;overflow-wrap:break-word;word-break:break-word}.permission-description{display:block;font-size:var(--text-xs);color:var(--color-text-secondary);min-width:0;overflow-wrap:break-word;word-break:break-word}.modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;align-items:center;margin-top:var(--spacing-lg)}.modal-actions-right{display:flex;gap:var(--spacing-md)}.btn-reset-password{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-gray-button);color:var(--color-gray-button-text);border:none;border-radius:var(--radius-lg);cursor:pointer;font-weight:600;font-size:var(--text-base);transition:all var(--transition-base);text-transform:uppercase}.btn-reset-password:hover{background-color:var(--color-gray-button-hover);transform:translateY(-1px)}.modal-body:has(.user-detail-item){display:block!important}.user-detail-item{margin-bottom:var(--spacing-md);padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border);display:block!important;width:100%;clear:both}.user-detail-item:last-child{border-bottom:none}.user-detail-label{display:block!important;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-xs);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.5px;width:100%;clear:both}.user-detail-value{display:block!important;color:var(--color-text-secondary);font-size:var(--text-base);word-break:break-word;overflow-wrap:break-word;width:100%}.btn-primary{padding:var(--spacing-sm) var(--spacing-xl);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-lg);cursor:pointer;font-weight:600;font-size:var(--text-base);transition:all var(--transition-base);text-transform:uppercase}.btn-primary:hover{background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-cancel{padding:var(--spacing-sm) var(--spacing-xl);background-color:var(--color-gray-button);color:var(--color-gray-button-text);border:none;border-radius:var(--radius-lg);cursor:pointer;font-weight:600;font-size:var(--text-base);transition:all var(--transition-base);text-transform:uppercase}.btn-cancel:hover{background-color:var(--color-gray-button-hover);transform:translateY(-1px)}.btn-delete{padding:var(--spacing-sm) var(--spacing-xl);background-color:var(--color-error);color:#fff;border:none;border-radius:var(--radius-lg);cursor:pointer;font-weight:600;font-size:var(--text-base);transition:all var(--transition-base);text-transform:uppercase}.btn-delete:hover:not(:disabled){background-color:#dc2626;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-delete:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.pagination-container{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-surface);border-top:1px solid var(--color-border);flex-wrap:wrap;gap:var(--spacing-md)}.pagination-info{color:var(--color-text-secondary);font-size:var(--text-sm);white-space:nowrap}.pagination-controls{display:flex;gap:var(--spacing-xs);align-items:center}.pagination-button{min-width:36px;height:36px;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-primary);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:500;transition:all var(--transition-base);display:inline-flex;align-items:center;justify-content:center}.pagination-button:hover:not(:disabled):not(.ellipsis){background-color:var(--color-primary);color:#fff;border-color:var(--color-primary);transform:translateY(-1px)}.pagination-button.active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:600}.pagination-button:disabled{opacity:.4;cursor:not-allowed}.pagination-button.ellipsis{border:none;background:transparent;cursor:default;pointer-events:none}.page-size-selector{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap}.page-size-selector select{padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--transition-base)}.page-size-selector select:focus{outline:none;border-color:var(--color-primary)}.page-size-selector select:hover{border-color:var(--color-primary)}.loading-container{display:flex;justify-content:center;align-items:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--text-lg)}@media(min-width:1025px)and (max-width:1255px){.user-management-content{padding:var(--spacing-xl)}.tab-content:not(.groups-section) .users-table thead th:nth-child(1),.tab-content:not(.groups-section) .users-table tbody td:nth-child(1){width:18%}.tab-content:not(.groups-section) .users-table thead th:nth-child(2),.tab-content:not(.groups-section) .users-table tbody td:nth-child(2){width:22%}.tab-content:not(.groups-section) .users-table thead th:nth-child(3),.tab-content:not(.groups-section) .users-table tbody td:nth-child(3){width:16%}.tab-content:not(.groups-section) .users-table thead th:nth-child(4),.tab-content:not(.groups-section) .users-table tbody td:nth-child(4){width:25%}.tab-content:not(.groups-section) .users-table thead th:nth-child(5),.tab-content:not(.groups-section) .users-table tbody td:nth-child(5){width:10%;min-width:95px;max-width:90px}}@media(max-width:1024px){.user-management-content{padding:var(--spacing-xl);min-height:0}.tab-content:not(.groups-section) .users-table thead th:nth-child(2),.tab-content:not(.groups-section) .users-table tbody td:nth-child(2){display:none}.tab-content:not(.groups-section) .users-table thead th:nth-child(1),.tab-content:not(.groups-section) .users-table tbody td:nth-child(1){width:24%}.tab-content:not(.groups-section) .users-table thead th:nth-child(3),.tab-content:not(.groups-section) .users-table tbody td:nth-child(3){width:24%}.tab-content:not(.groups-section) .users-table thead th:nth-child(4),.tab-content:not(.groups-section) .users-table tbody td:nth-child(4){width:42%}.tab-content:not(.groups-section) .users-table thead th:nth-child(5),.tab-content:not(.groups-section) .users-table tbody td:nth-child(5){width:10%;min-width:95px}.groups-section .users-table thead th:nth-child(1),.groups-section .users-table tbody td:nth-child(1){width:30%}.groups-section .users-table thead th:nth-child(2),.groups-section .users-table tbody td:nth-child(2){width:50%}.groups-section .users-table thead th:nth-child(3),.groups-section .users-table tbody td:nth-child(3){width:20%}.pagination-container{display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)}.pagination-info{flex-shrink:0;font-size:var(--text-xs)}.pagination-controls{flex-shrink:0}.page-size-selector{flex-shrink:0;font-size:var(--text-xs)}}@media(max-width:850px){.modal-header-action-buttons{gap:var(--spacing-xs)}.modal-header-action-buttons .btn-icon{min-width:44px;min-height:44px;padding:var(--spacing-sm)}.modal-header-action-buttons .btn-icon img{width:24px;height:24px}.user-management-content{padding:var(--spacing-lg);padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.user-management-header h1{font-size:var(--text-3xl)}.tabs-container{gap:var(--spacing-sm);flex-direction:column;align-items:stretch;border-bottom:none}.user-management-view-selector,.desktop-controls{display:none}.mobile-tab-buttons{display:flex;position:relative;background-color:var(--color-border-light);border-radius:var(--radius-full);padding:4px;gap:4px;width:100%}.mobile-tab-buttons .tab-button{flex:1;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-gray-button);border:none;color:var(--color-text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.05em;cursor:pointer;transition:all var(--transition-base);border-radius:var(--radius-full);position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-xs);min-height:40px;border-bottom:none;margin-bottom:0}.mobile-tab-buttons .tab-button.active{background-color:var(--color-primary);color:#fff}.mobile-tab-buttons .tab-button.active .tab-label{color:#fff}.mobile-tab-buttons .tab-button:hover:not(.active){background-color:var(--color-gray-button-hover)}.tab-label{flex:1;text-align:center}.tab-add-icon{flex-shrink:0;width:28px;height:28px;min-width:28px;min-height:28px;border-radius:50%;border:none;font-size:var(--text-base);font-weight:300;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);line-height:1;padding:0;box-shadow:var(--shadow-sm)}.mobile-tab-buttons .tab-button:not(.active) .tab-add-icon{background-color:var(--color-primary);color:#fff}.mobile-tab-buttons .tab-button:not(.active) .tab-add-icon:hover:not(:disabled){background-color:var(--color-primary-hover);transform:scale(1.05);box-shadow:var(--shadow-md)}.mobile-tab-buttons .tab-button:not(.active) .tab-add-icon img{filter:brightness(0) invert(1) opacity(.9)}.mobile-tab-buttons .tab-button.active .tab-add-icon{background-color:var(--color-gray-button);color:var(--color-text-primary)}.mobile-tab-buttons .tab-button.active .tab-add-icon:hover:not(:disabled){background-color:var(--color-gray-button-hover);transform:scale(1.05);box-shadow:var(--shadow-md)}.mobile-tab-buttons .tab-button.active .tab-add-icon img{filter:brightness(0) saturate(100%) opacity(.7)}.tab-add-icon:disabled{opacity:.5;cursor:not-allowed;background-color:var(--color-gray-button)}.tab-add-icon img{width:16px;height:16px;object-fit:contain}.header-buttons{display:none}.mobile-search-section{display:flex;width:100%;gap:var(--spacing-sm);align-items:center}.mobile-search-section .search-input{flex:1 1 calc(100% - 48px);max-width:none;padding:var(--spacing-xs) var(--spacing-sm);font-size:.875rem;height:40px}.mobile-search-section .btn-search{flex:0 0 auto;width:40px;height:40px;padding:8px}.table-container,.table-wrapper{overflow-x:auto}.users-table{min-width:100%;font-size:var(--text-sm)}.users-table thead{display:table-header-group}.users-table tbody{display:table-row-group}.users-table tbody tr{display:table-row}.users-table td{display:table-cell;padding:var(--spacing-sm) var(--spacing-xs);font-size:var(--text-sm)}.users-table th{padding:var(--spacing-sm) var(--spacing-xs);font-size:var(--text-xs)}.tab-content:not(.groups-section) .users-table thead th:nth-child(2),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(2){display:none}.tab-content:not(.groups-section) .users-table thead th:nth-child(4),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(4){display:none}.tab-content:not(.groups-section) .users-table thead th:nth-child(1),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(1){width:43%}.tab-content:not(.groups-section) .users-table thead th:nth-child(3),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(3){width:43%}.tab-content:not(.groups-section) .users-table thead th:nth-child(5),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(5){width:14%;min-width:95px}@media(max-width:470px){.tab-content:not(.groups-section) .users-table thead th:nth-child(1),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(1){width:41%}.tab-content:not(.groups-section) .users-table thead th:nth-child(3),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(3){width:41%}.tab-content:not(.groups-section) .users-table thead th:nth-child(5),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(5){width:18%;min-width:72px}.tab-content:not(.groups-section) .users-table thead th:nth-child(5){font-size:.6rem;padding-left:4px;padding-right:4px;letter-spacing:.02em}}.groups-section .users-table thead th:nth-child(2),.groups-section .users-table tbody tr td:nth-child(2){display:none}.groups-section .users-table thead th:nth-child(1),.groups-section .users-table tbody td:nth-child(1){width:70%}.groups-section .users-table thead th:nth-child(3),.groups-section .users-table tbody tr td:nth-child(3){width:30%}.pagination-container{padding:var(--spacing-sm);flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:var(--spacing-xs)}.pagination-info{flex-shrink:1;font-size:.65rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.pagination-controls{flex-shrink:0;gap:2px}.page-size-selector{flex-shrink:0;font-size:.65rem;white-space:nowrap}.page-size-selector label{display:none}.page-size-selector select{font-size:.65rem;padding:var(--spacing-xs) 4px;min-width:50px}.pagination-button{min-width:32px;height:32px;font-size:.65rem;padding:4px}.modal-content{min-width:auto;width:100%;max-width:500px}.modal-content.modal-large{min-width:auto;max-width:100%}.groups-header{margin-bottom:var(--spacing-md)}.groups-header h2{font-size:var(--text-xl)}.groups-list{justify-content:flex-start}.modal-actions{flex-direction:row;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--spacing-sm)}.modal-actions .btn-primary,.modal-actions .btn-cancel,.modal-actions .btn-delete,.modal-actions button{flex:1 1 0!important;min-width:100px!important;height:44px!important;max-height:44px!important;min-height:44px!important;padding:0 var(--spacing-md)!important;border-radius:var(--radius-lg)!important;font-size:.875rem!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:44px!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important}.modal-actions-right{flex-direction:row;gap:var(--spacing-sm)}.modal-actions-right .btn-primary,.modal-actions-right .btn-cancel,.modal-actions-right button{flex:1 1 0!important;min-width:100px!important;height:44px!important;max-height:44px!important;min-height:44px!important;padding:0 var(--spacing-md)!important;border-radius:var(--radius-lg)!important;font-size:.875rem!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:44px!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important}.btn-reset-password{flex:1 1 100%;margin-bottom:var(--spacing-sm)}.permission-category{padding:var(--spacing-sm)}.permission-badge{font-size:.65rem;padding:.25rem .5rem}}@media(max-width:640px){.modal-header-action-buttons{gap:var(--spacing-xs)}.modal-header-action-buttons .btn-icon{min-width:44px;min-height:44px;padding:var(--spacing-sm)}.modal-header-action-buttons .btn-icon img{width:24px;height:24px}.user-management-content{padding:var(--spacing-md);padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.user-management-header h1{font-size:var(--text-2xl)}.tabs-container{overflow-x:visible;-webkit-overflow-scrolling:touch}.mobile-tab-buttons .tab-button{font-size:.7rem;padding:var(--spacing-xs) 6px;min-height:38px}.tab-add-icon{width:26px;height:26px;min-width:26px;min-height:26px;font-size:var(--text-sm)}.tab-add-icon img{width:14px;height:14px}.search-section{gap:var(--spacing-xs)}.mobile-search-section .search-input{height:38px;font-size:.8rem;padding:6px var(--spacing-sm)}.mobile-search-section .btn-search{width:38px;height:38px;padding:7px}.users-table{font-size:.75rem}.users-table th{font-size:.65rem;padding:var(--spacing-xs) 4px}.users-table td{padding:var(--spacing-xs) 4px;font-size:.75rem}.status-badge{padding:5px}.status-badge svg{width:12px;height:12px}.modal-actions{flex-direction:column;gap:var(--spacing-sm)}.modal-actions .btn-primary,.modal-actions .btn-cancel,.modal-actions .btn-delete,.modal-actions button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:42px!important;height:42px!important;max-height:42px!important;padding:0 var(--spacing-md)!important;border-radius:var(--radius-lg)!important;font-size:.875rem!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:42px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}.modal-actions-right{flex-direction:column;width:100%;gap:var(--spacing-sm)}.modal-actions-right .btn-primary,.modal-actions-right .btn-cancel,.modal-actions-right button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:42px!important;height:42px!important;max-height:42px!important;padding:0 var(--spacing-md)!important;border-radius:var(--radius-lg)!important;font-size:.875rem!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.5px!important;line-height:42px!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}.pagination-container{padding:var(--spacing-xs) 4px;gap:4px;flex-wrap:nowrap}.pagination-info{font-size:.6rem;min-width:0;flex-shrink:1}.pagination-controls{gap:2px;flex-shrink:0}.pagination-button{min-width:28px;height:28px;font-size:.6rem;padding:2px}.page-size-selector{font-size:.6rem;flex-shrink:0}.page-size-selector select{font-size:.6rem;padding:2px 4px;min-width:45px}}.verify-email-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--color-background);padding:var(--spacing-xl)}.verify-email-card{max-width:480px;width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-md);text-align:center}.verify-email-card h1{margin-bottom:var(--spacing-md);font-size:var(--text-xl);color:var(--color-text-primary)}.verify-email-message{margin-bottom:var(--spacing-lg);font-size:var(--text-base);color:var(--color-text-secondary)}.verify-email-message.success{color:#166534}.verify-email-message.error{color:var(--color-error)}.verify-email-link{display:inline-block;color:var(--color-primary);font-weight:600;text-decoration:none}.verify-email-link:hover{text-decoration:underline}.auth-callback-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--color-background);padding:var(--spacing-xl)}.auth-callback-card{max-width:480px;width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-md);text-align:center}.auth-callback-card h1{margin-bottom:var(--spacing-md);font-size:var(--text-xl);color:var(--color-text-primary)}.auth-callback-message{margin-bottom:var(--spacing-lg);font-size:var(--text-base);color:var(--color-text-secondary)}.auth-callback-message--success{color:#166534}.auth-callback-message--error{color:var(--color-error)}.auth-callback-error-code{margin-bottom:var(--spacing-md);font-size:var(--text-sm);color:var(--color-text-tertiary, #6b7280);font-family:monospace}.auth-callback-link{display:inline-block;color:var(--color-primary);font-weight:600;text-decoration:none}.auth-callback-link:hover{text-decoration:underline}
