:root{--t11-red: #D11229;--t11-red-hover: #b80f23;--t11-red-light: #fde8ea;--sidebar-bg: #1e1f26;--sidebar-bg-hover: #2a2b34;--sidebar-text: #a1a3b0;--sidebar-text-active: #ffffff;--sidebar-accent: var(--t11-red);--sidebar-width: 248px;--surface-page: #f4f5f7;--surface-card: #ffffff;--surface-column: #ebecf0;--surface-column-hover: #e2e4e9;--text-primary: #172b4d;--text-secondary: #5e6c84;--text-tertiary: #97a0af;--text-on-dark: #c1c7d0;--border-light: #dfe1e6;--border-card: #e2e4ea;--shadow-card: 0 1px 2px rgba(9, 30, 66, .12);--shadow-card-hover: 0 4px 12px rgba(9, 30, 66, .15);--shadow-dropdown: 0 8px 24px rgba(9, 30, 66, .18);--shadow-modal: 0 12px 40px rgba(9, 30, 66, .2);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--transition-fast: .12s ease;--transition-normal: .2s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color:var(--text-primary);background-color:var(--surface-page);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}button{font-family:inherit;font-size:.875rem;font-weight:500;line-height:1.4;border:none;border-radius:var(--radius-md);padding:.5rem 1rem;cursor:pointer;transition:background var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible{outline:2px solid var(--t11-red);outline-offset:2px}.btn-primary{background:var(--t11-red);color:#fff}.btn-primary:hover:not(:disabled){background:var(--t11-red-hover)}.btn-secondary{background:var(--surface-column);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:var(--surface-column-hover)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:#091e420f;color:var(--text-primary)}.btn-sm{font-size:.8rem;padding:.3rem .6rem}input[type=text],input[type=email],input[type=search],textarea,select{font-family:inherit;font-size:.875rem;color:var(--text-primary);background:var(--surface-card);border:2px solid var(--border-light);border-radius:var(--radius-md);padding:.5rem .75rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input[type=text]:focus,input[type=email]:focus,input[type=search]:focus,textarea:focus,select:focus{outline:none;border-color:var(--t11-red);box-shadow:0 0 0 1px var(--t11-red)}textarea{resize:vertical}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c1c7d0;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#97a0af}.app-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-size:.95rem}.auth-shell{display:flex;align-items:center;justify-content:center;min-height:100%;padding:2rem;background:linear-gradient(135deg,rgba(209,18,41,.04) 0%,transparent 60%),var(--surface-page)}.auth-card{width:100%;max-width:420px;background:var(--surface-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);padding:2.5rem 2rem;text-align:center}.auth-logo{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius-lg);background:var(--t11-red);color:#fff;font-weight:800;font-size:1.1rem;letter-spacing:.03em;margin-bottom:1.25rem}.auth-title{margin:0 0 .25rem;font-size:1.5rem;font-weight:700;color:var(--text-primary)}.auth-subtitle{margin:0 0 2rem;color:var(--text-secondary);font-size:.95rem}.auth-status{margin:0 0 1rem;color:var(--text-secondary);font-size:.9rem}.auth-error{background:var(--t11-red-light);color:var(--t11-red);border:1px solid rgba(209,18,41,.15);border-radius:var(--radius-md);padding:.75rem 1rem;margin:0 0 1.25rem;font-size:.875rem;font-weight:500;text-align:left}.auth-actions{display:grid;gap:1rem}.auth-google-btn{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.75rem 1.25rem;background:var(--surface-card);border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:.95rem;font-weight:600;color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.auth-google-btn:hover:not(:disabled){border-color:#c1c7d0;box-shadow:var(--shadow-card-hover)}.auth-google-btn:disabled{opacity:.6;cursor:not-allowed}.auth-google-icon{width:20px;height:20px;flex-shrink:0}.auth-hint{margin:0;color:var(--text-tertiary);font-size:.82rem}.auth-divider{display:flex;align-items:center;gap:.75rem;color:var(--text-tertiary);font-size:.8rem;margin:.25rem 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border-light)}.auth-email-form{display:grid;gap:.625rem}.auth-input{width:100%;padding:.625rem .875rem;background:var(--surface-page);border:1.5px solid var(--border-light);border-radius:var(--radius-md);font-size:.9rem;color:var(--text-primary);transition:border-color var(--transition-fast);box-sizing:border-box}.auth-input:focus{outline:none;border-color:var(--t11-red)}.auth-input::placeholder{color:var(--text-tertiary)}.auth-input:disabled{opacity:.6;cursor:not-allowed}.auth-email-btn{width:100%;padding:.625rem 1rem;background:var(--t11-red);border:none;border-radius:var(--radius-md);font-size:.9rem;font-weight:600;color:#fff;cursor:pointer;transition:opacity var(--transition-fast)}.auth-email-btn:hover:not(:disabled){opacity:.9}.auth-email-btn:disabled{opacity:.5;cursor:not-allowed}.auth-reset-link{background:none;border:none;color:var(--text-tertiary);font-size:.8rem;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.auth-reset-link:hover:not(:disabled){color:var(--text-secondary)}.auth-reset-link:disabled{cursor:default;text-decoration:none}.notification-bell-wrapper{position:relative}.notification-bell-btn{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.notification-bell-btn:hover{background:#091e420f;color:var(--text-primary)}.notification-bell-icon{width:20px;height:20px}.notification-bell-badge{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--t11-red);color:#fff;font-size:.65rem;font-weight:700;line-height:18px;text-align:center;pointer-events:none}.notification-panel{position:absolute;top:calc(100% + 8px);right:0;width:380px;max-height:480px;background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-dropdown);border:1px solid var(--border-light);z-index:1000;display:flex;flex-direction:column;overflow:hidden;animation:notif-panel-in .15s ease}@keyframes notif-panel-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:1px solid var(--border-light);flex-shrink:0}.notification-panel-header-actions{display:flex;align-items:center;gap:.4rem}.notification-panel-title{margin:0;font-size:.9rem;font-weight:600;color:var(--text-primary)}.notification-mark-all-btn{background:transparent;color:var(--t11-red);font-size:.75rem;font-weight:500;padding:.25rem .5rem;border-radius:var(--radius-sm)}.notification-mark-all-btn:hover{background:var(--t11-red-light)}.notification-header-icon-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s}.notification-header-icon-btn:hover{background:#00800014;color:#2d8a2d}.notification-header-icon-btn.is-danger:hover{background:#d1122914;color:var(--t11-red)}.notification-header-icon-btn.is-danger.is-confirm{background:#d112291f;color:var(--t11-red);animation:notif-confirm-pulse .8s ease infinite alternate}@keyframes notif-confirm-pulse{0%{opacity:.8}to{opacity:1}}.notification-push-btn{background:transparent;color:var(--text-secondary);font-size:.72rem;font-weight:500;padding:.25rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--border-light);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.notification-push-btn:hover:not(:disabled){background:var(--surface-page);color:var(--text-primary);border-color:var(--border-medium, var(--border-light))}.notification-push-btn.is-active{color:#2d8a2d;border-color:#2d8a2d59;background:#2d8a2d0f}.notification-push-btn.is-active:hover:not(:disabled){background:#d112290f;color:var(--t11-red);border-color:#d112294d}.notification-push-btn:disabled{opacity:.5;cursor:not-allowed}.notification-push-denied{font-size:.7rem;color:var(--text-tertiary);padding:.25rem .4rem;border-radius:var(--radius-sm);border:1px dashed var(--border-light);cursor:help}.notification-panel-body{overflow-y:auto;flex:1}.notification-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1rem;color:var(--text-tertiary)}.notification-empty-icon{font-size:2rem;margin-bottom:.5rem;opacity:.5}.notification-empty p{margin:0;font-size:.85rem}.notification-list{list-style:none;margin:0;padding:0}.notification-item{display:flex;align-items:flex-start;gap:.65rem;padding:.75rem 1rem;cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--border-light)}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:var(--surface-page)}.notification-item.is-read{opacity:.55}.notification-item.is-read:hover{opacity:.8}.notification-item-icon{flex-shrink:0;font-size:1.1rem;line-height:1.4;margin-top:1px}.notification-item-content{flex:1;min-width:0}.notification-item-message{margin:0;font-size:.825rem;line-height:1.45;color:var(--text-primary);word-break:break-word}.notification-item-time{display:block;margin-top:3px;font-size:.7rem;color:var(--text-tertiary)}.notification-item-actions{display:flex;gap:2px;flex-shrink:0;opacity:0;transition:opacity var(--transition-fast)}.notification-item:hover .notification-item-actions{opacity:1}.notification-item-dismiss,.notification-item-delete{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);font-size:.75rem}.notification-item-dismiss:hover{background:#00800014;color:#2d8a2d}.notification-item-delete:hover{background:#d1122914;color:var(--t11-red)}@media(max-width:480px){.notification-panel{width:calc(100vw - 24px);right:-8px}}.shell-layout{display:flex;height:100%;overflow:hidden}.shell-sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--sidebar-bg);display:flex;flex-direction:column;overflow-y:auto}.shell-sidebar-top{flex:1;padding:1.25rem .75rem}.shell-logo{display:flex;align-items:center;gap:.65rem;padding:0 .5rem;margin-bottom:1.75rem}.shell-logo-mark{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);background:var(--t11-red);color:#fff;font-weight:800;font-size:.8rem;letter-spacing:.03em;flex-shrink:0}.shell-logo-text{color:var(--sidebar-text-active);font-size:1.05rem;font-weight:700;letter-spacing:-.01em}.shell-nav-label{margin:0 0 .5rem;padding:0 .75rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--sidebar-text);opacity:.65}.shell-nav{display:flex;flex-direction:column;gap:2px}.shell-link{display:flex;align-items:center;gap:.65rem;padding:.55rem .75rem;border-radius:var(--radius-md);color:var(--sidebar-text);text-decoration:none;font-size:.9rem;font-weight:500;transition:background var(--transition-fast),color var(--transition-fast)}.shell-link:hover{background:var(--sidebar-bg-hover);color:var(--sidebar-text-active)}.shell-link-active{background:#d1122926;color:var(--sidebar-text-active)}.shell-link-active:hover{background:#d1122933}.shell-link-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;font-size:1rem;flex-shrink:0;opacity:.85}.shell-sidebar-bottom{padding:.75rem;border-top:1px solid rgba(255,255,255,.08)}.shell-user-section{display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem}.shell-user-btn{flex:1;min-width:0;display:flex;align-items:center;gap:.6rem;padding:.5rem;border-radius:var(--radius-md);background:transparent;border:none;color:inherit;cursor:pointer;text-align:left;transition:background var(--transition-fast)}.shell-user-btn:hover{background:var(--sidebar-bg-hover)}.shell-settings-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-md);background:transparent;border:none;color:var(--sidebar-text);cursor:pointer;opacity:.65;transition:background var(--transition-fast),opacity var(--transition-fast)}.shell-settings-btn:hover{background:var(--sidebar-bg-hover);opacity:1;color:var(--sidebar-text-active)}.shell-avatar{width:34px;height:34px;border-radius:50%;background:var(--sidebar-bg-hover);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center}.shell-avatar img{width:100%;height:100%;object-fit:cover}.shell-avatar-fallback{font-size:.8rem;font-weight:700;color:var(--sidebar-text)}.shell-user-info{min-width:0}.shell-user-name{margin:0;font-size:.85rem;font-weight:600;color:var(--sidebar-text-active);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-user-role{margin:0;font-size:.72rem;color:var(--sidebar-text);text-transform:uppercase;letter-spacing:.04em}.shell-logout-btn{width:100%;background:transparent;color:var(--sidebar-text);font-size:.82rem;padding:.45rem .75rem;border-radius:var(--radius-md);text-align:left}.shell-logout-btn:hover:not(:disabled){background:var(--sidebar-bg-hover);color:var(--sidebar-text-active)}.shell-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--surface-page);position:relative}.shell-notification-anchor{position:absolute;top:.6rem;right:1rem;z-index:100}@media(max-width:768px){.shell-sidebar{width:56px;min-width:56px}.shell-logo-text,.shell-nav-label,.shell-user-info,.shell-logout-btn{display:none}.shell-link{justify-content:center;padding:.6rem}.shell-link-icon{margin:0}.shell-user-section{justify-content:center}.shell-sidebar-top{padding:1rem .5rem}.shell-sidebar-bottom{padding:.5rem}.shell-logo{justify-content:center}}.spinner{display:inline-block;border-radius:50%;border:2px solid rgba(209,18,41,.2);border-top-color:var(--t11-red);animation:spin .7s linear infinite;flex-shrink:0}.spinner--sm{width:14px;height:14px;border-width:2px}.spinner--md{width:20px;height:20px;border-width:2px}.spinner--lg{width:36px;height:36px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;height:100%;min-height:200px;color:var(--text-secondary);font-size:.875rem}.loading-screen__label{color:var(--text-secondary);font-size:.875rem}.maintenance-shell{display:flex;align-items:center;justify-content:center;min-height:100%;padding:2rem;background:linear-gradient(135deg,rgba(209,18,41,.04) 0%,transparent 60%),var(--surface-page)}.maintenance-card{width:100%;max-width:480px;background:var(--surface-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);padding:2.5rem 2rem;text-align:center}.maintenance-logo{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius-lg);background:var(--t11-red);color:#fff;font-weight:800;font-size:1.1rem;letter-spacing:.03em;margin-bottom:1.25rem}.maintenance-icon{font-size:2rem;margin-bottom:1rem;display:block}.maintenance-title{margin:0 0 1.25rem;font-size:1.5rem;font-weight:700;color:var(--text-primary)}.maintenance-body{margin:0 0 .75rem;color:var(--text-secondary);font-size:.95rem;line-height:1.6}.maintenance-hint{margin:1.25rem 0;color:var(--text-tertiary);font-size:.82rem;border-top:1px solid var(--border-light);padding-top:1rem}.maintenance-logout{width:100%;background:transparent;color:var(--text-secondary);font-size:.875rem;border:1px solid var(--border-light);border-radius:var(--radius-md);padding:.6rem 1rem;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.maintenance-logout:hover:not(:disabled){background:var(--surface-column);color:var(--text-primary)}.toast-container{position:fixed;top:1.25rem;right:1.25rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{display:flex;align-items:center;gap:.625rem;min-width:280px;max-width:420px;padding:.75rem 1rem;border-radius:var(--radius-md);box-shadow:var(--shadow-dropdown);font-size:.875rem;font-weight:500;pointer-events:all;animation:toast-in .2s ease forwards}@keyframes toast-in{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}.toast--success{background:#e3fcef;color:#064;border-left:4px solid #36b37e}.toast--error{background:#ffebe6;color:#ae2a19;border-left:4px solid var(--t11-red)}.toast--info{background:#deebff;color:#0747a6;border-left:4px solid #0052cc}.toast__icon{flex-shrink:0;font-size:1rem;line-height:1;font-weight:700}.toast__message{flex:1}.toast__close{flex-shrink:0;background:transparent;border:none;padding:0;font-size:.75rem;cursor:pointer;opacity:.6;color:inherit;border-radius:var(--radius-sm);line-height:1;width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center}.toast__close:hover{opacity:1;background:#00000014}
