.spinner{font-size:2rem;color:var(--accent-primary)}.spinner-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:var(--spacing-md)}.c-spinner{border-radius:50%;border-style:solid;border-color:var(--border-primary);border-top-color:var(--accent-primary);animation:spin .8s linear infinite}.c-spinner--sm{display:inline-block;width:14px;height:14px;border-width:2px}.c-spinner--md{width:36px;height:36px;border-width:3px}.c-spinner--lg{width:48px;height:48px;border-width:4px}.spinner-message{color:var(--text-muted);font-size:.875rem;margin:0}:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: #e74c3c;--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-toast-width: 320px;--toastify-toast-background: #fff;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient( to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55 );--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error)}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:1em;left:1em}.Toastify__toast-container--top-center{top:1em;left:50%;transform:translate(-50%)}.Toastify__toast-container--top-right{top:1em;right:1em}.Toastify__toast-container--bottom-left{bottom:1em;left:1em}.Toastify__toast-container--bottom-center{bottom:1em;left:50%;transform:translate(-50%)}.Toastify__toast-container--bottom-right{bottom:1em;right:1em}@media only screen and (max-width : 480px){.Toastify__toast-container{width:100vw;padding:0;left:0;margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:0;transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:0;transform:translate(0)}.Toastify__toast-container--rtl{right:0;left:initial}}.Toastify__toast{position:relative;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:4px;box-shadow:0 1px 10px #0000001a,0 2px 15px #0000000d;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;max-height:var(--toastify-toast-max-height);overflow:hidden;font-family:var(--toastify-font-family);cursor:default;direction:ltr;z-index:0}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;-ms-flex:1 1 auto;flex:1 1 auto;padding:6px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;-ms-flex:1;flex:1}.Toastify__toast-icon{-webkit-margin-end:10px;margin-inline-end:10px;width:20px;-ms-flex-negative:0;flex-shrink:0;display:-ms-flexbox;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.7s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width : 480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;-ms-flex-item-align:start;align-self:flex-start}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:5px;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:perspective(400px)}30%{transform:perspective(400px) rotateX(-20deg);opacity:1}to{transform:perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideOutRight{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(110%,0,0)}}@keyframes Toastify__slideOutLeft{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(-110%,0,0)}}@keyframes Toastify__slideOutDown{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sidebar .w-full{width:100%}.sidebar .mt-2{margin-top:8px}.sidebar-footer .btn{display:flex;align-items:center;justify-content:center;gap:8px}body.modal-open{overflow:hidden;padding-right:0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1050;padding:var(--spacing-lg);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.modal-overlay-visible{opacity:1;visibility:visible}.modal-dialog{width:100%;max-height:calc(100vh - var(--spacing-2xl));display:flex;flex-direction:column;outline:none}.modal-dialog:focus,.modal-dialog:focus-visible{outline:none;box-shadow:none;border:none}.modal-position-center{margin:auto}.modal-position-top{margin:var(--spacing-2xl) auto auto auto;align-self:flex-start}.modal-xs{max-width:320px}.modal-sm{max-width:480px}.modal-md{max-width:640px}.modal-lg{max-width:900px}.modal-xl{max-width:1100px}.modal-2xl{max-width:1400px}.modal-full{max-width:calc(100vw - var(--spacing-xl))}.modal-fullscreen{max-width:calc(100vw - var(--spacing-lg));max-height:calc(100vh - var(--spacing-lg));width:calc(100vw - var(--spacing-lg));height:calc(100vh - var(--spacing-lg));margin:0;border-radius:var(--radius-xl)}.modal-fullscreen .modal-content{border-radius:var(--radius-xl);height:100%;max-height:100%}.modal-content{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:0 10px 25px #00000026,0 20px 48px #0000001a;display:flex;flex-direction:column;max-height:100%;overflow:hidden}.modal-scrollable:not(.modal-fullscreen) .modal-content{max-height:calc(100vh - var(--spacing-2xl))}.modal-scrollable .modal-body{overflow-y:auto;overflow-x:hidden}.modal-animation-fade .modal-content{opacity:0;transition:opacity .2s ease}.modal-overlay-visible .modal-animation-fade .modal-content{opacity:1}.modal-animation-slide .modal-content{opacity:0;transform:translateY(-30px);transition:opacity .25s ease,transform .25s ease}.modal-overlay-visible .modal-animation-slide .modal-content{opacity:1;transform:translateY(0)}.modal-animation-scale .modal-content{opacity:0;transform:scale(.95);transition:opacity .2s ease,transform .2s ease}.modal-overlay-visible .modal-animation-scale .modal-content{opacity:1;transform:scale(1)}.modal-animation-none .modal-content{opacity:1;transform:none}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);background:var(--bg-primary);flex-shrink:0;min-height:56px}.modal-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--spacing-sm);margin:0;line-height:1.4}.modal-title-icon{color:var(--accent-primary);font-size:1rem;flex-shrink:0}.modal-header-primary{background:var(--accent-primary);border-bottom-color:var(--accent-primary)}.modal-header-primary .modal-title,.modal-header-primary .modal-title-icon{color:#fff}.modal-header-primary .modal-close-btn{background:#fff3;color:#fff}.modal-header-primary .modal-close-btn:hover{background:#ffffff4d}.modal-header-danger{background:var(--accent-danger);border-bottom-color:var(--accent-danger)}.modal-header-danger .modal-title,.modal-header-danger .modal-title-icon{color:#fff}.modal-header-danger .modal-close-btn{background:#fff3;color:#fff}.modal-header-danger .modal-close-btn:hover{background:#ffffff4d}.modal-header-warning{background:var(--accent-warning);border-bottom-color:var(--accent-warning)}.modal-header-warning .modal-title,.modal-header-warning .modal-title-icon{color:#1a1a1a}.modal-header-warning .modal-close-btn{background:#0000001a;color:#1a1a1a}.modal-header-warning .modal-close-btn:hover{background:#00000026}.modal-header-success{background:var(--accent-success);border-bottom-color:var(--accent-success)}.modal-header-success .modal-title,.modal-header-success .modal-title-icon{color:#fff}.modal-header-success .modal-close-btn{background:#fff3;color:#fff}.modal-header-success .modal-close-btn:hover{background:#ffffff4d}.modal-close-btn{background:var(--bg-secondary);border:none;color:var(--text-secondary);cursor:pointer;padding:0;border-radius:var(--radius-md);transition:all .15s ease;display:flex;align-items:center;justify-content:center;width:36px;height:36px;font-size:.9375rem;flex-shrink:0;margin-left:var(--spacing-md)}.modal-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-close-btn:focus{outline:none;box-shadow:0 0 0 2px var(--accent-primary-light)}.modal-close-btn:disabled{opacity:.5;cursor:not-allowed}.modal-body{padding:var(--spacing-lg);flex:1;min-height:0}.modal-body-no-padding{padding:0}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-primary);background:var(--bg-secondary);flex-shrink:0}.modal-footer .btn{min-width:80px}.modal-footer-start{justify-content:flex-start}.modal-footer-center{justify-content:center}.modal-footer-between{justify-content:space-between}.modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);gap:var(--spacing-md)}.modal-loading .spinner{width:40px;height:40px;border:3px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:modalSpin .8s linear infinite}.modal-loading p{color:var(--text-muted);font-size:.875rem;margin:0}@keyframes modalSpin{to{transform:rotate(360deg)}}.modal-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);gap:var(--spacing-md);text-align:center}.modal-error-icon{width:48px;height:48px;background:var(--accent-danger-light);color:var(--accent-danger);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.modal-error p{color:var(--accent-danger);font-size:.875rem;margin:0}.modal-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);gap:var(--spacing-md);text-align:center}.modal-empty-icon{width:64px;height:64px;background:var(--bg-secondary);color:var(--text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.75rem}.modal-empty h4{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.modal-empty p{color:var(--text-muted);font-size:.875rem;margin:0}.modal-detail-list{display:flex;flex-direction:column;gap:0}.modal-detail-row{display:grid;grid-template-columns:140px 1fr;gap:var(--spacing-md);padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border-primary);align-items:start}.modal-detail-row:last-child{border-bottom:none;padding-bottom:0}.modal-detail-row:first-child{padding-top:0}.modal-detail-label{font-size:.8125rem;color:var(--text-muted);font-weight:500}.modal-detail-value{font-size:.875rem;color:var(--text-primary);word-break:break-word}.modal-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.modal-form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.modal-form-group label{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.modal-form-group label .required{color:var(--accent-danger)}.modal-form-group .form-control{font-size:.875rem}.modal-form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}.modal-form-row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-lg)}.modal-section{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-primary)}.modal-section:first-child{margin-top:0;padding-top:0;border-top:none}.modal-section-title{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-md) 0}.modal-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);font-size:.75rem;font-weight:500}.modal-status-badge.active{background:var(--accent-success-light);color:var(--accent-success)}.modal-status-badge.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.modal-status-badge.pending{background:var(--accent-warning-light);color:var(--accent-warning)}.modal-status-badge .status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.modal-status-badge.active .status-dot{background:var(--accent-success)}.modal-status-badge.inactive .status-dot{background:var(--accent-danger)}.modal-status-badge.pending .status-dot{background:var(--accent-warning)}.modal-type-badge{font-size:.6875rem;font-weight:600;padding:4px 10px;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px}.modal-type-badge.training{background:#3b82f626;color:#3b82f6}.modal-type-badge.corporate{background:#8b5cf626;color:#8b5cf6}.modal-type-badge.assessment{background:#ec489926;color:#ec4899}.modal-type-badge.default{background:var(--bg-tertiary);color:var(--text-secondary)}@media (max-width: 992px){.modal-overlay{padding:var(--spacing-md)}.modal-xl,.modal-2xl{max-width:calc(100vw - var(--spacing-lg))}}@media (max-width: 768px){.modal-overlay{padding:var(--spacing-sm);align-items:flex-end}.modal-xs,.modal-sm,.modal-md,.modal-lg,.modal-xl,.modal-2xl,.modal-full{max-width:100%}.modal-dialog{max-height:calc(100vh - var(--spacing-md))}.modal-content{border-radius:var(--radius-xl) var(--radius-xl) 0 0}.modal-fullscreen,.modal-fullscreen .modal-content{border-radius:var(--radius-xl)}.modal-header{padding:var(--spacing-md);min-height:52px}.modal-title{font-size:1rem}.modal-body{padding:var(--spacing-md)}.modal-footer{padding:var(--spacing-md);flex-wrap:wrap}.modal-form-row,.modal-form-row-3{grid-template-columns:1fr;gap:var(--spacing-md)}.modal-detail-row{grid-template-columns:1fr;gap:var(--spacing-xs)}.modal-detail-value{padding-left:0}}@media (max-width: 576px){.modal-overlay{padding:0}.modal-dialog:not(.modal-fullscreen){max-height:90vh}.modal-content{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.modal-header{padding:var(--spacing-sm) var(--spacing-md);min-height:48px}.modal-title{font-size:.9375rem}.modal-close-btn{width:32px;height:32px;font-size:.875rem}.modal-body{padding:var(--spacing-sm) var(--spacing-md)}.modal-footer{padding:var(--spacing-sm) var(--spacing-md);flex-direction:column-reverse;gap:var(--spacing-xs)}.modal-footer .btn{width:100%;justify-content:center}}@media print{.modal-overlay{position:static;background:none;padding:0}.modal-dialog{max-width:100%;max-height:none}.modal-content{box-shadow:none;border:1px solid #ccc}.modal-close-btn{display:none}}.confirm-modal-warning .modal-title-icon{color:var(--accent-warning)}.confirm-modal-danger .modal-title-icon{color:var(--accent-danger)}.confirm-modal-info .modal-title-icon{color:var(--accent-info)}.confirm-modal-success .modal-title-icon{color:var(--accent-success)}.confirm-modal-question .modal-title-icon{color:var(--accent-primary)}.confirm-modal .modal-body p{margin:0;color:var(--text-secondary);line-height:1.6;font-size:.875rem}.confirm-modal .modal-footer .btn{min-width:80px;font-weight:500}[data-theme=dark] .confirm-modal .modal-footer .btn-secondary{background:var(--bg-tertiary);border-color:var(--border-secondary);color:var(--text-primary)}[data-theme=dark] .confirm-modal .modal-footer .btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-secondary)}[data-theme=dark] .confirm-modal .modal-footer .btn-primary{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}[data-theme=dark] .confirm-modal .modal-footer .btn-primary:hover{background:var(--accent-secondary);border-color:var(--accent-secondary)}[data-theme=dark] .confirm-modal .modal-footer .btn-danger{background:var(--accent-danger);border-color:var(--accent-danger);color:var(--text-primary)}[data-theme=dark] .confirm-modal .modal-footer .btn-danger:hover{background:var(--accent-danger);border-color:var(--accent-danger);opacity:.9}[data-theme=dark] .confirm-modal .modal-footer .btn-warning{background:var(--accent-warning);border-color:var(--accent-warning);color:var(--text-inverse)}[data-theme=dark] .confirm-modal .modal-footer .btn-warning:hover{background:var(--accent-warning);border-color:var(--accent-warning);opacity:.9}.confirm-modal .modal-footer .spinner-sm{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:modalSpin .8s linear infinite;margin-right:var(--spacing-xs)}.multi-select{position:relative;width:100%}.multi-select-control{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:6px 12px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;gap:8px}.multi-select:not(.disabled) .multi-select-control:hover{border-color:var(--border-secondary)}.multi-select.open .multi-select-control{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light)}.multi-select.error .multi-select-control{border-color:var(--accent-danger)}.multi-select.error.open .multi-select-control{box-shadow:0 0 0 3px var(--accent-danger-light)}.multi-select.disabled .multi-select-control{background:var(--bg-secondary);cursor:not-allowed;opacity:.7}.multi-select-value{flex:1;min-width:0;display:flex;align-items:center}.multi-select-value .placeholder{color:var(--text-muted);font-size:.875rem}.selected-tags{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:500;border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-primary);max-width:150px;transition:all .15s ease}.tag-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-remove{display:flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:50%;transition:all .15s ease;flex-shrink:0}.tag-remove:hover{background:var(--bg-hover);color:var(--accent-danger)}.tag-primary .tag-remove:hover{background:var(--accent-primary);color:#fff}.tag-outline .tag-remove:hover{background:var(--accent-danger-light);color:var(--accent-danger)}.tag-more{background:var(--accent-light);color:var(--accent-primary);cursor:default}.multi-select-indicators{display:flex;align-items:center;gap:4px;flex-shrink:0}.multi-select .clear-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:50%;transition:all .15s ease}.multi-select .clear-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.multi-select .dropdown-indicator{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.75rem;transition:transform .2s ease}.multi-select.open .dropdown-indicator{transform:rotate(180deg)}.multi-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:slideIn .15s ease;overflow:hidden}.multi-select-dropdown .search-box{display:flex;align-items:center;gap:8px;padding:8px;border-bottom:1px solid var(--border-primary)}.search-input-wrapper{position:relative;flex:1}.multi-select-dropdown .search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.75rem;pointer-events:none}.multi-select-dropdown .search-input{width:100%;padding:8px 12px 8px 32px;border:1px solid var(--border-primary);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;transition:all .2s ease}.multi-select-dropdown .search-input:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-primary)}.multi-select-dropdown .search-input::placeholder{color:var(--text-muted)}.multi-select-dropdown .search-spinner{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--accent-primary);font-size:.75rem}.add-custom-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:var(--accent-primary);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;transition:all .15s ease;flex-shrink:0}.add-custom-btn:hover{background:var(--accent-secondary)}.custom-error{padding:6px 12px;background:var(--accent-danger-light);color:var(--accent-danger);font-size:.75rem;border-bottom:1px solid var(--border-primary)}.multi-select-dropdown .options-list{overflow-y:auto;padding:4px 0}.multi-select-dropdown .options-list::-webkit-scrollbar{width:6px}.multi-select-dropdown .options-list::-webkit-scrollbar-track{background:transparent}.multi-select-dropdown .options-list::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:3px}.multi-select-dropdown .options-list::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.multi-select-dropdown .option-item{display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:.875rem;color:var(--text-primary);cursor:pointer;transition:background .15s ease}.multi-select-dropdown .option-item:hover{background:var(--bg-secondary)}.multi-select-dropdown .option-item.selected{background:var(--accent-light)}.option-checkbox{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:2px solid var(--border-secondary);border-radius:var(--radius-sm);background:var(--bg-primary);color:transparent;font-size:.625rem;transition:all .15s ease;flex-shrink:0}.option-item.selected .option-checkbox{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.option-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-select-dropdown .options-message{padding:16px 12px;text-align:center;color:var(--text-muted);font-size:.875rem}.dropdown-footer{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--border-primary);background:var(--bg-secondary)}.selected-count{font-size:.75rem;color:var(--text-muted)}.clear-all-btn{padding:4px 8px;background:transparent;border:none;color:var(--accent-danger);font-size:.75rem;font-weight:500;cursor:pointer;border-radius:var(--radius-sm);transition:all .15s ease}.clear-all-btn:hover{background:var(--accent-danger-light)}.multi-select-portal-dropdown{position:relative}.multi-select-portal-dropdown .multi-select-dropdown{right:auto}@media (max-width: 768px){.multi-select-control{min-height:44px}.multi-select-dropdown{max-height:60vh}.multi-select-dropdown .options-list{max-height:calc(60vh - 120px)}.tag{max-width:120px}}@media (max-width: 480px){.selected-tags{max-width:100%}.tag{max-width:100px}.tag-more{display:none}.multi-select-value .placeholder{font-size:.8125rem}}.tag-component{display:inline-flex;align-items:center;gap:4px;font-weight:500;border-radius:var(--radius-full);transition:all .15s ease;max-width:200px}.tag-sm{padding:1px 6px;font-size:.6875rem}.tag-md{padding:2px 10px;font-size:.75rem}.tag-lg{padding:4px 12px;font-size:.8125rem}.tag-default{background:var(--bg-tertiary);color:var(--text-primary)}.tag-primary{background:var(--accent-light);color:var(--accent-primary)}.tag-success{background:var(--accent-success-light);color:var(--accent-success)}.tag-warning{background:var(--accent-warning-light);color:var(--accent-warning)}.tag-danger{background:var(--accent-danger-light);color:var(--accent-danger)}.tag-info{background:var(--accent-info-light);color:var(--accent-info)}.tag-outline{background:transparent;border:1px solid var(--border-primary);color:var(--text-secondary)}.tag-more{background:var(--accent-light);color:var(--accent-primary)}.tag-disabled{opacity:.6;cursor:not-allowed}.tag-clickable{cursor:pointer}.tag-clickable:hover:not(.tag-disabled){opacity:.8}.tag-icon{display:flex;align-items:center;font-size:.75em;flex-shrink:0}.tag-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-remove-btn{display:flex;align-items:center;justify-content:center;padding:0;background:transparent;border:none;cursor:pointer;border-radius:50%;transition:all .15s ease;flex-shrink:0;color:inherit;opacity:.7}.tag-sm .tag-remove-btn{width:12px;height:12px;font-size:.5rem}.tag-md .tag-remove-btn{width:14px;height:14px;font-size:.5625rem}.tag-lg .tag-remove-btn{width:16px;height:16px;font-size:.625rem}.tag-remove-btn:hover{opacity:1}.tag-default .tag-remove-btn:hover{background:var(--bg-hover);color:var(--accent-danger)}.tag-primary .tag-remove-btn:hover{background:var(--accent-primary);color:#fff}.tag-success .tag-remove-btn:hover{background:var(--accent-success);color:#fff}.tag-warning .tag-remove-btn:hover{background:var(--accent-warning);color:#fff}.tag-danger .tag-remove-btn:hover{background:var(--accent-danger);color:#fff}.tag-info .tag-remove-btn:hover{background:var(--accent-info);color:#fff}.tag-outline .tag-remove-btn:hover{background:var(--accent-danger-light);color:var(--accent-danger)}.tag-group{display:flex;flex-wrap:wrap;gap:6px;align-items:center}@media (max-width: 480px){.tag-component{max-width:150px}.tag-lg{padding:3px 10px;font-size:.75rem}}.searchable-select{position:relative;width:100%}.select-control{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.searchable-select:not(.disabled) .select-control:hover{border-color:var(--accent-primary)}.searchable-select.open .select-control{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.searchable-select.error .select-control{border-color:var(--accent-danger)}.searchable-select.error.open .select-control{box-shadow:0 0 0 3px var(--accent-danger-light)}.searchable-select.disabled .select-control{background:var(--bg-secondary);cursor:not-allowed;opacity:.7}.select-value{flex:1;font-size:.875rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.select-value .placeholder{color:var(--text-muted)}.select-indicators{display:flex;align-items:center;gap:4px;margin-left:8px}.clear-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:50%;transition:all .2s ease}.clear-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.dropdown-indicator{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.75rem;transition:transform .2s ease}.searchable-select.open .dropdown-indicator{transform:rotate(180deg)}.select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);box-shadow:0 4px 20px #00000026;animation:slideIn .15s ease}.select-dropdown .dropdown-search{position:relative;padding:8px}.select-dropdown .dropdown-search .search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.75rem}.select-dropdown .dropdown-search .search-input{width:100%;padding:8px 12px 8px 32px;border:1px solid var(--border-primary);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;transition:all .2s ease}.select-dropdown .dropdown-search .search-input:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-primary)}.select-dropdown .dropdown-search .search-input::placeholder{color:var(--text-muted)}.select-dropdown .options-list{max-height:220px;overflow-y:auto;padding:4px 0}.select-dropdown .options-list::-webkit-scrollbar{width:6px}.select-dropdown .options-list::-webkit-scrollbar-track{background:transparent}.select-dropdown .options-list::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:3px}.select-dropdown .options-list::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.select-dropdown .option-item{padding:10px 12px;font-size:.875rem;color:var(--text-primary);cursor:pointer;transition:background .15s ease}.select-dropdown .option-item:hover{background:var(--bg-secondary)}.select-dropdown .option-item.selected{background:var(--accent-primary-light);color:var(--accent-primary);font-weight:500}.select-dropdown .options-message{padding:16px 12px;text-align:center;color:var(--text-muted);font-size:.875rem}@media (max-width: 768px){.searchable-select .select-control{min-height:44px}.searchable-select .select-dropdown{max-height:60vh}.searchable-select .select-dropdown .options-list{max-height:calc(60vh - 60px)}}.basic-select{position:relative;width:100%}.basic-select .select-control{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.basic-select:not(.disabled) .select-control:hover{border-color:var(--accent-primary)}.basic-select.open .select-control{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.basic-select.error .select-control{border-color:var(--accent-danger)}.basic-select.error.open .select-control{box-shadow:0 0 0 3px var(--accent-danger-light)}.basic-select.disabled .select-control{background:var(--bg-secondary);cursor:not-allowed;opacity:.7}.basic-select.size-sm .select-control{min-height:34px;padding:4px 10px;font-size:.8125rem}.basic-select.size-md .select-control{min-height:42px;padding:8px 12px}.basic-select.size-lg .select-control{min-height:48px;padding:10px 14px;font-size:1rem}.basic-select .select-value{flex:1;display:flex;align-items:center;gap:8px;font-size:.875rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.basic-select .select-value .placeholder{color:var(--text-muted)}.basic-select .select-value .option-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.875rem}.basic-select .select-indicators{display:flex;align-items:center;gap:4px;margin-left:8px}.basic-select .clear-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:50%;transition:all .2s ease}.basic-select .clear-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.basic-select .dropdown-indicator{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.75rem;transition:transform .2s ease}.basic-select.open .dropdown-indicator{transform:rotate(180deg)}.basic-select .select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);box-shadow:0 4px 20px #00000026;animation:basicSelectSlideDown .15s ease}.basic-select.drop-up .select-dropdown{top:auto;bottom:calc(100% + 4px);box-shadow:0 -4px 20px #00000026;animation:basicSelectSlideUp .15s ease}.basic-select.drop-up .dropdown-indicator{transform:rotate(180deg)}.basic-select.drop-up.open .dropdown-indicator{transform:rotate(0)}@keyframes basicSelectSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes basicSelectSlideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.basic-select .select-search{padding:8px 8px 4px;border-bottom:1px solid var(--border-primary)}.basic-select .select-search-input{width:100%;padding:6px 10px;font-size:.8125rem;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);outline:none;transition:border-color .2s ease}.basic-select .select-search-input:focus{border-color:var(--accent-primary)}.basic-select .select-search-input::placeholder{color:var(--text-muted)}.basic-select .options-list{max-height:220px;overflow-y:auto;padding:4px 0}.basic-select .options-list::-webkit-scrollbar{width:6px}.basic-select .options-list::-webkit-scrollbar-track{background:transparent}.basic-select .options-list::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:3px}.basic-select .options-list::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.basic-select .option-item{display:flex;align-items:center;gap:8px;padding:10px 12px;font-size:.875rem;color:var(--text-primary);cursor:pointer;transition:background .15s ease}.basic-select .option-item:hover{background:var(--bg-secondary)}.basic-select .option-item.selected{background:var(--accent-primary-light);color:var(--accent-primary);font-weight:500}.basic-select .option-item .option-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.875rem}.basic-select .option-item .option-label{flex:1}.basic-select .option-item .option-check{display:flex;align-items:center;justify-content:center;margin-left:auto;color:var(--accent-primary);font-size:.75rem}.basic-select .options-message{padding:16px 12px;text-align:center;color:var(--text-muted);font-size:.875rem}@media (max-width: 768px){.basic-select .select-control{min-height:44px}.basic-select .select-dropdown{max-height:60vh}.basic-select .options-list{max-height:calc(60vh - 20px)}}.basic-select.auto-refresh-control{min-width:132px}.basic-select.auto-refresh-control.active .select-control{border-color:var(--accent-primary, #2563eb)}.basic-select.auto-refresh-control.active .select-value .option-icon{color:var(--accent-primary, #2563eb);animation:auto-refresh-spin 2s linear infinite}@keyframes auto-refresh-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.image-cropper-modal .cropper-body{padding:var(--spacing-lg);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.image-cropper-modal .modal-footer .btn{display:inline-flex;align-items:center;gap:6px}.image-cropper-modal .modal-footer .cropper-change-btn{cursor:pointer}.upload-area{width:100%}.upload-label{display:block;cursor:pointer}.upload-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-xl);border:2px dashed var(--border-primary);border-radius:var(--radius-lg);background:var(--bg-secondary);transition:all .2s ease}.upload-content:hover{border-color:var(--accent-primary);background:var(--accent-primary-light)}.upload-icon{font-size:2rem;color:var(--text-muted)}.upload-content:hover .upload-icon{color:var(--accent-primary)}.upload-text{font-size:.9375rem;font-weight:500;color:var(--text-primary)}.upload-hint{font-size:.75rem;color:var(--text-muted)}.crop-area-container{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.crop-area{position:relative;overflow:hidden;border-radius:var(--radius-md);background:#1a1a1a;cursor:move;-webkit-user-select:none;user-select:none}.crop-image{position:absolute;top:0;left:0;max-width:none;pointer-events:none}.crop-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.crop-circle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:180px;height:180px;border-radius:50%;box-shadow:0 0 0 9999px #00000080;border:2px solid white}.crop-rect{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:var(--radius-sm);box-shadow:0 0 0 9999px #00000080;border:2px solid white}.crop-instructions{display:flex;gap:var(--spacing-md);font-size:.75rem;color:var(--text-muted)}.crop-instructions span{display:flex;align-items:center;gap:4px}.zoom-control{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;max-width:250px}.zoom-control label{font-size:.8125rem;color:var(--text-secondary);white-space:nowrap}.zoom-control input[type=range]{flex:1;height:4px;border-radius:2px;background:var(--bg-tertiary);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.zoom-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent-primary);cursor:pointer;transition:transform .15s ease}.zoom-control input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.zoom-control span{font-size:.75rem;color:var(--text-muted);min-width:40px;text-align:right}.output-info{font-size:.75rem;color:var(--text-muted);background:var(--bg-secondary);padding:4px 10px;border-radius:var(--radius-full)}.cropper-error{width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--accent-danger-light);color:var(--accent-danger);border-radius:var(--radius-md);font-size:.8125rem;text-align:center}@media (max-width: 480px){.image-cropper-modal .cropper-body{padding:var(--spacing-md)}.crop-area:has(.crop-circle){width:180px!important;height:180px!important}.crop-circle{width:160px;height:160px}}.back-to-top{position:fixed;bottom:24px;right:24px;width:44px;height:44px;border-radius:50%;background:var(--accent-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;box-shadow:0 4px 12px #3b82f666;z-index:1000;opacity:0;visibility:hidden;transform:translateY(20px);transition:all .3s ease}.back-to-top:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 6px 16px #3b82f680}.back-to-top:active{transform:translateY(0)}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}@keyframes backToTopPulse{0%{box-shadow:0 4px 12px #3b82f666}50%{box-shadow:0 4px 20px #3b82f699}to{box-shadow:0 4px 12px #3b82f666}}.back-to-top.visible{animation:backToTopPulse 2s ease-in-out 1}@media (max-width: 768px){.back-to-top{bottom:16px;right:16px;width:40px;height:40px;font-size:.875rem}}@media (prefers-reduced-motion: reduce){.back-to-top{transition:opacity .2s ease,visibility .2s ease;transform:none}.back-to-top:hover{transform:none}.back-to-top.visible{animation:none;transform:none}}.status-radio-wrapper{display:flex;flex-direction:column;gap:4px}.status-radio-group{display:inline-flex;gap:10px}.status-box{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border-primary);border-radius:4px;cursor:pointer;font-size:.8125rem;color:var(--text-secondary);background:var(--bg-primary);transition:all .15s ease}.status-box:hover:not(.disabled){border-color:var(--border-secondary)}.status-box.disabled{opacity:.5;cursor:not-allowed}.status-box input[type=radio]{margin:0;cursor:pointer}.status-box.disabled input[type=radio]{cursor:not-allowed}.status-box.active.selected{border-color:var(--accent-success);background:var(--accent-success-light);color:var(--accent-success)}.status-box.active.selected input[type=radio]{accent-color:var(--accent-success)}.status-box.inactive.selected{border-color:var(--accent-danger);background:var(--accent-danger-light);color:var(--accent-danger)}.status-box.inactive.selected input[type=radio]{accent-color:var(--accent-danger)}.status-radio-group.has-error .status-box{border-color:var(--accent-danger)}.status-error{font-size:.75rem;color:var(--accent-danger);line-height:1}.profile-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-md)}.profile-loading .loading-icon{font-size:1.5rem;color:var(--accent-primary)}.profile-loading p{color:var(--text-muted);font-size:.8125rem;margin:0}.profile-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-md);text-align:center}.profile-error p{color:var(--accent-danger);font-size:.8125rem;margin:0}.profile-card{display:flex;flex-direction:column;gap:var(--spacing-md)}.profile-edit-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-full);color:var(--text-secondary);font-size:.8125rem;cursor:pointer;transition:all .15s ease;flex-shrink:0;align-self:flex-start;margin-left:auto}.profile-edit-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;transform:scale(1.1)}.profile-top{display:flex;align-items:center;gap:12px;padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.profile-avatar-wrapper{flex-shrink:0}.profile-avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid var(--border-primary)}.profile-avatar-placeholder{width:56px;height:56px;border-radius:50%;background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:600}.profile-basic{flex:1;min-width:0}.profile-name{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0;line-height:1.2}.user-profile-modal .badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:500}.user-profile-modal .badge-admin{background:var(--accent-danger-light);color:var(--accent-danger)}.user-profile-modal .badge-instructor{background:var(--accent-primary-light);color:var(--accent-primary)}.user-profile-modal .badge-user{background:var(--accent-success-light);color:var(--accent-success)}.user-profile-modal .badge-status{display:inline-flex;align-items:center;gap:4px}.user-profile-modal .badge-status .status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.user-profile-modal .badge-status.active{background:var(--accent-success-light);color:var(--accent-success)}.user-profile-modal .badge-status.active .status-dot{background:var(--accent-success)}.user-profile-modal .badge-status.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.user-profile-modal .badge-status.inactive .status-dot{background:var(--accent-danger)}.profile-details{display:flex;flex-direction:column;gap:0}.detail-row{display:flex;justify-content:space-between;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--border-primary);gap:var(--spacing-md)}.detail-row:last-child{border-bottom:none;padding-bottom:0}.detail-row:first-child{padding-top:0}.detail-label{font-size:.8125rem;color:var(--text-muted);flex-shrink:0;min-width:80px}.detail-value{font-size:.8125rem;color:var(--text-primary);word-break:break-word;flex:1}@media (max-width: 576px){.profile-avatar,.profile-avatar-placeholder{width:48px;height:48px;font-size:1rem}.profile-name{font-size:.9375rem}.detail-row{flex-direction:column;gap:4px;align-items:flex-start}.detail-value{text-align:left}}.notification-drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:9998;animation:fadeIn .2s ease}.notification-drawer{position:fixed;top:0;right:0;width:400px;max-width:100vw;height:100vh;background:var(--bg-primary);box-shadow:-4px 0 24px #00000026;z-index:9999;display:flex;flex-direction:column;transform:translate(100%);animation:slideInRight .3s ease forwards}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);background:var(--bg-card);flex-shrink:0}.drawer-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:1.125rem;font-weight:600;color:var(--text-primary)}.drawer-title-icon{color:var(--accent-primary)}.unread-badge{background:var(--accent-danger);color:#fff;font-size:.875rem;font-weight:500;padding:2px 10px;border-radius:var(--radius-full)}.drawer-header-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.drawer-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.drawer-action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.drawer-action-btn.danger:hover{background:#ef44441a;color:var(--accent-danger);border-color:var(--accent-danger)}.drawer-close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.drawer-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.drawer-body{flex:1;overflow-y:auto;padding:var(--spacing-md)}.notification-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.notification-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-md);cursor:pointer;transition:all var(--transition-fast)}.notification-card:hover{background:var(--bg-hover);border-color:var(--border-secondary);transform:translate(-2px)}.notification-card.unread{background:var(--bg-secondary);border-left:3px solid var(--accent-primary)}.notification-card.unread:hover{background:var(--bg-hover)}.notification-card-header{display:flex;align-items:flex-start;gap:var(--spacing-sm)}.notification-indicator{width:12px;flex-shrink:0;padding-top:4px}.unread-dot{font-size:8px;color:var(--accent-primary)}.notification-card-content{flex:1;min-width:0}.notification-card-title{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0 0 4px;line-height:1.3}.notification-card-message{font-size:.8125rem;color:var(--text-secondary);margin:0 0 8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-card-meta{display:flex;align-items:center;gap:var(--spacing-sm)}.notification-card-time{font-size:.75rem;color:var(--text-muted)}.notification-card-status{font-size:.6875rem;font-weight:500;padding:2px 8px;border-radius:var(--radius-full);text-transform:capitalize}.notification-card-status.status-success{background:#10b9811a;color:var(--accent-success)}.notification-card-status.status-warning{background:#f59e0b1a;color:var(--accent-warning)}.notification-card-status.status-danger{background:#ef44441a;color:var(--accent-danger)}.notification-card-status.status-info{background:#3b82f61a;color:var(--accent-info)}.notification-card-status.status-default{background:var(--bg-tertiary);color:var(--text-muted)}.notification-card-actions{display:flex;flex-direction:column;gap:4px;opacity:0;transition:opacity var(--transition-fast)}.notification-card:hover .notification-card-actions{opacity:1}.card-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);font-size:.75rem}.card-action-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.card-action-btn.danger:hover{background:var(--accent-danger);border-color:var(--accent-danger);color:#fff}.card-action-btn.read-toggle.is-unread{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;opacity:1}.card-action-btn.read-toggle.is-read{background:var(--bg-tertiary);border-color:var(--border-primary);color:var(--text-muted);cursor:default}.notification-card.unread .notification-card-actions,.notification-card .notification-card-actions:has(.read-toggle.is-unread){opacity:1}.notification-card.clickable{cursor:pointer}.notification-card.read .notification-card-message{color:var(--text-muted)}.notification-card-user{display:inline-flex;align-items:center;padding:2px 8px;margin-right:var(--spacing-xs);background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:.7rem;font-weight:600}.notification-card-user-btn{border:none;cursor:pointer;font-family:inherit;transition:background-color .15s ease,color .15s ease}.notification-card-user-btn:hover,.notification-card-user-btn:focus-visible{background:var(--accent-light, var(--bg-tertiary));color:var(--accent-primary);outline:none}.notification-drawer-profile-overlay{z-index:10000}.drawer-toolbar{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-primary);background:var(--bg-secondary)}.drawer-toolbar .toggle-btn{display:flex;align-items:center;gap:var(--spacing-sm);background:none;border:none;color:var(--text-secondary);font-size:.85rem;cursor:pointer;padding:0;transition:color .2s ease}.drawer-toolbar .toggle-btn:hover{color:var(--text-primary)}.drawer-toolbar .toggle-btn.active{color:var(--accent-primary)}.drawer-toolbar .toggle-btn svg{font-size:1.25rem}.drawer-loading-more{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-md);color:var(--text-muted);font-size:.8rem}.active-tasks-section{padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-xs);background:var(--bg-secondary, #f8f9fa);border-bottom:1px solid var(--border-color, #dee2e6)}[data-theme=dark] .active-tasks-section{background:var(--bg-tertiary, #2d3748)}.active-tasks-header{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #6c757d);margin-bottom:var(--spacing-xs)}.active-tasks-icon{color:var(--accent-primary, #3b82f6)}.active-task-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) 0;font-size:.8125rem}.active-task-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.active-task-status{flex-shrink:0;font-size:.6875rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-full, 50px);margin-left:var(--spacing-xs)}.active-task-status.status-processing{background:#3b82f626;color:var(--accent-primary, #3b82f6)}.active-task-status.status-queued{background:#f59e0b26;color:var(--accent-warning, #f59e0b)}.drawer-loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);text-align:center}.drawer-loading-state .loading-icon{font-size:2rem;color:var(--accent-primary);margin-bottom:var(--spacing-md)}.drawer-loading-state p{font-size:.875rem;color:var(--text-muted);margin:0}.drawer-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);text-align:center}.drawer-empty-state .empty-icon{font-size:3rem;color:var(--text-muted);margin-bottom:var(--spacing-md);opacity:.5}.drawer-empty-state h4{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.drawer-empty-state p{font-size:.875rem;color:var(--text-muted);margin:0}.drawer-footer{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-primary);background:var(--bg-card);flex-shrink:0}.view-all-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);width:100%}.view-all-btn svg{font-size:.75rem}@media (max-width: 576px){.notification-drawer{width:100%}.drawer-header{padding:var(--spacing-sm) var(--spacing-md)}.drawer-title{font-size:1rem}.drawer-body,.notification-card{padding:var(--spacing-sm)}.notification-card-title{font-size:.875rem}.notification-card-message{font-size:.75rem}.notification-card-actions{opacity:1}.drawer-footer{padding:var(--spacing-sm) var(--spacing-md)}}.drawer-body::-webkit-scrollbar{width:6px}.drawer-body::-webkit-scrollbar-track{background:transparent}.drawer-body::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:3px}.drawer-body::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.page-header{background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%);border-radius:12px;padding:20px 24px;margin-bottom:10px;border:1px solid var(--border-primary);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.page-header:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));opacity:.8}.page-header-container{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%}.page-header-left{display:flex;align-items:flex-start;gap:16px;flex:1;min-width:0}.page-header-back{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0;margin-top:2px}.page-header-back:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse);transform:translate(-2px)}.page-header-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;font-size:1.25rem;flex-shrink:0;box-shadow:0 4px 12px #0891b240}.page-header-title-section{display:flex;align-items:flex-start;gap:16px;flex:1;min-width:0}.page-header-text{flex:1;min-width:0}.page-header-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.page-header-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0;line-height:1.3;letter-spacing:-.02em}.page-header-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 10px;font-size:.75rem;font-weight:600;color:var(--accent-primary);background:#0891b21a;border-radius:20px;border:1px solid rgba(8,145,178,.2)}.page-header-subtitle{font-size:.875rem;color:var(--text-secondary);margin:4px 0 0;line-height:1.4}.page-header-breadcrumbs{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}.breadcrumb-separator{font-size:.625rem;color:var(--text-muted)}.breadcrumb-link{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--accent-primary);text-decoration:none;padding:4px 8px;border-radius:6px;transition:all .2s ease}.breadcrumb-link:hover{background:#0891b21a;color:var(--accent-secondary)}.breadcrumb-current{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--text-secondary);padding:4px 8px;background:var(--bg-tertiary);border-radius:6px}.breadcrumb-icon{font-size:.75rem}.page-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto}.page-header-actions .btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;font-size:.875rem;font-weight:500;border-radius:8px;text-decoration:none;transition:all .2s ease;white-space:nowrap;border:none;cursor:pointer}.page-header-actions .btn svg{font-size:.875rem}.page-header-actions .btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.page-header-actions .btn-primary,.page-header-actions a.btn-primary,.page-header-actions button.btn-primary{background:var(--accent-primary)!important;color:#fff!important}.page-header-actions .btn-primary:hover,.page-header-actions a.btn-primary:hover,.page-header-actions button.btn-primary:hover{background:var(--accent-primary-hover, #0e7490)!important;color:#fff!important;transform:translateY(-1px);box-shadow:0 4px 12px #0891b24d}.page-header-actions .btn-secondary,.page-header-actions a.btn-secondary,.page-header-actions button.btn-secondary{background:var(--bg-tertiary)!important;color:var(--text-primary)!important;border:1px solid var(--border-primary)!important}.page-header-actions .btn-secondary:hover,.page-header-actions a.btn-secondary:hover,.page-header-actions button.btn-secondary:hover{background:var(--bg-hover, var(--bg-secondary))!important;color:var(--accent-primary)!important;border-color:var(--accent-primary)!important}.page-header-actions .btn-outline,.page-header-actions a.btn-outline,.page-header-actions button.btn-outline{background:transparent!important;color:var(--text-secondary)!important;border:1px solid var(--border-primary)!important}.page-header-actions .btn-outline:hover,.page-header-actions a.btn-outline:hover,.page-header-actions button.btn-outline:hover{background:var(--bg-tertiary)!important;color:var(--accent-primary)!important;border-color:var(--accent-primary)!important}.page-header-actions .btn-danger,.page-header-actions a.btn-danger,.page-header-actions button.btn-danger{background:var(--accent-danger)!important;color:#fff!important}.page-header-actions .btn-danger:hover,.page-header-actions a.btn-danger:hover,.page-header-actions button.btn-danger:hover{background:var(--accent-danger-hover, #dc2626)!important;color:#fff!important;transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.page-header-actions .btn-warning,.page-header-actions a.btn-warning,.page-header-actions button.btn-warning{background:var(--accent-warning, #f59e0b)!important;color:#1a1a1a!important}.page-header-actions .btn-warning:hover,.page-header-actions a.btn-warning:hover,.page-header-actions button.btn-warning:hover{background:var(--accent-warning-hover, #d97706)!important;color:#1a1a1a!important;transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b4d}.page-header-content{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-primary)}.page-header.compact{padding:14px 20px}.page-header.compact .page-header-icon{width:40px;height:40px;font-size:1rem}.page-header.compact .page-header-title{font-size:1.25rem}.page-header.compact .page-header-subtitle{font-size:.8125rem}.page-header.no-decoration:before{display:none}@media (max-width: 768px){.page-header{padding:16px}.page-header-container{flex-direction:column;gap:16px;align-items:stretch}.page-header-left{width:100%}.page-header-icon{width:40px;height:40px;font-size:1rem}.page-header-title{font-size:1.25rem}.page-header-actions{width:100%;justify-content:flex-end;margin-left:0}.page-header-actions .btn{flex:0 0 auto;justify-content:center}}@media (max-width: 480px){.page-header-title-section{flex-direction:column;gap:12px}.page-header-breadcrumbs{margin-top:10px}.page-header-actions{flex-wrap:wrap}.page-header-actions .btn span{display:none}.page-header-actions .btn{padding:10px 14px}}.exercise-detail-modal{display:flex;flex-direction:column}.edm-hero{position:relative;width:100%;height:220px;overflow:hidden;background:var(--bg-tertiary)}.edm-hero__image{width:100%;height:100%;object-fit:cover;display:block}.edm-hero__gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 30%,rgba(0,0,0,.55) 65%,rgba(0,0,0,.82) 100%);pointer-events:none}.edm-hero__content{position:absolute;bottom:0;left:0;right:0;padding:var(--spacing-md) var(--spacing-lg);display:flex;flex-direction:column;gap:6px;z-index:1}.edm-hero__difficulty{align-self:flex-start;font-size:.625rem;padding:3px 8px}.edm-hero__title{font-size:1.25rem;font-weight:700;color:#fff;margin:0;line-height:1.3;text-shadow:0 1px 4px rgba(0,0,0,.5)}.edm-hero__meta{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.edm-hero__author{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:#ffffffd9}.edm-hero__author svg{font-size:.7rem;color:#fff9}.edm-hero__author-link{background:none;border:none;padding:0;font-family:inherit;font-size:inherit;color:#67e8f9;cursor:pointer;text-decoration:none;transition:color .15s ease}.edm-hero__author-link:hover{color:#a5f3fc;text-decoration:underline}.edm-hero__rating{display:inline-flex;align-items:center;gap:3px;font-size:.75rem}.edm-star{font-size:.65rem}.edm-star--filled{color:#fbbf24}.edm-star--half{color:#fbbf24;opacity:.6}.edm-star--empty{color:#ffffff59}.edm-hero__rating-value{color:#fffc;font-size:.75rem;font-weight:600;margin-left:3px}.edm-body{padding:var(--spacing-md) var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.edm-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--spacing-sm)}.edm-stat-card{display:flex;flex-direction:column;align-items:center;gap:5px;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);text-align:center}.edm-stat-card__icon{width:32px;height:32px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:.8rem;background:var(--accent-primary-light);color:var(--accent-primary)}.edm-stat-card__icon--info{background:var(--accent-info-light);color:var(--accent-info)}.edm-stat-card__value{font-size:.9375rem;font-weight:700;color:var(--text-primary);line-height:1.2}.edm-stat-card__label{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.edm-keywords{display:flex;flex-wrap:wrap;gap:6px}.edm-keyword-tag{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:var(--accent-primary-light);border:1px solid rgba(8,145,178,.12);border-radius:var(--radius-full);font-size:.75rem;font-weight:500;color:var(--accent-primary);white-space:nowrap}.edm-keyword-tag svg{font-size:.6rem}.edm-allotment-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-top:3px solid var(--accent-primary);border-radius:var(--radius-md);overflow:hidden}.edm-allotment-card__header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:.8rem;font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--border-primary)}.edm-allotment-card__header svg{color:var(--accent-primary);font-size:.8rem}.edm-allotment-card__grid{display:grid;grid-template-columns:1fr 1fr;gap:0}.edm-allotment-item{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-primary);border-right:1px solid var(--border-primary)}.edm-allotment-item:nth-child(2n){border-right:none}.edm-allotment-item:nth-last-child(-n+2){border-bottom:none}.edm-allotment-item:last-child{border-bottom:none}.edm-allotment-item__label{font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:2px}.edm-allotment-item__value{font-size:.84rem;color:var(--text-primary)}.edm-allotment-card__progress{padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md);border-top:1px solid var(--border-primary)}.edm-allotment-card__progress-info{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-secondary);margin-bottom:6px}.edm-progress-bar{height:6px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.edm-progress-fill{height:100%;background:var(--accent-primary);border-radius:var(--radius-full);transition:width .3s ease}.edm-desc-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-left:3px solid var(--accent-primary);border-radius:var(--radius-md);padding:var(--spacing-lg)}.edm-desc-card__title{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:var(--spacing-sm)}.edm-desc-card__content{font-size:.84rem;color:var(--text-secondary);line-height:1.65}.edm-desc-card__content p{margin:0 0 var(--spacing-sm)}.edm-desc-card__content p:last-child{margin-bottom:0}[data-theme=dark] .edm-stat-card{background:var(--bg-tertiary);border-color:var(--border-secondary)}[data-theme=dark] .edm-keyword-tag{background:#22d3ee1a;border-color:#22d3ee26;color:#22d3ee}[data-theme=dark] .edm-allotment-card{background:var(--bg-tertiary);border-color:var(--border-secondary);border-top-color:var(--accent-primary)}[data-theme=dark] .edm-allotment-item,[data-theme=dark] .edm-allotment-card__header{border-color:var(--border-secondary)}[data-theme=dark] .edm-desc-card__content{background:#fff!important;color:#1f2937!important;padding:12px 16px;border-radius:var(--radius-sm)}[data-theme=dark] .edm-desc-card__content a{color:#0284c7}[data-theme=dark] .edm-desc-card__content h1,[data-theme=dark] .edm-desc-card__content h2,[data-theme=dark] .edm-desc-card__content h3,[data-theme=dark] .edm-desc-card__content h4{color:#111827}[data-theme=dark] .edm-desc-card__content code{background:#f1f5f9;color:#0f172a}[data-theme=dark] .edm-desc-card__content pre{background:#1e293b;border-color:#334155}[data-theme=dark] .edm-desc-card__content pre code{background:transparent;color:inherit}[data-theme=dark] .edm-desc-card__content blockquote{background:#f0f9ff;color:#374151;border-left-color:#0ea5e9}[data-theme=dark] .edm-desc-card__content img{border:1px solid #e5e7eb}[data-theme=dark] .edm-desc-card__content th,[data-theme=dark] .edm-desc-card__content td{border-color:#d1d5db}[data-theme=dark] .edm-desc-card__content th{background:#f1f5f9;color:#1e293b}[data-theme=dark] .edm-allotment-card__progress{border-color:var(--border-secondary)}[data-theme=dark] .edm-desc-card{background:var(--bg-tertiary);border-color:var(--border-secondary);border-left-color:var(--accent-primary)}@media (max-width: 768px){.edm-hero{height:170px}.edm-hero__title{font-size:1.1rem}.edm-body{padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-sm)}.edm-allotment-card__grid{grid-template-columns:1fr}.edm-allotment-item{border-right:none}.edm-allotment-item:nth-last-child(-n+2){border-bottom:1px solid var(--border-primary)}.edm-allotment-item:last-child{border-bottom:none}}@media (max-width: 480px){.edm-hero{height:140px}.edm-hero__title{font-size:1rem}.edm-hero__content{padding:var(--spacing-sm) var(--spacing-md)}}.roadmap-modal{min-height:200px}.roadmap-loading,.roadmap-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-2xl) var(--spacing-lg);color:var(--text-muted)}.roadmap-loading-icon{font-size:1.5rem;color:var(--accent-primary)}.roadmap-empty-icon{font-size:2rem;opacity:.4}.roadmap-loading p,.roadmap-empty p{margin:0;font-size:.88rem}.roadmap-timeline{display:flex;flex-direction:column;padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-lg) var(--spacing-md)}.roadmap-step{display:flex;gap:var(--spacing-md);position:relative;min-height:80px}.roadmap-step-indicator{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:40px}.roadmap-step-circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:700;flex-shrink:0;z-index:1;transition:all .2s ease}.roadmap-step-circle span{line-height:1}.roadmap-step-circle--pending{background:var(--bg-secondary);border:2px solid var(--border-secondary);color:var(--text-muted)}.roadmap-step-circle--current{background:var(--accent-primary);border:2px solid var(--accent-primary);color:#fff;box-shadow:0 0 0 4px #0891b226}.roadmap-step-circle--completed{background:var(--success);border:2px solid var(--success);color:#fff}.roadmap-step-line{width:2px;flex:1;min-height:16px;margin:4px 0}.roadmap-step-line--pending{background:var(--border-primary);background-image:repeating-linear-gradient(to bottom,var(--border-secondary),var(--border-secondary) 4px,transparent 4px,transparent 8px)}.roadmap-step-line--completed{background:var(--success)}.roadmap-card{display:flex;align-items:stretch;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;flex:1;text-align:left;font-family:inherit;color:inherit;margin-bottom:var(--spacing-sm);min-width:0;position:relative;overflow:hidden}.roadmap-card:hover{border-color:var(--accent-primary);box-shadow:0 2px 8px #0000000f;transform:translate(2px)}.roadmap-card:active{transform:translate(1px)}.roadmap-card-thumb{width:56px;height:56px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;background:var(--bg-tertiary)}.roadmap-card-thumb img{width:100%;height:100%;object-fit:cover;display:block}.roadmap-card-body{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0;justify-content:center}.roadmap-card-title{font-size:.9rem;font-weight:600;color:var(--text-primary);margin:0;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roadmap-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.roadmap-card-author{font-size:.76rem;color:var(--text-muted)}.roadmap-card-stat{display:inline-flex;align-items:center;gap:3px;font-size:.76rem;color:var(--text-secondary)}.roadmap-card-stat .stat-warning{color:#f59e0b;font-size:.68rem}.roadmap-card-difficulty{display:inline-flex;align-items:center;gap:3px;font-size:.72rem;font-weight:600;padding:1px 8px;border-radius:var(--radius-full)}.roadmap-card-difficulty svg{font-size:.5rem}.roadmap-card-difficulty.difficulty.easy{color:var(--easy);background:#10b98114}.roadmap-card-difficulty.difficulty.medium{color:var(--medium);background:#f59e0b14}.roadmap-card-difficulty.difficulty.hard{color:var(--hard);background:#ef444414}.roadmap-card-difficulty.difficulty.insane{color:var(--insane);background:#8b5cf614}.roadmap-card-status{position:absolute;top:var(--spacing-xs);right:var(--spacing-xs);font-size:.68rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.3px}.roadmap-card-status--pending{background:#f59e0b1a;color:#d97706}.roadmap-card-status--completed{background:#10b9811a;color:#059669}[data-theme=dark] .roadmap-card{background:var(--bg-secondary);border-color:var(--border-secondary)}[data-theme=dark] .roadmap-card:hover{border-color:var(--accent-primary);box-shadow:0 2px 12px #0003}[data-theme=dark] .roadmap-step-circle--pending{background:var(--bg-tertiary);border-color:var(--border-secondary)}[data-theme=dark] .roadmap-card-stat .stat-warning{color:#fbbf24}[data-theme=dark] .roadmap-card-difficulty.difficulty.easy{background:#10b98126}[data-theme=dark] .roadmap-card-difficulty.difficulty.medium{background:#f59e0b26}[data-theme=dark] .roadmap-card-difficulty.difficulty.hard{background:#ef444426}[data-theme=dark] .roadmap-card-difficulty.difficulty.insane{background:#8b5cf626}[data-theme=dark] .roadmap-card-status--pending{background:#f59e0b26;color:#fbbf24}[data-theme=dark] .roadmap-card-status--completed{background:#10b98126;color:#34d399}@media (max-width: 768px){.roadmap-timeline{padding:var(--spacing-md) var(--spacing-sm) var(--spacing-md) var(--spacing-xs)}.roadmap-step{gap:var(--spacing-sm)}.roadmap-step-indicator{width:32px}.roadmap-step-circle{width:30px;height:30px;font-size:.75rem}.roadmap-card-thumb{width:48px;height:48px}.roadmap-card-title{font-size:.84rem}}@media (max-width: 480px){.roadmap-card-thumb{width:40px;height:40px}.roadmap-card-meta{gap:4px}}.card-footer .pagination,.card-footer .footer-info{flex-wrap:wrap}@media (max-width: 576px){.card-footer .pagination{justify-content:center;row-gap:var(--spacing-xs)}}@media (max-width: 380px){.card-footer .pagination .btn-sm{min-width:30px;padding:4px 8px}}.task-drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:9998;animation:taskDrawerFadeIn .2s ease}@keyframes taskDrawerFadeIn{0%{opacity:0}to{opacity:1}}.task-drawer{position:fixed;top:0;right:0;width:400px;max-width:100vw;height:100vh;background:var(--bg-primary);box-shadow:-4px 0 24px #00000026;z-index:9999;display:flex;flex-direction:column;transform:translate(100%)}.task-drawer.open{animation:taskDrawerSlideIn .3s ease forwards}@keyframes taskDrawerSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.task-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);background:var(--bg-card);flex-shrink:0}.task-drawer-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:1.125rem;font-weight:600;color:var(--text-primary)}.task-drawer-title-icon{color:var(--accent-primary)}.task-active-badge{background:var(--accent-primary);color:#fff;font-size:.75rem;font-weight:500;padding:2px 8px;border-radius:var(--radius-full)}.task-drawer-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.task-drawer-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.task-drawer-action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.task-drawer-action-btn:disabled{opacity:.5;cursor:not-allowed}.task-drawer-close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.task-drawer-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.task-drawer-toggle{padding:var(--spacing-sm) var(--spacing-lg);border-bottom:1px solid var(--border-primary);background:var(--bg-secondary)}.toggle-btn{display:flex;align-items:center;gap:var(--spacing-xs);background:none;border:none;color:var(--text-secondary);font-size:.8125rem;cursor:pointer;padding:var(--spacing-xs) 0;transition:color var(--transition-fast)}.toggle-btn:hover{color:var(--text-primary)}.toggle-btn.active{color:var(--accent-primary)}.toggle-btn svg{font-size:1.25rem}.task-drawer-body{flex:1;overflow-y:auto;padding:var(--spacing-md)}.task-section{margin-bottom:var(--spacing-lg)}.task-section-title{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.section-icon{color:var(--accent-primary)}.task-card{display:flex;align-items:flex-start;gap:var(--spacing-sm);background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-md);margin-bottom:var(--spacing-sm);transition:all var(--transition-fast)}.task-card:hover{border-color:var(--border-secondary)}.task-card.task-processing{border-left:3px solid var(--accent-primary)}.task-card.task-in_queue{border-left:3px solid var(--accent-warning)}.task-card.task-success{border-left:3px solid var(--accent-success)}.task-card.task-fail{border-left:3px solid var(--accent-danger)}.task-card-left{flex-shrink:0;padding-top:2px}.task-status-icon{font-size:1rem}.task-status-icon.status-queued{color:var(--accent-warning)}.task-status-icon.status-processing{color:var(--accent-primary)}.task-status-icon.status-success{color:var(--accent-success)}.task-status-icon.status-failed{color:var(--accent-danger)}.task-card-content{flex:1;min-width:0}.task-card-label{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:4px;word-break:break-word}.task-card-meta{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.task-status-badge{font-size:.6875rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-full)}.task-status-badge.status-in_queue{background:#f59e0b26;color:var(--accent-warning)}.task-status-badge.status-processing{background:#3b82f626;color:var(--accent-primary)}.task-status-badge.status-success{background:#10b9811a;color:var(--accent-success)}.task-status-badge.status-fail{background:#ef44441a;color:var(--accent-danger)}.task-card-time{font-size:.75rem;color:var(--text-muted)}.task-card-user{font-size:.75rem;color:var(--text-muted);margin-top:4px}.task-card-user-btn{background:none;border:none;padding:0;margin:0;font:inherit;color:var(--accent-primary);cursor:pointer;text-align:left}.task-card-user-btn:hover,.task-card-user-btn:focus-visible{text-decoration:underline;outline:none}.task-drawer-profile-overlay{z-index:10000}.task-drawer-loading-more{display:flex;align-items:center;justify-content:center;gap:8px;padding:var(--spacing-md);color:var(--text-muted);font-size:.8rem}.task-drawer-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);text-align:center}.task-drawer-empty .empty-icon{font-size:3rem;color:var(--text-muted);margin-bottom:var(--spacing-md);opacity:.5}.task-drawer-empty h4{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.task-drawer-empty p{font-size:.875rem;color:var(--text-muted);margin:0}.task-badge{position:absolute;top:-4px;right:-4px;background:var(--accent-primary);color:#fff;font-size:.625rem;font-weight:600;padding:2px 5px;border-radius:var(--radius-full);min-width:16px;text-align:center}.task-badge.pulsing{animation:pulse-badge 1.5s ease-in-out infinite}@media (max-width: 576px){.task-drawer{width:100%}.task-drawer-header{padding:var(--spacing-sm) var(--spacing-md)}.task-drawer-title{font-size:1rem}.task-drawer-body,.task-card{padding:var(--spacing-sm)}}.task-drawer-body::-webkit-scrollbar{width:6px}.task-drawer-body::-webkit-scrollbar-track{background:transparent}.task-drawer-body::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:3px}.task-drawer-body::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.dp-wrapper{position:relative;display:inline-flex;width:100%}.dp-wrapper.dp-disabled{opacity:.5;pointer-events:none}.dp-input{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:40px;padding:0 12px;background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.dp-input:hover{border-color:var(--border-secondary)}.dp-open .dp-input{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.dp-input-text{font-size:.8125rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dp-input-text.dp-placeholder{color:var(--text-muted)}.dp-input-icon{font-size:.8125rem;color:var(--text-muted);flex-shrink:0;transition:color .2s ease}.dp-open .dp-input-icon{color:var(--accent-primary)}.dp-dropdown{z-index:1060;width:272px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:0 8px 24px #0000001f;animation:dpFadeIn .15s ease;overflow:hidden}@keyframes dpFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.dp-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--border-primary)}.dp-month-year{font-size:.8125rem;font-weight:700;color:var(--text-primary)}.dp-nav-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;font-size:.75rem}.dp-nav-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.dp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:6px 6px 2px}.dp-weekday{text-align:center;font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;padding:3px 0}.dp-days{display:grid;grid-template-columns:repeat(7,1fr);padding:2px 6px 4px;gap:1px}.dp-day{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin:0 auto;border:none;border-radius:50%;background:transparent;color:var(--text-primary);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .12s ease}.dp-day:hover:not(.dp-day--disabled):not(.dp-day--other){background:var(--bg-tertiary)}.dp-day--other{color:var(--text-muted);opacity:.3;cursor:default}.dp-day--today:not(.dp-day--selected){border:1.5px solid var(--accent-primary);font-weight:700;color:var(--accent-primary)}.dp-day--selected{background:var(--accent-primary)!important;color:#fff!important;font-weight:700}.dp-day--disabled{color:var(--text-muted);opacity:.25;cursor:not-allowed}.dp-time{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-top:1px solid var(--border-primary);background:var(--bg-secondary)}.dp-time-label{display:flex;align-items:center;gap:5px;font-size:.75rem;font-weight:600;color:var(--text-secondary)}.dp-time-label svg{font-size:.6875rem;color:var(--text-muted)}.dp-time-inputs{display:flex;align-items:center;gap:2px}.dp-time-input{width:36px;height:28px;padding:0;background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.8125rem;font-weight:600;text-align:center;font-family:inherit;transition:border-color .15s ease;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.dp-time-input::-webkit-outer-spin-button,.dp-time-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.dp-time-input:focus{outline:none;border-color:var(--accent-primary)}.dp-time-sep{font-size:.875rem;font-weight:700;color:var(--text-muted);padding:0 1px}.dp-footer{display:flex;align-items:center;justify-content:space-between;padding:5px 10px 7px;border-top:1px solid var(--border-primary)}.dp-today-btn,.dp-done-btn{padding:4px 10px;border:none;border-radius:var(--radius-md);font-size:.72rem;font-weight:600;cursor:pointer;transition:all .15s ease}.dp-today-btn{background:transparent;color:var(--accent-primary)}.dp-today-btn:hover{background:var(--accent-primary-light)}.dp-done-btn{background:var(--accent-primary);color:#fff}.dp-done-btn:hover{opacity:.9}[data-theme=dark] .dp-dropdown{border-color:var(--border-secondary);box-shadow:0 8px 24px #00000073}[data-theme=dark] .dp-time-input{background:var(--bg-tertiary);border-color:var(--border-secondary)}@media (max-width: 480px){.dp-dropdown{width:256px}.dp-day{width:28px;height:28px;font-size:.75rem}}.mv-root{display:flex;flex-direction:column;height:100%;overflow:hidden;background:var(--bg-card)}.mv-header{padding:10px 16px;border-bottom:1px solid var(--border-primary);background:var(--bg-tertiary);flex-shrink:0}.mv-title{font-size:.8125rem;font-weight:600;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:8px}.mv-title-icon{color:var(--accent-primary)}.mv-body{display:flex;flex:1;min-height:0;overflow:hidden}.mv-manual-list{width:140px;flex-shrink:0;overflow-y:auto;background:var(--bg-sidebar);border-right:1px solid var(--sidebar-border)}.mv-topic-list{width:160px;flex-shrink:0;display:flex;flex-direction:column;background:var(--bg-sidebar);border-right:1px solid var(--sidebar-border);overflow:hidden}.mv-search-box{display:flex;align-items:center;padding:6px 8px;border-bottom:1px solid var(--sidebar-border);background:var(--bg-card);gap:6px;flex-shrink:0}.mv-search-icon{font-size:.6875rem;color:var(--text-muted);flex-shrink:0}.mv-search-input{flex:1;border:none;outline:none;background:transparent;font-size:.75rem;color:var(--text-primary);padding:2px 0;min-width:0}.mv-search-input::placeholder{color:var(--text-muted)}.mv-search-clear{border:none;background:none;color:var(--text-muted);cursor:pointer;padding:0 2px;font-size:.625rem;line-height:1;flex-shrink:0}.mv-search-clear:hover{color:var(--text-primary)}.mv-topic-scroll{flex:1;overflow-y:auto}.mv-no-results{padding:12px;text-align:center;font-size:.75rem;color:var(--text-muted)}.mv-topic-item{display:block;padding:10px 12px;font-size:.8125rem;color:var(--sidebar-text);border-bottom:1px solid var(--sidebar-border);cursor:pointer;transition:all var(--transition-fast);border-left:3px solid transparent;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mv-topic-item:hover{background:var(--sidebar-hover-bg);color:var(--sidebar-hover-text);border-left-color:var(--sidebar-active-border)}.mv-topic-item.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);border-left-color:var(--sidebar-active-border);font-weight:600}.mv-content-area{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.mv-content-breadcrumb{padding:8px 14px;border-bottom:1px solid var(--border-primary);background:var(--bg-tertiary);flex-shrink:0}.mv-content-breadcrumb h6{margin:0;font-size:.8125rem;font-weight:600;color:var(--text-primary)}.mv-content-breadcrumb small{font-size:.6875rem;color:var(--text-muted)}.mv-content-scroll{flex:1;overflow-y:auto;padding:14px}.mv-content-html{font-size:.875rem;line-height:1.7;color:var(--text-primary)}.mv-content-html h4{font-size:1.0625rem;font-weight:600;margin-bottom:12px;color:var(--text-primary)}.mv-content-html h5{font-size:.9375rem;font-weight:600;margin-top:16px;margin-bottom:8px;color:var(--text-primary)}.mv-content-html p{margin-bottom:12px}.mv-content-html ul,.mv-content-html ol{padding-left:24px;margin-bottom:12px}.mv-content-html li{margin-bottom:4px}.mv-content-html pre{background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);padding:10px 14px;overflow-x:auto;margin:12px 0}.mv-content-html code{font-family:Courier New,Courier,monospace;font-size:.8125rem;background:var(--bg-tertiary);padding:1px 4px;border-radius:3px}.mv-content-html pre code{background:none;padding:0}.mv-content-html table{width:100%;border-collapse:collapse;margin:12px 0}.mv-content-html th,.mv-content-html td{padding:8px;border:1px solid var(--border-primary);font-size:.8125rem}.mv-content-html th{background:var(--bg-tertiary);font-weight:600}.mv-content-html img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.mv-content-nav{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-top:1px solid var(--border-primary);background:var(--bg-secondary);flex-shrink:0}.mv-topic-counter{font-size:.75rem;color:var(--text-muted)}[data-theme=dark] .mv-content-html pre{background:var(--bg-tertiary);border-color:var(--border-secondary)}[data-theme=dark] .mv-content-breadcrumb,[data-theme=dark] .mv-header,[data-theme=dark] .mv-content-nav{background:var(--bg-tertiary)}@media (max-width: 768px){.mv-body{flex-direction:column}.mv-topic-list{width:100%;max-height:160px;border-right:none;border-bottom:1px solid var(--sidebar-border)}.mv-topic-scroll{display:flex;overflow-x:auto;overflow-y:hidden}.mv-topic-item{display:inline-block;border-bottom:none;border-right:1px solid var(--sidebar-border);white-space:nowrap}.mv-manual-list{width:100%;max-height:80px;border-right:none;border-bottom:1px solid var(--sidebar-border);display:flex;overflow-x:auto}.mv-manual-list .mv-topic-item{border-bottom:none;border-right:1px solid var(--sidebar-border)}}.basket-drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:9998;animation:basketFadeIn .2s ease}@keyframes basketFadeIn{0%{opacity:0}to{opacity:1}}.basket-drawer{position:fixed;top:0;right:0;width:380px;max-width:100vw;height:100vh;background:var(--bg-primary);box-shadow:-4px 0 24px #00000026;z-index:9999;display:flex;flex-direction:column;transform:translate(100%);animation:basketSlideIn .3s ease forwards}@keyframes basketSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.basket-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.basket-card{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-md);transition:all var(--transition-fast)}.basket-card:hover{background:var(--bg-hover);border-color:var(--border-secondary)}.basket-card-content{flex:1;min-width:0}.basket-card-name{font-size:.875rem;font-weight:500;color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.basket-remove-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);font-size:1rem;flex-shrink:0}.basket-remove-btn:hover{color:var(--accent-danger);background:#ef44441a}.basket-drawer-footer{flex-shrink:0;padding:12px 16px;border-top:1px solid var(--border-primary);background:var(--bg-card);box-shadow:0 -2px 8px #0000000f}.basket-drawer-actions{display:flex;gap:8px}.basket-drawer-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;font-size:.8125rem;font-weight:600;border-radius:var(--radius-md, 8px);white-space:nowrap}@media (max-width: 576px){.basket-drawer{width:100%}.basket-drawer-actions{flex-direction:column}}.basket-drawer .drawer-body::-webkit-scrollbar{width:6px}.basket-drawer .drawer-body::-webkit-scrollbar-track{background:transparent}.basket-drawer .drawer-body::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:3px}.basket-drawer .drawer-body::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.task-status-panel{width:260px;flex-shrink:0;border-left:1px solid var(--border-color);background:var(--bg-secondary);display:flex;flex-direction:column;overflow:hidden}.task-status-panel-header{display:flex;align-items:center;gap:6px;padding:10px 12px;font-size:12px;font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--border-color);flex-shrink:0}.task-status-panel-header svg{color:var(--accent-primary);font-size:11px}.task-status-panel-count{background:var(--accent-primary);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px;min-width:18px;text-align:center}.task-status-panel-list{flex:1;overflow-y:auto;padding:6px}.task-status-panel-empty{padding:16px 12px;font-size:11px;color:var(--text-muted);text-align:center}.task-status-panel-item{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:6px;margin-bottom:4px;background:var(--bg-primary);border:1px solid var(--border-color);transition:opacity .3s}.task-status-panel-item.queued .task-status-panel-icon{color:#6b7280}.task-status-panel-item.processing .task-status-panel-icon{color:#3b82f6}.task-status-panel-item.success .task-status-panel-icon{color:#22c55e}.task-status-panel-item.failed .task-status-panel-icon{color:#ef4444}.task-status-panel-item.success,.task-status-panel-item.failed{opacity:.65}.task-status-panel-icon{font-size:12px;margin-top:2px;flex-shrink:0}.task-status-panel-info{display:flex;flex-direction:column;gap:2px;min-width:0}.task-status-panel-label{font-size:11px;font-weight:500;color:var(--text-primary);line-height:1.3;word-break:break-word}.task-status-panel-time{font-size:10px;color:var(--text-muted)}@media (max-width: 768px){.task-status-panel{width:200px}}.my-profile-modal .myp-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-md)}.my-profile-modal .myp-loading-icon{font-size:1.5rem;color:var(--accent-primary)}.my-profile-modal .myp-loading p{color:var(--text-muted);font-size:.8125rem;margin:0}.my-profile-modal .myp-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-md);text-align:center}.my-profile-modal .myp-error p{color:var(--accent-danger);font-size:.8125rem;margin:0}.my-profile-modal .myp-card{display:flex;flex-direction:column}.my-profile-modal .myp-accent{height:3px;background:linear-gradient(90deg,var(--accent-primary),var(--brand-cyan, var(--accent-primary)));border-radius:2px 2px 0 0}.my-profile-modal .myp-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.my-profile-modal .myp-avatar{width:56px;height:56px;border-radius:50%;background:var(--accent-primary);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-size:1.375rem;font-weight:700;flex-shrink:0;overflow:hidden}.my-profile-modal .myp-avatar img{width:100%;height:100%;object-fit:cover}.my-profile-modal .myp-identity{flex:1;min-width:0}.my-profile-modal .myp-name-row{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;margin-bottom:2px}.my-profile-modal .myp-name{font-size:1.125rem;font-weight:700;color:var(--text-primary);margin:0;line-height:1.3}.my-profile-modal .myp-badges{display:flex;align-items:center;gap:var(--spacing-xs)}.my-profile-modal .myp-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:500}.my-profile-modal .myp-badge-admin{background:var(--accent-danger-light);color:var(--accent-danger)}.my-profile-modal .myp-badge-instructor{background:var(--accent-primary-light);color:var(--accent-primary)}.my-profile-modal .myp-badge-candidate{background:var(--accent-success-light);color:var(--accent-success)}.my-profile-modal .myp-badge-corporate{background:var(--accent-warning-light);color:var(--accent-warning)}.my-profile-modal .myp-badge-user{background:var(--accent-info-light);color:var(--accent-info)}.my-profile-modal .myp-badge-status{display:inline-flex;align-items:center;gap:4px}.my-profile-modal .myp-badge-status .myp-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.my-profile-modal .myp-badge-status.active{background:var(--accent-success-light);color:var(--accent-success)}.my-profile-modal .myp-badge-status.active .myp-status-dot{background:var(--accent-success)}.my-profile-modal .myp-badge-status.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.my-profile-modal .myp-badge-status.inactive .myp-status-dot{background:var(--accent-danger)}.my-profile-modal .myp-meta{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;margin-top:4px}.my-profile-modal .myp-meta-item{display:inline-flex;align-items:center;gap:5px;font-size:.8125rem;color:var(--text-secondary)}.my-profile-modal .myp-meta-item svg{color:var(--text-muted);font-size:.6875rem;width:.6875rem;flex-shrink:0}.my-profile-modal .myp-body{display:grid;grid-template-columns:1fr 1fr}.my-profile-modal .myp-column{padding:var(--spacing-md)}.my-profile-modal .myp-body>.myp-column:first-child{border-right:1px solid var(--border-primary)}.my-profile-modal .myp-section-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.8125rem;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.03em;margin:0 0 var(--spacing-sm) 0;padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--border-primary)}.my-profile-modal .myp-section-title svg{color:var(--accent-primary);font-size:1rem;width:1rem;height:1rem;flex-shrink:0}.my-profile-modal .myp-field{display:flex;align-items:baseline;padding:5px 0}.my-profile-modal .myp-field-label{width:120px;flex-shrink:0;font-size:.8125rem;color:var(--text-muted);font-weight:500}.my-profile-modal .myp-field-value{flex:1;font-size:.8125rem;color:var(--text-primary);word-break:break-word}.my-profile-modal .myp-edit-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-full);color:var(--text-secondary);font-size:.8125rem;cursor:pointer;transition:all .15s ease;flex-shrink:0;align-self:flex-start;margin-left:auto}.my-profile-modal .myp-edit-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;transform:scale(1.1)}@media (max-width: 576px){.my-profile-modal .myp-body{grid-template-columns:1fr}.my-profile-modal .myp-body>.myp-column:first-child{border-right:none;border-bottom:1px solid var(--border-primary);padding-bottom:var(--spacing-md)}.my-profile-modal .myp-avatar{width:44px;height:44px;font-size:1.125rem}.my-profile-modal .myp-name{font-size:1rem}.my-profile-modal .myp-name-row{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.my-profile-modal .myp-field{flex-direction:column;gap:1px}.my-profile-modal .myp-field-label{width:auto}}.header-logo{display:flex;align-items:center;gap:var(--spacing-sm);text-decoration:none;flex-shrink:0}.header-logo:hover{text-decoration:none}.header-logo-img{height:44px;width:auto!important;max-width:none!important;object-fit:contain;flex-shrink:0;display:block}.header-left{display:flex;align-items:center;gap:var(--spacing-md);flex:1;min-width:0}.header-title-wrapper{display:flex;flex-direction:column;gap:2px;min-width:0}.header-title{font-size:1.125rem;font-weight:600;color:var(--header-text);margin:0;line-height:1.2;display:flex;align-items:center;gap:var(--spacing-xs)}.header-title-icon{color:var(--accent-primary);font-size:1rem;width:1rem;height:1rem;flex-shrink:0}.header-subtitle{font-size:.8125rem;color:var(--header-text-muted);margin:0;line-height:1.3}.header-action-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#ffffff14;border:1px solid var(--header-border);border-radius:var(--radius-md);color:var(--header-text-muted);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;position:relative}.header-action-btn:hover{background:#ffffff26;border-color:#ffffff40;color:var(--header-text)}.header-action-btn:active{transform:scale(.95)}.mobile-menu-btn{display:none}.sidebar-toggle-btn{display:flex}@media (max-width: 1024px){.header-left{gap:8px;min-width:120px;flex-shrink:1}.mobile-menu-btn{display:flex!important;flex-shrink:0}.sidebar-toggle-btn{display:none!important}.header-logo-img{max-height:40px}.header-title-wrapper{min-width:0;flex:1;overflow:hidden}.header-title{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-subtitle{display:none}.header-right{gap:4px;flex-shrink:1}.header-stat{display:none}.header-action-btn{width:32px;height:32px;font-size:.875rem;flex-shrink:0}.notification-dropdown,.user-dropdown{min-width:220px;max-width:calc(100vw - 30px)}.user-menu-wrapper .user-dropdown{right:0;left:auto;transform:none}}@media (max-width: 576px){.main-header{padding:8px 10px;gap:6px}.header-left{gap:6px;min-width:0;flex:0 1 auto}.header-logo{display:none}.header-right{flex-shrink:0;flex-wrap:nowrap}.header-title{font-size:.875rem}.header-right{gap:2px}.header-action-btn{width:30px;height:30px;font-size:.8125rem}.user-menu-avatar,.user-menu-avatar-placeholder{width:28px;height:28px;font-size:.75rem}.notification-dropdown,.user-dropdown{position:fixed;top:44px;right:8px;left:auto;min-width:200px;max-width:calc(100vw - 16px);transform:none}}@media (max-width: 400px){.main-header{padding:6px 8px;gap:4px}.header-left{gap:4px;min-width:0;flex:0 1 auto}.header-title-wrapper{max-width:none}.header-title{font-size:.75rem}.header-action-btn{width:28px;height:28px;font-size:.75rem}.user-menu-avatar,.user-menu-avatar-placeholder{width:26px;height:26px;font-size:.625rem}.notification-dropdown,.user-dropdown{top:40px}}.me-1{margin-right:4px}.notification-wrapper,.user-menu-wrapper{position:relative;z-index:1000}.user-menu-wrapper .user-dropdown{right:auto;left:0;transform:translate(calc(-100% + 40px));animation:userDropdownFadeIn .2s ease}@keyframes userDropdownFadeIn{0%{opacity:0;margin-top:-10px}to{opacity:1;margin-top:0}}.notification-badge,.task-badge{position:absolute;top:-4px;right:-4px;color:#fff;font-size:.625rem;font-weight:600;padding:2px 5px;border-radius:var(--radius-full);min-width:16px;text-align:center}.notification-badge{background:var(--accent-danger)}.task-badge{background:var(--accent-primary)}.chat-unread-badge{animation:chat-badge-pop .35s ease-out}@keyframes chat-badge-pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.15);opacity:1}to{transform:scale(1);opacity:1}}.notification-badge.pulsing,.task-badge.pulsing{animation:pulse-badge 1.5s ease-in-out infinite}@keyframes pulse-badge{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.notification-dropdown,.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:220px;max-width:calc(100vw - 20px);z-index:1000;animation:slideIn .2s ease}.notification-header,.user-dropdown-header{padding:var(--spacing-md);border-bottom:1px solid var(--border-primary);display:flex;align-items:center;justify-content:space-between}.notification-header span:first-child{font-weight:600;color:var(--text-primary)}.notification-body,.user-dropdown-body{max-height:300px;overflow-y:auto}.notification-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--border-primary);transition:background var(--transition-fast)}.notification-item:hover{background:var(--bg-hover)}.notification-item:last-child{border-bottom:none}.notification-content{display:flex;flex-direction:column;gap:2px}.notification-title{font-size:.875rem;color:var(--text-primary)}.notification-time{font-size:.75rem;color:var(--text-muted)}.user-dropdown{min-width:220px}.user-dropdown-header{display:flex;align-items:center;gap:var(--spacing-md)}.user-dropdown-header .user-avatar{width:40px;height:40px;background:var(--bg-tertiary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.user-dropdown-header .user-details{display:flex;flex-direction:column}.user-dropdown-header .user-name{font-size:.875rem;font-weight:600;color:var(--text-primary)}.user-dropdown-header .user-role{font-size:.75rem;color:var(--text-muted)}.dropdown-item{display:flex;align-items:center;gap:var(--spacing-md);width:100%;padding:var(--spacing-md);background:none;border:none;font-size:.875rem;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.dropdown-item:hover{background:var(--bg-hover);color:var(--text-primary)}.dropdown-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999}.notification-body .empty-state{padding:var(--spacing-xl);text-align:center}.notification-body .empty-state-icon{font-size:2rem;color:var(--text-muted);margin-bottom:var(--spacing-sm)}.notification-body .empty-state p{color:var(--text-muted);font-size:.875rem}.theme-toggle .theme-icon-light,.theme-toggle .theme-icon-dark{display:inline}.user-menu-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:2px;border-radius:50%;transition:all var(--transition-fast)}.user-menu-btn:hover{background:var(--bg-hover)}.user-menu-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid var(--header-border)}.user-menu-avatar-placeholder{width:32px;height:32px;border-radius:50%;background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;border:2px solid var(--header-border)}.user-dropdown-header .user-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--border-primary)}.user-dropdown-header .user-avatar-placeholder{background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:9999}.loading-spinner{width:48px;height:48px;border:4px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.sidebar-overlay{position:fixed;top:52px;left:0;right:0;bottom:0;background:var(--bg-overlay);z-index:99}@media (max-width: 1024px){.sidebar{position:fixed;top:52px;left:0;bottom:0;z-index:100;transform:translate(-100%);transition:transform .3s ease;width:var(--sidebar-width)!important;height:calc(100vh - 52px);max-height:calc(100vh - 52px);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}.sidebar.open{transform:translate(0)}.sidebar .sidebar-nav{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.sidebar-toggle-btn{display:none!important}.page-content{padding:12px}}@media (max-width: 576px){.sidebar{top:44px;height:calc(100vh - 44px);max-height:calc(100vh - 44px)}.sidebar-overlay{top:44px}.page-content{padding:8px}}@media (max-width: 400px){.sidebar{top:40px;height:calc(100vh - 40px);max-height:calc(100vh - 40px)}.sidebar-overlay{top:40px}.page-content{padding:6px}}.captcha-field .captcha-control{display:flex;align-items:stretch;margin-bottom:var(--spacing-sm)}.captcha-field .captcha-plate{position:relative;display:flex;align-items:center;justify-content:center;flex:1;min-width:0;height:56px;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md) 0 0 var(--radius-md);overflow:hidden;transition:border-color var(--transition-fast)}.captcha-field .captcha-plate:hover{border-color:var(--border-secondary)}.captcha-field .captcha-image{height:100%;width:auto;max-width:100%;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;image-rendering:pixelated;filter:grayscale(1) brightness(1.3) contrast(6);mix-blend-mode:multiply}.captcha-field .captcha-image--loading{display:flex;align-items:center;justify-content:center;width:100%;font-size:20px;letter-spacing:2px;color:var(--text-muted);filter:none;mix-blend-mode:normal}[data-theme=dark] .captcha-field .captcha-image{filter:grayscale(1) brightness(1.3) contrast(6) invert(1);mix-blend-mode:screen}[data-theme=dark] .captcha-field .captcha-image--loading{filter:none;mix-blend-mode:normal}.captcha-field .captcha-refresh{flex-shrink:0;width:46px;margin-left:-1px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);border-radius:0 var(--radius-md) var(--radius-md) 0;background:var(--bg-input);color:var(--accent-primary);cursor:pointer;transition:all var(--transition-fast)}.captcha-field .captcha-refresh:hover:not(:disabled){background:var(--accent-primary-light);border-color:var(--accent-primary);color:var(--accent-hover)}.captcha-field .captcha-refresh:active:not(:disabled){transform:scale(.95)}.captcha-field .captcha-refresh:focus-visible{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light);z-index:1}.captcha-field .captcha-refresh:disabled{opacity:.6;cursor:not-allowed}.captcha-field.form-group .input-wrapper .form-control{padding-right:14px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);padding:var(--spacing-lg)}.login-container{display:grid;grid-template-columns:1fr 1fr;max-width:1000px;width:100%;background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden}.login-branding{background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-secondary) 100%);padding:var(--spacing-2xl);display:flex;align-items:center;justify-content:center;color:#fff}.branding-content{text-align:center}.login-brand-logo{width:auto;height:80px;object-fit:contain;margin:0 auto var(--spacing-lg);display:block}.login-branding h1{font-size:2rem;font-weight:700;margin-bottom:var(--spacing-sm);color:#fff}.login-branding p{font-size:1rem;opacity:.9;margin-bottom:var(--spacing-xl)}.features-list{text-align:left;display:inline-block}.feature-item{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);font-size:.9375rem}.feature-item i{color:#fff}.login-form-container{padding:var(--spacing-2xl);display:flex;flex-direction:column;justify-content:center;position:relative}.login-header{margin-bottom:var(--spacing-xl)}.login-header h2{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.login-header p{color:var(--text-muted);font-size:.875rem}.login-form .form-group{margin-bottom:var(--spacing-lg)}.login-form .input-wrapper{position:relative}.login-form .input-wrapper .form-control{padding-right:44px}.login-form .password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;padding:4px 8px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast)}.login-form .password-toggle:hover{color:var(--text-primary)}.login-form .form-control.error{border-color:var(--accent-danger)}.form-options{display:flex;justify-content:flex-end;margin-bottom:var(--spacing-lg)}.forgot-link{font-size:.875rem;color:var(--accent-primary)}.forgot-link:hover{text-decoration:underline}.mt-3{margin-top:var(--spacing-md)}.login-footer{text-align:center;margin-top:var(--spacing-xl);color:var(--text-muted);font-size:.875rem}.login-footer a{color:var(--accent-primary);font-weight:500}.login-footer a:hover{text-decoration:underline}.theme-toggle-float{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);width:40px;height:40px;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast)}.theme-toggle-float:hover{background:var(--bg-hover);color:var(--text-primary)}@media (max-width: 768px){.login-container{grid-template-columns:1fr}.login-branding{padding:var(--spacing-xl)}.login-branding h1{font-size:1.5rem}.features-list{display:none}.login-form-container{padding:var(--spacing-xl)}}.login-page .hp-field{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.forgot-password-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);padding:var(--spacing-lg)}.forgot-password-container{max-width:420px;width:100%}.forgot-password-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-xl);padding:var(--spacing-2xl);text-align:center}.forgot-password-card h2{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.forgot-password-card>p{color:var(--text-muted);font-size:.875rem;margin-bottom:var(--spacing-xl)}.forgot-password-card form{text-align:left}.forgot-password-card .form-group{margin-bottom:var(--spacing-lg)}.forgot-password-card .form-control.error{border-color:var(--accent-danger)}.success-message{padding:var(--spacing-lg) 0}.success-icon{width:64px;height:64px;background:var(--accent-success-light);color:var(--accent-success);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto var(--spacing-lg)}.success-message h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.success-message p{color:var(--text-muted);font-size:.875rem;margin-bottom:var(--spacing-xl)}.reset-password-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);padding:var(--spacing-lg)}.reset-password-container{max-width:420px;width:100%}.reset-password-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-xl);padding:var(--spacing-2xl);text-align:center}.auth-brand-logo{width:auto;height:64px;object-fit:contain;margin:0 auto var(--spacing-lg);display:block}.reset-password-card h2{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.reset-password-card>p{color:var(--text-muted);font-size:.875rem;margin-bottom:var(--spacing-xl)}.reset-password-card form{text-align:left}.reset-password-card .form-group{margin-bottom:var(--spacing-lg)}.reset-password-card .form-control.error{border-color:var(--accent-danger)}.error-message{display:block;color:var(--accent-danger);font-size:.75rem;margin-top:var(--spacing-xs)}.back-to-login{text-align:center;margin-top:var(--spacing-lg)}.back-to-login a{display:inline-flex;align-items:center;gap:var(--spacing-sm);color:var(--text-muted);font-size:.875rem}.back-to-login a:hover{color:var(--accent-primary)}.loading-state{padding:var(--spacing-xl) 0}.error-state{padding:var(--spacing-lg) 0}.error-icon{width:64px;height:64px;background:var(--accent-danger-light);color:var(--accent-danger);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto var(--spacing-lg)}.error-state h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.error-state p{color:var(--text-muted);font-size:.875rem;margin-bottom:var(--spacing-xl)}.reset-password-page .field-hint{display:block;margin-top:6px;font-size:12px;line-height:1.4;color:var(--text-muted, #6b7280)}.registration-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);padding:var(--spacing-lg)}.registration-container{display:grid;grid-template-columns:1fr 1fr;max-width:1000px;width:100%;background:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden}.registration-branding{background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-secondary) 100%);padding:var(--spacing-2xl);display:flex;align-items:center;justify-content:center;color:#fff}.registration-branding .branding-content{text-align:center}.registration-brand-logo{width:auto;height:80px;object-fit:contain;margin:0 auto var(--spacing-lg);display:block}.registration-branding h1{font-size:2rem;font-weight:700;margin-bottom:var(--spacing-sm);color:#fff}.registration-branding p{font-size:1rem;opacity:.9;margin-bottom:var(--spacing-xl)}.registration-branding .features-list{text-align:left;display:inline-block}.registration-branding .feature-item{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);font-size:.9375rem}.registration-branding .feature-item .feature-icon{color:#fff;width:auto;height:auto;background:none;border-radius:0;font-size:inherit}.registration-form-container{padding:var(--spacing-2xl);display:flex;flex-direction:column;justify-content:center;position:relative}.registration-header{margin-bottom:var(--spacing-xl)}.registration-header h2{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.registration-subtitle{color:var(--text-muted);font-size:.875rem}.registration-form .form-group{margin-bottom:var(--spacing-lg)}.registration-form .input-wrapper{position:relative}.registration-form .input-wrapper .input-icon{position:absolute;left:var(--spacing-md);top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.registration-form .input-wrapper .form-control{padding-left:40px}.registration-form .form-control.error{border-color:var(--accent-danger)}.registration-form .error-message{display:block;color:var(--accent-danger);font-size:.75rem;margin-top:var(--spacing-xs)}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.registration-footer{text-align:center;margin-top:var(--spacing-xl);color:var(--text-muted);font-size:.875rem}.registration-footer a{color:var(--accent-primary);font-weight:500}.registration-footer a:hover{text-decoration:underline}.registration-form-container .theme-toggle-float{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);width:40px;height:40px;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast)}.registration-form-container .theme-toggle-float:hover{background:var(--bg-hover);color:var(--text-primary)}.success-card{text-align:center}.success-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);display:flex;align-items:center;justify-content:center;background:#10b9811a;border-radius:50%;color:var(--accent-success);font-size:2.5rem}.success-card h2{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-md)}.success-message{color:var(--text-secondary);font-size:.9375rem;line-height:1.6;margin-bottom:var(--spacing-xl)}@media (max-width: 768px){.registration-container{grid-template-columns:1fr}.registration-branding{padding:var(--spacing-xl)}.registration-branding h1{font-size:1.5rem}.registration-branding .features-list{display:none}.registration-form-container{padding:var(--spacing-xl)}}.dashboard-page{padding:var(--spacing-md);animation:dashFadeIn .3s ease;max-width:1600px;margin:0 auto;display:flex;flex-direction:column;gap:16px}@keyframes dashFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dashboard-header{padding:12px 16px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg)}.dashboard-header .header-content{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md)}.greeting-section{flex:1}.greeting-title{font-size:1.125rem;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.015em}.greeting-subtitle{font-size:.75rem;color:var(--text-muted);margin:0}.dashboard-header .header-actions{display:flex;align-items:center;gap:var(--spacing-md)}.refresh-control{display:flex;align-items:center;gap:6px}.refresh-icon{font-size:.8125rem;color:var(--text-muted)}.refresh-control .refresh-dropdown{width:72px}.refresh-control .refresh-dropdown .select-control{min-height:30px;height:30px;padding:0 8px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.refresh-control .refresh-dropdown .dropdown-indicator{font-size:.625rem}.refresh-control .refresh-dropdown .select-dropdown{min-width:72px}.refresh-control .refresh-dropdown .option-item{padding:5px 10px;font-size:.75rem}.system-status-indicator{display:flex;align-items:center;gap:6px;padding:5px 12px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-full);font-size:.75rem;font-weight:500;color:var(--text-secondary)}.status-dot{font-size:10px}.status-dot.online{color:#10b981;animation:pulse 2s infinite}.stats-grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.dashboard-page .stat-card{display:flex;flex-direction:column;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:14px;text-decoration:none;transition:all .25s ease;cursor:pointer}.stat-card-inner{display:flex;align-items:center;gap:12px;height:100%;flex-wrap:wrap}.stat-icon-wrapper{width:42px;height:42px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.125rem;flex-shrink:0}.stat-icon-wrapper.primary{background:linear-gradient(135deg,#0891b226,#0891b214);color:var(--accent-primary)}.stat-icon-wrapper.success{background:linear-gradient(135deg,#10b98126,#10b98114);color:#10b981}.stat-icon-wrapper.warning{background:linear-gradient(135deg,#f59e0b26,#f59e0b14);color:#f59e0b}.stat-icon-wrapper.danger{background:linear-gradient(135deg,#ef444426,#ef444414);color:#ef4444}.stat-icon-wrapper.info{background:linear-gradient(135deg,#3b82f626,#3b82f614);color:#3b82f6}.stat-details{flex:1;min-width:0}.dashboard-page .stat-value{display:block;font-size:1.375rem;font-weight:800;color:var(--text-primary);line-height:1.1}.dashboard-page .stat-label{display:block;font-size:.75rem;color:var(--text-muted);margin-top:2px;font-weight:500}.stat-breakdown{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.breakdown-item{font-size:.6875rem;font-weight:600;color:var(--text-muted);display:flex;align-items:center;gap:4px;white-space:nowrap}.breakdown-item svg{font-size:.625rem}.breakdown-pub{color:#10b981}.breakdown-prv{color:#8b5cf6}.mid-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.resource-bars-grid{display:flex;flex-direction:column;gap:14px}.resource-bar-item{display:flex;flex-direction:column;gap:6px}.resource-bar-header{display:flex;justify-content:space-between;align-items:center}.resource-bar-label{display:flex;align-items:center;gap:8px;font-size:.8125rem;font-weight:600;color:var(--text-secondary)}.resource-bar-label svg{font-size:.9375rem;color:var(--text-muted);width:16px;text-align:center}.resource-bar-value{font-size:.8125rem;font-weight:700;color:var(--text-primary)}.dashboard-page .resource-bar{height:8px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.dashboard-page .resource-fill{height:100%;border-radius:var(--radius-full);transition:width .6s ease}.dashboard-page .resource-fill.success{background:linear-gradient(90deg,#10b981,#34d399)}.dashboard-page .resource-fill.warning{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.dashboard-page .resource-fill.danger{background:linear-gradient(90deg,#ef4444,#f87171)}.resource-bar-detail{font-size:.75rem;color:var(--text-muted)}.dashboard-page .status-badge{display:inline-flex;align-items:center;padding:5px 12px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.dashboard-page .status-badge.success{background:#10b9811f;color:#059669}.dashboard-page .status-badge.warning{background:#f59e0b1f;color:#d97706}.dashboard-page .status-badge.danger{background:#ef44441f;color:#dc2626}.dashboard-page .dashboard-card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden}.dashboard-page .card-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border-primary);background:var(--bg-secondary)}.dashboard-page .card-title-group{display:flex;align-items:center;gap:10px}.dashboard-page .card-title-group .card-icon{font-size:.875rem;color:var(--accent-primary);width:16px;text-align:center}.dashboard-page .card-title{font-size:.8125rem;font-weight:600;color:var(--text-primary);margin:0}.dashboard-page .card-body{padding:14px}.charts-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.chart-body{display:flex;flex-direction:row;align-items:center;gap:16px}.donut-chart{width:120px;height:120px;border-radius:50%;position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0}.donut-hole{width:68px;height:68px;border-radius:50%;background:var(--bg-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute}.donut-total{font-size:1.125rem;font-weight:800;color:var(--text-primary);line-height:1}.donut-label{font-size:.5625rem;color:var(--text-muted);margin-top:1px;text-transform:uppercase;font-weight:600;letter-spacing:.05em}.chart-legend{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.legend-item{display:flex;align-items:center;gap:8px;padding:3px 6px;border-radius:var(--radius-sm);transition:background .15s ease}.legend-item:hover{background:var(--bg-secondary)}.legend-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.legend-text{flex:1;font-size:.75rem;color:var(--text-secondary);font-weight:500}.legend-value{font-size:.75rem;font-weight:700;color:var(--text-primary)}.quick-actions-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.performers-card .card-body{padding:12px 16px 16px}.performers-widget{display:flex;flex-direction:column;gap:16px}.podium{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;align-items:end}.podium-slot{display:flex;flex-direction:column;align-items:center;text-align:center;padding:12px 6px 14px;border-radius:var(--radius-lg, 12px);background:var(--bg-secondary);position:relative;transition:transform .2s ease,box-shadow .2s ease}.podium-slot:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.podium-slot.empty{visibility:hidden}.podium-slot.podium-1{background:linear-gradient(180deg,rgba(251,191,36,.08) 0%,var(--bg-secondary) 100%);border:1px solid rgba(251,191,36,.2);padding-top:18px;padding-bottom:18px}.podium-slot.podium-2{background:linear-gradient(180deg,rgba(148,163,184,.08) 0%,var(--bg-secondary) 100%);border:1px solid rgba(148,163,184,.15)}.podium-slot.podium-3{background:linear-gradient(180deg,rgba(217,119,6,.08) 0%,var(--bg-secondary) 100%);border:1px solid rgba(217,119,6,.15)}.podium-badge-wrap{position:relative;margin-bottom:8px}.podium-crown{position:absolute;top:-14px;left:50%;transform:translate(-50%);font-size:.875rem;color:#fbbf24;filter:drop-shadow(0 1px 2px rgba(251,191,36,.4));z-index:1}.podium-avatar{width:48px;height:48px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:#fff;font-size:.9375rem;font-weight:700;letter-spacing:.02em;transition:transform .2s ease}.podium-1 .podium-avatar{width:56px;height:56px;font-size:1.0625rem}.podium-avatar.team{font-size:1rem}.podium-rank-badge{position:absolute;bottom:-4px;right:-4px;width:20px;height:20px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:800;color:#fff;border:2px solid var(--bg-secondary)}.podium-rank-badge.rank-1{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.podium-rank-badge.rank-2{background:linear-gradient(135deg,#94a3b8,#64748b)}.podium-rank-badge.rank-3{background:linear-gradient(135deg,#d97706,#b45309)}.podium-name{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.3}.podium-team{font-size:.6875rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin-top:1px}.podium-score{font-size:.875rem;font-weight:700;color:var(--accent-primary);margin-top:6px;line-height:1}.podium-1 .podium-score{font-size:1rem}.podium-stats{display:flex;align-items:center;gap:10px;margin-top:6px}.podium-stat{font-size:.6875rem;color:var(--text-muted);display:flex;align-items:center;gap:3px}.podium-stat svg{font-size:.625rem;opacity:.7}.runners-list{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--border-primary);padding-top:12px}.runner-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md, 8px);transition:background .15s ease}.runner-item:hover{background:var(--bg-secondary)}.runner-rank{width:22px;height:22px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:700;flex-shrink:0;background:var(--bg-tertiary);color:var(--text-muted)}.runner-avatar{width:30px;height:30px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:#fff;font-size:.6875rem;font-weight:700;flex-shrink:0;letter-spacing:.02em}.runner-avatar.team{font-size:.8125rem}.runner-info{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.runner-name{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.runner-meta{font-size:.6875rem;color:var(--text-muted)}.runner-stats-inline{display:flex;align-items:center;gap:10px;font-size:.6875rem;color:var(--text-muted);flex-shrink:0}.runner-stats-inline span{display:flex;align-items:center;gap:3px}.runner-stats-inline svg{font-size:.625rem;opacity:.7}.runner-score{font-size:.8125rem;font-weight:700;color:var(--accent-primary);min-width:40px;text-align:right;flex-shrink:0}.empty-chart-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;color:var(--text-muted);gap:8px}.empty-chart-state svg{font-size:1.5rem;opacity:.4}.empty-chart-state p{font-size:.875rem;margin:0}.dashboard-page .quick-action-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-secondary);border:1px solid transparent;border-radius:var(--radius-md);text-decoration:none;transition:all .2s ease}.dashboard-page .quick-action-item:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);box-shadow:0 2px 8px #0891b214}.dashboard-page .quick-action-item:hover .action-arrow{color:var(--accent-primary);transform:translate(4px)}.dashboard-page .action-icon{width:34px;height:34px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:.875rem;flex-shrink:0}.dashboard-page .action-icon.primary{background:linear-gradient(135deg,#0891b226,#0891b214);color:var(--accent-primary)}.dashboard-page .action-icon.success{background:linear-gradient(135deg,#10b98126,#10b98114);color:#10b981}.dashboard-page .action-icon.warning{background:linear-gradient(135deg,#f59e0b26,#f59e0b14);color:#f59e0b}.dashboard-page .action-icon.info{background:linear-gradient(135deg,#3b82f626,#3b82f614);color:#3b82f6}.dashboard-page .action-content{flex:1;min-width:0}.dashboard-page .action-title{display:block;font-size:.8125rem;font-weight:600;color:var(--text-primary)}.dashboard-page .action-desc{display:block;font-size:.6875rem;color:var(--text-muted);margin-top:1px}.dashboard-page .action-arrow{font-size:.75rem;color:var(--text-muted);transition:all .2s ease}@media (max-width: 1400px){.stat-breakdown{display:none}.quick-actions-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1200px){.stats-grid-5{grid-template-columns:repeat(3,1fr)}.charts-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 992px){.dashboard-header .header-content{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.dashboard-header .header-actions{width:100%;justify-content:flex-start}.mid-row{grid-template-columns:1fr}}@media (max-width: 768px){.dashboard-page{padding:var(--spacing-sm);gap:10px}.stats-grid-5{grid-template-columns:repeat(2,1fr);gap:8px}.charts-row{grid-template-columns:1fr}.chart-body{flex-direction:column;gap:12px}.donut-chart{width:110px;height:110px}.donut-hole{width:62px;height:62px}.donut-total,.greeting-title{font-size:1rem}.quick-actions-grid{grid-template-columns:1fr}}@media (max-width: 480px){.stats-grid-5{grid-template-columns:1fr}.podium{grid-template-columns:1fr;gap:8px;align-items:stretch}.podium-slot.empty{display:none}.podium-slot.podium-1{order:1}.podium-slot.podium-2{order:2}.podium-slot.podium-3{order:3}.podium-avatar{width:44px;height:44px;font-size:.8125rem}.podium-1 .podium-avatar{width:50px;height:50px}.podium-name{font-size:.8125rem}.runner-stats-inline{display:none}}.instructor-dashboard .dash-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-2xl);color:var(--text-muted)}.instructor-dashboard .dash-loading-icon{font-size:1.5rem;color:var(--accent-primary)}.instructor-dashboard .dash-loading p{margin:0;font-size:.875rem}.instr-mid-row{display:grid;grid-template-columns:3fr 2fr;gap:12px}.card-header-link{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;font-weight:600;color:var(--accent-primary);text-decoration:none;transition:all .2s ease}.card-header-link:hover{color:var(--accent-primary-hover, var(--accent-primary));gap:7px}.card-header-link svg{font-size:.625rem;transition:transform .2s ease}.card-header-link:hover svg{transform:translate(2px)}.instructor-dashboard .card-body.no-padding{padding:0}.mini-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:28px 16px;font-size:.8125rem;color:var(--text-muted)}.mini-loading svg{color:var(--accent-primary)}.mini-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:28px 16px;color:var(--text-muted)}.mini-empty svg{font-size:1.25rem;opacity:.4}.mini-empty span{font-size:.8125rem}.instructor-dashboard .mini-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.8125rem}.instructor-dashboard .mini-table thead th{padding:8px 12px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);text-align:left;white-space:nowrap}.instructor-dashboard .mini-table tbody td{padding:8px 12px;color:var(--text-secondary);border-bottom:1px solid var(--border-primary);vertical-align:middle}.instructor-dashboard .mini-table tbody tr:last-child td{border-bottom:none}.instructor-dashboard .mini-table tbody tr:hover{background:var(--bg-secondary)}.mini-table-name{font-weight:600;color:var(--text-primary);display:block;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-table-name.link{color:var(--accent-primary);text-decoration:none;cursor:pointer}.mini-table-name.link:hover{text-decoration:underline}.mini-table-date{display:inline-flex;align-items:center;gap:5px;font-size:.75rem;color:var(--text-muted);white-space:nowrap}.mini-table-date svg{font-size:.625rem}.mini-status-pill{display:inline-flex;align-items:center;padding:2px 8px;font-size:.7rem;font-weight:600;border-radius:var(--radius-full);white-space:nowrap}.mini-status-pill.allotted{background:#3b82f61a;color:#3b82f6}.mini-status-pill.pending{background:#f59e0b1a;color:#f59e0b}.mini-status-pill.active{background:#22c55e1a;color:#22c55e}.mini-status-pill.paused{background:#f59e0b1a;color:#f59e0b}.mini-status-pill.completed{background:#06b6d41a;color:#06b6d4}.mini-status-pill.expired,.mini-status-pill.rejected{background:#ef44441a;color:#ef4444}.mini-status-pill.inactive{background:#6b72801a;color:#6b7280}.mini-status-pill.default{background:var(--bg-tertiary);color:var(--text-secondary)}.mini-visibility{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;color:var(--text-muted)}.mini-visibility svg{font-size:.625rem}.mini-visibility.public{color:#10b981}.mini-visibility.private{color:#8b5cf6}.team-cards-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.team-mini-card{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);text-decoration:none;transition:all .2s ease;cursor:pointer}.team-mini-card:hover{border-color:var(--accent-primary);box-shadow:0 2px 8px #0000000f}.team-mini-header{display:flex;justify-content:space-between;align-items:center;gap:6px}.team-mini-name{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.team-mini-status{font-size:.625rem;font-weight:600;padding:1px 6px;border-radius:var(--radius-full);white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.team-mini-status.active{background:#22c55e1a;color:#22c55e}.team-mini-status.inactive{background:#ef44441a;color:#ef4444}.team-mini-meta{display:flex;justify-content:space-between;align-items:center}.team-mini-type{font-size:.72rem;color:var(--text-muted);font-weight:500}.team-mini-members{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;font-weight:600;color:var(--accent-primary)}.team-mini-members svg{font-size:.625rem}[data-theme=dark] .team-mini-card{background:var(--bg-tertiary);border-color:var(--border-secondary)}[data-theme=dark] .team-mini-card:hover{border-color:var(--accent-primary);box-shadow:0 2px 12px #0003}[data-theme=dark] .mini-status-pill.allotted{background:#3b82f626}[data-theme=dark] .mini-status-pill.pending,[data-theme=dark] .mini-status-pill.paused{background:#f59e0b26}[data-theme=dark] .mini-status-pill.active{background:#22c55e26}[data-theme=dark] .mini-status-pill.completed{background:#06b6d426}[data-theme=dark] .mini-status-pill.expired,[data-theme=dark] .mini-status-pill.rejected{background:#ef444426}[data-theme=dark] .mini-status-pill.inactive{background:#6b728033}[data-theme=dark] .team-mini-status.active{background:#22c55e26}[data-theme=dark] .team-mini-status.inactive{background:#ef444426}[data-theme=dark] .mini-visibility.public{color:#34d399}[data-theme=dark] .mini-visibility.private{color:#a78bfa}@media (max-width: 1200px){.instr-mid-row{grid-template-columns:1fr 1fr}}@media (max-width: 992px){.instr-mid-row{grid-template-columns:1fr}}@media (max-width: 768px){.team-cards-grid{grid-template-columns:1fr}.mini-table-name{max-width:120px}}.user-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.user-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.user-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.user-list-page .header-actions>.basic-select{width:150px;min-width:130px;flex-shrink:0}.user-list-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.user-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.user-list-page .user-info{display:flex;align-items:center;gap:var(--spacing-sm)}.user-list-page .ref-indicator{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:2px 4px;background:transparent;border:none;color:var(--accent-info);font-size:.75rem;cursor:pointer;border-radius:var(--radius-sm);transition:all .15s ease}.user-list-page .ref-indicator:hover{color:var(--accent-primary);background:var(--bg-secondary)}.user-list-page .user-avatar{width:32px;height:32px;background:var(--accent-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;flex-shrink:0}.user-list-page .user-avatar.user-avatar-img{background:transparent;object-fit:cover;border:1px solid var(--border-primary);border-radius:50%;width:32px;height:32px}.user-list-page .badge-admin{background:var(--accent-danger-light);color:var(--accent-danger)}.user-list-page .badge-instructor{background:var(--accent-primary-light);color:var(--accent-primary)}.user-list-page .badge-user{background:var(--accent-success-light);color:var(--accent-success)}.user-list-page .status-badge-toggle{display:inline-flex;align-items:center;gap:5px;padding:3px 10px 3px 6px;border-radius:var(--radius-full);border:none;cursor:pointer;font-size:.75rem;font-weight:500;transition:all .2s ease}.user-list-page .status-badge-toggle .toggle-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}.user-list-page .status-badge-toggle.active{background:var(--accent-success-light);color:var(--accent-success)}.user-list-page .status-badge-toggle.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.user-list-page .status-badge-toggle:hover{opacity:.8;transform:scale(1.02)}.user-list-page .table tbody tr.selected,.user-list-page .table tbody tr.selected:hover{background:var(--accent-primary-light)}.user-list-page .modal-dialog{max-width:450px}@media (max-width: 1200px){.user-list-page .header-actions>.basic-select{width:130px;min-width:110px}}@media (max-width: 1024px){.user-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.user-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}}@media (max-width: 768px){.user-list-page .card-header{flex-direction:column;align-items:stretch}.user-list-page .header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.user-list-page .header-actions>.basic-select{flex:1;width:auto;min-width:110px}}@media (max-width: 576px){.user-list-page .footer-info{width:100%;justify-content:space-between}.user-list-page .footer-info span{font-size:.75rem}}.user-profile-page{animation:fadeIn .3s ease;margin:6px}.user-profile-page .profile-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.user-profile-page .profile-card-accent{height:3px;background:linear-gradient(90deg,var(--accent-primary),var(--brand-cyan))}.user-profile-page .profile-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.user-profile-page .profile-avatar{width:56px;height:56px;border-radius:50%;background:var(--accent-primary);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-size:1.375rem;font-weight:700;flex-shrink:0;overflow:hidden}.user-profile-page .profile-avatar img{width:100%;height:100%;object-fit:cover}.user-profile-page .profile-identity{flex:1;min-width:0}.user-profile-page .profile-name-row{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;margin-bottom:2px}.user-profile-page .profile-name{font-size:1.125rem;font-weight:700;color:var(--text-primary);line-height:1.3}.user-profile-page .profile-badges{display:flex;align-items:center;gap:var(--spacing-xs)}.user-profile-page .profile-badges .badge{font-size:.6875rem;padding:2px 8px}.user-profile-page .profile-badges .status-badge{font-size:.6875rem;padding:2px 8px;font-weight:500}.user-profile-page .profile-badges .status-badge.active{background:var(--accent-success-light);color:var(--accent-success)}.user-profile-page .profile-badges .status-badge.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.user-profile-page .profile-meta{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.user-profile-page .profile-meta-item{display:inline-flex;align-items:center;gap:5px;font-size:.8125rem;color:var(--text-secondary)}.user-profile-page .profile-meta-item svg{color:var(--text-muted);font-size:.6875rem;width:.6875rem;flex-shrink:0}.user-profile-page .profile-body{display:grid;grid-template-columns:1fr 1fr}.user-profile-page .profile-column{padding:var(--spacing-md) var(--spacing-lg)}.user-profile-page .profile-body>.profile-column:first-child{border-right:1px solid var(--border-primary)}.user-profile-page .profile-section{margin-bottom:var(--spacing-md)}.user-profile-page .profile-section:last-child{margin-bottom:0}.user-profile-page .profile-section-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.8125rem;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--border-primary)}.user-profile-page .profile-section-title svg{color:var(--accent-primary);font-size:1rem;width:1rem;height:1rem;flex-shrink:0}.user-profile-page .profile-field{display:flex;align-items:baseline;padding:5px 0}.user-profile-page .profile-field-label{width:120px;flex-shrink:0;font-size:.8125rem;color:var(--text-muted);font-weight:500}.user-profile-page .profile-field-value{flex:1;font-size:.8125rem;color:var(--text-primary);word-break:break-word}.badge-candidate{background:var(--accent-success-light);color:var(--accent-success)}.badge-corporate{background:var(--accent-warning-light);color:var(--accent-warning)}.badge-user{background:var(--accent-info-light);color:var(--accent-info)}.user-profile-page .loading-state,.user-profile-page .error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px}.user-profile-page .loading-state p,.user-profile-page .error-state p{color:var(--text-muted);font-size:.875rem;margin-bottom:var(--spacing-md)}.user-profile-page .error-actions{display:flex;gap:var(--spacing-sm)}@media (max-width: 768px){.user-profile-page .profile-body{grid-template-columns:1fr}.user-profile-page .profile-body>.profile-column:first-child{border-right:none;border-bottom:1px solid var(--border-primary);padding-bottom:var(--spacing-md)}.user-profile-page .profile-name-row{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}}@media (max-width: 576px){.user-profile-page .profile-header{padding:var(--spacing-sm) var(--spacing-md)}.user-profile-page .profile-avatar{width:44px;height:44px;font-size:1.125rem}.user-profile-page .profile-name{font-size:1rem}.user-profile-page .profile-column{padding:var(--spacing-sm) var(--spacing-md)}.user-profile-page .profile-field{flex-direction:column;gap:1px;padding:4px 0}.user-profile-page .profile-field-label{width:auto}}.permission-form{animation:fadeIn .3s ease}.permission-form-loading,.permission-form-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:var(--spacing-md);text-align:center;padding:var(--spacing-xl)}.permission-form-loading .spinner-lg{font-size:2rem;color:var(--accent-primary)}.permission-form-loading p,.permission-form-empty p{color:var(--text-muted);font-size:.875rem;margin:0}.permission-form-empty .empty-icon{font-size:3rem;color:var(--text-muted);opacity:.5}.permission-form-empty h3{font-size:1rem;font-weight:600;color:var(--text-secondary);margin:0}.permission-header{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.permission-header .section-icon{font-size:1.25rem;color:var(--accent-primary);flex-shrink:0;line-height:1;margin-top:.15em}.permission-header-text h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 4px;line-height:1.4}.permission-header-text p{font-size:.8125rem;color:var(--text-muted);margin:0}.permission-bulk-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary)}.permission-bulk-actions .bulk-btn{display:flex;align-items:center;gap:5px;padding:4px 12px;font-size:.75rem;font-weight:500;border:1.5px solid var(--border-primary);border-radius:var(--radius-full);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.permission-bulk-actions .bulk-btn-allowed{border-color:var(--accent-success);color:var(--accent-success)}.permission-bulk-actions .bulk-btn-allowed:hover{background:var(--accent-success);color:#fff}.permission-bulk-actions .bulk-btn-denied{border-color:var(--accent-danger);color:var(--accent-danger)}.permission-bulk-actions .bulk-btn-denied:hover{background:var(--accent-danger);color:#fff}.permission-list{padding:var(--spacing-sm) var(--spacing-md)}.permission-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:background .15s ease}.permission-label{font-size:.8125rem;font-weight:500;color:var(--text-primary);flex:1;min-width:0}.permission-form .radio-group{display:flex;gap:6px;flex-shrink:0}.permission-form .radio-card{display:flex;align-items:center;gap:6px;padding:5px 14px;background:transparent;border:1.5px solid var(--border-secondary);border-radius:var(--radius-full);cursor:pointer;transition:all .15s ease;min-width:0}.permission-form .radio-card:hover{border-color:var(--text-muted);background:var(--bg-secondary)}.permission-form .radio-card.selected{background:var(--bg-secondary)}.permission-form .radio-card.selected:has(.radio-indicator.allowed){border-color:var(--accent-success);background:var(--accent-success-light)}.permission-form .radio-card.selected:has(.radio-indicator.denied){border-color:var(--accent-danger);background:var(--accent-danger-light)}.permission-form .radio-card input[type=radio],.permission-form .radio-indicator{display:none}.permission-form .radio-card.selected:has(.radio-indicator.allowed) .radio-label{color:var(--accent-success);font-weight:600}.permission-form .radio-card.selected:has(.radio-indicator.denied) .radio-label{color:var(--accent-danger);font-weight:600}.permission-form .radio-label{font-size:.8125rem;font-weight:500;color:var(--text-secondary);white-space:nowrap}.permission-form .radio-card.selected .radio-label{color:var(--text-primary)}.permission-actions{display:flex;justify-content:flex-end;padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-primary);background:var(--bg-secondary);border-radius:0 0 var(--radius-lg) var(--radius-lg)}@media (max-width: 768px){.permission-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.permission-form .radio-group{width:100%}.permission-form .radio-card{flex:1;justify-content:center}.permission-header{padding:var(--spacing-md)}.permission-bulk-actions{flex-direction:column;align-items:stretch;gap:var(--spacing-sm);padding:var(--spacing-md)}.permission-bulk-actions .bulk-label{text-align:center}.permission-bulk-actions .bulk-buttons{justify-content:center}.permission-list{padding:var(--spacing-sm)}.permission-actions{padding:var(--spacing-md)}.permission-actions .btn{width:100%}}@media (max-width: 576px){.permission-header{flex-direction:column;text-align:center}.permission-header .section-icon{margin-top:0}}.resource-form{display:flex;flex-direction:column}.resource-form-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xxl);gap:var(--spacing-md)}.resource-form-loading .spinner-lg{font-size:1.5rem;color:var(--accent-primary)}.resource-form-loading p{color:var(--text-muted);font-size:.875rem;margin:0}.resource-form .resource-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);border-bottom:1px solid var(--border-primary);background:var(--bg-secondary)}.resource-form .resource-header .section-icon{font-size:1.25rem;color:var(--accent-primary)}.resource-form .resource-header-text h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 2px}.resource-form .resource-header-text p{font-size:.8125rem;color:var(--text-muted);margin:0}.resource-form .resource-mode-badge{margin-left:auto;padding:4px 12px;font-size:.75rem;font-weight:600;background:var(--accent-warning-light);color:var(--accent-warning);border-radius:var(--radius-full);white-space:nowrap}.resource-section{padding:var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.resource-section:last-of-type{border-bottom:none}.resource-section-header{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-primary)}.resource-section-header svg{color:var(--accent-primary);font-size:.875rem}.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md)}.resource-grid-3{grid-template-columns:repeat(3,1fr)}.resource-field{display:flex;flex-direction:column;gap:4px}.resource-field label{font-size:.8125rem;font-weight:500;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.resource-field label .field-icon{font-size:.75rem;color:var(--text-muted)}.resource-field input{width:100%;padding:8px 12px;font-size:.875rem;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);transition:all .15s ease}.resource-field input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.resource-field input.is-invalid{border-color:var(--accent-danger)}.resource-field input.is-invalid:focus{box-shadow:0 0 0 3px #ef44441a}.resource-field .error-message{font-size:.75rem;color:var(--accent-danger)}.resource-input-wrapper{display:flex;align-items:stretch;gap:0;border:1px solid var(--border-primary);border-radius:var(--radius-md);overflow:hidden}.resource-input-group{display:flex;flex-direction:column;flex:1;background:var(--bg-primary)}.resource-input-group .input-label{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:6px 10px 2px;background:var(--bg-primary)}.resource-input-group input{width:100%;border:none;border-radius:0;padding:2px 10px 8px;font-size:1rem;font-weight:600;background:var(--bg-primary);color:var(--text-primary)}.resource-input-group input[type=number]::-webkit-outer-spin-button,.resource-input-group input[type=number]::-webkit-inner-spin-button{-webkit-appearance:inner-spin-button;opacity:1;height:auto}.resource-input-group input:focus{outline:none;box-shadow:none;background:var(--bg-secondary)}.resource-used-group{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:60px;padding:4px 12px;background:var(--bg-secondary);border-left:1px solid var(--border-primary)}.resource-used-group .used-label{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.resource-used-group .used-value{font-size:.9375rem;font-weight:600;color:var(--accent-primary)}.resource-field:has(input.is-invalid) .resource-input-wrapper{border-color:var(--accent-danger)}.resource-actions{display:flex;justify-content:flex-end;padding:var(--spacing-lg);background:var(--bg-secondary);border-top:1px solid var(--border-primary)}@media (max-width: 992px){.resource-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.resource-grid,.resource-grid-3{grid-template-columns:repeat(2,1fr)}.resource-section,.resource-form .resource-header,.resource-actions{padding:var(--spacing-md)}.resource-actions .btn{width:100%}}@media (max-width: 576px){.resource-grid,.resource-grid-3{grid-template-columns:1fr}.resource-used-group{min-width:50px;padding:4px 8px}}.session-history-header{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.session-history-header .section-icon{font-size:1.25rem;color:var(--accent-primary);flex-shrink:0;line-height:1;margin-top:.15em}.session-history-header-text h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 4px;line-height:1.4}.session-history-header-text p{font-size:.8125rem;color:var(--text-muted);margin:0}.sh-filters{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-lg);border-bottom:1px solid var(--border-primary);background:var(--bg-primary);flex-wrap:wrap}.sh-filter-group{display:flex;flex-direction:row;align-items:center;gap:8px}.sh-filter-label{font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.sh-filters .sh-refresh-btn{margin-left:auto}.session-history-body{overflow-x:auto}.sh-row-num{color:var(--text-muted);font-weight:600;width:50px}.sh-ip{font-family:monospace;font-size:.8125rem;color:var(--text-secondary)}.sh-status{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600}.sh-status svg{font-size:.5rem}.sh-status.open{color:#10b981}.sh-status.closed{color:var(--text-muted)}.sh-loading-cell,.sh-empty-cell{text-align:center;padding:40px 20px;color:var(--text-muted);font-size:.875rem}.sh-loading-cell{display:flex;align-items:center;justify-content:center;gap:8px}.sh-empty-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.sh-empty-icon{font-size:1.5rem;opacity:.3}.sh-pagination{padding:var(--spacing-sm) var(--spacing-lg);border-top:1px solid var(--border-primary)}@media (max-width: 576px){.session-history-header{padding:var(--spacing-md);flex-direction:column;text-align:center}.session-history-header .section-icon{margin-top:0}.sh-filters{flex-direction:column;padding:var(--spacing-sm);align-items:stretch}.sh-filters .sh-refresh-btn{margin-left:0;align-self:flex-end}.sh-filter-group{justify-content:space-between}.sh-pagination{padding:var(--spacing-sm)}}.user-form-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.admin-edit-layout{display:grid;grid-template-columns:240px 1fr;gap:var(--spacing-lg);align-items:start}.edit-sidebar{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 2px 8px #0000000a;position:sticky;top:var(--spacing-lg)}.edit-sidebar-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.sidebar-avatar{width:48px;height:48px;border-radius:50%;overflow:hidden;flex-shrink:0}.sidebar-avatar img{width:100%;height:100%;object-fit:cover}.sidebar-avatar-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-primary-dark, #2563eb));display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.125rem;font-weight:600;text-transform:uppercase}.sidebar-user-info{min-width:0;flex:1}.sidebar-user-name{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:.75rem;color:var(--text-muted)}.edit-sidebar-nav{padding:var(--spacing-sm)}.sidebar-nav-item{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:12px 16px;border:none;background:transparent;color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;border-radius:var(--radius-md);transition:all .2s ease;text-align:left}.sidebar-nav-item:hover{background:var(--bg-secondary);color:var(--text-primary)}.sidebar-nav-item.active{background:var(--accent-primary-light);color:var(--accent-primary)}.sidebar-nav-item svg{font-size:1rem;width:20px;flex-shrink:0}.edit-content{min-width:0}.form-layout-single{display:flex;flex-direction:column;gap:var(--spacing-md)}.profile-card-horizontal{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:0 2px 8px #0000000a;overflow:hidden}.avatar-section-inline{display:flex;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-lg)}.avatar-section-inline .avatar-container{position:relative;flex-shrink:0;width:80px;height:80px}.avatar-section-inline .profile-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;border:2px solid var(--border-primary);background:var(--bg-primary);display:block}.avatar-section-inline .profile-avatar-placeholder{width:80px;height:80px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:1.75rem;border:2px dashed var(--border-primary);box-sizing:border-box}.avatar-section-inline .avatar-upload-btn{position:absolute;bottom:-2px;right:2px;width:28px;height:28px;border-radius:50%;background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;border:2px solid var(--bg-primary);font-size:.75rem;z-index:1}.avatar-section-inline .avatar-upload-btn:hover{background:var(--accent-primary-dark, #2563eb)}.profile-info-inline{flex:1;min-width:0}.profile-info-inline .profile-name{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin:0 0 6px;word-break:break-word}.profile-meta{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.meta-item{display:inline-flex;align-items:center;gap:4px;font-size:.8125rem}.meta-label{color:var(--text-muted)}.meta-value{color:var(--text-secondary);font-weight:500}.meta-badge{display:inline-flex;padding:2px 8px;border-radius:var(--radius-full);font-size:.75rem;font-weight:500}.meta-badge.active{background:var(--accent-success-light);color:var(--accent-success)}.meta-badge.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.meta-divider{color:var(--border-primary);font-size:.75rem}.permission-form-container,.resource-form-container,.session-history-container{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:0 2px 8px #0000000a;overflow:hidden}.form-layout{display:grid;grid-template-columns:280px 1fr;gap:var(--spacing-xl);align-items:start}.profile-card{position:sticky;top:var(--spacing-lg)}.profile-card-inner{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 2px 8px #0000000a}.avatar-section{background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);padding:var(--spacing-xl) var(--spacing-lg);text-align:center;border-bottom:1px solid var(--border-primary)}.avatar-section .avatar-container{position:relative;display:inline-block;margin-bottom:var(--spacing-sm)}.avatar-section .profile-avatar{width:88px;height:88px;border-radius:50%;object-fit:cover;border:3px solid var(--bg-primary);background:var(--bg-primary);box-shadow:0 2px 12px #0000001a}.avatar-section .profile-avatar-placeholder{width:88px;height:88px;border-radius:50%;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:2rem;border:3px solid var(--bg-primary);box-shadow:0 2px 12px #0000001a}.avatar-section .avatar-upload-btn{position:absolute;bottom:0;right:0;width:28px;height:28px;border-radius:50%;background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;border:2px solid var(--bg-primary);font-size:.75rem}.avatar-section .avatar-upload-btn:hover{background:var(--accent-primary-dark, #2563eb)}.avatar-section .profile-name{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0;word-break:break-word}.quick-info{padding:var(--spacing-lg)}.info-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0}.info-item:not(:last-child){border-bottom:1px solid var(--border-primary)}.info-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.info-value{font-size:.875rem;font-weight:500;color:var(--text-primary)}.info-badge{display:inline-flex;padding:2px 10px;border-radius:var(--radius-full);font-size:.75rem;font-weight:500}.info-badge.active{background:var(--accent-success-light);color:var(--accent-success)}.info-badge.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.step-form-container{display:flex;flex-direction:column;gap:0;border-radius:var(--radius-lg);box-shadow:0 2px 8px #0000000a;overflow:visible}.step-indicator{display:flex;align-items:center;background:var(--bg-primary);border:1px solid var(--border-primary);border-bottom:1px solid var(--border-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--spacing-md) var(--spacing-lg)}.step-item{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;flex:1;position:relative}.step-item:hover .step-number{transform:scale(1.08)}.step-number{width:32px;height:32px;border-radius:50%;background:var(--bg-tertiary);color:var(--text-muted);display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:600;transition:all .25s ease;flex-shrink:0;border:2px solid transparent}.step-item.active .step-number{background:var(--accent-primary);color:#fff;box-shadow:0 2px 8px #0891b24d}.step-item.completed .step-number{background:var(--accent-success);color:#fff}.step-info{display:flex;flex-direction:column;min-width:0}.step-title{font-size:.8125rem;font-weight:500;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.step-item.active .step-title{color:var(--text-primary);font-weight:600}.step-item.completed .step-title{color:var(--accent-success)}.step-connector{flex:1;height:2px;background:var(--border-primary);margin:0 var(--spacing-md);min-width:20px;border-radius:1px}.step-item.completed .step-connector,.step-item.active .step-connector{background:var(--accent-primary)}.step-form-section{background:var(--bg-primary);border:1px solid var(--border-primary);border-top:none;border-radius:0}.user-form-page .section-header{display:flex;justify-content:flex-start;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);border-left:3px solid var(--accent-primary)}.user-form-page .section-header .section-icon{color:var(--accent-primary);font-size:.9rem;flex-shrink:0}.user-form-page .section-title{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0;letter-spacing:.01em}.user-form-page .section-body{padding:var(--spacing-lg)}.step-content{animation:stepFadeIn .3s ease}@keyframes stepFadeIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.user-form-page .form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-md);align-items:start}.user-form-page .form-row:last-child{margin-bottom:0}.user-form-page .form-row-2col{grid-template-columns:1fr 1fr 1fr}.form-group{display:flex;flex-direction:column;gap:6px}.user-form-page .step-form-section .form-group:not(.form-group-checkbox-wrapper):after{content:"​";font-size:.75rem;line-height:1}.user-form-page .step-form-section .form-group:has(.error-message):after,.user-form-page .step-form-section .form-group:has(.help-text):after,.user-form-page .step-form-section .form-group:has(.status-error):after{display:none}.form-group-2{grid-column:span 2}.form-group-checkbox-wrapper{display:flex;align-items:flex-start;padding-top:26px}.form-group-checkbox-wrapper .checkbox-container{padding:10px var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:var(--radius-md);min-height:42px;align-items:center}.form-group label{font-size:.8125rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:6px;letter-spacing:.01em}.field-icon{font-size:.75rem;color:var(--text-muted)}.required{color:var(--accent-danger)!important;font-weight:600;margin-left:2px}.user-form-page .form-control{width:100%;padding:10px 14px;border:1.5px solid var(--border-secondary);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);font-size:.875rem;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.user-form-page .form-control::placeholder{color:var(--text-muted);font-weight:400}.user-form-page .form-control:hover{border-color:var(--accent-primary);box-shadow:0 1px 3px #00000014}.user-form-page .form-control:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-input);box-shadow:0 0 0 3px var(--accent-primary-light)}.user-form-page .form-control:disabled,.user-form-page .form-control.readonly-field{background:var(--bg-tertiary);border-color:var(--border-primary);cursor:not-allowed;color:var(--text-muted);box-shadow:none}.user-form-page .form-control.is-invalid{border-color:var(--accent-danger)}.user-form-page .form-control.is-invalid:focus{box-shadow:0 0 0 3px var(--accent-danger-light)}.user-form-page .searchable-select .select-control{border:1.5px solid var(--border-secondary);background:var(--bg-input);box-shadow:0 1px 2px #0000000d}.user-form-page .searchable-select:not(.disabled) .select-control:hover{border-color:var(--accent-primary)}.user-form-page .searchable-select.open .select-control{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.user-form-page textarea.form-control{resize:vertical;min-height:42px}.user-form-page select.form-control{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 10px center;background-repeat:no-repeat;background-size:20px;padding-right:36px}.checkbox-container{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-md);transition:background .2s ease}.checkbox-container:hover{background:var(--bg-secondary)}.checkbox-container input[type=checkbox]{width:20px;height:20px;margin-top:2px;accent-color:var(--accent-primary);cursor:pointer;flex-shrink:0}.checkmark{display:none}.checkbox-text{display:flex;flex-direction:column;gap:2px}.checkbox-text strong{font-size:.875rem;font-weight:500;color:var(--text-primary)}.checkbox-text small{font-size:.75rem;color:var(--text-muted)}.help-text{font-size:.75rem;color:var(--text-muted);line-height:1}.error-message{font-size:.75rem;color:var(--accent-danger);line-height:1}.form-actions{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-secondary);border:1px solid var(--border-primary);border-top:none;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.form-actions-right{display:flex;gap:var(--spacing-sm);margin-left:auto}.btn-lg{padding:10px 24px;font-size:.875rem;font-weight:500}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--spacing-md)}.loading-state .spinner-lg{font-size:2.5rem;color:var(--accent-primary)}.loading-state p{color:var(--text-muted);font-size:.875rem}.step-form-section .radio-group{display:flex;gap:6px;flex-wrap:wrap}.step-form-section .radio-group.is-invalid .radio-card{border-color:var(--accent-danger)}.step-form-section .radio-card{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background:transparent;border:1px solid var(--border-primary);border-radius:var(--radius-full);cursor:pointer;transition:all .15s ease}.step-form-section .radio-card:hover,.step-form-section .radio-card.selected{background:var(--bg-secondary)}.step-form-section .radio-card input[type=radio]{display:none}.step-form-section .radio-indicator{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--text-muted);position:relative;flex-shrink:0;transition:all .15s ease}.step-form-section .radio-card.selected .radio-indicator{border-color:var(--accent-primary);background:var(--accent-primary)}.step-form-section .radio-card.selected .radio-indicator:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:4px;border-radius:50%;background:#fff}.step-form-section .radio-card.selected .radio-indicator.active{border-color:var(--accent-success);background:var(--accent-success)}.step-form-section .radio-card.selected .radio-indicator.inactive{border-color:var(--accent-danger);background:var(--accent-danger)}.step-form-section .radio-card.selected .radio-indicator.male{border-color:var(--gender-male);background:var(--gender-male)}.step-form-section .radio-card.selected .radio-indicator.female{border-color:var(--gender-female);background:var(--gender-female)}.step-form-section .radio-label{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.step-form-section .radio-card.selected .radio-label{color:var(--text-primary)}.radio-box-group{display:inline-flex;gap:10px}.radio-box{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--border-secondary);border-radius:var(--radius-md);cursor:pointer;font-size:.8125rem;color:var(--text-secondary);background:var(--bg-secondary);transition:all .15s ease}.radio-box:hover{border-color:var(--text-muted);background:var(--bg-tertiary)}.radio-box input[type=radio]{margin:0;cursor:pointer}.radio-box.selected{border-color:var(--accent-primary);background:#3b82f614;color:var(--accent-primary)}.radio-box.selected input[type=radio]{accent-color:var(--accent-primary)}.radio-box-group.has-error .radio-box{border-color:var(--accent-danger)}@media (max-width: 1200px){.user-form-page .form-row{grid-template-columns:repeat(2,1fr)}.user-form-page .form-group-2{grid-column:span 2}.step-indicator{padding:var(--spacing-md) var(--spacing-lg)}.step-title{font-size:.75rem}.step-number{width:32px;height:32px}}@media (max-width: 1024px){.form-layout{grid-template-columns:1fr}.profile-card{position:static}.profile-card-inner{display:flex;flex-direction:row}.avatar-section{width:200px;flex-shrink:0}.quick-info{flex:1;display:flex;flex-direction:column;justify-content:center}.step-indicator{flex-wrap:wrap;gap:var(--spacing-sm)}.step-item{flex:0 0 auto}.step-connector{display:none}.admin-edit-layout{grid-template-columns:200px 1fr}.sidebar-user-name{font-size:.8125rem}.sidebar-avatar{width:40px;height:40px}}@media (max-width: 768px){.page-header{flex-direction:column;align-items:stretch}.page-actions{justify-content:flex-end}.profile-card-inner{flex-direction:column}.avatar-section{width:100%;padding:var(--spacing-lg)}.user-form-page .form-row{grid-template-columns:1fr}.user-form-page .form-group-2{grid-column:span 1}.user-form-page .form-group-checkbox-wrapper{padding-top:0}.user-form-page .section-body{padding:var(--spacing-md)}.form-actions{flex-direction:column;padding:var(--spacing-md)}.form-actions-right{width:100%;flex-direction:column-reverse}.form-actions .btn{width:100%}.step-form-section .radio-group{flex-direction:row}.step-form-section .radio-card{padding:8px 12px;min-width:80px}.step-form-section .radio-label{font-size:.8125rem}.checkbox-container{padding:var(--spacing-xs)}.step-indicator{padding:var(--spacing-sm)}.step-item{padding:var(--spacing-xs)}.step-number{width:28px;height:28px;font-size:.75rem}.admin-edit-layout{grid-template-columns:1fr}.edit-sidebar{position:static}.edit-sidebar-header{padding:var(--spacing-md)}.edit-sidebar-nav{display:flex;gap:4px;padding:var(--spacing-sm)}.avatar-section-inline{flex-direction:column;text-align:center;padding:var(--spacing-md)}.avatar-section-inline .avatar-container,.avatar-section-inline .profile-avatar,.avatar-section-inline .profile-avatar-placeholder{width:72px;height:72px}.avatar-section-inline .profile-avatar-placeholder{font-size:1.5rem}.profile-info-inline .profile-name{font-size:1rem}.profile-meta{justify-content:center}.meta-divider{display:none}.meta-item{font-size:.75rem}.sidebar-nav-item{flex:1;justify-content:center;padding:10px 12px}.sidebar-nav-item span,.step-title{display:none}}@media (max-width: 576px){.avatar-section .profile-avatar,.avatar-section .profile-avatar-placeholder{width:72px;height:72px}.avatar-section .profile-avatar-placeholder{font-size:1.5rem}.avatar-section .avatar-upload-btn{width:24px;height:24px;font-size:.625rem}.avatar-section .profile-name{font-size:.9375rem}.user-form-page .section-header{padding:var(--spacing-sm) var(--spacing-md);border-left-width:3px}.user-form-page .section-title{font-size:.875rem}.user-form-page .form-control{padding:9px 12px}}.pw-field{position:relative}.team-view-header{display:flex;align-items:flex-start;gap:var(--spacing-md);padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.team-view-icon{width:48px;height:48px;background:var(--accent-light);color:var(--accent-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.team-view-info{flex:1;min-width:0}.team-view-name{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs);line-height:1.3}.team-view-meta{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.team-view-id{font-size:.75rem;font-weight:500;color:var(--text-muted);font-family:var(--font-mono)}.team-view-members{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md);flex-shrink:0}.team-view-members .member-count{font-size:1.5rem;font-weight:700;color:var(--accent-primary);line-height:1}.team-view-members .member-label{font-size:.6875rem;color:var(--text-muted);text-transform:uppercase}.team-view-members--clickable{cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.team-view-members--clickable:hover{background:var(--accent-primary-light, rgba(99, 102, 241, .1));box-shadow:0 0 0 2px var(--accent-primary)}.modal-form .required{color:var(--accent-danger)}.modal-form .error-message{font-size:.75rem;color:var(--accent-danger);margin-top:2px}.modal-form .form-control.is-invalid{border-color:var(--accent-danger)}.modal-form .form-control:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.modal-form .radio-group{display:flex;gap:6px;flex-wrap:wrap}.modal-form .radio-group.is-invalid .radio-card{border-color:var(--accent-danger)}.modal-form .radio-card{display:flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;flex:1;min-width:100px}.modal-form .radio-card:hover,.modal-form .radio-card.selected{background:var(--bg-secondary)}.modal-form .radio-card input[type=radio]{display:none}.modal-form .radio-indicator{width:14px;height:14px;border:2px solid var(--border-primary);border-radius:50%;position:relative;transition:all .2s ease;flex-shrink:0}.modal-form .radio-card.selected .radio-indicator{border-color:var(--accent-primary);background:var(--accent-primary)}.modal-form .radio-card.selected .radio-indicator:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:5px;height:5px;background:#fff;border-radius:50%}.modal-form .radio-card.selected .radio-indicator.active{border-color:var(--accent-success);background:var(--accent-success)}.modal-form .radio-card.selected .radio-indicator.inactive{border-color:var(--accent-danger);background:var(--accent-danger)}.modal-form .radio-label{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.modal-form .radio-card.selected .radio-label{color:var(--text-primary)}.team-member-modal .modal-body{padding:0}.team-member-summary{background:var(--bg-tertiary);padding:var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.team-member-summary .summary-header{display:flex;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.team-member-summary .summary-icon{width:48px;height:48px;background:var(--accent-light);color:var(--accent-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.team-member-summary .summary-info{flex:1;min-width:0}.team-member-summary .summary-info h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs)}.team-member-summary .summary-meta{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.team-member-summary .summary-members{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);flex-shrink:0}.team-member-summary .summary-members .member-count{font-size:1.5rem;font-weight:700;color:var(--accent-primary);line-height:1}.team-member-summary .summary-members .member-label{font-size:.6875rem;color:var(--text-muted);text-transform:uppercase}.team-member-summary .summary-details{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm) var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--border-primary)}.team-member-summary .summary-detail{display:flex;align-items:center;gap:var(--spacing-xs)}.team-member-summary .summary-detail .label{font-size:.75rem;color:var(--text-muted)}.team-member-summary .summary-detail .value{font-size:.8125rem;color:var(--text-primary);font-weight:500}.candidate-section{padding:var(--spacing-lg)}.candidate-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap}.candidate-header h4{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0}.candidate-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.candidate-actions .search-box{position:relative;min-width:220px;max-width:280px}.candidate-actions .search-box .search-icon{position:absolute;left:var(--spacing-sm);top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.75rem}.candidate-actions .search-box .form-control{height:34px;padding-left:32px;font-size:.8125rem}.candidate-list{border:1px solid var(--border-primary);border-radius:var(--radius-md);max-height:450px;overflow-y:auto}.candidate-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-bottom:1px solid var(--border-primary);transition:background var(--transition-fast)}.candidate-item:last-child{border-bottom:none}.candidate-item:hover{background:var(--bg-hover)}.candidate-item.selected{background:#3b82f614}.candidate-select,.candidate-status{flex-shrink:0}.candidate-status .status-dot{width:8px;height:8px;border-radius:50%}.candidate-status .status-dot.active{background:var(--accent-success);box-shadow:0 0 6px #10b98180}.candidate-status .status-dot.inactive{background:var(--text-muted)}.candidate-avatar{flex-shrink:0}.candidate-avatar img{width:36px;height:36px;border-radius:50%;object-fit:cover}.candidate-avatar .avatar-placeholder{width:36px;height:36px;border-radius:50%;background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600}.candidate-info{flex:1;min-width:180px;max-width:300px;display:flex;flex-direction:column;gap:2px}.candidate-name{font-size:.875rem;font-weight:500;color:var(--text-primary)}.candidate-email{font-size:.75rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.candidate-assignment{flex-shrink:0;min-width:120px;text-align:center}.assignment-badge{font-size:.6875rem;font-weight:500;padding:4px 10px;border-radius:var(--radius-full);white-space:nowrap}.assignment-badge.not-assigned{background:var(--bg-tertiary);color:var(--text-muted)}.assignment-badge.assigned-here{background:#10b98126;color:var(--accent-success)}.assignment-badge.assigned-elsewhere{background:#f59e0b26;color:#f59e0b}.candidate-mobile{flex-shrink:0;min-width:100px;font-size:.8125rem;color:var(--text-secondary);white-space:nowrap}.no-candidates{padding:var(--spacing-xl);text-align:center}.no-candidates p{color:var(--text-muted);margin:0}@media (max-width: 768px){.team-view-header{flex-wrap:wrap}.team-view-members{order:-1;width:100%;flex-direction:row;gap:var(--spacing-sm);justify-content:center;margin-bottom:var(--spacing-sm)}.team-member-summary .summary-details{grid-template-columns:1fr}.candidate-header{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.candidate-actions{flex-direction:column;width:100%}.candidate-actions .search-box{min-width:auto;max-width:none;width:100%}.candidate-actions .btn{flex:1}.candidate-item{flex-wrap:wrap;gap:var(--spacing-sm)}.candidate-info{flex:1 1 calc(100% - 100px);order:2;max-width:none;min-width:0}.candidate-select,.candidate-status,.candidate-avatar{order:1}.candidate-assignment{order:3;width:100%;padding-left:calc(18px + var(--spacing-sm) + 8px + var(--spacing-sm) + 36px + var(--spacing-sm))}.candidate-mobile{display:none}}@media (max-width: 576px){.team-view-meta{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.team-member-summary,.candidate-section{padding:var(--spacing-md)}.candidate-assignment{padding-left:0}.candidate-list{max-height:350px}}.team-member-modal-new .modal-body{padding:var(--spacing-lg)}.member-modal-content{display:flex;flex-direction:column;gap:var(--spacing-md)}.member-team-info{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.member-team-icon{width:56px;height:56px;min-width:56px;background:var(--accent-light);color:var(--accent-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem}.member-team-details{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1;min-width:0}.member-team-header{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.member-team-name{font-size:1.125rem;font-weight:600;color:var(--text-primary);line-height:1.3}.member-team-id{font-size:.75rem;font-weight:500;color:var(--text-muted);font-family:var(--font-mono)}.member-team-meta{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.member-count-badge{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;color:var(--text-secondary);background:var(--bg-tertiary);padding:4px 10px;border-radius:var(--radius-full)}.member-count-badge svg{font-size:.6875rem}.member-search-box{position:relative}.member-search-box .form-control{padding-left:38px;padding-right:38px;height:42px}.member-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.875rem;z-index:1}.member-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:all .15s ease;z-index:1}.member-search-clear:hover{color:var(--text-primary);background:var(--bg-tertiary)}.member-loading,.member-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-md);color:var(--text-muted);text-align:center}.member-loading .spinner,.member-empty .empty-icon{font-size:2.5rem;opacity:.5}.member-loading p,.member-empty p{margin:0;font-size:.9375rem}.member-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:400px;overflow-y:auto;padding-right:var(--spacing-xs)}.member-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;background:var(--bg-primary)}.member-item:hover{border-color:var(--accent-primary);background:var(--bg-secondary)}.member-item input[type=checkbox]{display:none}.member-checkbox{width:22px;height:22px;min-width:22px;border:2px solid var(--border-secondary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all .15s ease;color:#fff;font-size:.75rem;background:var(--bg-primary)}.member-item input[type=checkbox]:checked+.member-checkbox{background:var(--accent-primary);border-color:var(--accent-primary)}.member-avatar{position:relative;flex-shrink:0}.member-avatar img{width:40px;height:40px;border-radius:50%;object-fit:cover}.member-avatar .avatar-placeholder{width:40px;height:40px;border-radius:50%;background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600}.member-avatar .status-indicator{position:absolute;bottom:0;right:0;width:12px;height:12px;border-radius:50%;border:2px solid var(--bg-primary)}.member-avatar .status-indicator.active{background:var(--accent-success)}.member-avatar .status-indicator.inactive{background:var(--text-muted)}.member-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.member-name{font-weight:600;color:var(--text-primary);font-size:.9375rem}.member-email{font-size:.8125rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-assignment{flex-shrink:0}.member-assignment .assignment-badge{font-size:.6875rem;font-weight:500;padding:4px 10px;border-radius:var(--radius-full);white-space:nowrap}.member-assignment .assignment-badge.not-assigned{background:var(--bg-tertiary);color:var(--text-muted)}.member-assignment .assignment-badge.assigned-here{background:#10b98126;color:var(--accent-success)}.member-assignment .assignment-badge.assigned-elsewhere{background:#f59e0b26;color:#f59e0b}.member-selected-count{padding-top:var(--spacing-md);border-top:1px solid var(--border-primary);font-size:.875rem;color:var(--accent-primary);font-weight:500}@media (max-width: 576px){.member-team-info{flex-direction:column;text-align:center}.member-team-header,.member-team-meta{justify-content:center}.member-item{flex-wrap:wrap}.member-info{flex:1 1 calc(100% - 80px);order:2}.member-checkbox,.member-avatar{order:1}.member-assignment{order:3;width:100%;padding-left:calc(22px + var(--spacing-md) + 40px + var(--spacing-md));margin-top:var(--spacing-xs)}.member-list{max-height:300px}}.modal-form .radio-group-simple{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.modal-form .radio-label-simple{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-primary);border-radius:var(--radius-md);transition:all .15s ease;min-width:100px}.modal-form .radio-label-simple:hover{background:var(--bg-secondary);border-color:var(--border-secondary)}.modal-form .radio-label-simple input[type=radio]{width:16px;height:16px;accent-color:var(--accent-primary);cursor:pointer}.modal-form .radio-label-simple input[type=radio]:checked+.radio-text{color:var(--accent-primary);font-weight:500}.modal-form .radio-text{font-size:.875rem;color:var(--text-primary)}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-primary);cursor:pointer}.checkbox-text{font-size:.875rem;color:var(--text-primary)}.modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-md);color:var(--text-muted)}.modal-loading p{margin:0;font-size:.9375rem}.team-icon-upload-container{display:flex;align-items:flex-start;gap:var(--spacing-md)}.team-icon-preview{position:relative;width:80px;height:80px;min-width:80px;border-radius:var(--radius-md);overflow:hidden;cursor:pointer;border:2px dashed var(--border-secondary);transition:all .2s ease}.team-icon-preview:hover{border-color:var(--accent-primary)}.team-icon-preview:hover .team-icon-overlay{opacity:1}.team-icon-image{width:100%;height:100%;object-fit:cover}.team-icon-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);color:var(--text-muted);font-size:2rem}.team-icon-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;opacity:0;transition:opacity .2s ease;color:#fff;font-size:.75rem}.team-icon-overlay svg{font-size:1.25rem}.team-icon-info{display:flex;flex-direction:column;gap:var(--spacing-xs);justify-content:center}.team-icon-info .btn{white-space:nowrap}.team-icon-info small,.team-icon-hint,.team-icon-format{font-size:.75rem;color:var(--text-muted);line-height:1.4}.team-icon-hint{font-weight:500;color:var(--text-secondary)}.team-icon-format{font-size:.6875rem}@media (max-width: 576px){.team-icon-upload-container{flex-direction:column;align-items:center;text-align:center}.team-icon-info{align-items:center}}.team-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.team-list-page .card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 2px 12px #0000000f;overflow:visible}.team-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.team-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.team-list-page .header-actions>.basic-select,.team-list-page .header-actions>.searchable-select{width:150px;min-width:130px;flex-shrink:0}.team-list-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.team-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.team-list-page .card-body{padding:0;overflow:visible}.team-list-page .data-table{table-layout:fixed;width:100%}.team-list-page .data-table td{overflow:hidden;text-overflow:ellipsis}.team-list-page .th-actions{text-align:center}.team-list-page .form-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-primary)}.team-list-page .table tbody tr.selected,.team-list-page .table tbody tr.selected:hover{background:var(--accent-primary-light)}.team-list-page .team-id{font-size:.75rem;font-weight:500;color:var(--text-muted);font-family:var(--font-mono)}.team-list-page .team-info{display:flex;align-items:center;gap:var(--spacing-sm);max-width:100%;overflow:hidden}.team-list-page .team-icon-sm{width:32px;height:32px;background:var(--accent-light);color:var(--accent-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:.875rem;flex-shrink:0}.team-list-page .team-name-text{font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.team-list-page .team-type-badge{font-size:.6875rem;font-weight:600;padding:4px 10px;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px;display:inline-block;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-list-page .team-type-badge.training{background:#3b82f626;color:#3b82f6}.team-list-page .team-type-badge.corporate{background:#8b5cf626;color:#8b5cf6}.team-list-page .team-type-badge.assessment{background:#ec489926;color:#ec4899}.team-list-page .team-type-badge.default{background:var(--bg-tertiary);color:var(--text-secondary)}.team-list-page .status-badge-toggle{display:inline-flex;align-items:center;gap:5px;padding:3px 10px 3px 6px;border-radius:var(--radius-full);border:none;cursor:pointer;font-size:.75rem;font-weight:500;transition:all .2s ease}.team-list-page .status-badge-toggle .toggle-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}.team-list-page .status-badge-toggle.active{background:var(--accent-success-light);color:var(--accent-success)}.team-list-page .status-badge-toggle.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.team-list-page .status-badge-toggle:hover{opacity:.8;transform:scale(1.02)}.team-list-page .team-avatar-btn{position:relative;cursor:pointer;overflow:hidden}.team-list-page .team-avatar-btn .team-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-md)}.team-list-page .team-avatar-btn .avatar-upload-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;border-radius:var(--radius-md);color:#fff;font-size:.75rem}.team-list-page .team-avatar-btn:hover .avatar-upload-overlay{opacity:1}.team-list-page .status-badge{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:500;padding:4px 10px;border-radius:var(--radius-full)}.team-list-page .status-badge .status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.team-list-page .status-badge.active{background:var(--accent-success-light);color:var(--accent-success)}.team-list-page .status-badge.active .status-dot{background:var(--accent-success)}.team-list-page .status-badge.inactive .status-dot{background:var(--text-muted)}.team-list-page .member-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:var(--radius-full);background:#10b9811a;color:var(--accent-success)}.team-list-page .member-badge.empty{background:var(--bg-tertiary);color:var(--text-muted)}.team-list-page .member-badge.clickable{cursor:pointer;transition:all .2s ease}.team-list-page .member-badge.clickable:hover{transform:scale(1.05);box-shadow:0 2px 8px #10b9814d}.team-list-page .instructor-info{display:inline-flex;align-items:center;gap:var(--spacing-sm);max-width:100%;overflow:hidden;flex-wrap:nowrap}.team-list-page .avatar-sm{width:32px;height:32px;background:var(--accent-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;flex-shrink:0}.team-list-page .instructor-info .user-name-link,.team-list-page .instructor-info .text-muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.team-list-page .date-text{font-size:.8125rem;color:var(--text-secondary);white-space:nowrap}.team-list-page .action-buttons{display:flex;align-items:center;gap:var(--spacing-xs)}.team-list-page .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg);animation:fadeIn .2s ease}.team-list-page .modal-container{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);width:100%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease;box-shadow:var(--shadow-xl)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.team-list-page .member-modal{max-width:900px}.team-list-page .modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-primary);flex-shrink:0}.team-list-page .modal-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.team-list-page .modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.team-list-page .modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.team-list-page .modal-body{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.team-list-page .team-summary-card{background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.team-list-page .summary-header{display:flex;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.team-list-page .summary-icon{width:48px;height:48px;background:var(--accent-light);color:var(--accent-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.team-list-page .summary-info{flex:1;min-width:0}.team-list-page .summary-info h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs)}.team-list-page .summary-meta{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.team-list-page .summary-meta .team-id{font-size:.75rem;color:var(--text-muted);font-family:var(--font-mono)}.team-list-page .summary-members{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);flex-shrink:0}.team-list-page .summary-members .member-count{font-size:1.5rem;font-weight:700;color:var(--accent-primary);line-height:1}.team-list-page .summary-members .member-label{font-size:.6875rem;color:var(--text-muted);text-transform:uppercase}.team-list-page .status-badge{display:inline-flex;align-items:center;gap:4px;font-size:.6875rem;font-weight:500;padding:4px 10px;border-radius:var(--radius-full);text-transform:uppercase}.team-list-page .status-badge.active{background:#10b98126;color:var(--accent-success)}.team-list-page .status-badge.inactive{background:var(--bg-tertiary);color:var(--text-muted)}.team-list-page .summary-details{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm) var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--border-primary)}.team-list-page .summary-detail{display:flex;align-items:center;gap:var(--spacing-xs)}.team-list-page .summary-detail .label{font-size:.75rem;color:var(--text-muted)}.team-list-page .summary-detail .value{font-size:.8125rem;color:var(--text-primary);font-weight:500}.team-list-page .candidate-section{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg)}.team-list-page .candidate-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);flex-wrap:wrap}.team-list-page .candidate-header h4{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0}.team-list-page .candidate-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.team-list-page .candidate-actions .search-box{min-width:180px;max-width:220px}.team-list-page .candidate-actions .search-box .form-control{height:34px;padding-left:32px;font-size:.8125rem}.team-list-page .candidate-actions .search-box .search-icon{font-size:.75rem;left:var(--spacing-sm)}.team-list-page .candidate-list{max-height:350px;overflow-y:auto}.team-list-page .candidate-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);transition:background var(--transition-fast)}.team-list-page .candidate-item:last-child{border-bottom:none}.team-list-page .candidate-item:hover{background:var(--bg-hover)}.team-list-page .candidate-item.selected{background:#3b82f614}.team-list-page .candidate-select{flex-shrink:0}.team-list-page .form-checkbox{width:18px;height:18px;border:2px solid var(--border-secondary);border-radius:var(--radius-sm);cursor:pointer;accent-color:var(--accent-primary)}.team-list-page .candidate-avatar{flex-shrink:0}.team-list-page .candidate-avatar img{width:36px;height:36px;border-radius:50%;object-fit:cover}.team-list-page .avatar-placeholder{width:36px;height:36px;border-radius:50%;background:var(--accent-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600}.team-list-page .candidate-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.team-list-page .candidate-name{font-size:.875rem;font-weight:500;color:var(--text-primary)}.team-list-page .candidate-email{font-size:.75rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-list-page .candidate-assignment{flex-shrink:0}.team-list-page .assignment-badge{font-size:.6875rem;font-weight:500;padding:4px 10px;border-radius:var(--radius-full);white-space:nowrap}.team-list-page .assignment-badge.not-assigned{background:var(--bg-tertiary);color:var(--text-muted)}.team-list-page .assignment-badge.assigned-here{background:#10b98126;color:var(--accent-success)}.team-list-page .assignment-badge.assigned-elsewhere{background:#f59e0b26;color:#f59e0b}.team-list-page .candidate-mobile{flex-shrink:0;font-size:.8125rem;color:var(--text-secondary);white-space:nowrap}.team-list-page .no-candidates{padding:var(--spacing-xl);text-align:center}.team-list-page .no-candidates p{color:var(--text-muted);margin:0}@media (max-width: 1200px){.team-list-page .header-actions>.basic-select,.team-list-page .header-actions>.searchable-select{width:130px;min-width:110px}}@media (max-width: 1024px){.team-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.team-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}.team-list-page .modal-container{max-width:calc(100vw - 32px);max-height:calc(100vh - 32px)}.team-list-page .summary-header{flex-wrap:wrap}.team-list-page .summary-members{order:-1;width:100%;flex-direction:row;gap:var(--spacing-sm);justify-content:center;margin-bottom:var(--spacing-sm)}.team-list-page .summary-details{grid-template-columns:1fr}}@media (max-width: 768px){.team-list-page .card-header{flex-direction:column;align-items:stretch}.team-list-page .header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.team-list-page .header-actions>.basic-select,.team-list-page .header-actions>.searchable-select{flex:1;width:auto;min-width:110px}.team-list-page .header-actions{justify-content:flex-end;flex-wrap:wrap}.team-list-page .modal-overlay{padding:var(--spacing-sm)}.team-list-page .member-modal{max-width:calc(100vw - 16px)}.team-list-page .modal-header{padding:var(--spacing-md)}.team-list-page .modal-title{font-size:1rem}.team-list-page .modal-body,.team-list-page .team-summary-card{padding:var(--spacing-md)}.team-list-page .summary-icon{width:40px;height:40px;font-size:1rem}.team-list-page .summary-info h3{font-size:1rem}.team-list-page .candidate-header{flex-direction:column;align-items:stretch;gap:var(--spacing-sm);padding:var(--spacing-md)}.team-list-page .candidate-actions{flex-direction:column;width:100%}.team-list-page .candidate-actions .search-box{min-width:auto;max-width:none;width:100%}.team-list-page .candidate-item{flex-wrap:wrap;padding:var(--spacing-md);gap:var(--spacing-sm)}.team-list-page .candidate-mobile{display:none}}@media (max-width: 576px){.team-list-page .team-icon-sm{width:28px;height:28px;font-size:.75rem}.team-list-page .candidate-list{max-height:280px}.team-list-page .footer-info{width:100%;justify-content:space-between}.team-list-page .footer-info span{font-size:.75rem}}@media (max-width: 400px){.team-list-page .modal-overlay{padding:0}.team-list-page .modal-container{max-width:100%;max-height:100vh;border-radius:0}.team-list-page .member-modal{max-width:100%}}.team-type-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.team-type-list-page .card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 2px 12px #0000000f;overflow:visible}.team-type-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.team-type-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.team-type-list-page .header-actions>.basic-select{width:150px;min-width:130px;flex-shrink:0}.team-type-list-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.team-type-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.team-type-list-page .card-body{padding:0;overflow:visible}.team-type-list-page .th-actions{text-align:center;min-width:120px}.team-type-list-page .form-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-primary)}.team-type-list-page .table tbody tr.selected,.team-type-list-page .table tbody tr.selected:hover{background:var(--accent-primary-light)}.team-type-list-page .team-type-name{font-weight:500;color:var(--accent-primary);cursor:pointer;transition:color .15s ease}.team-type-list-page .team-type-name:hover{color:var(--accent-primary);text-decoration:underline}.team-type-list-page .status-badge-toggle{display:inline-flex;align-items:center;gap:5px;padding:3px 10px 3px 6px;border-radius:var(--radius-full);border:none;cursor:pointer;font-size:.75rem;font-weight:500;transition:all .2s ease}.team-type-list-page .status-badge-toggle .toggle-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}.team-type-list-page .status-badge-toggle.active{background:var(--accent-success-light);color:var(--accent-success)}.team-type-list-page .status-badge-toggle.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.team-type-list-page .status-badge-toggle:hover{opacity:.8;transform:scale(1.02)}.team-type-list-page .team-info{display:flex;align-items:center;gap:var(--spacing-sm);max-width:100%;overflow:hidden}.team-type-list-page .avatar-sm{width:32px;height:32px;background:var(--accent-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;flex-shrink:0}.team-type-list-page .team-info .user-name-link,.team-type-list-page .team-info .text-muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.team-type-list-page .text-muted{color:var(--text-muted);font-size:.875rem}.team-type-list-page .text-secondary{color:var(--text-secondary);font-size:.875rem}.team-type-list-page .date-text{font-size:.8125rem;color:var(--text-secondary);white-space:nowrap}.team-type-list-page .action-buttons{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs)}.team-type-list-page .btn-icon{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.team-type-list-page .btn-icon:hover{background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--accent-primary)}.team-type-list-page .btn-icon.danger:hover{background:#ef44441a;border-color:var(--accent-danger);color:var(--accent-danger)}.team-type-list-page .btn-icon:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 1200px){.team-type-list-page .header-actions>.basic-select{width:130px;min-width:110px}}@media (max-width: 1024px){.team-type-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.team-type-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}.team-type-list-page .table th:nth-child(6),.team-type-list-page .table td:nth-child(6),.team-type-list-page .table th:nth-child(7),.team-type-list-page .table td:nth-child(7),.team-type-list-page .table th:nth-child(8),.team-type-list-page .table td:nth-child(8){display:none}}@media (max-width: 768px){.team-type-list-page .card-header{flex-direction:column;align-items:stretch}.team-type-list-page .header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.team-type-list-page .header-actions>.basic-select{flex:1;width:auto;min-width:110px}.team-type-list-page .table th:nth-child(5),.team-type-list-page .table td:nth-child(5){display:none}}@media (max-width: 576px){.team-type-list-page .table th:nth-child(4),.team-type-list-page .table td:nth-child(4){display:none}.team-type-list-page .team-type-name{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;cursor:pointer;color:var(--accent-primary)}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.vm-operations-toolbar{display:flex;justify-content:center;gap:3px;padding-top:4px;position:relative;z-index:10}.vm-op-btn{width:18px;height:18px;border-radius:3px;border:none;background:#ffffff1a;font-size:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;pointer-events:all;position:relative;z-index:11}.vm-op-btn:hover:not(:disabled){background:#fff3;transform:scale(1.1)}.vm-op-btn:disabled{opacity:.4;cursor:not-allowed}.vm-op-btn.loading{opacity:.6;cursor:wait}.vm-op-btn.power-on{color:#22c55e}.vm-op-btn.power-on:hover:not(:disabled){background:#22c55e4d;color:#4ade80}.vm-op-btn.power-off{color:#ef4444}.vm-op-btn.power-off:hover:not(:disabled){background:#ef44444d;color:#f87171}.vm-op-btn.console{color:#3b82f6}.vm-op-btn.console:hover:not(:disabled){background:#3b82f64d;color:#60a5fa}.vm-op-btn.snapshot{color:#f59e0b}.vm-op-btn.snapshot:hover:not(:disabled){background:#f59e0b4d;color:#fbbf24}.vm-op-btn.download-console{color:#06b6d4}.vm-op-btn.download-console:hover:not(:disabled){background:#06b6d44d;color:#22d3ee}.vm-op-btn.restore-snapshot{color:#22c55e}.vm-op-btn.restore-snapshot:hover:not(:disabled){background:#22c55e4d;color:#4ade80}.vm-op-btn.delete-snapshot{color:#ef4444}.vm-op-btn.delete-snapshot:hover:not(:disabled){background:#ef44444d;color:#f87171}.vm-op-btn.configure{color:#a855f7}.vm-op-btn.configure:hover:not(:disabled){background:#a855f74d;color:#c084fc}.vm-op-btn.inject-attack{color:#ec4899}.vm-op-btn.inject-attack:hover:not(:disabled){background:#ec48994d;color:#f472b6}.vm-op-btn.eject-cdrom{color:#f59e0b}.vm-op-btn.eject-cdrom:hover:not(:disabled){background:#f59e0b4d;color:#fbbf24}.vm-node{background:linear-gradient(135deg,#1e3a5f,#2d4a6f);border:2px solid #4a90d9;border-radius:6px;padding:6px 8px;min-width:100px;max-width:120px;color:#fff;font-size:10px;position:relative;box-shadow:0 2px 6px #00000040;transition:all .2s ease}.vm-node.expanded{min-width:140px;max-width:160px;padding:8px 10px}.vm-node:hover{transform:translateY(-1px);box-shadow:0 3px 8px #0000004d}.vm-node.selected{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f64d,0 3px 8px #0000004d}.vm-node.status-running{border-color:#22c55e}.vm-node.status-stopped{border-color:#6b7280}.vm-node.status-paused{border-color:#f59e0b}.vm-node.status-error{border-color:#ef4444}.vm-handle{width:6px;height:6px;background:#4a90d9;border:1px solid #fff;border-radius:50%;transition:all .2s ease}.vm-handle:hover{background:#3b82f6;transform:scale(1.4)}.vm-node__header{display:flex;align-items:center;gap:4px}.vm-node__icon{width:18px;height:18px;background:#ffffff1a;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:9px;color:#60a5fa;flex-shrink:0;overflow:hidden}.vm-node__icon-img{width:100%;height:100%;object-fit:cover;border-radius:3px}.vm-node__icon .hidden{display:none}.vm-node__title{flex:1;min-width:0}.vm-node__name{font-weight:600;font-size:9px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.vm-node__status{font-size:6px;flex-shrink:0}.vm-node__status--spinning{font-size:13px;width:14px;height:14px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 0 2px rgba(0,0,0,.45))}.vm-node__expand-btn{width:14px;height:14px;border-radius:3px;border:none;background:#ffffff1a;color:#ffffffb3;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:6px;flex-shrink:0;transition:all .15s ease}.vm-node__expand-btn:hover{background:#fff3;color:#fff}.vm-node__expanded-content{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.1);animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.vm-node__template{font-size:8px;color:#fff9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.vm-node__stats{display:flex;gap:6px;padding:4px;background:#0003;border-radius:3px;margin-bottom:4px}.vm-node__stat{display:flex;align-items:center;gap:2px;font-size:8px;color:#fffc}.vm-node__stat svg{font-size:7px}.vm-node__stat.stat-cpu svg{color:#60a5fa}.vm-node__stat.stat-ram svg{color:#22c55e}.vm-node__stat.stat-snapshot svg{color:#f59e0b}.vm-node__nics{display:flex;flex-wrap:wrap;gap:2px;margin-bottom:4px}.vm-node__nic-badge{background:#3b82f64d;color:#93c5fd;padding:1px 4px;border-radius:2px;font-size:7px;font-weight:500}.vm-node__delete-btn{position:absolute;top:-5px;right:-5px;width:14px;height:14px;border-radius:50%;background:#ef4444;border:1px solid #fff;color:#fff;font-size:7px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s ease;z-index:10}.vm-node:hover .vm-node__delete-btn{opacity:1}.vm-node__delete-btn:hover:not(:disabled){background:#dc2626;transform:scale(1.1)}.vm-node__delete-btn:disabled{background:#6b7280;cursor:not-allowed;opacity:.5}.vm-node .node-created-badge{position:absolute;bottom:-5px;left:-5px;width:14px;height:14px;border-radius:50%;border:1px solid #fff;display:flex;align-items:center;justify-content:center;font-size:7px;color:#fff;z-index:10;transition:all .2s ease}.vm-node .node-created-badge.pending{background:#f59e0b}.vm-node .node-created-badge.created{background:#22c55e}.vm-node .node-created-badge.partial{background:#eab308}.vm-node .node-created-badge.failed{background:#ef4444}.vm-node.node-locked{opacity:.7;pointer-events:auto}.vm-node .node-lock-badge{position:absolute;bottom:-5px;right:-5px;width:14px;height:14px;border-radius:50%;background:#f59e0b;border:1px solid #fff;display:flex;align-items:center;justify-content:center;font-size:7px;color:#fff;z-index:11;animation:lockPulse 2s ease-in-out infinite}.vm-node .node-message-badge{position:absolute;top:-5px;left:-5px;width:14px;height:14px;border-radius:50%;background:#ef4444;border:1px solid #fff;display:flex;align-items:center;justify-content:center;font-size:7px;color:#fff;z-index:11;cursor:help}.vm-node.no-access{opacity:.55;border-color:#6b7280}.vm-node__access-users{display:flex;flex-direction:column;gap:3px;padding:3px 0;border-top:1px solid rgba(255,255,255,.1);margin-top:2px}.vm-node__access-user{display:flex;align-items:center;gap:4px;min-width:0}.vm-node__access-avatar{width:16px;height:16px;border-radius:50%;flex-shrink:0;object-fit:cover;border:1px solid rgba(255,255,255,.3)}.vm-node__access-avatar--placeholder{display:inline-flex;align-items:center;justify-content:center;background:#4a90d9;color:#fff;font-size:8px;font-weight:600}.vm-node__access-name{font-size:8px;color:#fffc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70px}.switch-node{background:linear-gradient(135deg,#065f46,#047857);border:2px solid #10b981;border-radius:16px;padding:6px 10px;min-width:90px;max-width:120px;color:#fff;font-size:9px;position:relative;box-shadow:0 2px 6px #00000040;transition:all .2s ease}.switch-node.custom{background:linear-gradient(135deg,#7c2d12,#9a3412);border-color:#f97316}.switch-node:hover{transform:translateY(-1px);box-shadow:0 3px 8px #0000004d}.switch-node.selected{box-shadow:0 0 0 2px #10b9814d,0 3px 8px #0000004d}.switch-node.custom.selected{box-shadow:0 0 0 2px #f973164d,0 3px 8px #0000004d}.switch-handle{width:6px;height:6px;background:#10b981;border:1px solid #fff;border-radius:50%;transition:all .2s ease}.switch-node.custom .switch-handle{background:#f97316}.switch-handle:hover{transform:scale(1.4)}.switch-node__type-badge{position:absolute;top:-5px;left:50%;transform:translate(-50%);width:12px;height:12px;background:#10b981;border:1px solid #fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:6px;color:#fff}.switch-node.custom .switch-node__type-badge{background:#f97316}.switch-node__content{display:flex;align-items:center;gap:6px}.switch-node__icon{width:18px;height:18px;background:#ffffff26;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:8px;flex-shrink:0;overflow:hidden}.switch-node__icon-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.switch-node__icon .hidden{display:none}.switch-node__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:0}.switch-node__name{font-weight:600;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.switch-node__description{font-size:7px;color:#ffffffb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.switch-node__connections{margin-top:4px;text-align:center;font-size:7px;color:#ffffffb3;background:#0003;padding:2px 4px;border-radius:8px}.switch-node__delete-btn{position:absolute;top:-5px;right:-5px;width:14px;height:14px;border-radius:50%;background:#ef4444;border:1px solid #fff;color:#fff;font-size:7px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s ease;z-index:10}.switch-node:hover .switch-node__delete-btn{opacity:1}.switch-node__delete-btn:hover:not(:disabled){background:#dc2626;transform:scale(1.1)}.switch-node__delete-btn:disabled{background:#6b7280;cursor:not-allowed;opacity:.5}.switch-node__edit-btn{position:absolute;top:-5px;right:12px;width:14px;height:14px;border-radius:50%;background:#3b82f6;border:1px solid #fff;color:#fff;font-size:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s ease;z-index:10}.switch-node.predefined .switch-node__edit-btn{right:-5px}.switch-node:hover .switch-node__edit-btn{opacity:1}.switch-node__edit-btn:hover:not(:disabled){background:#2563eb;transform:scale(1.1)}.switch-node__edit-btn:disabled{background:#6b7280;cursor:not-allowed;opacity:.5}.switch-node .node-created-badge{position:absolute;bottom:-5px;left:-5px;width:14px;height:14px;border-radius:50%;border:1px solid #fff;display:flex;align-items:center;justify-content:center;font-size:7px;color:#fff;z-index:10;transition:all .2s ease}.switch-node .node-created-badge.pending{background:#f59e0b}.switch-node .node-created-badge.created{background:#22c55e}.switch-node .node-created-badge.partial{background:#eab308}.switch-node .node-created-badge.failed{background:#ef4444}.switch-node .node-created-badge.predefined{background:#0ea5e9}.switch-node.node-locked{opacity:.7;pointer-events:auto}.switch-node .node-lock-badge{position:absolute;bottom:-5px;right:-5px;width:14px;height:14px;border-radius:50%;background:#f59e0b;border:1px solid #fff;display:flex;align-items:center;justify-content:center;font-size:7px;color:#fff;z-index:11;animation:lockPulse 2s ease-in-out infinite}@keyframes lockPulse{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 3px #f59e0b00}}.switch-node .node-message-badge{position:absolute;top:-5px;left:-5px;width:14px;height:14px;border-radius:50%;background:#ef4444;border:1px solid #fff;display:flex;align-items:center;justify-content:center;font-size:7px;color:#fff;z-index:11;cursor:help}.tg-node{background:linear-gradient(135deg,#3b1f5e,#4c2882);border:2px solid #8b5cf6;border-radius:6px;padding:6px 8px;min-width:100px;max-width:120px;color:#fff;font-size:10px;position:relative;box-shadow:0 2px 6px #00000040;transition:all .2s ease}.tg-node:hover{transform:translateY(-1px);box-shadow:0 3px 8px #0000004d}.tg-node.selected{border-color:#a78bfa;box-shadow:0 0 0 2px #8b5cf64d,0 3px 8px #0000004d}.tg-node.draft{border-style:dashed}.tg-node.locked{opacity:.7;pointer-events:none}.tg-handle{width:6px;height:6px;background:#8b5cf6;border:1px solid #fff;border-radius:50%;transition:all .2s ease}.tg-handle:hover{width:8px;height:8px;background:#a78bfa}.tg-node__header{display:flex;align-items:center;gap:4px;margin-bottom:4px}.tg-node__icon{color:#c4b5fd;font-size:11px;flex-shrink:0}.tg-node__title{flex:1;min-width:0}.tg-node__name{font-weight:600;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.tg-node__status{font-size:7px;flex-shrink:0}.tg-node__info{display:flex;align-items:center;gap:4px;margin-bottom:4px}.tg-node__nic-count{font-size:8px;color:#fff9}.tg-node__actions{display:flex;gap:2px;border-top:1px solid rgba(255,255,255,.1);padding-top:4px}.tg-action-btn{background:#ffffff1a;border:none;border-radius:3px;color:#ffffffb3;padding:2px 5px;font-size:9px;cursor:pointer;transition:all .15s ease;flex:1}.tg-action-btn:hover:not(:disabled){background:#fff3;color:#fff}.tg-action-btn:disabled{opacity:.4;cursor:not-allowed}.tg-action-btn.power-on{color:#22c55e}.tg-action-btn.power-off{color:#6b7280}.tg-action-btn.delete:hover:not(:disabled){color:#ef4444}.tg-lock-badge{position:absolute;bottom:-5px;right:-5px;width:14px;height:14px;border-radius:50%;background:#f59e0b;border:1px solid #fff;display:flex;align-items:center;justify-content:center;font-size:7px;color:#fff;z-index:2;animation:tg-lock-pulse 1.5s ease-in-out infinite}@keyframes tg-lock-pulse{0%,to{opacity:1}50%{opacity:.5}}.tg-message-badge{position:absolute;top:-5px;left:-5px;width:14px;height:14px;border-radius:50%;background:#ef4444;border:1px solid #fff;display:flex;align-items:center;justify-content:center;font-size:7px;color:#fff;z-index:2}.tg-node__lock-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0006;border-radius:4px;display:flex;align-items:center;justify-content:center;color:#fff9;font-size:12px;pointer-events:none}.nic-edge{stroke:#60a5fa;stroke-width:2;fill:none;transition:stroke-width .2s ease,stroke .2s ease}.nic-edge:hover{stroke-width:3}.nic-edge.selected{stroke:#3b82f6;stroke-width:3}.nic-edge-label{display:flex;align-items:center;gap:4px;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:4px;padding:2px 6px;font-size:10px;color:var(--text-muted);transition:all .2s ease;z-index:1000}.nic-edge-label:hover{background:var(--bg-hover);color:var(--text-primary)}.nic-edge-label.selected{background:#3b82f626;border-color:#3b82f6;color:#60a5fa}.nic-edge-label__text{font-weight:500}.nic-edge-label.clickable .nic-edge-label__text{cursor:pointer;transition:color .2s ease}.nic-edge-label.clickable .nic-edge-label__text:hover{color:#60a5fa;text-decoration:underline}.nic-edge-label__delete{width:16px;height:16px;border-radius:50%;border:none;background:transparent;color:#6b7280;font-size:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:1;transition:all .2s ease;margin-left:2px}.nic-edge-label__delete:hover{background:#ef4444;color:#fff}.nic-edge-label.locked{opacity:.6}.nic-edge-label.locked .nic-edge-label__text{cursor:default}.nic-edge-label.locked .nic-edge-label__delete{cursor:not-allowed;display:none}.nic-edge-label__lock{font-size:8px;color:var(--text-muted);opacity:.7}.nic-edge-label__attach{font-size:8px}.nic-edge-label__attach.attached{color:#22c55e}.nic-edge-label__attach.detached{color:#ef4444}.nic-edge.live{stroke:#22c55e;stroke-dasharray:6 3;animation:nic-edge-flow .6s linear infinite}.nic-edge.live:hover,.nic-edge.live.selected{stroke:#16a34a}@keyframes nic-edge-flow{to{stroke-dashoffset:-9}}.nic-edge-label.live{border-color:#22c55e;color:#22c55e}.nic-edge-label.live:hover{color:#16a34a}.custom-network-modal .modal-body{display:flex;flex-direction:column;gap:16px}.custom-network-modal .network-icon-picker{display:flex;align-items:center;gap:16px}.custom-network-modal .network-icon-preview{width:64px;height:64px;background:var(--bg-secondary);border:2px solid var(--border-primary);border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden}.custom-network-modal .network-icon-preview img{width:100%;height:100%;object-fit:cover}.custom-network-modal .network-icon-preview svg{font-size:24px;color:var(--text-muted)}.custom-network-modal .network-icon-actions{display:flex;flex-direction:column;gap:8px}.custom-network-modal .btn-outline-sm{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;background:transparent;border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);cursor:pointer;transition:all .2s ease}.custom-network-modal .btn-outline-sm:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.custom-network-modal .btn-outline-sm.btn-danger{color:#ef4444;border-color:#ef44444d}.custom-network-modal .btn-outline-sm.btn-danger:hover{background:#ef44441a;border-color:#ef4444}.nic-config-modal .modal-body{display:flex;flex-direction:column;gap:20px}.nic-config-modal__connection{display:flex;align-items:center;justify-content:center;gap:16px;padding:16px;background:var(--bg-secondary);border-radius:8px}.nic-config-modal__connection .connection-node{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 16px;border-radius:8px;min-width:120px}.nic-config-modal__connection .connection-node.vm{background:#3b82f626;border:1px solid rgba(59,130,246,.3)}.nic-config-modal__connection .connection-node.switch{background:#10b98126;border:1px solid rgba(16,185,129,.3)}.nic-config-modal__connection .node-label{font-weight:600;font-size:13px;color:var(--text-primary)}.nic-config-modal__connection .node-type{font-size:10px;color:var(--text-muted)}.nic-config-modal__connection .connection-arrow{color:var(--text-muted);font-size:16px}.nic-config-modal .form-control.is-invalid{border-color:#ef4444}.nic-config-modal .error-text{color:#ef4444;font-size:12px;margin-top:4px;display:block}.vm-config-modal__tabs{display:flex;gap:2px;padding:0 20px;background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);flex-shrink:0}.vm-config-modal__tabs .tab-btn{display:flex;align-items:center;gap:6px;padding:12px 16px;background:transparent;border:none;color:var(--text-muted);font-size:13px;cursor:pointer;position:relative;transition:all .2s ease}.vm-config-modal__tabs .tab-btn:hover{color:var(--text-primary)}.vm-config-modal__tabs .tab-btn.active{color:var(--accent-primary)}.vm-config-modal__tabs .tab-btn.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent-primary)}.vm-config-modal__tabs .tab-btn svg{font-size:12px}.vm-config-modal__content{padding:20px}.vm-config-modal .tab-content{display:flex;flex-direction:column;gap:16px}.vm-config-modal .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.vm-config-modal .disks-list{display:flex;flex-direction:column;gap:12px}.vm-config-modal .disks-list:not(:empty){margin-bottom:16px}.vm-config-modal .disk-item{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:12px}.vm-config-modal .disk-item__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.vm-config-modal .disk-item__title{font-weight:600;font-size:13px;color:var(--text-primary)}.vm-config-modal .disk-item__fields{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.vm-config-modal .disk-item__fields .form-group{margin-bottom:0}.vm-config-modal .disk-item__fields .form-label{font-size:11px;margin-bottom:4px}.vm-config-modal .disk-item__fields .form-control{padding:6px 10px;font-size:12px}.vm-config-modal .checkbox-group{display:flex;flex-direction:column;gap:4px}.vm-config-modal .disk-item__fields .checkbox-group{flex-direction:row;align-items:flex-end}.vm-config-modal .checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;color:var(--text-primary)}.vm-config-modal .checkbox-label input{width:16px;height:16px;accent-color:var(--accent-primary)}.vm-config-modal .form-hint{font-size:11px;color:var(--text-muted);margin:0}.vm-config-modal .info-box{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:16px}.vm-config-modal .info-box p{margin:0 0 12px;font-size:13px;color:var(--text-secondary)}.vm-config-modal .info-box p:last-child{margin-bottom:0}.vm-config-modal .nics-list{display:flex;flex-direction:column;gap:12px}.vm-config-modal .nics-list:not(:empty){margin-bottom:16px}.vm-config-modal .nic-item{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:12px}.vm-config-modal .nic-item__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.vm-config-modal .nic-item__title{font-weight:600;font-size:13px;color:var(--text-primary)}.vm-config-modal .nic-item__fields{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start}.vm-config-modal .nic-item__fields .form-group{margin-bottom:0}.vm-config-modal .nic-item__fields .form-label{font-size:11px;margin-bottom:4px}.vm-config-modal .nic-item__fields .form-control{height:34px;padding:0 10px;font-size:12px}.vm-config-modal .nic-item__fields .basic-select .select-control{height:34px;min-height:34px;padding:0 8px;font-size:12px}.vm-config-modal .nic-item__fields .basic-select .select-value{font-size:12px}.vm-config-modal .nic-item__fields .basic-select .option-item{padding:6px 10px;font-size:12px}.vm-config-modal .nic-item__fields .form-control.is-invalid{border-color:#ef4444}.vm-config-modal .nic-item__fields .error-text{font-size:10px;color:#ef4444;margin-top:2px}.vm-config-modal .nic-item__info{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-primary)}.vm-config-modal .nic-item--locked{opacity:.65;pointer-events:none}.vm-config-modal .nic-item--locked .btn-icon,.vm-config-modal .nic-item--locked .form-control,.vm-config-modal .nic-item--locked .basic-select .select-control{pointer-events:auto;cursor:not-allowed}.vm-config-modal .nic-model-desc{font-size:11px;color:var(--text-muted);line-height:1.4}.vm-config-modal .add-nic-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;font-size:13px;font-weight:500;border-radius:8px;margin-top:8px}.vm-config-modal .add-nic-btn svg{font-size:12px}.vm-config-modal .btn-icon{width:28px;height:28px;border-radius:4px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.vm-config-modal .btn-icon:hover{background:var(--bg-hover)}.vm-config-modal .btn-icon.danger:hover{background:#ef444426;color:#ef4444}.vm-config-modal .add-disk-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;font-size:13px;font-weight:500;border-radius:8px;margin-top:8px}.vm-config-modal .add-disk-btn svg{font-size:12px}.vm-config-modal .vm-icon-picker{display:flex;align-items:center;gap:16px}.vm-config-modal .vm-icon-preview{width:64px;height:64px;background:var(--bg-secondary);border:2px solid var(--border-primary);border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden}.vm-config-modal .vm-icon-preview img{width:100%;height:100%;object-fit:cover}.vm-config-modal .vm-icon-preview svg{font-size:24px;color:var(--text-muted)}.vm-config-modal .vm-icon-actions{display:flex;flex-direction:column;gap:8px}.vm-config-modal .btn-outline-sm{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;background:transparent;border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);cursor:pointer;transition:all .2s ease}.vm-config-modal .btn-outline-sm:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.vm-config-modal .btn-outline-sm.btn-danger{color:#ef4444;border-color:#ef44444d}.vm-config-modal .btn-outline-sm.btn-danger:hover{background:#ef44441a;border-color:#ef4444}.tg-config-modal{padding:var(--spacing-md)}.tg-config-section-header{display:flex;align-items:center;gap:8px;font-size:.9375rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-primary)}.tg-config-section-header svg{color:var(--accent-primary)}.tg-config-info{padding:var(--spacing-md);text-align:center;color:var(--text-muted);font-size:.875rem}.tg-config-nics-list{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.tg-config-nic-item{border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary)}.tg-config-nic-item.nic-locked{opacity:.7}.tg-config-nic-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}.tg-config-nic-title{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.tg-config-nic-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--spacing-sm)}.tg-config-add-nic-btn{width:100%}.tg-config-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--border-primary);margin-top:var(--spacing-md)}@media (max-width: 576px){.tg-config-nic-fields{grid-template-columns:1fr}}.attack-library-page{padding:var(--spacing-sm);max-width:1600px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.attack-library-page .card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap}.attack-library-page .card-header .search-box{flex:1 1 240px;min-width:200px}.attack-library-page .header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}@media (max-width: 560px){.attack-library-page .card-header .search-box{flex-basis:100%}.attack-library-page .header-actions{width:100%;justify-content:flex-end}}.attack-library-page .atk-error-banner{padding:12px 16px;margin:12px 16px 0;background:var(--color-danger-bg, #fef2f2);color:var(--color-danger, #b91c1c);border-radius:8px;font-size:14px}.attack-library-page .atk-table-container{overflow-x:auto}.attack-library-page .atk-table{width:100%;border-collapse:collapse;font-size:13px}.attack-library-page .atk-table thead th{background:var(--bg-secondary);padding:12px 16px;text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);border-bottom:1px solid var(--border-primary);white-space:nowrap}.attack-library-page .atk-table thead th.th-center{text-align:center}.attack-library-page .atk-table tbody td{padding:12px 16px;border-bottom:1px solid var(--border-primary);vertical-align:top}.attack-library-page .atk-table tbody td.td-center{text-align:center}.attack-library-page .atk-table tbody tr:hover{background:var(--bg-secondary)}.attack-library-page .atk-id-badge{display:inline-block;font-family:var(--font-mono);font-size:.8rem;color:var(--accent-primary);background:var(--accent-primary-light);padding:4px 8px;border-radius:4px;font-weight:500;white-space:nowrap}.attack-library-page .atk-name-cell{display:flex;flex-direction:column;gap:4px;min-width:220px}.attack-library-page .atk-name{font-weight:600;color:var(--text-primary)}.attack-library-page .atk-description{font-size:12px;color:var(--text-muted);line-height:1.4}.attack-library-page .atk-technique,.attack-library-page .atk-tactic{font-size:12px;color:var(--text-secondary)}.attack-library-page .atk-platforms{display:flex;flex-wrap:wrap;gap:4px}.attack-library-page .atk-platform-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#6366f11a;color:#6366f1;border-radius:999px;font-size:11px;white-space:nowrap}.attack-library-page .atk-platform-chip--count{padding:2px 4px 2px 8px}.attack-library-page .atk-platform-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 5px;background:#6366f1;color:#fff;border-radius:999px;font-size:10px;font-weight:700;margin-left:2px}.attack-library-page .atk-platform-more{font-size:11px;color:var(--text-muted);padding:2px 6px}.attack-library-page .atk-muted{color:var(--text-muted)}.attack-library-page .atk-test-count{display:inline-block;min-width:28px;padding:2px 8px;background:var(--bg-tertiary, #f3f4f6);color:var(--text-secondary);border-radius:999px;font-size:12px;font-weight:600}.attack-library-page .atk-empty-state{padding:64px 24px;text-align:center;color:var(--text-muted)}.attack-library-page .atk-empty-state svg{font-size:48px;margin-bottom:12px;opacity:.5}.attack-library-page .btn-icon{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md, 8px);color:var(--text-secondary);cursor:pointer;transition:background .15s ease,color .15s ease}.attack-library-page .btn-icon:hover{background:var(--bg-secondary);color:var(--text-primary)}.attack-library-page .td-actions{white-space:nowrap}.attack-library-page .action-buttons{display:inline-flex;align-items:center;gap:6px}.attack-library-page .action-buttons .btn-icon{width:32px;height:32px}.atk-detail{display:flex;flex-direction:column;gap:20px;font-size:13px;color:var(--text-primary)}.atk-detail-loading{padding:48px 24px;text-align:center}.atk-detail .atk-error-banner{padding:12px 16px;background:var(--color-danger-bg, #fef2f2);color:var(--color-danger, #b91c1c);border:1px solid var(--color-danger, #fecaca);border-radius:var(--radius-md, 8px)}.atk-detail-hero{display:flex;flex-direction:column;gap:12px;padding:20px 22px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-primary, #3b82f6) 8%,var(--bg-card)),var(--bg-card));border:1px solid var(--border-primary);border-radius:var(--radius-lg, 12px);position:relative;overflow:hidden}.atk-detail-hero:before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;background:var(--accent-primary, #3b82f6)}.atk-detail-hero-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.atk-detail-id{display:inline-flex;align-items:center;padding:5px 12px;background:var(--accent-primary, #3b82f6);color:#fff;border-radius:999px;font-size:12px;font-weight:700;font-family:var(--font-mono, ui-monospace, SFMono-Regular, monospace);letter-spacing:.02em;white-space:nowrap;box-shadow:0 2px 6px color-mix(in srgb,var(--accent-primary, #3b82f6) 35%,transparent)}.atk-detail-title{margin:0;font-size:18px;font-weight:700;color:var(--text-primary);line-height:1.3;flex:1;min-width:220px}.atk-detail-description{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.6}.atk-mitre-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.atk-mitre-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md, 10px);border-left:3px solid var(--border-primary);transition:transform .15s ease,box-shadow .15s ease}.atk-mitre-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000000f}.atk-mitre-card.tactic{border-left-color:#f59e0b}.atk-mitre-card.technique{border-left-color:#10b981}.atk-mitre-card.platforms{border-left-color:#6366f1}.atk-mitre-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.atk-mitre-value{display:flex;flex-direction:column;gap:2px;font-size:13px;font-weight:600;color:var(--text-primary)}.atk-mitre-tech-id{font-family:var(--font-mono, ui-monospace, SFMono-Regular, monospace);font-size:13px;color:var(--text-primary)}.atk-mitre-tech-name{font-size:12px;font-weight:500;color:var(--text-secondary)}.atk-mitre-platform-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.atk-detail .atk-platform-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:#6366f11a;color:#6366f1;border-radius:999px;font-size:11px;font-weight:500;white-space:nowrap}.atk-detail-section{display:flex;flex-direction:column;gap:12px}.atk-detail-section-head{display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:2px solid var(--border-primary)}.atk-detail-section-title{margin:0;display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em}.atk-detail-section-title svg{color:var(--accent-primary, #3b82f6)}.atk-detail-section-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 8px;background:var(--accent-primary, #3b82f6);color:#fff;border-radius:999px;font-size:11px;font-weight:700}.atk-test-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.atk-test-item{border:1px solid var(--border-primary);border-radius:var(--radius-md, 10px);padding:16px 18px;background:var(--bg-card);display:flex;flex-direction:column;gap:12px;transition:border-color .15s ease,box-shadow .15s ease}.atk-test-item:hover{border-color:color-mix(in srgb,var(--accent-primary, #3b82f6) 40%,var(--border-primary));box-shadow:0 2px 10px #0000000a}.atk-test-head{display:flex;align-items:center;gap:10px}.atk-test-num{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:24px;padding:0 8px;background:color-mix(in srgb,var(--accent-primary, #3b82f6) 12%,transparent);color:var(--accent-primary, #3b82f6);border-radius:6px;font-size:11px;font-weight:700;font-family:var(--font-mono, ui-monospace, SFMono-Regular, monospace)}.atk-test-name{margin:0;font-size:14px;font-weight:600;color:var(--text-primary);line-height:1.35}.atk-test-desc{font-size:13px;color:var(--text-secondary);line-height:1.55;padding:8px 12px;background:var(--bg-secondary);border-radius:var(--radius-md, 8px);border-left:3px solid var(--border-primary)}.atk-test-platforms{display:flex;flex-wrap:wrap;gap:6px}.atk-detail-row{display:flex;align-items:center;gap:8px;font-size:13px;padding:6px 10px;background:var(--bg-secondary);border-radius:6px;width:fit-content}.atk-detail-label{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.atk-detail-label svg{color:var(--accent-primary, #3b82f6)}.atk-detail-value{color:var(--text-primary);font-size:13px;font-weight:500}.atk-detail-subsection{display:flex;flex-direction:column;gap:8px;padding-top:4px}.atk-dep-item{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md, 8px)}.atk-dep-desc{margin:0;font-size:12.5px;color:var(--text-secondary);line-height:1.5}.atk-command-box{background:#0f172a;border:1px solid #1e293b;border-radius:var(--radius-md, 8px);overflow:hidden;box-shadow:0 1px 3px #0000000f}.atk-command-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#1e293b;border-bottom:1px solid #334155;font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em}.atk-command-header span:before{content:"● ● ●";margin-right:10px;font-size:8px;letter-spacing:2px;color:#475569;vertical-align:middle}.atk-command-box pre{margin:0;padding:12px 14px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, monospace);font-size:12px;color:#e2e8f0;background:#0f172a;white-space:pre-wrap;word-break:break-word;line-height:1.55;max-height:320px;overflow-y:auto}.atk-command-box pre::-webkit-scrollbar{width:8px;height:8px}.atk-command-box pre::-webkit-scrollbar-thumb{background:#334155;border-radius:4px}.atk-copy-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:transparent;border:1px solid #334155;border-radius:6px;color:#cbd5e1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.atk-copy-btn:hover{background:#334155;color:#fff;border-color:#475569}.atk-copy-btn.sm{width:22px;height:22px;font-size:10px;border-color:var(--border-primary);color:var(--text-secondary)}.atk-copy-btn.sm:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--accent-primary, #3b82f6)}.atk-args-list{display:flex;flex-direction:column;gap:8px}.atk-arg-item{padding:12px 14px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md, 8px);display:flex;flex-direction:column;gap:6px;border-left:3px solid var(--accent-primary, #3b82f6)}.atk-arg-name{font-size:13px;color:var(--text-primary);font-family:var(--font-mono, ui-monospace, SFMono-Regular, monospace)}.atk-arg-desc{font-size:12px;color:var(--text-secondary);line-height:1.5}.atk-arg-default{display:flex;align-items:center;gap:8px;font-size:12px;border-top:1px dashed var(--border-primary);margin-top:2px;padding-top:8px}.atk-arg-default-label{color:var(--text-muted);font-weight:700;text-transform:uppercase;font-size:10px;letter-spacing:.05em}.atk-arg-default-value{color:var(--text-primary);font-family:var(--font-mono, ui-monospace, SFMono-Regular, monospace);background:var(--bg-card);padding:2px 8px;border-radius:4px;border:1px solid var(--border-primary)}.atk-detail .atk-empty-state{padding:48px 24px;text-align:center;color:var(--text-muted)}.atk-detail .atk-empty-state svg{font-size:40px;margin-bottom:12px;opacity:.4}@media (max-width: 640px){.atk-detail-hero{padding:16px}.atk-detail-title{font-size:16px}.atk-mitre-grid{grid-template-columns:1fr}.atk-test-item{padding:12px 14px}}.attack-inject-modal .attack-inject-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.attack-inject-modal .form-row{display:flex;flex-direction:column;gap:6px}.attack-inject-modal .form-row--split{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.attack-inject-modal .form-row--grid-3{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1fr);gap:var(--spacing-md)}.attack-inject-modal .form-row--grid-3>div{display:flex;flex-direction:column;gap:6px;min-width:0}@media (max-width: 768px){.attack-inject-modal .form-row--grid-3{grid-template-columns:1fr}}.attack-inject-modal .form-label{font-weight:600;font-size:.875rem;color:var(--text-primary)}.attack-inject-modal .form-static-value{padding:6px 10px;background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-primary);color:var(--text-primary);min-height:34px;display:flex;align-items:center}.attack-inject-modal .radio-group{display:flex;gap:var(--spacing-lg)}.attack-inject-modal .radio-inline{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--text-primary)}.attack-inject-modal .attack-command-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}.attack-inject-modal .attack-command-row textarea{flex:1}.attack-inject-modal .attack-command-row .btn-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;flex-shrink:0}.attack-inject-modal .attack-command-row .btn-icon.danger:hover{background:var(--accent-danger-light);color:var(--accent-danger);border-color:var(--accent-danger)}.attack-inject-modal .text-muted{color:var(--text-muted)}.attack-inject-modal .text-danger{color:var(--accent-danger, #c33);margin-left:2px}.attack-inject-modal .form-control.is-invalid{border-color:var(--accent-danger, #c33);box-shadow:0 0 0 1px var(--accent-danger, #c33)}.attack-inject-modal .invalid-feedback-text{color:var(--accent-danger, #c33);font-size:.8125rem;margin-top:2px}.attack-inject-modal .form-hint{color:var(--text-muted);font-size:.8125rem;margin-top:2px;font-style:italic}.attack-inject-modal .btn-sm{align-self:flex-start}.attack-inject-modal .atk-test-item--selectable .atk-test-head{display:flex;align-items:center;gap:8px}.attack-inject-modal .atk-test-checkbox{display:inline-flex;align-items:center;cursor:pointer}.attack-inject-modal .atk-test-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-primary)}.attack-inject-modal .atk-test-checkbox input[type=checkbox]:disabled{cursor:not-allowed}.attack-inject-modal .atk-test-item--disabled{opacity:.55}.attack-inject-modal .atk-test-item--disabled .atk-test-checkbox{cursor:not-allowed}.attack-inject-modal .atk-detail-loading{padding:var(--spacing-md);color:var(--text-muted);display:flex;align-items:center;gap:8px}.attack-inject-modal .atk-error-banner{padding:var(--spacing-sm) var(--spacing-md);background:var(--accent-danger-light, #fee);color:var(--accent-danger, #c33);border-radius:var(--radius-sm);border:1px solid var(--accent-danger, #c33)}.attack-inject-modal .atk-selected-methods{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.attack-inject-modal .atk-selected-method-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 4px 4px 10px;background:var(--accent-primary-light, #e3f2fd);color:var(--accent-primary, #2196f3);border:1px solid var(--accent-primary, #2196f3);border-radius:var(--radius-full, 999px);font-size:.8125rem;max-width:320px}.attack-inject-modal .atk-selected-method-num{font-weight:700;font-size:.75rem;opacity:.85}.attack-inject-modal .atk-selected-method-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.attack-inject-modal .atk-selected-method-remove{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:inherit;border-radius:50%;cursor:pointer;transition:background .15s ease;padding:0}.attack-inject-modal .atk-selected-method-remove:hover{background:#00000014}.topology-canvas{position:relative;width:100%;height:100%;background:var(--bg-secondary);border-radius:8px}.topology-canvas__flow{width:100%;height:100%;overflow:hidden}.topology-canvas .react-flow__node{cursor:pointer}.topology-canvas .react-flow__node:hover{z-index:10}.topology-canvas .react-flow__edge{pointer-events:all}.topology-canvas .react-flow__edge:hover{cursor:pointer}.topology-canvas .react-flow__controls{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:8px;box-shadow:var(--shadow-md)}.topology-canvas .react-flow__controls-button{background:transparent;border:none;color:var(--text-muted);width:32px;height:32px;border-bottom:1px solid var(--border-primary)}.topology-canvas .react-flow__controls-button:hover{background:var(--bg-hover);color:var(--text-primary)}.topology-canvas .react-flow__controls-button:last-child{border-bottom:none}.topology-canvas .react-flow__controls-button svg{fill:currentColor}.topology-canvas__lock-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.topology-canvas__lock-overlay .lock-spinner{width:40px;height:40px;border:3px solid rgba(59,130,246,.3);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.topology-canvas__lock-overlay span{color:#fff;font-size:14px;font-weight:500}.topology-canvas.mode-viewer .react-flow__node{cursor:default}.topology-canvas.mode-candidate .react-flow__node{cursor:pointer}.topology-canvas .react-flow__connection-line{stroke:#60a5fa;stroke-width:2;stroke-dasharray:5;animation:dash .5s linear infinite}@keyframes dash{to{stroke-dashoffset:-10}}.topology-canvas .react-flow__attribution{display:none}.topology-viewer-modal.modal-lg{height:calc(100vh - var(--spacing-2xl, 48px))}.topology-viewer-modal .modal-content{height:100%;max-height:100%}.topology-viewer-modal .modal-body{padding:0!important;overflow:hidden;display:flex;flex-direction:column}.topology-viewer-modal .topology-viewer-canvas{width:100%;flex:1;min-height:0;position:relative;display:flex;flex-direction:column}.topology-viewer-modal:not(.modal-fullscreen) .topology-viewer-canvas{min-height:500px}.topology-viewer-modal .topology-canvas{flex:1;min-height:0}.topology-viewer-modal .topology-viewer-toolbar{position:absolute;top:10px;right:10px;z-index:5;display:flex;gap:6px}.topology-viewer-modal .topology-toolbar-btn{display:flex;align-items:center;gap:5px;padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-size:.75rem;font-weight:500;transition:all .15s ease;box-shadow:0 1px 4px #0000001a;white-space:nowrap}.topology-viewer-modal .topology-toolbar-btn:hover{background:var(--bg-tertiary);color:var(--accent-primary);border-color:var(--accent-primary)}.topology-viewer-modal .topology-toolbar-btn svg{font-size:.7rem}.topology-viewer-modal .topology-viewer-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;min-height:300px;gap:12px;color:var(--text-secondary)}.topology-viewer-modal .topology-viewer-loading .spinner{width:36px;height:36px;border:3px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:tvm-spin .8s linear infinite}@keyframes tvm-spin{to{transform:rotate(360deg)}}.topology-viewer-modal .topology-viewer-error{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;min-height:300px;gap:12px;color:var(--accent-danger)}.topology-viewer-modal .vm-node__template{display:none}.exercise-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.exercise-list-page .card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 2px 12px #0000000f;overflow:visible}.exercise-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.exercise-list-page .header-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.exercise-list-page .header-actions>.basic-select{width:160px;min-width:140px;flex-shrink:0}.exercise-list-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.exercise-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.exercise-list-page .header-actions .btn-outline{height:40px;padding:0 12px}.exercise-list-page .card-body{padding:0;overflow:visible}.exercise-list-page .table-responsive{overflow-x:auto;overflow-y:visible}.exercise-list-page .data-table{width:100%;border-collapse:separate;border-spacing:0}.exercise-list-page .status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:600;border-radius:var(--radius-full);text-transform:capitalize}.exercise-list-page .status-badge.active{background:var(--accent-success-light);color:var(--accent-success)}.exercise-list-page .status-badge.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.exercise-list-page .status-badge.processing{background:var(--accent-info-light, #e3f2fd);color:var(--accent-info, #2196f3)}.exercise-list-page .exercise-usage-info{display:flex;gap:6px;margin-top:4px}.exercise-list-page .usage-tag{display:inline-flex;align-items:center;font-size:.7rem;padding:1px 6px;border-radius:4px;background:var(--accent-warning-light, #fff3e0);color:var(--accent-warning, #e65100)}.exercise-list-page .status-icon{font-size:1rem}.exercise-list-page .status-icon.active{color:var(--accent-success)}.exercise-list-page .status-icon.inactive{color:var(--accent-danger)}.exercise-list-page .unique-id{font-family:var(--font-mono);font-size:.8rem;color:var(--accent-primary);background:var(--accent-primary-light);padding:2px 8px;border-radius:4px;font-weight:500}.exercise-list-page .exercise-name{font-weight:500;color:var(--text-primary);display:inline-block;max-width:100%;overflow-wrap:anywhere;word-break:break-word;white-space:normal;vertical-align:middle}.exercise-list-page .exercise-message-icon{margin-left:6px;color:var(--accent-warning);cursor:pointer;font-size:.8125rem}.exercise-list-page .visibility-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:4px;font-size:.8rem;font-weight:500;text-transform:capitalize}.exercise-list-page .visibility-badge.public{background:var(--accent-success-light);color:var(--accent-success)}.exercise-list-page .visibility-badge.private{background:var(--accent-warning-light);color:var(--accent-warning)}.exercise-list-page .user-link{background:none;border:none;color:var(--accent-primary);cursor:pointer;padding:0;font-size:inherit;text-decoration:none;transition:color .2s ease}.exercise-list-page .user-link:hover{color:var(--accent-secondary);text-decoration:underline}.exercise-list-page .td-actions{white-space:nowrap}.exercise-list-page .action-buttons{display:flex;gap:4px;justify-content:flex-start}.exercise-list-page .action-buttons .btn-icon.disabled{cursor:not-allowed;opacity:.4;pointer-events:auto}.exercise-list-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.exercise-list-page .empty-state .empty-icon{font-size:3rem;color:var(--text-muted);margin-bottom:var(--spacing-md)}.exercise-list-page .empty-state p{color:var(--text-secondary);margin-bottom:var(--spacing-md)}.exercise-list-page .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xxl)}.exercise-list-page .loading-state p{margin-top:var(--spacing-md);color:var(--text-secondary)}.import-form{display:flex;flex-direction:column;gap:var(--spacing-sm)}.import-note{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;margin-bottom:12px;border-radius:6px;background:color-mix(in srgb,var(--accent-warning) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent-warning) 30%,transparent);color:var(--text-secondary);font-size:.8125rem;line-height:1.4}.import-note svg{flex-shrink:0;margin-top:2px;color:var(--accent-warning);font-size:1rem}.import-dropzone{border:2px dashed var(--border-primary);border-radius:var(--radius-lg);background:var(--bg-secondary);transition:all .2s ease}.import-dropzone:hover,.import-dropzone.drag-active{border-color:var(--accent-primary);background:var(--accent-primary-light)}.import-dropzone-label{display:block;cursor:pointer}.import-dropzone-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-xl) var(--spacing-lg)}.import-dropzone-icon{font-size:1.75rem;color:var(--text-muted);transition:color .2s ease}.import-dropzone:hover .import-dropzone-icon,.import-dropzone.drag-active .import-dropzone-icon{color:var(--accent-primary)}.import-dropzone-text{font-size:.875rem;font-weight:500;color:var(--text-primary)}.import-dropzone-hint{font-size:.75rem;color:var(--text-muted)}.import-file-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.import-file-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--accent-primary-light);color:var(--accent-primary);border-radius:var(--radius-md);font-size:1.125rem;flex-shrink:0}.import-file-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.import-file-name{font-size:.8125rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-file-size{font-size:.75rem;color:var(--text-muted)}.import-file-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;font-size:1.125rem;line-height:1;transition:color .2s ease;flex-shrink:0}.import-file-remove:hover{color:var(--accent-danger)}.import-error{padding:var(--spacing-sm) var(--spacing-md);background:var(--accent-danger-light);color:var(--accent-danger);border-radius:var(--radius-md);font-size:.8125rem;text-align:center}.import-progress{margin-top:var(--spacing-sm)}.import-progress-resuming{font-size:.8125rem;color:var(--accent-warning);margin-bottom:var(--spacing-xs);font-weight:500}.import-progress-bar-track{height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.import-progress-bar-fill{height:100%;background:var(--accent-primary);border-radius:4px;transition:width .3s ease}.import-progress-text{font-size:.75rem;color:var(--text-secondary);margin-top:4px;text-align:center}.exercise-list-page .text-muted{color:var(--text-muted);font-size:.9rem}.exercise-list-page .pagination{display:flex;gap:4px;align-items:center}.exercise-list-page .pagination .btn{min-width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:500;border-radius:var(--radius-sm);border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.exercise-list-page .pagination .btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.exercise-list-page .pagination .btn-primary{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.exercise-list-page .pagination .btn-primary:hover{background:var(--accent-secondary);color:#fff}.exercise-list-page .pagination .btn:disabled{opacity:.4;cursor:not-allowed}.exercise-list-page .pagination-ellipsis{width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}@media (max-width: 1200px){.exercise-list-page .header-actions>.basic-select{width:140px;min-width:120px}}@media (max-width: 992px){.exercise-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.exercise-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}.exercise-list-page .header-actions>.basic-select{width:130px;min-width:120px}}@media (max-width: 768px){.exercise-list-page .card-header{flex-direction:column;align-items:stretch}.exercise-list-page .header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.exercise-list-page .header-actions>.basic-select{flex:1;width:auto;min-width:120px}.exercise-list-page .card-footer{flex-direction:column}.exercise-list-page .footer-info{width:100%;flex-direction:column;gap:var(--spacing-sm);text-align:center}.exercise-list-page .pagination{width:100%;justify-content:center}}.temp-exercise-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.temp-exercise-list-page .card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 2px 12px #0000000f;overflow:visible}.temp-exercise-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.temp-exercise-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.temp-exercise-list-page .header-actions>.basic-select{width:160px;min-width:140px;flex-shrink:0}.temp-exercise-list-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.temp-exercise-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.temp-exercise-list-page .card-body{padding:0;overflow:visible}.temp-exercise-list-page .table-responsive{overflow-x:auto}.temp-exercise-list-page .data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem}.temp-exercise-list-page .data-table thead{background:var(--bg-tertiary)}.temp-exercise-list-page .data-table th{padding:var(--spacing-md) var(--spacing-sm);text-align:left;font-weight:600;color:var(--text-primary);white-space:nowrap;font-size:.8125rem}.temp-exercise-list-page .data-table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.temp-exercise-list-page .data-table th.th-sortable:hover{background:var(--bg-secondary)}.temp-exercise-list-page .data-table th.th-center{text-align:center}.temp-exercise-list-page .data-table th.th-actions{width:100px;text-align:center}.temp-exercise-list-page .data-table th .sort-icon{margin-left:6px;font-size:.7rem;opacity:.5}.temp-exercise-list-page .data-table th.th-sortable:hover .sort-icon{opacity:1}.temp-exercise-list-page .data-table tbody tr{border-bottom:1px solid var(--border-primary);transition:background .15s ease}.temp-exercise-list-page .data-table tbody tr:hover{background:var(--bg-secondary)}.temp-exercise-list-page .data-table td{padding:var(--spacing-md) var(--spacing-sm);vertical-align:middle;color:var(--text-secondary)}.temp-exercise-list-page .data-table td.td-center,.temp-exercise-list-page .data-table td.td-actions{text-align:center}.temp-exercise-list-page .link-primary{color:var(--accent-primary);text-decoration:none;font-weight:500}.temp-exercise-list-page .link-primary:hover{text-decoration:underline}.temp-exercise-list-page .created-by{text-transform:capitalize}.temp-exercise-list-page .created-by.clickable{color:var(--accent-primary);cursor:pointer;transition:color .15s ease}.temp-exercise-list-page .created-by.clickable:hover{color:var(--accent-primary-dark, #1565c0);text-decoration:underline}.temp-exercise-list-page .status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;text-transform:capitalize;white-space:nowrap}.temp-exercise-list-page .data-table td.td-center:has(.status-badge){white-space:nowrap}.temp-exercise-list-page .status-badge.success{background:var(--accent-success-light);color:var(--accent-success)}.temp-exercise-list-page .status-badge.pending{background:var(--accent-warning-light);color:var(--accent-warning)}.temp-exercise-list-page .status-badge.processing{background:var(--accent-info-light, #e3f2fd);color:var(--accent-info, #2196f3)}.temp-exercise-list-page .status-badge.rollback{background:var(--accent-warning-light);color:var(--accent-warning-dark, #e65100)}.temp-exercise-list-page .status-badge.locked{background:var(--bg-tertiary);color:var(--text-secondary)}.temp-exercise-list-page .action-buttons{display:flex;gap:var(--spacing-xs);justify-content:center}.temp-exercise-list-page .action-buttons .btn-icon{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;font-size:.8125rem;text-decoration:none}.temp-exercise-list-page .action-buttons .btn-icon:hover{background:var(--bg-secondary);color:var(--accent-primary);border-color:var(--accent-primary)}.temp-exercise-list-page .action-buttons .btn-icon.danger:hover{background:var(--accent-danger-light);color:var(--accent-danger);border-color:var(--accent-danger)}.temp-exercise-list-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) * 2;text-align:center;min-height:300px}.temp-exercise-list-page .empty-state .empty-icon{font-size:3rem;color:var(--text-muted);opacity:.5;margin-bottom:var(--spacing-md)}.temp-exercise-list-page .empty-state p{color:var(--text-muted);margin-bottom:var(--spacing-md)}.temp-exercise-list-page .text-muted{color:var(--text-muted)}@media (max-width: 1200px){.temp-exercise-list-page .header-actions>.basic-select{width:140px;min-width:120px}}@media (max-width: 992px){.temp-exercise-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.temp-exercise-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}.temp-exercise-list-page .header-actions>.basic-select{width:130px;min-width:120px}}@media (max-width: 768px){.temp-exercise-list-page .card-header{flex-direction:column;align-items:stretch}.temp-exercise-list-page .header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.temp-exercise-list-page .header-actions>.basic-select{flex:1;width:auto;min-width:120px}.temp-exercise-list-page .card-footer{flex-direction:column}.temp-exercise-list-page .footer-info{width:100%;flex-direction:column;gap:var(--spacing-sm);text-align:center}.temp-exercise-list-page .pagination{width:100%;justify-content:center}.temp-exercise-list-page .data-table{font-size:.8125rem}.temp-exercise-list-page .data-table th{font-size:.75rem}.temp-exercise-list-page .action-buttons .btn-icon{width:28px;height:28px;font-size:.75rem}}.exercise-edit-page{min-height:100vh;padding:var(--spacing-sm);background:var(--bg-primary);animation:fadeIn .3s ease}.exercise-edit-page .loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--spacing-md);color:var(--text-muted)}.exercise-edit__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--bg-card);border-bottom:1px solid var(--border-color)}.exercise-edit__header .header-left{display:flex;align-items:center;gap:20px}.exercise-edit__header .back-link{display:flex;align-items:center;gap:8px;color:var(--text-muted);text-decoration:none;font-size:13px;padding:6px 12px;border-radius:6px;transition:all .2s ease}.exercise-edit__header .back-link:hover{background:var(--bg-hover);color:var(--text-primary)}.exercise-edit__header .header-title h1{font-size:1.25rem;font-weight:600;margin:0;color:var(--text-primary)}.exercise-edit__header .exercise-name-badge{color:var(--accent-primary);font-weight:500;margin-left:8px}.exercise-edit-page .alert{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;margin:0;border-radius:0}.exercise-edit-page .alert-success{background:var(--accent-success-light);color:var(--accent-success);border-bottom:1px solid var(--accent-success)}.exercise-edit-page .alert-danger{background:var(--accent-danger-light);color:var(--accent-danger);border-bottom:1px solid var(--accent-danger)}.exercise-edit-page .alert-warning{background:var(--accent-warning-light);color:var(--accent-warning);border-bottom:1px solid var(--accent-warning)}.exercise-edit-page .alert-close{background:none;border:none;cursor:pointer;color:inherit;opacity:.7;transition:opacity .2s}.exercise-edit-page .alert-close:hover{opacity:1}.wizard-container{padding:24px;background:var(--bg-card);border-bottom:1px solid var(--border-color)}.wizard-steps{display:flex;align-items:center;justify-content:center;max-width:700px;margin:0 auto}.wizard-step{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:all .2s ease}.wizard-step .step-number{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1rem;background:var(--bg-tertiary);color:var(--text-muted);border:2px solid var(--border-color);transition:all .2s ease}.wizard-step .step-label{font-size:.85rem;font-weight:500;color:var(--text-muted);white-space:nowrap}.wizard-step.active .step-number{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.wizard-step.active .step-label{color:var(--accent-primary)}.wizard-step.completed .step-number{background:var(--accent-success);color:#fff;border-color:var(--accent-success)}.wizard-step.completed .step-label{color:var(--accent-success)}.wizard-step.disabled{cursor:not-allowed;opacity:.5}.exercise-edit-page .step-connector{flex:1;height:2px;background:var(--border-color);margin:0 16px 28px;max-width:100px}.exercise-edit-page .step-content{padding:24px}.exercise-edit-page .step-panel{background:var(--bg-card);border-radius:12px;border:1px solid var(--border-color);overflow:hidden}.step-1 .step-panel__content{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:24px}.exercise-edit-page .form-section{display:flex;flex-direction:column;gap:20px}.exercise-edit-page .form-card{background:var(--bg-secondary);border-radius:8px;padding:20px;border:1px solid var(--border-color)}.exercise-edit-page .form-card__title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:8px}.exercise-edit-page .form-card__title svg{color:var(--accent-primary)}.exercise-edit-page .form-row{margin-bottom:16px}.exercise-edit-page .form-row:last-child{margin-bottom:0}.exercise-edit-page .form-row label{display:block;font-size:.85rem;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.exercise-edit-page .form-row .form-control{width:100%;padding:10px 12px;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);font-size:.9rem;transition:all .2s ease}.exercise-edit-page .form-row .form-control:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.exercise-edit-page .form-row .form-control:disabled{opacity:.6;cursor:not-allowed}.exercise-edit-page .form-hint{display:block;font-size:.75rem;color:var(--text-muted);margin-top:4px}.exercise-edit-page .input-with-button{display:flex;gap:8px}.exercise-edit-page .input-with-button .form-control{flex:1}.exercise-edit-page .input-with-button .btn{flex-shrink:0}.topology-preview .form-card{height:100%;display:flex;flex-direction:column}.topology-canvas-placeholder{flex:1;min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-primary);border-radius:8px;border:2px dashed var(--border-color);color:var(--text-muted)}.topology-canvas-placeholder svg{opacity:.3;margin-bottom:12px}.topology-canvas-placeholder p{margin:0;font-weight:500}.topology-canvas-placeholder span{font-size:.85rem;margin-top:4px}.topology-canvas-placeholder.large{min-height:500px}.data-table{width:100%;border-collapse:separate;border-spacing:0}.data-table th,.data-table td{padding:12px;text-align:left;border-bottom:1px solid var(--border-color)}.data-table th{font-size:.8rem;font-weight:600;text-transform:uppercase;color:var(--text-muted);background:var(--bg-tertiary)}.data-table tbody tr:hover{background:var(--bg-hover)}.resource-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary)}.resource-icon .vm-icon{color:var(--accent-primary)}.resource-icon .network-icon{color:var(--accent-secondary)}.type-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.type-badge.vm{background:var(--accent-primary-light);color:var(--accent-primary)}.type-badge.switch{background:var(--accent-secondary-light);color:var(--accent-secondary)}.type-badge.gateway{background:var(--accent-warning-light);color:var(--accent-warning)}.exercise-edit-page .action-buttons{display:flex;gap:6px}.exercise-edit-page .btn-icon{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:none;background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.exercise-edit-page .btn-icon:hover{background:var(--accent-primary);color:#fff}.exercise-edit-page .btn-icon.primary{background:var(--accent-primary-light);color:var(--accent-primary)}.exercise-edit-page .btn-icon.primary:hover{background:var(--accent-primary);color:#fff}.exercise-edit-page .btn-icon.success{background:var(--accent-success-light);color:var(--accent-success)}.exercise-edit-page .btn-icon.success:hover{background:var(--accent-success);color:#fff}.exercise-edit-page .btn-icon.warning{background:var(--accent-warning-light);color:var(--accent-warning)}.exercise-edit-page .btn-icon.warning:hover{background:var(--accent-warning);color:#fff}.exercise-edit-page .btn-icon.danger{background:var(--accent-danger-light);color:var(--accent-danger)}.exercise-edit-page .btn-icon.danger:hover{background:var(--accent-danger);color:#fff}.exercise-edit-page .btn-icon:disabled{opacity:.5;cursor:not-allowed}.exercise-edit-page .btn-icon:disabled:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.exercise-edit-page .step-actions{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;background:var(--bg-secondary);border-top:1px solid var(--border-color)}.step-2 .step-panel__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color)}.step-2 .step-panel__header h3{margin:0;font-size:1.1rem;font-weight:600}.view-toggle{display:flex;background:var(--bg-tertiary);border-radius:8px;padding:4px}.view-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:6px;font-size:.85rem;font-weight:500;transition:all .2s ease}.view-btn.active{background:var(--bg-card);color:var(--accent-primary);box-shadow:0 1px 3px #0000001a}.view-btn:hover:not(.active){color:var(--text-primary)}.vm-table{margin:0}.vm-table th,.vm-table td{padding:16px}.vm-name-cell{display:flex;flex-direction:column}.vm-name-cell .fqdn,.vm-name-cell .ip{font-size:.75rem;color:var(--text-muted);margin-top:2px}.status-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:4px;font-size:.75rem;font-weight:600}.status-badge.stopped{background:var(--bg-tertiary);color:var(--text-muted)}.topology-view{padding:24px}.step-3 .publish-section{padding:48px 24px;display:flex;justify-content:center}.publish-card{text-align:center;max-width:500px}.publish-icon{width:80px;height:80px;border-radius:50%;background:var(--accent-success-light);color:var(--accent-success);display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-size:2rem}.publish-card h3{font-size:1.5rem;font-weight:600;margin:0 0 12px;color:var(--text-primary)}.publish-card p{color:var(--text-secondary);margin:0 0 24px;line-height:1.6}.publish-summary{background:var(--bg-secondary);border-radius:8px;padding:20px;margin-bottom:24px;text-align:left}.summary-item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-color)}.summary-item:last-child{border-bottom:none}.summary-item .label{color:var(--text-secondary);font-weight:500}.summary-item .value{color:var(--text-primary);font-weight:600}.exercise-edit-page .btn-lg{padding:14px 32px;font-size:1rem}.config-modal-content{padding:24px}.config-section{margin-bottom:24px}.config-section:last-of-type{margin-bottom:0}.config-section h4{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.config-row{display:flex;align-items:center;margin-bottom:12px}.config-row label{width:120px;font-size:.85rem;font-weight:500;color:var(--text-secondary)}.config-row .form-control{width:150px;padding:8px 12px;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);font-size:.9rem}.config-row.checkbox-row label{width:auto;display:flex;align-items:center;gap:8px;cursor:pointer}.config-row.checkbox-row input[type=checkbox]{width:16px;height:16px;cursor:pointer}.exercise-edit-page .section-header{display:flex;justify-content:space-between;align-items:center}.config-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.85rem}.config-table th,.config-table td{padding:10px 12px;text-align:left;border:1px solid var(--border-color)}.config-table th{background:var(--bg-tertiary);font-weight:600;color:var(--text-secondary);font-size:.8rem}.config-table .form-control{width:100%;padding:6px 10px;font-size:.85rem}.config-table input[type=checkbox]{width:16px;height:16px}.table-actions{display:flex;gap:4px}.table-actions .btn-icon{width:28px;height:28px;font-size:.8rem}.exercise-edit-page .modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border-color)}@media (max-width: 1024px){.step-1 .step-panel__content{grid-template-columns:1fr}.topology-preview{order:-1}.topology-canvas-placeholder{min-height:200px}}@media (max-width: 768px){.exercise-edit__header{flex-direction:column;gap:12px;align-items:flex-start}.wizard-steps{flex-direction:column;gap:12px}.exercise-edit-page .step-connector{width:2px;height:20px;margin:0}.wizard-step{flex-direction:row;gap:12px}.exercise-edit-page .step-content{padding:16px}.exercise-edit-page .step-actions{flex-direction:column}.exercise-edit-page .step-actions .btn{width:100%}.config-row{flex-direction:column;align-items:flex-start}.config-row label{width:100%;margin-bottom:6px}.config-row .form-control{width:100%}.config-table{display:block;overflow-x:auto}}.exercise-edit-page .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.exercise-edit-page .btn-sm{padding:8px 14px;font-size:.85rem}.exercise-edit-page .btn-primary{background:var(--accent-primary);color:#fff}.exercise-edit-page .btn-primary:hover:not(:disabled){background:var(--accent-secondary)}.exercise-edit-page .btn-danger{background:var(--accent-danger);color:#fff}.exercise-edit-page .btn-danger:hover:not(:disabled){background:#dc2626}.exercise-edit-page .btn-outline{background:transparent;color:var(--text-primary);border:1px solid var(--border-color)}.exercise-edit-page .btn-outline:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-muted)}.exercise-edit-page .btn:disabled{opacity:.6;cursor:not-allowed}.rich-text-editor{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--bg-card);box-shadow:0 2px 4px #0000000a;transition:box-shadow .2s ease,border-color .2s ease}.rich-text-editor:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.rte-header{padding:12px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.rte-label{font-weight:600;font-size:.95rem;color:var(--text-primary);margin:0}.rte-toolbar{background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.rte-toolbar-row{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 10px;border-bottom:1px solid var(--border-color)}.rte-toolbar-row:last-child{border-bottom:none}.rte-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:all .15s ease;font-size:13px}.rte-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary);color:var(--accent-primary)}.rte-btn:active,.rte-btn.active{background:var(--accent-primary-light);color:var(--accent-primary);border-color:var(--accent-primary)}.rte-upload-btn{cursor:pointer}.rte-toolbar .rte-btn.rte-upload-btn{display:inline-flex;align-items:center;justify-content:center;margin:0;font-size:13px}.rte-divider{width:1px;height:24px;background:var(--border-color);margin:0 6px;flex-shrink:0}.rte-dropdown{position:relative;flex-shrink:0}.rte-dropdown-toggle{display:flex;align-items:center;justify-content:space-between;gap:6px;height:30px;padding:0 10px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:12px;cursor:pointer;transition:all .15s ease;width:100%}.rte-dropdown-toggle:hover{border-color:var(--accent-primary)}.rte-dropdown-toggle.open{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-light)}.rte-dropdown-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;text-align:left}.rte-dropdown-arrow{font-size:10px;color:var(--text-muted);transition:transform .2s ease;flex-shrink:0}.rte-dropdown-toggle.open .rte-dropdown-arrow{transform:rotate(180deg)}.rte-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;max-height:200px;overflow-y:auto;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 16px #0000001f;z-index:1000;animation:dropdownSlideIn .15s ease}@keyframes dropdownSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.rte-dropdown-item{padding:8px 12px;font-size:12px;color:var(--text-primary);cursor:pointer;transition:background .1s ease;white-space:nowrap}.rte-dropdown-item:hover{background:var(--bg-secondary)}.rte-dropdown-item.selected{background:var(--accent-primary-light);color:var(--accent-primary);font-weight:500}.rte-color-picker{position:relative;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);cursor:pointer;transition:all .15s ease}.rte-color-picker:hover{border-color:var(--accent-primary)}.rte-color-preview{font-weight:700;font-size:14px;color:var(--text-primary);border-bottom:3px solid #000;line-height:1;padding-bottom:1px;pointer-events:none}.rte-color-preview.rte-bg-preview{border-bottom:none;padding:3px 5px;border-radius:2px;font-size:12px}.rte-color-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.rte-content{min-height:150px;max-height:300px;overflow-y:auto;padding:16px;background:#fff;color:#1f2937;font-size:14px;line-height:1.6;outline:none}.rte-content:empty:before{content:attr(data-placeholder);color:var(--text-muted);font-style:italic;pointer-events:none}[data-theme=dark] .rte-content:empty:before{color:#9ca3af}.rte-content p{margin:0 0 10px}.rte-content p:last-child{margin-bottom:0}.rte-content ul,.rte-content ol{margin:0 0 10px;padding-left:24px}.rte-content a{color:var(--accent-primary);text-decoration:underline}[data-theme=dark] .rte-content a{color:#0284c7}.rte-content hr{border:none;border-top:1px solid var(--border-color);margin:16px 0}[data-theme=dark] .rte-content hr{border-top-color:#d1d5db}.rte-content h1,.rte-content h2,.rte-content h3,.rte-content h4{margin:0 0 10px;font-weight:600;color:var(--text-primary)}[data-theme=dark] .rte-content h1,[data-theme=dark] .rte-content h2,[data-theme=dark] .rte-content h3,[data-theme=dark] .rte-content h4{color:#111827}.rte-content h1{font-size:1.75rem}.rte-content h2{font-size:1.5rem}.rte-content h3{font-size:1.25rem}.rte-content h4{font-size:1.1rem}.rte-content blockquote{margin:10px 0;padding:10px 16px;border-left:4px solid var(--accent-primary);background:var(--bg-secondary);color:var(--text-secondary);font-style:italic;border-radius:0 6px 6px 0}[data-theme=dark] .rte-content blockquote{background:#f0f9ff;color:#374151;border-left-color:#0ea5e9}.rte-content pre{margin:10px 0;padding:12px;background:#1e293b;color:#e2e8f0;border-radius:6px;font-family:Consolas,Monaco,monospace;font-size:.875rem;overflow-x:auto}.rte-content code{background:#f1f5f9;color:#0f172a;padding:2px 6px;border-radius:4px;font-family:Consolas,Monaco,monospace;font-size:.875em}.rte-content pre code{background:none;color:inherit;padding:0;border-radius:0}.rte-content img{max-width:100%;height:auto;border-radius:6px;margin:8px 0}.rte-content video{max-width:100%;border-radius:8px;margin:8px 0}.rte-content table{width:100%;border-collapse:collapse;margin:10px 0}.rte-content th,.rte-content td{border:1px solid var(--border-color);padding:8px 12px;text-align:left}[data-theme=dark] .rte-content th,[data-theme=dark] .rte-content td{border-color:#d1d5db}.rte-content th{background:var(--bg-secondary);font-weight:600;color:var(--text-primary)}[data-theme=dark] .rte-content th{background:#f1f5f9;color:#1e293b}.rte-source{width:100%;min-height:150px;max-height:300px;padding:16px;font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;line-height:1.6;color:#e2e8f0;background:#1e293b;border:none;outline:none;resize:vertical;box-sizing:border-box;-moz-tab-size:2;tab-size:2;white-space:pre-wrap;word-wrap:break-word}.rte-source::placeholder{color:#64748b}.rte-content::-webkit-scrollbar{width:6px}.rte-content::-webkit-scrollbar-track{background:transparent}.rte-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}[data-theme=dark] .rte-content::-webkit-scrollbar-track{background:#f9fafb}[data-theme=dark] .rte-content::-webkit-scrollbar-thumb{background:#d1d5db}.rte-content::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}[data-theme=dark] .rte-content::-webkit-scrollbar-thumb:hover{background:#9ca3af}.rte-link-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;animation:rteLinkFadeIn .15s ease}@keyframes rteLinkFadeIn{0%{opacity:0}to{opacity:1}}.rte-link-modal{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;width:420px;max-width:90vw;box-shadow:0 20px 60px #0000004d;animation:rteLinkSlideIn .2s ease}@keyframes rteLinkSlideIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.rte-link-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.rte-link-modal-header h4{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.rte-link-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px 6px;font-size:14px;border-radius:4px;transition:all .15s ease}.rte-link-close:hover{color:var(--text-primary);background:var(--bg-secondary)}.rte-link-modal-body{padding:20px;display:flex;flex-direction:column;gap:16px}.rte-link-field label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.rte-link-field input{width:100%;padding:8px 12px;font-size:.875rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.rte-link-field input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.rte-link-field input::placeholder{color:var(--text-muted)}.rte-link-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border-color);background:var(--bg-secondary);border-radius:0 0 12px 12px}.rte-link-btn{padding:8px 16px;font-size:.8125rem;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s ease;border:1px solid var(--border-color)}.rte-link-btn.cancel{background:var(--bg-primary);color:var(--text-primary)}.rte-link-btn.cancel:hover{background:var(--bg-secondary)}.rte-link-btn.insert{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.rte-link-btn.insert:hover{opacity:.9}.rte-link-btn.insert:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.rte-toolbar-row{padding:4px 8px;gap:1px}.rte-btn{width:28px;height:28px;font-size:12px}.rte-divider{margin:0 4px;height:20px}.rte-dropdown-toggle{height:28px;padding:0 8px;font-size:11px}.rte-color-picker{width:28px;height:28px}.rte-link-modal{width:90vw}}.published-exercise-edit-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.published-exercise-edit-page .loading-container{display:flex;align-items:center;justify-content:center;min-height:60vh}.published-exercise-edit-page .exercise-edit-wrapper{display:flex;gap:var(--spacing-lg);min-height:calc(100vh - 200px)}.published-exercise-edit-page .exercise-edit-sidebar{width:220px;flex-shrink:0;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-primary);height:fit-content;position:sticky;top:var(--spacing-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.published-exercise-edit-page .sidebar-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);font-weight:600;color:var(--text-primary);font-size:.9375rem;background:var(--bg-secondary)}.published-exercise-edit-page .sidebar-nav{padding:var(--spacing-xs)}.published-exercise-edit-page .sidebar-nav .nav-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:10px var(--spacing-md);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;width:100%;border:none;background:transparent;text-align:left;font-size:.8125rem;font-weight:500;border-left:3px solid transparent;margin-bottom:2px;position:relative}.published-exercise-edit-page .sidebar-nav .nav-item:hover{background:var(--bg-hover);color:var(--text-primary);border-left-color:var(--border-secondary)}.published-exercise-edit-page .sidebar-nav .nav-item.active{background:var(--accent-primary-light);color:var(--accent-primary);font-weight:600;border-left-color:var(--accent-primary)}.published-exercise-edit-page .sidebar-nav .nav-item .nav-icon{width:1rem;text-align:center;font-size:.875rem;flex-shrink:0}.published-exercise-edit-page .sidebar-nav .nav-item .nav-text{flex:1}.published-exercise-edit-page .sidebar-actions{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md);border-top:1px solid var(--border-primary)}.published-exercise-edit-page .exercise-edit-content{flex:1;min-width:0}.published-exercise-edit-page .section-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-sm);overflow:visible;scroll-margin-top:80px}.published-exercise-edit-page .section-card-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:14px 20px;background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);font-weight:600;font-size:.95rem;color:var(--text-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.published-exercise-edit-page .section-card-header .section-icon{color:var(--accent-primary)}.published-exercise-edit-page .section-card-body{padding:20px}.published-exercise-edit-page .row{display:flex;flex-wrap:wrap;margin-right:-8px;margin-left:-8px}.published-exercise-edit-page .row>[class*=col-]{padding-right:8px;padding-left:8px;box-sizing:border-box}.published-exercise-edit-page .col-md-2{flex:0 0 16.666%;max-width:16.666%}.published-exercise-edit-page .col-md-3{flex:0 0 25%;max-width:25%}.published-exercise-edit-page .col-md-4{flex:0 0 33.333%;max-width:33.333%}.published-exercise-edit-page .col-md-5{flex:0 0 41.666%;max-width:41.666%}.published-exercise-edit-page .col-md-6{flex:0 0 50%;max-width:50%}.published-exercise-edit-page .col-md-8{flex:0 0 66.666%;max-width:66.666%}.published-exercise-edit-page .col-md-12{flex:0 0 100%;max-width:100%}.published-exercise-edit-page .col-8{flex:0 0 66.666%;max-width:66.666%}.published-exercise-edit-page .col-4{flex:0 0 33.333%;max-width:33.333%}.published-exercise-edit-page .align-items-end{align-items:flex-end!important}.published-exercise-edit-page .g-2{--grid-gutter: 8px;margin-right:calc(var(--grid-gutter) * -.5);margin-left:calc(var(--grid-gutter) * -.5)}.published-exercise-edit-page .g-2>[class*=col-]{padding-right:calc(var(--grid-gutter) * .5);padding-left:calc(var(--grid-gutter) * .5)}.published-exercise-edit-page .form-label{display:block;margin-bottom:6px;font-size:.9rem;color:var(--text-secondary)}.form-row{display:flex;align-items:center;gap:16px}.form-group-inline{display:flex;align-items:center;gap:12px}.form-group-inline.align-items-start{align-items:flex-start}.col-label{width:140px;flex-shrink:0;font-weight:500;color:var(--text-secondary);font-size:.9rem}.col-input{flex:1}.col-input-sm{width:200px}.col-input-md{width:400px}.form-control{width:100%;padding:10px 14px;border:1px solid var(--border-color);border-radius:6px;font-size:.9rem;background:var(--bg-primary);color:var(--text-primary);transition:all .2s ease}.form-control:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.form-control:disabled{background:var(--bg-tertiary);cursor:not-allowed}.editor-container{min-height:200px}.editor-container .ql-container{min-height:150px;font-size:.9rem}.editor-container .ql-editor{min-height:150px}.description-card{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--bg-card);box-shadow:0 2px 4px #0000000a;transition:box-shadow .2s ease,border-color .2s ease}.description-card:hover{box-shadow:0 4px 12px #00000014}.description-card:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.description-card-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.description-label{font-weight:600;font-size:.95rem;color:var(--text-primary);margin:0}.char-count{font-size:.8rem;color:var(--text-muted);background:var(--bg-tertiary);padding:4px 10px;border-radius:12px}.description-card-body{padding:0}.description-textarea{border:none!important;border-radius:0!important;resize:none;min-height:200px;padding:16px!important;font-size:.9rem;line-height:1.6;background:var(--bg-primary)!important}.description-textarea:focus{box-shadow:none!important;outline:none!important}.description-textarea::placeholder{color:var(--text-muted);font-style:italic}.published-exercise-edit-page .checkbox-group,.published-exercise-edit-page .radio-group{display:flex;flex-wrap:wrap;gap:16px}.form-check-inline{display:flex;align-items:center;gap:6px}.form-check-input{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-primary)}.form-check-label{cursor:pointer;font-size:.9rem;color:var(--text-primary)}.keyword-input-wrapper{display:flex;flex-direction:column;gap:8px}.keyword-tags{display:flex;flex-wrap:wrap;gap:8px}.keyword-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--accent-primary-light);color:var(--accent-primary);border-radius:4px;font-size:.85rem;font-weight:500}.keyword-remove{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:0;cursor:pointer;color:var(--accent-primary);opacity:.7;transition:opacity .2s}.keyword-remove:hover{opacity:1}.image-preview-container{width:200px;height:120px;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--bg-secondary)}.image-preview-container .crop-image{width:200px;height:120px;object-fit:contain;position:relative}.image-preview-container .image-placeholder{display:flex;align-items:center;justify-content:center;width:100px;height:100px;color:var(--text-muted);font-size:.85rem}.published-exercise-edit-page .inline-card{border:1px solid var(--border-primary);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.published-exercise-edit-page .inline-card-header{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary);font-weight:600;font-size:.875rem;color:var(--text-primary)}.published-exercise-edit-page .inline-card-body{padding:var(--spacing-md)}.react-select__control{border-color:var(--border-color)!important;background:var(--bg-primary)!important;min-height:42px!important}.react-select__control:hover{border-color:var(--accent-primary)!important}.react-select__control--is-focused{border-color:var(--accent-primary)!important;box-shadow:0 0 0 3px var(--accent-primary-light)!important}.react-select__menu{background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:0 4px 12px #00000026!important;z-index:100!important}.react-select__option{background:transparent!important;color:var(--text-primary)!important}.react-select__option:hover{background:var(--bg-hover)!important}.react-select__option--is-selected{background:var(--accent-primary-light)!important;color:var(--accent-primary)!important}.react-select__single-value{color:var(--text-primary)!important}.react-select__multi-value{background:var(--accent-primary-light)!important}.react-select__multi-value__label{color:var(--accent-primary)!important}.react-select__multi-value__remove:hover{background:var(--accent-primary)!important;color:#fff!important}.react-select__placeholder{color:var(--text-muted)!important}.react-select__input-container{color:var(--text-primary)!important}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:20px;border-top:1px solid var(--border-color)}.published-exercise-edit-page .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.published-exercise-edit-page .btn-sm{padding:6px 12px;font-size:.85rem}.published-exercise-edit-page .btn-primary{background:var(--accent-primary);color:#fff}.published-exercise-edit-page .btn-primary:hover:not(:disabled){background:var(--accent-secondary)}.published-exercise-edit-page .btn-outline-primary{background:transparent;color:var(--accent-primary);border:1px solid var(--accent-primary)}.published-exercise-edit-page .btn-outline-primary:hover:not(:disabled){background:var(--accent-primary);color:#fff}.published-exercise-edit-page .btn-outline-danger{background:transparent;color:var(--accent-danger);border:1px solid var(--accent-danger)}.published-exercise-edit-page .btn-outline-danger:hover:not(:disabled){background:var(--accent-danger);color:#fff}.published-exercise-edit-page .btn:disabled{opacity:.6;cursor:not-allowed}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#fffc;display:flex;align-items:center;justify-content:center;z-index:9999}.image-upload-modal .modal-title-icon{color:var(--accent-primary)}.image-preview{padding:16px;background:var(--bg-secondary);border-radius:8px;overflow:hidden}.image-preview img{transition:transform .3s ease}@media (max-width: 1024px){.published-exercise-edit-page .exercise-edit-wrapper{flex-direction:column}.published-exercise-edit-page .exercise-edit-sidebar{width:100%;position:static}.published-exercise-edit-page .sidebar-nav{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);padding:var(--spacing-sm)}.published-exercise-edit-page .sidebar-nav .nav-item{flex:1;min-width:120px;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);border-left:none;border-bottom:2px solid transparent;margin-bottom:0}.published-exercise-edit-page .sidebar-nav .nav-item:hover{border-left-color:transparent;border-bottom-color:var(--border-secondary)}.published-exercise-edit-page .sidebar-nav .nav-item.active{border-left-color:transparent;border-bottom-color:var(--accent-primary)}.published-exercise-edit-page .sidebar-actions{flex-direction:row;justify-content:flex-end}}@media (max-width: 992px){.form-group-inline{flex-direction:column;align-items:flex-start;gap:8px}.col-label,.col-input,.col-input-sm,.col-input-md{width:100%}}@media (max-width: 768px){.published-exercise-edit-page .row>[class*=col-]{flex:0 0 100%;max-width:100%}.published-exercise-edit-page .sidebar-nav .nav-item .nav-text{display:none}.published-exercise-edit-page .sidebar-nav .nav-item{min-width:auto;flex:0;padding:var(--spacing-sm)}.published-exercise-edit-page .section-card-body{padding:16px}.published-exercise-edit-page .section-card-header{padding:12px 16px}.form-actions{flex-direction:column}.form-actions .btn{width:100%}}.text-end{text-align:right!important}.fw-bold{font-weight:600!important}.shadow-sm{box-shadow:0 2px 4px #0000000d!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.mt-4{margin-top:1.5rem!important}.d-block{display:block!important}.text-danger{color:var(--accent-danger)!important}.align-items-end{align-items:flex-end!important}.published-exercise-edit-page .required-mark{color:var(--accent-danger);font-weight:600}.published-exercise-edit-page .field-error{color:var(--accent-danger);font-size:.78rem;margin-top:4px;line-height:1.3}.published-exercise-edit-page .form-control.is-invalid,.published-exercise-edit-page .keyword-input-wrapper.is-invalid{border-color:var(--accent-danger)}.published-exercise-edit-page .process-lock-notice{display:flex;align-items:center;gap:6px;margin-top:8px;padding:8px 12px;background:var(--accent-warning-light, rgba(245, 158, 11, .1));color:var(--accent-warning, #f59e0b);border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500}.node-palette{width:260px;background:var(--bg-card);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden}.node-palette__header{padding:12px 14px;border-bottom:1px solid var(--border-color);flex-shrink:0}.node-palette__header h3{font-size:13px;font-weight:600;color:var(--text-primary);margin:0 0 2px}.node-palette__hint{font-size:10px;color:var(--text-muted)}.node-palette__section{border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;min-height:0;flex:0 1 auto}.node-palette__section:has(.node-palette__items){flex:1 1 0}.node-palette__section-header{width:100%;display:flex;align-items:center;gap:6px;padding:10px 14px;background:transparent;border:none;color:var(--text-primary);font-size:12px;font-weight:500;cursor:pointer;transition:background-color .2s ease;flex-shrink:0}.node-palette__section-header:hover{background:var(--bg-hover)}.node-palette__section-header svg:first-child{font-size:9px;color:var(--text-muted);width:10px}.node-palette__section-header .section-icon{color:var(--accent-primary)}.node-palette__section-header .section-count{margin-left:auto;background:var(--bg-tertiary);padding:2px 6px;border-radius:8px;font-size:10px;color:var(--text-secondary)}.node-palette__items{padding:6px;display:flex;flex-direction:column;gap:3px;flex:1;min-height:0;overflow-y:auto}.node-palette__group{display:flex;flex-direction:column;gap:3px}.node-palette__group-header{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;background:var(--bg-tertiary);border:none;border-left:2px solid transparent;border-radius:6px;cursor:pointer;text-align:left;transition:background .15s ease,border-color .15s ease}.node-palette__group-header:hover{background:var(--bg-hover);border-left-color:var(--accent-primary)}.node-palette__group-header .group-chevron{font-size:11px;color:var(--text-muted);flex-shrink:0;transition:color .15s ease}.node-palette__group-header:hover .group-chevron{color:var(--text-secondary)}.node-palette__group-header .group-icon{font-size:13px;color:var(--accent-primary);flex-shrink:0}.node-palette__group-header .group-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;line-height:1.3;text-transform:capitalize;color:var(--text-primary)}.node-palette__group-header .group-count{margin-left:auto;min-width:20px;text-align:center;background:var(--bg-secondary);padding:1px 7px;border-radius:10px;font-size:11px;font-weight:600;color:var(--text-secondary);flex-shrink:0}.node-palette__group-items{display:flex;flex-direction:column;gap:3px;padding-left:10px;border-left:1px solid var(--border-color);margin-left:8px}.node-palette__item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;cursor:grab;transition:all .2s ease}.node-palette__item:hover{background:var(--bg-hover);border-color:var(--accent-primary);transform:translate(2px)}.node-palette__item:active{cursor:grabbing}.node-palette__item.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.node-palette__item .item-icon{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.node-palette__item.vm-item .item-icon{background:#3b82f626;color:#3b82f6}.node-palette__item.network-item.predefined .item-icon{background:#10b98126;color:#10b981}.node-palette__item.network-item.custom .item-icon{background:#f9731626;color:#f97316}.node-palette__item .item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.node-palette__item .item-name{font-size:11px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-palette__item .item-specs{font-size:9px;color:var(--text-muted)}.node-palette__item .item-add{font-size:9px;color:var(--text-muted);opacity:0;transition:opacity .2s ease}.node-palette__item:hover .item-add{opacity:1;color:var(--accent-primary)}.node-palette__add-custom{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;background:transparent;border:2px dashed var(--border-color);border-radius:6px;color:var(--text-muted);font-size:11px;cursor:pointer;transition:all .2s ease;margin-top:3px}.node-palette__add-custom:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(var(--accent-primary-rgb),.05)}.node-palette__search{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;margin-bottom:6px}.node-palette__search .search-icon{font-size:10px;color:var(--text-muted);flex-shrink:0}.node-palette__search .search-input{flex:1;border:none;background:transparent;font-size:11px;color:var(--text-primary);outline:none;min-width:0}.node-palette__search .search-input::placeholder{color:var(--text-muted)}.node-palette__search .search-loading{font-size:10px;color:var(--accent-primary);flex-shrink:0}.node-palette__loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;color:var(--text-muted);font-size:11px}.node-palette__loading svg{color:var(--accent-primary)}.node-palette__empty{padding:16px;text-align:center;color:var(--text-muted);font-size:11px}.node-palette__item .item-icon-img{width:100%;height:100%;object-fit:cover;border-radius:4px}.node-palette__item .item-icon .hidden{display:none}.exercise-builder-page .resource-rail--strip{display:flex;align-items:center;gap:12px;padding:8px 12px;margin:0 0 8px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;overflow-x:auto;flex-wrap:wrap}.exercise-builder-page .resource-rail__strip-title{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.exercise-builder-page .resource-rail__strip-section-label{font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.exercise-builder-page .resource-rail__strip-divider{width:1px;align-self:stretch;background:var(--border-color);flex-shrink:0}.exercise-builder-page .resource-rail__strip-items{display:flex;gap:6px;flex-wrap:wrap}.exercise-builder-page .resource-rail__strip-empty{display:inline-flex;align-items:center;gap:6px;color:var(--warning-text, #92400e);font-size:.8125rem}[data-theme=dark] .exercise-builder-page .resource-rail__strip-empty{color:#fbbf24}.exercise-builder-page .resource-rail__chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;background:var(--accent-primary-soft, rgba(59, 130, 246, .12));color:var(--text-primary);font-size:.75rem;white-space:nowrap}.exercise-builder-page .resource-rail__chip strong{font-weight:600;color:var(--text-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}.exercise-builder-page .resource-rail__chip.is-empty{background:#dc26261f;color:var(--danger, #dc2626)}[data-theme=dark] .exercise-builder-page .resource-rail__chip.is-empty{background:#f871712e;color:#f87171}.exercise-builder-page .resource-rail__chip--cap{background:var(--bg-elevated, rgba(148, 163, 184, .18))}[data-theme=dark] .exercise-builder-page .resource-rail__chip--cap{background:#94a3b82e}.exercise-builder-page .resource-rail__request-link{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;color:var(--accent-primary);font-size:.9rem;text-decoration:none;transition:background .15s ease;margin-left:auto;flex-shrink:0}.exercise-builder-page .resource-rail__request-link:hover,.exercise-builder-page .resource-rail__request-link:focus-visible{background:var(--accent-primary-soft, rgba(59, 130, 246, .12));color:var(--accent-primary);outline:none}[data-theme=dark] .exercise-builder-page .resource-rail__request-link:hover,[data-theme=dark] .exercise-builder-page .resource-rail__request-link:focus-visible{background:#60a5fa2e}@media (max-width: 768px){.exercise-builder-page .resource-rail--strip{padding:6px 10px;gap:8px}.exercise-builder-page .resource-rail__strip-divider{display:none}.exercise-builder-page .resource-rail__request-link{margin-left:0}}.exercise-builder-page{display:flex;flex-direction:column;height:calc(100vh - 60px);padding:var(--spacing-sm);background:var(--bg-primary)}.exercise-builder-page .page-header{flex-shrink:0}.exercise-builder__lock-banner{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--warning-bg, #fef3c7);border:1px solid var(--warning-border, #f59e0b);border-radius:8px;color:var(--warning-text, #92400e);font-size:.85rem;flex-shrink:0;margin-bottom:4px}[data-theme=dark] .exercise-builder__lock-banner{background:#f59e0b26;border-color:#f59e0b66;color:#fbbf24}.exercise-builder__name-bar{display:flex;align-items:center;margin-bottom:6px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;flex-shrink:0}.exercise-builder__name-bar .name-bar-icon{color:var(--text-muted);font-size:.9rem}.exercise-builder__content{display:flex;flex:1;overflow:hidden}.exercise-builder__sidebar{position:relative;width:260px;flex-shrink:0;transition:width .3s ease;display:flex}.exercise-builder__sidebar.collapsed{width:0}.exercise-builder__sidebar .sidebar-toggle{position:absolute;top:50%;right:-16px;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;background:var(--accent-primary);border:1px solid var(--border-color);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:all .2s ease}.exercise-builder__sidebar .sidebar-toggle:hover{background:var(--accent-hover)}.exercise-builder__sidebar.collapsed .sidebar-toggle{right:-40px}.exercise-builder__canvas{flex:1;padding:1px 15px;overflow:hidden}.exercise-builder__canvas .topology-canvas{height:100%;border-radius:12px;border:1px solid var(--border-color)}.exercise-builder__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--spacing-md);color:var(--text-muted)}.exercise-builder__loading p{font-size:.95rem;margin:0}.exercise-builder-page .page-header{padding:14px 20px}.exercise-builder-page .page-header-icon{width:40px;height:40px;font-size:1rem}.exercise-builder-page .page-header-title{font-size:1.25rem}.exercise-builder-page .page-header-subtitle{font-size:.8125rem}.exercise-builder-page .page-header-actions{flex-wrap:wrap;gap:8px}.exercise-builder-page .page-header-actions .btn{padding:8px 14px;font-size:.8125rem;gap:6px}@media (max-width: 1024px){.exercise-builder-page .page-header-container{flex-direction:column;gap:12px;align-items:stretch}.exercise-builder-page .page-header-actions{width:100%;justify-content:flex-start;margin-left:0}}@media (max-width: 768px){.exercise-builder-page .page-header{padding:12px 16px}.exercise-builder-page .page-header-title{font-size:1.125rem}.exercise-builder-page .page-header-breadcrumbs{display:none}.exercise-builder-page .page-header-actions .btn{padding:7px 12px;font-size:.75rem}}@media (max-width: 480px){.exercise-builder-page .page-header{padding:10px 12px}.exercise-builder-page .page-header-icon{width:32px;height:32px;font-size:.875rem}.exercise-builder-page .page-header-title{font-size:1rem}.exercise-builder-page .page-header-actions .btn{padding:6px 10px;font-size:.75rem;gap:5px}}@media (max-width: 768px){.exercise-builder__sidebar{position:absolute;top:0;left:0;bottom:0;z-index:20;background:var(--bg-card);box-shadow:4px 0 20px #0003}.exercise-builder__sidebar.collapsed{transform:translate(-100%)}.exercise-builder__canvas{padding:8px}}.avm-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) var(--spacing-md);gap:var(--spacing-md)}.avm-error svg{font-size:2.5rem;color:var(--accent-danger);opacity:.5}.avm-error p{color:var(--text-secondary);font-size:.875rem;margin:0}.avm-content{display:flex;flex-direction:column;gap:var(--spacing-md);animation:avmFadeIn .25s ease}@keyframes avmFadeIn{0%{opacity:0}to{opacity:1}}.avm-header-card{display:flex;flex-direction:column;gap:8px;padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.avm-id-chip{display:inline-flex;align-self:flex-start;padding:2px 10px;background:var(--accent-primary-light);border-radius:var(--radius-full);font-family:var(--font-mono);font-size:.75rem;font-weight:600;color:var(--accent-primary);letter-spacing:.3px}.avm-exercise-name{font-size:1.125rem;font-weight:700;color:var(--text-primary);margin:0;line-height:1.3}.avm-badges{display:flex;gap:8px;flex-wrap:wrap}.avm-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.avm-badge svg{font-size:.6rem}.avm-badge--active{background:var(--accent-success-light);color:var(--accent-success)}.avm-badge--allotted{background:#3b82f61a;color:#3b82f6}.avm-badge--pending{background:var(--accent-warning-light);color:var(--accent-warning)}.avm-badge--paused{background:#f59e0b1a;color:#f59e0b}.avm-badge--completed{background:var(--accent-primary-light);color:var(--accent-primary)}.avm-badge--expired,.avm-badge--rejected{background:var(--accent-danger-light);color:var(--accent-danger)}.avm-badge--default{background:var(--bg-tertiary);color:var(--text-muted)}.avm-badge--type-individual{background:#6366f11a;color:#6366f1}.avm-badge--type-team{background:#ec48991a;color:#ec4899}.avm-section{padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.avm-section--last{border-bottom:none;padding-bottom:0}.avm-section-title{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 var(--spacing-sm) 0}.avm-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:var(--spacing-sm)}.avm-stat-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.avm-stat-value{font-size:1.05rem;font-weight:700;color:var(--text-primary);font-family:var(--font-mono);line-height:1.2}.avm-stat-value--used{color:var(--accent-primary)}.avm-stat-value--remain{color:var(--accent-success)}.avm-stat-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted)}.avm-progress-track{width:100%;height:6px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.avm-progress-fill{height:100%;border-radius:var(--radius-full);transition:width .6s ease;background:var(--accent-primary)}.avm-progress-fill--active{background:var(--accent-success)}.avm-progress-fill--allotted{background:var(--accent-info)}.avm-progress-fill--pending{background:var(--accent-warning)}.avm-progress-fill--paused{background:#8b5cf6}.avm-progress-fill--completed{background:var(--accent-primary)}.avm-progress-fill--expired,.avm-progress-fill--rejected{background:var(--accent-danger)}.avm-progress-fill--default{background:var(--text-muted)}.avm-detail-rows{display:flex;flex-direction:column}.avm-detail-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--border-primary);gap:var(--spacing-md)}.avm-detail-row:last-child{border-bottom:none;padding-bottom:0}.avm-detail-row:first-child{padding-top:0}.avm-detail-label{font-size:.8125rem;color:var(--text-muted);flex-shrink:0;min-width:100px}.avm-detail-value{font-size:.8125rem;color:var(--text-primary);font-weight:500;word-break:break-word}.avm-detail-value--mono{font-family:var(--font-mono)}.avm-text-muted{color:var(--text-muted)!important;font-weight:400!important}.avm-team-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.avm-team-tag{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:#ec48991a;color:#ec4899;font-size:.75rem;font-weight:500;border-radius:var(--radius-full);text-decoration:none;transition:background .15s ease}.avm-team-tag svg{font-size:.65rem}.avm-team-tag:hover{background:#ec489933}.avm-team-tag--clickable{cursor:pointer}@media (max-width: 768px){.avm-stats-grid{grid-template-columns:repeat(2,1fr)}.avm-detail-row{flex-direction:column;align-items:flex-start;gap:4px}.avm-detail-value{text-align:left}.avm-team-tags{justify-content:flex-start}}@media (max-width: 480px){.avm-header-card{padding:var(--spacing-sm)}.avm-exercise-name{font-size:1rem}.avm-stat-value{font-size:.95rem}}.allot-topology-modal-wrap .modal-content{height:100%;max-height:100%}.allot-topology-modal-wrap .modal-body{display:flex;flex-direction:column;overflow:hidden}.allot-topology-modal{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.atm-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0;gap:8px}.atm-toolbar-left,.atm-toolbar-right{display:flex;align-items:center;gap:8px}.atm-allot-badge{background:var(--bg-tertiary);color:var(--text-secondary);padding:2px 8px;border-radius:4px;font-size:12px;font-family:monospace;font-weight:600}.atm-status-badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.atm-status-badge.status-running{background:#22c55e26;color:#22c55e}.atm-status-badge.status-allotted{background:#3b82f626;color:#3b82f6}.atm-status-badge.status-pause{background:#f59e0b26;color:#f59e0b}.atm-processing-badge{display:flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500;background:#f59e0b26;color:#f59e0b}.atm-add-tg-group{display:flex;align-items:center}.atm-add-tg-input{display:flex;align-items:center;gap:4px}.atm-add-tg-input .form-control-sm{height:28px;font-size:12px;text-align:center}.atm-content{display:flex;flex:1;min-height:0;overflow:hidden}.atm-canvas-container{flex:1;min-height:0;min-width:0;position:relative;overflow:hidden}.atm-canvas-container .react-flow{height:100%}.atm-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);gap:12px}.atm-loading p{font-size:14px;margin:0}.atm-toolbar .btn-sm{padding:4px 10px;font-size:12px;border-radius:4px}.atm-toolbar .btn-warning{background:#d97706;color:#fff;border:none}.atm-toolbar .btn-warning:hover{background:#b45309}.atm-toolbar .btn-success{background:#16a34a;color:#fff;border:none}.atm-toolbar .btn-success:hover{background:#15803d}.atm-toolbar .btn-outline{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.atm-toolbar .btn-outline:hover{background:var(--bg-tertiary);color:var(--text-primary)}.atm-toolbar .btn-primary{background:var(--accent-primary);color:#fff;border:none}.atm-toolbar .btn-danger{background:#dc2626;color:#fff;border:none}.atm-toolbar .btn-danger:hover{background:#b91c1c}.atm-toolbar .btn-danger:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.atm-toolbar,.atm-toolbar-right{flex-wrap:wrap}}.allotment-list-page{padding:var(--spacing-sm);animation:pageEnter .4s ease}.allotment-list-page .card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 2px 12px #0000000f;overflow:visible}.allotment-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);flex-wrap:wrap}.allotment-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.allotment-list-page .header-actions>.basic-select{width:130px;min-width:120px;flex-shrink:0}.allotment-list-page .card-body{padding:0;overflow:visible}.allotment-list-page .table-responsive{overflow-x:auto;overflow-y:visible}.allotment-list-page .allotment-id{font-family:var(--font-mono);font-size:.8rem;color:var(--accent-primary);background:var(--accent-primary-light);padding:4px 8px;border-radius:4px;font-weight:500}.allotment-list-page .exercise-cell{display:flex;align-items:center;gap:6px;min-width:0}.allotment-list-page .exercise-name{font-weight:600;color:var(--text-primary);flex:1 1 auto;min-width:0;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.allotment-list-page .user-badge{display:inline-flex;align-items:center;cursor:pointer;gap:6px;padding:5px 12px;background:#6366f11a;border-radius:var(--radius-full);font-size:.8125rem;font-weight:500;color:#6366f1}.allotment-list-page .user-badge svg{color:#6366f1;font-size:.75rem}.allotment-list-page .user-badge.team{background:#ec48991a;color:#ec4899}.allotment-list-page .user-badge.team svg{color:#ec4899}.allotment-list-page .team-badges{display:flex;flex-wrap:wrap;gap:6px}.allotment-list-page .team-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;background:#ec48991a;border-radius:var(--radius-full);font-size:.8125rem;font-weight:500;color:#ec4899;cursor:pointer;transition:background .15s ease}.allotment-list-page .team-badge:hover{background:#ec489933}.allotment-list-page .team-badge svg{color:#ec4899;font-size:.75rem}.allotment-list-page .team-badge--more,.allotment-list-page .team-badge--less{background:#ec48990f;font-weight:600;font-size:.75rem}.allotment-list-page .team-badge--more:hover,.allotment-list-page .team-badge--less:hover{background:#ec489926}.allotment-list-page .extend-filter-checkbox{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:.82rem;white-space:nowrap}.allotment-list-page .extend-filter-checkbox .checkbox-label{color:var(--text-secondary);font-weight:500}.allotment-list-page .status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;text-transform:capitalize}.allotment-list-page .status-badge svg{font-size:.6rem}.allotment-list-page .status-badge.allotted{background:#3b82f61a;color:#3b82f6}.allotment-list-page .status-badge.pending{background:var(--accent-warning-light);color:var(--accent-warning)}.allotment-list-page .status-badge.active{background:var(--accent-success-light);color:var(--accent-success)}.allotment-list-page .status-badge.paused{background:#f59e0b1a;color:#f59e0b}.allotment-list-page .status-badge.completed{background:var(--accent-primary-light);color:var(--accent-primary)}.allotment-list-page .status-badge.suspended{background:#f973161a;color:#f97316}.allotment-list-page .status-badge.expired,.allotment-list-page .status-badge.rejected{background:var(--accent-danger-light);color:var(--accent-danger)}.allotment-list-page .status-badge.processing{background:var(--accent-info-light, #e3f2fd);color:var(--accent-info, #2196f3)}.allotment-list-page .status-badge.default{background:var(--bg-tertiary);color:var(--text-secondary)}.allotment-list-page .status-cell{display:inline-flex;align-items:center;gap:6px}.allotment-list-page .last-status-indicator{display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;cursor:pointer}.allotment-list-page .last-status-indicator.active{color:var(--accent-success)}.allotment-list-page .last-status-indicator.paused{color:#f59e0b}.allotment-list-page .last-status-indicator.suspended{color:#f97316}.allotment-list-page .last-status-indicator.allotted{color:#3b82f6}.allotment-list-page .last-status-indicator.pending{color:var(--accent-warning)}.allotment-list-page .last-status-indicator.rejected{color:var(--accent-danger)}.allotment-list-page .lock-icon,.allotment-list-page .extend-icon,.allotment-list-page .message-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:.75rem;line-height:1}.allotment-list-page .lock-icon{color:var(--accent-danger, #ef4444);cursor:default}.allotment-list-page .extend-icon{color:#f59e0b;cursor:default}.allotment-list-page .message-icon{color:#f97316;cursor:pointer}.allotment-list-page .type-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.allotment-list-page .type-badge svg{font-size:.6rem}.allotment-list-page .type-badge.individual{background:#6366f11a;color:#6366f1}.allotment-list-page .type-badge.team{background:#ec48991a;color:#ec4899}.allotment-list-page .td-actions{white-space:nowrap;position:relative;overflow:visible}.allotment-list-page .action-controls{display:flex;gap:6px;align-items:center}.allotment-list-page .action-select-wrapper{width:110px}.allotment-list-page .action-select-wrapper .basic-select .select-control{min-height:32px;padding:4px 8px;background:var(--bg-secondary);border:1px solid var(--border-primary);font-size:.75rem}.allotment-list-page .action-select-wrapper .basic-select .select-control:hover{border-color:var(--accent-primary)}.allotment-list-page .action-select-wrapper .basic-select.open .select-control{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-light)}.allotment-list-page .action-select-wrapper .basic-select .select-dropdown{min-width:130px;z-index:9999}.allotment-list-page .action-select-wrapper .basic-select .option-item{padding:8px 12px;font-size:.75rem}.allotment-list-page .action-ok-btn{min-width:40px;height:32px;padding:0 12px;font-size:.75rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.allotment-list-page .action-ok-btn:hover:not(:disabled){background:var(--accent-secondary);color:#fff}.allotment-list-page .action-ok-btn:disabled{opacity:.4;cursor:not-allowed}.allotment-list-page .action-controls .btn-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;font-size:.8125rem;text-decoration:none}.allotment-list-page .action-controls .btn-icon:hover{background:var(--bg-secondary);color:var(--accent-primary);border-color:var(--accent-primary)}.allotment-list-page .action-controls .btn-icon.danger:hover{background:var(--accent-danger-light);color:var(--accent-danger);border-color:var(--accent-danger)}.allotment-list-page .action-controls .btn-icon.success{color:var(--accent-success)}.allotment-list-page .action-controls .btn-icon.success:hover{background:var(--accent-success-light, rgba(16, 185, 129, .1));color:var(--accent-success);border-color:var(--accent-success)}.allotment-list-page .data-table tbody tr.row-selected{background:var(--accent-primary-alpha, rgba(99, 102, 241, .06))}.allotment-list-page .spinner-xs{width:12px;height:12px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}.header-actions .btn-icon{width:39px;height:39px;font-size:.8125rem}@media (max-width: 1200px){.allotment-list-page .header-actions>.basic-select{width:140px;min-width:120px}}@media (max-width: 992px){.allotment-list-page .card-header{flex-direction:column;align-items:stretch}.allotment-list-page .header-actions{justify-content:flex-start;flex-wrap:wrap}.allotment-list-page .header-actions>.basic-select{width:150px;min-width:130px}}@media (max-width: 768px){.allotment-list-page .header-actions{gap:8px}.allotment-list-page .header-actions>.basic-select{flex:1;width:auto;min-width:120px}}.exercise-allotment-page{padding:8px;animation:pageEnter .3s ease}.exercise-allotment-page .stepper{display:flex;justify-content:center;align-items:center;gap:0;margin-bottom:10px;padding:8px 16px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-primary)}.exercise-allotment-page .step{display:flex;align-items:center;gap:6px}.exercise-allotment-page .step:not(:last-child):after{content:"";width:40px;height:2px;background:var(--border-primary);margin:0 8px;transition:background .3s ease}.exercise-allotment-page .step.completed:not(:last-child):after{background:var(--accent-success)}.exercise-allotment-page .step-indicator{width:28px;height:35px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.75rem;background:var(--bg-primary);color:var(--text-muted);border:2px solid var(--border-primary);transition:all .2s ease}.exercise-allotment-page .step.active .step-indicator{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.exercise-allotment-page .step.completed .step-indicator{background:var(--accent-success);color:#fff;border-color:var(--accent-success)}.exercise-allotment-page .step-label{font-size:.75rem;font-weight:500;color:var(--text-muted);white-space:nowrap}.exercise-allotment-page .step.active .step-label{color:var(--accent-primary);font-weight:600}.exercise-allotment-page .step.completed .step-label{color:var(--accent-success)}.exercise-allotment-page .step-content{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.exercise-allotment-page .card{background:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border-primary);box-shadow:0 1px 4px #0000000a;overflow:visible;margin-bottom:10px}.exercise-allotment-page .card-header{padding:10px 14px;border-bottom:1px solid var(--border-primary);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}.exercise-allotment-page .card-header h3{font-size:.9rem;font-weight:600;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:6px}.exercise-allotment-page .card-header h3 svg{color:var(--accent-primary);font-size:.85rem}.exercise-allotment-page .card-header p{font-size:.75rem;color:var(--text-muted);margin:0}.exercise-allotment-page .card-body{padding:12px 14px}.exercise-allotment-page .credit-badge{background:var(--accent-primary);color:#fff;padding:6px 14px;border-radius:20px;font-size:.8rem;font-weight:600}.exercise-allotment-page .form-section{margin-bottom:12px;padding:10px}.exercise-allotment-page .form-section:last-child{margin-bottom:0}.exercise-allotment-page .section-label{display:block;font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.exercise-allotment-page .toggle-group{display:flex;gap:6px;flex-wrap:wrap}.exercise-allotment-page .toggle-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);font-size:.8125rem;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.exercise-allotment-page .toggle-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.exercise-allotment-page .toggle-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.exercise-allotment-page .dropdown-wrapper{position:relative;max-width:100%}.exercise-allotment-page .dropdown-trigger{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-height:38px;padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.exercise-allotment-page .dropdown-trigger .dropdown-arrow{margin-top:6px;flex-shrink:0}.exercise-allotment-page .dropdown-trigger:hover{border-color:var(--accent-primary)}.exercise-allotment-page .dropdown-trigger.open{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.exercise-allotment-page .dropdown-arrow{color:var(--text-muted);font-size:.75rem;transition:transform .2s ease}.exercise-allotment-page .dropdown-trigger.open .dropdown-arrow{transform:rotate(180deg)}.exercise-allotment-page .selected-items{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;flex:1;min-width:0}.exercise-allotment-page .placeholder{color:var(--text-muted)}.exercise-allotment-page .tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--accent-primary-light);color:var(--accent-primary);border-radius:20px;font-size:.8rem;font-weight:500;max-width:100%;line-height:1.4;white-space:normal;word-break:break-word;overflow-wrap:anywhere}.exercise-allotment-page .tag button{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;background:transparent;color:var(--accent-primary);cursor:pointer;border-radius:50%;transition:all .2s ease;padding:0;flex-shrink:0}.exercise-allotment-page .tag button:hover{background:var(--accent-primary);color:#fff}.exercise-allotment-page .dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);box-shadow:0 8px 24px #0000001f;z-index:9999;animation:dropdownOpen .15s ease}@keyframes dropdownOpen{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.exercise-allotment-page .dropdown-search{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border-primary)}.exercise-allotment-page .dropdown-search svg{color:var(--text-muted);font-size:.875rem}.exercise-allotment-page .dropdown-search input{flex:1;border:none;background:transparent;color:var(--text-primary);font-size:.875rem;outline:none}.exercise-allotment-page .dropdown-search input::placeholder{color:var(--text-muted)}.exercise-allotment-page .clear-search{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:var(--bg-secondary);color:var(--text-muted);border-radius:50%;cursor:pointer;padding:0}.exercise-allotment-page .clear-search:hover{background:var(--accent-danger);color:#fff}.exercise-allotment-page .dropdown-list{max-height:240px;overflow-y:auto;padding:6px 0}.exercise-allotment-page .dropdown-list::-webkit-scrollbar{width:6px}.exercise-allotment-page .dropdown-list::-webkit-scrollbar-track{background:transparent}.exercise-allotment-page .dropdown-list::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:3px}.exercise-allotment-page .dropdown-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:background .15s ease}.exercise-allotment-page .dropdown-item:hover{background:var(--bg-secondary)}.exercise-allotment-page .dropdown-item.selected{background:var(--accent-primary-light)}.exercise-allotment-page .dropdown-item .checkbox{width:18px;height:18px;border:2px solid var(--border-primary);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:#fff;background:var(--bg-primary);transition:all .15s ease}.exercise-allotment-page .dropdown-item.selected .checkbox{background:var(--accent-primary);border-color:var(--accent-primary)}.exercise-allotment-page .dropdown-item .item-name{flex:1;font-size:.875rem;color:var(--text-primary)}.exercise-allotment-page .dropdown-loading,.exercise-allotment-page .no-results{padding:20px;text-align:center;color:var(--text-muted);font-size:.875rem}.exercise-allotment-page .exercise-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.exercise-allotment-page .exercise-preview-card{background:var(--bg-primary);border-radius:10px;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #0000000f;border:1px solid transparent}.exercise-allotment-page .exercise-preview-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0891b226;border-color:var(--accent-primary)}.exercise-allotment-page .preview-image{position:relative;height:110px;background:linear-gradient(135deg,#1a1a2e,#16213e);overflow:hidden}.exercise-allotment-page .preview-image:after{content:"";position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(to top,rgba(0,0,0,.5),transparent);pointer-events:none}.exercise-allotment-page .preview-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.exercise-allotment-page .exercise-preview-card:hover .preview-image img{transform:scale(1.05)}.exercise-allotment-page .difficulty-tag{position:absolute;top:8px;right:8px;padding:3px 10px;font-size:.65rem;font-weight:700;border-radius:20px;text-transform:uppercase;letter-spacing:.5px;z-index:2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.exercise-allotment-page .difficulty-tag.easy{background:#059669e6;color:#fff;box-shadow:0 2px 8px #0596694d}.exercise-allotment-page .difficulty-tag.medium{background:#d97706e6;color:#fff;box-shadow:0 2px 8px #d977064d}.exercise-allotment-page .difficulty-tag.hard{background:#dc2626e6;color:#fff;box-shadow:0 2px 8px #dc26264d}.exercise-allotment-page .difficulty-tag.insane{background:#7c3aede6;color:#fff;box-shadow:0 2px 8px #7c3aed4d}.exercise-allotment-page .preview-content{padding:12px}.exercise-allotment-page .preview-content h4{font-size:.85rem;font-weight:600;color:var(--text-primary);margin:0 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.exercise-allotment-page .preview-content .author{display:flex;align-items:center;gap:6px;font-size:.72rem;color:var(--text-secondary);margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--border-primary)}.exercise-allotment-page .preview-content .author .icon-author{color:var(--accent-primary);font-size:1rem}.exercise-allotment-page .preview-content .meta-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.exercise-allotment-page .preview-content .meta-item{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg-secondary);border-radius:6px;font-size:.7rem;font-weight:500}.exercise-allotment-page .preview-content .meta-item span{color:var(--text-secondary)}.exercise-allotment-page .preview-content .meta-item svg{font-size:.72rem}.exercise-allotment-page .meta-item.rating{background:#f59e0b1a}.exercise-allotment-page .meta-item.rating .icon-star{color:#f59e0b}.exercise-allotment-page .meta-item.rating span{color:#b45309}.exercise-allotment-page .meta-item.duration{background:#0891b21a}.exercise-allotment-page .meta-item.duration .icon-clock{color:var(--accent-primary)}.exercise-allotment-page .meta-item.duration span{color:var(--accent-secondary)}.exercise-allotment-page .meta-item.users{background:#8b5cf61a}.exercise-allotment-page .meta-item.users .icon-users{color:#8b5cf6}.exercise-allotment-page .meta-item.users span{color:#6d28d9}.exercise-allotment-page .table-section{margin-top:12px}.exercise-allotment-page .table-header{display:flex;justify-content:space-between;align-items:center;margin:8px;gap:8px;flex-wrap:wrap}.exercise-allotment-page .table-header h4{font-size:.85rem;font-weight:600;color:var(--text-primary);margin:0}.exercise-allotment-page .search-box{position:relative;width:240px;flex-shrink:0}.exercise-allotment-page .search-box input{width:100%;height:34px;padding:0 34px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.8125rem;transition:all .2s ease}.exercise-allotment-page .search-box input:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-primary)}.exercise-allotment-page .search-box input::placeholder{color:var(--text-muted)}.exercise-allotment-page .search-box>svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.8rem;pointer-events:none}.exercise-allotment-page .search-box .clear-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;padding:0;font-size:.7rem;transition:all .15s ease}.exercise-allotment-page .search-box .clear-btn:hover{background:var(--accent-danger);color:#fff}.exercise-allotment-page .selection-badge{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;background:var(--accent-success-light);color:var(--accent-success);border-radius:12px;font-size:.75rem;font-weight:600}.exercise-allotment-page .selection-badge svg{font-size:.7rem}.exercise-allotment-page .data-table{border:1px solid var(--border-primary);border-radius:var(--radius-sm)}.exercise-allotment-page .data-table .th-checkbox,.exercise-allotment-page .data-table .td-checkbox{width:40px;text-align:center}.exercise-allotment-page .data-table .td-email{color:var(--text-muted);font-size:.8rem}.exercise-allotment-page .data-table .td-loading,.exercise-allotment-page .data-table .td-empty{text-align:center;padding:24px 12px;color:var(--text-muted);font-size:.8125rem}.exercise-allotment-page .data-table .td-loading svg{margin-right:6px;color:var(--accent-primary)}.exercise-allotment-page .data-table tbody tr.row-selected{background:var(--accent-primary-light)}.exercise-allotment-page .data-table tbody tr.row-selected:hover{background:#0891b21f}.exercise-allotment-page .checkbox-wrapper{display:flex;align-items:center;justify-content:center;cursor:pointer}.exercise-allotment-page .checkbox-wrapper input[type=checkbox]{display:none}.exercise-allotment-page .checkbox-wrapper .checkmark{width:18px;height:18px;border:2px solid var(--border-primary);border-radius:3px;display:flex;align-items:center;justify-content:center;transition:all .15s ease;background:var(--bg-primary)}.exercise-allotment-page .checkbox-wrapper:hover .checkmark{border-color:var(--accent-primary)}.exercise-allotment-page .checkbox-wrapper input[type=checkbox]:checked+.checkmark{background:var(--accent-primary);border-color:var(--accent-primary)}.exercise-allotment-page .checkbox-wrapper input[type=checkbox]:checked+.checkmark:after{content:"";width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}.exercise-allotment-page .member-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:10px;font-size:.7rem;font-weight:600;margin-right:6px}.exercise-allotment-page .member-count.active{background:var(--accent-success-light);color:var(--accent-success)}.exercise-allotment-page .status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;vertical-align:middle}.exercise-allotment-page .status-dot.active{background:var(--accent-success);box-shadow:0 0 0 2px var(--accent-success-light)}.exercise-allotment-page .status-dot.inactive{background:var(--accent-danger);box-shadow:0 0 0 2px var(--accent-danger-light)}.exercise-allotment-page .type-badge{display:inline-flex;align-items:center;padding:3px 8px;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:10px;font-size:.7rem;font-weight:500}.exercise-allotment-page .pagination{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:10px;padding-top:10px;margin-bottom:5px}.exercise-allotment-page .pagination button{display:flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 10px;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem;transition:all .15s ease}.exercise-allotment-page .pagination button:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-primary);background:var(--accent-primary-light)}.exercise-allotment-page .pagination button.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.exercise-allotment-page .pagination button:disabled{opacity:.4;cursor:not-allowed}.exercise-allotment-page .pagination span{font-size:.8rem;color:var(--text-secondary);padding:0 6px}.exercise-allotment-page .team-accordion{border:1px solid var(--border-primary);border-radius:var(--radius-sm);margin-bottom:6px;overflow:hidden}.exercise-allotment-page .team-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);cursor:pointer;transition:background .15s ease}.exercise-allotment-page .team-header:hover{background:var(--bg-tertiary)}.exercise-allotment-page .team-info{display:flex;align-items:center;gap:12px}.exercise-allotment-page .team-checkbox{width:20px;height:20px;border:2px solid var(--border-primary);border-radius:4px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);color:#fff;font-size:.7rem;cursor:pointer;transition:all .15s ease}.exercise-allotment-page .team-checkbox.checked{background:var(--accent-primary);border-color:var(--accent-primary)}.exercise-allotment-page .team-name{font-weight:600;font-size:.9rem;color:var(--text-primary)}.exercise-allotment-page .team-meta{font-size:.75rem;color:var(--text-muted);margin-left:auto;margin-right:12px}.exercise-allotment-page .team-expand-icon{color:var(--text-muted);font-size:.75rem;transition:transform .2s ease}.exercise-allotment-page .team-accordion.open .team-expand-icon{transform:rotate(180deg)}.exercise-allotment-page .team-content{padding:var(--spacing-md);background:var(--bg-primary);border-top:1px solid var(--border-primary)}.exercise-allotment-page .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;font-size:.875rem;font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;border:none}.exercise-allotment-page .btn-primary{background:var(--accent-primary);color:#fff}.exercise-allotment-page .btn-primary:hover:not(:disabled){background:var(--accent-secondary);color:#fff}.exercise-allotment-page .btn-outline{background:transparent;border:1px solid var(--border-primary);color:var(--text-secondary)}.exercise-allotment-page .btn-outline:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--accent-primary)}.exercise-allotment-page .btn-success{background:var(--accent-success);color:#fff}.exercise-allotment-page .btn-success:hover:not(:disabled){opacity:.9;color:#fff}.exercise-allotment-page .btn:disabled{opacity:.5;cursor:not-allowed}.exercise-allotment-page .btn-sm{padding:6px 14px;font-size:.8rem}.exercise-allotment-page .btn-lg{padding:12px 28px;font-size:1rem}.exercise-allotment-page .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:12px}.exercise-allotment-page .spinner-lg{width:36px;height:36px;border:3px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.exercise-allotment-page .loading-state p{color:var(--text-muted);font-size:.875rem}.exercise-allotment-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center}.exercise-allotment-page .empty-state svg{font-size:2.5rem;color:var(--text-muted);margin-bottom:12px;opacity:.4}.exercise-allotment-page .empty-state p{color:var(--text-muted);font-size:.875rem}.exercise-allotment-page .config-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.exercise-allotment-page .form-group{display:flex;flex-direction:column;gap:6px}.exercise-allotment-page .form-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.exercise-allotment-page .form-control{height:40px;padding:0 12px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;transition:all .2s ease}.exercise-allotment-page .form-control:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.exercise-allotment-page .form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.exercise-allotment-page .summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-md)}.exercise-allotment-page .summary-item{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-md);display:flex;align-items:center;gap:12px}.exercise-allotment-page .summary-icon{width:40px;height:40px;border-radius:var(--radius-md);background:var(--accent-primary-light);color:var(--accent-primary);display:flex;align-items:center;justify-content:center;font-size:1rem}.exercise-allotment-page .summary-info h4{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;margin:0 0 4px}.exercise-allotment-page .summary-info p{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}@media (max-width: 992px){.exercise-allotment-page .stepper{flex-wrap:wrap;gap:var(--spacing-md)}.exercise-allotment-page .step:not(:last-child):after{display:none}.exercise-allotment-page .form-row{grid-template-columns:1fr}}@media (max-width: 768px){.exercise-allotment-page .card-footer{flex-direction:column;gap:var(--spacing-md)}.exercise-allotment-page .card-footer .btn{width:100%}.exercise-allotment-page .table-header{flex-direction:column;align-items:stretch}.exercise-allotment-page .search-box{width:100%}.exercise-allotment-page .table-footer{flex-direction:column;text-align:center}.exercise-allotment-page .pagination{justify-content:center}.exercise-allotment-page .exercise-grid{grid-template-columns:1fr}}.exercise-allotment-page .loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000059;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:9999;display:flex;align-items:center;justify-content:center}.exercise-allotment-page .spinner-container{display:flex;flex-direction:column;align-items:center;gap:12px;background:var(--bg-primary);padding:28px 40px;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);color:var(--accent-primary)}.exercise-allotment-page .spinner-container span{font-size:.85rem;font-weight:500;color:var(--text-secondary)}.exercise-allotment-page .exercise-accordion{border:1px solid var(--border-primary);border-radius:var(--radius-md);margin-bottom:10px;overflow:hidden;background:var(--bg-primary);transition:box-shadow .2s ease}.exercise-allotment-page .exercise-accordion:hover{box-shadow:0 2px 8px #0000000f}.exercise-allotment-page .exercise-accordion:last-child{margin-bottom:0}.exercise-allotment-page .accordion-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);cursor:pointer;transition:background .15s ease;-webkit-user-select:none;user-select:none;border-bottom:1px solid transparent}.exercise-allotment-page .accordion-header:hover{background:var(--bg-tertiary)}.exercise-allotment-page .accordion-header.expanded{border-bottom-color:var(--border-primary);background:var(--bg-tertiary)}.exercise-allotment-page .accordion-title{display:flex;align-items:center;gap:10px;font-weight:600;font-size:.875rem;color:var(--text-primary)}.exercise-allotment-page .accordion-title svg{font-size:.7rem;color:var(--text-muted);transition:transform .2s ease}.exercise-allotment-page .accordion-header.expanded .accordion-title svg{color:var(--accent-primary)}.exercise-allotment-page .accordion-meta{display:flex;align-items:center;gap:8px}.exercise-allotment-page .duration-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:var(--accent-primary-light);color:var(--accent-primary);border-radius:12px;font-size:.72rem;font-weight:600}.exercise-allotment-page .duration-badge svg{font-size:.68rem}.exercise-allotment-page .accordion-body{padding:16px;animation:fadeSlideIn .2s ease}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.exercise-allotment-page .config-panel{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;padding:14px;background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-primary)}.exercise-allotment-page .config-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px}.exercise-allotment-page .config-item{display:flex;flex-direction:column;gap:5px}.exercise-allotment-page .config-item label{font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.exercise-allotment-page .config-item input:not([type=hidden]),.exercise-allotment-page .config-item select{height:36px;padding:0 10px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.8125rem;transition:all .15s ease;width:100%}.exercise-allotment-page .config-item input:not([type=hidden]):focus,.exercise-allotment-page .config-item select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-light)}.exercise-allotment-page .config-item input:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.exercise-allotment-page .config-item input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:var(--calendar-icon-filter, none);cursor:pointer}[data-theme=dark] .exercise-allotment-page .config-item input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(1)}.exercise-allotment-page .config-item .searchable-select{width:100%}.exercise-allotment-page .assignment-section{margin-top:14px}.exercise-allotment-page .assignment-section h4{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:var(--text-primary);margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--border-primary)}.exercise-allotment-page .assignment-section h4 svg{color:var(--accent-primary);font-size:.8rem}.exercise-allotment-page .assignment-table{overflow-x:auto;border:1px solid var(--border-primary);border-radius:var(--radius-sm)}.exercise-allotment-page .assignment-table table{width:100%;border-collapse:collapse;font-size:.8125rem}.exercise-allotment-page .assignment-table thead{background:var(--bg-tertiary)}.exercise-allotment-page .assignment-table th{padding:8px 12px;font-size:.72rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;border-bottom:2px solid var(--border-primary);text-align:left;white-space:nowrap}.exercise-allotment-page .assignment-table td{padding:10px 12px;color:var(--text-secondary);border-bottom:1px solid var(--border-primary);vertical-align:middle}.exercise-allotment-page .assignment-table tbody tr:last-child td{border-bottom:none}.exercise-allotment-page .assignment-table tbody tr:hover{background:var(--bg-secondary)}.exercise-allotment-page .assignment-table td small{display:block;color:var(--text-muted);font-size:.72rem;margin-top:2px}.exercise-allotment-page .assignment-table .text-muted{color:var(--text-muted);font-style:italic;font-size:.78rem}.exercise-allotment-page .team-block{border:1px solid var(--border-primary);border-radius:var(--radius-sm);margin-bottom:10px;overflow:hidden}.exercise-allotment-page .team-block:last-child{margin-bottom:0}.exercise-allotment-page .team-block .team-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);cursor:default}.exercise-allotment-page .team-block .team-header span{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.82rem;color:var(--text-primary)}.exercise-allotment-page .team-block .team-header span svg{color:var(--accent-primary);font-size:.8rem}.exercise-allotment-page .control-btn{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.exercise-allotment-page .control-power{background:var(--accent-success);color:#fff}.exercise-allotment-page .control-console{background:var(--accent-primary);color:#fff}.exercise-allotment-page .control-web{background:#0d9488;color:#fff}.exercise-allotment-page .control-snapshot{background:var(--accent-warning);color:#1a1a1a}.exercise-allotment-page .control-restore{background:#7c3aed;color:#fff}.exercise-allotment-page .control-default{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-primary)}.exercise-allotment-page .action-buttons{display:flex;align-items:center;gap:6px}.exercise-allotment-page .btn-xs{padding:3px 7px;font-size:.68rem;min-height:auto;border-radius:4px;line-height:1}.exercise-allotment-page .btn-danger{background:var(--accent-danger);color:#fff;border:none}.exercise-allotment-page .btn-danger:hover:not(:disabled){opacity:.85}.exercise-allotment-page .btn-info{background:var(--accent-info);color:#fff;border:none}.exercise-allotment-page .btn-info:hover:not(:disabled){opacity:.85}.exercise-allotment-page .btn-warning{background:var(--accent-warning);color:#fff;border:none}.exercise-allotment-page .btn-warning:hover:not(:disabled){opacity:.85}.exercise-allotment-page .btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-primary)}.exercise-allotment-page .btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.exercise-allotment-page .btn-group{display:flex;align-items:center;gap:8px}.exercise-allotment-page .text-muted{color:var(--text-muted)}.vm-config-modal{display:flex;flex-direction:column;gap:var(--spacing-sm)}.vm-config-modal .form-group{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.vm-config-modal .form-label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.vm-entry-card{border:1px solid var(--border-color);border-radius:var(--radius-md, 8px);overflow:visible}.vm-entry-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.vm-entry-title{font-size:.8125rem;font-weight:600;color:var(--text-secondary)}.vm-entry-body{padding:12px}.vm-entry-body .form-group:last-child{margin-bottom:0}.btn-add-vm{width:100%;border-style:dashed;padding:10px;font-size:.875rem}.modal-footer-btns{display:flex;align-items:center;justify-content:flex-end;gap:8px}@media (max-width: 768px){.exercise-allotment-page .config-row-2col{grid-template-columns:1fr}.exercise-allotment-page .accordion-header{padding:10px 12px}.exercise-allotment-page .accordion-body{padding:12px}.exercise-allotment-page .assignment-table{font-size:.75rem}.exercise-allotment-page .team-block .team-header{flex-direction:column;gap:8px;align-items:flex-start}.exercise-allotment-page .btn-group{flex-direction:column;width:100%}.exercise-allotment-page .btn-group .btn{width:100%}}.exercise-allotment-page .extend-item .extend-checkbox{display:flex;align-items:center;gap:8px;padding:6px 0}.exercise-allotment-page .extend-item .extend-checkbox span:last-child{font-size:.85rem;color:var(--text-secondary)}.exercise-allotment-page .manual-cell{max-width:180px;word-wrap:break-word;overflow-wrap:break-word;font-size:.82rem;color:var(--text-secondary);line-height:1.4}.exercise-allotment-page .summary-strip{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:6px 12px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);flex-wrap:wrap}.exercise-allotment-page .summary-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--bg-secondary);color:var(--text-muted);border-radius:16px;font-size:.72rem;font-weight:500;transition:all .2s ease}.exercise-allotment-page .summary-chip svg{font-size:.68rem}.exercise-allotment-page .summary-chip.has-data{background:var(--accent-primary-light);color:var(--accent-primary);font-weight:600}.exercise-allotment-page .step.completed.clickable{cursor:pointer}.exercise-allotment-page .step.completed.clickable:hover .step-indicator{transform:scale(1.1);box-shadow:0 0 0 3px var(--accent-success-light)}.exercise-allotment-page .step.completed.clickable:hover .step-label{text-decoration:underline}.exercise-allotment-page .step.locked{cursor:not-allowed;opacity:.5;pointer-events:none}.exercise-allotment-page .step.locked .step-indicator{background:var(--bg-tertiary);color:var(--text-muted);border-color:var(--border-primary)}.exercise-allotment-page .step.locked .step-label{color:var(--text-muted)}.exercise-allotment-page .exercise-preview-card{position:relative}.exercise-allotment-page .card-remove-btn{position:absolute;top:6px;left:6px;z-index:3;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:#0000008c;color:#fff;border:none;border-radius:50%;cursor:pointer;font-size:.72rem;transition:all .15s ease;opacity:0;padding:0;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.exercise-allotment-page .exercise-preview-card:hover .card-remove-btn{opacity:1}.exercise-allotment-page .card-remove-btn:hover{background:var(--accent-danger);transform:scale(1.15)}.exercise-allotment-page .card-view-btn{position:absolute;top:6px;right:6px;z-index:3;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:#0000008c;color:#fff;border:none;border-radius:50%;font-size:.6rem;cursor:pointer;opacity:0;transition:all .2s ease}.exercise-allotment-page .exercise-preview-card:hover .card-view-btn{opacity:1}.exercise-allotment-page .card-view-btn:hover{background:var(--accent-primary);transform:scale(1.15)}.exercise-allotment-page .exercise-preview-card{cursor:pointer}.exercise-allotment-page .table-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.exercise-allotment-page .table-footer{display:flex;align-items:center;justify-content:space-between;margin:8px;gap:8px;flex-wrap:wrap}.exercise-allotment-page .records-info{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.exercise-allotment-page .pagination-ellipsis{display:flex;align-items:center;justify-content:center;min-width:30px;height:30px;color:var(--text-muted);font-size:.8rem}.exercise-allotment-page .config-status-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:12px;font-size:.72rem;font-weight:600}.exercise-allotment-page .config-status-badge svg{font-size:.68rem}.exercise-allotment-page .config-status-badge.complete{background:var(--accent-success-light);color:var(--accent-success)}.exercise-allotment-page .config-status-badge.partial{background:var(--accent-warning-light);color:var(--accent-warning)}.exercise-allotment-page .config-status-badge.none{background:var(--accent-danger-light);color:var(--accent-danger)}.exercise-allotment-page .card-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.exercise-allotment-page .instructor-display{display:flex;align-items:center;gap:8px;height:36px;padding:0 10px;background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.8125rem;font-weight:500}.exercise-allotment-page .instructor-display svg{color:var(--accent-primary);font-size:1rem}.exercise-allotment-page .assignment-table tbody tr.row-unconfigured{background:#f59e0b0f}.exercise-allotment-page .assignment-table tbody tr.row-unconfigured:hover{background:#f59e0b1a}.exercise-allotment-page .unconfigured-icon{color:var(--accent-warning);margin-right:4px;font-size:.72rem}.exercise-allotment-page .card-footer{position:sticky;bottom:0;z-index:10;background:var(--bg-primary);border-top:1px solid var(--border-primary);box-shadow:0 -2px 8px #0000000f}@media (max-width: 768px){.exercise-allotment-page .summary-strip{padding:4px 8px;gap:4px}.exercise-allotment-page .table-footer{flex-direction:column;align-items:center;text-align:center}.exercise-allotment-page .table-header-right,.exercise-allotment-page .card-header-actions{flex-wrap:wrap;justify-content:flex-end}}.exercise-allotment-page .challenge-locked-hint{display:block;margin-top:4px;font-size:12px;color:var(--text-muted);font-style:italic}.challenge-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.challenge-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.challenge-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.challenge-list-page .header-actions>.basic-select{width:150px;min-width:130px;flex-shrink:0}.challenge-list-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.challenge-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.challenge-list-page .view-toggle{display:flex;background:var(--bg-secondary);border-radius:var(--radius-md);padding:2px;border:1px solid var(--border-primary)}.challenge-list-page .toggle-btn{padding:var(--spacing-xs) var(--spacing-sm);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all .15s ease;font-size:10px!important}.challenge-list-page .toggle-btn:hover{color:var(--text-primary)}.challenge-list-page .toggle-btn.active{background:var(--bg-primary);color:var(--accent-primary);box-shadow:0 1px 3px #0000001a}.challenge-list-page .challenge-name-link{color:var(--accent-primary);text-decoration:none;font-weight:500;transition:color .15s ease}.challenge-list-page .challenge-name-link:hover{color:var(--accent-primary-hover);text-decoration:underline}.challenge-list-page .created-by-link{background:none;border:none;padding:0;font-family:inherit;font-size:inherit;color:var(--text-secondary);cursor:pointer;transition:color .15s ease;text-decoration:none}.challenge-list-page .created-by-link:hover{color:var(--accent-primary);text-decoration:underline}.challenge-list-page .status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:600;border-radius:var(--radius-full);text-transform:capitalize}.challenge-list-page .status-badge.active{background:var(--accent-success-light);color:var(--accent-success)}.challenge-list-page .status-badge.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.challenge-list-page .usage-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:2px 8px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;background:var(--bg-tertiary);color:var(--text-secondary)}.challenge-list-page .text-success{color:var(--accent-success)}.challenge-list-page .text-muted{color:var(--text-muted)}.challenge-list-page .table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.challenge-list-page .challenges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-md)}.challenge-list-page .challenge-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);transition:all .15s ease;border-left:3px solid transparent}.challenge-list-page .challenge-card.card--active{border-left-color:var(--accent-success)}.challenge-list-page .challenge-card.card--inactive{border-left-color:var(--accent-danger)}.challenge-list-page .challenge-card:hover{border-color:var(--accent-primary);border-left-color:var(--accent-primary);box-shadow:0 2px 8px #0000000f}.challenge-list-page .challenge-card-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:10px 12px;border-bottom:1px solid var(--border-primary)}.challenge-list-page .challenge-card-name{flex:1;font-size:.875rem;font-weight:600;color:var(--text-primary);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.challenge-list-page .challenge-card-name:hover{color:var(--accent-primary)}.challenge-list-page .challenge-card-body{padding:8px 12px;display:flex;flex-direction:column;gap:6px}.challenge-list-page .challenge-card-row{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;color:var(--text-secondary);line-height:1.4}.challenge-list-page .challenge-card-label{color:var(--text-muted);font-size:.75rem}.challenge-list-page .challenge-card-status{font-weight:600;font-size:.75rem}.challenge-list-page .challenge-card-status.active{color:var(--accent-success)}.challenge-list-page .challenge-card-status.inactive{color:var(--accent-danger)}[data-theme=dark] .challenge-list-page .created-by-link{color:var(--text-secondary)}[data-theme=dark] .challenge-list-page .created-by-link:hover{color:var(--accent-primary)}[data-theme=dark] .challenge-list-page .challenge-card:hover{box-shadow:0 2px 10px #0003}@media (max-width: 1200px){.challenge-list-page .header-actions>.basic-select{width:130px;min-width:110px}}@media (max-width: 1024px){.challenge-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.challenge-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}}@media (max-width: 768px){.challenge-list-page .challenges-grid{grid-template-columns:1fr}.challenge-list-page .card-header{flex-direction:column;align-items:stretch}.challenge-list-page .header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.challenge-list-page .header-actions>.basic-select{flex:1;width:auto;min-width:110px}}.leaderboard-page{padding:var(--spacing-sm);animation:lbFadeIn .3s ease;max-width:1600px;margin:0 auto;display:flex;flex-direction:column;gap:16px}@keyframes lbFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.lb-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.lb-stat-card{display:flex;align-items:center;gap:12px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:14px;transition:all .25s ease}.lb-stat-card:hover{border-color:var(--accent-primary);box-shadow:0 4px 16px #0891b214;transform:translateY(-2px)}.lb-stat-card .stat-icon-wrapper{width:42px;height:42px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.125rem;flex-shrink:0}.lb-stat-card .stat-icon-wrapper.primary{background:linear-gradient(135deg,#0891b226,#0891b214);color:var(--accent-primary)}.lb-stat-card .stat-icon-wrapper.success{background:linear-gradient(135deg,#10b98126,#10b98114);color:#10b981}.lb-stat-card .stat-icon-wrapper.warning{background:linear-gradient(135deg,#f59e0b26,#f59e0b14);color:#f59e0b}.lb-stat-card .stat-icon-wrapper.info{background:linear-gradient(135deg,#3b82f626,#3b82f614);color:#3b82f6}.lb-stat-details{flex:1;min-width:0}.lb-stat-details .stat-value{display:block;font-size:1.375rem;font-weight:800;color:var(--text-primary);line-height:1.1}.lb-stat-details .stat-label{display:block;font-size:.75rem;color:var(--text-muted);margin-top:2px;font-weight:500}.lb-main-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden}.lb-tabs{display:flex;border-bottom:1px solid var(--border-primary);background:var(--bg-secondary)}.lb-tab-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:none;border:none;font-size:.875rem;font-weight:500;color:var(--text-muted);cursor:pointer;position:relative;transition:color var(--transition-fast);font-family:inherit}.lb-tab-btn:hover{color:var(--text-primary)}.lb-tab-btn.active{color:var(--accent-primary)}.lb-tab-btn.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent-primary)}.lb-tab-btn .tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:var(--bg-tertiary);font-size:.6875rem;font-weight:600;color:var(--text-muted)}.lb-tab-btn.active .tab-count{background:var(--accent-primary-light);color:var(--accent-primary)}.lb-main-card .card-body{padding:0}.lb-toolbar{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap}.lb-toolbar-left{display:flex;align-items:center;gap:var(--spacing-sm);flex:1;min-width:200px}.lb-toolbar-right{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.lb-toolbar-right .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.lb-toolbar-right .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.lb-table-container{overflow-x:auto}.lb-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem}.lb-table thead{background:var(--bg-tertiary)}.lb-table th,.lb-table td{padding:var(--spacing-md) var(--spacing-sm);text-align:left;border-bottom:1px solid var(--border-primary)}.lb-table th{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;border-bottom-width:2px}.lb-table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.lb-table th.th-sortable:hover{background:var(--bg-secondary)}.lb-table th.th-sortable span{margin-right:6px}.lb-table th .sort-icon{font-size:.7rem;opacity:.5}.lb-table th.th-sortable:hover .sort-icon{opacity:1}.lb-table th.th-center,.lb-table td.td-center{text-align:center}.lb-table td{color:var(--text-secondary);vertical-align:middle}.lb-table tbody tr{background:var(--bg-primary);transition:background var(--transition-fast)}.lb-table tbody tr:hover{background:var(--bg-secondary)}.lb-table tbody tr:last-child td{border-bottom:none}.lb-rank{width:28px;height:28px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0;background:var(--bg-tertiary);color:var(--text-muted)}.lb-rank.rank-1{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;box-shadow:0 2px 8px #fbbf2459}.lb-rank.rank-2{background:linear-gradient(135deg,#94a3b8,#64748b);color:#fff;box-shadow:0 2px 8px #94a3b859}.lb-rank.rank-3{background:linear-gradient(135deg,#d97706,#b45309);color:#fff;box-shadow:0 2px 8px #d9770659}.lb-name-cell{display:flex;align-items:center;gap:8px}.lb-name-text{font-weight:600;color:var(--text-primary)}.lb-type-icon{color:var(--text-muted);font-size:.75rem;flex-shrink:0}.lb-challenge-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 8px;background:var(--accent-primary-light);color:var(--accent-primary);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);border:none;font-family:inherit}.lb-challenge-badge:hover{background:var(--accent-primary);color:var(--text-inverse);transform:scale(1.1)}.lb-score-cell{display:flex;align-items:center;gap:10px;min-width:180px}.lb-score-bar{flex:1;height:8px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden;min-width:80px}.lb-score-fill{height:100%;border-radius:var(--radius-full);transition:width .5s ease;min-width:2px}.lb-score-fill.success{background:linear-gradient(90deg,#10b981,#34d399)}.lb-score-fill.warning{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.lb-score-fill.danger{background:linear-gradient(90deg,#ef4444,#f87171)}.lb-score-text{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;min-width:60px}.lb-status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:500;border-radius:var(--radius-full)}.lb-status-badge.active,.lb-status-badge.completed{background:var(--accent-success-light);color:var(--accent-success)}.lb-status-badge.info{background:var(--accent-info-light);color:var(--accent-info)}.lb-status-badge.muted{background:var(--bg-tertiary);color:var(--text-muted)}.lb-status-badge.warning,.lb-status-badge.pending{background:var(--accent-warning-light);color:var(--accent-warning)}.lb-mobile-cards{display:none}.challenge-detail-summary{display:flex;align-items:center;gap:12px;padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.challenge-detail-summary .summary-score{font-size:1.125rem;font-weight:700;color:var(--text-primary);white-space:nowrap}.challenge-detail-summary .summary-bar{flex:1;height:10px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.challenge-detail-summary .summary-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .5s ease}.challenge-detail-summary .summary-bar-fill.success{background:linear-gradient(90deg,#10b981,#34d399)}.challenge-detail-summary .summary-bar-fill.warning{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.challenge-detail-summary .summary-bar-fill.danger{background:linear-gradient(90deg,#ef4444,#f87171)}.challenge-detail-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem}.challenge-detail-table thead{background:var(--bg-tertiary)}.challenge-detail-table th,.challenge-detail-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-primary)}.challenge-detail-table th{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.challenge-detail-table td{color:var(--text-secondary);vertical-align:middle}.challenge-detail-table tbody tr:hover{background:var(--bg-secondary)}.challenge-detail-table tbody tr:last-child td{border-bottom:none}.grade-task-group{margin-bottom:var(--spacing-lg);border:1px solid var(--border-primary);border-radius:var(--radius-md);overflow:hidden}.grade-task-group:last-child{margin-bottom:0}.grade-task-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary);font-size:.8125rem;font-weight:600;color:var(--text-primary)}.grade-task-header svg{color:var(--accent-primary);font-size:.875rem}.grade-question{padding:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.grade-question:last-child{border-bottom:none}.grade-question-text{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.grade-answer-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.8125rem;margin-bottom:var(--spacing-sm)}.grade-answer-table th,.grade-answer-table td{padding:var(--spacing-xs) var(--spacing-sm);text-align:left;border-bottom:1px solid var(--border-primary)}.grade-answer-table th{font-size:.75rem;font-weight:600;color:var(--text-muted);background:var(--bg-secondary)}.grade-answer-table td{color:var(--text-secondary);vertical-align:middle}.grade-answer-table tbody tr:last-child td{border-bottom:none}.grade-radio-group{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xs) 0}.grade-radio-label{display:flex;align-items:center;gap:4px;font-size:.8125rem;cursor:pointer;color:var(--text-secondary);transition:color var(--transition-fast)}.grade-radio-label:hover{color:var(--text-primary)}.grade-radio-label input[type=radio]{accent-color:var(--accent-primary);cursor:pointer}.grade-radio-label.correct{color:var(--accent-success)}.grade-radio-label.incorrect{color:var(--accent-danger)}.lb-empty-state{text-align:center;padding:var(--spacing-2xl)}.lb-empty-state .empty-icon{font-size:2rem;color:var(--text-muted);opacity:.4;margin-bottom:var(--spacing-md)}.lb-empty-state p{color:var(--text-muted);font-size:.875rem;margin:0}@media (max-width: 1024px){.lb-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.leaderboard-page{padding:var(--spacing-sm);gap:10px}.lb-stats-grid{grid-template-columns:repeat(2,1fr);gap:8px}.lb-toolbar{flex-direction:column;align-items:stretch}.lb-toolbar-left{min-width:100%}.lb-toolbar-right{justify-content:flex-end}.lb-table-container{display:none}.lb-mobile-cards{display:flex;flex-direction:column;gap:8px;padding:var(--spacing-md)}.lb-mobile-card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-md)}.lb-mobile-card-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.lb-mobile-card-header .lb-name-text{flex:1}.lb-mobile-card-body{display:flex;flex-direction:column;gap:6px;font-size:.8125rem}.lb-mobile-card-row{display:flex;justify-content:space-between;align-items:center}.lb-mobile-card-label{color:var(--text-muted);font-weight:500}.lb-mobile-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-primary)}.lb-tabs{padding:0 var(--spacing-md)}.lb-tab-btn{padding:var(--spacing-sm) var(--spacing-md);font-size:.8125rem}}@media (max-width: 576px){.lb-stats-grid{grid-template-columns:1fr}.lb-score-cell{min-width:auto}.lb-score-bar{display:none}}.ulb-page{padding:var(--spacing-sm);animation:ulbFadeIn .3s ease;max-width:1600px;margin:0 auto;display:flex;flex-direction:column;gap:16px}@keyframes ulbFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ulb-page .ulb-main-card>.ulb-page-tabs{display:flex;gap:2px;padding:0 var(--spacing-lg);border-bottom:1px solid var(--border-primary);background:transparent;border-radius:0}.ulb-page .ulb-main-card>.ulb-page-tabs .ulb-page-tab{display:inline-flex;align-items:center;gap:8px;padding:12px 16px;background:none;border:none;border-radius:0;font-size:.8125rem;font-weight:500;color:var(--text-muted);cursor:pointer;position:relative;white-space:nowrap;transition:color var(--transition-fast)}.ulb-page .ulb-main-card>.ulb-page-tabs .ulb-page-tab:hover{background:transparent;color:var(--text-primary)}.ulb-page .ulb-main-card>.ulb-page-tabs .ulb-page-tab.active{background:transparent;color:var(--accent-primary);font-weight:600}.ulb-page .ulb-main-card>.ulb-page-tabs .ulb-page-tab.active:after{content:"";position:absolute;bottom:-1px;left:8px;right:8px;height:2px;background:var(--accent-primary);border-radius:2px 2px 0 0}.ulb-page .ulb-my-score-card{background:var(--bg-secondary, var(--bg-card));border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-md) var(--spacing-lg);margin:var(--spacing-md) var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.ulb-page .ulb-my-score-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:var(--spacing-md);border-bottom:1px dashed var(--border-primary)}.ulb-page .ulb-my-score-card-stats{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.ulb-page .ulb-my-score-card-stats .ulb-detail-summary-stat{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px}.ulb-page .ulb-my-score-card-stats .ulb-detail-summary-bar{flex:0 0 auto;width:220px;max-width:100%;margin-left:auto;display:flex;flex-direction:column;gap:6px}@media (max-width: 640px){.ulb-page .ulb-my-score-card{margin:var(--spacing-sm);padding:var(--spacing-md)}.ulb-page .ulb-my-score-card-stats{gap:12px}.ulb-page .ulb-my-score-card-stats .ulb-detail-summary-stat{min-width:52px}.ulb-page .ulb-my-score-card-stats .ulb-detail-summary-bar{flex-basis:100%}}.ulb-podium-section{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-xl) var(--spacing-lg);overflow:hidden}.ulb-podium{display:flex;align-items:flex-end;justify-content:center;gap:16px;max-width:780px;margin:0 auto}.ulb-podium-card{flex:1;max-width:240px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--spacing-lg) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);transition:all .3s ease;position:relative}.ulb-podium-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000014}.ulb-podium-card.position-1{order:2;padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl);border-color:#fbbf244d;background:linear-gradient(180deg,rgba(251,191,36,.06) 0%,var(--bg-secondary) 100%)}.ulb-podium-card.position-2{order:1}.ulb-podium-card.position-3{order:3}.ulb-podium-rank-badge{display:flex;align-items:center;gap:4px;font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:var(--radius-full);margin-bottom:4px}.position-1 .ulb-podium-rank-badge{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;box-shadow:0 2px 12px #fbbf2466}.position-2 .ulb-podium-rank-badge{background:linear-gradient(135deg,#94a3b8,#64748b);color:#fff;box-shadow:0 2px 8px #94a3b84d}.position-3 .ulb-podium-rank-badge{background:linear-gradient(135deg,#d97706,#b45309);color:#fff;box-shadow:0 2px 8px #d977064d}.ulb-podium-avatar{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.125rem;font-weight:700;color:#fff;background:var(--accent-primary);border:3px solid;cursor:pointer;transition:transform .2s ease}.position-1 .ulb-podium-avatar{width:68px;height:68px;font-size:1.375rem}.ulb-podium-avatar:hover{transform:scale(1.08)}.ulb-podium-name{font-size:.9375rem;font-weight:700;color:var(--text-primary);cursor:pointer;text-align:center;line-height:1.2}.ulb-podium-name:hover{color:var(--accent-primary)}.ulb-podium-team{font-size:.6875rem;color:var(--text-muted);font-weight:500}.ulb-podium-type{display:flex;align-items:center;gap:4px;font-size:.6875rem;color:var(--text-muted);font-weight:500}.ulb-podium-type svg{font-size:.625rem}.ulb-podium-score{display:flex;align-items:center;gap:4px;font-size:1.125rem;font-weight:800;color:var(--text-primary)}.ulb-podium-score svg{color:#fbbf24;font-size:.875rem}.ulb-podium-level{display:flex;align-items:center;gap:4px;font-size:.75rem;font-weight:600}.ulb-podium-stats{display:flex;gap:12px;font-size:.6875rem;color:var(--text-muted);margin-top:2px}.ulb-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.ulb-stat-card{display:flex;align-items:center;gap:12px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:14px;transition:all .25s ease}.ulb-stat-card:hover{border-color:var(--accent-primary);box-shadow:0 4px 16px #0891b214;transform:translateY(-2px)}.ulb-stat-card .stat-icon-wrapper{width:42px;height:42px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.125rem;flex-shrink:0}.ulb-stat-card .stat-icon-wrapper.primary{background:linear-gradient(135deg,#0891b226,#0891b214);color:var(--accent-primary)}.ulb-stat-card .stat-icon-wrapper.success{background:linear-gradient(135deg,#10b98126,#10b98114);color:#10b981}.ulb-stat-card .stat-icon-wrapper.warning{background:linear-gradient(135deg,#f59e0b26,#f59e0b14);color:#f59e0b}.ulb-stat-card .stat-icon-wrapper.info{background:linear-gradient(135deg,#3b82f626,#3b82f614);color:#3b82f6}.ulb-stat-details{flex:1;min-width:0}.ulb-stat-details .stat-value{display:block;font-size:1.375rem;font-weight:800;color:var(--text-primary);line-height:1.1}.ulb-stat-details .stat-label{display:block;font-size:.75rem;color:var(--text-muted);margin-top:2px;font-weight:500}.ulb-main-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden}.ulb-toolbar{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap}.ulb-toolbar-left{display:flex;align-items:center;gap:var(--spacing-sm);flex:1;min-width:200px}.ulb-toolbar-right{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.ulb-search-box{position:relative;max-width:320px;flex:1}.ulb-search-box .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.8125rem;pointer-events:none}.ulb-search-box input{width:100%;padding:8px 12px 8px 34px;border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:.875rem;background:var(--bg-primary);color:var(--text-primary);font-family:inherit;transition:border-color var(--transition-fast)}.ulb-search-box input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-light)}.ulb-search-box input::placeholder{color:var(--text-muted)}.ulb-toolbar-right .btn-icon{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.ulb-toolbar-right .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.ulb-table-container{overflow-x:auto}.ulb-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem}.ulb-table thead{background:var(--bg-tertiary)}.ulb-table th,.ulb-table td{padding:var(--spacing-md) var(--spacing-sm);text-align:left;border-bottom:1px solid var(--border-primary)}.ulb-table th{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;border-bottom-width:2px}.ulb-table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.ulb-table th.th-sortable:hover{background:var(--bg-secondary)}.ulb-table th.th-sortable span{margin-right:6px}.ulb-table th .sort-icon{font-size:.7rem;opacity:.5}.ulb-table th.th-sortable:hover .sort-icon{opacity:1}.ulb-table th.th-center,.ulb-table td.td-center{text-align:center}.ulb-table td{color:var(--text-secondary);vertical-align:middle}.ulb-table tbody tr{background:var(--bg-primary);transition:background var(--transition-fast)}.ulb-table tbody tr:hover{background:var(--bg-secondary)}.ulb-table tbody tr:last-child td{border-bottom:none}.ulb-table tbody tr.top-rank.rank-1{background:#fbbf240a}.ulb-table tbody tr.top-rank.rank-1:hover{background:#fbbf2414}.ulb-rank{width:30px;height:30px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;background:var(--bg-tertiary);color:var(--text-muted)}.ulb-rank.rank-1{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;box-shadow:0 2px 8px #fbbf2459}.ulb-rank.rank-2{background:linear-gradient(135deg,#94a3b8,#64748b);color:#fff;box-shadow:0 2px 8px #94a3b859}.ulb-rank.rank-3{background:linear-gradient(135deg,#d97706,#b45309);color:#fff;box-shadow:0 2px 8px #d9770659}.ulb-user-cell{display:flex;align-items:center;gap:10px}.ulb-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;cursor:pointer;flex-shrink:0;transition:transform .15s ease}.ulb-avatar:hover{transform:scale(1.1)}.ulb-avatar.sm{width:28px;height:28px;font-size:.625rem}.ulb-avatar.team-avatar{border-radius:var(--radius-md)}.ulb-avatar.team-avatar svg{font-size:.8125rem}.ulb-avatar.sm.team-avatar svg{font-size:.625rem}.ulb-user-info{display:flex;flex-direction:column;gap:1px;min-width:0}.ulb-user-name{font-weight:600;color:var(--text-primary);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color var(--transition-fast)}.ulb-user-name:hover{color:var(--accent-primary)}.ulb-member-count{font-weight:400;color:var(--text-muted);font-size:.75rem;margin-left:4px}.ulb-user-team{font-size:.6875rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ulb-type-badge{display:inline-flex;align-items:center;gap:4px;font-size:.6875rem;font-weight:600;padding:3px 8px;border-radius:var(--radius-full)}.ulb-type-badge svg{font-size:.5625rem}.ulb-type-badge.individual{background:#0891b21a;color:var(--accent-primary)}.ulb-type-badge.team{background:#8b5cf61a;color:#8b5cf6}.ulb-type-tag{font-size:.625rem;font-weight:600;padding:1px 5px;border-radius:var(--radius-sm)}.ulb-type-tag.individual{background:#0891b21a;color:var(--accent-primary)}.ulb-type-tag.team{background:#8b5cf61a;color:#8b5cf6}.ulb-level-badge{display:inline-flex;align-items:center;gap:3px;font-size:.75rem;font-weight:600;padding:3px 8px;border-radius:var(--radius-full)}.ulb-score-cell{display:flex;align-items:center;gap:10px;min-width:140px}.ulb-score-bar{flex:1;height:8px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden;min-width:50px}.ulb-score-fill{height:100%;border-radius:var(--radius-full);transition:width .6s ease;min-width:2px}.ulb-score-fill.success{background:linear-gradient(90deg,#10b981,#34d399)}.ulb-score-fill.warning{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.ulb-score-fill.danger{background:linear-gradient(90deg,#ef4444,#f87171)}.ulb-score-text{font-size:.8125rem;font-weight:700;color:var(--text-primary);white-space:nowrap;min-width:52px;text-align:right}.ulb-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:24px;padding:0 8px;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-full);font-size:.8125rem;font-weight:600;border:none;font-family:inherit}.ulb-count-badge.clickable{cursor:pointer;transition:all .2s ease;background:var(--accent-primary-light);color:var(--accent-primary)}.ulb-count-badge.clickable:hover{background:var(--accent-primary);color:var(--text-inverse);transform:scale(1.1)}.ulb-count-badge.clickable.sm{height:22px;font-size:.75rem;min-width:24px;padding:0 6px}.ulb-view-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-muted);cursor:pointer;transition:all .2s ease;font-size:.8125rem}.ulb-view-btn:hover{background:var(--accent-primary-light);border-color:var(--accent-primary);color:var(--accent-primary)}.ulb-accuracy{font-size:.8125rem;font-weight:600}.ulb-accuracy.success{color:#10b981}.ulb-accuracy.warning{color:#f59e0b}.ulb-accuracy.danger{color:#ef4444}.ulb-streak{display:inline-flex;align-items:center;gap:3px;font-size:.8125rem;font-weight:600;color:#f59e0b}.ulb-streak svg{font-size:.75rem}.ulb-streak.inactive{color:var(--text-muted)}.ulb-empty-state{text-align:center;padding:var(--spacing-2xl)}.ulb-empty-state .empty-icon{font-size:2rem;color:var(--text-muted);opacity:.4;margin-bottom:var(--spacing-md)}.ulb-empty-state p{color:var(--text-muted);font-size:.875rem;margin:0}.ulb-detail-modal{display:flex;flex-direction:column;gap:0}.ulb-detail-header{display:flex;align-items:center;gap:12px;padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-primary);margin-bottom:0}.ulb-detail-header .ulb-avatar{width:40px;height:40px;font-size:.875rem;cursor:default}.ulb-detail-header .ulb-avatar:hover{transform:none}.ulb-detail-header-info{flex:1;display:flex;flex-direction:column;gap:4px}.ulb-detail-header-name{font-size:1rem;font-weight:700;color:var(--text-primary)}.ulb-detail-header-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ulb-detail-score-badge{display:inline-flex;align-items:center;gap:3px;font-size:.75rem;font-weight:600;color:var(--text-secondary)}.ulb-detail-score-badge svg{color:#fbbf24;font-size:.6875rem}.ulb-detail-tabs{display:flex;border-bottom:1px solid var(--border-primary)}.ulb-detail-tab{display:flex;align-items:center;gap:6px;padding:var(--spacing-sm) var(--spacing-lg);background:none;border:none;font-size:.8125rem;font-weight:500;color:var(--text-muted);cursor:pointer;position:relative;transition:color var(--transition-fast);font-family:inherit}.ulb-detail-tab:hover{color:var(--text-primary)}.ulb-detail-tab.active{color:var(--accent-primary)}.ulb-detail-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent-primary)}.ulb-detail-tab .tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 5px;border-radius:var(--radius-full);background:var(--bg-tertiary);font-size:.625rem;font-weight:600;color:var(--text-muted)}.ulb-detail-tab.active .tab-count{background:var(--accent-primary-light);color:var(--accent-primary)}.ulb-detail-summary{display:flex;align-items:center;gap:16px;padding:var(--spacing-md) 0;flex-wrap:wrap}.ulb-detail-summary-stat{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:56px}.ulb-detail-summary-stat .stat-num{font-size:1.125rem;font-weight:800;color:var(--text-primary);line-height:1}.ulb-detail-summary-stat .stat-num.success{color:#10b981}.ulb-detail-summary-stat .stat-num.warning{color:#f59e0b}.ulb-detail-summary-stat .stat-num.danger{color:#ef4444}.ulb-detail-summary-stat .stat-txt{font-size:.6875rem;color:var(--text-muted);font-weight:500}.ulb-detail-summary-bar{flex:1;min-width:160px;display:flex;flex-direction:column;gap:4px}.ulb-detail-bar-track{height:8px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.ulb-detail-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .5s ease}.ulb-detail-bar-fill.success{background:linear-gradient(90deg,#10b981,#34d399)}.ulb-detail-bar-fill.warning{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.ulb-detail-bar-fill.danger{background:linear-gradient(90deg,#ef4444,#f87171)}.ulb-detail-bar-label{font-size:.6875rem;color:var(--text-muted);font-weight:500}.ulb-detail-table-wrap{overflow-x:auto;max-height:420px;overflow-y:auto}.ulb-detail-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.8125rem}.ulb-detail-table thead{background:var(--bg-tertiary);position:sticky;top:0;z-index:1}.ulb-detail-table th,.ulb-detail-table td{padding:var(--spacing-sm) var(--spacing-sm);text-align:left;border-bottom:1px solid var(--border-primary)}.ulb-detail-table th{font-size:.75rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.ulb-detail-table td{color:var(--text-secondary);vertical-align:middle}.ulb-detail-table tbody tr:hover{background:var(--bg-secondary)}.ulb-detail-table tbody tr:last-child td{border-bottom:none}.ulb-detail-name{display:block;font-weight:600;color:var(--text-primary);font-size:.8125rem}.ulb-detail-id{display:block;font-size:.625rem;color:var(--text-muted);margin-top:1px}.ulb-detail-date{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.ulb-detail-score{display:flex;align-items:center;gap:6px}.ulb-detail-score-bar{flex:1;height:6px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden;min-width:40px}.ulb-detail-score-fill{height:100%;border-radius:var(--radius-full);background:var(--color-success, #22c55e);transition:width .25s ease}.ulb-detail-score-fill.success{background:var(--color-success, #22c55e)}.ulb-detail-score-fill.warning{background:var(--color-warning, #f59e0b)}.ulb-detail-score-fill.danger{background:var(--color-danger, #ef4444)}.ulb-detail-score span{font-size:.75rem;font-weight:600;color:var(--text-secondary);white-space:nowrap}.ulb-detail-status{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-full);font-size:.625rem}.ulb-detail-status.success{background:#10b98126;color:#10b981}.ulb-detail-status.warning{background:#f59e0b26;color:#f59e0b}.ulb-detail-status.danger{background:#ef444426;color:#ef4444}.ulb-difficulty-badge{display:inline-flex;padding:2px 8px;font-size:.6875rem;font-weight:600;border-radius:var(--radius-full)}.ulb-difficulty-badge.easy{background:#0596691a;color:var(--easy)}.ulb-difficulty-badge.medium{background:#d977061a;color:var(--medium)}.ulb-difficulty-badge.hard{background:#dc26261a;color:var(--hard)}.ulb-difficulty-badge.insane{background:#7c3aed1a;color:var(--insane)}.ulb-category-badge{display:inline-flex;padding:2px 8px;font-size:.6875rem;font-weight:600;border-radius:var(--radius-full);background:var(--accent-primary-light);color:var(--accent-primary)}.ulb-mobile-cards{display:none}.ulb-mobile-card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-md)}.ulb-mobile-card.top-rank.rank-1{border-color:#fbbf244d;background:#fbbf240a}.ulb-mobile-card-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.ulb-mobile-user-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.ulb-mobile-card-body{display:flex;flex-direction:column;gap:6px;font-size:.8125rem}.ulb-mobile-card-row{display:flex;justify-content:space-between;align-items:center}.ulb-mobile-label{color:var(--text-muted);font-weight:500}@media (max-width: 1024px){.ulb-stats-grid{grid-template-columns:repeat(2,1fr)}.ulb-podium-card.position-1{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}}@media (max-width: 768px){.ulb-page{padding:var(--spacing-sm);gap:10px}.ulb-stats-grid{grid-template-columns:repeat(2,1fr);gap:8px}.ulb-podium{flex-direction:column;align-items:center;gap:10px}.ulb-podium-card{max-width:100%;width:100%;flex-direction:row;padding:var(--spacing-md);gap:var(--spacing-md)}.ulb-podium-card.position-1{order:1;padding:var(--spacing-md)}.ulb-podium-card.position-2{order:2}.ulb-podium-card.position-3{order:3}.ulb-podium-avatar,.position-1 .ulb-podium-avatar{width:44px;height:44px;font-size:.875rem}.ulb-podium-score{font-size:.9375rem}.ulb-podium-stats{display:none}.ulb-toolbar{flex-direction:column;align-items:stretch}.ulb-toolbar-left{min-width:100%}.ulb-toolbar-right{justify-content:flex-end;flex-wrap:wrap}.ulb-main-card .ulb-table-container{display:none}.ulb-mobile-cards{display:flex;flex-direction:column;gap:8px}.ulb-detail-summary{gap:10px}.ulb-detail-header-meta{gap:4px}}@media (max-width: 576px){.ulb-stats-grid{grid-template-columns:1fr}.ulb-search-box{max-width:100%}}.challenge-form-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.challenge-form-page .form-grid{display:flex;flex-direction:column;gap:var(--spacing-md)}.challenge-form-page .form-group--full{width:100%}.challenge-form-page .form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--border-primary);margin-top:var(--spacing-sm)}.challenge-form-page .tasks-section-card{margin-top:var(--spacing-md)}.tasks-sticky-header{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10;background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.tasks-header-left{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.challenge-stats{display:flex;gap:var(--spacing-xs);align-items:center}.stat-pill{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-full);font-size:.7rem;font-weight:600;background:var(--bg-tertiary);color:var(--text-secondary);white-space:nowrap}.stat-pill.score{background:var(--accent-info-light);color:var(--accent-info)}.task-accordion{display:flex;flex-direction:column;gap:var(--spacing-sm)}.task-accordion-item{border:1px solid var(--border-primary);border-radius:var(--radius-md);overflow:hidden;transition:all .2s ease}.task-accordion-item.expanded{border-color:var(--accent-primary)}.task-accordion-item.task-dragging{opacity:.35}.task-accordion-item.task-drag-over{border-top:3px solid var(--accent-primary)}.task-accordion-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.task-accordion-header:hover{background:var(--bg-tertiary)}.task-drag-handle{font-size:.85rem;cursor:grab;padding:4px 2px}.task-drag-handle:active{cursor:grabbing}.task-accordion-toggle{display:flex;align-items:center;justify-content:center;width:20px;color:var(--text-muted);font-size:.75rem}.accordion-chevron{transition:transform .2s ease}.task-accordion-title{flex:1;display:flex;align-items:center;gap:var(--spacing-sm);min-width:0}.task-accordion-title .task-name{font-weight:600;font-size:.9rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-accordion-title .text-success{color:var(--accent-success);font-size:.8rem}.task-accordion-title .text-muted{color:var(--text-muted);font-size:.8rem}.task-question-count{font-size:.75rem;color:var(--text-muted);background:var(--bg-tertiary);padding:2px 8px;border-radius:var(--radius-full);white-space:nowrap}.task-question-count.empty{background:var(--accent-warning-light);color:var(--accent-warning)}.task-accordion-actions{display:flex;gap:4px;flex-shrink:0}.task-accordion-actions .btn-icon,.question-card-actions .btn-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);font-size:.75rem}.task-accordion-actions .btn-icon:hover,.question-card-actions .btn-icon:hover{background:var(--bg-secondary);color:var(--accent-primary);border-color:var(--accent-primary)}.task-accordion-actions .btn-icon.danger:hover,.question-card-actions .btn-icon.danger:hover{background:var(--accent-danger-light);color:var(--accent-danger);border-color:var(--accent-danger)}.task-accordion-actions .btn-icon.confirm-delete,.question-card-actions .btn-icon.confirm-delete{background:var(--accent-danger);color:var(--text-inverse);border-color:var(--accent-danger);width:auto;padding:0 8px;animation:confirmPulse .3s ease}.task-accordion-actions .btn-icon.confirm-delete:hover,.question-card-actions .btn-icon.confirm-delete:hover{opacity:.9;background:var(--accent-danger);color:var(--text-inverse);border-color:var(--accent-danger)}.confirm-text{font-size:.65rem;font-weight:600;white-space:nowrap}@keyframes confirmPulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.question-card-actions .btn-icon{width:26px;height:26px;font-size:.7rem}.task-accordion-body{padding:var(--spacing-md);border-top:1px solid var(--border-primary);background:var(--bg-primary)}.task-description{font-size:.85rem;color:var(--text-secondary);margin-bottom:var(--spacing-md);padding:var(--spacing-sm);background:var(--bg-secondary);border-radius:var(--radius-sm)}.quick-add-buttons{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-primary)}.quick-add-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.quick-add-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border:1px solid var(--border-primary);border-radius:var(--radius-full);background:var(--bg-secondary);color:var(--text-secondary);font-size:.75rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.quick-add-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:var(--bg-tertiary)}.quick-add-btn.mcq:hover{border-color:var(--accent-info);color:var(--accent-info)}.quick-add-btn.descriptive:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.quick-add-btn.flag:hover{border-color:var(--accent-warning);color:var(--accent-warning)}.quick-add-btn svg{font-size:.7rem}.question-cards{display:flex;flex-direction:column;gap:var(--spacing-md)}.question-card{border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);transition:all .15s ease;overflow:hidden;border-left:3px solid var(--border-secondary)}.question-card--mcq{border-left-color:var(--accent-info)}.question-card--descriptive{border-left-color:#8b5cf6}.question-card--flag{border-left-color:var(--accent-warning)}.question-card:hover{border-color:var(--border-secondary);box-shadow:var(--shadow-sm)}.question-card--mcq:hover{border-left-color:var(--accent-info)}.question-card--descriptive:hover{border-left-color:#8b5cf6}.question-card--flag:hover{border-left-color:var(--accent-warning)}.question-card.dragging{opacity:.35}.question-card.drag-over{border-top:2px solid var(--accent-primary)}.question-card-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary)}.question-number{font-size:.75rem;font-weight:700;color:var(--text-muted);min-width:24px}.question-score{font-size:.7rem;font-weight:600;color:var(--text-secondary);background:var(--bg-primary);padding:1px 8px;border-radius:var(--radius-full)}.question-card-actions{display:flex;gap:4px;margin-left:auto}.question-card-body{padding:var(--spacing-sm) var(--spacing-md)}.question-text{font-size:.85rem;color:var(--text-primary);margin:0 0 var(--spacing-xs);line-height:1.5}.mcq-preview{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:var(--spacing-xs)}.mcq-option{display:flex;align-items:center;gap:var(--spacing-xs);padding:4px 10px;border-radius:var(--radius-sm);background:var(--bg-primary);border:1px solid var(--border-primary);font-size:.78rem;color:var(--text-secondary);overflow:hidden}.mcq-option.correct{border-color:var(--accent-success);background:var(--accent-success-light);color:var(--text-primary)}.mcq-option-letter{font-weight:700;font-size:.7rem;color:var(--text-muted);min-width:14px}.mcq-option.correct .mcq-option-letter{color:var(--accent-success)}.mcq-option-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.mcq-correct-icon{color:var(--accent-success);font-size:.7rem;flex-shrink:0}.descriptive-preview{margin-top:var(--spacing-xs)}.preview-label{font-size:.75rem;color:var(--text-muted);font-style:italic}.flag-preview-inline{margin-top:var(--spacing-xs)}.flag-preview-inline code{background:var(--bg-tertiary);padding:2px 8px;border-radius:var(--radius-sm);font-family:Courier New,monospace;font-size:.78rem;color:var(--accent-warning);font-weight:600}.ques-type-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--radius-full);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.ques-type-badge svg{font-size:.6rem}.ques-type-badge.mcq{background:var(--accent-info-light);color:var(--accent-info)}.ques-type-badge.descriptive{background:var(--accent-primary-light);color:var(--accent-primary)}.ques-type-badge.flag{background:var(--accent-warning-light);color:var(--accent-warning)}.status-badge-sm{display:inline-flex;padding:1px 8px;border-radius:var(--radius-full);font-size:.7rem;font-weight:500}.status-badge-sm.active{background:var(--accent-success-light);color:var(--accent-success)}.status-badge-sm.inactive{background:var(--bg-tertiary);color:var(--text-muted)}.drag-handle{display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:grab;padding:2px;opacity:.5;transition:opacity .15s ease}.drag-handle:hover{opacity:1}.drag-handle:active{cursor:grabbing}.challenge-form-page .empty-state{text-align:center;padding:var(--spacing-xl) var(--spacing-md)}.challenge-form-page .empty-hint{font-size:.85rem;color:var(--text-muted);display:block;margin-top:var(--spacing-xs)}.empty-state-sm{text-align:center;padding:var(--spacing-lg) var(--spacing-md);color:var(--text-muted)}.empty-state-sm .empty-icon-sm{font-size:1.5rem;margin-bottom:var(--spacing-sm);opacity:.5}.empty-state-sm p{font-size:.85rem;margin:0}.question-type-switcher{display:flex;border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--spacing-md)}.question-type-switcher .type-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border:none;background:var(--bg-secondary);color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.question-type-switcher .type-btn:not(:last-child){border-right:1px solid var(--border-primary)}.question-type-switcher .type-btn:hover{background:var(--bg-tertiary)}.question-type-switcher .type-btn.active{background:var(--accent-primary);color:var(--text-inverse)}.question-type-switcher .type-btn svg{font-size:.8rem}.modal-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.modal-form .form-group{margin-bottom:0}.modal-footer-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;width:100%}.form-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.mcq-section{display:flex;flex-direction:column;gap:var(--spacing-md);padding-top:var(--spacing-sm);border-top:1px solid var(--border-primary)}.correct-answer-options{display:flex;gap:var(--spacing-sm)}.correct-answer-btn{display:flex;align-items:center;justify-content:center;width:44px;height:36px;border:2px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-secondary);font-weight:600;cursor:pointer;transition:all .15s ease}.correct-answer-btn input{display:none}.correct-answer-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.correct-answer-btn.active{border-color:var(--accent-success);background:var(--accent-success);color:var(--text-inverse)}.descriptive-section{padding-top:var(--spacing-sm);border-top:1px solid var(--border-primary)}.answer-input-row{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-xs)}.answer-input-row .form-control{flex:1}.answer-list{margin-top:var(--spacing-sm);display:flex;flex-direction:column;gap:4px}.answer-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.answer-index{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-muted);font-size:.7rem;font-weight:600;flex-shrink:0}.answer-text{flex:1;font-size:.875rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.answer-remove-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.answer-remove-btn:hover{background:var(--accent-danger-light);color:var(--accent-danger)}.flag-section{padding-top:var(--spacing-sm);border-top:1px solid var(--border-primary)}.flag-input-group{display:flex;align-items:center;margin-top:var(--spacing-xs)}.flag-prefix,.flag-suffix{display:flex;align-items:center;padding:0 var(--spacing-sm);height:38px;background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--accent-warning);font-family:Courier New,monospace;font-weight:700;font-size:.9rem;white-space:nowrap}.flag-prefix{border-right:none;border-radius:var(--radius-md) 0 0 var(--radius-md)}.flag-suffix{border-left:none;border-radius:0 var(--radius-md) var(--radius-md) 0}.flag-input{border-radius:0!important;font-family:Courier New,monospace}.flag-preview{margin-top:var(--spacing-sm);font-size:.8rem;color:var(--text-muted)}.flag-preview code{background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);font-family:Courier New,monospace;color:var(--accent-warning);font-weight:600}@media (max-width: 768px){.form-row-2col{grid-template-columns:1fr}.question-type-switcher{flex-direction:column}.question-type-switcher .type-btn:not(:last-child){border-right:none;border-bottom:1px solid var(--border-primary)}.task-accordion-header{flex-wrap:wrap}.task-accordion-title{flex:1 1 100%;order:1}.task-accordion-actions{order:2;margin-left:auto}.correct-answer-options,.flag-input-group{flex-wrap:wrap}.flag-prefix{border-radius:var(--radius-md) var(--radius-md) 0 0;border-right:1px solid var(--border-primary);border-bottom:none;width:100%;justify-content:center}.flag-input{width:100%}.flag-suffix{border-radius:0 0 var(--radius-md) var(--radius-md);border-left:1px solid var(--border-primary);border-top:none;width:100%;justify-content:center}.mcq-preview{grid-template-columns:1fr}.quick-add-buttons{flex-wrap:wrap}.tasks-header-left{gap:var(--spacing-xs)}.challenge-stats,.question-card-header{flex-wrap:wrap}.question-card-actions{width:100%;justify-content:flex-end;margin-top:var(--spacing-xs)}}.template-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.template-list-page .card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 2px 12px #0000000f;overflow:visible}.template-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.template-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.template-list-page .header-actions>.basic-select{width:150px;min-width:130px;flex-shrink:0}.template-list-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.template-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.template-list-page .card-body{padding:var(--spacing-lg);overflow:visible}.template-list-page .sort-bar{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.template-list-page .sort-label{font-size:.875rem;color:var(--text-muted);font-weight:500}.template-list-page .sort-options{display:flex;gap:var(--spacing-xs)}.template-list-page .sort-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:.8125rem;font-weight:500;color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.template-list-page .sort-btn:hover{background:var(--bg-tertiary);border-color:var(--border-secondary)}.template-list-page .sort-btn.active{background:var(--accent-primary-light);border-color:var(--accent-primary);color:var(--accent-primary)}.template-list-page .sort-btn .sort-icon{font-size:.75rem;opacity:.7}.template-list-page .sort-btn.active .sort-icon{opacity:1}.template-list-page .templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-lg)}.template-list-page .template-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;flex-direction:column;transition:all .2s ease}.template-list-page .template-card:hover{border-color:var(--accent-primary);box-shadow:0 4px 12px #0000001a}.template-list-page .template-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.template-list-page .template-icon{width:48px;height:48px;background:var(--accent-light);color:var(--accent-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.25rem;overflow:hidden;flex-shrink:0}.template-list-page .template-icon img{width:100%;height:100%;object-fit:cover}.template-list-page .template-icon .hidden{display:none}.template-list-page .template-icon.clickable{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.template-list-page .template-icon.clickable:hover{transform:scale(1.05);box-shadow:0 4px 12px #00000026}.template-list-page .template-name{font-size:1.125rem;font-weight:600;color:var(--text-primary);line-height:1.3;flex:1;min-width:0;word-break:break-word}.template-list-page .template-content{flex:1}.template-list-page .template-description{color:var(--text-muted);font-size:.875rem;margin-bottom:var(--spacing-md);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}.template-list-page .template-meta{display:flex;align-items:center;gap:var(--spacing-md)}.template-list-page .type-badge{padding:3px 10px;border-radius:var(--radius-md);font-size:.75rem;font-weight:600;text-transform:capitalize}.template-list-page .type-badge.base{background:#6366f11a;color:#6366f1}.template-list-page .type-badge.custom{background:#10b9811a;color:#10b981}.template-list-page .type-badge.infrastructure{background:#e3f2fd;color:#1976d2}.template-list-page .type-badge.network{background:#f3e5f5;color:#7b1fa2}.template-list-page .type-badge.security{background:#fce4ec;color:#c2185b}.template-list-page .usage-count{font-size:.8125rem;color:var(--text-muted)}.template-list-page .template-groups{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm);min-height:26px}.template-list-page .template-groups .groups-icon{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.template-list-page .template-groups .groups-badges{display:flex;flex-wrap:wrap;gap:4px}.template-list-page .template-groups .group-badge{display:inline-flex;align-items:center;padding:2px 8px;background:var(--accent-primary-light);color:var(--accent-primary);border-radius:var(--radius-full);font-size:.6875rem;font-weight:500;white-space:nowrap;transition:all .15s ease}.template-list-page .template-groups .group-badge:hover{background:var(--accent-primary);color:#fff}.template-list-page .template-groups .group-badge.more{background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer}.template-list-page .template-groups .group-badge.more:hover{background:var(--text-secondary);color:#fff}.groups-tooltip{padding:8px 12px;background:#1a1a2ef2;color:#fff;font-size:.75rem;font-weight:500;border-radius:6px;box-shadow:0 4px 16px #0000004d;max-width:250px;white-space:normal;text-align:center;line-height:1.5;pointer-events:none;animation:tooltipFadeIn .15s ease}.groups-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#1a1a2ef2}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%,-100%) translateY(4px)}to{opacity:1;transform:translate(-50%,-100%) translateY(0)}}.template-list-page .template-groups .no-groups{font-size:.75rem;color:var(--text-muted);font-style:italic}.template-list-page .template-updated{display:flex;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px dashed var(--border-primary);font-size:.75rem}.template-list-page .template-updated .updated-label{color:var(--text-muted);font-weight:500}.template-list-page .template-updated .updated-date{color:var(--text-secondary)}.template-list-page .template-footer{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-primary)}.template-list-page .status-toggle-wrapper{display:flex;align-items:center;gap:var(--spacing-sm)}.template-list-page .status-toggle{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.template-list-page .status-toggle input{opacity:0;width:0;height:0}.template-list-page .toggle-slider{position:absolute;top:0;left:0;right:0;bottom:0;background-color:var(--accent-danger-light);border:1px solid var(--accent-danger);border-radius:var(--radius-full);transition:all .3s ease}.template-list-page .toggle-slider:before{content:"";position:absolute;height:16px;width:16px;left:2px;bottom:2px;background-color:var(--accent-danger);border-radius:50%;transition:all .3s ease}.template-list-page .status-toggle input:checked+.toggle-slider{background-color:var(--accent-success-light);border-color:var(--accent-success)}.template-list-page .status-toggle input:checked+.toggle-slider:before{transform:translate(18px);background-color:var(--accent-success)}.template-list-page .status-toggle:hover .toggle-slider{box-shadow:0 0 0 3px #0000001a}.template-list-page .status-label{font-size:.75rem;font-weight:600;text-transform:capitalize}.template-list-page .status-label.active{color:var(--accent-success)}.template-list-page .status-label.inactive{color:var(--accent-danger)}.icon-preview-container{text-align:center}.icon-preview-container p{margin-bottom:var(--spacing-md);color:var(--text-secondary)}.icon-preview{display:flex;justify-content:center;align-items:center;margin-top:var(--spacing-md)}.icon-preview img{width:100px;height:100px;border-radius:var(--radius-md);border:2px solid var(--border-primary);object-fit:cover;background:var(--bg-secondary)}.template-list-page .status-badge{padding:4px 10px;border-radius:var(--radius-md);font-size:.75rem;font-weight:600;text-transform:capitalize}.template-list-page .status-badge.active{background:var(--accent-success-light);color:var(--accent-success)}.template-list-page .status-badge.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.template-list-page .status-badge.draft{background:var(--accent-warning-light);color:var(--accent-warning)}.template-list-page .template-actions{display:flex;gap:var(--spacing-xs)}.template-list-page .template-actions .btn-icon{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;font-size:.8125rem}.template-list-page .template-actions .btn-icon:hover{background:var(--bg-secondary);color:var(--accent-primary);border-color:var(--accent-primary)}.template-list-page .template-actions .btn-icon.danger:hover{background:var(--accent-danger-light);color:var(--accent-danger);border-color:var(--accent-danger)}@media (max-width: 1200px){.template-list-page .header-actions>.basic-select{width:130px;min-width:110px}}@media (max-width: 992px){.template-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.template-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}.template-list-page .header-actions>.basic-select{width:120px;min-width:100px}}@media (max-width: 768px){.template-list-page .card-header{flex-direction:column;align-items:stretch}.template-list-page .header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.template-list-page .header-actions>.basic-select{flex:1;width:auto;min-width:100px}.template-list-page .templates-grid{grid-template-columns:1fr}.template-list-page .sort-bar{flex-wrap:wrap;padding:var(--spacing-sm) var(--spacing-md)}.template-list-page .sort-options{flex-wrap:wrap;width:100%}.template-list-page .sort-btn{flex:1;justify-content:center;min-width:80px}}@media (max-width: 576px){.template-list-page .template-card{padding:var(--spacing-md)}.template-list-page .template-name{font-size:1rem}.template-list-page .template-footer{flex-direction:column;gap:var(--spacing-sm);align-items:flex-start}.template-list-page .template-actions{width:100%;justify-content:flex-end}}.groups-modal-content{padding:var(--spacing-sm) 0}.groups-template-info{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.groups-template-icon{width:56px;height:56px;min-width:56px;background:var(--accent-light);color:var(--accent-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;overflow:hidden}.groups-template-icon img{width:100%;height:100%;object-fit:cover}.groups-template-icon .hidden{display:none}.groups-template-details{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.groups-template-name{font-size:1.125rem;font-weight:600;color:var(--text-primary);line-height:1.3}.groups-template-hint{font-size:.8125rem;color:var(--text-muted)}.groups-modal-description{color:var(--text-secondary);margin-bottom:var(--spacing-lg);font-size:.9375rem}.groups-search-box{position:relative;margin-bottom:var(--spacing-md)}.groups-search-box .form-control{padding-left:38px;padding-right:38px;height:40px}.groups-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.875rem;z-index:1}.groups-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:all .15s ease;z-index:1}.groups-search-clear:hover{color:var(--text-primary);background:var(--bg-tertiary)}.groups-no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-xl);color:var(--text-muted);font-size:.875rem;text-align:center}.groups-no-results .empty-icon{font-size:2.5rem;opacity:.5;margin-bottom:var(--spacing-sm)}.groups-no-results p{margin:0}.groups-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-md);color:var(--text-muted)}.groups-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-md);text-align:center}.groups-empty .empty-icon{font-size:2.5rem;color:var(--text-muted);opacity:.5}.groups-empty p{color:var(--text-muted);margin:0}.groups-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:350px;overflow-y:auto;padding-right:var(--spacing-xs)}.group-item{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;background:var(--bg-primary)}.group-item:hover{border-color:var(--accent-primary);background:var(--bg-secondary)}.group-item input[type=checkbox]{display:none}.group-checkbox{width:22px;height:22px;min-width:22px;border:2px solid var(--border-secondary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all .15s ease;color:#fff;font-size:.75rem;background:var(--bg-primary)}.group-item input[type=checkbox]:checked+.group-checkbox{background:var(--accent-primary);border-color:var(--accent-primary)}.group-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.group-name{font-weight:600;color:var(--text-primary);font-size:.9375rem}.group-description{font-size:.8125rem;color:var(--text-muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.groups-selected-count{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-primary);font-size:.875rem;color:var(--accent-primary);font-weight:500}.groups-load-more{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md);color:var(--text-muted);font-size:.8125rem}.groups-load-more-hint{text-align:center;padding:var(--spacing-sm);color:var(--text-muted);font-size:.75rem;opacity:.7}.exercise-modal-content{padding:var(--spacing-sm) 0}.exercise-template-info{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.exercise-template-icon{width:56px;height:56px;min-width:56px;background:var(--accent-light);color:var(--accent-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;overflow:hidden}.exercise-template-icon img{width:100%;height:100%;object-fit:cover}.exercise-template-icon .hidden{display:none}.exercise-template-details{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.exercise-template-name{font-size:1.125rem;font-weight:600;color:var(--text-primary);line-height:1.3}.exercise-template-stats{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.8125rem;color:var(--text-muted)}.exercise-template-stats svg{font-size:.75rem}.exercise-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-md);color:var(--text-muted)}.exercise-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-md);text-align:center}.exercise-empty .empty-icon{font-size:2.5rem;color:var(--text-muted);opacity:.5}.exercise-empty p{color:var(--text-muted);margin:0}.exercise-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:400px;overflow-y:auto;padding-right:var(--spacing-xs)}.exercise-item{padding:var(--spacing-md);border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-primary);transition:all .15s ease}.exercise-item:hover{border-color:var(--accent-primary);background:var(--bg-secondary)}.exercise-item-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.exercise-item-title{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.exercise-code{font-size:.75rem;font-weight:600;color:var(--accent-primary);text-transform:uppercase;letter-spacing:.5px}.exercise-name{font-size:.9375rem;font-weight:600;color:var(--text-primary);line-height:1.3}.exercise-status{display:flex;align-items:center;gap:6px;font-size:.75rem;font-weight:500;text-transform:capitalize;padding:4px 10px;border-radius:var(--radius-full)}.exercise-status svg{font-size:6px}.exercise-status.active{background:#10b9811a;color:#10b981}.exercise-status.inactive{background:#ef44441a;color:#ef4444}.exercise-item-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm)}.exercise-category{font-size:.75rem;color:var(--text-secondary);background:var(--bg-tertiary);padding:4px 10px;border-radius:var(--radius-sm)}.exercise-keywords{display:inline-flex;flex-wrap:wrap;gap:4px}.exercise-keyword-badge{display:inline-flex;align-items:center;font-size:.7rem;font-weight:500;color:var(--accent-primary);background:var(--accent-primary-light);padding:3px 8px;border-radius:var(--radius-full);line-height:1;white-space:nowrap}.exercise-difficulty{font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:var(--radius-sm)}.exercise-difficulty.difficulty-beginner{background:#10b9811a;color:#10b981}.exercise-difficulty.difficulty-intermediate{background:#f59e0b1a;color:#f59e0b}.exercise-difficulty.difficulty-advanced{background:#ef44441a;color:#ef4444}.exercise-date{font-size:.75rem;color:var(--text-muted);margin-left:auto}@media (max-width: 576px){.exercise-item-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.exercise-item-meta{flex-direction:column;align-items:flex-start}.exercise-date{margin-left:0}}.choose-user-list{display:flex;flex-direction:column;gap:12px}.choose-user-filters{display:flex;gap:8px;align-items:center}.choose-user-search{flex:1;min-width:0;position:relative}.choose-user-search .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-secondary, #6c757d);font-size:14px}.choose-user-search .form-control{padding-left:36px;padding-right:36px}.choose-user-search .btn-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-secondary, #6c757d);cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s ease}.choose-user-search .btn-clear:hover{color:var(--text-primary, #212529);background-color:var(--bg-secondary, #f8f9fa)}.choose-user-filters>.basic-select{width:130px;flex-shrink:0}.choose-user-selection-info{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background-color:var(--primary-50, #e8f4fd);border-radius:6px;font-size:13px;color:var(--primary-700, #0d47a1)}.choose-user-selection-info .btn-text{background:none;border:none;color:var(--primary-600, #1565c0);cursor:pointer;font-size:13px;text-decoration:underline;padding:0}.choose-user-selection-info .btn-text:hover{color:var(--primary-800, #0a3d91)}.choose-user-table-container{max-height:400px;overflow-y:auto;border:1px solid var(--border-color, #e0e0e0);border-radius:8px}.choose-user-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:var(--text-secondary, #6c757d)}.choose-user-loading .spinner{width:32px;height:32px;border:3px solid var(--border-color, #e0e0e0);border-top-color:var(--primary-500, #2196f3);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}.choose-user-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:var(--text-secondary, #6c757d)}.choose-user-empty .empty-icon{font-size:48px;opacity:.4;margin-bottom:12px}.choose-user-empty p{margin:0;font-size:14px}.choose-user-table{width:100%;border-collapse:separate;border-spacing:0}.choose-user-table thead{position:sticky;top:0;background-color:var(--bg-secondary, #f8f9fa);z-index:1}.choose-user-table th{padding:12px;text-align:left;font-weight:600;font-size:13px;color:var(--text-secondary, #6c757d);border-bottom:2px solid var(--border-color, #e0e0e0);white-space:nowrap}.choose-user-table th.th-checkbox{width:48px;text-align:center}.choose-user-table th.th-center{text-align:center}.choose-user-table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease}.choose-user-table th.th-sortable:hover{background-color:var(--bg-tertiary, #eef1f4)}.choose-user-table th .sort-icon{margin-left:6px;font-size:12px;color:var(--text-tertiary, #9e9e9e)}.choose-user-table th.th-sortable:hover .sort-icon{color:var(--text-secondary, #6c757d)}.choose-user-table td{padding:12px;border-bottom:1px solid var(--border-light, #f0f0f0);font-size:14px}.choose-user-table td.td-checkbox{text-align:center;width:48px}.choose-user-table td.td-center{text-align:center}.choose-user-table tr{cursor:pointer;transition:background-color .15s ease}.choose-user-table tbody tr:hover{background-color:var(--bg-hover, #f5f7fa)}.choose-user-table tbody tr.selected{background-color:var(--primary-50, #e8f4fd)}.choose-user-table tbody tr.selected:hover{background-color:var(--primary-100, #d0e8fa)}.user-info-cell{display:flex;align-items:center;gap:12px}.choose-user-list .user-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center}.choose-user-list .user-avatar img{width:32px;height:32px;object-fit:cover;border-radius:50%!important;border:1px solid var(--border-primary, #e0e0e0);background:transparent}.choose-user-list .user-avatar .avatar-placeholder{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--accent-primary, #2196f3);color:#fff;font-size:.875rem;font-weight:600;border-radius:50%}.user-details{display:flex;flex-direction:column;gap:2px;min-width:0}.user-name{font-weight:500;color:var(--text-primary, #212529);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email{font-size:12px;color:var(--text-secondary, #6c757d);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.status-dot.active{background-color:var(--success-500, #4caf50)}.status-dot.inactive{background-color:var(--danger-500, #f44336)}.status-text{font-size:13px}.role-badge{display:inline-block;padding:4px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.role-badge.admin{background-color:var(--purple-100, #ede7f6);color:var(--purple-700, #7b1fa2)}.role-badge.instructor{background-color:var(--primary-100, #e3f2fd);color:var(--primary-700, #1565c0)}.role-badge.candidate{background-color:var(--success-100, #e8f5e9);color:var(--success-700, #2e7d32)}.custom-checkbox{display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative}.custom-checkbox input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.custom-checkbox .checkmark{width:18px;height:18px;border:2px solid var(--border-color, #d0d0d0);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;background-color:#fff}.custom-checkbox input:checked~.checkmark{background-color:var(--primary-500, #2196f3);border-color:var(--primary-500, #2196f3)}.custom-checkbox input:checked~.checkmark:after{content:"";width:5px;height:9px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}.custom-checkbox input:indeterminate~.checkmark{background-color:var(--primary-500, #2196f3);border-color:var(--primary-500, #2196f3)}.custom-checkbox input:indeterminate~.checkmark:after{content:"";width:8px;height:2px;background-color:#fff}.custom-checkbox .radiomark{width:18px;height:18px;border:2px solid var(--border-color, #d0d0d0);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease;background-color:#fff}.custom-checkbox input:checked~.radiomark{border-color:var(--primary-500, #2196f3)}.custom-checkbox input:checked~.radiomark:after{content:"";width:10px;height:10px;background-color:var(--primary-500, #2196f3);border-radius:50%}.choose-user-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.pagination-info{font-size:13px;color:var(--text-secondary, #6c757d)}.pagination-controls{display:flex;gap:4px;align-items:center}.pagination-controls .btn{min-width:32px;height:32px;padding:0 8px;font-size:13px}.pagination-controls .btn-icon{width:32px;padding:0}.pagination-ellipsis{padding:0 8px;color:var(--text-secondary, #6c757d)}.choose-user-filters .btn-icon{height:38px;width:38px;display:inline-flex;align-items:center;justify-content:center}.choose-user-filters .basic-select .select-control{min-height:38px}@media (max-width: 480px){.choose-user-filters{flex-wrap:wrap}.choose-user-search{flex-basis:100%}.choose-user-filters>.basic-select{flex:1;width:auto}.choose-user-table-container{max-height:300px}.td-email{max-width:120px}.choose-user-pagination{flex-direction:column;align-items:flex-start}}[data-theme=dark] .choose-user-table-container{border-color:#374151;background:#111827}[data-theme=dark] .choose-user-table thead{background-color:#1f2937}[data-theme=dark] .choose-user-table th{background-color:#1f2937;color:#94a3b8;border-bottom-color:#374151}[data-theme=dark] .choose-user-table th.th-sortable:hover{background-color:#374151}[data-theme=dark] .choose-user-table td{border-bottom-color:#374151;color:#f1f5f9}[data-theme=dark] .choose-user-table tbody tr:hover{background-color:#1f2937}[data-theme=dark] .choose-user-table tbody tr.selected{background-color:#22d3ee26}[data-theme=dark] .choose-user-table tbody tr.selected:hover{background-color:#22d3ee33}[data-theme=dark] .user-name{color:#f1f5f9}[data-theme=dark] .user-email{color:#94a3b8}[data-theme=dark] .choose-user-selection-info{background-color:#22d3ee26;color:#22d3ee}[data-theme=dark] .choose-user-selection-info .btn-text{color:#22d3ee}[data-theme=dark] .choose-user-selection-info .btn-text:hover{color:#67e8f9}[data-theme=dark] .choose-user-loading{color:#94a3b8}[data-theme=dark] .choose-user-loading .spinner{border-color:#374151;border-top-color:#22d3ee}[data-theme=dark] .choose-user-empty,[data-theme=dark] .choose-user-search .btn-clear{color:#94a3b8}[data-theme=dark] .choose-user-search .btn-clear:hover{color:#f1f5f9;background-color:#374151}[data-theme=dark] .custom-checkbox .checkmark{background-color:#1f2937;border-color:#4b5563}[data-theme=dark] .custom-checkbox input:checked~.checkmark{background-color:#22d3ee;border-color:#22d3ee}[data-theme=dark] .custom-checkbox input:indeterminate~.checkmark{background-color:#22d3ee;border-color:#22d3ee}[data-theme=dark] .custom-checkbox .radiomark{background-color:#1f2937;border-color:#4b5563}[data-theme=dark] .custom-checkbox input:checked~.radiomark{border-color:#22d3ee}[data-theme=dark] .custom-checkbox input:checked~.radiomark:after{background-color:#22d3ee}[data-theme=dark] .pagination-info,[data-theme=dark] .pagination-ellipsis{color:#94a3b8}[data-theme=dark] .choose-user-list .user-avatar .avatar-placeholder{background:#22d3ee;color:#0a0f1a}[data-theme=dark] .role-badge.admin{background-color:#8b5cf633;color:#a78bfa}[data-theme=dark] .role-badge.instructor{background-color:#22d3ee33;color:#22d3ee}[data-theme=dark] .role-badge.candidate{background-color:#22c55e33;color:#4ade80}[data-theme=dark] .pagination-controls .btn-sm.btn-icon:not(:disabled){background:var(--bg-tertiary);border:1px solid var(--border-secondary)}[data-theme=dark] .pagination-controls .btn-sm.btn-icon:not(:disabled):hover{background:var(--accent-primary);border-color:var(--accent-primary)}[data-theme=dark] .pagination-controls .btn-sm.btn-icon:disabled{color:#fff6;border-color:#fff3;background:#ffffff0d}[data-theme=dark] .pagination-controls .btn-sm.btn-outline{color:#fff;border-color:var(--border-secondary);background:var(--bg-tertiary)}[data-theme=dark] .pagination-controls .btn-sm.btn-outline:hover{background:var(--accent-primary);border-color:var(--accent-primary)}[data-theme=dark] .pagination-controls .btn-sm.btn-primary{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.template-group-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.template-group-list-page .card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 2px 12px #0000000f;overflow:visible}.template-group-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.template-group-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.template-group-list-page .header-actions>.basic-select{width:160px;min-width:140px;flex-shrink:0}.template-group-list-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.template-group-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.template-group-list-page .card-body{padding:0;overflow:visible}.template-group-list-page .table-responsive{overflow-x:auto}.template-group-list-page .data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem}.template-group-list-page .data-table thead{background:var(--bg-tertiary)}.template-group-list-page .data-table th{padding:var(--spacing-md) var(--spacing-sm);text-align:left;font-weight:600;color:var(--text-primary);white-space:nowrap;font-size:.8125rem}.template-group-list-page .data-table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.template-group-list-page .data-table th.th-sortable:hover{background:var(--bg-secondary)}.template-group-list-page .data-table th.th-sortable span{margin-right:6px}.template-group-list-page .data-table th .sort-icon{font-size:.7rem;opacity:.5}.template-group-list-page .data-table th.th-sortable:hover .sort-icon{opacity:1}.template-group-list-page .data-table th.th-center{text-align:center}.template-group-list-page .data-table th.th-actions{width:120px;text-align:center}.template-group-list-page .data-table th.th-checkbox,.template-group-list-page .data-table td.td-checkbox{width:40px;min-width:40px;text-align:center}.template-group-list-page .data-table tbody tr{border-bottom:1px solid var(--border-primary);transition:background .15s ease}.template-group-list-page .data-table tbody tr:hover{background:var(--bg-secondary)}.template-group-list-page .data-table tbody tr.selected,.template-group-list-page .data-table tbody tr.selected:hover{background:var(--accent-light)}.template-group-list-page .data-table td{padding:var(--spacing-md) var(--spacing-sm);vertical-align:middle;color:var(--text-secondary)}.template-group-list-page .data-table td.td-center,.template-group-list-page .data-table td.td-actions{text-align:center}.template-group-list-page .name-cell{display:flex;align-items:center;gap:var(--spacing-sm)}.template-group-list-page .group-icon-sm{width:32px;height:32px;min-width:32px;color:var(--accent-primary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:.875rem;background:var(--accent-light)}.template-group-list-page .group-name{font-weight:600;color:var(--text-primary)}.template-group-list-page .td-description{max-width:250px}.template-group-list-page .description-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.8125rem;line-height:1.4}.template-group-list-page .text-muted{color:var(--text-muted);font-style:italic}.template-group-list-page .template-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:24px;padding:0 8px;background:var(--accent-light);color:var(--accent-primary);border-radius:var(--radius-full);font-size:.8125rem;font-weight:600}.template-group-list-page .action-buttons{display:flex;gap:var(--spacing-xs);justify-content:center}.template-group-list-page .action-buttons .btn-icon{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;font-size:.8125rem}.template-group-list-page .action-buttons .btn-icon:hover{background:var(--bg-secondary);color:var(--accent-primary);border-color:var(--accent-primary)}.template-group-list-page .action-buttons .btn-icon.danger:hover{background:var(--accent-danger-light);color:var(--accent-danger);border-color:var(--accent-danger)}.template-group-list-page .action-buttons .btn-icon:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-tertiary);color:var(--text-muted);border-color:var(--border-primary)}.template-group-list-page .action-buttons .btn-icon:disabled:hover{background:var(--bg-tertiary);color:var(--text-muted);border-color:var(--border-primary)}.template-group-list-page .group-icon-img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-sm)}.icon-upload-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs)}.icon-upload-wrapper .icon-box{position:relative;width:64px;height:64px;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;overflow:visible}.icon-upload-wrapper .icon-box.empty{border:2px dashed var(--border-secondary);background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:1.25rem}.icon-upload-wrapper .icon-box.empty:hover{border-color:var(--accent-primary);background:var(--accent-primary-light);color:var(--accent-primary)}.icon-upload-wrapper .icon-box.has-image{border:2px solid var(--accent-primary);overflow:visible}.icon-upload-wrapper .icon-box.has-image:hover{box-shadow:0 0 0 3px var(--accent-primary-light)}.icon-upload-wrapper .icon-box.has-image img{width:100%;height:100%;object-fit:cover;border-radius:calc(var(--radius-md) - 2px)}.icon-upload-wrapper .icon-remove{position:absolute;top:-8px;right:-8px;width:22px;height:22px;background:#dc3545;color:#fff;border:2px solid #fff;border-radius:50%;font-size:.625rem;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0003;z-index:10;transition:all .15s ease}.icon-upload-wrapper .icon-remove:hover{background:#c82333;transform:scale(1.1)}.icon-upload-wrapper .icon-error-text{font-size:.75rem;color:var(--accent-danger)}.group-icon-upload-container{display:flex;align-items:flex-start;gap:var(--spacing-md)}.group-icon-preview{position:relative;width:80px;height:80px;min-width:80px;border-radius:var(--radius-md);overflow:hidden;cursor:pointer;border:2px dashed var(--border-secondary);transition:all .2s ease}.group-icon-preview:hover{border-color:var(--accent-primary)}.group-icon-preview:hover .group-icon-overlay{opacity:1}.group-icon-image{width:100%;height:100%;object-fit:cover}.group-icon-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);color:var(--text-muted);font-size:2rem}.group-icon-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;opacity:0;transition:opacity .2s ease;color:#fff;font-size:.75rem}.group-icon-overlay svg{font-size:1.25rem}.group-icon-info{display:flex;flex-direction:column;gap:var(--spacing-xs);justify-content:center}.group-icon-info .btn{white-space:nowrap}.group-icon-hint{font-size:.75rem;font-weight:500;color:var(--text-secondary);line-height:1.4}.group-icon-format{font-size:.6875rem;color:var(--text-muted);line-height:1.4}.icon-error-text{display:block;margin-top:var(--spacing-sm);font-size:.75rem;color:var(--accent-danger)}@media (max-width: 576px){.group-icon-upload-container{flex-direction:column;align-items:center;text-align:center}.group-icon-info{align-items:center}}.template-group-list-page .status-badge{padding:3px 10px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;text-transform:capitalize}.template-group-list-page .status-badge.active{background:var(--accent-success-light);color:var(--accent-success)}.template-group-list-page .status-badge.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.template-group-list-page .status-badge-toggle{display:inline-flex;align-items:center;gap:5px;padding:3px 10px 3px 6px;border-radius:var(--radius-full);border:none;cursor:pointer;text-transform:capitalize;font-size:.75rem;font-weight:500;transition:all .2s ease}.template-group-list-page .status-badge-toggle .toggle-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}.template-group-list-page .status-badge-toggle.active{background:var(--accent-success-light);color:var(--accent-success)}.template-group-list-page .status-badge-toggle.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.template-group-list-page .status-badge-toggle:hover:not(:disabled){opacity:.8;transform:scale(1.02)}.template-group-list-page .status-badge-toggle:disabled{opacity:.7;cursor:not-allowed}.template-group-list-page .spinner-xs{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}.delete-warning{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--accent-warning-light);border:1px solid var(--accent-warning);border-radius:var(--radius-md);margin-top:var(--spacing-md);color:var(--accent-warning-dark);font-size:.875rem}.delete-warning svg{flex-shrink:0;margin-top:2px}.template-group-list-page .form-group,.modal .form-group{margin-bottom:var(--spacing-lg)}.template-group-list-page .form-label,.modal .form-label{display:block;margin-bottom:var(--spacing-sm);font-size:.875rem;font-weight:500;color:var(--text-secondary)}.template-group-list-page .form-label.required:after,.modal .form-label.required:after{content:" *";color:var(--accent-danger)}.template-group-list-page .form-hint,.modal .form-hint{display:block;margin-top:4px;font-size:.75rem;color:var(--text-muted)}.template-group-list-page .is-invalid,.modal .is-invalid{border-color:var(--accent-danger)!important}.template-group-list-page .invalid-feedback,.modal .invalid-feedback{display:block;margin-top:4px;font-size:.75rem;color:var(--accent-danger)}.view-group-content{padding:var(--spacing-sm) 0}.view-group-info{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.view-group-icon{width:56px;height:56px;min-width:56px;background:var(--accent-light);color:var(--accent-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.5rem;overflow:hidden}.view-group-icon img{width:100%;height:100%;object-fit:cover}.view-group-details{flex:1;min-width:0}.view-group-details h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 4px}.view-group-details p{font-size:.875rem;color:var(--text-muted);margin:0 0 var(--spacing-sm) 0}.view-group-details .group-description-wrapper{margin:0 0 var(--spacing-sm) 0}.view-group-details .group-description{display:inline;color:var(--text-secondary);line-height:1.5;font-size:.875rem;margin:0}.view-group-details .description-toggle{color:var(--accent-primary);cursor:pointer;font-weight:500;font-size:.875rem;margin-left:4px}.view-group-details .description-toggle:hover{text-decoration:underline}.view-group-meta{display:flex;align-items:center;gap:var(--spacing-md);font-size:.8125rem;color:var(--text-secondary)}.view-group-meta .status-badge.active{background:var(--accent-success-light);color:var(--accent-success)}.view-group-meta .status-badge.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.view-group-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center}.view-group-empty .empty-icon{font-size:2.5rem;color:var(--text-muted);opacity:.5;margin-bottom:var(--spacing-md)}.view-group-empty p{color:var(--text-muted);margin:0 0 var(--spacing-md) 0}.view-group-templates-hint{padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md)}.view-group-templates-hint p{margin:0;font-size:.875rem;color:var(--text-secondary);line-height:1.5}.view-group-templates-hint a{color:var(--accent-primary);font-weight:500}.view-group-templates-hint a:hover{text-decoration:underline}.template-group-list-page .template-count-badge.clickable{cursor:pointer;transition:all .2s ease}.template-group-list-page .template-count-badge.clickable:hover{background:var(--accent-primary);color:#fff;transform:scale(1.05)}.group-templates-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:400px;overflow-y:auto}.group-template-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);transition:all .15s ease}.group-template-item:hover{background:var(--bg-tertiary);border-color:var(--accent-primary)}.group-template-item .template-icon{width:40px;height:40px;min-width:40px;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-primary);border:1px solid var(--border-primary)}.group-template-item .template-icon img{width:100%;height:100%;object-fit:cover}.group-template-item .template-info{flex:1;min-width:0}.group-template-item .template-name{font-weight:500;color:var(--text-primary);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-template-item .status-badge{flex-shrink:0;padding:3px 10px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;text-transform:capitalize}.group-template-item .status-badge.active{background:var(--accent-success-light);color:var(--accent-success)}.group-template-item .status-badge.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.group-template-item .btn-icon{width:28px;height:28px;min-width:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;font-size:.75rem;margin-left:var(--spacing-sm)}.group-template-item .btn-icon:hover:not(:disabled){background:var(--accent-danger-light);color:var(--accent-danger);border-color:var(--accent-danger)}.group-template-item .btn-icon:disabled{opacity:.6;cursor:not-allowed}.group-template-item .btn-icon .spinner-xs{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}@media (max-width: 1200px){.template-group-list-page .header-actions>.basic-select{width:140px;min-width:120px}}@media (max-width: 992px){.template-group-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.template-group-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}.template-group-list-page .header-actions>.basic-select{width:130px;min-width:120px}.template-group-list-page .data-table th,.template-group-list-page .data-table td{padding:var(--spacing-sm)}.template-group-list-page .td-description{max-width:180px}}@media (max-width: 768px){.template-group-list-page .card-header{flex-direction:column;align-items:stretch}.template-group-list-page .header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.template-group-list-page .header-actions>.basic-select{flex:1;width:auto;min-width:120px}.template-group-list-page .data-table{font-size:.8125rem}.template-group-list-page .data-table th{font-size:.75rem}.template-group-list-page .group-icon-sm{width:28px;height:28px;min-width:28px;font-size:.75rem}.template-group-list-page .action-buttons .btn-icon{width:28px;height:28px;font-size:.75rem}.template-group-list-page .td-description{max-width:150px}}@media (max-width: 576px){.template-group-list-page .data-table th,.template-group-list-page .data-table td{padding:var(--spacing-xs)}.template-group-list-page .name-cell{flex-direction:column;align-items:flex-start;gap:4px}.template-group-list-page .td-description{max-width:120px}}.template-group-list-page .action-buttons .btn-icon.info:hover{background:var(--accent-info-light, #e3f2fd);color:var(--accent-info, #2196f3);border-color:var(--accent-info, #2196f3)}.instructor-modal-tabs .tab-btn svg{font-size:.875rem}.instructor-modal-content{min-height:300px}.instructor-search-box{margin-bottom:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-sm)}.instructor-search-box .search-input-wrapper{position:relative;display:flex;align-items:center;flex:1}.instructor-search-box>.btn{flex-shrink:0;white-space:nowrap;display:flex;align-items:center;gap:6px;padding:8px 16px}.instructor-search-box .search-icon{position:absolute;left:12px;color:var(--text-muted);font-size:.875rem;z-index:1}.instructor-search-box .form-control{padding-left:36px;padding-right:36px;width:100%}.instructor-search-box .btn-clear{position:absolute;right:8px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px 8px;display:flex;align-items:center;justify-content:center}.instructor-search-box .btn-clear:hover{color:var(--text-primary)}.instructor-select-list{max-height:350px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-xs);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-sm)}.instructor-select-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;border:1px solid transparent}.instructor-select-item:hover{background:var(--bg-secondary)}.instructor-select-item.selected{background:var(--accent-primary-light, #e3f2fd);border-color:var(--accent-primary)}.instructor-select-checkbox{position:relative;width:20px;height:20px;flex-shrink:0}.instructor-select-checkbox input[type=checkbox]{position:absolute;opacity:0;cursor:pointer;width:100%;height:100%;z-index:1}.instructor-select-checkbox .checkmark{position:absolute;top:0;left:0;width:20px;height:20px;background:var(--bg-primary);border:2px solid var(--border-secondary);border-radius:var(--radius-sm);transition:all .15s ease}.instructor-select-checkbox input:checked+.checkmark{background:var(--accent-primary);border-color:var(--accent-primary)}.instructor-select-checkbox input:checked+.checkmark:after{content:"";position:absolute;top:2px;left:6px;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.instructor-avatar{width:40px;height:40px;min-width:40px;border-radius:50%;overflow:hidden;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center}.instructor-avatar img{width:100%;height:100%;object-fit:cover}.instructor-avatar .avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;font-size:1rem}.instructor-avatar-sm{width:32px;height:32px;min-width:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center}.instructor-avatar-sm .avatar-img{width:32px;height:32px;object-fit:cover;border-radius:50%!important;border:1px solid var(--border-primary, #e0e0e0);background:transparent}.instructor-avatar-sm .avatar-placeholder{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--accent-primary, #2196f3);color:#fff;font-size:.875rem;font-weight:600;border-radius:50%}.instructor-details{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.instructor-details .instructor-name{font-weight:500;color:var(--text-primary);font-size:.875rem}.instructor-details .instructor-email{font-size:.75rem;color:var(--text-muted)}.already-assigned-badge{padding:3px 8px;background:var(--accent-success-light);color:var(--accent-success);border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;white-space:nowrap}.manage-instructors-modal.modal-dialog.modal-xl{max-width:900px;margin-left:auto;margin-right:auto}@media (min-width: 1200px){.manage-instructors-modal.modal-dialog.modal-xl{max-width:1000px}}@media (min-width: 1400px){.manage-instructors-modal.modal-dialog.modal-xl{max-width:650px}}.manage-instructors-modal .modal-content{max-width:100%}.manage-instructors-modal .modal-body{overflow-x:auto;overflow-y:auto}.manage-instructors-modal .assigned-instructors-table{border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-primary)}.manage-instructors-modal .assigned-instructors-table .table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.manage-instructors-modal .assigned-instructors-table .data-table{width:100%;min-width:500px;border-collapse:separate;border-spacing:0}.manage-instructors-modal .assigned-instructors-table .data-table thead{background:var(--bg-secondary);border-bottom:none!important}.manage-instructors-modal .assigned-instructors-table .data-table thead tr{background:var(--bg-secondary)}.manage-instructors-modal .assigned-instructors-table .data-table th{padding:14px 16px;text-align:left;font-weight:600;color:var(--text-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-primary);white-space:nowrap;background:var(--bg-secondary)}.manage-instructors-modal .assigned-instructors-table .data-table th input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-primary)}.manage-instructors-modal .assigned-instructors-table .data-table td{padding:14px 16px;border-bottom:1px solid var(--border-primary);vertical-align:middle;font-size:.875rem;color:var(--text-primary)}.manage-instructors-modal .assigned-instructors-table .data-table td input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-primary)}.manage-instructors-modal .assigned-instructors-table .data-table tbody tr:last-child td{border-bottom:none}.manage-instructors-modal .assigned-instructors-table .data-table tbody tr:hover{background:var(--bg-secondary)}.manage-instructors-modal .assigned-instructors-table .data-table tbody tr.selected{background:var(--accent-primary-light)}.manage-instructors-modal .assigned-instructors-table .data-table th:first-child,.manage-instructors-modal .assigned-instructors-table .data-table td:first-child{text-align:center;width:40px;min-width:40px}.manage-instructors-modal .assigned-instructors-table .td-actions{text-align:center;vertical-align:middle;width:80px;min-width:80px;white-space:nowrap}.manage-instructors-modal .assigned-instructors-table .instructor-cell{display:flex;align-items:center;gap:var(--spacing-sm)}.manage-instructors-modal .assigned-instructors-table .instructor-cell .instructor-info{display:flex;flex-direction:column;gap:2px;min-width:0}.manage-instructors-modal .assigned-instructors-table .instructor-cell .instructor-name{font-weight:600;color:var(--text-primary);font-size:.875rem}.manage-instructors-modal .assigned-instructors-table .instructor-cell .instructor-email{font-size:.75rem;color:var(--text-muted)}.manage-instructors-modal .assigned-instructors-table .btn-icon{width:32px;height:32px;min-width:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;font-size:.8rem}.manage-instructors-modal .assigned-instructors-table .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--border-secondary);color:var(--text-primary)}.manage-instructors-modal .assigned-instructors-table .btn-icon.danger:hover{background:#ef44441a;color:#ef4444;border-color:#ef4444}.empty-state.small{padding:var(--spacing-xl);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.template-group-list-page .default-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;width:18px;height:18px;min-width:18px;background:linear-gradient(135deg,gold,#ffb300);color:#fff;border-radius:50%;font-size:.5625rem;box-shadow:0 1px 3px #ffb30066}.template-group-list-page .default-group-field,.modal-dialog .default-group-field{padding:16px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;transition:all .2s ease}.template-group-list-page .default-group-row,.modal-dialog .default-group-row{display:flex;align-items:center;gap:10px}.template-group-list-page .default-group-row input[type=checkbox],.modal-dialog .default-group-row input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--primary-color)}.template-group-list-page .default-group-checkbox,.modal-dialog .default-group-checkbox{display:none}.template-group-list-page .default-group-star,.modal-dialog .default-group-star{color:#ffc107!important;font-size:15px}.template-group-list-page .default-group-title,.modal-dialog .default-group-title{font-weight:500;font-size:14px;color:var(--text-primary)}.template-group-list-page .default-group-hint,.modal-dialog .default-group-hint{display:block;margin-top:6px;padding-left:50px;font-size:12px;font-style:italic;color:var(--text-muted)!important;opacity:.8;line-height:1.4}.template-group-list-page .filter-row{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:flex-end}.template-group-list-page .filter-group{min-width:150px}.add-instructors-section{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center;min-height:200px}.add-instructors-section .add-instructors-info{margin-bottom:var(--spacing-lg)}.add-instructors-section .add-instructors-info p{color:var(--text-secondary);font-size:.9375rem;margin:0}.add-instructors-section .btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:.9375rem}.add-instructors-section .btn svg{font-size:1rem}.assigned-instructors-table{border:1px solid var(--border-primary);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-primary)}.assigned-instructors-table .data-table{width:100%;min-width:450px;border-collapse:separate;border-spacing:0;font-size:.8125rem;background:var(--bg-primary)}.assigned-instructors-table .data-table thead{background:var(--bg-secondary)}.assigned-instructors-table .data-table th{padding:12px 16px;background:var(--bg-secondary);color:var(--text-muted);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border-primary)}.assigned-instructors-table .data-table td{padding:12px 16px;border-bottom:1px solid var(--border-primary);vertical-align:middle;color:var(--text-primary)}.assigned-instructors-table .data-table tbody tr:hover{background:var(--bg-secondary)}.assigned-instructors-table .data-table tbody tr.selected{background:var(--accent-primary-light)}.assigned-instructors-table .data-table tbody tr:last-child td{border-bottom:none}.assigned-instructors-table .td-actions{text-align:center;vertical-align:middle;width:80px;min-width:80px}.assigned-instructors-table .instructor-cell{display:flex;align-items:center;gap:var(--spacing-sm)}.assigned-instructors-table .instructor-cell .instructor-info{display:flex;flex-direction:column;gap:2px;min-width:0}.assigned-instructors-table .instructor-cell .instructor-name{font-weight:500;color:var(--text-primary);font-size:.875rem}.assigned-instructors-table .instructor-cell .instructor-email{font-size:.75rem;color:var(--text-muted)}.assigned-instructors-table .btn-icon{width:30px;height:30px;min-width:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;font-size:.8125rem;margin:0 auto}.assigned-instructors-table .btn-icon.danger:hover{background:var(--accent-danger-light);color:var(--accent-danger);border-color:var(--accent-danger)}.assigned-instructors-table .td-actions .btn-icon{display:inline-flex!important;visibility:visible!important}.assigned-instructors-table .status-badge.active{background:var(--accent-success-light);color:var(--accent-success)}.assigned-instructors-table .status-badge.inactive{background:var(--accent-danger-light);color:var(--accent-danger)}.instructor-avatar-sm{width:32px;height:32px;min-width:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.instructor-avatar-sm .avatar-img{width:32px;height:32px;object-fit:cover;border-radius:50%;border:1px solid var(--border-primary)}.instructor-avatar-sm .avatar-placeholder{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--accent-primary);color:#fff;font-size:.875rem;font-weight:600;border-radius:50%}.assigned-summary{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:.8rem;color:var(--text-muted);text-align:center}.assigned-summary .selected-count{color:var(--accent-primary);font-weight:600}.instructor-modal-tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);border-bottom:2px solid var(--border-primary);padding-bottom:0}.instructor-modal-tabs .tab-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;color:var(--text-muted);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.instructor-modal-tabs .tab-btn:hover{color:var(--text-primary);background:var(--bg-secondary)}.instructor-modal-tabs .tab-btn.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.instructor-search-box .form-control{background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-primary)}.instructor-search-box .form-control:focus{background:var(--bg-primary);border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.instructor-search-box .form-control::placeholder{color:var(--text-muted)}.empty-state.small{padding:var(--spacing-xl);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:transparent}.empty-state.small .empty-icon{font-size:2.5rem;color:var(--text-muted);opacity:.5;margin-bottom:var(--spacing-md)}.empty-state.small p{color:var(--text-muted);margin:0}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table{border-color:#374151;background:#111827}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table .data-table{background:#111827}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table .data-table thead{background:#1f2937;border-bottom:none!important}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table .data-table thead tr{background:#1f2937}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table .data-table th{background:#1f2937;color:#94a3b8;border-bottom-color:#374151}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table .data-table tbody tr{background:#111827}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table .data-table td{color:#f1f5f9;border-bottom-color:#374151}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table .data-table tbody tr:hover{background:#1f2937}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table .data-table tbody tr.selected{background:#22d3ee26}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table .data-table tbody tr.selected:hover{background:#22d3ee33}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table .instructor-cell .instructor-name{color:#f1f5f9}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table .instructor-cell .instructor-email{color:#94a3b8}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table .btn-icon{background:#1f2937;border-color:#374151;color:#cbd5e1}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table .btn-icon:hover{background:#374151;border-color:#4b5563;color:#f1f5f9}[data-theme=dark] .manage-instructors-modal .assigned-instructors-table .btn-icon.danger:hover{background:#f8717126;color:#f87171;border-color:#f87171}[data-theme=dark] .instructor-avatar-sm .avatar-placeholder{background:#22d3ee;color:#0a0f1a}[data-theme=dark] .assigned-summary{background:#1f2937;color:#94a3b8;border:1px solid #374151}[data-theme=dark] .instructor-modal-tabs{border-bottom-color:#374151}[data-theme=dark] .instructor-modal-tabs .tab-btn{color:#64748b}[data-theme=dark] .instructor-modal-tabs .tab-btn:hover{color:#f1f5f9;background:#1f2937}[data-theme=dark] .instructor-modal-tabs .tab-btn.active{color:#22d3ee;border-bottom-color:#22d3ee}[data-theme=dark] .instructor-search-box .form-control{background:#1f2937;border-color:#374151;color:#f1f5f9}[data-theme=dark] .instructor-search-box .form-control:focus{background:#111827;border-color:#22d3ee;box-shadow:0 0 0 3px #22d3ee1f}[data-theme=dark] .instructor-search-box .form-control::placeholder{color:#64748b}[data-theme=dark] .instructor-search-box .search-icon,[data-theme=dark] .instructor-search-box .btn-clear{color:#64748b}[data-theme=dark] .instructor-search-box .btn-clear:hover{color:#f1f5f9}.assign-groups-modal .assign-groups-modal-body{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-sm) 0}.assign-groups-modal .form-field{display:flex;flex-direction:column;gap:6px}.assign-groups-modal .form-label{font-size:.85rem;font-weight:600;color:var(--text-primary)}.assign-groups-modal .form-label-hint{font-weight:400;font-size:.75rem;color:var(--text-muted)}.assign-groups-modal .assign-groups-instructor-card{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.assign-groups-modal .assign-groups-instructor-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-primary-light);color:var(--accent-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem}.assign-groups-modal .assign-groups-instructor-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.assign-groups-modal .assign-groups-instructor-name{font-weight:600;color:var(--text-primary);font-size:.9rem}.assign-groups-modal .assign-groups-instructor-email{font-size:.8rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assign-group-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.assign-group-list-page .card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:0 2px 12px #0000000f;overflow:visible}.assign-group-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.assign-group-list-page .header-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.assign-group-list-page .header-actions>.basic-select{width:180px;min-width:140px;flex-shrink:0}.assign-group-list-page .card-body{padding:0;min-height:300px}.assign-group-list-page .group-name-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--accent-primary-light);color:var(--accent-primary);border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500}.assign-group-list-page .group-name-badge svg{font-size:.75rem}.assign-group-list-page .group-name-badge.clickable{cursor:pointer;outline:none;transition:background .15s ease,color .15s ease}.assign-group-list-page .group-name-badge.clickable:hover,.assign-group-list-page .group-name-badge.clickable:focus-visible{background:var(--accent-primary);color:var(--bg-primary)}.assign-group-list-page .instructor-cell{display:flex;flex-direction:column;gap:2px;line-height:1.2}.assign-group-list-page .instructor-name{font-weight:500;color:var(--text-primary)}.assign-group-list-page .instructor-name.clickable,.assign-group-list-page .assigned-by-link{color:var(--accent-primary);cursor:pointer;transition:color .15s ease;outline:none}.assign-group-list-page .instructor-name.clickable:hover,.assign-group-list-page .assigned-by-link:hover,.assign-group-list-page .instructor-name.clickable:focus-visible,.assign-group-list-page .assigned-by-link:focus-visible{color:var(--accent-primary-dark);text-decoration:underline}.assign-group-list-page .instructor-uid{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted)}.assign-group-list-page .created-at{font-family:var(--font-mono);font-size:.8rem;color:var(--text-secondary)}.assign-group-list-page .td-actions{text-align:center}.assign-group-list-page .data-table th.th-checkbox,.assign-group-list-page .data-table td.td-checkbox{width:40px;min-width:40px;text-align:center}.assign-group-list-page .data-table th.th-checkbox input[type=checkbox],.assign-group-list-page .data-table td.td-checkbox input[type=checkbox]{cursor:pointer}.assign-group-list-page .data-table tbody tr.selected,.assign-group-list-page .data-table tbody tr.selected:hover{background:var(--accent-light)}.assign-group-list-page .action-buttons{display:flex;justify-content:center;gap:var(--spacing-xs)}.assign-group-list-page .btn-icon.primary{color:var(--accent-primary)}.assign-group-list-page .btn-icon.primary:hover{background:var(--accent-primary-light)}@media (max-width: 768px){.assign-group-list-page .card-header{flex-direction:column;align-items:stretch}.assign-group-list-page .header-actions{justify-content:flex-end;flex-wrap:wrap}.assign-group-list-page .header-actions>.basic-select{flex:1;width:auto;min-width:120px}}.exercise-bundle-list-page{padding:var(--spacing-sm);animation:pageEnter .4s ease}.exercise-bundle-list-page .card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 2px 12px #0000000f;overflow:visible}.exercise-bundle-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);flex-wrap:wrap}.exercise-bundle-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.exercise-bundle-list-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.exercise-bundle-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.exercise-bundle-list-page .card-body{padding:0;overflow:visible}.exercise-bundle-list-page .table-responsive{overflow-x:auto;overflow-y:visible}.exercise-bundle-list-page .data-table{width:100%;border-collapse:separate;border-spacing:0}.exercise-bundle-list-page .data-table td{padding:var(--spacing-md) var(--spacing-sm);border-bottom:1px solid var(--border-primary);vertical-align:middle;font-size:.875rem;color:var(--text-primary)}.exercise-bundle-list-page .data-table tbody tr:hover{background:var(--bg-secondary)}.exercise-bundle-list-page .data-table tbody tr:last-child td{border-bottom:none}.exercise-bundle-list-page .bundle-name-link{font-weight:600;color:var(--accent-primary);text-decoration:none;transition:all .2s ease}.exercise-bundle-list-page .bundle-name-link:hover{color:var(--accent-secondary);text-decoration:underline}.exercise-bundle-list-page .created-by-link{background:none;border:none;padding:0;font-family:inherit;font-size:inherit;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;text-decoration:none}.exercise-bundle-list-page .created-by-link:hover{color:var(--accent-primary);text-decoration:underline}.exercise-bundle-list-page .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px}.exercise-bundle-list-page .loading-state .spinner-lg{width:40px;height:40px;border:3px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.exercise-bundle-list-page .loading-state p{color:var(--text-muted);font-size:.9rem}.exercise-bundle-list-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.exercise-bundle-list-page .empty-state .empty-icon{font-size:3rem;color:var(--text-muted);margin-bottom:16px;opacity:.4}.exercise-bundle-list-page .empty-state p{color:var(--text-secondary);margin-bottom:16px}.exercise-bundle-list-page .page-size-wrapper{width:140px}.exercise-bundle-list-page .page-size-wrapper .basic-select .select-control{min-height:34px;font-size:.8rem}.exercise-bundle-list-page .page-size-wrapper .basic-select .select-dropdown{z-index:9999}.exercise-bundle-list-page .pagination{display:flex;gap:4px;align-items:center}.exercise-bundle-list-page .pagination .btn{min-width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:500;border-radius:var(--radius-sm);border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.exercise-bundle-list-page .pagination .btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.exercise-bundle-list-page .pagination .btn-primary{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.exercise-bundle-list-page .pagination .btn-primary:hover{background:var(--accent-secondary);color:#fff}.exercise-bundle-list-page .pagination .btn:disabled{opacity:.4;cursor:not-allowed}.exercise-bundle-list-page .pagination-ellipsis{width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.exercise-bundle-list-page .delete-warning,.delete-warning{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--accent-warning-light);border:1px solid var(--accent-warning);border-radius:var(--radius-md);margin-top:var(--spacing-md);color:var(--accent-warning-dark);font-size:.875rem}.exercise-bundle-list-page .delete-warning svg,.delete-warning svg{flex-shrink:0;margin-top:2px}.exercise-bundle-list-page .spinner-sm,.spinner-sm{display:inline-block;width:14px;height:14px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite;margin-right:6px}.exercise-bundle-list-page .text-muted{color:var(--text-muted);font-size:.875rem}@media (max-width: 992px){.exercise-bundle-list-page .card-header{flex-direction:column;align-items:stretch}.exercise-bundle-list-page .header-actions{justify-content:flex-end}}@media (max-width: 768px){.exercise-bundle-list-page .data-table th,.exercise-bundle-list-page .data-table td{padding:10px 12px}.exercise-bundle-list-page .card-footer{flex-direction:column}.exercise-bundle-list-page .footer-info{width:100%;flex-direction:column;gap:var(--spacing-sm);text-align:center}.exercise-bundle-list-page .page-size-wrapper{width:100%}.exercise-bundle-list-page .pagination{width:100%;justify-content:center}}@media (max-width: 576px){.exercise-bundle-list-page .data-table{font-size:.8rem}.exercise-bundle-list-page .data-table th{font-size:.65rem}}[data-theme=dark] .exercise-bundle-list-page .card{box-shadow:0 2px 12px #0003}[data-theme=dark] .exercise-bundle-list-page .bundle-name-link{color:var(--accent-primary)}[data-theme=dark] .exercise-bundle-list-page .bundle-name-link:hover{color:var(--accent-secondary)}[data-theme=dark] .exercise-bundle-list-page .created-by-link{color:var(--text-secondary)}[data-theme=dark] .exercise-bundle-list-page .created-by-link:hover{color:var(--accent-primary)}[data-theme=dark] .delete-warning{background:#f59e0b26;border-color:#f59e0b66;color:#fbbf24}.bundle-form-page{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-sm);animation:bundlePageEnter .3s ease}@keyframes bundlePageEnter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.bundle-form-card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 1px 3px #0000000a;position:relative;z-index:2;overflow:visible}.bundle-form-card>.card-body{padding:var(--spacing-md) var(--spacing-lg)}.bundle-form-row{display:flex;align-items:flex-end;gap:var(--spacing-md);flex-wrap:wrap}.bundle-form-field{display:flex;flex-direction:column;gap:4px}.bundle-form-field--name{flex:0 0 280px}.bundle-form-field--exercise{flex:1;min-width:240px}.bundle-form-field--roadmap{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}.bundle-form-field--actions{display:flex;gap:var(--spacing-sm);flex-shrink:0;padding-bottom:1px}.bundle-form-page .form-label{font-size:.78rem;font-weight:600;color:var(--text-secondary);margin:0;white-space:nowrap}.bundle-form-page .form-label .required{color:var(--accent-danger);margin-left:2px}.bundle-form-page .form-control{transition:all .2s ease}.bundle-form-page .form-control:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.bundle-form-page .form-control.is-invalid{border-color:var(--accent-danger)}.bundle-form-page .error-text{color:var(--accent-danger);font-size:.72rem;font-weight:500}.toggle-switch-inline{position:relative;display:inline-block;width:42px;height:24px;cursor:pointer;flex-shrink:0}.toggle-switch-inline input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--border-secondary);border-radius:24px;transition:all .25s cubic-bezier(.4,0,.2,1)}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #00000026}.toggle-switch-inline input:checked+.toggle-slider{background:var(--accent-primary)}.toggle-switch-inline input:checked+.toggle-slider:before{transform:translate(18px)}.bundle-exercises-card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 1px 3px #0000000a;overflow:hidden;margin-top:5px}.bundle-form-page .card-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.bundle-form-page .card-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0}.bundle-form-page .card-title-icon{color:var(--accent-primary);font-size:.8rem}.bundle-form-page .badge-primary{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;background:var(--accent-primary);color:#fff;font-size:.72rem;font-weight:600;border-radius:var(--radius-full)}.exercise-list-body{padding:0!important}.bundle-exercises-card .table-responsive{overflow-x:auto}.bundle-exercises-card .table-responsive::-webkit-scrollbar{height:5px}.bundle-exercises-card .table-responsive::-webkit-scrollbar-track{background:transparent}.bundle-exercises-card .table-responsive::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:10px}.empty-exercises{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl) var(--spacing-lg);text-align:center}.empty-exercises .empty-icon{font-size:2rem;margin-bottom:var(--spacing-sm);opacity:.2;color:var(--accent-primary)}.empty-exercises p{font-size:.85rem;font-weight:600;color:var(--text-secondary);margin:0 0 4px}.empty-exercises span{font-size:.78rem;color:var(--text-muted)}.bundle-form-page .loading-state-sm{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-xl);color:var(--text-muted);font-size:.85rem}.exercise-table{margin:0;border-collapse:separate;border-spacing:0;width:100%;table-layout:fixed}.exercise-table thead th{padding:10px 16px;background:var(--bg-secondary);color:var(--text-primary);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;border-bottom:1px solid var(--border-primary);text-align:left;overflow:hidden}.exercise-table tbody tr{background:var(--bg-primary);transition:background .12s ease}.exercise-table tbody td{padding:10px 16px;border-bottom:1px solid var(--border-primary);vertical-align:middle;font-size:.84rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis}.exercise-table tbody tr:hover{background:var(--bg-secondary)}.exercise-table tbody tr:last-child td{border-bottom:none}.exercise-table .drag-handle:hover{color:var(--accent-primary)}.exercise-table .td-exercise-name{font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exercise-table .th-details{overflow:visible}.bundle-form-page .created-by-link{background:none;border:none;padding:0;font-family:inherit;color:var(--text-secondary);font-size:.8rem;cursor:pointer;text-transform:capitalize;text-decoration:none;transition:color .15s ease}.bundle-form-page .created-by-link:hover{color:var(--accent-primary);text-decoration:underline}.exercise-table tbody tr{cursor:grab;transition:all .12s ease}.exercise-table tbody tr.dragging{opacity:.4;background:var(--accent-primary-light)}.exercise-table tbody tr.drag-over{box-shadow:inset 0 2px 0 var(--accent-primary)}.exercise-table .td-actions{text-align:center;overflow:visible}.bundle-form-page .td-actions .action-buttons{display:flex;gap:5px;justify-content:center;align-items:center}.bundle-form-page .td-actions .action-buttons .btn-icon{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;font-size:.75rem}.bundle-form-page .td-actions .action-buttons .btn-icon:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.bundle-form-page .td-actions .action-buttons .btn-icon.danger:hover{background:var(--accent-danger);border-color:var(--accent-danger);color:#fff}.exercise-meta-inline{display:flex;flex-wrap:wrap;align-items:center;gap:5px;overflow:hidden}.meta-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:.72rem;font-weight:500;color:var(--text-secondary);white-space:nowrap;background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-primary)}.meta-chip svg{font-size:.6rem}.bundle-form-page .text-warning{color:#f59e0b}.bundle-form-page .text-success{color:#059669}.bundle-form-page .text-danger{color:#dc2626}.bundle-form-page .text-primary{color:var(--accent-primary)}.bundle-form-page .text-purple{color:#7c3aed}.bundle-form-page .text-muted{color:var(--text-muted)}.credit-chip{background:#f59e0b0f!important;border-color:#f59e0b33!important;font-weight:600;font-size:.7rem;color:#b45309!important}.keyword-chip{color:var(--accent-primary)!important}.exercise-pagination{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-secondary);border-top:1px solid var(--border-primary)}.exercise-pagination-info{color:var(--text-muted);font-size:.8rem}.exercise-pagination-nav{display:flex;align-items:center;gap:var(--spacing-sm)}.exercise-pagination .pagination-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;font-size:.75rem;transition:all .15s ease}.exercise-pagination .pagination-btn:hover:not(:disabled){background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.exercise-pagination .pagination-btn:disabled{opacity:.35;cursor:not-allowed}.exercise-pagination .pagination-current{font-size:.8rem;font-weight:600;color:var(--text-secondary);min-width:50px;text-align:center}.bundle-form-page .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;gap:16px}.bundle-form-page .loading-state .spinner-lg{width:36px;height:36px;border:3px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:bundleSpin .8s linear infinite}.bundle-form-page .loading-state p{color:var(--text-muted);font-size:.85rem}@keyframes bundleSpin{to{transform:rotate(360deg)}}[data-theme=dark] .bundle-form-card,[data-theme=dark] .bundle-exercises-card{box-shadow:0 1px 3px #0003}[data-theme=dark] .toggle-slider{background-color:#374151}[data-theme=dark] .exercise-table tbody tr.dragging{background:#0891b214}[data-theme=dark] .meta-chip{background:var(--bg-tertiary);border-color:var(--border-secondary)}[data-theme=dark] .bundle-form-page .text-warning{color:#fbbf24}[data-theme=dark] .bundle-form-page .text-success{color:#34d399}[data-theme=dark] .bundle-form-page .text-danger{color:#f87171}[data-theme=dark] .bundle-form-page .text-purple{color:#a78bfa}[data-theme=dark] .credit-chip{background:#fbbf241a!important;border-color:#fbbf2433!important;color:#fbbf24!important}[data-theme=dark] .keyword-chip{color:#22d3ee!important}[data-theme=dark] .bundle-form-page .td-actions .action-buttons .btn-icon{background:var(--bg-tertiary);border-color:var(--border-secondary)}@media (max-width: 992px){.bundle-form-row{flex-direction:column;align-items:stretch}.bundle-form-field--name{flex:1}.bundle-form-field--roadmap{flex-direction:row;align-items:center;gap:var(--spacing-sm)}.bundle-form-field--actions{justify-content:stretch}.bundle-form-field--actions .btn{width:100%}}@media (max-width: 992px){.exercise-table{table-layout:auto}.exercise-table .th-name{width:auto!important}}@media (max-width: 768px){.exercise-meta-inline{gap:4px}}.mail-template-list-page{padding:var(--spacing-sm);animation:pageEnter .4s ease}.mail-template-list-page .card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 2px 12px #0000000f;overflow:visible}.mail-template-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);flex-wrap:wrap}.mail-template-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.mail-template-list-page .header-actions>.basic-select{width:140px;min-width:120px;flex-shrink:0}.mail-template-list-page .header-actions .basic-select .option-item{min-width:0}.mail-template-list-page .header-actions .basic-select .option-item .option-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.mail-template-list-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.mail-template-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.mail-template-list-page .card-body{padding:0;overflow:visible}.mail-template-list-page .table-responsive{overflow-x:auto;overflow-y:visible}.mail-template-list-page .data-table{width:100%;border-collapse:separate;border-spacing:0}.mail-template-list-page .data-table td{padding:var(--spacing-md) var(--spacing-sm);border-bottom:1px solid var(--border-primary);vertical-align:middle;font-size:.875rem;color:var(--text-primary)}.mail-template-list-page .data-table tbody tr:hover{background:var(--bg-secondary)}.mail-template-list-page .data-table tbody tr:last-child td{border-bottom:none}.mail-template-list-page .template-name-link{font-weight:600;color:var(--accent-primary);cursor:pointer;transition:all .2s ease}.mail-template-list-page .template-name-link:hover{color:var(--accent-secondary);text-decoration:underline}.mail-template-list-page .template-type-pill{display:inline-block;padding:3px 10px;font-size:.78rem;border-radius:999px;background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-secondary);white-space:nowrap}.mail-template-list-page .status-badge{display:inline-block;padding:3px 12px;font-size:.75rem;font-weight:600;border-radius:999px;border:1px solid transparent}.mail-template-list-page .status-badge.active{background:#10b9811f;color:#059669;border-color:#10b98159}.mail-template-list-page .status-badge.inactive{background:#ef44441f;color:#dc2626;border-color:#ef444459}.mail-template-list-page .td-muted{color:var(--text-muted)}.mail-template-list-page .td-date{color:var(--text-secondary);white-space:nowrap}.mail-template-list-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.mail-template-list-page .empty-state .empty-icon{font-size:3rem;color:var(--text-muted);margin-bottom:16px;opacity:.4}.mail-template-list-page .empty-state p{color:var(--text-secondary);margin-bottom:16px}.mail-template-list-page .delete-warning{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--accent-warning-light);border:1px solid var(--accent-warning);border-radius:var(--radius-md);margin-top:var(--spacing-md);color:var(--accent-warning-dark);font-size:.875rem}@media (max-width: 992px){.mail-template-list-page .card-header{flex-direction:column;align-items:stretch}.mail-template-list-page .header-actions{justify-content:flex-end;flex-wrap:wrap}.mail-template-list-page .header-actions>.basic-select{width:100%}}@media (max-width: 768px){.mail-template-list-page .data-table th,.mail-template-list-page .data-table td{padding:10px 12px}}.test-mail-modal{display:flex;flex-direction:column;gap:16px}.test-mail-hint{margin:0;font-size:.85rem;color:var(--text-secondary);line-height:1.5}.test-mail-field{display:flex;flex-direction:column;gap:6px}.test-mail-field label{font-size:.82rem;font-weight:600;color:var(--text-secondary)}.test-mail-field .req{color:var(--accent-danger, #dc2626)}.test-mail-field input{width:100%;padding:9px 12px;border-radius:var(--radius-md);border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-primary);font-size:.875rem;transition:border-color .2s ease}.test-mail-field input:focus{outline:none;border-color:var(--accent-primary)}.test-mail-preview{display:flex;flex-direction:column;border:1px solid var(--border-primary);border-radius:var(--radius-md);overflow:hidden}.test-mail-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.test-mail-preview-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.test-mail-subject{font-size:.8rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.test-mail-preview-loading{display:flex;align-items:center;justify-content:center;min-height:320px}.test-mail-iframe{width:100%;height:420px;border:none;background:#fff}.test-mail-footer{display:flex;justify-content:flex-end;gap:12px}[data-theme=dark] .mail-template-list-page .card{box-shadow:0 2px 12px #0003}[data-theme=dark] .mail-template-list-page .status-badge.active{color:#34d399}[data-theme=dark] .mail-template-list-page .status-badge.inactive{color:#f87171}.mail-template-form-page{padding:var(--spacing-sm);animation:pageEnter .4s ease}@keyframes pageEnter{0%{opacity:0}to{opacity:1}}.mail-template-form-page .card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 2px 12px #0000000f}.mail-template-form-page .mt-form-grid{display:grid;grid-template-columns:1fr 320px;gap:var(--spacing-lg);align-items:start}.mail-template-form-page .card-body{padding:var(--spacing-lg)}.mail-template-form-page .mt-field-row{display:flex;gap:var(--spacing-lg);flex-wrap:wrap}.mail-template-form-page .mt-field{flex:1 1 220px;margin-bottom:var(--spacing-md);display:flex;flex-direction:column}.mail-template-form-page .mt-field label,.mail-template-form-page .mt-body-label{font-size:.82rem;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.mail-template-form-page .req{color:var(--accent-danger, #dc2626)}.mail-template-form-page .mt-input{width:100%;padding:9px 12px;border-radius:var(--radius-md);border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-primary);font-size:.875rem;transition:border-color .2s ease}.mail-template-form-page .mt-input:focus{outline:none;border-color:var(--accent-primary)}.mail-template-form-page .mt-input:disabled{background:var(--bg-secondary);color:var(--text-muted);cursor:not-allowed}.mail-template-form-page .mt-input.has-error{border-color:var(--accent-danger, #dc2626)}.mail-template-form-page .mt-error{color:var(--accent-danger, #dc2626);font-size:.75rem;margin-top:4px}.mail-template-form-page .mt-editor-wrap{margin-top:var(--spacing-sm)}.mail-template-form-page .mt-editor-wrap .rte-content,.mail-template-form-page .mt-editor-wrap .rte-source{min-height:360px}.mail-template-form-page .mt-editor-wrap.has-error .rte-content,.mail-template-form-page .mt-editor-wrap.has-error .rte-source{border-color:var(--accent-danger, #dc2626)}.mail-template-form-page .card-footer.mt-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-primary)}.mail-template-form-page .mt-tags-card .card-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.mail-template-form-page .mt-tags-card .card-header h3{margin:0;font-size:.95rem;color:var(--text-primary);display:flex;align-items:center;gap:8px}.mail-template-form-page .mt-tags-hint{font-size:.8rem;color:var(--text-secondary);margin-bottom:var(--spacing-md)}.mail-template-form-page .mt-tags-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-md)}.mail-template-form-page .mt-tags-list li{display:flex;flex-direction:column;gap:3px}.mail-template-form-page .mt-tag-chip{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:4px 10px;border-radius:999px;border:1px dashed var(--accent-primary);background:var(--bg-secondary);color:var(--accent-primary);cursor:pointer;font-size:.78rem;transition:all .15s ease}.mail-template-form-page .mt-tag-chip:hover{background:var(--accent-primary);color:#fff}.mail-template-form-page .mt-tag-chip code{font-family:SFMono-Regular,Consolas,monospace}.mail-template-form-page .mt-tags-list li.is-system .mt-tag-chip{border-style:dotted;opacity:.85}.mail-template-form-page .mt-tag-desc{font-size:.72rem;color:var(--text-muted)}.mail-template-form-page .mt-tag-desc em{font-style:italic}@media (max-width: 992px){.mail-template-form-page .mt-form-grid{grid-template-columns:1fr}}[data-theme=dark] .mail-template-form-page .card{box-shadow:0 2px 12px #0003}.resource-request-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.resource-request-list-page .card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 2px 12px #0000000f;overflow:visible}.resource-request-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.resource-request-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.resource-request-list-page .header-actions>.basic-select{width:140px;min-width:120px;flex-shrink:0}.resource-request-list-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.resource-request-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.resource-request-list-page .card-body{padding:0}.resource-request-list-page .data-table{width:100%;min-width:700px}.resource-request-list-page .data-table td{white-space:nowrap}.resource-request-list-page .alert{padding:12px 16px;border-radius:var(--radius-md);margin-bottom:16px;display:flex;align-items:center;justify-content:space-between}.resource-request-list-page .alert-close{background:none;border:none;font-size:20px;cursor:pointer;color:inherit;padding:0 4px}.resource-request-list-page .name-cell{display:flex;align-items:center;gap:8px}.resource-request-list-page .profile-icon-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--accent-light);color:var(--accent-primary);border:none;border-radius:50%;cursor:pointer;font-size:.75rem;transition:all .2s ease;flex-shrink:0}.resource-request-list-page .profile-icon-btn:hover{background:var(--accent-primary);color:#fff;transform:scale(1.05)}.resource-request-list-page .user-info{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.resource-request-list-page .user-name{font-weight:500;color:var(--text-primary);text-transform:capitalize;text-align:left}.resource-request-list-page .user-email{font-size:.75rem;color:var(--text-muted);font-weight:400;text-align:left}.resource-request-list-page .badge-icon{font-size:10px}.resource-request-list-page .badge-resource{background-color:#6366f11a;color:#6366f1}.resource-request-list-page .badge-permission{background-color:#f59e0b1a;color:#f59e0b}.request-modal.modal-dialog{width:510px;max-width:95vw}.request-modal .modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);gap:var(--spacing-md);min-height:200px}.request-modal .modal-loading .spinner{font-size:2rem;color:var(--accent-primary)}.request-modal .modal-loading p{margin:0;font-size:.9375rem;color:var(--text-muted)}.request-info-header{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm) var(--spacing-md);padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.request-info-header .status-badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.request-info-header .request-user-info{display:flex;align-items:center;gap:var(--spacing-sm);padding:0;background:none;margin:0}.request-info-header .request-user-info .info-label{font-size:.8125rem;color:var(--text-muted)}.request-info-header .request-user-info .user-link{display:inline-flex;align-items:center;gap:4px;font-size:.875rem;font-weight:500;color:var(--accent-primary);background:none;border:none;padding:4px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;text-transform:capitalize}.request-info-header .request-user-info .user-link:hover{background:var(--accent-light);text-decoration:underline}.request-info-header .request-description{width:100%;margin:0;font-size:.875rem;color:var(--text-muted)}.request-tabs{display:flex;gap:8px;padding:6px;background:var(--bg-secondary);border-radius:12px;margin-bottom:24px}.request-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;background:transparent;border:none;border-radius:8px;font-size:.875rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.request-tab:hover{color:var(--text-primary);background:var(--bg-tertiary)}.request-tab.active{background:var(--bg-primary);color:var(--accent-primary);box-shadow:0 2px 8px #00000014}.request-tab svg{font-size:1rem}.request-content{animation:fadeIn .3s ease}.form-section-header{display:flex;align-items:flex-start;gap:var(--spacing-md);padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.form-section-header .section-icon{font-size:1.25rem;color:var(--accent-primary);margin-top:2px}.form-section-header .section-header-text h4{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 4px}.form-section-header .section-header-text p{font-size:.8125rem;color:var(--text-muted);margin:0}.permission-bulk-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.permission-bulk-actions .bulk-label{font-size:.8125rem;font-weight:500;color:var(--text-muted)}.permission-bulk-actions .bulk-buttons{display:flex;gap:var(--spacing-sm)}.permission-bulk-actions .bulk-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:.8125rem;font-weight:500;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.permission-bulk-actions .bulk-btn-allowed{border-color:var(--accent-success);color:var(--accent-success);background:var(--accent-success-light, rgba(16, 185, 129, .1))}.permission-bulk-actions .bulk-btn-allowed:hover{background:var(--accent-success);color:var(--text-inverse, #ffffff);border-color:var(--accent-success)}.permission-bulk-actions .bulk-btn-denied{border-color:var(--accent-danger);color:var(--accent-danger);background:var(--accent-danger-light, rgba(239, 68, 68, .1))}.permission-bulk-actions .bulk-btn-denied:hover{background:var(--accent-danger);color:var(--text-inverse, #ffffff);border-color:var(--accent-danger)}.resource-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px 24px}.resource-form-grid .form-group{display:flex;flex-direction:column}.resource-form-grid .form-group .label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:8px}.resource-form-grid .form-group label{font-size:.875rem;font-weight:500;color:var(--text-primary);margin:0}.resource-form-grid .form-group .current-value{font-size:.75rem;font-weight:600;color:var(--accent-primary);background:#6366f11a;padding:3px 10px;border-radius:12px;white-space:nowrap;cursor:pointer;transition:background .2s ease}.resource-form-grid .form-group .current-value:hover{background:#6366f133}.resource-form-grid .form-group .input-with-change{position:relative;display:flex;align-items:center}.resource-form-grid .form-group .form-control{padding:12px 55px 12px 14px;font-size:.9375rem;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);transition:all .2s ease;flex:1}.resource-form-grid .form-group .form-control:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f11a;outline:none}.resource-form-grid .form-group .form-control:read-only{background:var(--bg-tertiary);cursor:not-allowed}.resource-form-grid .change-badge{position:absolute;right:10px;font-size:.75rem;font-weight:700;padding:3px 8px;border-radius:12px;pointer-events:none}.resource-form-grid .change-badge.increase{background:#10b98126;color:#059669}.resource-form-grid .change-badge.decrease{background:#ef444426;color:#dc2626}.resource-form-grid .change-badge.neutral{background:#6b728026;color:#6b7280}.resource-form-grid .form-group.has-error .form-control,.resource-form-grid .form-group .input-error{border-color:var(--accent-danger)}.resource-form-grid .form-group .input-error:focus{border-color:var(--accent-danger);box-shadow:0 0 0 3px #ef44441a}.resource-form-grid .form-group .field-error{display:block;margin-top:6px;padding:6px 10px;font-size:.75rem;color:var(--accent-danger);background:var(--accent-danger-light);border-radius:var(--radius-sm)}.permission-list{padding:0}.permission-item{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 16px;padding:14px 16px;border-radius:var(--radius-md);transition:background .15s ease}.permission-item:hover{background:var(--bg-secondary)}.permission-item:not(:last-child){border-bottom:1px solid var(--border-primary)}.permission-label-row{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.permission-label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.current-permission{font-size:.625rem;font-weight:600;padding:2px 8px;border-radius:10px;white-space:nowrap;cursor:pointer;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0}.current-permission.allowed{background:#10b9811f;color:#059669}.current-permission.denied{background:#ef44441f;color:#dc2626}.permission-list .radio-group{display:flex;gap:6px;flex-shrink:0}.permission-list .radio-card{display:flex;align-items:center;gap:6px;padding:6px 12px;background:transparent;border:1px solid var(--border-primary);border-radius:20px;cursor:pointer;transition:all .15s ease}.permission-list .radio-card:hover,.permission-list .radio-card.selected{background:var(--bg-secondary)}.permission-list .radio-card input[type=radio]{display:none}.permission-list .radio-card input[type=radio]:disabled+.radio-indicator{opacity:.6;cursor:not-allowed}.permission-list .radio-indicator{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--text-muted);position:relative;flex-shrink:0;transition:all .15s ease}.permission-list .radio-card.selected .radio-indicator{border-color:var(--accent-primary);background:var(--accent-primary)}.permission-list .radio-card.selected .radio-indicator:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:4px;border-radius:50%;background:#fff}.permission-list .radio-card.selected .radio-indicator.allowed{border-color:var(--accent-success);background:var(--accent-success)}.permission-list .radio-card.selected .radio-indicator.denied{border-color:var(--accent-danger);background:var(--accent-danger)}.permission-list .radio-text{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.permission-list .radio-card.selected .radio-text{color:var(--text-primary)}[data-theme=dark] .permission-bulk-actions .bulk-btn-allowed{background:#10b98126}[data-theme=dark] .permission-bulk-actions .bulk-btn-denied{background:#ef444426}[data-theme=dark] .current-permission.allowed{background:#10b98133;color:#34d399}[data-theme=dark] .current-permission.denied{background:#ef444433;color:#f87171}[data-theme=dark] .resource-form-grid .form-group .current-value{background:#6366f133;color:#a5b4fc}[data-theme=dark] .resource-form-grid .change-badge.increase{background:#10b98140;color:#34d399}[data-theme=dark] .resource-form-grid .change-badge.decrease{background:#ef444440;color:#f87171}[data-theme=dark] .resource-form-grid .change-badge.neutral{background:#9ca3af40;color:#9ca3af}.permission-item .error-message{flex-basis:100%;margin-top:0;padding:8px 12px;font-size:.75rem;color:var(--accent-danger);background:var(--accent-danger-light);border-radius:var(--radius-sm)}@media (max-width: 1200px){.resource-request-list-page .header-actions>.basic-select{width:130px;min-width:110px}}@media (max-width: 992px){.resource-request-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.resource-request-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}.resource-request-list-page .header-actions>.basic-select{width:120px;min-width:100px}.resource-form-grid{gap:16px 20px}}@media (max-width: 768px){.resource-request-list-page .card-header{flex-direction:column;align-items:stretch}.resource-request-list-page .header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.resource-request-list-page .header-actions>.basic-select{flex:1;width:auto;min-width:100px}.request-info-header{flex-direction:column;align-items:flex-start}.request-info-header .request-user-info{flex-wrap:wrap;gap:8px}.resource-form-grid{grid-template-columns:1fr;gap:16px}.permission-item{flex-direction:column;align-items:flex-start;gap:12px}.permission-label-row{width:100%;justify-content:space-between}.permission-list .radio-group{width:100%}.permission-list .radio-card{flex:1;justify-content:center}.form-section-header{padding-bottom:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.permission-bulk-actions{flex-direction:column;align-items:stretch;gap:var(--spacing-sm);padding:var(--spacing-sm)}.permission-bulk-actions .bulk-label{text-align:center}.permission-bulk-actions .bulk-buttons{justify-content:center}}@media (max-width: 576px){.form-section-header{flex-direction:column;text-align:center;align-items:center}.form-section-header .section-icon{margin-top:0}.resource-form-grid .form-group .form-control{padding:8px 10px}.permission-item{padding:var(--spacing-sm)}.permission-list .radio-card{padding:5px 10px}.permission-list .radio-text{font-size:.75rem}.request-tabs{padding:4px}.request-tab{padding:10px 12px;font-size:.8125rem}}.reference-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.ref-url-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary)}.ref-url-text{flex:1;font-family:monospace;font-size:.875rem;color:var(--text-secondary);word-break:break-all}.ref-url-bar .btn{white-space:nowrap}.ref-url-bar .btn-primary{background:var(--accent-primary);color:#fff;border:1px solid var(--accent-primary)}.ref-url-bar .btn-primary:hover{background:var(--accent-secondary);color:#fff;border-color:var(--accent-secondary)}.reference-list-page .card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 2px 12px #0000000f;overflow:visible}.reference-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.reference-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.reference-list-page .header-actions>.basic-select{width:150px;min-width:130px;flex-shrink:0}.reference-list-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.reference-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.reference-list-page .card-body{padding:0;min-height:300px;overflow:visible}.reference-list-page .table{width:100%;border-collapse:separate;border-spacing:0}.reference-list-page .table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-weight:600;font-size:.8125rem;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);white-space:nowrap}.reference-list-page .table td{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-secondary);font-size:.875rem;color:var(--text-primary)}.reference-list-page .table tr:hover{background:var(--bg-hover)}.reference-list-page .th-actions{text-align:center;width:80px}.ref-name{font-weight:500;color:var(--text-primary)}.ref-email{color:var(--text-secondary)}.reference-list-page .status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.reference-list-page .status-badge.pending{background:#f59e0b26;color:#d97706}.reference-list-page .status-badge.accepted{background:#10b98126;color:#059669}.reference-list-page .status-badge .status-icon{font-size:.6875rem}.reference-list-page .date-text{color:var(--text-muted);font-size:.8125rem}.reference-list-page .action-buttons{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs)}.reference-list-page .btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.reference-list-page .btn-icon:hover{background:var(--bg-hover);color:var(--text-primary)}.reference-list-page .btn-icon.danger:hover{background:#ef44441a;color:var(--danger)}.reference-list-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--text-muted)}.reference-list-page .empty-state .empty-icon{font-size:3rem;margin-bottom:var(--spacing-md);opacity:.5}.ref-modal-tabs{display:flex;gap:8px;padding:6px;background:var(--bg-secondary);border-radius:12px;margin-bottom:24px}.ref-modal-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;background:transparent;border:none;border-radius:8px;font-size:.875rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.ref-modal-tab:hover{color:var(--text-primary);background:var(--bg-tertiary)}.ref-modal-tab.active{background:var(--bg-primary);color:var(--accent-primary);box-shadow:0 2px 8px #00000014}.ref-modal-tab svg{font-size:1rem}.ref-modal-content{animation:fadeIn .3s ease}.ref-manual-form .form-group{margin-bottom:var(--spacing-lg)}.ref-manual-form .form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:8px}.ref-manual-form .form-group label .required{color:var(--danger);margin-left:2px}.ref-manual-form .form-group .form-control{width:100%;padding:10px 14px;border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:.875rem;background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s ease,box-shadow .2s ease}.ref-manual-form .form-group .form-control:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f11a}.ref-manual-form .form-group .form-control.error{border-color:var(--danger)}.ref-manual-form .form-group .form-control.error:focus{box-shadow:0 0 0 3px #ef44441a}.ref-manual-form .error-text{display:block;font-size:.75rem;color:var(--danger);margin-top:6px}.ref-csv-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.csv-upload-area{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl);border:2px dashed var(--border-primary);border-radius:var(--radius-lg);background:var(--bg-secondary);text-align:center;transition:border-color .2s ease,background-color .2s ease}.csv-upload-area:hover{border-color:var(--accent-primary);background:#6366f105}.csv-upload-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#6366f11a;border-radius:50%;color:var(--accent-primary);font-size:1.5rem}.csv-upload-text p{margin:0;font-size:.9375rem;font-weight:500;color:var(--text-primary)}.csv-upload-text span{font-size:.8125rem;color:var(--text-muted)}.csv-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.csv-file-name{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:.875rem;color:var(--text-primary)}.csv-file-name svg{color:var(--success)}.csv-upload-area .error-text{font-size:.75rem;color:var(--danger)}.csv-sample-download{display:flex;align-items:center;justify-content:center;gap:8px;padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:.875rem;color:var(--text-secondary)}.csv-sample-download svg{color:var(--accent-primary)}.csv-sample-download .sample-link{color:var(--accent-primary);text-decoration:none;font-weight:500;transition:color .2s ease}.csv-sample-download .sample-link:hover{color:var(--accent-secondary);text-decoration:underline}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.reference-list-page .modal-form{padding:var(--spacing-lg)}.reference-list-page .modal-form-group{margin-bottom:var(--spacing-md)}.reference-list-page .modal-form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:6px}.reference-list-page .modal-form-group label .required{color:var(--danger)}.reference-list-page .modal-form-group .form-control.error{border-color:var(--danger)}.reference-list-page .modal-form-group .error-text{display:block;font-size:.75rem;color:var(--danger);margin-top:4px}.reference-list-page .modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-primary);background:var(--bg-secondary)}.reference-list-page .data-table tr.row-selected td{background:var(--bg-tertiary, rgba(96, 165, 250, .06))}@media (max-width: 1200px){.reference-list-page .header-actions>.basic-select{width:130px;min-width:110px}}@media (max-width: 992px){.reference-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.reference-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}}@media (max-width: 768px){.reference-list-page{padding:var(--spacing-md)}.reference-list-page .card-header{flex-direction:column;align-items:stretch}.reference-list-page .header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.reference-list-page .header-actions>.basic-select{flex:1;width:auto;min-width:110px}.ref-url-bar{flex-direction:column;align-items:stretch;text-align:center}.reference-list-page .card-footer{flex-direction:column;align-items:center}.ref-modal-tabs{padding:4px}.ref-modal-tab{padding:10px 12px;font-size:.8125rem}.csv-upload-area{padding:var(--spacing-lg)}.csv-upload-icon{width:48px;height:48px;font-size:1.25rem}}.attack-inject-list-page{padding:var(--spacing-sm);max-width:1600px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.attack-inject-list-page .header-actions>.basic-select{width:200px;min-width:180px;flex-shrink:0}.attack-inject-list-page .header-actions .btn-icon{width:42px;height:42px}.attack-inject-list-page .ail-error-banner{padding:12px 16px;margin:12px 16px 0;background:var(--color-danger-bg, #fef2f2);color:var(--color-danger, #b91c1c);border-radius:8px;font-size:14px}.attack-inject-list-page .ail-empty-state{padding:60px 20px;text-align:center;color:var(--text-muted)}.attack-inject-list-page .ail-empty-state svg{font-size:42px;margin-bottom:12px;opacity:.6}.attack-inject-list-page .ail-empty-state p{margin:0;font-size:14px}.attack-inject-list-page .ail-table-container{overflow-x:auto}.attack-inject-list-page .ail-table{width:100%;border-collapse:collapse;font-size:13px}.attack-inject-list-page .ail-table thead th{background:var(--bg-secondary);padding:12px 14px;text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);border-bottom:1px solid var(--border-primary);white-space:nowrap;-webkit-user-select:none;user-select:none}.attack-inject-list-page .ail-table thead th.th-center{text-align:center}.attack-inject-list-page .ail-table thead th.sortable{cursor:pointer}.attack-inject-list-page .ail-table thead th.sortable:hover{color:var(--text-primary)}.attack-inject-list-page .ail-table thead th .sort-icon{margin-left:6px;font-size:11px;opacity:.8}.attack-inject-list-page .ail-table tbody td{padding:12px 14px;border-bottom:1px solid var(--border-primary);vertical-align:middle;color:var(--text-primary)}.attack-inject-list-page .ail-table tbody td.td-center{text-align:center}.attack-inject-list-page .ail-table tbody tr:hover{background:var(--bg-secondary)}.attack-inject-list-page .ail-muted{color:var(--text-muted)}.attack-inject-list-page .ail-datetime{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);white-space:nowrap}.attack-inject-list-page .ail-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.attack-inject-list-page .ail-status-badge.status-pending{background:#f59e0b1f;color:#d97706}.attack-inject-list-page .ail-status-badge.status-launch{background:#3b82f61f;color:#2563eb}.attack-inject-list-page .ail-status-badge.status-success{background:#10b98124;color:#059669}.attack-inject-list-page .ail-status-badge.status-failed{background:#ef44441f;color:#dc2626}.attack-inject-list-page .td-actions{white-space:nowrap}.attack-inject-list-page .btn-icon{background:transparent;border:1px solid var(--border-primary);color:var(--text-primary);width:30px;height:30px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin-right:4px;transition:background .12s ease,color .12s ease,border-color .12s ease}.attack-inject-list-page .btn-icon:hover{background:var(--bg-secondary);color:var(--accent-primary);border-color:var(--accent-primary)}.attack-inject-list-page .btn-icon.btn-icon-danger:hover{color:#dc2626;border-color:#dc2626}.ail-detail-modal .ail-detail-loading{padding:40px 0}.ail-detail-modal .ail-detail{display:flex;flex-direction:column;gap:16px}.ail-detail-modal .ail-detail-badges{display:flex;gap:8px;flex-wrap:wrap}.ail-detail-modal .ail-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;font-size:12px;font-weight:600;line-height:1}.ail-detail-modal .ail-badge svg{font-size:11px}.ail-detail-modal .ail-badge-library{background:#6366f124;color:#6366f1}.ail-detail-modal .ail-badge-custom{background:#ec489924;color:#db2777}.ail-detail-modal .ail-badge-os{background:#3b82f61f;color:#2563eb}.ail-detail-modal .ail-status-badge.status-pending{background:#f59e0b24;color:#d97706}.ail-detail-modal .ail-status-badge.status-launch{background:#3b82f624;color:#2563eb}.ail-detail-modal .ail-status-badge.status-success{background:#10b98129;color:#059669}.ail-detail-modal .ail-status-badge.status-failed{background:#ef444424;color:#dc2626}.ail-detail-modal .ail-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.ail-detail-modal .ail-info-card{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-primary);min-width:0}.ail-detail-modal .ail-info-icon{width:36px;height:36px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-primary-light, rgba(59, 130, 246, .12));color:var(--accent-primary, #2563eb);font-size:15px;flex-shrink:0}.ail-detail-modal .ail-info-content{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.ail-detail-modal .ail-info-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);font-weight:600}.ail-detail-modal .ail-info-value{font-size:14px;color:var(--text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ail-detail-modal .ail-info-mono{font-family:var(--font-mono);font-size:12.5px}.ail-detail-modal .ail-panel{display:flex;flex-direction:column;border:1px solid var(--border-primary);border-radius:8px;overflow:hidden;background:var(--bg-primary)}.ail-detail-modal .ail-panel-head{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);color:var(--text-secondary)}.ail-detail-modal .ail-panel-head h5{margin:0;font-size:13px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.03em}.ail-detail-modal .ail-panel-head svg{color:var(--accent-primary, #2563eb)}.ail-detail-modal .ail-panel-count{margin-left:auto;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--accent-primary-light, rgba(59, 130, 246, .12));color:var(--accent-primary, #2563eb)}.ail-detail-modal .ail-panel-body{padding:14px}.ail-detail-modal .ail-prompt-body{font-size:13px;color:var(--text-primary);line-height:1.55;white-space:pre-wrap;word-break:break-word}.ail-detail-modal .ail-option-chips{display:flex;flex-wrap:wrap;gap:6px}.ail-detail-modal .ail-option-chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:var(--accent-primary-light, rgba(59, 130, 246, .12));color:var(--accent-primary, #2563eb);font-family:var(--font-mono);font-size:12px;font-weight:600}.ail-detail-modal .ail-command-table{width:100%;border-collapse:collapse;font-size:12px}.ail-detail-modal .ail-command-table th,.ail-detail-modal .ail-command-table td{padding:10px 12px;border-bottom:1px solid var(--border-primary);vertical-align:top;text-align:left}.ail-detail-modal .ail-command-table tr:last-child td{border-bottom:none}.ail-detail-modal .ail-command-table th{background:var(--bg-secondary);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.04em;color:var(--text-secondary)}.ail-detail-modal .ail-command-cell{width:36%}.ail-detail-modal .ail-response-cell{width:64%}.ail-detail-modal .ail-command-text{font-family:var(--font-mono);font-size:12px;word-break:break-word;white-space:pre-wrap;color:var(--text-primary);flex:1}.ail-detail-modal .ail-with-copy{display:flex;align-items:flex-start;gap:8px;justify-content:space-between}.ail-detail-modal .ail-response-pre{flex:1 1 auto;margin:0;padding:12px 14px;background:#0f172a;color:#e5e7eb;border:1px solid #1e293b;border-radius:6px;font-family:var(--font-mono, "Fira Code", Menlo, Monaco, Consolas, monospace);font-size:12.5px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:420px;overflow:auto;tab-size:2;-moz-tab-size:2}.ail-detail-modal .ail-response-pre--json{background:#0b1220;color:#cbd5e1;font-size:12.5px}.ail-detail-modal .ail-response-pre--json::-webkit-scrollbar{width:10px;height:10px}.ail-detail-modal .ail-response-pre--json::-webkit-scrollbar-thumb{background:#1e293b;border-radius:10px}.ail-detail-modal .ail-response-pre--json::-webkit-scrollbar-thumb:hover{background:#334155}.ail-detail-modal .ail-response-pre--json .ail-json-key{color:#93c5fd;font-weight:600}.ail-detail-modal .ail-response-pre--json .ail-json-string{color:#86efac}.ail-detail-modal .ail-response-pre--json .ail-json-number{color:#fbbf24}.ail-detail-modal .ail-response-pre--json .ail-json-boolean{color:#f472b6;font-weight:600}.ail-detail-modal .ail-response-pre--json .ail-json-null{color:#94a3b8;font-style:italic}[data-theme=light] .ail-detail-modal .ail-response-pre{background:#111827;color:#e5e7eb;border-color:#1f2937}[data-theme=light] .ail-detail-modal .ail-response-pre--json{background:#0b1220}.ail-detail-modal .ail-copy-btn{background:transparent;border:1px solid var(--border-primary);color:var(--text-secondary);width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;transition:color .12s ease,border-color .12s ease}.ail-detail-modal .ail-copy-btn:hover{color:var(--accent-primary);border-color:var(--accent-primary)}.ail-detail-modal .ail-no-response{font-size:12px;color:var(--text-muted);font-style:italic}.ail-detail-modal .ail-muted{color:var(--text-muted);font-style:italic}@media (max-width: 640px){.ail-detail-modal .ail-info-grid{grid-template-columns:1fr}}@media (max-width: 1200px){.attack-inject-list-page .header-actions>.basic-select{width:170px;min-width:150px}}@media (max-width: 992px){.attack-inject-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.attack-inject-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}.attack-inject-list-page .header-actions>.basic-select{width:160px;min-width:140px}}@media (max-width: 768px){.attack-inject-list-page .card-header{flex-direction:column;align-items:stretch}.attack-inject-list-page .header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.attack-inject-list-page .header-actions>.basic-select{flex:1;width:auto;min-width:140px}}.archive-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.archive-list-page .card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:0 2px 12px #0000000f;overflow:visible}.archive-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.archive-list-page .header-actions{display:flex;gap:8px;align-items:center;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.archive-list-page .header-actions .btn-sm{height:36px;flex-shrink:0}.archive-list-page .header-actions>.basic-select{width:160px;min-width:140px;flex-shrink:0}.archive-list-page .card-body{padding:0;min-height:300px}.archive-list-page .allotment-id{font-family:var(--font-mono);font-size:.8rem;color:var(--accent-primary);background:var(--accent-primary-light);padding:4px 8px;border-radius:4px;font-weight:500;text-align:center}.archive-list-page .exercise-name{font-weight:500;color:var(--text-primary);display:inline-block;max-width:100%;overflow-wrap:anywhere;word-break:break-word;white-space:normal;vertical-align:middle}.archive-list-page .user-badge{display:inline-flex;align-items:center;cursor:pointer;gap:6px;padding:5px 12px;background:#6366f11a;border-radius:var(--radius-full);font-size:.8125rem;font-weight:500;color:#6366f1}.archive-list-page .user-badge svg{color:#6366f1;font-size:.75rem}.archive-list-page .team-badges{display:flex;flex-wrap:wrap;gap:6px}.archive-list-page .team-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;background:#ec48991a;border-radius:var(--radius-full);font-size:.8125rem;font-weight:500;color:#ec4899;cursor:pointer;transition:background .15s ease}.archive-list-page .team-badge:hover{background:#ec489933}.archive-list-page .team-badge svg{color:#ec4899;font-size:.75rem}.archive-list-page .status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;text-transform:capitalize}.archive-list-page .status-badge .status-icon{font-size:.6875rem}.archive-list-page .status-badge.allotted{background:#3b82f61a;color:#3b82f6}.archive-list-page .status-badge.running{background:#22c55e1a;color:#22c55e}.archive-list-page .status-badge.pause{background:#f59e0b1a;color:#f59e0b}.archive-list-page .status-badge.expired,.archive-list-page .status-badge.inactive{background:#ef44441a;color:#ef4444}.archive-list-page .status-badge.approval{background:#8b5cf61a;color:#8b5cf6}.archive-list-page .type-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.archive-list-page .type-badge.individual{background:#6366f11a;color:#6366f1}.archive-list-page .type-badge.team{background:#ec48991a;color:#ec4899}.archive-list-page .td-actions{text-align:center}.archive-list-page .action-buttons{display:flex;justify-content:center;gap:var(--spacing-xs)}.archive-list-page .user-name-link{color:var(--accent-primary);cursor:pointer;transition:color .15s ease}.archive-list-page .user-name-link:hover{color:var(--accent-primary-dark);text-decoration:underline}@media (max-width: 1200px){.archive-list-page .header-actions>.basic-select{width:140px;min-width:120px}}@media (max-width: 992px){.archive-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.archive-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}.archive-list-page .header-actions>.basic-select{width:130px;min-width:120px}}@media (max-width: 768px){.archive-list-page .card-header{flex-direction:column;align-items:stretch}.archive-list-page .header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.archive-list-page .header-actions>.basic-select{flex:1;width:auto;min-width:120px}}.archive-list-page .archive-daterange{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0}.archive-list-page .archive-filter-label{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--text-secondary);font-weight:500;white-space:nowrap;line-height:1}.archive-list-page .archive-daterange-input{width:140px;flex-shrink:0}.archive-list-page .archive-daterange-input .dp-input{height:36px;padding:0 10px}.archive-list-page .archive-daterange-input .dp-input-text{font-size:.8125rem}.archive-list-page .archive-daterange-sep{color:var(--text-muted);font-size:.8125rem;line-height:1;padding:0 2px}@media (max-width: 1200px){.archive-list-page .archive-daterange-input{width:130px}}@media (max-width: 992px){.archive-list-page .archive-daterange{flex-wrap:wrap}}.archive-list-page tr.row-selected{background:var(--accent-primary-light)}.archive-list-page .th-checkbox{text-align:center;vertical-align:middle}.archive-list-page .archive-datetime{font-size:.8rem;color:var(--text-secondary);font-family:var(--font-mono)}.claim-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.claim-list-page .card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:0 2px 12px #0000000f;overflow:visible}.claim-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.claim-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.claim-list-page .header-actions>.basic-select{width:160px;min-width:140px;flex-shrink:0}.claim-list-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.claim-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.claim-list-page .card-body{padding:0;min-height:300px}.claim-list-page .table-responsive{overflow-x:auto}.claim-list-page .data-table{width:100%;border-collapse:separate;border-spacing:0}.claim-list-page .data-table th,.claim-list-page .data-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-primary);font-size:.875rem}.claim-list-page .data-table th{background:var(--bg-secondary);font-weight:600;color:var(--text-secondary);white-space:nowrap}.claim-list-page .data-table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.claim-list-page .data-table th.th-sortable:hover{color:var(--accent-primary)}.claim-list-page .data-table th.th-center,.claim-list-page .data-table td.text-center{text-align:center}.claim-list-page .data-table th .sort-icon{margin-left:var(--spacing-xs);font-size:.75rem;opacity:.5}.claim-list-page .data-table th.th-sortable:hover .sort-icon{opacity:1}.claim-list-page .data-table tbody tr:hover{background:var(--bg-secondary)}.claim-list-page .td-actions{text-align:center}.claim-list-page .type-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.claim-list-page .type-badge.resource{background:#6366f11a;color:#6366f1}.claim-list-page .type-badge.permission{background:#f59e0b1a;color:#f59e0b}.claim-list-page .status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.claim-list-page .status-badge .status-icon{font-size:.6875rem}.claim-list-page .status-badge.claimed{background:#10b9811a;color:#10b981}.claim-list-page .status-badge.unclaimed{background:#f59e0b1a;color:#f59e0b}@media (max-width: 1200px){.claim-list-page .header-actions>.basic-select{width:140px;min-width:120px}}@media (max-width: 992px){.claim-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.claim-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}}@media (max-width: 768px){.claim-list-page .card-header{flex-direction:column;align-items:stretch}.claim-list-page .header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.claim-list-page .header-actions>.basic-select{flex:1;width:auto;min-width:120px}}.license-page{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;background:var(--bg-secondary, #0f172a);color:var(--text-primary, #e2e8f0)}.license-card{width:100%;max-width:640px;background:var(--bg-primary, #1e293b);border:1px solid var(--border-color, #334155);border-radius:12px;padding:28px 28px 32px;box-shadow:0 10px 30px #00000040}.license-embed{max-width:640px;color:var(--text-primary, #e2e8f0)}.license-head{display:flex;align-items:center;gap:16px;margin-bottom:22px}.license-head-icon{font-size:28px;color:var(--accent-primary, #0891b2);flex:0 0 auto}.license-head h1{font-size:1.4rem;margin:0}.license-sub{margin:4px 0 0;color:var(--text-secondary, #94a3b8);font-size:.9rem}.license-loading{padding:20px 0;color:var(--text-secondary, #94a3b8)}.license-status{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:8px;margin-bottom:16px;font-size:.92rem;border:1px solid transparent}.license-status--valid{background:#10b9811f;border-color:#10b98159;color:#10b981}.license-status--expired,.license-status--invalid,.license-status--missing{background:#ef44441f;border-color:#ef444459;color:#ef4444}.license-status-text{color:var(--text-primary, #e2e8f0)}.license-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;border:1px solid var(--border-color, #334155);border-radius:8px;padding:14px 16px;margin-bottom:16px}.license-meta-item{display:flex;flex-direction:column;gap:2px;min-width:0}.license-meta-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary, #94a3b8)}.license-meta-value{font-size:.9rem;font-weight:600;color:var(--text-primary, #e2e8f0);word-break:break-word}.license-usage{border:1px solid var(--border-color, #334155);border-radius:8px;padding:14px 16px 6px;margin-bottom:22px}.license-usage-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary, #94a3b8);margin-bottom:10px}.license-usage-row{padding:12px 0;border-bottom:1px solid var(--border-color, #334155)}.license-usage-row:last-child{border-bottom:none}.license-usage-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.license-usage-name{display:inline-flex;align-items:center;font-size:.92rem;font-weight:600;color:var(--text-primary, #e2e8f0)}.license-usage-count{font-size:.92rem;font-weight:600;color:var(--text-primary, #e2e8f0);white-space:nowrap}.license-usage-count .sep{color:var(--text-secondary, #94a3b8);margin:0 4px}.license-usage-foot{display:flex;justify-content:space-between;gap:12px;margin-top:6px;font-size:.76rem;color:var(--text-secondary, #94a3b8)}.license-bar{height:6px;border-radius:999px;background:var(--bg-secondary, #0f172a);border:1px solid var(--border-color, #334155);overflow:hidden;margin-top:8px}.license-bar-fill{height:100%;border-radius:999px;transition:width .3s ease}.license-bar--ok .license-bar-fill{background:#10b981}.license-bar--warn .license-bar-fill{background:#f59e0b}.license-bar--danger .license-bar-fill{background:#ef4444}.license-tip-wrap{position:relative;display:inline-flex;align-items:center;margin-left:6px;cursor:help;outline:none}.license-tip-icon{font-size:.8rem;color:var(--text-secondary, #94a3b8)}.license-tip-wrap:hover .license-tip-icon,.license-tip-wrap:focus .license-tip-icon{color:var(--accent-primary, #0891b2)}.license-tip{position:absolute;bottom:calc(100% + 10px);left:-10px;width:250px;background:var(--bg-secondary, #0f172a);border:1px solid var(--border-color, #334155);border-radius:8px;padding:10px 12px;box-shadow:0 10px 28px #0006;font-size:.78rem;line-height:1.45;color:var(--text-primary, #e2e8f0);text-align:left;white-space:normal;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .15s ease,transform .15s ease;z-index:30}.license-tip-wrap:hover .license-tip,.license-tip-wrap:focus .license-tip,.license-tip-wrap:focus-within .license-tip{opacity:1;visibility:visible;transform:translateY(0)}.license-tip:after{content:"";position:absolute;top:100%;left:16px;border:6px solid transparent;border-top-color:var(--border-color, #334155)}.license-tip-desc{display:block;color:var(--text-secondary, #94a3b8);margin-bottom:9px}.license-tip-stats{display:flex;justify-content:space-between;gap:8px}.license-tip-stats>span{display:flex;flex-direction:column;gap:2px;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary, #94a3b8)}.license-tip-stats b{font-size:.95rem;font-weight:700;color:var(--text-primary, #e2e8f0)}@media (max-width: 520px){.license-meta{grid-template-columns:1fr}}.license-form{display:flex;flex-direction:column;gap:10px}.license-form label{font-size:.9rem;font-weight:600}.license-textarea{width:100%;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;padding:12px;border-radius:8px;border:1px solid var(--border-color, #334155);background:var(--bg-secondary, #0f172a);color:var(--text-primary, #e2e8f0);box-sizing:border-box}.license-textarea:focus{outline:none;border-color:var(--accent-primary, #0891b2)}.license-submit{align-self:flex-start;margin-top:4px;padding:10px 22px;border:none;border-radius:8px;background:var(--accent-primary, #0891b2);color:#fff;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.license-submit:disabled{opacity:.6;cursor:not-allowed}.settings-page{padding:var(--spacing-sm);animation:settingsFadeIn .3s ease}.settings-page .settings-wrapper{display:flex;gap:var(--spacing-lg);min-height:calc(100vh - 200px)}.settings-page .settings-sidebar{width:250px;flex-shrink:0;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-primary);height:fit-content;position:sticky;top:var(--spacing-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.settings-page .sidebar-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);font-weight:600;color:var(--text-primary);font-size:.9375rem;background:var(--bg-secondary)}.settings-page .sidebar-nav{padding:var(--spacing-xs)}.settings-page .sidebar-nav .nav-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:10px var(--spacing-md);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;width:100%;border:none;background:transparent;text-align:left;font-size:.8125rem;font-weight:500;border-left:3px solid transparent;margin-bottom:2px;position:relative}.settings-page .sidebar-nav .nav-item:hover{background:var(--bg-hover);color:var(--text-primary);border-left-color:var(--border-secondary)}.settings-page .sidebar-nav .nav-item.active{background:var(--accent-primary-light);color:var(--accent-primary);font-weight:600;border-left-color:var(--accent-primary)}.settings-page .sidebar-nav .nav-item .nav-icon{width:1rem;text-align:center;font-size:.875rem;flex-shrink:0}.settings-page .sidebar-nav .nav-item .nav-text{flex:1}.settings-page .settings-content{flex:1;min-width:0}.settings-page .content-section{animation:settingsSlideIn .35s ease}@keyframes settingsSlideIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.settings-page .section-header{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:2px solid var(--border-primary);position:relative}.settings-page .section-header:after{content:"";position:absolute;bottom:-2px;left:0;width:60px;height:2px;background:var(--accent-primary);border-radius:2px}.settings-page .section-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--spacing-sm);margin:0 0 var(--spacing-xs) 0}.settings-page .section-desc{color:var(--text-muted);font-size:.8125rem;margin:0;line-height:1.5}.settings-page .form-group-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .2s ease}.settings-page .form-group-card:hover{box-shadow:var(--shadow-md)}.settings-page .group-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);font-weight:600;font-size:.875rem;color:var(--text-primary)}.settings-page .group-body{padding:var(--spacing-lg)}.settings-page .form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-lg)}.settings-page .form-row+.form-row{margin-top:var(--spacing-lg)}.settings-page .form-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.settings-page .form-field-half{grid-column:span 1}.settings-page .field-label{font-size:.8125rem;font-weight:500;color:var(--text-primary)}.settings-page .field-label .required{color:var(--accent-danger);margin-left:2px}.settings-page .field-input{width:100%;padding:9px var(--spacing-md);font-size:.8125rem;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);transition:all .2s ease;height:38px}.settings-page .field-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light)}.settings-page .field-input.error{border-color:var(--accent-danger)}.settings-page .field-input.error:focus{box-shadow:0 0 0 3px var(--accent-danger-light)}.settings-page .field-error{font-size:.6875rem;color:var(--accent-danger);margin-top:2px}.settings-page .form-field .basic-select .select-control{min-height:38px;padding:0 var(--spacing-md);background:var(--bg-input)}.settings-page .form-field .basic-select .select-value{font-size:.8125rem}.settings-page .field-hint{font-size:.6875rem;color:var(--text-muted);margin:var(--spacing-xs) 0 0 0;line-height:1.4}.settings-page .smtp-test-row{display:flex;gap:var(--spacing-sm);align-items:stretch}.settings-page .smtp-test-row .field-input{flex:1 1 auto;min-width:0}.settings-page .smtp-test-row .btn-save{flex:0 0 auto;white-space:nowrap}.settings-page .form-actions{display:flex;justify-content:flex-end;padding-top:var(--spacing-lg)}.settings-page .btn-save{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:9px var(--spacing-xl);background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s ease;height:38px}.settings-page .btn-save:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.settings-page .btn-save:active{transform:translateY(0)}.settings-page .btn-save:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.settings-page .logo-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-lg)}.settings-page .logo-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:all .2s ease}.settings-page .logo-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-secondary)}.settings-page .logo-card-header{padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.settings-page .logo-card-header .card-label{font-weight:600;font-size:.875rem;color:var(--text-primary)}.settings-page .logo-card-preview{padding:var(--spacing-xl) var(--spacing-lg);display:flex;align-items:center;justify-content:center;min-height:140px;background:var(--bg-secondary);position:relative}.settings-page .logo-card-preview:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(45deg,var(--bg-tertiary) 25%,transparent 25%),linear-gradient(-45deg,var(--bg-tertiary) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--bg-tertiary) 75%),linear-gradient(-45deg,transparent 75%,var(--bg-tertiary) 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0px;opacity:.4}.settings-page .logo-card-preview img{max-width:100%;max-height:100px;object-fit:contain;position:relative;z-index:1}.settings-page .logo-card-actions{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-primary)}.settings-page .btn-upload{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);width:100%;padding:9px var(--spacing-md);background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s ease;height:38px}.settings-page .btn-upload:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.settings-page .btn-upload:active{transform:translateY(0)}.settings-page .settings-options-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.settings-page .option-card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--spacing-md);transition:all .2s ease}.settings-page .option-card:hover{border-color:var(--accent-primary);background:var(--accent-primary-light)}.settings-page .option-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.settings-page .option-header .option-title{font-weight:500;font-size:.8125rem;color:var(--text-primary)}.settings-page .option-controls{padding-left:calc(1rem + var(--spacing-sm))}.settings-page .radio-group{display:flex;gap:var(--spacing-lg)}.settings-page .radio-option{display:flex;align-items:center;gap:var(--spacing-xs);cursor:pointer}.settings-page .radio-option input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border:2px solid var(--border-secondary);border-radius:50%;cursor:pointer;position:relative;transition:all .2s ease;flex-shrink:0}.settings-page .radio-option input[type=radio]:checked{border-color:var(--accent-primary)}.settings-page .radio-option input[type=radio]:checked:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;background:var(--accent-primary);border-radius:50%}.settings-page .radio-option .radio-label{font-size:.8125rem;color:var(--text-primary)}.settings-page .toggle-options{display:flex;flex-direction:column;gap:var(--spacing-md)}.settings-page .toggle-option{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);transition:all .2s ease}.settings-page .toggle-option:hover{border-color:var(--border-secondary);background:var(--bg-secondary)}.settings-page .toggle-info{flex:1}.settings-page .toggle-title{font-weight:500;font-size:.875rem;color:var(--text-primary);display:block;margin-bottom:4px}.settings-page .toggle-desc{font-size:.75rem;color:var(--text-muted);margin:0;line-height:1.4}.settings-page .toggle-label{display:flex;align-items:center;cursor:pointer;flex-shrink:0;margin-left:var(--spacing-lg)}.settings-page .toggle-label input{display:none}.settings-page .toggle-switch{position:relative;width:44px;height:24px;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-full);transition:all .2s ease}.settings-page .toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:all .2s ease;box-shadow:0 1px 3px #00000026}.settings-page .toggle-label input:checked+.toggle-switch{background:var(--accent-primary);border-color:var(--accent-primary)}.settings-page .toggle-label input:checked+.toggle-switch:after{transform:translate(20px)}.settings-page .loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--spacing-md)}.settings-page .loading-container p{color:var(--text-muted);font-size:.875rem}.settings-page .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-lg);font-size:.8125rem;font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;border:none}.settings-page .btn-primary{background:var(--accent-primary);color:#fff}.settings-page .btn-primary:hover{background:var(--accent-hover)}.settings-page .btn-primary:disabled{opacity:.6;cursor:not-allowed}.settings-page .btn-outline{background:transparent;border:1px solid var(--border-primary);color:var(--text-primary)}.settings-page .btn-outline:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.settings-page .btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:.75rem}@media (max-width: 1024px){.settings-page .settings-wrapper{flex-direction:column}.settings-page .settings-sidebar{width:100%;position:static}.settings-page .sidebar-nav{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);padding:var(--spacing-sm)}.settings-page .sidebar-nav .nav-item{flex:1;min-width:130px;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);border-left:none;border-bottom:2px solid transparent;margin-bottom:0}.settings-page .sidebar-nav .nav-item:hover{border-left-color:transparent;border-bottom-color:var(--border-secondary)}.settings-page .sidebar-nav .nav-item.active{border-left-color:transparent;border-bottom-color:var(--accent-primary)}.settings-page .form-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.settings-page .form-row,.settings-page .settings-options-grid{grid-template-columns:1fr}.settings-page .sidebar-nav .nav-item{justify-content:flex-start}.settings-page .logo-cards-grid{grid-template-columns:1fr}.settings-page .toggle-option{padding:var(--spacing-md)}}@media (max-width: 576px){.settings-page .group-body{padding:var(--spacing-md)}.settings-page .toggle-label{margin-left:var(--spacing-md)}}@keyframes settingsFadeIn{0%{opacity:0}to{opacity:1}}.schedule-modal .modal-body{padding:var(--spacing-lg);max-height:60vh;overflow-y:auto}.schedule-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.schedule-form .form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.schedule-form .form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.schedule-form .form-label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.schedule-form .required{color:var(--accent-danger)}.schedule-form .form-control{width:100%}.schedule-form .form-control.is-invalid{border-color:var(--accent-danger)}.schedule-form .error-message{font-size:.75rem;color:var(--accent-danger);margin-top:1px;margin-bottom:1px}.schedule-form textarea.form-control{resize:vertical;min-height:80px}.schedule-view-details{padding:0}.schedule-view-details .detail-table{width:100%;border-collapse:collapse}.schedule-view-details .detail-table tr{border-bottom:1px solid var(--border-primary)}.schedule-view-details .detail-table tr:last-child{border-bottom:none}.schedule-view-details .detail-table td{padding:var(--spacing-md);font-size:.9375rem}.schedule-view-details .detail-label-cell{width:120px;font-weight:500;color:var(--text-secondary)}.day-events-list{display:flex;flex-direction:column;gap:8px;padding:12px}.day-events-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;color:var(--text-muted)}.day-events-empty svg{font-size:1.25rem;opacity:.4}.day-events-empty p{margin:0;font-size:.8125rem}.day-event-card{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--bg-secondary);border-left:3px solid;border-radius:0 var(--radius-md) var(--radius-md) 0;transition:background .15s ease}.day-event-card:hover{background:var(--bg-tertiary)}.day-event-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.day-event-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.day-event-title{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.day-event-type{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;white-space:nowrap;flex-shrink:0}.day-event-type svg{font-size:.4rem}.day-event-time{display:flex;align-items:center;gap:5px;font-size:.75rem;color:var(--text-muted)}.day-event-time svg{font-size:.625rem}.day-event-desc{font-size:.75rem;color:var(--text-muted);margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.day-event-actions{display:flex;gap:4px;flex-shrink:0;align-items:center}.day-event-actions .btn-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;font-size:.8125rem;text-decoration:none}.day-event-actions .btn-icon:hover{background:var(--bg-secondary);color:var(--accent-primary);border-color:var(--accent-primary)}.day-event-actions .btn-icon.danger:hover{background:var(--accent-danger-light);color:var(--accent-danger);border-color:var(--accent-danger)}.modal-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) * 2;gap:var(--spacing-md)}.modal-loading .spinner{font-size:2rem;color:var(--accent-primary)}.modal-loading p{color:var(--text-muted);margin:0}@media (max-width: 768px){.schedule-form .form-row{grid-template-columns:1fr}}@media (max-width: 576px){.schedule-modal .modal-body,.event-detail-modal .modal-body{padding:var(--spacing-md)}}.calendar-page{animation:fadeIn .3s ease;display:flex;flex-direction:column;height:calc(100vh - 80px);min-height:600px;padding:var(--spacing-sm)}.calendar-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-primary);margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-md)}.calendar-page .calendar-header-left{display:flex;gap:var(--spacing-md)}.calendar-page .page-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:var(--spacing-sm);margin:0}.calendar-page .page-title svg{color:var(--accent-primary)}.calendar-page .header-navigation{display:flex;align-items:center;gap:var(--spacing-md)}.nav-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.nav-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--accent-primary)}.today-btn{padding:var(--spacing-xs) var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.today-btn:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.current-period{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.calendar-page .calendar-header-right{display:flex;align-items:center;gap:var(--spacing-md)}.view-switcher{display:flex;background:var(--bg-secondary);border-radius:var(--radius-md);padding:4px;border:1px solid var(--border-primary)}.view-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s ease}.view-btn:hover{color:var(--text-primary)}.view-btn.active{background:var(--accent-primary);color:#fff}.view-btn svg{font-size:.75rem}.add-event-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-lg);background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.add-event-btn:hover{background:var(--accent-hover)}.calendar-main{display:flex;gap:var(--spacing-lg);flex:1;min-height:0;overflow:hidden}.calendar-sidebar{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--spacing-lg);overflow-y:auto}.mini-calendar{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-md)}.mini-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.mini-nav-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.mini-nav-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.mini-month-title{font-size:.875rem;font-weight:600;color:var(--text-primary)}.mini-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:var(--spacing-xs)}.mini-weekday{text-align:center;font-size:.6875rem;font-weight:500;color:var(--text-muted);padding:var(--spacing-xs) 0}.mini-calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.mini-day{position:relative;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);font-size:.75rem;color:var(--text-primary);cursor:pointer;transition:all .2s ease}.mini-day:hover{background:var(--bg-tertiary)}.mini-day.other-month{color:var(--text-muted);opacity:.5}.mini-day.today{background:var(--accent-light);color:var(--accent-primary);font-weight:600}.mini-day.selected{background:var(--accent-primary);color:#fff}.mini-event-dot{position:absolute;bottom:4px;width:4px;height:4px;background:var(--accent-primary);border-radius:50%}.calendar-legend{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-md)}.legend-title{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-md) 0}.legend-items{display:flex;flex-direction:column;gap:var(--spacing-sm)}.legend-item{display:flex;align-items:center;gap:var(--spacing-sm)}.legend-item svg{font-size:.625rem}.legend-label{font-size:.8125rem;color:var(--text-secondary);text-transform:capitalize}.sidebar-events{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-md);flex:1;min-height:0;overflow-y:auto}.sidebar-events-title{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-md) 0}.sidebar-events-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.no-events-text{font-size:.8125rem;color:var(--text-muted);text-align:center;padding:var(--spacing-lg)}.sidebar-event-item{padding:var(--spacing-sm);background:var(--bg-primary);border-left:3px solid;border-radius:0 var(--radius-sm) var(--radius-sm) 0;cursor:pointer;transition:all .2s ease}.sidebar-event-item:hover{background:var(--bg-tertiary)}.sidebar-event-title{display:block;font-size:.8125rem;font-weight:500;color:var(--text-primary);margin-bottom:2px}.sidebar-event-time{font-size:.75rem;color:var(--text-muted)}.calendar-content{flex:1;min-width:0;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column}.calendar-month-view{display:flex;flex-direction:column;height:100%}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary)}.weekday-header{padding:var(--spacing-sm) var(--spacing-md);text-align:center;font-size:.8125rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase}.calendar-days-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,1fr);flex:1}.calendar-day{min-height:100px;padding:var(--spacing-xs);border-right:1px solid var(--border-primary);border-bottom:1px solid var(--border-primary);cursor:pointer;transition:background .2s ease;overflow:hidden}.calendar-day:nth-child(7n){border-right:none}.calendar-day:hover{background:var(--bg-tertiary)}.calendar-day.other-month{background:var(--bg-primary)}.calendar-day.other-month .day-number{opacity:.4}.calendar-day.today{background:#3b82f60d}.calendar-day.today .day-number{background:var(--accent-primary);color:#fff;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.calendar-day.weekend .day-number{color:var(--accent-danger)}.calendar-day.selected{background:var(--accent-light)}.day-number{font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.day-events{display:flex;flex-direction:column;gap:2px}.event-card{padding:2px var(--spacing-xs);border-radius:var(--radius-sm);border-left:3px solid;cursor:pointer;transition:all .2s ease}.event-card:hover{opacity:.8;transform:translate(2px)}.event-card.compact{padding:1px var(--spacing-xs)}.event-card-content{display:flex;flex-direction:column}.event-title{font-size:.6875rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-time{font-size:.625rem;opacity:.8}.more-events{font-size:.6875rem;color:var(--accent-primary);font-weight:500;padding:2px var(--spacing-xs)}.calendar-week-view{display:flex;flex-direction:column;height:100%}.week-header{display:flex;background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary)}.time-column-header{width:60px;flex-shrink:0}.week-day-header{flex:1;padding:var(--spacing-sm);text-align:center;border-left:1px solid var(--border-primary)}.week-day-header.today{background:#3b82f61a}.week-day-name{display:block;font-size:.75rem;font-weight:500;color:var(--text-muted);text-transform:uppercase}.week-day-number{display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-top:var(--spacing-xs)}.week-day-number.today-number{background:var(--accent-primary);color:#fff;width:32px;height:32px;border-radius:50%}.week-body{display:flex;flex:1;overflow-y:auto}.time-column{width:60px;flex-shrink:0}.time-slot{height:60px;display:flex;align-items:flex-start;justify-content:flex-end;padding-right:var(--spacing-sm);border-bottom:1px solid var(--border-primary)}.time-label{font-size:.6875rem;color:var(--text-muted);transform:translateY(-8px)}.week-days-columns{display:flex;flex:1}.week-day-column{flex:1;border-left:1px solid var(--border-primary)}.week-day-column.today{background:#3b82f608}.hour-cell{height:60px;border-bottom:1px solid var(--border-primary);padding:2px;position:relative}.hour-cell:hover{background:var(--bg-tertiary)}.calendar-day-view{display:flex;flex-direction:column;height:100%}.day-view-header{padding:var(--spacing-lg);background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary);text-align:center}.day-view-date{display:flex;flex-direction:column;align-items:center}.day-view-weekday{font-size:.875rem;font-weight:500;color:var(--text-muted);text-transform:uppercase}.day-view-number{font-size:2.5rem;font-weight:700;color:var(--text-primary);line-height:1;margin-top:var(--spacing-xs)}.day-view-number.today{background:var(--accent-primary);color:#fff;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center}.day-view-body{display:flex;flex:1;overflow-y:auto}.day-events-column{flex:1;border-left:1px solid var(--border-primary)}.calendar-agenda-view{padding:var(--spacing-lg);overflow-y:auto;height:100%}.agenda-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.no-events{text-align:center;padding:var(--spacing-xl) * 2;color:var(--text-muted)}.no-events-icon{font-size:3rem;opacity:.3;margin-bottom:var(--spacing-md)}.agenda-item{display:flex;gap:var(--spacing-lg);cursor:pointer}.agenda-date{width:70px;flex-shrink:0;text-align:center;padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md)}.agenda-day{display:block;font-size:1.5rem;font-weight:700;color:var(--text-primary);line-height:1}.agenda-month{display:block;font-size:.75rem;font-weight:500;color:var(--accent-primary);text-transform:uppercase;margin-top:var(--spacing-xs)}.agenda-weekday{display:block;font-size:.6875rem;color:var(--text-muted);margin-top:2px}.agenda-event-card{flex:1;padding:var(--spacing-md);background:var(--bg-primary);border-left:4px solid;border-radius:0 var(--radius-md) var(--radius-md) 0;transition:all .2s ease}.agenda-event-card:hover{background:var(--bg-tertiary);transform:translate(4px)}.agenda-event-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.agenda-event-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.agenda-event-category{padding:2px var(--spacing-sm);border-radius:var(--radius-full);font-size:.6875rem;font-weight:500;text-transform:capitalize}.agenda-event-details{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.agenda-event-time,.agenda-event-location,.agenda-event-attendees{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.8125rem;color:var(--text-secondary)}.agenda-event-time svg,.agenda-event-location svg,.agenda-event-attendees svg{font-size:.75rem;color:var(--text-muted)}.agenda-event-description{font-size:.8125rem;color:var(--text-muted);margin:0;line-height:1.5}.calendar-page .modal-content{background:var(--bg-primary);max-width:500px;max-height:90vh}.event-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-primary);background:var(--bg-primary)}.event-modal-header h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.event-modal-header .modal-close{background:var(--bg-tertiary);border:none;color:var(--text-secondary);width:32px;height:32px;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.event-modal-header .modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.event-modal-body{padding:var(--spacing-lg)}.event-detail{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md) 0;border-bottom:1px solid var(--border-primary)}.event-detail:last-of-type{border-bottom:none}.event-detail svg{color:var(--text-muted);width:18px;margin-top:2px}.event-detail div{flex:1}.detail-label{display:block;font-size:.75rem;color:var(--text-muted);margin-bottom:2px}.detail-value{font-size:.9375rem;color:var(--text-primary)}.event-description{padding:var(--spacing-md) 0}.event-description p{font-size:.9375rem;color:var(--text-secondary);margin:var(--spacing-xs) 0 0 0;line-height:1.5}.event-status{padding-top:var(--spacing-md)}.status-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full);font-size:.8125rem;font-weight:500}.event-modal-footer{display:flex;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--border-primary);background:var(--bg-tertiary)}.add-event-modal{max-width:550px}.add-event-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.add-event-modal .modal-header h3{display:flex;align-items:center;gap:var(--spacing-sm);font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.add-event-modal .modal-header h3 svg{color:var(--accent-primary)}.calendar-page .modal-header .modal-close{background:var(--bg-tertiary);color:var(--text-secondary)}.calendar-page .modal-header .modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.add-event-modal .modal-body{padding:var(--spacing-lg);max-height:60vh;overflow-y:auto}.add-event-modal .modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--border-primary);background:var(--bg-tertiary)}.add-event-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm);margin-bottom:var(--spacing-md);align-items:start}.form-label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.form-input{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:.875rem;color:var(--text-primary);transition:all .2s ease}.form-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light)}textarea.form-input{resize:vertical;min-height:80px}select.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.checkbox-group{flex-direction:row}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:.875rem;color:var(--text-primary)}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-primary)}@media (max-width: 1200px){.calendar-sidebar{width:240px}}@media (max-width: 1024px){.calendar-page{height:auto;min-height:auto}.calendar-main{flex-direction:column;overflow:visible}.calendar-sidebar{width:100%;flex-direction:row;flex-wrap:wrap;overflow:visible}.mini-calendar{flex:1;min-width:250px}.calendar-legend{flex:1;min-width:180px}.sidebar-events{flex:1;min-width:250px;max-height:200px}.calendar-content{min-height:500px}.calendar-day{min-height:70px}}@media (max-width: 768px){.calendar-page{height:auto;min-height:auto;padding:var(--spacing-xs)}.calendar-header{flex-direction:column;align-items:flex-start;padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-md);gap:var(--spacing-sm)}.calendar-page .header-navigation{gap:var(--spacing-sm)}.current-period{font-size:.9375rem}.calendar-page .calendar-header-right{width:100%;justify-content:space-between}.view-switcher{flex-wrap:wrap}.view-btn span,.add-event-btn span{display:none}.calendar-content{min-height:auto;overflow:visible}.calendar-month-view{height:auto}.calendar-day{min-height:44px;padding:2px}.day-number{font-size:.72rem;margin-bottom:0}.calendar-day.today .day-number{width:22px;height:22px;font-size:.68rem}.weekday-header{padding:var(--spacing-xs);font-size:.6875rem}.day-events{flex-direction:row;flex-wrap:wrap;gap:2px;justify-content:center}.event-card.compact{border-left:none;border-radius:50%;width:6px;height:6px;min-width:6px;padding:0}.event-card.compact .event-card-content,.more-events{display:none}.time-column,.time-column-header{width:40px}.time-label{font-size:.6rem}.time-slot,.hour-cell{height:48px}.week-day-name{font-size:.625rem}.week-day-number{font-size:1rem}.week-day-number.today-number{width:26px;height:26px}.day-view-number{font-size:1.75rem}.day-view-number.today{width:44px;height:44px}.agenda-item{flex-direction:column;gap:var(--spacing-sm)}.agenda-date{width:100%;display:flex;gap:var(--spacing-md);align-items:center;justify-content:flex-start}.agenda-day{font-size:1.25rem}.calendar-agenda-view{padding:var(--spacing-md)}.form-row{grid-template-columns:1fr}.modal-content{margin:var(--spacing-md);max-height:calc(100vh - 40px)}}@media (max-width: 480px){.calendar-sidebar{flex-direction:column}.mini-calendar,.calendar-legend{min-width:auto}.calendar-day{min-height:36px}.day-number{font-size:.68rem}.calendar-day.today .day-number{width:20px;height:20px;font-size:.625rem}.weekday-header{font-size:.625rem;padding:4px 2px}.nav-btn{width:30px;height:30px}.today-btn{font-size:.75rem;padding:4px 10px}}.invite-input-wrapper{position:relative}.invite-input-row{display:flex;gap:var(--spacing-sm)}.invite-search-container{flex:1;position:relative}.invite-search-container .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.875rem}.invite-search-container .search-spinner{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--accent-primary);font-size:.875rem}.invite-search{padding-left:36px!important}.btn-add-invite{padding:var(--spacing-sm) var(--spacing-md);flex-shrink:0}.user-dropdown{position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;margin-top:var(--spacing-xs)}.dropdown-item{padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;font-size:.875rem;color:var(--text-primary);transition:background .2s ease}.dropdown-item:hover{background:var(--bg-tertiary)}.dropdown-empty,.dropdown-loading{padding:var(--spacing-md);text-align:center;color:var(--text-muted);font-size:.875rem}.dropdown-loading svg{margin-right:var(--spacing-xs)}.invite-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.invite-tag{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-full);font-size:.8125rem;color:var(--text-primary)}.invite-tag-remove{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--text-muted);border:none;border-radius:50%;color:#fff;font-size:.625rem;cursor:pointer;transition:background .2s ease}.invite-tag-remove:hover{background:var(--accent-danger)}.form-error{display:block;font-size:.75rem;color:var(--accent-danger);margin-top:var(--spacing-xs)}.form-input.error{border-color:var(--accent-danger)}.required{color:var(--accent-danger)}.detail-table{width:100%;border-collapse:collapse}.detail-table tr{border-bottom:1px solid var(--border-primary)}.detail-table tr:last-child{border-bottom:none}.detail-table td{padding:var(--spacing-md);font-size:.9375rem}.detail-label-cell{width:120px;font-weight:500;color:var(--text-secondary)}.allotment-modal{max-width:600px}.allotment-header{background:var(--bg-primary);border-bottom:1px solid var(--border-primary)}.allotment-details{margin:0}.detail-row{display:flex;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border-primary)}.detail-row:last-child{border-bottom:none}.detail-row dt{width:140px;flex-shrink:0;font-weight:500;color:var(--text-secondary);font-size:.875rem}.detail-row dd{flex:1;margin:0;font-size:.9375rem;color:var(--text-primary)}.status-badge.status-allotted{background:#3b82f61a;color:#3b82f6}.status-badge.status-running{background:#22c55e26;color:#16a34a}.status-badge.status-pause{background:#f59e0b1a;color:#f59e0b}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--spacing-md)}.loading-spinner-icon{font-size:2.5rem;color:var(--accent-primary)}.loading-container p{color:var(--text-muted);font-size:.9375rem}@keyframes chat-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes chat-slide-in-left{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes chat-slide-in-right{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes chat-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes chat-pulse-online{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 4px #22c55e00}}@keyframes chat-typing-bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}@keyframes chat-send-pulse{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1)}}@keyframes chat-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes chat-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.chat-page{display:flex;height:calc(100vh - var(--header-height) - 24px);background:var(--bg-secondary);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-primary);box-shadow:var(--shadow-md);animation:chat-fade-in .4s ease-out}.chat-sidebar{width:340px;min-width:340px;background:var(--bg-card);border-right:1px solid var(--border-primary);display:flex;flex-direction:column;transition:all .3s cubic-bezier(.4,0,.2,1)}.chat-sidebar-header{padding:var(--spacing-md) var(--spacing-md) var(--spacing-sm);border-bottom:1px solid var(--border-primary);background:var(--bg-card)}.chat-sidebar-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.chat-sidebar-title{font-size:1.125rem;font-weight:700;color:var(--text-primary);margin:0;letter-spacing:-.025em}.chat-header-stats{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--text-muted)}.chat-stat-online{display:flex;align-items:center;gap:4px;color:var(--accent-success);font-weight:600}.chat-stat-dot{width:8px;height:8px;border-radius:50%}.chat-stat-dot-online{background:var(--accent-success);animation:chat-pulse-online 2s ease-in-out infinite}.chat-stat-separator{color:var(--border-secondary)}.chat-stat-total{font-weight:500}.chat-search-wrapper{position:relative;margin-bottom:0}.chat-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.8125rem;transition:color .2s ease;pointer-events:none}.chat-search-input{width:100%;padding:10px 12px 10px 36px;background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.chat-search-input:hover{border-color:var(--border-secondary)}.chat-search-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light);background:var(--bg-card)}.chat-search-input:focus+.chat-search-icon,.chat-search-wrapper:focus-within .chat-search-icon{color:var(--accent-primary)}.chat-search-input::placeholder{color:var(--text-muted)}.chat-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:none;border-radius:50%;color:var(--text-muted);font-size:14px;cursor:pointer;transition:all .15s ease;line-height:1}.chat-search-clear:hover{background:var(--text-muted);color:#fff}.chat-search-input{padding-right:36px}.chat-filters-section{display:flex;flex-direction:column;gap:8px;margin-top:var(--spacing-sm)}.chat-filter-tabs{display:flex;gap:4px;padding:3px;background:var(--bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--border-primary)}.chat-filter-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:8px 10px;border:none;background:transparent;color:var(--text-muted);font-size:.75rem;font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative}.chat-filter-tab:hover{color:var(--text-primary);background:#00000008}.chat-filter-tab-active{background:var(--bg-card);color:var(--accent-primary);box-shadow:0 1px 3px #00000014,0 1px 2px #0000000a;font-weight:600}.chat-filter-tab svg{font-size:.6875rem;opacity:.8}.chat-filter-tab-active svg{opacity:1}.chat-filter-count{font-size:.625rem;padding:2px 6px;background:var(--bg-tertiary);border-radius:var(--radius-full);color:var(--text-muted);font-weight:600;min-width:18px;text-align:center}.chat-filter-tab-active .chat-filter-count{background:var(--accent-light);color:var(--accent-primary)}.chat-status-filter-wrapper{position:relative}.chat-status-filter-trigger{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;font-size:.8125rem;color:var(--text-secondary)}.chat-status-filter-trigger:hover{border-color:var(--border-secondary);background:var(--bg-hover)}.chat-status-filter-icon{font-size:.75rem;color:var(--text-muted)}.chat-status-filter-label{flex:1;display:flex;align-items:center;gap:6px;text-align:left}.chat-status-filter-label strong{color:var(--text-primary);font-weight:600}.chat-status-filter-chevron{font-size:.625rem;color:var(--text-muted);transition:transform .2s ease}.chat-status-filter-chevron-open{transform:rotate(180deg)}.chat-status-dropdown-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.chat-status-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);box-shadow:0 4px 12px #0000001a,0 2px 4px #0000000d;z-index:100;overflow:hidden;animation:chat-dropdown-appear .15s ease-out}@keyframes chat-dropdown-appear{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.chat-status-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:transparent;cursor:pointer;transition:background .15s ease;text-align:left;font-size:.8125rem;color:var(--text-secondary)}.chat-status-option:hover{background:var(--bg-hover)}.chat-status-option-active{background:var(--accent-light);color:var(--accent-primary)}.chat-status-option-active:hover{background:var(--accent-light)}.chat-status-option-icon{display:flex;align-items:center;justify-content:center;width:20px}.chat-status-dot{width:10px;height:10px;border-radius:50%;border:2px solid}.chat-status-dot-all{background:linear-gradient(135deg,var(--accent-success) 50%,var(--text-muted) 50%);border-color:var(--bg-tertiary)}.chat-status-dot-online{background:var(--accent-success);border-color:#22c55e33;box-shadow:0 0 0 2px #22c55e1a}.chat-status-dot-offline{background:var(--text-muted);border-color:#0000001a}.chat-status-option-text{flex:1;font-weight:500}.chat-status-option-count{font-size:.75rem;padding:2px 8px;background:var(--bg-tertiary);border-radius:var(--radius-full);color:var(--text-muted);font-weight:600}.chat-status-option-count-online{background:#22c55e1a;color:var(--accent-success)}.chat-status-option-active .chat-status-option-count{background:#0891b21a;color:var(--accent-primary)}.chat-avatar-group{background:linear-gradient(135deg,#6366f1,#8b5cf6)}.chat-type-badge{display:inline-block;padding:2px 6px;margin-left:6px;background:var(--accent-light);color:var(--accent-primary);font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:var(--radius-sm)}.chat-conversation-list{flex:1;overflow-y:auto;padding:var(--spacing-sm);scroll-behavior:smooth}.chat-conversation-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);margin-bottom:4px;border:1px solid transparent;animation:chat-fade-in .3s ease-out;animation-fill-mode:both}.chat-conversation-item:nth-child(1){animation-delay:.05s}.chat-conversation-item:nth-child(2){animation-delay:.1s}.chat-conversation-item:nth-child(3){animation-delay:.15s}.chat-conversation-item:nth-child(4){animation-delay:.2s}.chat-conversation-item:nth-child(5){animation-delay:.25s}.chat-conversation-item:hover{background:var(--bg-hover);transform:translate(4px)}.chat-conversation-item.chat-conversation-active{background:var(--accent-light);border-color:var(--accent-primary);box-shadow:0 2px 8px #00000014}.chat-conversation-item.chat-conversation-active:hover{transform:none}.chat-avatar{position:relative;flex-shrink:0}.chat-avatar-image{width:52px;height:52px;border-radius:var(--radius-full);object-fit:cover;background:var(--bg-tertiary);border:2px solid var(--bg-card);transition:all .2s ease}.chat-conversation-item:hover .chat-avatar-image{border-color:var(--accent-light)}.chat-avatar-placeholder{width:52px;height:52px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:1.125rem;letter-spacing:.025em;border:2px solid var(--bg-card);transition:all .2s ease}.chat-conversation-item:hover .chat-avatar-placeholder{transform:scale(1.05)}.chat-status-indicator{position:absolute;bottom:2px;right:2px;width:14px;height:14px;border-radius:var(--radius-full);border:2.5px solid var(--bg-card);transition:all .2s ease}.chat-status-indicator.chat-status-online{background:var(--accent-success);animation:chat-pulse-online 2s ease-in-out infinite}.chat-status-indicator.chat-status-offline{background:var(--text-muted)}.chat-conversation-info{flex:1;min-width:0}.chat-conversation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.chat-conversation-name{font-weight:600;color:var(--text-primary);font-size:.9375rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}.chat-conversation-time{font-size:.75rem;color:var(--text-muted);flex-shrink:0;margin-left:var(--spacing-sm)}.chat-conversation-email{display:block;font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4;margin-top:-2px}.chat-conversation-preview{font-size:.8125rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.chat-unread-badge{min-width:22px;height:22px;padding:0 7px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;border-radius:var(--radius-full);font-size:.75rem;font-weight:700;display:flex;align-items:center;justify-content:center;animation:chat-scale-in .3s ease-out;box-shadow:0 2px 6px #0891b24d}.chat-main{flex:1;display:flex;flex-direction:column;background:var(--bg-secondary);min-width:0;animation:chat-fade-in .4s ease-out}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-xl);background:var(--bg-card);border-bottom:1px solid var(--border-primary);min-height:72px}.chat-header-info{display:flex;align-items:center;gap:var(--spacing-md)}.chat-header-avatar{width:44px;height:44px;border-radius:var(--radius-full);object-fit:cover;background:var(--bg-tertiary);border:2px solid var(--accent-light)}.chat-header-details{display:flex;flex-direction:column;gap:2px}.chat-header-details h3{margin:0;font-size:1.0625rem;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.chat-header-status{font-size:.8125rem;color:var(--text-muted);display:flex;align-items:center;gap:6px}.chat-header-status:before{content:"";width:8px;height:8px;border-radius:var(--radius-full);background:var(--text-muted);transition:all .2s ease}.chat-header-status.chat-header-status-online{color:var(--accent-success)}.chat-header-status.chat-header-status-online:before{background:var(--accent-success);animation:chat-pulse-online 2s ease-in-out infinite}.chat-header-actions{display:flex;gap:var(--spacing-xs)}.chat-header-btn{width:40px;height:40px;border:none;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);font-size:.9375rem}.chat-header-btn:hover{background:var(--accent-light);color:var(--accent-primary);transform:translateY(-2px)}.chat-header-btn:active{transform:translateY(0)}.chat-header-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.chat-messages{flex:1;overflow-y:auto;padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm);scroll-behavior:smooth;background:linear-gradient(180deg,var(--bg-secondary) 0%,transparent 20px),linear-gradient(0deg,var(--bg-secondary) 0%,transparent 20px),var(--bg-secondary);background-attachment:local,local,scroll}.chat-messages-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);text-align:center;padding:var(--spacing-2xl);animation:chat-fade-in .5s ease-out}.chat-messages-empty-icon{font-size:4rem;margin-bottom:var(--spacing-lg);opacity:.2;animation:chat-float 3s ease-in-out infinite;color:var(--accent-primary)}.chat-messages-empty h3{margin:0 0 var(--spacing-sm) 0;color:var(--text-secondary);font-size:1.25rem;font-weight:600}.chat-messages-empty p{margin:0;font-size:.9375rem;max-width:280px;line-height:1.5}.chat-date-separator{display:flex;align-items:center;gap:var(--spacing-lg);margin:var(--spacing-lg) 0;animation:chat-fade-in .3s ease-out}.chat-date-separator:before,.chat-date-separator:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--border-primary),transparent)}.chat-date-separator span{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;font-weight:500;padding:var(--spacing-xs) var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-full)}[data-theme=dark] .chat-date-separator span{color:#cbd5e1}.chat-message{display:flex;gap:var(--spacing-sm);max-width:65%;animation-fill-mode:both;width:fit-content}.chat-message.chat-message-sent{align-self:flex-end;flex-direction:row-reverse;margin-left:auto;margin-right:0;animation:chat-slide-in-right .3s cubic-bezier(.4,0,.2,1)}.chat-message.chat-message-received{align-self:flex-start;margin-right:auto;margin-left:0;animation:chat-slide-in-left .3s cubic-bezier(.4,0,.2,1)}.chat-message-avatar{width:36px;height:36px;border-radius:var(--radius-full);object-fit:cover;flex-shrink:0;align-self:flex-end;border:2px solid var(--bg-card)}.chat-message-content{display:flex;flex-direction:column;gap:6px}.chat-message-bubble{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);font-size:.9375rem;line-height:1.55;word-wrap:break-word;position:relative;transition:all .2s ease}.chat-message-sent .chat-message-bubble{background:linear-gradient(135deg,#25d366,#128c7e);color:#fff;border-radius:18px 18px 4px;box-shadow:0 2px 8px #25d36640}.chat-message-sent .chat-message-bubble:hover{box-shadow:0 4px 12px #25d36659;transform:translateY(-1px)}.chat-message-received .chat-message-bubble{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:18px 18px 18px 4px;box-shadow:0 1px 3px #0000000d}.chat-message-received .chat-message-bubble:hover{border-color:var(--border-secondary);box-shadow:0 2px 8px #00000014}.chat-message-meta{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.6875rem;color:var(--text-secondary);padding:0 4px}.chat-message-sent .chat-message-meta{justify-content:flex-end}.chat-message-received .chat-message-meta{justify-content:flex-start}.chat-message-status{font-size:.75rem;transition:color .2s ease;color:var(--text-secondary)}.chat-message-status.chat-message-read{color:#34b7f1}[data-theme=dark] .chat-message-meta,[data-theme=dark] .chat-message-status{color:#cbd5e1}[data-theme=dark] .chat-message-status.chat-message-read{color:#38bdf8}.chat-typing-indicator{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);color:var(--text-muted);font-size:.8125rem;animation:chat-fade-in .3s ease-out;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-primary);width:fit-content;margin-top:var(--spacing-xs)}.chat-typing-dots{display:flex;gap:4px;padding:4px 0}.chat-typing-dot{width:7px;height:7px;border-radius:var(--radius-full);background:var(--accent-primary);animation:chat-typing-bounce 1.2s ease-in-out infinite}.chat-typing-dot:nth-child(1){animation-delay:0s}.chat-typing-dot:nth-child(2){animation-delay:.15s}.chat-typing-dot:nth-child(3){animation-delay:.3s}.chat-input-area{padding:var(--spacing-md) var(--spacing-xl) var(--spacing-lg);background:var(--bg-card);border-top:1px solid var(--border-primary)}.chat-input-wrapper{display:flex;align-items:flex-end;gap:var(--spacing-sm);background:var(--bg-input);border:2px solid var(--border-primary);border-radius:var(--radius-xl);padding:var(--spacing-xs) var(--spacing-sm);transition:all .25s cubic-bezier(.4,0,.2,1)}.chat-input-wrapper:hover{border-color:var(--border-secondary)}.chat-input-wrapper:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 4px var(--accent-light);background:var(--bg-card)}.chat-input-actions{display:flex;gap:2px;padding-bottom:4px}.chat-input-btn{width:38px;height:38px;border:none;background:transparent;color:var(--text-muted);border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);font-size:1rem}.chat-input-btn:hover{background:var(--bg-hover);color:var(--accent-primary);transform:scale(1.1)}.chat-input-btn:active{transform:scale(.95)}.chat-input-field{flex:1;border:none;background:transparent;color:var(--text-primary);font-size:.9375rem;padding:10px 8px;resize:none;min-height:40px;max-height:120px;line-height:1.5;font-family:inherit}.chat-input-field:focus{outline:none}.chat-input-field::placeholder{color:var(--text-muted)}.chat-send-btn{width:44px;height:44px;border:none;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;border-radius:var(--radius-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);flex-shrink:0;font-size:1rem;box-shadow:0 2px 8px #0891b24d;margin-bottom:2px}.chat-send-btn:hover:not(:disabled){transform:scale(1.08) translateY(-2px);box-shadow:0 4px 16px #0891b266}.chat-send-btn:active:not(:disabled){animation:chat-send-pulse .3s ease}.chat-send-btn:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed;box-shadow:none}.chat-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-secondary);color:var(--text-muted);text-align:center;padding:var(--spacing-2xl);animation:chat-fade-in .5s ease-out}.chat-empty-state-icon{font-size:5rem;margin-bottom:var(--spacing-xl);opacity:.15;color:var(--accent-primary);animation:chat-float 3s ease-in-out infinite}.chat-empty-state h2{margin:0 0 var(--spacing-sm) 0;color:var(--text-secondary);font-size:1.5rem;font-weight:700;letter-spacing:-.025em}.chat-empty-state p{margin:0;font-size:1rem;max-width:320px;line-height:1.6}.chat-mobile-toggle{display:none;width:42px;height:42px;border:none;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);font-size:1rem}.chat-mobile-toggle:hover{background:var(--accent-light);color:var(--accent-primary);transform:scale(1.05)}.chat-mobile-toggle:active{transform:scale(.95)}.chat-sidebar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:99;opacity:0;visibility:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.chat-sidebar-overlay.chat-sidebar-overlay-visible{opacity:1;visibility:visible}@media (max-width: 1024px){.chat-sidebar{width:300px;min-width:300px}.chat-message{max-width:75%}.chat-header{padding:var(--spacing-md) var(--spacing-lg)}.chat-messages{padding:var(--spacing-lg)}.chat-input-area{padding:var(--spacing-md) var(--spacing-lg)}}@media (max-width: 768px){.chat-page{position:relative;border-radius:0}.chat-sidebar{position:absolute;left:0;top:0;bottom:0;z-index:100;width:85%;max-width:340px;transform:translate(-100%);box-shadow:var(--shadow-xl);transition:transform .35s cubic-bezier(.4,0,.2,1)}.chat-sidebar.chat-sidebar-open{transform:translate(0)}.chat-mobile-toggle{display:flex}.chat-message{max-width:85%}.chat-header{padding:var(--spacing-sm) var(--spacing-md);min-height:64px}.chat-header-avatar{width:40px;height:40px}.chat-header-details h3{font-size:1rem}}@media (max-width: 576px){.chat-header{padding:var(--spacing-sm) var(--spacing-md)}.chat-messages{padding:var(--spacing-md);gap:var(--spacing-xs)}.chat-input-area{padding:var(--spacing-sm) var(--spacing-md)}.chat-input-wrapper{padding:var(--spacing-xs)}.chat-message{max-width:90%}.chat-message-bubble{padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem}.chat-header-actions{gap:2px}.chat-header-btn{width:36px;height:36px;font-size:.875rem}.chat-send-btn{width:40px;height:40px}.chat-input-btn{width:34px;height:34px}.chat-avatar-image,.chat-avatar-placeholder{width:46px;height:46px}.chat-avatar-placeholder{font-size:1rem}.chat-sidebar-header{padding:var(--spacing-sm)}.chat-sidebar-header-top{flex-wrap:wrap;gap:4px}.chat-header-stats{font-size:.6875rem}.chat-filter-tab{padding:6px 8px;font-size:.6875rem;gap:4px}.chat-filter-tab svg{font-size:.625rem}.chat-filter-count{font-size:.5625rem;padding:1px 4px}.chat-status-filter-trigger{padding:6px 10px;font-size:.75rem}.chat-status-option{padding:8px 10px;font-size:.75rem}}.chat-messages::-webkit-scrollbar,.chat-conversation-list::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track,.chat-conversation-list::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb,.chat-conversation-list::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:var(--radius-full);transition:background .2s ease}.chat-messages::-webkit-scrollbar-thumb:hover,.chat-conversation-list::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.chat-messages,.chat-conversation-list{scrollbar-width:thin;scrollbar-color:var(--border-secondary) transparent}.chat-conversation-item:focus-visible,.chat-header-btn:focus-visible,.chat-input-btn:focus-visible,.chat-send-btn:focus-visible,.chat-mobile-toggle:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.chat-skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-hover) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:chat-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md)}.chat-skeleton-avatar{width:52px;height:52px;border-radius:var(--radius-full)}.chat-skeleton-text{height:14px;border-radius:var(--radius-sm)}.chat-skeleton-text.chat-skeleton-text-short{width:60%}.chat-skeleton-text.chat-skeleton-text-long{width:90%}.chat-file-preview-area{display:flex;flex-wrap:wrap;gap:12px;padding:16px;background:linear-gradient(to bottom,var(--bg-tertiary),var(--bg-secondary));border-bottom:1px solid var(--border-primary);animation:chat-slide-up .2s ease;align-items:flex-start}@keyframes chat-slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-file-preview-item{position:relative;display:flex;flex-direction:column;align-items:center;width:100px;padding:8px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:0 2px 8px #00000014;transition:all .2s ease;animation:chat-scale-in .2s ease}.chat-file-preview-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f;border-color:var(--accent-primary)}.chat-file-preview-image{width:80px;height:80px;object-fit:cover;border-radius:var(--radius-md);border:2px solid var(--bg-tertiary)}.chat-file-preview-icon{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-tertiary),var(--bg-secondary));border-radius:var(--radius-md);color:var(--accent-primary);font-size:2rem}.chat-file-preview-info{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:8px;width:100%;text-align:center}.chat-file-preview-name{font-size:.6875rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90px}.chat-file-preview-size{font-size:.625rem;color:var(--text-muted);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-full)}.chat-file-preview-remove{position:absolute;top:-8px;right:-8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ff4757,#ff6b81);color:#fff;border:2px solid var(--bg-primary);border-radius:var(--radius-full);cursor:pointer;font-size:.75rem;transition:all .2s ease;box-shadow:0 2px 8px #ff475766;z-index:10}.chat-file-preview-remove:hover{background:linear-gradient(135deg,#ee3b4d,#ff4757);transform:scale(1.15) rotate(90deg);box-shadow:0 4px 12px #ff475780}.chat-file-preview-remove:active{transform:scale(1.05) rotate(90deg)}.chat-file-preview-remove:disabled{opacity:.5;cursor:not-allowed;transform:none}.chat-file-preview-header{display:flex;align-items:center;justify-content:space-between;width:100%;flex-basis:100%;margin-bottom:4px;padding-bottom:12px;border-bottom:1px solid var(--border-primary)}.chat-file-preview-title{font-size:.8125rem;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.chat-file-preview-count{background:var(--accent-primary);color:#fff;font-size:.6875rem;padding:2px 8px;border-radius:var(--radius-full);font-weight:600}.chat-file-preview-clear-all{font-size:.75rem;color:var(--error);background:transparent;border:1px solid var(--error);padding:4px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.chat-file-preview-clear-all:hover{background:var(--error);color:#fff}.chat-file-uploading-indicator{display:inline-flex;align-items:center;gap:6px;margin-left:8px;font-size:.75rem;color:var(--accent-primary);animation:chat-pulse 1.5s ease-in-out infinite}.chat-file-preview-error{background:#ef44441a;border-color:var(--error)}.chat-file-preview-error .chat-file-preview-size{color:var(--error)}.chat-file-preview-image-wrapper{position:relative;overflow:hidden;border-radius:var(--radius-sm)}.chat-file-upload-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:#00000080;color:#fff;font-size:1.25rem}.chat-file-progress-bar{position:relative;width:100%;height:3px;background:var(--bg-tertiary);border-radius:2px;overflow:hidden;margin-top:4px}.chat-file-progress-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary, #4facfe));border-radius:2px;transition:width .15s ease}.chat-upload-progress{position:relative;height:24px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary);overflow:hidden}.chat-upload-progress-bar{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary, #4facfe));transition:width .2s ease}.chat-upload-progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.75rem;font-weight:500;color:var(--text-primary);z-index:1}.chat-attachments{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.chat-attachment-item{max-width:280px}.chat-attachment-image{position:relative;cursor:pointer;border-radius:var(--radius-md);overflow:hidden}.chat-attachment-image img{display:block;max-width:100%;max-height:200px;object-fit:cover;border-radius:var(--radius-md);transition:transform .2s ease}.chat-attachment-image:hover img{transform:scale(1.02)}.chat-attachment-image-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0000004d;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease;color:#fff;font-size:1.5rem}.chat-attachment-image:hover .chat-attachment-image-overlay{opacity:1}.chat-attachment-video{max-width:280px}.chat-attachment-video video{display:block;max-width:100%;max-height:200px;border-radius:var(--radius-md)}.chat-attachment-audio{display:flex;flex-direction:column;gap:4px;padding:8px;background:var(--bg-tertiary);border-radius:var(--radius-md)}.chat-attachment-audio audio{width:100%;height:36px}.chat-attachment-audio-name{font-size:.75rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-attachment-file{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease}.chat-attachment-file:hover{background:var(--bg-hover)}.chat-attachment-file-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--accent-primary);color:#fff;border-radius:var(--radius-sm);font-size:1.125rem}.chat-attachment-file-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chat-attachment-file-name{font-size:.875rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-attachment-file-size{font-size:.75rem;color:var(--text-muted)}.chat-attachment-download-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.chat-attachment-download-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.chat-lightbox{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:10000;animation:chat-fade-in .2s ease}.chat-lightbox img{max-width:90%;max-height:90%;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 10px 40px #00000080}.chat-lightbox-close{position:absolute;top:20px;right:20px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:none;border-radius:var(--radius-full);color:#fff;font-size:1.25rem;cursor:pointer;transition:all .2s ease}.chat-lightbox-close:hover{background:#fff3;transform:scale(1.1)}.chat-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:#ffffff26;border:none;border-radius:var(--radius-full);color:#fff;font-size:1.25rem;cursor:pointer;transition:all .2s ease;z-index:10001;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.chat-lightbox-nav:hover{background:#ffffff4d;transform:translateY(-50%) scale(1.1)}.chat-lightbox-nav:active{transform:translateY(-50%) scale(.95)}.chat-lightbox-prev{left:20px}.chat-lightbox-next{right:20px}.chat-lightbox-counter{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#0009;color:#fff;padding:8px 16px;border-radius:var(--radius-full);font-size:.875rem;font-weight:500}.chat-lightbox-image-container{position:relative;display:flex;align-items:center;justify-content:center;max-width:90%;max-height:90%}.chat-lightbox-image{max-width:100%;max-height:90vh;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 10px 40px #00000080;transition:opacity .2s ease}.chat-lightbox-image-active{animation:chat-lightbox-fade-in .15s ease-out}@keyframes chat-lightbox-fade-in{0%{opacity:.7;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.chat-lightbox-loading{position:absolute;display:flex;align-items:center;justify-content:center;color:#fff;z-index:1}.chat-lightbox-error{position:absolute;display:flex;align-items:center;justify-content:center;color:#ff6b6b;font-size:1rem;padding:20px;background:#00000080;border-radius:var(--radius-md)}.chat-lightbox .chat-lightbox-image-container img{max-width:100%;max-height:90vh}.chat-image-grid{display:grid;gap:4px;border-radius:var(--radius-md);overflow:hidden;max-width:320px}.chat-image-grid-1{grid-template-columns:1fr}.chat-image-grid-1 .chat-grid-image-item img{max-height:280px;width:100%;object-fit:cover}.chat-image-grid-2{grid-template-columns:1fr 1fr}.chat-image-grid-2 .chat-grid-image-item img{height:150px;width:100%;object-fit:cover}.chat-image-grid-3{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.chat-image-grid-3 .chat-grid-image-item:first-child{grid-row:span 2}.chat-image-grid-3 .chat-grid-image-item:first-child img{height:100%;min-height:200px}.chat-image-grid-3 .chat-grid-image-item img{height:100px;width:100%;object-fit:cover}.chat-image-grid-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.chat-image-grid-4 .chat-grid-image-item img{height:120px;width:100%;object-fit:cover}.chat-grid-image-item{position:relative;cursor:pointer;overflow:hidden;background:var(--bg-tertiary);min-height:80px}.chat-grid-image-item img{display:block;width:100%;transition:transform .2s ease,opacity .3s ease}.chat-grid-image-item:hover img{transform:scale(1.05)}.chat-grid-image-loading{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);color:var(--accent-primary);font-size:1.5rem;z-index:1}.chat-grid-image-error{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--bg-tertiary);color:var(--text-muted);font-size:.75rem;z-index:1}.chat-grid-image-error svg{font-size:1.5rem;opacity:.5}.chat-grid-image-more .chat-grid-image-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center}.chat-grid-image-overlay span{color:#fff;font-size:1.75rem;font-weight:600}@media (max-width: 768px){.chat-file-preview-area{padding:12px;gap:10px}.chat-file-preview-item{width:80px;padding:6px}.chat-file-preview-image,.chat-file-preview-icon{width:60px;height:60px;font-size:1.5rem}.chat-file-preview-name{font-size:.625rem;max-width:70px}.chat-file-preview-size{font-size:.5625rem}.chat-file-preview-remove{width:22px;height:22px;top:-6px;right:-6px}.chat-file-preview-header{padding-bottom:8px;margin-bottom:2px}.chat-file-preview-title{font-size:.75rem}.chat-file-preview-clear-all{font-size:.6875rem;padding:3px 8px}.chat-attachment-item{max-width:220px}.chat-attachment-image img,.chat-attachment-video video{max-height:160px}}.emoji-picker-wrapper{position:relative;display:inline-flex}.emoji-toggle-btn{transition:background-color .2s,transform .1s}.emoji-toggle-btn:hover{background-color:#0000000d}.emoji-toggle-btn:active{transform:scale(.95)}.emoji-toggle-btn:disabled{opacity:.4;cursor:not-allowed}.emoji-picker-dropdown{position:absolute;z-index:1000;animation:chat-scale-in .15s ease-out}.emoji-picker-dropdown.emoji-picker-top{bottom:100%;right:0;margin-bottom:10px}.emoji-picker-dropdown.emoji-picker-bottom{top:100%;right:0;margin-top:10px}.emoji-picker-container{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;border:1px solid #e5e7eb;width:320px;max-height:400px;display:flex;flex-direction:column;overflow:hidden}.emoji-picker-search{display:flex;align-items:center;padding:10px 12px;border-bottom:1px solid #e5e7eb;gap:8px}.emoji-picker-search-icon{color:#9ca3af;font-size:14px}.emoji-picker-search-input{flex:1;border:none;outline:none;font-size:14px;background:transparent;color:#333}.emoji-picker-search-input::placeholder{color:#9ca3af}.emoji-picker-search-clear{background:none;border:none;cursor:pointer;color:#9ca3af;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s,color .2s}.emoji-picker-search-clear:hover{background-color:#f3f4f6;color:#666}.emoji-picker-categories{display:flex;padding:8px 12px;gap:4px;border-bottom:1px solid #e5e7eb;overflow-x:auto}.emoji-picker-category-btn{background:none;border:none;cursor:pointer;padding:6px 8px;border-radius:6px;color:#6b7280;transition:background-color .2s,color .2s;display:flex;align-items:center;justify-content:center;font-size:14px}.emoji-picker-category-btn:hover{background-color:#f3f4f6;color:#333}.emoji-picker-category-btn.active{background-color:#e0e7ff;color:#4f46e5}.emoji-picker-category-title{padding:8px 12px 4px;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.emoji-picker-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:8px;overflow-y:auto;max-height:250px}.emoji-picker-emoji{background:none;border:none;cursor:pointer;font-size:22px;padding:6px;border-radius:6px;transition:background-color .15s,transform .1s;display:flex;align-items:center;justify-content:center;line-height:1}.emoji-picker-emoji:hover{background-color:#f3f4f6;transform:scale(1.15)}.emoji-picker-emoji:active{transform:scale(.95)}.emoji-picker-empty{grid-column:1 / -1;text-align:center;padding:24px;color:#9ca3af;font-size:14px}.chat-message-bubble.emoji-only{background:transparent!important;padding:4px 0;line-height:1.2;box-shadow:none}.chat-message-bubble.emoji-only.emoji-single{font-size:64px}.chat-message-bubble.emoji-only.emoji-double{font-size:52px}.chat-message-bubble.emoji-only.emoji-triple{font-size:42px}.chat-message-bubble.emoji-only:not(.emoji-single):not(.emoji-double):not(.emoji-triple){font-size:32px}.chat-message-sent .chat-message-bubble.emoji-only,.chat-message-received .chat-message-bubble.emoji-only{background:transparent!important}@media (max-width: 768px){.emoji-picker-dropdown{position:fixed;bottom:80px;left:10px;right:10px;margin-bottom:0}.emoji-picker-dropdown.emoji-picker-top,.emoji-picker-dropdown.emoji-picker-bottom{bottom:80px;top:auto;right:10px;left:10px}.emoji-picker-container{width:100%;max-width:100%}.emoji-picker-grid{grid-template-columns:repeat(8,1fr)}}.notification-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.notification-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.notification-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.notification-list-page .header-actions .btn-icon{width:35px;height:35px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.notification-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.notification-list-page .date-filter-group{display:flex;align-items:center;gap:6px;flex-shrink:0}.notification-list-page .date-label{font-size:.8125rem;font-weight:500;color:var(--text-secondary);white-space:nowrap}.notification-list-page .date-filter-group .dp-wrapper{width:150px}.notification-list-page .date-filter-group .dp-input{height:36px}.notification-list-page .header-actions .btn-danger{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;font-size:.8125rem;font-weight:500;flex-shrink:0}.notification-list-page .header-actions .btn-danger:disabled{opacity:.5;cursor:not-allowed}.notification-list-page th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.notification-list-page .sort-icon{margin-left:6px;font-size:.75rem;color:var(--text-muted)}.notification-list-page th.sortable:hover .sort-icon{opacity:1}.notification-list-page .th-actions{text-align:center;min-width:80px}.notification-list-page .link-primary{color:var(--accent-primary);text-decoration:none;cursor:pointer;text-transform:capitalize}.notification-list-page .link-primary:hover{text-decoration:underline}.notification-list-page .action-buttons{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs)}.notification-list-page .btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.notification-list-page .btn-icon:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-secondary)}.notification-list-page .btn-icon.danger:hover{background:#ef44441a;color:var(--accent-danger);border-color:var(--accent-danger)}@media (max-width: 1200px){.notification-list-page .date-input{min-width:120px}}@media (max-width: 1024px){.notification-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.notification-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}}@media (max-width: 768px){.notification-list-page .card-header{flex-direction:column;align-items:stretch}.notification-list-page .header-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}}@media (max-width: 576px){.notification-list-page .header-actions .btn span{display:none}.notification-list-page .header-actions .btn{padding:var(--spacing-sm)}.notification-list-page .date-filter-group{flex:1}.notification-list-page .date-input{min-width:0;width:100%}}.notification-list-page .empty-state{text-align:center;padding:var(--spacing-3xl)}.notification-list-page .empty-state .empty-icon{width:80px;height:80px;background:var(--bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--spacing-lg);font-size:2rem;color:var(--text-muted)}.notification-list-page .empty-state h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.notification-list-page .empty-state p{color:var(--text-muted);margin:0}.notification-list-page .loading-state{text-align:center;padding:var(--spacing-3xl)}.notification-list-page .loading-state .spinner-lg{width:40px;height:40px;border:3px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto var(--spacing-md)}.notification-list-page .loading-state p{color:var(--text-muted);margin:0}.notification-list-page .data-table .td-center,.notification-list-page .data-table .th-center{text-align:center}.notification-list-page .data-table tr.row-unread td{background:var(--bg-subtle, rgba(0, 122, 255, .04));font-weight:500}.notification-list-page .data-table tr.row-read .notification-text{color:var(--text-muted)}.notification-list-page .notification-text.clickable{cursor:pointer}.notification-list-page .notification-text.clickable:hover{text-decoration:underline;color:var(--accent-primary)}.cron-jobs-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.cron-jobs-page .card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-primary);box-shadow:0 2px 12px #0000000f;overflow:visible}.cron-jobs-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.cron-jobs-page .search-box{position:relative;flex:1;max-width:360px}.cron-jobs-page .search-box .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}.cron-jobs-page .search-box .form-control{width:100%;padding:8px 12px 8px 36px;background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem}.cron-jobs-page .search-box .form-control:focus{outline:none;border-color:var(--border-focus)}.cron-jobs-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.cron-jobs-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.cron-jobs-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.cron-jobs-page .card-body{padding:0;overflow:visible}.cron-jobs-page .table-responsive,.cron-history-modal-body .table-responsive{overflow-x:auto}.cron-jobs-page .data-table,.cron-history-modal-body .data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem}.cron-jobs-page .data-table thead,.cron-history-modal-body .data-table thead{background:var(--bg-tertiary)}.cron-jobs-page .data-table th,.cron-history-modal-body .data-table th{padding:var(--spacing-md) var(--spacing-sm);text-align:left;font-weight:600;color:var(--text-primary);white-space:nowrap;font-size:.8125rem;border-bottom:1px solid var(--border-primary)}.cron-jobs-page .data-table th.th-center,.cron-history-modal-body .data-table th.th-center{text-align:center}.cron-jobs-page .data-table th.sortable,.cron-history-modal-body .data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.cron-jobs-page .data-table th.sortable:hover,.cron-history-modal-body .data-table th.sortable:hover{background:var(--bg-secondary);color:var(--accent-primary)}.cron-jobs-page .data-table th .sort-icon,.cron-history-modal-body .data-table th .sort-icon{margin-left:6px;font-size:.7rem;opacity:.5}.cron-jobs-page .data-table th.sortable:hover .sort-icon,.cron-history-modal-body .data-table th.sortable:hover .sort-icon{opacity:1}.cron-jobs-page .data-table tbody tr,.cron-history-modal-body .data-table tbody tr{border-bottom:1px solid var(--border-primary);transition:background .15s ease}.cron-jobs-page .data-table tbody tr:hover,.cron-history-modal-body .data-table tbody tr:hover{background:var(--bg-secondary)}.cron-jobs-page .data-table td,.cron-history-modal-body .data-table td{padding:var(--spacing-md) var(--spacing-sm);vertical-align:middle;color:var(--text-secondary);border-bottom:1px solid var(--border-primary)}.cron-jobs-page .data-table td.td-center,.cron-history-modal-body .data-table td.td-center{text-align:center}.cron-jobs-page .job-name{font-weight:600;color:var(--text-primary)}.cron-jobs-page .job-description{color:var(--text-secondary);font-size:.8125rem;max-width:360px}.cron-jobs-page .cron-expr{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);padding:2px 6px;font-size:.75rem;color:var(--text-primary);white-space:nowrap}.cron-jobs-page .text-muted,.cron-history-modal-body .text-muted{color:var(--text-muted, var(--text-secondary))}.cron-jobs-page .action-buttons{display:flex;gap:var(--spacing-xs);justify-content:center}.cron-jobs-page .action-buttons .btn-icon{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;font-size:.8125rem}.cron-jobs-page .action-buttons .btn-icon:hover:not(:disabled){background:var(--bg-secondary);color:var(--accent-primary);border-color:var(--accent-primary)}.cron-jobs-page .action-buttons .btn-icon.success:hover:not(:disabled){background:var(--accent-success-light);color:var(--accent-success);border-color:var(--accent-success)}.cron-jobs-page .action-buttons .btn-icon.warning:hover:not(:disabled){background:var(--accent-warning-light);color:var(--accent-warning);border-color:var(--accent-warning)}.cron-jobs-page .action-buttons .btn-icon:disabled{opacity:.5;cursor:not-allowed}.cron-jobs-page .status-badge,.cron-history-modal-body .status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;text-transform:capitalize;white-space:nowrap}.cron-jobs-page .status-badge.success,.cron-history-modal-body .status-badge.success{background:var(--accent-success-light);color:var(--accent-success)}.cron-jobs-page .status-badge.danger,.cron-history-modal-body .status-badge.danger{background:var(--accent-danger-light);color:var(--accent-danger)}.cron-jobs-page .status-badge.processing,.cron-history-modal-body .status-badge.processing{background:var(--accent-info-light);color:var(--accent-info)}.cron-jobs-page .status-badge.pending,.cron-history-modal-body .status-badge.pending{background:var(--accent-warning-light);color:var(--accent-warning)}.cron-jobs-page .status-badge.neutral,.cron-history-modal-body .status-badge.neutral{background:var(--bg-tertiary);color:var(--text-secondary)}.cron-jobs-page .empty-state,.cron-history-modal-body .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) var(--spacing-md);text-align:center;min-height:200px;color:var(--text-secondary)}.cron-jobs-page .empty-state .empty-icon{font-size:3rem;color:var(--text-muted);opacity:.5;margin-bottom:var(--spacing-md)}.cron-jobs-page .empty-state h3{color:var(--text-primary);margin-bottom:6px}.cron-jobs-page .empty-state p,.cron-history-modal-body .empty-state p{color:var(--text-muted, var(--text-secondary));margin:0}.cron-history-modal-body{display:flex;flex-direction:column;gap:var(--spacing-sm)}.cron-history-modal-body .card-footer{background:transparent;border-top:1px solid var(--border-primary);border-radius:0;padding:var(--spacing-sm) 0 0 0;margin-top:var(--spacing-sm)}.cron-interval-modal-body .hint{color:var(--text-secondary);font-size:.8125rem;margin-bottom:var(--spacing-md)}.cron-interval-modal-body .hint code{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);padding:1px 5px;font-size:.75rem}@media (max-width: 992px){.cron-jobs-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.cron-jobs-page .header-actions{flex-wrap:wrap;justify-content:flex-end}}@media (max-width: 768px){.cron-jobs-page .card-header{flex-direction:column;align-items:stretch}.cron-jobs-page .search-box{max-width:none}.cron-jobs-page .header-actions{width:100%;justify-content:flex-end}.cron-jobs-page .card-footer,.cron-history-modal-body .card-footer{flex-direction:column}.cron-jobs-page .footer-info,.cron-history-modal-body .footer-info{width:100%;flex-direction:column;gap:var(--spacing-sm);text-align:center}.cron-jobs-page .pagination,.cron-history-modal-body .pagination{width:100%;justify-content:center}.cron-jobs-page .data-table,.cron-history-modal-body .data-table{font-size:.8125rem}.cron-jobs-page .data-table th,.cron-history-modal-body .data-table th{font-size:.75rem}.cron-jobs-page .action-buttons .btn-icon{width:28px;height:28px;font-size:.75rem}}.event-list-page{padding:var(--spacing-sm);display:flex;flex-direction:column;gap:12px}.event-list-page .card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;overflow:hidden}.event-list-page .card-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.event-list-page .card-header .search-box{width:auto;min-width:100px;max-width:none}.event-list-page .header-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--spacing-sm);flex-shrink:0}.event-list-page .card-header .search-box .form-control{height:36px}.event-list-page .header-actions .basic-select{width:140px}.event-list-page .header-actions .basic-select .select-control{height:36px}.event-list-page .header-actions .dp-wrapper{width:140px}.event-list-page .header-actions .dp-input{height:36px}.event-list-page .date-filter-group{display:flex;align-items:center;gap:6px;flex-shrink:0}.event-list-page .date-filter-group .date-label{font-size:12px;color:var(--text-secondary);white-space:nowrap}.event-list-page .header-actions .btn-icon{width:36px;height:36px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.event-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.event-list-page .card-body{padding:0}.event-list-page .table-responsive{width:100%;overflow-x:auto}.event-list-page .event-table{width:100%;border-collapse:collapse;font-size:13px}.event-list-page .event-table th,.event-list-page .event-table td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--border-primary);vertical-align:top;color:var(--text-primary)}.event-list-page .event-table th:first-child,.event-list-page .event-table td:first-child{padding-left:var(--spacing-lg)}.event-list-page .event-table th:last-child,.event-list-page .event-table td:last-child{padding-right:var(--spacing-lg)}.event-list-page .event-table thead th{background:var(--bg-tertiary, var(--bg-primary));color:var(--text-secondary);font-weight:600;white-space:nowrap;position:sticky;top:0;z-index:1}.event-list-page .event-table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.event-list-page .event-table th.th-sortable .sort-icon{margin-left:6px;opacity:.5}.event-list-page .event-table th.th-sorted .sort-icon{opacity:1;color:var(--accent-primary)}.event-list-page .event-table tbody tr:hover{background:var(--bg-hover, rgba(127, 127, 127, .08))}.event-list-page .evt-type-chip{display:inline-block;padding:2px 8px;border-radius:4px;background:var(--bg-primary);border:1px solid var(--border-primary);color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.3px;white-space:nowrap}.event-list-page .evt-entity{color:var(--text-secondary);white-space:nowrap}.event-list-page .evt-muted{color:var(--text-muted, var(--text-secondary));opacity:.6}.event-list-page .evt-performer{display:flex;flex-direction:column;gap:2px}.event-list-page .evt-performer-name{color:var(--text-primary)}.event-list-page .evt-actor{display:inline-block;width:fit-content;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}.event-list-page .evt-actor-admin{background:#6366f126;color:#6366f1}.event-list-page .evt-actor-instructor{background:#0ea5e926;color:#0ea5e9}.event-list-page .evt-actor-candidate{background:#22c55e26;color:#16a34a}.event-list-page .evt-actor-system{background:#6b72802e;color:#6b7280}.event-list-page .evt-actor-api{background:#a855f726;color:#a855f7}.event-list-page .evt-status{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:capitalize;white-space:nowrap}.event-list-page .evt-status-success{background:#22c55e26;color:#16a34a}.event-list-page .evt-status-fail{background:#ef444426;color:#ef4444}.event-list-page .evt-status-pending{background:#eab3082e;color:#ca8a04}.event-list-page .evt-status-exception{background:#f973162e;color:#f97316}.event-list-page .evt-status-info{background:#6b728026;color:#6b7280}.event-list-page .evt-message{color:var(--text-primary);word-break:break-word}.event-list-page .evt-message.clickable{color:var(--accent-primary);cursor:pointer;text-decoration:none}.event-list-page .evt-message.clickable:hover{text-decoration:underline}.event-list-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 16px;color:var(--text-secondary)}.event-list-page .empty-state .empty-icon{font-size:36px;opacity:.4}@media (max-width: 1200px){.event-list-page .header-actions .basic-select,.event-list-page .header-actions .dp-wrapper{width:125px}}@media (max-width: 1024px){.event-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.event-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}}@media (max-width: 768px){.event-list-page .card-header{flex-direction:column;align-items:stretch}.event-list-page .card-header .search-box{max-width:none}.event-list-page .header-actions{width:100%;justify-content:flex-start}}@media (max-width: 576px){.event-list-page .header-actions{gap:var(--spacing-xs) var(--spacing-sm)}.event-list-page .header-actions .basic-select,.event-list-page .header-actions .date-filter-group{flex:1 1 140px;width:auto;min-width:0}.event-list-page .header-actions .date-filter-group .dp-wrapper{flex:1;width:auto}}.manual-list-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.manual-list-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.manual-list-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.manual-list-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.manual-list-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.manual-list-page .view-toggle{display:flex;background:var(--bg-secondary);border-radius:var(--radius-md);padding:2px;border:1px solid var(--border-primary)}.manual-list-page .toggle-btn{padding:var(--spacing-xs) var(--spacing-sm);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:all .15s ease}.manual-list-page .toggle-btn:hover{color:var(--text-primary)}.manual-list-page .toggle-btn.active{background:var(--bg-primary);color:var(--accent-primary);box-shadow:0 1px 3px #0000001a}.manual-list-page .card-body{min-height:300px}.manual-list-page .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--text-muted)}.manual-list-page .spinner-lg{width:48px;height:48px;border:4px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}.manual-list-page .empty-state{padding:var(--spacing-2xl);text-align:center}.manual-list-page .empty-state .empty-icon{width:64px;height:64px;background:var(--bg-secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--spacing-lg);font-size:1.5rem;color:var(--text-muted)}.manual-list-page .empty-state h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.manual-list-page .empty-state p{color:var(--text-muted);margin:0 0 var(--spacing-lg) 0}.manual-list-page .manuals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-md)}.manual-list-page .manual-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden;transition:all .15s ease}.manual-list-page .manual-card:hover{border-color:var(--accent-primary);box-shadow:0 4px 12px #00000014}.manual-list-page .manual-card .card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary)}.manual-list-page .manual-card .card-icon{width:36px;height:36px;background:var(--accent-primary);color:#fff;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:.875rem}.manual-list-page .manual-card .card-badge{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-full);font-size:.6875rem;font-weight:500}.manual-list-page .manual-card .card-body{padding:var(--spacing-md);min-height:auto}.manual-list-page .manual-card .card-title{display:block;font-size:.9375rem;font-weight:600;color:var(--text-primary);text-decoration:none;margin-bottom:var(--spacing-sm);line-height:1.4}.manual-list-page .manual-card .card-title:hover{color:var(--accent-primary)}.manual-list-page .manual-card .card-meta{display:flex;flex-direction:column;gap:var(--spacing-xs)}.manual-list-page .manual-card .meta-item{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.75rem;color:var(--text-muted)}.manual-list-page .manual-card .meta-item svg{width:12px;color:var(--text-muted)}.manual-list-page .manual-card .card-actions{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border-top:1px solid var(--border-primary)}.manual-list-page .action-btn{display:flex;align-items:center;justify-content:center;gap:4px;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.75rem;cursor:pointer;transition:all .15s ease;text-decoration:none}.manual-list-page .action-btn:hover{background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--accent-primary)}.manual-list-page .action-btn.primary{flex:1}.manual-list-page .action-btn.danger:hover{background:var(--accent-danger-light);border-color:var(--accent-danger);color:var(--accent-danger)}.manual-list-page .table-responsive{overflow-x:auto}.manual-list-page .data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem}.manual-list-page .data-table thead{background:var(--bg-tertiary)}.manual-list-page .data-table th{padding:var(--spacing-md) var(--spacing-sm);text-align:left;font-weight:600;color:var(--text-primary);white-space:nowrap;font-size:.8125rem}.manual-list-page .data-table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.manual-list-page .data-table th.th-sortable:hover{background:var(--bg-secondary)}.manual-list-page .data-table th.th-sortable span{margin-right:6px}.manual-list-page .data-table th .sort-icon{font-size:.7rem;opacity:.5}.manual-list-page .data-table th.th-sortable:hover .sort-icon{opacity:1}.manual-list-page .data-table th.th-center,.manual-list-page .data-table th.th-actions{text-align:center}.manual-list-page .data-table tbody tr{border-bottom:1px solid var(--border-primary);transition:background .15s ease}.manual-list-page .data-table tbody tr:hover{background:var(--bg-secondary)}.manual-list-page .data-table td{padding:var(--spacing-md) var(--spacing-sm);vertical-align:middle;color:var(--text-secondary)}.manual-list-page .data-table td.td-center,.manual-list-page .data-table td.td-actions{text-align:center}.manual-list-page .name-cell{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--text-primary);text-decoration:none;font-weight:500}.manual-list-page .name-cell:hover{color:var(--accent-primary)}.manual-list-page .item-icon{width:32px;height:32px;min-width:32px;color:var(--accent-primary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:.875rem;background:var(--accent-light)}.manual-list-page .item-name{color:inherit}.manual-list-page .count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:24px;padding:0 8px;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.manual-list-page .user-link{background:none;border:none;padding:0;color:var(--accent-primary);cursor:pointer;font-size:inherit;text-decoration:none}.manual-list-page .user-link:hover{text-decoration:underline}@media (max-width: 1024px){.manual-list-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.manual-list-page .header-actions{flex-wrap:wrap;justify-content:flex-end}}@media (max-width: 768px){.manual-list-page .card-header{flex-direction:column;align-items:stretch}.manual-list-page .header-actions{width:100%;justify-content:space-between}.manual-list-page .manuals-grid{grid-template-columns:1fr}}@media (max-width: 576px){.manual-list-page .action-btn span{display:none}.manual-list-page .action-btn.primary span{display:inline}}.manual-form-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.manual-form-page .form-container{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);align-items:start}.manual-form-page .main-section{display:flex;flex-direction:column;gap:var(--spacing-lg)}.manual-form-page .card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg)}.manual-form-page .main-section .card{overflow:visible}.manual-form-page .main-section .card-header{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.manual-form-page .main-section .card-footer{border-radius:0 0 var(--radius-lg) var(--radius-lg)}.manual-form-page .content-section .card{overflow:hidden}.manual-form-page .card-header{display:block;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);background:var(--bg-secondary)}.manual-form-page .card-header .header-content{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md)}.manual-form-page .card-header .header-text{flex:1;min-width:0}.manual-form-page .card-header h2{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0;line-height:1.4}.manual-form-page .card-header p{font-size:.75rem;color:var(--text-muted);margin:2px 0 0}.manual-form-page .card-header .btn-with-icon{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 14px;font-size:.8125rem;font-weight:500;white-space:nowrap;flex-shrink:0;height:32px;border-radius:var(--radius-md)}.manual-form-page .card-header .btn-with-icon svg{font-size:.75rem}.manual-form-page .card-body{padding:var(--spacing-lg)}.manual-form-page .card-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-secondary);border-top:1px solid var(--border-primary)}.manual-form-page .form-group{margin-bottom:var(--spacing-lg)}.manual-form-page .form-group:last-child{margin-bottom:0}.manual-form-page .form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.manual-form-page .form-group .required{color:var(--accent-danger)}.manual-form-page .form-control{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:.9375rem;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);transition:all .15s ease}.manual-form-page .form-control::placeholder{color:var(--text-muted)}.manual-form-page .form-control:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.manual-form-page .form-control.error{border-color:var(--accent-danger)}.manual-form-page .error-text{display:block;color:var(--accent-danger);font-size:.75rem;margin-top:var(--spacing-xs)}.manual-form-page .form-hint{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.75rem;color:var(--text-muted);margin-top:var(--spacing-xs)}.manual-form-page .content-section .card-header .header-text{display:flex;flex-direction:column;justify-content:flex-start}.manual-form-page .section-title{display:flex;align-items:center;gap:8px;margin:0}.manual-form-page .section-title svg{color:var(--accent-primary);font-size:.875rem}.manual-form-page .section-title h2{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0;line-height:1.4}.manual-form-page .count-badge{background:var(--bg-tertiary);color:var(--text-secondary);padding:2px 8px;border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;line-height:1.4}.manual-form-page .section-hint{font-size:.75rem;color:var(--text-muted);margin:4px 0 0}.manual-form-page .content-list-body{padding:0;max-height:500px;overflow-y:auto;overflow-x:auto}.manual-form-page .content-list{padding:var(--spacing-md)}.manual-form-page .content-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);min-width:300px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm);transition:all .15s ease;cursor:grab}.manual-form-page .content-item:last-child{margin-bottom:0}.manual-form-page .content-item:hover{border-color:var(--accent-primary);background:var(--bg-primary)}.manual-form-page .content-item.dragging{opacity:.5;cursor:grabbing}.manual-form-page .content-item.drag-over{border-color:var(--accent-primary);border-style:dashed;background:var(--accent-primary-light)}.manual-form-page .drag-handle{color:var(--text-muted);cursor:grab;padding:var(--spacing-xs);flex-shrink:0}.manual-form-page .item-number{width:28px;height:28px;background:var(--accent-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;flex-shrink:0}.manual-form-page .item-info{flex:1;min-width:0}.manual-form-page .item-title{font-size:.9375rem;font-weight:500;color:var(--text-primary);text-decoration:none;margin-bottom:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.manual-form-page .item-title:hover{color:var(--accent-primary)}.manual-form-page .item-meta{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--text-muted);min-width:0}.manual-form-page .item-meta svg{flex-shrink:0}.manual-form-page .item-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manual-form-page .item-actions{display:flex;gap:var(--spacing-xs);flex-shrink:0}.manual-form-page .item-actions .btn-icon{width:30px;height:30px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;text-decoration:none;font-size:.8125rem}.manual-form-page .item-actions .btn-icon:hover{background:var(--bg-secondary);color:var(--accent-primary);border-color:var(--accent-primary)}.manual-form-page .item-actions .btn-icon.danger:hover{background:var(--accent-danger-light);color:var(--accent-danger);border-color:var(--accent-danger)}.manual-form-page .empty-content{text-align:center;padding:var(--spacing-2xl) var(--spacing-xl);color:var(--text-muted)}.manual-form-page .empty-content .empty-icon-wrapper{width:64px;height:64px;margin:0 auto var(--spacing-lg);background:var(--accent-primary-light);border-radius:50%;display:flex;align-items:center;justify-content:center}.manual-form-page .empty-content .empty-icon-wrapper svg{font-size:1.75rem;color:var(--accent-primary);opacity:1}.manual-form-page .empty-content h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.manual-form-page .empty-content p{font-size:.875rem;margin:0 0 var(--spacing-lg) 0}.manual-form-page .empty-content .btn-with-icon{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;font-size:.875rem;font-weight:500;border-radius:var(--radius-md);transition:all .2s ease}.manual-form-page .empty-content .btn-with-icon:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--accent-primary-rgb),.3)}.manual-form-page .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--text-muted)}.manual-form-page .loading-state-sm{display:flex;justify-content:center;padding:var(--spacing-xl)}.manual-form-page .spinner-sm{width:16px;height:16px;border:2px solid var(--border-primary);border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}.manual-form-page .spinner-md{width:32px;height:32px;border:3px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}.manual-form-page .spinner-lg{width:48px;height:48px;border:4px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 1200px){.manual-form-page .form-container{grid-template-columns:1fr}.manual-form-page .content-list-body{max-height:none}}@media (max-width: 768px){.manual-form-page .header-title h1{font-size:1.25rem}.manual-form-page .card-header{padding:var(--spacing-md)}.manual-form-page .card-header .header-content{flex-direction:row;align-items:flex-start;gap:var(--spacing-sm)}.manual-form-page .card-header .btn-with-icon{padding:6px 12px;font-size:.75rem;height:30px}.manual-form-page .card-header .btn-with-icon span{display:none}.manual-form-page .card-header .btn-with-icon svg{font-size:.875rem}.manual-form-page .card-footer{flex-direction:column}.manual-form-page .card-footer .btn{width:100%;justify-content:center}}@media (max-width: 576px){.manual-form-page .content-item{flex-wrap:wrap;min-width:0}.manual-form-page .item-info{flex:1 1 0}.manual-form-page .item-actions{width:100%;justify-content:flex-end;margin-top:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px solid var(--border-primary)}}.content-form-page{padding:var(--spacing-sm);animation:fadeIn .3s ease}.content-form-page .card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg)}.content-form-page .card-header{display:block;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);background:var(--bg-secondary);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.content-form-page .card-header .header-content{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md)}.content-form-page .card-header .header-text{flex:1;min-width:0}.content-form-page .card-header h2{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0;line-height:1.4}.content-form-page .card-header p{font-size:.75rem;color:var(--text-muted);margin:2px 0 0}.content-form-page .card-body{padding:var(--spacing-lg)}.content-form-page .card-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-secondary);border-top:1px solid var(--border-primary);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.content-form-page .form-group{margin-bottom:var(--spacing-lg)}.content-form-page .form-group:last-child{margin-bottom:0}.content-form-page .form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.content-form-page .form-group .required{color:var(--accent-danger)}.content-form-page .form-control{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:.9375rem;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);transition:all .15s ease}.content-form-page .form-control::placeholder{color:var(--text-muted)}.content-form-page .form-control:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.content-form-page .form-control.error{border-color:var(--accent-danger)}.content-form-page .error-text{display:block;color:var(--accent-danger);font-size:.75rem;margin-top:var(--spacing-xs)}.content-form-page .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--text-muted)}.content-form-page .spinner-sm{width:16px;height:16px;border:2px solid var(--border-primary);border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.content-form-page .header-title h1{font-size:1.25rem}.content-form-page .card-header,.content-form-page .card-body{padding:var(--spacing-md)}.content-form-page .card-footer{flex-direction:column}.content-form-page .card-footer .btn{width:100%;justify-content:center}}.mp-page{display:flex;flex-direction:column;height:calc(100vh - 60px);background:var(--bg-primary);overflow:hidden}.mp-page.mp-embedded{height:100%}.mp-header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:var(--bg-card);border-bottom:1px solid var(--border-primary);flex-shrink:0}.mp-header-title{margin:0;font-size:.9375rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center}.mp-viewer{flex:1;min-height:0;overflow:hidden}.mp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-muted);gap:12px}.mp-empty-icon{font-size:3rem;opacity:.3}.mp-empty h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.mp-empty p{font-size:.875rem;margin:0}@media (max-width: 768px){.mp-header{padding:8px 12px}.mp-header-title{font-size:.8125rem}}.theme-demo-page{padding:24px;max-width:1600px;margin:0 auto}.theme-demo-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;gap:24px;flex-wrap:wrap}.theme-demo-header-content{flex:1;min-width:300px}.theme-demo-title{display:flex;align-items:center;gap:12px;font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 8px}.theme-demo-title i{color:var(--accent-primary)}.theme-demo-subtitle{color:var(--text-muted);font-size:.9375rem;margin:0;line-height:1.5}.theme-demo-copy-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--accent-primary);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.theme-demo-copy-btn:hover{opacity:.9;transform:translateY(-1px)}.theme-demo-copy-btn.success{background:var(--accent-success)}.palette-selector{margin-bottom:24px}.palette-selector-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 16px}.palette-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.palette-card{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-card);border:2px solid var(--border-primary);border-radius:10px;cursor:pointer;transition:all .2s ease;text-align:left}.palette-card:hover{border-color:var(--border-secondary);background:var(--bg-hover)}.palette-card.active{border-color:var(--accent-primary);background:var(--accent-primary-light)}.palette-swatches{display:flex;gap:4px;flex-shrink:0}.palette-swatch{width:28px;height:28px;border-radius:6px;box-shadow:0 1px 3px #00000026}.palette-info{display:flex;flex-direction:column;gap:2px;min-width:0}.palette-name{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-description{font-size:.75rem;color:var(--text-muted)}.palette-character{padding:12px 16px;background:var(--bg-tertiary);border-radius:8px;font-size:.875rem;color:var(--text-secondary);margin-bottom:24px}.palette-character strong{color:var(--text-primary)}.preview-split{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media (max-width: 1200px){.preview-split{grid-template-columns:1fr}}.preview-panel{display:flex;flex-direction:column}.preview-label{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#f8fafc;border:1px solid #e2e8f0;border-bottom:none;border-radius:10px 10px 0 0;font-size:.875rem;font-weight:600;color:#0f172a}.preview-label i{color:#d97706}.preview-label.dark{background:#1f2937;border-color:#374151;color:#f1f5f9}.preview-label.dark i{color:#fbbf24}.preview-container{padding:20px;border:1px solid #e2e8f0;border-radius:0 0 10px 10px;background:var(--bg-secondary);min-height:600px;overflow:auto}.preview-container.dark{border-color:#374151}.component-showcase{display:flex;flex-direction:column;gap:24px}.showcase-section{padding-bottom:20px;border-bottom:1px solid var(--border-primary)}.showcase-section:last-child{border-bottom:none;padding-bottom:0}.showcase-title{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 12px}.showcase-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.demo-btn{padding:8px 16px;font-size:.8125rem;font-weight:500;border-radius:6px;border:none;cursor:pointer;transition:all .15s ease}.demo-btn:hover{opacity:.9}.showcase-form{display:flex;flex-direction:column;gap:12px}.demo-form-group{display:flex;flex-direction:column;gap:6px}.demo-form-group.checkbox{flex-direction:row;align-items:center;gap:8px}.demo-label{font-size:.8125rem;font-weight:500}.demo-input,.demo-select{padding:10px 12px;font-size:.875rem;border-radius:6px;width:100%;max-width:300px}.demo-input:focus,.demo-select:focus{outline:none;border-color:var(--accent-primary)}.demo-card{border-radius:10px;overflow:hidden}.demo-card-header{padding:12px 16px}.demo-card-title{display:flex;align-items:center;gap:8px;font-size:.9375rem;font-weight:600}.demo-card-body{padding:16px}.demo-card-body p{margin:0;font-size:.875rem;line-height:1.5}.demo-badge{display:inline-flex;align-items:center;padding:4px 10px;font-size:.75rem;font-weight:600;border-radius:9999px}.demo-badge.small{padding:2px 8px;font-size:.6875rem}.demo-table-container{border-radius:8px;overflow:hidden}.demo-table{width:100%;border-collapse:collapse}.demo-table th,.demo-table td{padding:10px 12px;text-align:left;font-size:.8125rem}.demo-table th{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.showcase-alerts{display:flex;flex-direction:column;gap:8px}.demo-alert{display:flex;align-items:center;gap:10px;padding:10px 14px;font-size:.8125rem;font-weight:500;border-radius:6px}.demo-alert i{font-size:.875rem}.showcase-progress{display:flex;flex-direction:column;gap:12px}.demo-progress-item{display:flex;flex-direction:column;gap:6px}.demo-progress-header{display:flex;justify-content:space-between;font-size:.8125rem}.demo-progress-bar{height:6px;border-radius:9999px;overflow:hidden}.demo-progress-fill{height:100%;border-radius:9999px;transition:width .3s ease}.demo-nav{border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:4px}.demo-nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:.8125rem;font-weight:500;border-radius:6px;cursor:pointer;border-left:3px solid transparent}.demo-nav-item i{width:16px;text-align:center;font-size:.875rem}@media (max-width: 768px){.theme-demo-page{padding:16px}.theme-demo-header{flex-direction:column;align-items:stretch}.theme-demo-copy-btn{width:100%;justify-content:center}.palette-grid{grid-template-columns:1fr}}.candidate-dashboard .stats-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.cd-progress-list{display:flex;flex-direction:column;gap:2px}.cd-progress-item{display:flex;align-items:center;gap:12px;padding:8px 6px;border-radius:var(--radius-sm);transition:background .15s ease}.cd-progress-item:hover{background:var(--bg-secondary)}.cd-progress-name{flex:1;min-width:0;font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cd-progress-status{flex-shrink:0}.cd-progress-bar-wrap{flex:1;max-width:200px;height:6px;background:var(--bg-tertiary, var(--bg-secondary));border-radius:3px;overflow:hidden}.cd-progress-fill{height:100%;border-radius:3px;transition:width .4s ease}.cd-progress-fill.success{background:linear-gradient(90deg,#10b981,#34d399)}.cd-progress-fill.warning{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.cd-progress-fill.danger{background:linear-gradient(90deg,#ef4444,#f87171)}.cd-progress-time{flex-shrink:0;font-size:.6875rem;color:var(--text-muted);white-space:nowrap;min-width:80px;text-align:right}.cd-expiring{flex-shrink:0;font-size:.625rem;font-weight:600;color:#f59e0b;white-space:nowrap;display:flex;align-items:center;gap:4px}.cd-charts-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.cd-content-row{display:grid;grid-template-columns:2fr 1fr;gap:12px}.cd-challenge-list{display:flex;flex-direction:column;gap:2px}.cd-challenge-item{display:flex;align-items:center;gap:12px;padding:10px 6px;border-radius:var(--radius-sm);transition:background .15s ease}.cd-challenge-item:hover{background:var(--bg-secondary)}.cd-challenge-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cd-challenge-name{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cd-challenge-exercise{font-size:.6875rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cd-challenge-status{flex-shrink:0}.cd-challenge-scores{display:flex;align-items:center;gap:10px;flex-shrink:0}.cd-score-bar-wrap{width:100px;height:6px;background:var(--bg-tertiary, var(--bg-secondary));border-radius:3px;overflow:hidden}.cd-score-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary, var(--accent-primary)));transition:width .4s ease}.cd-score-text{font-size:.75rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.cd-score-pct{font-size:.6875rem;color:var(--text-muted);white-space:nowrap}.cd-tasks-text{font-size:.6875rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.cd-continue-btn{flex-shrink:0;width:28px;height:28px;padding:0;font-size:.75rem;color:var(--accent-primary);background:transparent;border:1px solid var(--border-primary);border-radius:var(--radius-full);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}.cd-continue-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.cd-view-all{font-size:.75rem;font-weight:600;color:var(--accent-primary);text-decoration:none;display:flex;align-items:center;gap:4px}.cd-view-all:hover{text-decoration:underline}.activity-list{display:flex;flex-direction:column;gap:2px}.activity-item{display:flex;align-items:flex-start;gap:10px;padding:8px 6px;border-radius:var(--radius-sm);transition:background .15s ease}.activity-item:hover{background:var(--bg-secondary)}.activity-dot{flex-shrink:0;font-size:8px;margin-top:5px}.activity-dot.unread{color:#ef4444}.activity-dot.read{color:#10b981}.activity-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.activity-narration{font-size:.8125rem;color:var(--text-primary);font-weight:500;line-height:1.4}.activity-narration.link{color:var(--accent-primary);text-decoration:none;cursor:pointer}.activity-narration.link:hover{text-decoration:underline}.activity-time{font-size:.6875rem;color:var(--text-muted);font-weight:400}.exercise-list{display:flex;flex-direction:column;gap:2px}.exercise-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 6px;border-radius:var(--radius-sm);transition:background .15s ease}.exercise-item:hover{background:var(--bg-secondary)}.exercise-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.exercise-name{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exercise-time{font-size:.6875rem;color:var(--text-muted)}.exercise-status-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;white-space:nowrap;flex-shrink:0}.exercise-status-badge.pending{background:var(--accent-warning-light);color:var(--accent-warning)}.exercise-status-badge.allotted{background:#3b82f61a;color:#3b82f6}.exercise-status-badge.running,.exercise-status-badge.active{background:var(--accent-success-light);color:var(--accent-success)}.exercise-status-badge.completed,.exercise-status-badge.done{background:var(--accent-primary-light);color:var(--accent-primary)}.exercise-status-badge.expired,.exercise-status-badge.rejected{background:var(--accent-danger-light);color:var(--accent-danger)}.exercise-status-badge.paused,.exercise-status-badge.pause{background:#f59e0b1a;color:#f59e0b}.exercise-status-badge.in-progress{background:#3b82f61f;color:#2563eb}.cd-rank-card .card-body{display:flex;flex-direction:column;gap:20px;padding:20px 16px}.cd-rank-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}.cd-rank-badge{display:flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#fbbf241f,#f59e0b0f);border:1px solid rgba(251,191,36,.25);border-radius:var(--radius-lg, 12px);padding:12px 24px;min-width:120px}.cd-rank-badge svg{font-size:1.25rem;color:#f59e0b}.cd-rank-number{font-size:1.5rem;font-weight:800;color:var(--text-primary);letter-spacing:-.02em}.cd-rank-label{font-size:.8125rem;font-weight:600;color:var(--text-primary);margin-top:4px}.cd-rank-out-of{font-size:.75rem;color:var(--text-muted)}.cd-rank-score{display:flex;align-items:baseline;justify-content:center;gap:6px;padding:10px 16px;background:var(--bg-secondary);border-radius:var(--radius-md, 8px);flex-wrap:wrap}.cd-rank-score-icon{font-size:.875rem;color:var(--accent-primary);align-self:center}.cd-rank-score-value{font-size:1.25rem;font-weight:800;color:var(--text-primary);line-height:1}.cd-rank-score-sep{font-size:1rem;font-weight:400;color:var(--text-muted)}.cd-rank-score-total{font-size:1rem;font-weight:600;color:var(--text-muted);line-height:1}.cd-rank-score-label{font-size:.75rem;color:var(--text-muted);width:100%;text-align:center;margin-top:2px}@media (max-width: 992px){.cd-charts-row{grid-template-columns:1fr 1fr}.cd-content-row{grid-template-columns:1fr}}@media (max-width: 768px){.candidate-dashboard .stats-grid-4{grid-template-columns:1fr 1fr}.cd-charts-row{grid-template-columns:1fr}.cd-progress-bar-wrap{max-width:120px}.cd-score-bar-wrap{width:70px}.cd-challenge-scores{gap:6px}}@media (max-width: 480px){.candidate-dashboard .stats-grid-4{grid-template-columns:1fr}.cd-progress-item{flex-wrap:wrap;gap:6px}.cd-progress-bar-wrap{max-width:100%;order:5;flex-basis:100%}.cd-challenge-item{flex-wrap:wrap;gap:6px}.cd-challenge-scores{flex-basis:100%;order:5}.cd-rank-badge{padding:10px 20px}}.ue-page{padding:var(--spacing-md);animation:dashFadeIn .3s ease;max-width:1600px;margin:0 auto;display:flex;flex-direction:column;gap:14px}.ue-stats-card{display:flex;align-items:stretch;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:14px 8px;transition:border-color .2s ease,box-shadow .2s ease}.ue-stats-card:hover{border-color:var(--accent-primary);box-shadow:0 4px 16px #0891b214}.ue-stat-item{flex:1;display:flex;align-items:center;gap:12px;padding:4px 16px;border-right:1px solid var(--border-primary);min-width:0}.ue-stat-item:last-child{border-right:none}.ue-stat-icon{width:42px;height:42px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.125rem;flex-shrink:0}.ue-stat-icon.primary{background:linear-gradient(135deg,#0891b226,#0891b214);color:var(--accent-primary)}.ue-stat-icon.success{background:linear-gradient(135deg,#10b98126,#10b98114);color:#10b981}.ue-stat-icon.warning{background:linear-gradient(135deg,#f59e0b26,#f59e0b14);color:#f59e0b}.ue-stat-icon.info{background:linear-gradient(135deg,#3b82f626,#3b82f614);color:#3b82f6}.ue-stat-icon.approval{background:linear-gradient(135deg,#8b5cf626,#8b5cf614);color:#8b5cf6}.ue-stat-icon.danger{background:linear-gradient(135deg,#ef444426,#ef444414);color:#ef4444}.ue-stat-info{flex:1;min-width:0}.ue-stat-value{display:block;font-size:1.375rem;font-weight:800;color:var(--text-primary);line-height:1.1}.ue-stat-label{display:block;font-size:.75rem;color:var(--text-muted);margin-top:2px;font-weight:500}.ue-toolbar-wrapper{display:flex;flex-direction:column;gap:0;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden}.ue-toolbar-nav{display:flex;align-items:center;padding:0 var(--spacing-md);border-bottom:1px solid var(--border-primary)}.ue-toolbar-actions{display:flex;align-items:center;padding:6px var(--spacing-md);gap:var(--spacing-sm);flex-wrap:wrap}.ue-tabs{display:flex;gap:2px}.ue-tab{display:flex;align-items:center;gap:6px;padding:12px 16px;background:none;border:none;font-size:.8125rem;font-weight:500;color:var(--text-muted);cursor:pointer;position:relative;transition:color var(--transition-fast);white-space:nowrap}.ue-tab:hover{color:var(--text-primary)}.ue-tab.active{color:var(--accent-primary);font-weight:600}.ue-tab.active:after{content:"";position:absolute;bottom:0;left:8px;right:8px;height:2px;background:var(--accent-primary);border-radius:2px 2px 0 0}.ue-refresh-group{display:flex;align-items:center;gap:6px;flex-shrink:0}.ue-toolbar-actions .basic-select.auto-refresh-control.ue-autorefresh{min-width:118px}.ue-refresh-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:1px solid var(--border-primary);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;font-size:.8125rem;transition:all var(--transition-fast);flex-shrink:0}.ue-refresh-btn:hover{background:var(--bg-tertiary);color:var(--accent-primary)}.ue-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.ue-type-filter{display:flex;align-items:center;gap:2px}.ue-type-btn{display:flex;align-items:center;gap:5px;padding:6px 12px;border:1px solid var(--border-primary);background:var(--bg-primary);font-size:.75rem;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .2s ease;white-space:nowrap}.ue-type-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.ue-type-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.ue-type-btn:not(:first-child){margin-left:-1px}.ue-type-btn:hover{color:var(--text-primary);background:var(--bg-secondary)}.ue-type-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;z-index:1;position:relative}.ue-search-box{position:relative;min-width:180px;max-width:240px}.ue-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:.75rem;color:var(--text-muted);pointer-events:none}.ue-search-input{width:100%;padding:7px 30px;background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:.8125rem;color:var(--text-primary);transition:all var(--transition-fast);height:34px;font-family:inherit}.ue-search-input::placeholder{color:var(--text-muted)}.ue-search-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light)}.ue-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px 4px;font-size:.75rem;line-height:1;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.ue-search-clear:hover{color:var(--text-primary);background:var(--bg-tertiary)}.ue-filters{display:flex;flex-wrap:wrap;gap:6px;padding:6px 0;margin-left:auto}.ue-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:500;color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all var(--transition-fast)}.ue-chip:hover{border-color:var(--border-secondary);color:var(--text-secondary)}.ue-chip.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.ue-chip-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.ue-chip.active .ue-chip-dot{background:#fff9}.ue-chip-dot.success{background:var(--accent-success)}.ue-chip-dot.warning{background:var(--accent-warning)}.ue-chip-dot.info{background:var(--accent-info)}.ue-chip-dot.muted{background:var(--text-muted)}.ue-chip-dot.danger{background:var(--accent-danger)}.ue-chip-dot.primary{background:var(--accent-primary)}.ue-chip-dot.suspended{background:#f97316}.ue-chip-dot.allotted{background:#3b82f6}.ue-chip-dot.paused{background:#f59e0b}.ue-status-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;white-space:nowrap;flex-shrink:0}.ue-status-tag.success{background:var(--accent-success-light);color:var(--accent-success)}.ue-status-tag.warning{background:var(--accent-warning-light);color:var(--accent-warning)}.ue-status-tag.info{background:var(--accent-info-light);color:var(--accent-info)}.ue-status-tag.danger{background:var(--accent-danger-light);color:var(--accent-danger)}.ue-status-tag.primary{background:var(--accent-primary-light);color:var(--accent-primary)}.ue-status-tag.muted{background:var(--bg-tertiary);color:var(--text-muted)}.ue-status-tag.suspended{background:#f973161a;color:#f97316}.ue-status-tag.allotted{background:#3b82f61a;color:#3b82f6}.ue-status-tag.paused{background:#f59e0b1a;color:#f59e0b}.ue-time-block{margin-top:6px}.ue-time-labels{display:flex;justify-content:space-between;margin-bottom:4px;font-size:.6875rem;font-weight:600}.ue-time-used{color:var(--accent-success)}.ue-time-remain{color:var(--accent-danger)}.ue-time-sep{color:var(--text-muted);margin:0 2px}.ue-time-track{height:5px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.ue-time-track.sm{height:4px;margin-top:4px}.ue-time-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-slow)}.ue-time-fill.success{background:var(--accent-success)}.ue-time-fill.warning{background:var(--accent-warning)}.ue-time-fill.danger{background:var(--accent-danger)}.ue-processing-bar{height:4px;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--accent-primary) 0%,var(--accent-info) 50%,var(--accent-primary) 100%);background-size:200% 100%;animation:ueShimmer 1.5s ease-in-out infinite}@keyframes ueShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ue-card-processing{padding:0 var(--spacing-md);padding-top:6px}.ue-list-process{margin-top:6px}.ue-processing-label{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;font-weight:500;color:var(--accent-primary);margin-top:4px}.ue-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}.ue-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.ue-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.ue-card--archived{cursor:pointer;opacity:.9}.ue-card--archived:hover{opacity:1}.ue-card-visual{position:relative;width:100%;height:155px;overflow:hidden;background:var(--bg-tertiary);cursor:pointer}.ue-card-visual img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.ue-card:hover .ue-card-visual img{transform:scale(1.04)}.ue-card-badge{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:700;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 2px 8px #00000026}.ue-card-badge.success{background:#059669d9;color:#fff}.ue-card-badge.warning{background:#f59e0b1a;color:#f59e0b}.ue-card-badge.info{background:#0284c7d9;color:#fff}.ue-card-badge.danger{background:var(--accent-danger-light);color:var(--accent-danger)}.ue-card-badge.primary{background:#0891b2d9;color:#fff}.ue-card-badge.muted{background:#64748bd9;color:#fff}.ue-card-badge.suspended{background:#f973161a;color:#f97316}.ue-card-badge.paused{background:#f59e0b1a;color:#f59e0b}.ue-card-badge.allotted{background:#3b82f61a;color:#3b82f6}.ue-card-body{padding:var(--spacing-md);flex:1;display:flex;flex-direction:column}.ue-card-title{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin:0 0 6px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4;cursor:pointer}.ue-card-title:hover{color:var(--accent-primary)}.ue-lock-icon{color:var(--accent-danger);margin-right:4px;font-size:.8em}.ue-card-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.ue-meta-item{font-size:.75rem;color:var(--text-muted);display:inline-flex;align-items:center;gap:4px}.ue-meta-item svg{font-size:.625rem}.ue-card-info-grid{display:flex;flex-direction:column;gap:6px;padding:8px 0;border-top:1px solid var(--border-primary);border-bottom:1px solid var(--border-primary);margin-bottom:4px}.ue-info-row{display:flex;gap:12px}.ue-info-row>.ue-info-cell{flex:1;min-width:0}.ue-info-cell{display:flex;flex-direction:column;gap:1px}.ue-info-cell.full-width{width:100%}.ue-info-cell.ue-info-inline{flex-direction:row;align-items:center;gap:6px}.ue-info-label{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.ue-info-value{font-size:.75rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ue-card-footer{padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md);display:flex;flex-direction:column;align-items:center;gap:6px}.ue-card-footer .btn{width:100%;max-width:260px}.ue-meta-challenge{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-full);border:none;background:var(--accent-primary-light);color:var(--accent-primary);font-size:.75rem;cursor:pointer;transition:all .2s ease;margin-left:auto;flex-shrink:0}.ue-meta-challenge:hover{background:var(--accent-primary);color:var(--text-inverse);transform:scale(1.1)}.ue-action-group{display:flex;gap:6px;width:100%;max-width:260px}.ue-action-group .btn{flex:1}.ue-btn-topology{background:linear-gradient(135deg,#0891b2,#06b6d4);color:#fff!important;border:none}.ue-btn-topology:hover:not(:disabled){background:linear-gradient(135deg,#0e7490,#0891b2);color:#fff!important;transform:translateY(-1px);box-shadow:0 4px 12px #0891b259}.ue-page .btn:disabled,.ue-page .ue-action-group .btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:auto}.ue-expire-notice{font-size:.6875rem;color:var(--accent-danger);font-weight:500;font-style:italic}.ue-table td{font-size:.8125rem}.ue-challenge-link{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;background:var(--accent-primary-light);color:var(--accent-primary);border:none;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);font-family:inherit;white-space:nowrap}.ue-challenge-link:hover{background:var(--accent-primary);color:var(--text-inverse);transform:scale(1.05)}.ue-challenge-link svg{font-size:.6875rem}.ue-no-data{color:var(--text-muted);font-size:.8125rem}.ue-list-name{color:var(--accent-primary);font-weight:600;cursor:pointer}.ue-list-name:hover{text-decoration:underline}.ue-allot-code{font-family:JetBrains Mono,Fira Code,monospace;font-size:.75rem;background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;color:var(--text-secondary)}.ue-list-author{color:var(--text-secondary)}.ue-date-arrow{font-size:.5rem;color:var(--text-muted);margin:0 4px;vertical-align:middle}.ue-list-time{font-size:.8125rem;white-space:nowrap}.ue-table .ue-action-group{gap:4px;width:auto;max-width:none;justify-content:center}.ue-table .ue-action-group .btn{flex:none}.ue-pagination-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 4px}.ue-pagination-left{display:flex;align-items:center;gap:12px}.ue-pagination-bar .footer-info{font-size:.85rem;color:var(--text-muted)}.pagination-dots{padding:0 4px;color:var(--text-muted);font-size:.85rem;-webkit-user-select:none;user-select:none}.ue-roadmap-accordion{display:flex;flex-direction:column;gap:10px}.ue-accordion-item{border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-primary);overflow:hidden;transition:box-shadow .2s ease}.ue-accordion-item.open{box-shadow:0 2px 8px #00000014}.ue-accordion-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 18px;border:none;background:var(--bg-secondary);cursor:pointer;transition:background .15s ease;gap:12px}.ue-accordion-header:hover{background:var(--bg-hover)}.ue-accordion-item.open .ue-accordion-header{border-bottom:1px solid var(--border-primary)}.ue-accordion-title{display:flex;align-items:center;gap:10px;font-size:.95rem;font-weight:600;color:var(--text-primary)}.ue-accordion-icon{color:var(--accent-primary);font-size:1rem}.ue-accordion-count{font-size:.8rem;font-weight:500;color:var(--text-muted);background:var(--bg-primary);padding:2px 10px;border-radius:12px;border:1px solid var(--border-primary)}.ue-accordion-arrow{color:var(--text-muted);font-size:.85rem;transition:transform .25s ease}.ue-accordion-arrow.rotated{transform:rotate(180deg)}.ue-accordion-body{padding:16px;animation:accordionSlideIn .2s ease}.ue-roadmap-vtimeline{display:flex;flex-direction:column;gap:0;padding:8px 4px 4px}.ue-vstep{display:flex;align-items:stretch;gap:16px;position:relative}.ue-vstep-rail{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:48px;padding-top:8px}.ue-vstep-circle{position:relative;width:44px;height:44px;border-radius:50%;border:2px solid var(--border-primary);background:var(--bg-primary);color:var(--text-muted);display:flex;align-items:center;justify-content:center;font-size:1rem;z-index:1;flex-shrink:0}.ue-vstep-num{position:absolute;bottom:-4px;right:-4px;width:18px;height:18px;border-radius:50%;background:var(--bg-tertiary);color:var(--text-primary);font-size:.625rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-primary)}.ue-vstep-circle--completed{background:var(--accent-success-light);color:#fff}.ue-vstep-circle--current{background:#3b82f6;border-color:#3b82f6;color:#fff;box-shadow:0 0 0 4px #3b82f62e}.ue-vstep-circle--available{border-color:#f59e0b;color:#f59e0b}.ue-vstep-circle--locked{opacity:.55}.ue-vstep-line{flex:1;width:3px;min-height:24px;margin-top:4px;background:var(--border-primary);border-radius:2px}.ue-vstep-line--completed{background:#10b981}.ue-vstep-content{flex:1;min-width:0;padding-bottom:16px}.ue-rm-row{display:flex;align-items:center;gap:14px;padding:10px 14px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);transition:border-color .15s ease,box-shadow .15s ease}.ue-rm-row:hover{border-color:var(--border-secondary, var(--border-primary));box-shadow:0 2px 8px #0000000f}.ue-rm-thumb{width:64px;height:64px;flex-shrink:0;border-radius:var(--radius-sm, 6px);overflow:hidden;cursor:pointer;background:var(--bg-tertiary)}.ue-rm-thumb img{width:100%;height:100%;object-fit:cover;display:block}.ue-rm-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.ue-rm-title-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ue-rm-title{font-size:.875rem;font-weight:600;color:var(--text-primary);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:360px}.ue-rm-title:hover{color:var(--accent-primary, #3b82f6)}.ue-rm-status-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--radius-full, 999px);font-size:.6875rem;font-weight:600;text-transform:capitalize;letter-spacing:.2px;line-height:1.4;white-space:nowrap;flex-shrink:0}.ue-rm-status-badge svg{font-size:.625rem}.ue-rm-status-badge.success{background:#10b9811f;color:#10b981}.ue-rm-status-badge.allotted{background:#3b82f61a;color:#3b82f6}.ue-rm-status-badge.warning{background:#f59e0b1f;color:#f59e0b}.ue-rm-status-badge.info{background:#3b82f61f;color:#3b82f6}.ue-rm-status-badge.danger{background:#ef44441f;color:#ef4444}.ue-rm-status-badge.primary{background:#8b5cf61f;color:#8b5cf6}.ue-rm-status-badge.suspended,.ue-rm-status-badge.muted{background:#94a3b829;color:#64748b}.ue-rm-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:.75rem;color:var(--text-secondary)}.ue-rm-meta-item{display:inline-flex;align-items:center;gap:5px}.ue-rm-meta-item svg{color:var(--text-muted);font-size:.7rem}.ue-rm-time{max-width:320px}.ue-rm-time .ue-time-block{margin:0}.ue-rm-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.ue-rm-actions .btn-sm{padding:5px 9px;font-size:.75rem;line-height:1}@media (max-width: 720px){.ue-rm-row{flex-wrap:wrap}.ue-rm-thumb{width:52px;height:52px}.ue-rm-actions{width:100%;justify-content:flex-end}}@keyframes accordionSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.ue-detail-list{display:grid;grid-template-columns:150px 1fr;gap:0;background:var(--bg-secondary);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-primary);border-radius:var(--radius-md)}.ue-detail-row{display:contents}.ue-detail-label{font-size:.8125rem;color:var(--text-muted);font-weight:600;display:flex;align-items:center;gap:6px;padding:7px 0;border-bottom:1px solid var(--border-primary)}.ue-detail-row:last-child .ue-detail-label,.ue-detail-row:last-child .ue-detail-val{border-bottom:none}.ue-detail-label svg{font-size:.7rem;color:var(--accent-primary)}.ue-detail-val{font-size:.8125rem;color:var(--text-primary);font-weight:500;padding:7px 0;border-bottom:1px solid var(--border-primary)}.ue-detail-val code{font-family:JetBrains Mono,Fira Code,monospace;background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-size:.75rem}.type-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:20px;font-size:.7rem;font-weight:600}.type-badge svg{font-size:.6rem}.type-badge.individual{background:#6366f11a;color:#6366f1}.type-badge.team{background:#ec48991a;color:#ec4899}@media (max-width: 1200px){.ue-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}}@media (max-width: 1024px){.ue-stats-card{flex-wrap:wrap}.ue-stat-item{flex:1 0 calc(50% - 1px);border-bottom:1px solid var(--border-primary)}.ue-stat-item:nth-child(2n){border-right:none}.ue-stat-item:nth-last-child(-n+2){border-bottom:none}}@media (max-width: 768px){.ue-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.ue-toolbar-nav{justify-content:center;padding:0 var(--spacing-sm)}.ue-tabs{justify-content:center;flex-wrap:wrap}.ue-toolbar-actions{flex-wrap:wrap;justify-content:center;padding:var(--spacing-sm);gap:var(--spacing-sm)}.ue-type-filter{justify-content:center}.ue-search-box{max-width:100%;min-width:100%;margin-left:0}.ue-filters{justify-content:center;margin-left:0}.ue-card-visual{height:130px}}@media (max-width: 576px){.ue-page{padding:var(--spacing-sm);gap:10px}.ue-stats-card{flex-direction:column}.ue-stat-item{flex:1 0 100%;border-right:none;border-bottom:1px solid var(--border-primary)}.ue-stat-item:last-child{border-bottom:none}.ue-grid{grid-template-columns:1fr}.ue-tab span{display:none}.ue-tab{padding:10px 14px}.ue-info-row{flex-direction:column;gap:6px}.ue-detail-list{grid-template-columns:120px 1fr}}.ca-page{display:flex;flex-direction:column;height:calc(100vh - var(--header-height));overflow:hidden;background:var(--bg-secondary)}.ca-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-card);border-bottom:1px solid var(--border-primary);flex-shrink:0;min-height:52px}.ca-back-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;font-family:inherit}.ca-back-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-secondary)}.ca-header-title{flex:1;min-width:0}.ca-header-title h2{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ca-header-title span{font-size:.75rem;color:var(--text-muted)}.ca-header-meta{display:flex;align-items:center;gap:var(--spacing-lg);flex-shrink:0}.ca-header-score{display:flex;align-items:center;gap:6px;font-size:.875rem;font-weight:600;color:var(--accent-primary)}.ca-header-score svg{font-size:.875rem}.ca-header-timer{display:flex;align-items:center;gap:6px;font-size:.875rem;font-weight:500;color:var(--text-secondary);padding:4px 10px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.ca-header-timer svg{color:var(--accent-warning)}.ca-status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:600;border-radius:var(--radius-full)}.ca-status-badge.pending{background:var(--accent-warning-light);color:var(--accent-warning)}.ca-status-badge.in-progress{background:var(--accent-info-light);color:var(--accent-info)}.ca-status-badge.completed{background:var(--accent-success-light);color:var(--accent-success)}.ca-layout{display:flex;flex:1;min-height:0;overflow:hidden}.ca-sidebar{width:240px;flex-shrink:0;background:var(--bg-card);border-right:1px solid var(--border-primary);overflow-y:auto;display:flex;flex-direction:column}.ca-sidebar-header{padding:var(--spacing-md);border-bottom:1px solid var(--border-primary);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.ca-task-list{flex:1;overflow-y:auto;padding:var(--spacing-sm)}.ca-task-item{margin-bottom:2px}.ca-task-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);font-size:.8125rem;font-weight:500;color:var(--text-secondary);border:none;background:none;width:100%;text-align:left;font-family:inherit}.ca-task-header:hover{background:var(--bg-hover);color:var(--text-primary)}.ca-task-header.active{background:var(--accent-primary-light);color:var(--accent-primary)}.ca-task-header svg:first-child{font-size:.625rem;transition:transform var(--transition-fast);flex-shrink:0}.ca-task-header.expanded svg:first-child{transform:rotate(90deg)}.ca-task-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ca-task-score{font-size:.6875rem;color:var(--text-muted);flex-shrink:0}.ca-question-list{padding:4px 0 4px var(--spacing-lg);display:flex;flex-wrap:wrap;gap:4px}.ca-question-badge{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);border:2px solid transparent}.ca-question-badge.unanswered{background:var(--bg-tertiary);color:var(--text-muted);border-color:var(--border-primary)}.ca-question-badge.correct{background:var(--accent-success-light);color:var(--accent-success);border-color:var(--accent-success)}.ca-question-badge.incorrect{background:var(--accent-danger-light);color:var(--accent-danger);border-color:var(--accent-danger)}.ca-question-badge.partial{background:var(--accent-warning-light);color:var(--accent-warning);border-color:var(--accent-warning)}.ca-question-badge.current{background:var(--accent-primary-light);color:var(--accent-primary);border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-light)}.ca-question-badge:hover{transform:scale(1.1)}.ca-workspace{flex:1;min-width:0;display:flex;flex-direction:column;overflow-y:auto;padding:var(--spacing-lg)}.ca-question-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-md);gap:var(--spacing-md)}.ca-question-number{font-size:.75rem;font-weight:600;color:var(--accent-primary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.ca-question-type{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;text-transform:uppercase;flex-shrink:0}.ca-question-type.mcq{background:var(--accent-info-light);color:var(--accent-info)}.ca-question-type.descriptive{background:var(--accent-warning-light);color:var(--accent-warning)}.ca-question-type.flag{background:var(--accent-success-light);color:var(--accent-success)}.ca-question-marks{font-size:.75rem;color:var(--text-muted);font-weight:500;margin-top:2px}.ca-question-text{font-size:.9375rem;line-height:1.7;color:var(--text-primary);margin-bottom:var(--spacing-lg);white-space:pre-wrap}.ca-answer-area{flex:1;margin-bottom:var(--spacing-lg)}.ca-answer-label{font-size:.8125rem;font-weight:600;color:var(--text-secondary);margin-bottom:var(--spacing-sm);display:block}.ca-mcq-options{display:flex;flex-direction:column;gap:var(--spacing-sm)}.ca-mcq-option{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:var(--bg-primary)}.ca-mcq-option:hover:not(.disabled){border-color:var(--accent-primary);background:var(--accent-primary-light)}.ca-mcq-option.selected{border-color:var(--accent-primary);background:var(--accent-primary-light)}.ca-mcq-options.disabled{pointer-events:none}.ca-mcq-option.disabled{cursor:not-allowed;opacity:.7;background:var(--bg-tertiary, #f3f4f6)}.ca-mcq-option.disabled:not(.selected){opacity:.5;background:var(--bg-tertiary, #f3f4f6);color:var(--text-secondary, #6b7280)}.ca-mcq-option.disabled.selected{opacity:.85}.ca-mcq-radio{width:18px;height:18px;border:2px solid var(--border-secondary);border-radius:50%;flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.ca-mcq-option.selected .ca-mcq-radio{border-color:var(--accent-primary)}.ca-mcq-option.selected .ca-mcq-radio:after{content:"";width:10px;height:10px;background:var(--accent-primary);border-radius:50%}.ca-mcq-label-key{font-weight:600;color:var(--accent-primary);margin-right:6px;min-width:16px}.ca-mcq-text{font-size:.875rem;color:var(--text-primary);line-height:1.5}.ca-textarea{width:100%;min-height:160px;padding:var(--spacing-md);background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:.875rem;color:var(--text-primary);line-height:1.6;resize:vertical;transition:border-color var(--transition-fast);font-family:inherit}.ca-textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light)}.ca-textarea::placeholder{color:var(--text-muted)}.ca-textarea:disabled,.ca-textarea[disabled]{background:var(--bg-tertiary, #e5e7eb);color:var(--text-secondary, #6b7280);border-color:var(--border-primary);cursor:not-allowed;opacity:.7;resize:none}.ca-textarea:disabled:focus{border-color:var(--border-primary);box-shadow:none}.ca-flag-input{width:100%;max-width:500px;padding:var(--spacing-md);background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:.9375rem;font-family:Courier New,monospace;color:var(--text-primary);letter-spacing:.5px;transition:border-color var(--transition-fast)}.ca-flag-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light)}.ca-flag-input::placeholder{color:var(--text-muted);font-family:inherit;letter-spacing:normal}.ca-flag-input:disabled,.ca-flag-input[disabled]{background:var(--bg-tertiary, #e5e7eb);color:var(--text-secondary, #6b7280);border-color:var(--border-primary);cursor:not-allowed;opacity:.7}.ca-flag-input:disabled:focus{border-color:var(--border-primary);box-shadow:none}.ca-nav-buttons{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-primary);margin-top:auto}.ca-nav-left,.ca-nav-right{display:flex;gap:var(--spacing-sm)}.ca-btn-prev,.ca-btn-next{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);border:1px solid var(--border-primary);font-family:inherit}.ca-btn-prev{background:var(--bg-primary);color:var(--text-secondary)}.ca-btn-prev:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.ca-btn-next{background:var(--accent-primary);color:var(--text-inverse);border-color:var(--accent-primary)}.ca-btn-next:hover:not(:disabled){background:var(--accent-secondary)}.ca-btn-prev:disabled,.ca-btn-next:disabled{opacity:.5;cursor:not-allowed}.ca-btn-submit{display:inline-flex;align-items:center;gap:6px;padding:8px 20px;background:var(--accent-success);color:var(--text-inverse);border:none;border-radius:var(--radius-sm);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.ca-btn-submit:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:var(--shadow-md)}.ca-btn-submit:disabled,.ca-btn-submit[disabled]{background:var(--bg-tertiary, #d1d5db);color:var(--text-secondary, #6b7280);cursor:not-allowed;opacity:.6;box-shadow:none;transform:none}.ca-info-panel{width:260px;flex-shrink:0;background:var(--bg-card);border-left:1px solid var(--border-primary);overflow-y:auto;display:flex;flex-direction:column;gap:0}.ca-info-section{padding:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.ca-info-section:last-child{border-bottom:none}.ca-info-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:var(--spacing-sm)}.ca-score-display{text-align:center;padding:var(--spacing-md) 0}.ca-score-ring{position:relative;width:100px;height:100px;margin:0 auto var(--spacing-sm)}.ca-score-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ca-score-ring-bg{fill:none;stroke:var(--bg-tertiary);stroke-width:8}.ca-score-ring-fill{fill:none;stroke:var(--accent-primary);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .5s ease}.ca-score-ring-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.ca-score-value{font-size:1.25rem;font-weight:700;color:var(--text-primary);display:block;line-height:1.2}.ca-score-label{font-size:.6875rem;color:var(--text-muted)}.ca-time-display{display:flex;flex-direction:column;gap:var(--spacing-sm)}.ca-time-row{display:flex;justify-content:space-between;font-size:.8125rem}.ca-time-row span:first-child{color:var(--text-muted)}.ca-time-row span:last-child{font-weight:600;color:var(--text-primary)}.ca-time-bar{height:6px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.ca-time-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-slow)}.ca-time-fill.success{background:var(--accent-success)}.ca-time-fill.warning{background:var(--accent-warning)}.ca-time-fill.danger{background:var(--accent-danger)}.ca-info-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:.8125rem}.ca-info-row span:first-child{color:var(--text-muted);display:flex;align-items:center;gap:6px}.ca-info-row span:last-child{color:var(--text-primary);font-weight:500}@media (max-width: 1024px){.ca-info-panel{width:220px}.ca-sidebar{width:200px}}@media (max-width: 768px){.ca-layout{flex-direction:column}.ca-sidebar{width:100%;max-height:none;border-right:none;border-bottom:1px solid var(--border-primary);overflow-y:visible}.ca-task-list{display:flex;overflow-x:auto;gap:var(--spacing-sm);padding:var(--spacing-sm)}.ca-task-item{flex-shrink:0;margin-bottom:0}.ca-question-list{padding-left:var(--spacing-sm)}.ca-info-panel{width:100%;border-left:none;border-top:1px solid var(--border-primary);flex-direction:row;flex-wrap:wrap;overflow-y:visible}.ca-info-section{flex:1;min-width:150px;border-bottom:none;border-right:1px solid var(--border-primary)}.ca-info-section:last-child{border-right:none}.ca-header{flex-wrap:wrap;gap:var(--spacing-sm)}.ca-header-meta{gap:var(--spacing-sm)}.ca-score-ring{width:72px;height:72px}.ca-score-value{font-size:1rem}}@media (max-width: 576px){.ca-header{padding:var(--spacing-sm) var(--spacing-md)}.ca-header-title h2{font-size:.875rem}.ca-header-meta{width:100%;justify-content:space-between}.ca-workspace{padding:var(--spacing-md)}.ca-nav-buttons{flex-direction:column;align-items:stretch}.ca-nav-left,.ca-nav-right{justify-content:center}.ca-info-panel{flex-direction:column}.ca-info-section{border-right:none;border-bottom:1px solid var(--border-primary)}}.er-page{padding:var(--spacing-md)}.er-layout{display:flex;gap:var(--spacing-lg);position:relative;min-height:60vh}.er-sidebar{width:240px;min-width:240px;position:sticky;top:10px;max-height:calc(100vh - var(--header-height, 64px) - 30px);overflow-y:auto;background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-primary);padding:var(--spacing-md);transition:all var(--transition-normal)}.er-sidebar-section{padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border-primary)}.er-sidebar-section:last-child{border-bottom:none}.er-sidebar-section h6{font-size:.8rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:var(--spacing-xs)}.er-sidebar-section h6 .er-collapse-btn{background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);padding:2px 6px;cursor:pointer;font-size:.7rem;color:var(--text-secondary);margin-left:auto;transition:all var(--transition-fast)}.er-sidebar-section h6 .er-collapse-btn:hover{background:var(--accent-primary);color:var(--text-inverse);border-color:var(--accent-primary)}.er-search-input{width:100%;padding:8px 12px;font-size:.85rem;border:1px solid var(--border-primary);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);transition:border-color var(--transition-fast)}.er-search-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-light)}.er-search-input::placeholder{color:var(--text-muted)}.er-filter-item{display:flex;align-items:center;gap:var(--spacing-xs);padding:3px 0}.er-filter-item input[type=checkbox],.er-filter-item input[type=radio]{accent-color:var(--accent-primary);cursor:pointer;width:14px;height:14px;flex-shrink:0}.er-filter-item label{font-size:.82rem;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:4px;margin:0;-webkit-user-select:none;user-select:none}.er-filter-item label .er-kc-badge{font-size:.7rem;background:var(--bg-tertiary);color:var(--text-muted);padding:1px 6px;border-radius:var(--radius-full);margin-left:4px}.er-filter-item.er-kc-selected label{color:var(--accent-success);font-weight:500}.er-team-circle{font-size:.6rem}.er-clear-btn{width:100%;padding:8px;font-size:.82rem;font-weight:500;background:var(--accent-primary);color:var(--text-inverse);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);margin-top:var(--spacing-sm)}.er-clear-btn:hover{background:var(--accent-hover)}.er-kc-list{max-height:0;overflow:hidden;transition:max-height .3s ease}.er-kc-list.er-kc-list--open{max-height:500px}.er-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg);align-content:start}.er-card{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:1px solid var(--border-primary);overflow:hidden;transition:transform var(--transition-normal),box-shadow var(--transition-normal);display:flex;flex-direction:column}.er-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.er-card-image{position:relative;width:100%;height:190px;overflow:hidden;cursor:pointer}.er-card-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.er-card:hover .er-card-image img{transform:scale(1.03)}.er-card-overlay{position:absolute;bottom:0;left:0;right:0;padding:6px 10px;background:#f8f9faeb;border-top:1px solid var(--border-primary);display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:var(--text-primary)}[data-theme=dark] .er-card-overlay{background:#111827eb}.er-card-overlay-left{display:flex;align-items:center;gap:4px}.er-card-overlay-right{display:flex;align-items:center;gap:10px}.er-card-overlay .er-stat-item{display:flex;align-items:center;gap:3px}.er-card-overlay .text-warning{color:#d97706}.er-card-overlay .text-primary{color:var(--accent-primary)}.er-card-overlay .text-success{color:var(--accent-success)}.er-card-overlay .text-danger{color:var(--accent-danger)}.er-card-body{padding:14px;flex:1;display:flex;flex-direction:column}.er-card-name{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 6px;line-height:1.3;cursor:pointer;transition:color var(--transition-fast);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.er-card-name:hover{color:var(--accent-primary)}.er-card-author{font-size:.82rem;color:var(--text-muted);margin:0}.er-card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:4px}.er-card-credits{font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.er-card-actions{padding:10px 14px;border-top:1px solid var(--border-primary);display:flex;align-items:center;justify-content:center;gap:8px}.er-basket-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;font-size:.82rem;font-weight:500;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all var(--transition-fast)}.er-basket-btn--add{background:var(--accent-primary);color:var(--text-inverse)}.er-basket-btn--add:hover{background:var(--accent-hover)}.er-basket-btn--added{background:var(--bg-tertiary);color:var(--text-muted);cursor:default}.er-basket-btn--disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed;opacity:.7}.er-basket-btn--remove{background:var(--accent-danger);color:var(--text-inverse)}.er-basket-btn--remove:hover{opacity:.85}.er-basket-btn--remove:disabled{opacity:.6;cursor:not-allowed}.er-keywords-icon{color:var(--text-muted);cursor:help;font-size:.9rem;position:relative}.er-keywords-tooltip{display:none;position:absolute;bottom:100%;right:0;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);padding:6px 10px;font-size:.75rem;white-space:nowrap;max-width:250px;overflow:hidden;text-overflow:ellipsis;box-shadow:var(--shadow-md);z-index:10}.er-keywords-icon:hover .er-keywords-tooltip{display:block}.er-load-more{grid-column:1 / -1;text-align:center;padding:var(--spacing-lg) 0}.er-load-more-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 28px;font-size:.9rem;font-weight:500;background:var(--accent-primary);color:var(--text-inverse);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.er-load-more-btn:hover{background:var(--accent-hover)}.er-empty{grid-column:1 / -1;text-align:center;padding:var(--spacing-2xl) var(--spacing-lg);color:var(--text-muted)}.er-empty-icon{font-size:3rem;margin-bottom:var(--spacing-md);opacity:.4}.er-empty-text{font-size:1.1rem;margin-bottom:var(--spacing-xs)}.er-empty-sub{font-size:.85rem}.er-filter-toggle{display:none;align-items:center;gap:6px;padding:8px 16px;font-size:.85rem;font-weight:500;background:var(--accent-primary);color:var(--text-inverse);border:none;border-radius:var(--radius-sm);cursor:pointer;margin-bottom:var(--spacing-md);transition:background var(--transition-fast)}.er-filter-toggle:hover{background:var(--accent-hover)}.er-filter-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:998}@media (max-width: 991px){.er-filter-toggle{display:inline-flex}.er-sidebar{position:fixed;top:0;left:-300px;width:280px;min-width:280px;height:100vh;z-index:999;border-radius:0;overflow-y:auto;transition:left .3s ease}.er-sidebar.er-sidebar--open{left:0}.er-filter-overlay.er-filter-overlay--visible{display:block}.er-sidebar-close{display:flex;align-items:center;justify-content:center;position:absolute;top:10px;right:10px;width:30px;height:30px;background:var(--bg-tertiary);border:none;border-radius:50%;cursor:pointer;font-size:.85rem;color:var(--text-secondary);z-index:1000}.er-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.er-layout{flex-direction:column}}@media (min-width: 992px){.er-sidebar-close{display:none}}@media (max-width: 767px){.er-grid{grid-template-columns:1fr;gap:var(--spacing-md)}.er-sidebar{width:85%;max-width:300px;left:-100%}.er-sidebar.er-sidebar--open{left:0}.er-card-image{height:170px}.er-layout{gap:var(--spacing-md)}}@media (max-width: 480px){.er-card-meta{flex-direction:column;align-items:flex-start;gap:4px}}.mitre-page{padding:var(--spacing-md)}.mitre-heatmap-legend{display:flex;align-items:center;gap:10px;margin-bottom:var(--spacing-md);font-size:.82rem;color:var(--text-secondary);flex-wrap:wrap}.mitre-heatmap-legend-label{font-weight:600;color:var(--text-primary)}.mitre-heatmap-legend-suffix{color:var(--text-muted);font-style:italic}.mitre-heatmap-scale{display:flex;align-items:center;gap:4px}.mitre-heatmap-swatch{display:inline-block;width:28px;height:18px;border-radius:3px;border:1px solid var(--border-primary)}.mitre-heatmap-tick{font-size:.72rem;color:var(--text-muted);margin-right:6px}.mitre-matrix-wrapper{overflow-x:auto;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--spacing-md)}.mitre-matrix{white-space:normal;line-height:14px;border-collapse:separate;border-spacing:0;width:auto;min-width:100%}.mitre-matrix .mitre-tactic{padding:2px;width:1%;vertical-align:top}.mitre-tactic-name{text-align:center;font-size:15px;font-weight:700;padding:8px 4px}.mitre-tactic-name a{color:var(--accent-primary);text-decoration:none;transition:color var(--transition-fast)}.mitre-tactic-name a:hover{color:var(--accent-hover);text-decoration:underline}.mitre-tactic-count{text-align:center;font-size:13px;color:var(--text-muted);border-bottom:1px solid var(--border-primary);padding-bottom:6px;margin-bottom:4px}.mitre-techniques-table{border-collapse:collapse;width:100%}.mitre-techniques-table td,.mitre-techniques-table tr{padding:0}.mitre-techniques-table tr{height:1px}.mitre-supertechnique{border-collapse:collapse;width:100%;padding:0;margin:0}.mitre-supertechnique td{padding:0;vertical-align:top}.mitre-supertechnique td.mitre-technique-cell-td{outline:1px solid var(--border-secondary);outline-offset:-1px;min-width:125px}.mitre-technique-cell{height:100%;display:flex;align-items:center;font-size:13px;line-height:14px;outline:1px solid transparent;outline-offset:-1px}.mitre-technique-cell a{display:block;width:100%;height:100%;padding:7px 3px;color:var(--text-primary);text-decoration:none;transition:all var(--transition-fast)}.mitre-technique-cell a:hover{background-color:var(--text-primary);color:var(--text-inverse)}.mitre-technique-cell a sub{font-size:10px;color:var(--text-muted)}.mitre-heat-0{background-color:transparent}.mitre-heat-1{background-color:#0596691a;font-weight:500}.mitre-heat-2{background-color:#05966940;font-weight:500}.mitre-heat-3{background-color:#05966973;color:#fff;font-weight:600}.mitre-heat-4{background-color:#059669b3;color:#fff;font-weight:600}.mitre-heat-1:hover,.mitre-heat-2:hover,.mitre-heat-3:hover,.mitre-heat-4:hover{background-color:var(--accent-success)!important;color:var(--text-inverse)!important}[data-theme=dark] .mitre-heat-1{background-color:#05966926;color:#6ee7b7}[data-theme=dark] .mitre-heat-2{background-color:#0596694d;color:#a7f3d0}[data-theme=dark] .mitre-heat-3{background-color:#05966980;color:#fff}[data-theme=dark] .mitre-heat-4{background-color:#059669bf;color:#fff}.mitre-heatmap-swatch.mitre-heat-0{background-color:var(--bg-tertiary)}.mitre-heatmap-swatch.mitre-heat-1{background-color:#0596691a}.mitre-heatmap-swatch.mitre-heat-2{background-color:#05966940}.mitre-heatmap-swatch.mitre-heat-3{background-color:#05966973}.mitre-heatmap-swatch.mitre-heat-4{background-color:#059669b3}.mitre-sidebar-toggle{min-width:8px;width:12px;padding:0;background:var(--border-secondary);cursor:pointer;position:relative;vertical-align:middle}.mitre-sidebar-toggle:hover{background:var(--accent-primary)}.mitre-sidebar-handle{text-align:center;vertical-align:middle;transform:rotate(-90deg);color:var(--bg-card);width:12px;height:12px;font-size:16px;line-height:12px}.mitre-angle{display:none}.mitre-sidebar-toggle.expanded .mitre-angle{margin:0 auto;height:12px;display:block;position:absolute;background:var(--bg-card)}.mitre-sidebar-toggle.expanded .mitre-angle svg{fill:var(--border-secondary);vertical-align:baseline}.mitre-sidebar-toggle.expanded .mitre-angle.top{top:0}.mitre-sidebar-toggle.expanded .mitre-angle.bottom{bottom:0}.mitre-subtechniques-td{padding:0}.mitre-subtechniques{display:flex;flex-direction:column;height:100%;margin-left:-1px;border-left:2px solid var(--border-secondary);outline:1px solid var(--border-secondary);outline-offset:-1px;white-space:nowrap;vertical-align:top}.mitre-subtechniques.mitre-hidden{display:none}.mitre-subtechnique{height:100%;flex-grow:1}.mitre-exercises-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg);padding-top:var(--spacing-sm)}.mitre-back-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:.85rem;font-weight:500;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);cursor:pointer;margin-bottom:var(--spacing-md);transition:all var(--transition-fast)}.mitre-back-btn:hover{background:var(--accent-primary);color:var(--text-inverse);border-color:var(--accent-primary)}.mitre-empty{text-align:center;padding:var(--spacing-2xl) var(--spacing-lg);color:var(--text-muted)}.mitre-empty-text{font-size:1.1rem;margin-bottom:var(--spacing-xs)}@media (max-width: 767px){.mitre-exercises-grid{grid-template-columns:1fr}.mitre-matrix-wrapper{padding:var(--spacing-sm)}}.exercise-stats-page{padding:var(--spacing-sm);animation:es-fadeIn .3s ease}.exercise-stats-page .card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:0 2px 12px #0000000f;overflow:visible}.exercise-stats-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.exercise-stats-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.exercise-stats-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.exercise-stats-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.exercise-stats-page .card-body{padding:0;min-height:300px}.exercise-stats-page .es-allot-id{font-family:var(--font-mono, monospace);font-size:.8125rem;color:var(--text-secondary);background:var(--bg-tertiary);padding:2px 8px;border-radius:var(--radius-sm)}.exercise-stats-page .es-exercise-name{font-weight:500;color:var(--text-primary)}.exercise-stats-page .es-datetime{font-size:.8125rem;color:var(--text-secondary);white-space:nowrap}.exercise-stats-page .es-duration{font-weight:500;color:var(--text-primary);white-space:nowrap}.exercise-stats-page .es-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;text-transform:capitalize;letter-spacing:.3px}.exercise-stats-page .es-status-badge svg{font-size:.5rem}.exercise-stats-page .es-status-badge.open{background:#10b9811f;color:#10b981}.exercise-stats-page .es-status-badge.close{background:#ef44441f;color:#ef4444}.exercise-stats-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--text-muted)}.exercise-stats-page .empty-icon{font-size:3rem;opacity:.3;margin-bottom:var(--spacing-md)}@keyframes es-fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 992px){.exercise-stats-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}}@media (max-width: 768px){.exercise-stats-page .card-header{flex-direction:column;align-items:stretch}.exercise-stats-page .header-actions{width:100%;justify-content:flex-end}}.my-activity-page{padding:var(--spacing-sm);animation:ma-fadeIn .3s ease}.my-activity-page .card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:0 2px 12px #0000000f;overflow:visible}.my-activity-page .card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.my-activity-page .header-actions{display:flex;gap:12px;align-items:center;flex-shrink:0}.my-activity-page .header-actions .btn-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.my-activity-page .header-actions .btn-icon:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.my-activity-page .card-body{padding:0;min-height:300px}.my-activity-page .table-responsive{overflow-x:auto}.my-activity-page .data-table{width:100%;border-collapse:separate;border-spacing:0}.my-activity-page .data-table th,.my-activity-page .data-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-primary);font-size:.875rem}.my-activity-page .data-table th{background:var(--bg-secondary);font-weight:600;color:var(--text-primary);white-space:nowrap}.my-activity-page .data-table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.my-activity-page .data-table th.th-center,.my-activity-page .data-table td.td-center{text-align:center}.my-activity-page .data-table th .sort-icon{margin-left:var(--spacing-xs);font-size:.75rem;opacity:.5}.my-activity-page .data-table tbody tr:hover{background:var(--bg-secondary)}.my-activity-page .ma-notification-text{color:var(--text-primary);line-height:1.4}.my-activity-page .ma-datetime{font-size:.8125rem;color:var(--text-secondary);white-space:nowrap}.my-activity-page .loading-state,.my-activity-page .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--text-muted)}.my-activity-page .empty-icon{font-size:3rem;opacity:.3;margin-bottom:var(--spacing-md)}@keyframes ma-fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 992px){.my-activity-page .card-header{flex-wrap:wrap;gap:var(--spacing-sm)}}@media (max-width: 768px){.my-activity-page .card-header{flex-direction:column;align-items:stretch}.my-activity-page .header-actions{width:100%;justify-content:flex-end}}.my-activity-page .data-table tr.row-unread td{background:var(--bg-subtle, rgba(0, 122, 255, .04));font-weight:500}.my-activity-page .data-table tr.row-read .ma-notification-text{color:var(--text-muted)}.my-activity-page .ma-notification-text.clickable{cursor:pointer}.my-activity-page .ma-notification-text.clickable:hover{text-decoration:underline;color:var(--accent-primary)}.ct-page{display:flex;flex-direction:column;height:calc(100vh - var(--header-height, 64px));overflow:hidden;background:var(--bg-secondary);position:relative}.ct-page.ct-fullscreen{height:100vh;background:var(--bg-primary)}.ct-info-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary);min-height:44px;flex-shrink:0}.ct-info-left{display:flex;align-items:center;gap:10px;min-width:0}.ct-exercise-name{display:flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ct-exercise-name svg{color:var(--accent-primary);flex-shrink:0}.ct-exercise-name svg.ct-lock-icon{color:var(--accent-danger)}.ct-allot-badge{font-size:.6875rem;font-weight:500;color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-full);padding:2px 8px;white-space:nowrap}.ct-process-badge{font-size:.6875rem;font-weight:600;color:var(--accent-warning);background:color-mix(in srgb,var(--accent-warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent-warning) 30%,transparent);border-radius:var(--radius-full);padding:2px 8px;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.ct-vm-ops-badge{font-size:.6875rem;font-weight:500;color:var(--accent-info);background:color-mix(in srgb,var(--accent-info) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent-info) 30%,transparent);border-radius:var(--radius-full);padding:2px 8px;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.ct-challenge-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-full);border:none;background:var(--accent-primary-light);color:var(--accent-primary);font-size:.75rem;cursor:pointer;transition:all .2s ease;flex-shrink:0}.ct-challenge-btn:hover{background:var(--accent-primary);color:var(--text-inverse);transform:scale(1.1)}.ct-info-center{display:flex;align-items:center;gap:12px;flex-shrink:0}.ct-time-section{min-width:160px}.ct-time-text{font-size:.6875rem;font-weight:600;color:var(--text-secondary);margin-bottom:3px;white-space:nowrap}.ct-time-bar{height:5px;background:var(--bg-secondary);border-radius:var(--radius-full);overflow:hidden;border:1px solid var(--border-primary)}.ct-time-fill{height:100%;background:var(--accent-info, var(--accent-primary));border-radius:var(--radius-full);transition:width var(--transition-slow)}.ct-time-fill.animated{background:repeating-linear-gradient(-45deg,var(--accent-info, var(--accent-primary)),var(--accent-info, var(--accent-primary)) 10px,rgba(255,255,255,.15) 10px,rgba(255,255,255,.15) 20px);background-size:28px 100%;animation:ct-stripe 1s linear infinite}@keyframes ct-stripe{0%{background-position:0 0}to{background-position:28px 0}}.ct-team-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:var(--accent-primary);color:var(--text-inverse);font-size:.6875rem;font-weight:600;border-radius:var(--radius-full);white-space:nowrap}.ct-info-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.ct-body{display:flex;flex:1;min-height:0;overflow:hidden}.ct-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;position:relative}.ct-vm-legend{max-height:0;overflow:hidden;transition:max-height .35s ease,opacity .25s ease;opacity:0;border-bottom:1px solid transparent}.ct-vm-legend.open{max-height:300px;opacity:1;border-bottom-color:var(--border-primary)}.ct-vm-legend-header{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-primary)}.ct-vm-legend-title{font-size:.8125rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px}.ct-vm-legend-body{padding:10px 16px;background:var(--bg-secondary)}.ct-vm-controls{display:flex;flex-wrap:wrap;gap:8px}.ct-control-item{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-sm);font-size:.8125rem;color:var(--text-secondary)}.ct-control-item .btn{pointer-events:none;min-height:26px;padding:2px 8px;font-size:.75rem}.ct-status-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.ct-status-dot.up{background:var(--accent-success);box-shadow:0 0 4px var(--accent-success)}.ct-status-dot.down{background:var(--accent-danger);box-shadow:0 0 4px var(--accent-danger)}.ct-canvas-wrapper{flex:1;min-height:0;position:relative}.ct-canvas-wrapper .topology-canvas,.ct-canvas-wrapper .topology-canvas__flow{height:100%}.ct-sidebar{width:420px;flex-shrink:0;display:flex;flex-direction:column;background:var(--bg-card);overflow:hidden;border-left:1px solid var(--border-primary);position:relative}.ct-sidebar.hidden{width:0!important;opacity:0;overflow:hidden;border-left:none;transition:width .3s ease,opacity .25s ease}.ct-resize-handle{position:absolute;top:0;left:-3px;width:6px;height:100%;cursor:col-resize;z-index:10;background:transparent;transition:background .15s ease}.ct-resize-handle:hover,.ct-resize-handle:active{background:var(--accent-primary);opacity:.5}.ct-sidebar-toggle{position:fixed;top:50%;right:0;transform:translateY(-50%);width:28px;height:64px;background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md) 0 0 var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:100;box-shadow:-2px 0 8px #0003;transition:all .3s ease;font-size:.875rem}.ct-sidebar-toggle:hover{background:var(--accent-secondary);width:32px}[data-theme=dark] .ct-info-strip{background:var(--bg-tertiary);border-bottom-color:var(--border-primary)}[data-theme=dark] .ct-vm-legend-header{background:var(--bg-tertiary)}[data-theme=dark] .ct-vm-legend-body{background:var(--bg-secondary)}[data-theme=dark] .ct-control-item{background:var(--bg-card);border-color:var(--border-secondary);color:var(--text-secondary)}.ct-resize-handle-v{display:none}@media (max-width: 1024px){.ct-body{flex-direction:column}.ct-main{flex:none;height:var(--ct-top-pct, 55%);min-height:0;border-right:none;border-bottom:none;overflow:hidden}.ct-body.ct-sidebar-closed .ct-main{height:auto;flex:1}.ct-resize-handle{display:none}.ct-resize-handle-v{display:block;width:100%;height:6px;cursor:row-resize;background:var(--border-primary);flex-shrink:0;position:relative;z-index:10;transition:background .15s ease}.ct-resize-handle-v:hover,.ct-resize-handle-v:active{background:var(--accent-primary);opacity:.6}.ct-sidebar{width:100%!important;flex:1;border-left:none}.ct-sidebar.hidden{width:100%!important;flex:0;height:0;overflow:hidden}.ct-sidebar-toggle{top:auto;bottom:16px;right:16px;transform:none;width:36px;height:36px;border-radius:var(--radius-full)}.ct-sidebar-toggle:hover{width:36px}}@media (max-width: 768px){.ct-info-strip{padding:4px 10px;gap:8px;flex-wrap:wrap}.ct-info-left{gap:6px}.ct-exercise-name{font-size:.75rem}.ct-time-section{min-width:120px}.ct-info-right .btn{padding:3px 8px;font-size:.6875rem}}.vcs-root{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--bg-primary, #ffffff);color:var(--text-primary, #111827);overflow:hidden}.vcs-root>:first-child{flex:1 1 auto;min-height:0}.vcs-state{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:16px;font-size:14px;color:var(--text-secondary, #6b7280);background:var(--bg-primary, #ffffff)}.vcs-state-error{color:var(--color-danger, #b91c1c)}@media (max-width: 768px){.vcs-root .mv-body{flex-direction:row}.vcs-root .mv-manual-list{width:140px;max-height:none;display:block;overflow-x:hidden;overflow-y:auto;border-right:1px solid var(--sidebar-border);border-bottom:none}.vcs-root .mv-manual-list .mv-topic-item{border-right:none;border-bottom:1px solid var(--sidebar-border)}.vcs-root .mv-topic-list{width:160px;max-height:none;border-right:1px solid var(--sidebar-border);border-bottom:none}.vcs-root .mv-topic-scroll{display:block;overflow-x:hidden;overflow-y:auto}.vcs-root .mv-topic-item{display:block;border-right:none;border-bottom:1px solid var(--sidebar-border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.basket-page{padding:var(--spacing-md);padding-bottom:80px}.basket-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);color:var(--text-muted);gap:var(--spacing-md)}.basket-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--spacing-lg);padding:var(--spacing-md) 0}.basket-card-remove-icon{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;background:#0000008c;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.8rem;transition:all var(--transition-fast);z-index:2}.basket-card-remove-icon:hover{background:var(--accent-danger)}.basket-card-remove-icon:disabled{cursor:not-allowed;opacity:.7}.basket-sticky-bar{position:fixed;bottom:0;left:var(--sidebar-width, 240px);right:0;z-index:100;background:var(--bg-primary);border-top:1px solid var(--border-primary);box-shadow:0 -4px 16px #00000014;padding:12px 24px;transition:left .3s ease}.basket-sticky-inner{max-width:1600px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.basket-sticky-summary{display:flex;align-items:center;gap:8px;font-size:.875rem;font-weight:600;color:var(--text-secondary)}.basket-sticky-summary svg{font-size:1rem;color:var(--accent-primary)}.basket-enroll-btn{padding:10px 28px;font-size:.875rem;font-weight:600;border-radius:var(--radius-md, 8px);white-space:nowrap}.basket-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl) var(--spacing-lg);text-align:center}.basket-empty-icon{font-size:4rem;color:var(--text-muted);opacity:.4;margin-bottom:var(--spacing-lg)}.basket-empty-state h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.basket-empty-state p{font-size:.9375rem;color:var(--text-muted);margin:0 0 var(--spacing-lg) 0;max-width:400px}.main-content.collapsed .basket-sticky-bar{left:var(--sidebar-collapsed, 72px)}@media (max-width: 1024px){.basket-sticky-bar{left:0}}@media (max-width: 768px){.basket-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--spacing-md)}.basket-sticky-bar{padding:10px 16px}.basket-enroll-btn{padding:10px 20px}}@media (max-width: 480px){.basket-grid{grid-template-columns:1fr}.basket-sticky-inner{flex-direction:column;gap:8px}.basket-enroll-btn{width:100%}}.not-found-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);padding:var(--spacing-lg)}.not-found-container{max-width:500px;text-align:center}.error-icon{width:80px;height:80px;background:var(--accent-warning-light);color:var(--accent-warning);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;margin:0 auto var(--spacing-xl);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.error-code{font-size:6rem;font-weight:800;color:var(--text-primary);line-height:1;margin-bottom:var(--spacing-sm);background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.error-title{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-md)}.error-message{color:var(--text-muted);font-size:.875rem;line-height:1.6;margin-bottom:var(--spacing-xl)}.error-actions{display:flex;justify-content:center;gap:var(--spacing-md)}.error-actions .btn{min-width:140px}.ctf-browse{max-width:1200px;padding:var(--spacing-sm);animation:ctfFadeIn .3s ease}.ctf-browse__header{margin-bottom:var(--spacing-lg);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-md) var(--spacing-lg);box-shadow:0 2px 12px #0000000f}.ctf-browse__title{font-size:1.375rem;font-weight:700;color:var(--text-primary);margin:0 0 4px}.ctf-browse__subtitle{font-size:.8125rem;color:var(--text-muted);margin:0}.ctf-browse__filters{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.ctf-browse__search{flex:1;min-width:220px;height:40px;padding:0 var(--spacing-md);border:1px solid transparent;border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;outline:none;transition:all .2s ease}.ctf-browse__search:focus{background:var(--bg-primary);border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.ctf-browse__search::placeholder{color:var(--text-muted)}.ctf-browse__select{height:40px;padding:0 var(--spacing-md);border:1px solid transparent;border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;outline:none;cursor:pointer;transition:all .2s ease;min-width:140px}.ctf-browse__select:focus{background:var(--bg-primary);border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.ctf-browse__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:var(--spacing-md)}.ctf-browse__card{padding:var(--spacing-lg);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;box-shadow:0 2px 12px #0000000f;position:relative;overflow:hidden}.ctf-browse__card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent-primary);opacity:0;transition:opacity .2s ease}.ctf-browse__card:hover{border-color:var(--accent-primary);box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.ctf-browse__card:hover:before{opacity:1}.ctf-browse__card:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.ctf-browse__card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.ctf-browse__card-difficulty{padding:4px 10px;border-radius:var(--radius-full);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.ctf-browse__card-difficulty--easy{background:var(--easy-bg);color:var(--easy)}.ctf-browse__card-difficulty--medium{background:var(--medium-bg);color:var(--medium)}.ctf-browse__card-difficulty--hard{background:var(--hard-bg);color:var(--hard)}.ctf-browse__card-difficulty--insane{background:var(--insane-bg);color:var(--insane)}.ctf-browse__card-status{font-size:.7rem;font-weight:600;color:var(--accent-success);text-transform:uppercase;letter-spacing:.3px}.ctf-browse__card-name{font-size:1.125rem;font-weight:700;color:var(--text-primary);margin:0 0 var(--spacing-xs);line-height:1.3}.ctf-browse__card-codename{font-size:.7rem;font-weight:700;letter-spacing:1px;color:var(--accent-primary);font-family:Fira Code,monospace;background:var(--accent-primary-light);padding:2px 8px;border-radius:var(--radius-sm);display:inline-block}.ctf-browse__card-desc{font-size:.8125rem;color:var(--text-secondary);line-height:1.6;margin:var(--spacing-md) 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.ctf-browse__card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:var(--spacing-md);border-top:1px solid var(--border-primary)}.ctf-browse__card-stats{display:flex;gap:var(--spacing-md);font-size:.75rem;color:var(--text-muted)}.ctf-browse__card-category{font-size:.7rem;font-weight:600;padding:4px 10px;border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-secondary)}.ctf-browse__empty{text-align:center;padding:var(--spacing-2xl) var(--spacing-lg);color:var(--text-muted);font-size:.875rem}@media (max-width: 768px){.ctf-browse__header{padding:var(--spacing-md)}.ctf-browse__grid{grid-template-columns:1fr}.ctf-browse__filters{flex-direction:column}.ctf-browse__search,.ctf-browse__select{min-width:0}.ctf-browse__card{padding:var(--spacing-md)}.ctf-browse__card-name{font-size:1rem}}.dependency-tree{position:relative;width:100%;height:500px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow:hidden}.dependency-tree__svg{width:100%;height:100%;-webkit-user-select:none;user-select:none}.dependency-tree__controls{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:4px;z-index:10}.dependency-tree__btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:16px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.dependency-tree__btn:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.connection-line--active{stroke:var(--accent-success);opacity:.8}.connection-line--locked{stroke:var(--text-muted);opacity:.3;stroke-dasharray:6,4}.challenge-node{transition:transform var(--transition-fast)}.challenge-node:hover .challenge-node__bg{filter:brightness(1.05)}.challenge-node__bg{fill:var(--bg-primary);stroke:var(--border-primary);stroke-width:1.5;transition:all var(--transition-fast)}.challenge-node--completed .challenge-node__bg{stroke:var(--accent-success);stroke-width:2}.challenge-node--available .challenge-node__bg{stroke:var(--accent-primary);stroke-width:2;filter:url(#node-glow)}.challenge-node__pulse{fill:var(--accent-primary);animation:pulse-ring 2s ease-in-out infinite}@keyframes pulse-ring{0%,to{opacity:1;r:6}50%{opacity:.5;r:10}}.challenge-node--locked{opacity:.5}.challenge-node--locked .challenge-node__bg{stroke:var(--border-primary);stroke-dasharray:4,3}.challenge-node__name{fill:var(--text-primary)}.challenge-node__category{fill:var(--text-muted)}.challenge-node__points{fill:var(--accent-primary)}.challenge-node--locked .challenge-node__name,.challenge-node--locked .challenge-node__category,.challenge-node--locked .challenge-node__points{fill:var(--text-muted)}.dependency-tree__legend{position:absolute;bottom:12px;left:12px;display:flex;gap:16px;padding:8px 14px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:12px;color:var(--text-secondary)}.legend-item{display:flex;align-items:center;gap:6px}.legend-dot{width:10px;height:10px;border-radius:50%}.legend-dot--completed{background:var(--accent-success)}.legend-dot--available{background:var(--accent-primary);box-shadow:0 0 6px var(--accent-primary)}.legend-dot--locked{background:var(--text-muted);opacity:.5}@media (max-width: 768px){.dependency-tree{height:400px}.dependency-tree__legend{gap:10px;font-size:11px;padding:6px 10px}}@media (max-width: 576px){.dependency-tree{height:320px}}.cam-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.cam{width:100%;max-width:960px;max-height:90vh;background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;overflow:hidden}.cam__header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 12px;border-bottom:1px solid var(--border-primary)}.cam__header-left{flex:1;min-width:0}.cam__title{font-size:20px;font-weight:700;color:var(--text-primary);margin:0 0 8px}.cam__meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cam__difficulty{padding:2px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.cam__difficulty--easy{background:#22c55e1f;color:var(--easy)}.cam__difficulty--medium{background:#f973161f;color:var(--medium)}.cam__difficulty--hard{background:#ef44441f;color:var(--hard)}.cam__difficulty--insane{background:#a855f71f;color:var(--insane)}.cam__category{font-size:13px;color:var(--text-secondary)}.cam__points{font-size:14px;font-weight:700;color:var(--accent-primary)}.cam__close-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);font-size:24px;cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.cam__close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.cam__tabs{display:flex;border-bottom:1px solid var(--border-primary);padding:0 24px}.cam__tab{padding:10px 20px;border:none;background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:all var(--transition-fast)}.cam__tab:hover{color:var(--text-primary)}.cam__tab--active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.cam__content{flex:1;overflow-y:auto;padding:20px 24px}.cam__challenge-layout{display:flex;gap:20px;min-height:300px}.cam__task-sidebar{width:200px;flex-shrink:0;display:flex;flex-direction:column;gap:6px}.cam__task-sidebar-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 8px}.cam__task-btn{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);cursor:pointer;transition:all var(--transition-fast)}.cam__task-btn:hover{border-color:var(--accent-primary)}.cam__task-btn--active{border-color:var(--accent-primary);background:#0891b214}.cam__task-btn--complete{border-color:var(--accent-success)}.cam__task-btn-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cam__task-btn-progress{font-size:11px;color:var(--text-muted);flex-shrink:0;margin-left:8px}.cam__progress-summary{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-primary)}.cam__progress-bar{width:100%;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.cam__progress-fill{height:100%;background:var(--accent-primary);border-radius:3px;transition:width var(--transition-normal)}.cam__progress-text{display:block;margin-top:6px;font-size:11px;color:var(--text-muted);text-align:center}.cam__questions-area{flex:1;min-width:0}.cam__task-header{margin-bottom:16px}.cam__task-header h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.cam__task-desc{font-size:13px;color:var(--text-secondary);margin:0}.cam__questions-list{display:flex;flex-direction:column;gap:16px}.question-renderer{padding:16px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary)}.question-renderer--correct{border-color:var(--accent-success);background:#22c55e0a}.question-renderer--wrong{border-color:var(--accent-danger);background:#ef44440a}.question-renderer__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.question-renderer__type-badge{padding:2px 8px;border-radius:var(--radius-sm);font-size:10px;font-weight:700;letter-spacing:.5px;background:#0891b21a;color:var(--accent-primary)}.question-renderer__points{font-size:13px;font-weight:600;color:var(--accent-primary)}.question-renderer__text{font-size:14px;color:var(--text-primary);margin:0 0 14px;line-height:1.5}.question-renderer__options{display:flex;flex-direction:column;gap:8px}.question-renderer__option{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:var(--bg-primary)}.question-renderer__option:hover:not(:has(input:disabled)){border-color:var(--accent-primary)}.question-renderer__option--selected{border-color:var(--accent-primary);background:#0891b20f}.question-renderer__option--correct{border-color:var(--accent-success)!important;background:#22c55e14!important}.question-renderer__option--wrong{border-color:var(--accent-danger)!important;background:#ef444414!important}.question-renderer__option input[type=radio]{accent-color:var(--accent-primary)}.question-renderer__option-label{font-weight:600;color:var(--text-secondary);font-size:13px;min-width:20px}.question-renderer__option-text{font-size:13px;color:var(--text-primary)}.question-renderer__flag-input{margin-bottom:4px}.question-renderer__input{width:100%;padding:10px 14px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:14px;font-family:Fira Code,Courier New,monospace;outline:none;transition:border-color var(--transition-fast)}.question-renderer__input:focus{border-color:var(--accent-primary)}.question-renderer__input::placeholder{color:var(--text-muted);font-style:italic}.question-renderer__textarea{width:100%;padding:10px 14px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:13px;line-height:1.5;resize:vertical;outline:none;transition:border-color var(--transition-fast)}.question-renderer__textarea:focus{border-color:var(--accent-primary)}.question-renderer__footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.question-renderer__submit-btn{padding:8px 20px;border:none;border-radius:var(--radius-md);background:var(--accent-primary);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:opacity var(--transition-fast)}.question-renderer__submit-btn:hover:not(:disabled){opacity:.9}.question-renderer__submit-btn:disabled{opacity:.5;cursor:not-allowed}.question-renderer__result{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600}.question-renderer__result--correct{color:var(--accent-success)}.question-renderer__result--wrong{color:var(--accent-danger)}.question-renderer__result-icon{font-size:16px}.question-renderer__attempts{font-size:11px;color:var(--text-muted)}.cam__hints{display:flex;flex-direction:column;gap:12px}.cam__hint{padding:16px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary)}.cam__hint--revealed{border-color:var(--accent-info);background:#3b82f60a}.cam__hint-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cam__hint-label{font-size:13px;font-weight:600;color:var(--text-primary)}.cam__hint-cost{font-size:12px;font-weight:600;color:var(--accent-warning)}.cam__hint--revealed .cam__hint-cost{color:var(--accent-info)}.cam__hint-text{font-size:14px;color:var(--text-primary);margin:0;line-height:1.5}.cam__hint-locked{text-align:center}.cam__hint-reveal-btn{padding:8px 20px;border:1px solid var(--accent-warning);border-radius:var(--radius-md);background:transparent;color:var(--accent-warning);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.cam__hint-reveal-btn:hover{background:#f59e0b1a}.cam__hint-confirm{text-align:center}.cam__hint-confirm p{font-size:13px;color:var(--text-secondary);margin:0 0 10px}.cam__hint-confirm-actions{display:flex;gap:8px;justify-content:center}.cam__hint-confirm-btn{padding:6px 16px;border:none;border-radius:var(--radius-md);font-size:12px;font-weight:600;cursor:pointer}.cam__hint-confirm-btn--yes{background:var(--accent-warning);color:#fff}.cam__hint-confirm-btn--no{background:var(--bg-tertiary);color:var(--text-secondary)}.cam__info h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 10px}.cam__info-desc{font-size:14px;color:var(--text-secondary);line-height:1.6;margin:0 0 20px}.cam__info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.cam__info-item{padding:12px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-primary)}.cam__info-label{display:block;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.cam__info-value{font-size:15px;font-weight:600;color:var(--text-primary)}.cam__empty-msg{text-align:center;color:var(--text-muted);padding:40px 0;font-size:14px}.cam__footer{padding:16px 24px;border-top:1px solid var(--border-primary);display:flex;align-items:center;justify-content:center}.cam__completed-badge{padding:8px 24px;background:#22c55e1a;color:var(--accent-success);border-radius:var(--radius-full);font-size:14px;font-weight:700}.cam__complete-btn{padding:10px 32px;border:none;border-radius:var(--radius-md);background:var(--accent-success);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:opacity var(--transition-fast)}.cam__complete-btn:hover{opacity:.9}.cam__footer-hint{font-size:13px;color:var(--text-muted)}@media (max-width: 768px){.cam-overlay{padding:10px}.cam{max-height:95vh}.cam__challenge-layout{flex-direction:column}.cam__task-sidebar{width:100%;flex-direction:row;flex-wrap:wrap;gap:8px}.cam__task-sidebar-title{width:100%}.cam__task-btn{flex:1;min-width:120px}.cam__progress-summary{width:100%;margin-top:8px;padding-top:8px}.cam__info-grid{grid-template-columns:1fr 1fr}}@media (max-width: 576px){.cam__header{padding:14px 16px 10px}.cam__content{padding:14px 16px}.cam__tabs{padding:0 16px}.cam__tab{padding:8px 12px;font-size:12px}.cam__info-grid{grid-template-columns:1fr}}.challenge-card{padding:16px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.challenge-card:hover:not(.challenge-card--locked){border-color:var(--accent-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.challenge-card--locked{opacity:.5;cursor:not-allowed}.challenge-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.challenge-card__difficulty{padding:2px 10px;border-radius:var(--radius-full);font-size:10px;font-weight:700;text-transform:uppercase}.challenge-card__difficulty--easy{background:#22c55e1f;color:var(--easy)}.challenge-card__difficulty--medium{background:#f973161f;color:var(--medium)}.challenge-card__difficulty--hard{background:#ef44441f;color:var(--hard)}.challenge-card__difficulty--insane{background:#a855f71f;color:var(--insane)}.challenge-card__status{font-size:11px;font-weight:600}.challenge-card__status--completed{color:var(--accent-success)}.challenge-card__status--available{color:var(--accent-primary)}.challenge-card__status--locked{color:var(--text-muted)}.challenge-card__name{font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.challenge-card__category{font-size:12px;color:var(--text-muted);margin:0 0 12px}.challenge-card__footer{display:flex;align-items:center;justify-content:space-between}.challenge-card__points{font-size:14px;font-weight:700;color:var(--accent-primary)}.challenge-card__meta{font-size:11px;color:var(--text-muted)}.hint-panel__empty{text-align:center;color:var(--text-muted);padding:20px;font-size:13px}.hint-panel__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.hint-panel__title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.hint-panel__count{font-size:12px;color:var(--text-muted)}.hint-panel__list{display:flex;flex-direction:column;gap:10px}.hint-panel__item{padding:12px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary)}.hint-panel__item--revealed{border-color:var(--accent-info);background:#3b82f60a}.hint-panel__item-header{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.hint-panel__cost{color:var(--accent-warning);font-size:12px}.hint-panel__text{font-size:13px;color:var(--text-primary);line-height:1.5;margin:0}.hint-panel__unlock-btn{width:100%;padding:8px;border:1px dashed var(--border-primary);border-radius:var(--radius-md);background:transparent;color:var(--text-muted);font-size:12px;cursor:pointer;transition:all var(--transition-fast)}.hint-panel__unlock-btn:hover{border-color:var(--accent-warning);color:var(--accent-warning)}.hint-panel__confirm{text-align:center}.hint-panel__confirm p{font-size:12px;color:var(--text-secondary);margin:0 0 8px}.hint-panel__confirm-btns{display:flex;gap:8px;justify-content:center}.hint-panel__btn{padding:5px 14px;border:none;border-radius:var(--radius-sm);font-size:12px;font-weight:600;cursor:pointer}.hint-panel__btn--reveal{background:var(--accent-warning);color:#fff}.hint-panel__btn--cancel{background:var(--bg-tertiary);color:var(--text-secondary)}.story-panel{display:flex;gap:20px;min-height:300px}.story-panel__nav{width:220px;flex-shrink:0;display:flex;flex-direction:column;gap:6px}.story-panel__nav-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);cursor:pointer;transition:all var(--transition-fast);text-align:left}.story-panel__nav-btn:hover:not(:disabled){border-color:var(--accent-primary)}.story-panel__nav-btn--active{border-color:var(--accent-primary);background:#0891b214}.story-panel__nav-btn--locked{opacity:.5;cursor:not-allowed}.story-panel__nav-order{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-primary);color:#fff;font-size:12px;font-weight:700;flex-shrink:0}.story-panel__nav-btn--locked .story-panel__nav-order{background:var(--text-muted)}.story-panel__nav-title{font-size:13px;font-weight:500;color:var(--text-primary);flex:1}.story-panel__nav-lock{font-size:12px;flex-shrink:0}.story-panel__content{flex:1;padding:20px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);overflow-y:auto;max-height:500px}.story-panel__markdown{font-size:14px;line-height:1.8;color:var(--text-primary)}.story-panel__markdown h1{font-size:22px;font-weight:700;margin:0 0 16px;color:var(--text-primary)}.story-panel__markdown h2{font-size:18px;font-weight:600;margin:20px 0 12px;color:var(--text-primary)}.story-panel__markdown strong{color:var(--accent-primary)}.story-panel__markdown em{color:var(--text-secondary);font-style:italic}.story-panel__markdown p{margin:0 0 12px}.story-panel__locked-msg{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:var(--text-muted)}.story-panel__lock-icon{font-size:36px;margin-bottom:12px}.story-panel__locked-msg p{font-size:14px;margin:0}@media (max-width: 768px){.story-panel{flex-direction:column}.story-panel__nav{width:100%;flex-direction:row;flex-wrap:wrap}.story-panel__nav-btn{flex:1;min-width:120px}.story-panel__content{max-height:400px}}.progress-tracker{padding:16px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg)}.progress-tracker__title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 14px}.progress-tracker__stat{margin-bottom:14px}.progress-tracker__stat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.progress-tracker__stat-label{font-size:12px;color:var(--text-muted)}.progress-tracker__stat-value{font-size:13px;font-weight:600;color:var(--text-primary)}.progress-tracker__bar{width:100%;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.progress-tracker__bar-fill{height:100%;border-radius:4px;transition:width var(--transition-normal)}.progress-tracker__bar-fill--score{background:var(--accent-primary)}.progress-tracker__bar-fill--challenges{background:var(--accent-success)}.progress-tracker__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border-primary)}.progress-tracker__grid-item{text-align:center;padding:8px 4px;background:var(--bg-secondary);border-radius:var(--radius-md)}.progress-tracker__grid-value{display:block;font-size:18px;font-weight:700;color:var(--accent-primary)}.progress-tracker__grid-label{display:block;font-size:10px;color:var(--text-muted);margin-top:2px;text-transform:uppercase;letter-spacing:.3px}.ctf-leaderboard{overflow-x:auto}.ctf-leaderboard__table{width:100%;border-collapse:collapse}.ctf-leaderboard__th{padding:10px 14px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);text-align:left;border-bottom:2px solid var(--border-primary);white-space:nowrap}.ctf-leaderboard__th--rank{width:60px}.ctf-leaderboard__th--right{text-align:right}.ctf-leaderboard__row{transition:background var(--transition-fast)}.ctf-leaderboard__row:hover{background:var(--bg-hover)}.ctf-leaderboard__row--current{background:#0891b20f}.ctf-leaderboard__row--current:hover{background:#0891b21a}.ctf-leaderboard__td{padding:12px 14px;font-size:13px;color:var(--text-primary);border-bottom:1px solid var(--border-primary)}.ctf-leaderboard__td--rank{font-weight:700}.ctf-leaderboard__td--right{text-align:right}.ctf-leaderboard__td--time{font-size:12px;color:var(--text-muted)}.ctf-leaderboard__rank{font-size:16px}.ctf-leaderboard__player{display:flex;align-items:center;gap:10px}.ctf-leaderboard__avatar{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-primary);color:#fff;font-size:13px;font-weight:700;flex-shrink:0}.ctf-leaderboard__row--top1 .ctf-leaderboard__avatar{background:#fbbf24;color:#78350f}.ctf-leaderboard__row--top2 .ctf-leaderboard__avatar{background:#9ca3af;color:#1f2937}.ctf-leaderboard__row--top3 .ctf-leaderboard__avatar{background:#d97706;color:#fff}.ctf-leaderboard__username{font-weight:500;display:flex;align-items:center;gap:8px}.ctf-leaderboard__you-badge{padding:1px 6px;border-radius:var(--radius-sm);background:var(--accent-primary);color:#fff;font-size:9px;font-weight:700;letter-spacing:.5px}.ctf-leaderboard__score{font-weight:700;color:var(--accent-primary)}.ctf-leaderboard__blood{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:#ef44441a;color:var(--accent-danger);font-size:11px;font-weight:700}@media (max-width: 768px){.ctf-leaderboard__th--hide-tablet,.ctf-leaderboard__td--hide-tablet{display:none}}@media (max-width: 576px){.ctf-leaderboard__th--hide-mobile,.ctf-leaderboard__td--hide-mobile{display:none}.ctf-leaderboard__td{padding:10px 8px;font-size:12px}}.ctf-timer{display:flex;flex-direction:column;align-items:center;padding:14px 16px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg)}.ctf-timer__label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px}.ctf-timer__time{font-size:24px;font-weight:700;font-family:Fira Code,Courier New,monospace;color:var(--text-primary);letter-spacing:2px}.ctf-timer--low .ctf-timer__time{color:var(--accent-danger);animation:timer-pulse 1s ease-in-out infinite}.ctf-timer--expired .ctf-timer__time{color:var(--accent-danger);opacity:.6}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.6}}.ctf-play{padding:0;animation:ctfFadeIn .3s ease}.ctf-play__error h2{margin:0 0 var(--spacing-sm);color:var(--text-primary);font-size:1.125rem}.ctf-play__error button{margin-top:var(--spacing-md);height:40px;padding:0 var(--spacing-lg);border:1px solid var(--accent-primary);border-radius:var(--radius-md);background:transparent;color:var(--accent-primary);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center}.ctf-play__error button:hover{background:var(--accent-primary);color:#fff}.ctf-play__header{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--spacing-lg);gap:var(--spacing-md);background:var(--bg-primary);border-bottom:1px solid var(--border-primary);box-shadow:0 2px 12px #0000000f}.ctf-play__header-left{display:flex;align-items:flex-start;gap:var(--spacing-md);min-width:0}.ctf-play__back-btn{height:40px;padding:0 var(--spacing-md);border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s ease;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.ctf-play__back-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.ctf-play__title{font-size:1.375rem;font-weight:700;color:var(--text-primary);margin:0 0 var(--spacing-sm);line-height:1.3}.ctf-play__meta{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.ctf-play__codename{font-size:.7rem;font-weight:700;letter-spacing:1px;color:var(--accent-primary);font-family:Fira Code,monospace;background:var(--accent-primary-light);padding:2px 8px;border-radius:var(--radius-sm)}.ctf-play__difficulty{padding:4px 10px;border-radius:var(--radius-full);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.ctf-play__difficulty--easy{background:var(--easy-bg);color:var(--easy)}.ctf-play__difficulty--medium{background:var(--medium-bg);color:var(--medium)}.ctf-play__difficulty--hard{background:var(--hard-bg);color:var(--hard)}.ctf-play__difficulty--insane{background:var(--insane-bg);color:var(--insane)}.ctf-play__category{font-size:.75rem;color:var(--text-secondary);font-weight:500}.ctf-play__participants{font-size:.75rem;color:var(--text-muted)}.ctf-play__header-actions{flex-shrink:0}.ctf-play__reset-btn{height:40px;padding:0 var(--spacing-md);border:1px solid var(--accent-danger);border-radius:var(--radius-md);background:transparent;color:var(--accent-danger);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center}.ctf-play__reset-btn:hover{background:var(--accent-danger);color:#fff}.ctf-play__tabs{display:flex;gap:0;padding:0 var(--spacing-lg);border-bottom:2px solid var(--border-primary);background:var(--bg-primary)}.ctf-play__tab{padding:var(--spacing-md) var(--spacing-lg);border:none;background:transparent;color:var(--text-muted);font-size:.8125rem;font-weight:600;cursor:pointer;position:relative;transition:color .2s ease;letter-spacing:.2px}.ctf-play__tab:hover{color:var(--text-primary)}.ctf-play__tab--active{color:var(--accent-primary)}.ctf-play__tab--active:after{content:"";position:absolute;bottom:-2px;left:var(--spacing-sm);right:var(--spacing-sm);height:2px;background:var(--accent-primary);border-radius:2px 2px 0 0}.ctf-play__body{display:flex;gap:var(--spacing-lg);padding:var(--spacing-lg)}.ctf-play__main{flex:1;min-width:0}.ctf-play__sidebar{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--spacing-md)}.ctf-play__campaign-info{padding:var(--spacing-lg);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:0 2px 12px #0000000f}.ctf-play__campaign-info h3{font-size:.7rem;font-weight:700;color:var(--text-muted);margin:0 0 var(--spacing-md);text-transform:uppercase;letter-spacing:.5px;padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.ctf-play__briefing{font-size:.8125rem;color:var(--text-secondary);line-height:1.6;margin:0 0 var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.ctf-play__info-row{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) 0;font-size:.8125rem;border-bottom:1px solid var(--border-primary)}.ctf-play__info-row:last-child{border-bottom:none;padding-bottom:0}.ctf-play__info-row span:first-child{color:var(--text-muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.ctf-play__info-row span:last-child{color:var(--text-primary);font-weight:600}.ctf-play__status-badge{padding:4px 10px;border-radius:var(--radius-full);background:var(--accent-success-light);color:var(--accent-success);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px}@media (max-width: 1024px){.ctf-play__sidebar{width:240px}}@media (max-width: 768px){.ctf-play__body{flex-direction:column;padding:var(--spacing-md)}.ctf-play__sidebar{width:100%;flex-direction:row;flex-wrap:wrap}.ctf-play__sidebar>*{flex:1;min-width:200px}.ctf-play__header{flex-direction:column;padding:var(--spacing-md)}.ctf-play__tabs{padding:0 var(--spacing-md);overflow-x:auto}.ctf-play__tab{padding:var(--spacing-sm) var(--spacing-md);font-size:.75rem;white-space:nowrap}}@media (max-width: 576px){.ctf-play__header-left{flex-direction:column;gap:var(--spacing-sm)}.ctf-play__title{font-size:1.125rem}.ctf-play__meta{gap:var(--spacing-sm)}.ctf-play__sidebar{flex-direction:column}.ctf-play__sidebar>*{min-width:0}}.ctf-manager{padding:var(--spacing-sm);animation:ctfFadeIn .3s ease}.ctf-manager__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-md) var(--spacing-lg);box-shadow:0 2px 12px #0000000f}.ctf-manager__title{font-size:1.375rem;font-weight:700;color:var(--text-primary);margin:0 0 4px}.ctf-manager__subtitle{font-size:.8125rem;color:var(--text-muted);margin:0}.ctf-manager__create-btn{height:40px;padding:0 var(--spacing-lg);border:none;border-radius:var(--radius-md);background:var(--accent-primary);color:#fff;font-size:.8125rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s ease;box-shadow:0 2px 12px #0000000f;display:inline-flex;align-items:center;justify-content:center}.ctf-manager__create-btn:hover{background:var(--accent-secondary);box-shadow:0 4px 16px #0000001a}.ctf-manager__card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:0 2px 12px #0000000f;overflow:visible}.ctf-manager__card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary)}.ctf-manager__search{width:320px;min-width:220px;height:40px;padding:0 var(--spacing-md);background:var(--bg-secondary);border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;outline:none;transition:all .2s ease;flex-shrink:0}.ctf-manager__search:focus{background:var(--bg-primary);border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.ctf-manager__search::placeholder{color:var(--text-muted)}.ctf-manager__header-actions{display:flex;gap:var(--spacing-sm);align-items:center;flex-shrink:0}.ctf-manager__select{height:40px;padding:0 var(--spacing-md);background:var(--bg-secondary);border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;outline:none;cursor:pointer;transition:all .2s ease;min-width:140px}.ctf-manager__select:focus{background:var(--bg-primary);border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.ctf-manager__table-wrap{overflow-x:auto}.ctf-manager__table{width:100%;border-collapse:separate;border-spacing:0}.ctf-manager__table thead th{padding:var(--spacing-md) var(--spacing-sm);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border-primary);white-space:nowrap;background:var(--bg-secondary)}.ctf-manager__th-right{text-align:right!important}.ctf-manager__row{transition:background .2s ease}.ctf-manager__row:hover{background:var(--bg-secondary)}.ctf-manager__table tbody td{padding:var(--spacing-md) var(--spacing-sm);font-size:.875rem;color:var(--text-primary);border-bottom:1px solid var(--border-primary);vertical-align:middle}.ctf-manager__row:last-child td{border-bottom:none}.ctf-manager__td-name{font-weight:600}.ctf-manager__td-codename{font-family:Fira Code,monospace;font-size:.7rem;color:var(--accent-primary);letter-spacing:.5px}.ctf-manager__td-right{text-align:right;font-variant-numeric:tabular-nums}.ctf-manager__status{padding:4px 10px;border-radius:var(--radius-full);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.ctf-manager__status--active{background:var(--accent-success-light);color:var(--accent-success)}.ctf-manager__status--draft{background:var(--bg-tertiary);color:var(--text-muted)}.ctf-manager__status--registration{background:var(--accent-info-light);color:var(--accent-info)}.ctf-manager__status--completed{background:var(--accent-primary-light);color:var(--accent-primary)}.ctf-manager__status--archived{background:var(--bg-tertiary);color:var(--text-muted)}.ctf-manager__difficulty{padding:4px 10px;border-radius:var(--radius-full);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.ctf-manager__difficulty--easy{background:var(--easy-bg);color:var(--easy)}.ctf-manager__difficulty--medium{background:var(--medium-bg);color:var(--medium)}.ctf-manager__difficulty--hard{background:var(--hard-bg);color:var(--hard)}.ctf-manager__difficulty--insane{background:var(--insane-bg);color:var(--insane)}.ctf-manager__actions{display:flex;gap:4px;justify-content:flex-start}.ctf-manager__action-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;border:none;background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:all .2s ease;font-size:.75rem;font-weight:600;white-space:nowrap}.ctf-manager__action-btn:hover{background:var(--accent-primary);color:#fff}.ctf-manager__action-btn--text{width:auto;padding:0 var(--spacing-md)}.ctf-manager__action-btn--secondary{background:var(--bg-tertiary);color:var(--text-secondary)}.ctf-manager__action-btn--secondary:hover{background:var(--bg-hover);color:var(--text-primary)}.ctf-manager__empty{text-align:center;padding:var(--spacing-2xl) var(--spacing-lg)!important;color:var(--text-muted);font-size:.875rem}@media (max-width: 992px){.ctf-manager__card-header{flex-wrap:wrap;gap:var(--spacing-sm)}.ctf-manager__search{flex:1;width:auto;min-width:200px}}@media (max-width: 768px){.ctf-manager__header{flex-direction:column;padding:var(--spacing-md)}.ctf-manager__create-btn{width:100%}.ctf-manager__card-header{flex-direction:column;align-items:stretch}.ctf-manager__search{width:100%;min-width:unset}.ctf-manager__header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.ctf-manager__select{flex:1;min-width:120px}}.ctf-editor{max-width:900px;padding:var(--spacing-sm);animation:ctfFadeIn .3s ease}.ctf-editor__header{margin-bottom:var(--spacing-lg);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:0 2px 12px #0000000f}.ctf-editor__back-btn{height:32px;padding:0 var(--spacing-md);border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-secondary);font-size:.8125rem;font-weight:500;cursor:pointer;margin-bottom:var(--spacing-md);transition:all .2s ease;display:inline-flex;align-items:center}.ctf-editor__back-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.ctf-editor__title{font-size:1.375rem;font-weight:700;color:var(--text-primary);margin:0}.ctf-editor__section{padding:var(--spacing-lg);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);margin-bottom:var(--spacing-md);box-shadow:0 2px 12px #0000000f}.ctf-editor__section-title{font-size:.7rem;font-weight:700;color:var(--text-muted);margin:0 0 var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-primary);text-transform:uppercase;letter-spacing:.5px}.ctf-editor__field-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.ctf-editor__field{display:flex;flex-direction:column}.ctf-editor__field--full{grid-column:1 / -1}.ctf-editor__label{font-size:.75rem;font-weight:600;color:var(--text-secondary);margin-bottom:var(--spacing-xs);text-transform:uppercase;letter-spacing:.3px}.ctf-editor__input,.ctf-editor__select{height:40px;padding:0 var(--spacing-md);border:1px solid transparent;border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;outline:none;transition:all .2s ease}.ctf-editor__input:focus,.ctf-editor__select:focus{background:var(--bg-primary);border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.ctf-editor__input::placeholder{color:var(--text-muted)}.ctf-editor__input--mono{font-family:Fira Code,monospace;letter-spacing:.5px}.ctf-editor__textarea{padding:var(--spacing-md);border:1px solid transparent;border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;line-height:1.6;resize:vertical;outline:none;font-family:inherit;transition:all .2s ease}.ctf-editor__textarea:focus{background:var(--bg-primary);border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.ctf-editor__textarea::placeholder{color:var(--text-muted)}.ctf-editor__dep-info p{font-size:.8125rem;color:var(--text-secondary);margin:0 0 var(--spacing-md)}.ctf-editor__dep-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.ctf-editor__dep-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);flex-wrap:wrap;transition:all .2s ease}.ctf-editor__dep-item:hover{border-color:var(--accent-primary)}.ctf-editor__dep-name{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.ctf-editor__dep-difficulty{padding:4px 10px;border-radius:var(--radius-full);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.ctf-editor__dep-difficulty--easy{background:var(--easy-bg);color:var(--easy)}.ctf-editor__dep-difficulty--medium{background:var(--medium-bg);color:var(--medium)}.ctf-editor__dep-difficulty--hard{background:var(--hard-bg);color:var(--hard)}.ctf-editor__dep-difficulty--insane{background:var(--insane-bg);color:var(--insane)}.ctf-editor__dep-points{font-size:.75rem;font-weight:700;color:var(--accent-primary);font-variant-numeric:tabular-nums}.ctf-editor__dep-prereqs{font-size:.7rem;color:var(--text-muted);font-style:italic}.ctf-editor__dep-note{margin-top:var(--spacing-md);font-size:.75rem;color:var(--text-muted);font-style:italic;padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);border-left:3px solid var(--accent-primary)}.ctf-editor__dep-empty{font-size:.8125rem;color:var(--text-muted);text-align:center;padding:var(--spacing-lg);font-style:italic}.ctf-editor__actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-sm)}.ctf-editor__save-btn{height:40px;padding:0 var(--spacing-xl);border:none;border-radius:var(--radius-md);background:var(--accent-primary);color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 12px #0000000f;display:inline-flex;align-items:center;justify-content:center}.ctf-editor__save-btn:hover{background:var(--accent-secondary);box-shadow:0 4px 16px #0000001a}.ctf-editor__cancel-btn{height:40px;padding:0 var(--spacing-xl);border:1px solid var(--border-primary);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center}.ctf-editor__cancel-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}@media (max-width: 768px){.ctf-editor__header,.ctf-editor__section{padding:var(--spacing-md)}.ctf-editor__field-grid{grid-template-columns:1fr}.ctf-editor__actions{flex-direction:column}.ctf-editor__save-btn,.ctf-editor__cancel-btn{width:100%}}.ctf-detail{padding:var(--spacing-sm);animation:ctfFadeIn .3s ease}@keyframes ctfFadeIn{0%{opacity:0}to{opacity:1}}.ctf-detail__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:0 2px 12px #0000000f}.ctf-detail__header-left{display:flex;align-items:flex-start;gap:var(--spacing-md);min-width:0}.ctf-detail__back-btn{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-secondary);font-size:1.125rem;cursor:pointer;transition:all .2s ease;flex-shrink:0}.ctf-detail__back-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.ctf-detail__title-group{display:flex;flex-direction:column;gap:var(--spacing-sm);min-width:0}.ctf-detail__title-row{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.ctf-detail__title{font-size:1.375rem;font-weight:700;color:var(--text-primary);margin:0;line-height:1.3}.ctf-detail__codename{font-family:Fira Code,monospace;font-size:.7rem;font-weight:600;color:var(--accent-primary);letter-spacing:1px;background:var(--accent-primary-light);padding:4px 10px;border-radius:var(--radius-sm);white-space:nowrap}.ctf-detail__badges{display:flex;gap:var(--spacing-sm);align-items:center}.ctf-detail__status{padding:4px 10px;border-radius:var(--radius-full);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.ctf-detail__status--active{background:var(--accent-success-light);color:var(--accent-success)}.ctf-detail__status--draft{background:var(--bg-tertiary);color:var(--text-muted)}.ctf-detail__status--registration{background:var(--accent-info-light);color:var(--accent-info)}.ctf-detail__status--completed{background:var(--accent-primary-light);color:var(--accent-primary)}.ctf-detail__status--archived{background:var(--bg-tertiary);color:var(--text-muted)}.ctf-detail__difficulty{padding:4px 10px;border-radius:var(--radius-full);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.ctf-detail__difficulty--easy{background:var(--easy-bg);color:var(--easy)}.ctf-detail__difficulty--medium{background:var(--medium-bg);color:var(--medium)}.ctf-detail__difficulty--hard{background:var(--hard-bg);color:var(--hard)}.ctf-detail__difficulty--insane{background:var(--insane-bg);color:var(--insane)}.ctf-detail__header-actions{display:flex;gap:var(--spacing-sm);flex-shrink:0}.ctf-detail__action-btn{height:40px;padding:0 var(--spacing-lg);border:1px solid var(--accent-primary);border-radius:var(--radius-md);background:transparent;color:var(--accent-primary);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}.ctf-detail__action-btn:hover{background:var(--accent-primary);color:#fff}.ctf-detail__action-btn--secondary{border-color:var(--border-primary);color:var(--text-secondary)}.ctf-detail__action-btn--secondary:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.ctf-detail__stats{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.ctf-detail__stat-card{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg) var(--spacing-md);text-align:center;transition:all .2s ease;box-shadow:0 2px 12px #0000000f}.ctf-detail__stat-card:hover{border-color:var(--accent-primary);box-shadow:0 4px 16px #0000001a}.ctf-detail__stat-value{font-size:1.75rem;font-weight:700;color:var(--accent-primary);line-height:1.2;font-variant-numeric:tabular-nums}.ctf-detail__stat-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-top:var(--spacing-xs)}.ctf-detail__tabs{display:flex;gap:0;background:var(--bg-primary);border:1px solid var(--border-primary);border-bottom:2px solid var(--border-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:0 var(--spacing-sm);margin-bottom:var(--spacing-lg);box-shadow:0 2px 12px #0000000f}.ctf-detail__tab{padding:var(--spacing-md) var(--spacing-lg);border:none;background:none;font-size:.8125rem;font-weight:600;color:var(--text-muted);cursor:pointer;position:relative;transition:color .2s ease;letter-spacing:.2px}.ctf-detail__tab:hover{color:var(--text-primary)}.ctf-detail__tab--active{color:var(--accent-primary)}.ctf-detail__tab--active:after{content:"";position:absolute;bottom:-2px;left:var(--spacing-sm);right:var(--spacing-sm);height:2px;background:var(--accent-primary);border-radius:2px 2px 0 0}.ctf-detail__tab-content{min-height:200px}.ctf-detail__overview{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--spacing-md)}.ctf-detail__section{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:0 2px 12px #0000000f}.ctf-detail__section-title{font-size:.7rem;font-weight:700;color:var(--text-muted);margin:0 0 var(--spacing-md);text-transform:uppercase;letter-spacing:.5px;padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.ctf-detail__description{font-size:.875rem;line-height:1.7;color:var(--text-secondary);margin:0}.ctf-detail__briefing{font-size:.8125rem;line-height:1.7;color:var(--text-muted);margin:var(--spacing-md) 0 0;padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);border-left:3px solid var(--accent-primary);font-style:italic}.ctf-detail__info-grid{display:grid;gap:0}.ctf-detail__info-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) 0;border-bottom:1px solid var(--border-primary)}.ctf-detail__info-item:last-child{border-bottom:none;padding-bottom:0}.ctf-detail__info-item:first-child{padding-top:0}.ctf-detail__info-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.ctf-detail__info-value{font-size:.8125rem;color:var(--text-primary);font-weight:600}.ctf-detail__tree-wrap{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-md);margin-bottom:var(--spacing-md);height:400px;overflow:hidden;box-shadow:0 2px 12px #0000000f}.ctf-detail__tree-wrap .dependency-tree{height:100%}.ctf-detail__table-wrap{overflow-x:auto;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);box-shadow:0 2px 12px #0000000f}.ctf-detail__table{width:100%;border-collapse:separate;border-spacing:0}.ctf-detail__table thead th{padding:var(--spacing-md) var(--spacing-sm);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);text-align:left;white-space:nowrap;background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.ctf-detail__table thead th:first-child{border-radius:var(--radius-lg) 0 0 0}.ctf-detail__table thead th:last-child{border-radius:0 var(--radius-lg) 0 0}.ctf-detail__table thead th.ctf-detail__th-right{text-align:right}.ctf-detail__table tbody tr{transition:background .2s ease}.ctf-detail__table tbody tr:hover{background:var(--bg-secondary)}.ctf-detail__table tbody td{padding:var(--spacing-md) var(--spacing-sm);font-size:.875rem;color:var(--text-primary);border-bottom:1px solid var(--border-primary);vertical-align:middle}.ctf-detail__table tbody tr:last-child td{border-bottom:none}.ctf-detail__table tbody td.ctf-detail__td-right{text-align:right;font-variant-numeric:tabular-nums}.ctf-detail__table tbody td.ctf-detail__td-mono{font-family:Fira Code,monospace;font-size:.75rem;color:var(--text-muted);letter-spacing:.3px}.ctf-detail__table tbody td.ctf-detail__td-bold{font-weight:600}.ctf-detail__table tfoot td{padding:var(--spacing-md) var(--spacing-sm);font-size:.8125rem;font-weight:700;color:var(--text-primary);border-top:2px solid var(--border-primary);background:var(--bg-secondary)}.ctf-detail__table tfoot td:first-child{border-radius:0 0 0 var(--radius-lg)}.ctf-detail__table tfoot td:last-child{border-radius:0 0 var(--radius-lg) 0}.ctf-detail__table tfoot td.ctf-detail__td-right{text-align:right;font-variant-numeric:tabular-nums}.ctf-detail__badge{padding:4px 10px;border-radius:var(--radius-full);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;display:inline-block}.ctf-detail__badge--correct{background:var(--accent-success-light);color:var(--accent-success)}.ctf-detail__badge--incorrect{background:var(--accent-danger-light);color:var(--accent-danger)}.ctf-detail__badge--first-blood{background:var(--accent-warning-light);color:var(--accent-warning)}.ctf-detail__toolbar{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md);align-items:center;flex-wrap:wrap}.ctf-detail__search{flex:1;min-width:220px;height:40px;padding:0 var(--spacing-md);border:1px solid transparent;border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;outline:none;transition:all .2s ease}.ctf-detail__search:focus{background:var(--bg-primary);border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.ctf-detail__search::placeholder{color:var(--text-muted)}.ctf-detail__export-btn{height:40px;padding:0 var(--spacing-lg);border:1px solid var(--accent-primary);border-radius:var(--radius-md);background:transparent;color:var(--accent-primary);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}.ctf-detail__export-btn:hover{background:var(--accent-primary);color:#fff}.ctf-detail__filters{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap}.ctf-detail__select{height:40px;padding:0 var(--spacing-md);border:1px solid transparent;border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:.875rem;outline:none;cursor:pointer;min-width:180px;transition:all .2s ease}.ctf-detail__select:focus{background:var(--bg-primary);border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.ctf-detail__first-blood{font-size:.75rem;color:var(--accent-warning);font-weight:700}.ctf-detail__muted{color:var(--text-muted)}.ctf-detail__empty{text-align:center;padding:var(--spacing-2xl) var(--spacing-lg)!important;color:var(--text-muted);font-size:.875rem}@media (max-width: 1024px){.ctf-detail__stats{grid-template-columns:repeat(3,1fr)}.ctf-detail__overview{grid-template-columns:1fr}}@media (max-width: 768px){.ctf-detail__header{flex-direction:column;padding:var(--spacing-md)}.ctf-detail__title{font-size:1.125rem}.ctf-detail__header-actions{width:100%}.ctf-detail__header-actions .ctf-detail__action-btn{flex:1;text-align:center}.ctf-detail__stats{grid-template-columns:repeat(2,1fr)}.ctf-detail__stat-value{font-size:1.375rem}.ctf-detail__tabs{overflow-x:auto;padding:0 4px;border-radius:var(--radius-md) var(--radius-md) 0 0}.ctf-detail__tab{white-space:nowrap;padding:var(--spacing-md);font-size:.75rem}.ctf-detail__toolbar{flex-direction:column}.ctf-detail__search{min-width:0;width:100%}.ctf-detail__export-btn{width:100%}.ctf-detail__filters{flex-direction:column}.ctf-detail__select{min-width:0;width:100%}.ctf-detail__section{padding:var(--spacing-md)}.ctf-detail__tree-wrap{height:300px}}@media (max-width: 480px){.ctf-detail__stats{grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.ctf-detail__stat-card{padding:var(--spacing-md) var(--spacing-sm)}.ctf-detail__stat-value{font-size:1.25rem}}:root{--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-card: #ffffff;--bg-input: #ffffff;--bg-hover: #f1f5f9;--bg-sidebar: #1e293b;--bg-header: #1e293b;--bg-overlay: rgba(15, 23, 42, .6);--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--text-inverse: #ffffff;--sidebar-text: #f1f5f9;--sidebar-text-muted: #cbd5e1;--sidebar-border: rgba(148, 163, 184, .15);--sidebar-hover-bg: rgba(255, 255, 255, .08);--sidebar-hover-text: #ffffff;--sidebar-active-bg: rgba(6, 182, 212, .15);--sidebar-active-border: #06b6d4;--sidebar-active-text: #22d3ee;--header-text: #e2e8f0;--header-text-muted: #94a3b8;--header-border: rgba(148, 163, 184, .15);--border-primary: #e2e8f0;--border-secondary: #cbd5e1;--border-focus: #0891b2;--accent-primary: #0891b2;--accent-secondary: #0e7490;--accent-hover: #0e7490;--accent-light: #ecfeff;--accent-primary-light: rgba(8, 145, 178, .08);--brand-teal: #0891b2;--brand-cyan: #06b6d4;--accent-success: #059669;--accent-success-light: rgba(5, 150, 105, .1);--accent-warning: #d97706;--accent-warning-light: rgba(217, 119, 6, .1);--accent-danger: #dc2626;--accent-danger-light: rgba(220, 38, 38, .1);--accent-info: #0284c7;--accent-info-light: rgba(2, 132, 199, .1);--gender-male: #0891b2;--gender-female: #ec407a;--easy: #059669;--easy-bg: #d1fae5;--medium: #d97706;--medium-bg: #fef3c7;--hard: #dc2626;--hard-bg: #fee2e2;--insane: #7c3aed;--insane-bg: #ede9fe;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--spacing-xs: 6px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--sidebar-width: 240px;--sidebar-collapsed: 72px;--header-height: 64px}[data-theme=dark]{--bg-primary: #0a0f1a;--bg-secondary: #111827;--bg-tertiary: #1f2937;--bg-card: #111827;--bg-input: #1f2937;--bg-hover: #1f2937;--bg-sidebar: #030712;--bg-overlay: rgba(0, 0, 0, .75);--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #64748b;--text-inverse: #0a0f1a;--sidebar-text: #e2e8f0;--sidebar-text-muted: #64748b;--sidebar-border: rgba(100, 116, 139, .2);--sidebar-hover-bg: rgba(255, 255, 255, .06);--sidebar-hover-text: #ffffff;--sidebar-active-bg: rgba(34, 211, 238, .18);--sidebar-active-border: #22d3ee;--sidebar-active-text: #22d3ee;--bg-header: #030712;--header-text: #e2e8f0;--header-text-muted: #64748b;--header-border: rgba(100, 116, 139, .2);--border-primary: #1f2937;--border-secondary: #374151;--border-focus: #22d3ee;--accent-primary: #22d3ee;--accent-secondary: #06b6d4;--accent-hover: #67e8f9;--accent-light: rgba(34, 211, 238, .15);--accent-primary-light: rgba(34, 211, 238, .12);--brand-teal: #22d3ee;--brand-cyan: #67e8f9;--accent-success: #34d399;--accent-success-light: rgba(52, 211, 153, .15);--accent-warning: #fbbf24;--accent-warning-light: rgba(251, 191, 36, .15);--accent-danger: #f87171;--accent-danger-light: rgba(248, 113, 113, .15);--accent-info: #38bdf8;--accent-info-light: rgba(56, 189, 248, .15);--gender-male: #22d3ee;--gender-female: #f472b6;--easy: #34d399;--easy-bg: rgba(52, 211, 153, .15);--medium: #fbbf24;--medium-bg: rgba(251, 191, 36, .15);--hard: #f87171;--hard-bg: rgba(248, 113, 113, .15);--insane: #a78bfa;--insane-bg: rgba(167, 139, 250, .15);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .5), 0 2px 4px -2px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .6), 0 8px 10px -6px rgba(0, 0, 0, .5)}[data-theme=dark] .nav-item.active .nav-link{color:var(--sidebar-active-text);background:var(--sidebar-active-bg);border-left-color:var(--sidebar-active-border)}[data-theme=dark] .nav-link:hover{color:var(--sidebar-text);background:var(--sidebar-hover-bg)}[data-theme=dark] .tab-btn{color:#e2e8f0}[data-theme=dark] .tab-btn:hover,[data-theme=dark] .tab-btn.active{color:#fff}[data-theme=dark] .chip{color:#e2e8f0}[data-theme=dark] .chip.active{color:#fff}[data-theme=dark] .btn-outline{color:#fff;border-color:var(--border-secondary)}[data-theme=dark] .page-title,[data-theme=dark] .page-subtitle,[data-theme=dark] .card-title,[data-theme=dark] h1,[data-theme=dark] h2,[data-theme=dark] h3,[data-theme=dark] h4,[data-theme=dark] .stat-value,[data-theme=dark] .stat-label,[data-theme=dark] label,[data-theme=dark] .form-label,[data-theme=dark] .btn,[data-theme=dark] .btn-primary,[data-theme=dark] .btn-primary:hover,[data-theme=dark] .btn-primary:active,[data-theme=dark] .btn-secondary,[data-theme=dark] .btn-secondary:hover,[data-theme=dark] .btn-secondary:active,[data-theme=dark] .btn-success,[data-theme=dark] .btn-success:hover,[data-theme=dark] .btn-success:active,[data-theme=dark] .btn-danger,[data-theme=dark] .btn-danger:hover,[data-theme=dark] .btn-danger:active,[data-theme=dark] .btn-warning,[data-theme=dark] .btn-warning:hover,[data-theme=dark] .btn-warning:active,[data-theme=dark] .btn-outline:hover,[data-theme=dark] .btn-outline:active,[data-theme=dark] .btn-sm,[data-theme=dark] .btn-icon{color:#fff}[data-theme=dark] .btn-sm:disabled,[data-theme=dark] .btn-icon:disabled,[data-theme=dark] .btn-outline:disabled{color:#fff6;border-color:#fff3;background:#ffffff0d}[data-theme=dark] .btn-sm:not(:disabled),[data-theme=dark] .btn-icon:not(:disabled){color:#fff}[data-theme=dark] .pagination .btn-sm.btn-icon:not(:disabled){background:var(--bg-tertiary);border:1px solid var(--border-secondary)}[data-theme=dark] .pagination .btn-sm.btn-icon:not(:disabled):hover{background:var(--accent-primary);border-color:var(--accent-primary)}[data-theme=dark] button:not(.theme-toggle){color:#fff}[data-theme=dark] .nav-icon{color:#e2e8f0}[data-theme=dark] .nav-link:hover .nav-icon,[data-theme=dark] .nav-item.active .nav-icon{color:#fff}[data-theme=dark] .sidebar-toggle{color:#e2e8f0}[data-theme=dark] .sidebar-toggle:hover{color:var(--sidebar-text);background:var(--sidebar-hover-bg)}[data-theme=dark] .sidebar.collapsed .sidebar-toggle{background:var(--bg-secondary);border-color:var(--border-secondary);color:#fff}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-secondary);color:var(--text-primary);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-secondary)}img{max-width:100%;height:auto}.app-layout{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-body{display:flex;flex:1;min-height:0;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;flex-shrink:0;transition:width var(--transition-normal);overflow-x:hidden;overflow-y:auto}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.sidebar::-webkit-scrollbar-thumb:hover{background:#ffffff40}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar.collapsed .nav-text,.sidebar.collapsed .nav-section-title,.sidebar.collapsed .nav-badge{display:none}.sidebar.collapsed .nav-list{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs)}.sidebar.collapsed .nav-item{justify-content:center;align-items:center;padding:var(--spacing-sm);width:44px;height:44px;border-radius:var(--radius-md);margin-left:auto;margin-right:auto;border-left:none}.sidebar.collapsed .nav-icon{width:22px;height:22px;font-size:1.125rem;display:flex;align-items:center;justify-content:center;margin:0}.sidebar.collapsed .nav-item:hover{background:var(--sidebar-hover-bg);border-left:none}.sidebar.collapsed .nav-item.active{background:var(--sidebar-active-bg);border-left:none;box-shadow:inset 0 0 0 2px var(--sidebar-active-border)}@media (max-width: 1024px){.sidebar-nav{overflow-x:hidden}.sidebar.collapsed{width:var(--sidebar-width)!important}.sidebar.collapsed .nav-text,.sidebar.collapsed .nav-section-title,.sidebar.collapsed .nav-badge{display:block!important}.sidebar.collapsed .nav-text{display:inline!important}.sidebar.collapsed .nav-item{justify-content:flex-start!important;padding:11px 14px!important;width:100%!important;height:auto!important;border-left:3px solid transparent!important;margin-left:4px!important;margin-right:4px!important;font-size:.875rem!important;border-radius:var(--radius-sm)!important;box-shadow:none!important}.sidebar.collapsed .nav-item.active{border-left-color:var(--sidebar-active-border)!important;box-shadow:none!important}.sidebar.collapsed .nav-icon{width:18px!important;height:auto!important;font-size:1rem!important;display:inline-flex!important;margin:0!important}.sidebar.collapsed .nav-list{align-items:stretch!important;flex-direction:column!important}}.sidebar-tooltip{position:fixed;background:#1e293b;color:#fff;padding:8px 14px;border-radius:6px;font-size:.875rem;font-weight:500;white-space:nowrap;box-shadow:0 4px 12px #0006;z-index:99999;pointer-events:none;opacity:0;transition:opacity .15s ease}.sidebar-tooltip.visible{opacity:1}.sidebar-tooltip:before{content:"";position:absolute;left:-6px;top:50%;transform:translateY(-50%);border:6px solid transparent;border-right-color:#1e293b}.sidebar-nav{flex:1;padding:8px;overflow-y:auto;overflow-x:hidden}.nav-section-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--sidebar-text-muted);padding:6px 14px;margin-top:8px}.nav-list{list-style:none}.sidebar .nav-item{display:flex;align-items:center;gap:10px;padding:11px 14px;color:var(--sidebar-text);border-radius:var(--radius-sm);transition:all var(--transition-fast);font-size:.875rem;font-weight:500;line-height:1.4;position:relative;border-left:3px solid transparent;margin-left:4px;margin-right:4px;margin-bottom:2px;text-decoration:none}.sidebar .nav-item:hover{background:var(--sidebar-hover-bg);color:var(--sidebar-hover-text);border-left-color:var(--sidebar-active-border)}.sidebar .nav-item.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);border-left-color:var(--sidebar-active-border);font-weight:600}.sidebar .nav-item.active .nav-icon{color:var(--sidebar-active-text)}.sidebar .nav-icon{width:18px;text-align:center;flex-shrink:0;font-size:1rem}.nav-link{display:flex;align-items:center;gap:10px;padding:11px 14px;color:var(--sidebar-text);border-radius:var(--radius-sm);transition:all var(--transition-fast);font-size:.875rem;font-weight:500;line-height:1.4;position:relative;border-left:3px solid transparent;margin-left:4px;margin-right:4px;text-decoration:none}.nav-link:hover{background:var(--sidebar-hover-bg);color:var(--sidebar-hover-text);border-left-color:var(--sidebar-active-border)}.nav-badge{margin-left:auto;padding:2px 8px;background:var(--accent-primary);color:var(--text-inverse);font-size:.6875rem;font-weight:600;border-radius:var(--radius-full)}.nav-badge.warning{background:var(--accent-warning)}.sidebar-footer{padding:var(--spacing-md);border-top:1px solid var(--sidebar-border)}.user-info{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.user-info:hover{background:var(--sidebar-hover-bg)}.user-avatar{width:36px;height:36px;background:#ffffff26;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--sidebar-text);flex-shrink:0}.user-avatar img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-md)}.user-details{flex:1;min-width:0}.user-name{font-size:.875rem;font-weight:600;color:var(--sidebar-text);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.75rem;color:var(--sidebar-text-muted)}.main-content{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg-secondary);overflow-y:auto;overflow-x:hidden}.main-content::-webkit-scrollbar{width:8px}.main-content::-webkit-scrollbar-track{background:var(--bg-tertiary)}.main-content::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:4px}.main-content::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.main-header{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;background:var(--bg-header);border-bottom:1px solid var(--header-border);gap:16px;height:var(--header-height);min-height:var(--header-height);flex-shrink:0;position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:var(--spacing-md)}.page-title{font-size:1.5rem;font-weight:700;color:var(--header-text);display:flex;align-items:center;gap:var(--spacing-md)}.page-title i,.page-title svg{color:var(--accent-primary);font-size:1.25rem;width:1.25rem;height:1.25rem;flex-shrink:0}.page-subtitle{font-size:.875rem;color:var(--header-text-muted)}.page-actions-bar{display:flex;justify-content:flex-end;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.page-actions-bar .breadcrumb{margin-right:auto}.header-right{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.header-stats{display:flex;gap:var(--spacing-lg)}.header-stat{text-align:center}.header-stat .stat-value{font-size:1.25rem;font-weight:700;color:var(--text-primary);display:block}.header-stat .stat-value.accent{color:var(--accent-primary)}.header-stat .stat-label{font-size:.75rem;color:var(--text-muted)}.card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg)}.card-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-primary);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);position:relative;overflow:visible}.card-title{font-size:.9375rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--spacing-sm)}.card-title i,.card-title svg,.card-header-icon,.group-header .group-icon,.section-title .title-icon,.sidebar-header .header-icon,.option-header .option-icon{color:var(--accent-primary);font-size:1rem;width:1rem;height:1rem;flex-shrink:0}.card-body{padding:var(--spacing-lg)}.card-body:has(.table-responsive),.card-body:has(.data-table){padding:0}.card-footer{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-primary);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-md);background:var(--bg-secondary);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 14px;font-size:.8125rem;font-weight:500;line-height:1.5;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;text-decoration:none;box-sizing:border-box;font-family:inherit;vertical-align:middle;height:auto;min-height:32px}a.btn,a.btn:hover,a.btn:focus,a.btn:active{text-decoration:none}button.btn{-moz-appearance:none;appearance:none;-webkit-appearance:none}.btn-primary{background:var(--accent-primary);color:var(--text-inverse)}a.btn-primary,a.btn-primary:hover{color:var(--text-inverse)}.btn-primary:hover{background:var(--accent-secondary);color:var(--text-inverse);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-primary)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-secondary)}.btn-outline{background:transparent;color:var(--text-secondary);border-color:var(--border-primary)}.btn-outline:hover{background:var(--bg-hover);border-color:var(--border-secondary);color:var(--text-primary)}.btn-success{background:var(--accent-success);color:var(--text-inverse)}.btn-success:hover{opacity:.9}.btn-danger{background:var(--accent-danger);color:var(--text-inverse)}.btn-danger:hover:not(:disabled){opacity:.9}.btn-danger:disabled,.btn-danger.disabled{background:var(--text-muted);border-color:var(--text-muted);color:#ffffffb3;cursor:not-allowed;opacity:.6}.btn-warning{background:var(--accent-warning);color:var(--text-inverse)}.btn-warning:hover:not(:disabled){opacity:.9}.btn-sm{padding:4px 10px;font-size:.75rem}.btn-lg{padding:10px 20px;font-size:.875rem}.btn-icon{width:28px;height:28px;padding:0;border-radius:var(--radius-sm);font-size:.75rem}.btn-icon:disabled{cursor:not-allowed;opacity:.4;pointer-events:auto}.btn-icon-sm{width:24px;height:24px;padding:0;font-size:.75rem;background:var(--bg-tertiary);border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.btn-icon-sm:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-icon-sm.danger:hover{background:var(--accent-danger-light);color:var(--accent-danger)}.form-group{margin-bottom:var(--spacing-md)}.form-label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.required,span.required,.form-label .required,label .required{color:var(--accent-danger)!important;font-weight:600;margin-left:2px}.form-control{width:100%;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:.875rem;color:var(--text-primary);transition:all var(--transition-fast)}.form-control:hover{border-color:var(--border-secondary)}.form-control:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light)}.form-control::placeholder{color:var(--text-muted)}.input-wrapper{position:relative}.input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.input-wrapper .form-control{padding-left:40px}.password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;padding:4px 8px;cursor:pointer;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;transition:color .15s ease;z-index:2}.password-toggle:hover{color:var(--text-primary)}.form-control.has-toggle{padding-right:40px}.search-box{position:relative;width:320px;min-width:280px;flex-shrink:0}.search-box .search-input,.search-box .form-control{width:100%;height:40px;padding:0 14px 0 38px;background:var(--bg-tertiary);border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem;transition:all .2s ease}.search-box .search-input:hover,.search-box .form-control:hover{border-color:transparent}.search-box .search-input:focus,.search-box .form-control:focus{outline:none;background:var(--bg-primary);border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}.search-box .search-input::placeholder,.search-box .form-control::placeholder{color:var(--text-muted)}.search-box i,.search-box .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:.875rem;pointer-events:none}.search-box.has-value .search-input,.search-box.has-value .form-control{padding-right:36px}.search-box .search-clear-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:var(--text-muted);font-size:.875rem;cursor:pointer;transition:background .15s ease,color .15s ease;padding:0}.search-box .search-clear-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.search-box .search-clear-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:1px}.clear-filters-link{display:inline-flex;align-items:center;gap:6px;color:var(--accent-primary);font-size:.8125rem;text-decoration:underline;cursor:pointer;white-space:nowrap;background:none;border:none;padding:0}.clear-filters-link:hover{color:var(--accent-primary-hover, var(--accent-primary));text-decoration:underline}.clear-filters-link:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:2px}@media (max-width: 1200px){.search-box{width:260px;min-width:200px}}@media (max-width: 768px){.search-box{width:100%;min-width:unset}}.select-wrapper{position:relative}.filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:10px 36px 10px 14px;background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:.875rem;color:var(--text-primary);cursor:pointer;min-width:150px}.filter-select:focus{outline:none;border-color:var(--accent-primary)}.filter-select-sm{padding:6px 28px 6px 10px;font-size:.8125rem;min-width:auto}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:600;border-radius:var(--radius-full)}.badge-primary{background:var(--accent-light);color:var(--accent-primary)}.badge-success{background:var(--accent-success-light);color:var(--accent-success)}.badge-warning{background:var(--accent-warning-light);color:var(--accent-warning)}.badge-danger{background:var(--accent-danger-light);color:var(--accent-danger)}.difficulty{display:inline-flex;align-items:center;padding:4px 10px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;border-radius:var(--radius-sm)}.difficulty.easy{background:var(--easy-bg);color:var(--easy)}.difficulty.medium{background:var(--medium-bg);color:var(--medium)}.difficulty.hard{background:var(--hard-bg);color:var(--hard)}.difficulty.insane{background:var(--insane-bg);color:var(--insane)}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:500;border-radius:var(--radius-full)}.status-badge.running{background:var(--accent-success-light);color:var(--accent-success)}.status-badge.stopped{background:var(--accent-danger-light);color:var(--accent-danger)}.status-badge.starting{background:var(--accent-warning-light);color:var(--accent-warning)}.status-badge.completed{background:var(--accent-success-light);color:var(--accent-success)}.skill-tag{display:inline-flex;padding:4px 10px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:.75rem;font-weight:500;border-radius:var(--radius-sm)}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem}.data-table thead{background:var(--bg-tertiary)}.data-table th,.data-table td{padding:var(--spacing-md) var(--spacing-sm);text-align:left;border-bottom:1px solid var(--border-primary)}.data-table th{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;border-bottom-width:2px}.data-table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.data-table th.th-sortable:hover{background:var(--bg-secondary)}.data-table th.th-sortable span{margin-right:6px}.data-table th .sort-icon{font-size:.7rem;opacity:.5}.data-table th.th-sortable:hover .sort-icon{opacity:1}.data-table th.th-center,.data-table td.td-center,.data-table th.th-actions,.data-table td.td-actions{text-align:center}.data-table td.td-date{font-size:.8125rem;color:var(--text-secondary);white-space:nowrap}.data-table td{color:var(--text-secondary);vertical-align:middle}.data-table tbody tr{background:var(--bg-primary);transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--bg-secondary)}.data-table tbody tr:last-child td{border-bottom:none}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:.875rem}.table thead{background:var(--bg-tertiary)}.table th,.table td{padding:var(--spacing-md) var(--spacing-sm);text-align:left;border-bottom:1px solid var(--border-primary)}.table th{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;border-bottom-width:2px}.table th.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.table th.th-sortable:hover{background:var(--bg-secondary)}.table th .sort-icon{margin-left:var(--spacing-xs);font-size:.7rem;opacity:.5}.table th.th-sortable:hover .sort-icon{opacity:1}.table td{color:var(--text-secondary);vertical-align:middle}.table tbody tr{transition:background var(--transition-fast)}.table tbody tr:hover{background:var(--bg-secondary)}.table-responsive{overflow-x:auto}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:var(--spacing-md)}.loading-state p{color:var(--text-muted);font-size:.875rem;margin:0}.spinner-lg{width:48px;height:48px;border:4px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.filter-panel{padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-secondary);border-top:1px solid var(--border-primary);border-bottom:1px solid var(--border-primary);position:relative;z-index:20}.filter-row{display:flex;align-items:flex-end;gap:var(--spacing-md);flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-xs);min-width:150px;position:relative}.filter-group label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase}.filter-group .form-control{padding:var(--spacing-sm) var(--spacing-md)}.filter-actions{display:flex;gap:var(--spacing-sm);margin-left:auto}.header-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);align-items:center;position:relative;z-index:10;flex-shrink:0}.header-actions .btn.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.header-actions .btn{white-space:nowrap;flex-shrink:0;position:relative;z-index:10}.page-actions-bar{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md);flex-wrap:wrap;gap:var(--spacing-md)}.page-header-content{flex:1}.page-header .page-title{margin-bottom:var(--spacing-xs)}.page-header .page-subtitle{margin:0}.action-buttons{display:flex;align-items:center;gap:6px}.action-buttons .btn-icon{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;text-decoration:none;font-size:.8125rem}.action-buttons .btn-icon:hover{background:var(--bg-secondary);color:var(--accent-primary);border-color:var(--accent-primary)}.action-buttons .btn-icon.danger:hover{background:var(--accent-danger-light);color:var(--accent-danger);border-color:var(--accent-danger)}.action-buttons .btn-icon.info:hover{background:#3b82f61a;color:#3b82f6;border-color:#3b82f6}.footer-info{display:flex;align-items:center;gap:var(--spacing-md);color:var(--text-muted);font-size:.875rem;flex-wrap:nowrap;white-space:nowrap}.page-size-dropdown{width:128px}.page-size-dropdown .select-control{min-height:32px;height:32px;padding:0 8px;font-size:.75rem;font-weight:500}.page-size-dropdown .dropdown-indicator{font-size:.625rem}.page-size-dropdown .select-dropdown{min-width:128px}.page-size-dropdown .option-item{padding:5px 10px;font-size:.75rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-lg)}.two-column{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-lg)}.stat-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-md)}.stat-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.stat-icon.primary{background:var(--accent-light);color:var(--accent-primary)}.stat-icon.success{background:var(--accent-success-light);color:var(--accent-success)}.stat-icon.warning{background:var(--accent-warning-light);color:var(--accent-warning)}.stat-icon.danger{background:var(--accent-danger-light);color:var(--accent-danger)}.stat-content .stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary);display:block;line-height:1.2}.stat-content .stat-label{font-size:.8125rem;color:var(--text-muted)}.stat-change{display:flex;align-items:center;gap:4px;font-size:.75rem;font-weight:500}.stat-change.positive{color:var(--accent-success)}.stat-change.negative{color:var(--accent-danger)}.progress-bar{height:8px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;background:var(--accent-primary);border-radius:var(--radius-full);transition:width var(--transition-slow)}.progress-fill.success{background:var(--accent-success)}.progress-fill.warning{background:var(--accent-warning)}.progress-fill.danger{background:var(--accent-danger)}.resource-item{margin-bottom:var(--spacing-md)}.resource-item:last-child{margin-bottom:0}.resource-info{display:flex;justify-content:space-between;margin-bottom:var(--spacing-xs)}.resource-name{font-size:.875rem;color:var(--text-secondary)}.resource-value{font-size:.875rem;font-weight:600;color:var(--text-primary)}.resource-bar{height:6px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.resource-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-slow)}.resource-fill.success{background:var(--accent-success)}.resource-fill.warning{background:var(--accent-warning)}.resource-fill.danger{background:var(--accent-danger)}.filter-chips{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.chip{display:inline-flex;align-items:center;padding:8px 16px;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-full);font-size:.8125rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.chip:hover{background:var(--bg-hover);border-color:var(--border-secondary)}.chip.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border-primary);margin-bottom:var(--spacing-lg)}.tab-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:none;border:none;font-size:.875rem;font-weight:500;color:var(--text-muted);cursor:pointer;position:relative;transition:color var(--transition-fast)}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--accent-primary)}.tab-btn.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent-primary)}.empty-state{text-align:center;padding:var(--spacing-2xl)}.empty-state-icon{width:64px;height:64px;margin:0 auto var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--text-muted)}.empty-state-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.empty-state-text{font-size:.875rem;color:var(--text-muted);margin-bottom:var(--spacing-lg)}.theme-toggle{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;font-size:.875rem;color:var(--text-secondary);transition:all var(--transition-fast)}.theme-toggle:hover{background:var(--bg-hover);border-color:var(--border-secondary);color:var(--text-primary)}.theme-toggle i{font-size:1rem}.theme-toggle .theme-icon-light,.theme-toggle .theme-icon-dark{display:none}[data-theme=light] .theme-toggle .theme-icon-light,[data-theme=dark] .theme-toggle .theme-icon-dark{display:inline}.pagination{display:flex;align-items:center;gap:var(--spacing-xs)}.pagination-btn{min-width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:.875rem;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.pagination-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-secondary)}.pagination-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-inverse)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.alert{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem}.alert-success{background:var(--accent-success-light);color:var(--accent-success)}.alert-warning{background:var(--accent-warning-light);color:var(--accent-warning)}.alert-danger{background:var(--accent-danger-light);color:var(--accent-danger)}.alert-info{background:var(--accent-info-light);color:var(--accent-info)}.activity-item{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md) 0;border-bottom:1px solid var(--border-primary)}.activity-item:last-child{border-bottom:none}.activity-icon{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:.875rem;flex-shrink:0}.activity-icon.success{background:var(--accent-success-light);color:var(--accent-success)}.activity-icon.warning{background:var(--accent-warning-light);color:var(--accent-warning)}.activity-icon.danger{background:var(--accent-danger-light);color:var(--accent-danger)}.activity-icon.info{background:var(--accent-info-light);color:var(--accent-info)}.activity-content{flex:1;min-width:0}.activity-text{font-size:.875rem;color:var(--text-primary);margin-bottom:2px}.activity-time{font-size:.75rem;color:var(--text-muted)}.user-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) 0;border-bottom:1px solid var(--border-primary)}.user-item:last-child{border-bottom:none}.user-avatar-sm{width:36px;height:36px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0}.user-info-cell{flex:1;min-width:0}.user-info-cell .user-name{font-size:.875rem;font-weight:500;color:var(--text-primary);display:block}.user-info-cell .user-email,.user-info-cell .user-country{font-size:.75rem;color:var(--text-muted)}.view-all-link{font-size:.8125rem;font-weight:500;color:var(--accent-primary)}.view-all-link:hover{text-decoration:underline}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md)}.quick-action-btn{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.quick-action-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary);color:var(--accent-primary)}.quick-action-btn i{font-size:1.25rem}.skill-item{margin-bottom:var(--spacing-md)}.skill-item:last-child{margin-bottom:0}.skill-header{display:flex;justify-content:space-between;margin-bottom:var(--spacing-xs)}.skill-name{font-size:.8125rem;color:var(--text-secondary)}.skill-level{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.skill-bar{height:6px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.skill-fill{height:100%;background:var(--accent-primary);border-radius:var(--radius-full);transition:width var(--transition-slow)}@media (max-width: 1024px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}.two-column{grid-template-columns:1fr}}@media (max-width: 768px){.main-header{padding:8px 12px;gap:8px}.stats-grid{grid-template-columns:repeat(2,1fr)}.cards-grid{grid-template-columns:1fr}.quick-actions{grid-template-columns:repeat(2,1fr)}}@media (max-width: 576px){.main-header{padding:6px 10px;min-height:44px;height:44px}.page-content{padding:12px}.stats-grid{grid-template-columns:1fr}.filter-chips{overflow-x:auto;flex-wrap:nowrap;padding-bottom:8px}.card-footer{flex-direction:column;align-items:stretch}.footer-info{width:100%;justify-content:space-between}.card-footer .pagination{width:100%;justify-content:center}.sidebar-overlay{top:44px}}@media (max-width: 400px){.main-header{padding:4px 8px;min-height:40px;height:40px}.sidebar-overlay{top:40px}}.btn-close{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;width:32px;height:32px}.btn-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-close:disabled{opacity:.5;cursor:not-allowed}.text-warning{color:var(--accent-warning)}.text-danger{color:var(--accent-danger)}.text-info{color:var(--accent-info)}.text-success{color:var(--accent-success)}.text-primary{color:var(--accent-primary)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-spinner,.spinner-sm{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;margin-right:var(--spacing-xs)}@media print{.sidebar,.theme-toggle{display:none}.main-content{margin-left:0}}*:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-tertiary)}::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-secondary);color:var(--text-primary);font-size:1.125rem}.page-enter{opacity:0;transform:translateY(10px)}.page-enter-active{opacity:1;transform:translateY(0);transition:opacity .2s ease,transform .2s ease}.page-exit{opacity:1}.page-exit-active{opacity:0;transition:opacity .2s ease}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.p-1{padding:4px}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}.shadow{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-fadeIn{animation:fadeIn .2s ease}.animate-slideIn{animation:slideIn .2s ease}.user-name-link{color:var(--accent-primary);cursor:pointer;transition:color .15s ease,text-decoration .15s ease}.user-name-link:hover{color:var(--accent-hover);text-decoration:underline}.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.th-sortable:hover{background:var(--bg-hover)}.th-sortable .sort-icon{margin-left:6px;font-size:.75rem;color:var(--text-muted);transition:color .15s ease}.th-sortable:hover .sort-icon{color:var(--text-secondary)}.Toastify__toast-container{z-index:999999!important}.Toastify__toast{border-radius:var(--radius-md)!important;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;font-size:.875rem!important;padding:12px 16px!important;min-height:auto!important;box-shadow:0 4px 12px #0000001a!important;border:1px solid var(--border-primary)!important}.Toastify__toast--success{background:var(--bg-primary)!important;color:var(--text-primary)!important;border-left:4px solid var(--accent-success)!important}.Toastify__toast--success .Toastify__toast-icon svg{fill:var(--accent-success)!important}.Toastify__toast--error{background:var(--bg-primary)!important;color:var(--text-primary)!important;border-left:4px solid var(--accent-danger)!important}.Toastify__toast--error .Toastify__toast-icon svg{fill:var(--accent-danger)!important}.Toastify__toast--warning{background:var(--bg-primary)!important;color:var(--text-primary)!important;border-left:4px solid var(--accent-warning)!important}.Toastify__toast--warning .Toastify__toast-icon svg{fill:var(--accent-warning)!important}.Toastify__toast--info{background:var(--bg-primary)!important;color:var(--text-primary)!important;border-left:4px solid var(--accent-primary)!important}.Toastify__toast--info .Toastify__toast-icon svg{fill:var(--accent-primary)!important}.Toastify__toast-body{padding:0!important;margin:0!important;color:var(--text-primary)!important}.Toastify__toast-icon{width:20px!important;margin-right:12px!important}.Toastify__close-button{color:var(--text-muted)!important;opacity:.7!important}.Toastify__close-button:hover{opacity:1!important}.Toastify__progress-bar{height:3px!important}.Toastify__progress-bar--success{background:var(--accent-success)!important}.Toastify__progress-bar--error{background:var(--accent-danger)!important}.Toastify__progress-bar--warning{background:var(--accent-warning)!important}.Toastify__progress-bar--info{background:var(--accent-primary)!important}
