@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Noto+Sans+JP:wght@300;400;500;600&family=Noto+Serif+JP:wght@400;600;700&display=swap";:root{--color-primary-50: #fdf2ef;--color-primary-100: #fcece8;--color-primary-200: #f7d5c9;--color-primary-300: #f0bda8;--color-primary-400: #e59275;--color-primary-500: #da7756;--color-primary-600: #c56243;--color-primary-700: #a64d32;--color-primary-800: #883e28;--color-primary-900: #6d3322;--color-secondary-50: #f9f8f6;--color-secondary-100: #f2f0eb;--color-secondary-200: #e8e6df;--color-secondary-300: #dcd9d0;--color-secondary-400: #c6c2b6;--color-secondary-500: #a8a49a;--color-secondary-600: #8c8980;--color-secondary-700: #716e67;--color-secondary-800: #585650;--color-secondary-900: #42403c;--color-accent-50: #fffbf2;--color-accent-500: #d97706;--color-gray-50: #fdfbf9;--color-gray-100: #f7f5f2;--color-gray-200: #eaddd7;--color-gray-300: #d4cdc9;--color-gray-400: #a8a29e;--color-gray-500: #78716c;--color-gray-600: #57534e;--color-gray-700: #44403c;--color-gray-800: #292524;--color-gray-900: #1c1917;--color-success: #5c9c73;--color-warning: #e09f3e;--color-error: #cc5e5e;--color-info: #5faad9;--bg-primary: #fbf9f6;--bg-secondary: #f3f0e9;--bg-tertiary: #ffffff;--bg-card: #ffffff;--bg-glass: rgba(255, 255, 255, .7);--bg-overlay: rgba(251, 249, 246, .85);--text-primary: #3f3e3e;--text-secondary: #6b6965;--text-muted: #96948f;--text-inverse: #ffffff;--border-color: #e6e2da;--border-color-light: #f0ede6;--shadow-sm: 0 1px 2px 0 rgba(60, 50, 40, .05);--shadow-md: 0 4px 6px -1px rgba(60, 50, 40, .05), 0 2px 4px -1px rgba(60, 50, 40, .03);--shadow-lg: 0 10px 15px -3px rgba(60, 50, 40, .05), 0 4px 6px -2px rgba(60, 50, 40, .03);--shadow-xl: 0 20px 25px -5px rgba(60, 50, 40, .05), 0 10px 10px -5px rgba(60, 50, 40, .03);--shadow-glow: 0 0 15px rgba(218, 119, 86, .2);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--sidebar-width: 260px;--header-height: 64px;--font-serif: "Noto Serif JP", "Baskerville", "Times New Roman", serif;--font-sans: "Inter", "Noto Sans JP", system-ui, -apple-system, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:700;line-height:1.4;color:var(--text-primary);letter-spacing:-.02em}h1{font-size:2.25rem}h2{font-size:1.75rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}p{color:var(--text-secondary);font-family:var(--font-sans)}a{color:var(--color-primary-600);text-decoration:none;transition:color var(--transition-fast);font-weight:500}a:hover{color:var(--color-primary-500);text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:.9rem;font-weight:500;font-family:var(--font-sans);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.btn-primary{background:var(--color-primary-500);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--color-primary-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--color-secondary-50);border-color:var(--color-primary-300);color:var(--color-primary-800)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:#00000008;color:var(--text-primary)}.card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-normal)}.card:hover{border-color:var(--color-primary-200);box-shadow:var(--shadow-md)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color-light)}.card-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);font-family:var(--font-serif)}.badge{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .6rem;font-size:.75rem;font-weight:600;font-family:var(--font-sans);border-radius:var(--radius-sm);letter-spacing:.02em}.badge-primary{background:var(--color-primary-100);color:var(--color-primary-800);border:1px solid var(--color-primary-200)}.badge-error{background:#fef2f2;color:#991b1b;border:1px solid #fee2e2}.badge-warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.badge-success{background:#f0fdf4;color:#166534;border:1px solid #dcfce7}.input{width:100%;padding:.6rem 1rem;font-size:.95rem;color:var(--text-primary);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);outline:none;transition:all var(--transition-fast);box-shadow:inset 0 1px 2px #00000005}.input:focus{border-color:var(--color-primary-400);box-shadow:0 0 0 3px #da775626}.input::placeholder{color:var(--text-muted)}.glass{background:#ffffffb3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.5)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{transform:translate(-10px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInUp{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease}.animate-slide-in-left{animation:slideInLeft var(--transition-normal) ease}.animate-slide-in-up{animation:slideInUp var(--transition-normal) ease}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#dcdcdc;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:silver}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.w-full{width:100%}.h-full{height:100%}.text-center{text-align:center}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-muted{color:var(--text-muted)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.sidebar{width:var(--sidebar-width);height:100vh;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;position:fixed;left:0;top:0;z-index:100}.sidebar-logo{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);border-bottom:1px solid var(--border-color-light)}.logo-icon{display:flex;align-items:center;justify-content:center;color:var(--color-primary-500)}.logo-text{font-size:1.25rem;font-weight:700;font-family:var(--font-serif);color:var(--text-primary)}.sidebar-nav{flex:1;padding:var(--spacing-md);display:flex;flex-direction:column;gap:4px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:var(--spacing-md);padding:10px 16px;border-radius:var(--radius-md);color:var(--text-secondary);transition:all var(--transition-fast);text-decoration:none;position:relative;font-weight:500}.nav-item:hover{background:#00000008;color:var(--text-primary)}.nav-item.active{background:var(--color-primary-100);color:var(--color-primary-800);font-weight:600}.nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:20px;background:var(--color-primary-500);border-top-right-radius:4px;border-bottom-right-radius:4px}.nav-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px}.nav-label{font-size:.95rem}.nav-badge{margin-left:auto;background:var(--color-primary-500);color:#fff;font-size:.7rem;font-weight:600;padding:.125rem .5rem;border-radius:var(--radius-full);min-width:1.25rem;text-align:center}.sidebar-user{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);border-top:1px solid var(--border-color);background:#00000003}.user-avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--color-primary-100);border:1px solid var(--color-primary-200);display:flex;align-items:center;justify-content:center;color:var(--color-primary-700);font-weight:600;font-size:.9rem;flex-shrink:0;font-family:var(--font-serif)}.user-info{display:flex;flex-direction:column;flex:1;min-width:0}.user-name{font-size:.9rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-serif)}.user-dept{font-size:.75rem;color:var(--text-muted)}.logout-btn{width:36px;height:36px;border-radius:var(--radius-md);border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);flex-shrink:0}.logout-btn:hover{background:#fff;border-color:var(--border-color);color:var(--color-error);box-shadow:var(--shadow-sm)}.main-layout{display:flex;min-height:100vh;width:100%}.main-content{flex:1;margin-left:var(--sidebar-width);padding:var(--spacing-xl);background:var(--bg-primary);min-height:100vh;overflow-y:auto}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:20px}.login-container{width:100%;max-width:420px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:24px;padding:40px;box-shadow:var(--shadow-xl)}.login-logo{text-align:center;margin-bottom:32px}.login-logo svg{margin-bottom:16px;color:var(--color-primary-500)}.login-logo h1{font-size:2rem;font-weight:700;font-family:var(--font-serif);color:var(--color-primary-800);margin-bottom:4px}.login-subtitle{font-size:.9rem;color:var(--text-secondary)}.login-form{margin-bottom:24px}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:.85rem;font-weight:600;color:var(--text-primary);margin-bottom:8px}.form-group input{width:100%;padding:12px 16px;font-size:1rem;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;outline:none;transition:all .2s;box-shadow:inset 0 2px 4px #00000005}.form-group input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #da775633;background:#fff}.form-group input::placeholder{color:var(--text-muted)}.error-message{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fef2f2;border:1px solid #fee2e2;border-radius:8px;color:#991b1b;font-size:.85rem;margin-bottom:20px}.login-btn{width:100%;padding:14px;font-size:1rem;font-weight:600;color:#fff;background:var(--color-primary-500);border:none;border-radius:12px;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm)}.login-btn:hover:not(:disabled){background:var(--color-primary-600);transform:translateY(-1px);box-shadow:var(--shadow-md)}.login-btn:disabled{opacity:.7;cursor:not-allowed;background:var(--color-gray-400)}.login-help{text-align:center;margin-top:16px}.forgot-password-link{background:none;border:none;color:var(--text-secondary);font-size:.85rem;text-decoration:none;cursor:pointer;font-family:inherit;padding:0}.forgot-password-link:hover{color:var(--color-primary-600);text-decoration:underline}.demo-info{background:var(--color-secondary-50);border:1px solid var(--border-color);border-radius:12px;padding:16px;margin-bottom:24px}.demo-title{font-size:.85rem;font-weight:600;color:var(--color-primary-800);margin-bottom:12px}.demo-credentials{display:flex;flex-direction:column;gap:8px}.demo-item{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--text-secondary)}.demo-label{min-width:60px}.demo-item code{background:#fff;padding:4px 8px;border-radius:4px;font-family:monospace;color:var(--text-primary);border:1px solid var(--border-color)}.login-footer{text-align:center}.login-footer p{font-size:.75rem;color:var(--text-muted)}.bulletin-board{height:100%;display:flex;flex-direction:column}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.header-left{display:flex;align-items:center}.header-actions{display:flex;align-items:center;gap:12px}.btn-add-post{background:var(--color-primary-600);color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:.8rem;cursor:pointer;font-weight:500}.btn-add-post:hover{background:var(--color-primary-700)}.bulletin-list{flex:1;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.bulletin-item{display:flex;align-items:flex-start;padding:12px;border-radius:8px;background:var(--bg-section);border:1px solid var(--border-color);transition:all .2s;gap:12px;border-left:4px solid #94a3b8}.bulletin-item:hover{transform:translate(4px);background:#fff;box-shadow:0 2px 8px #0000000d}.bulletin-item.priority-urgent{border-left-color:#ef4444;background:#fef2f2}.bulletin-item.priority-high{border-left-color:#f97316;background:#fff7ed}.bulletin-item.priority-normal{border-left-color:#94a3b8}.bulletin-icon{font-size:1.2rem}.bulletin-content{flex:1}.bulletin-header-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.priority-badge{font-size:.7rem;padding:2px 6px;border-radius:4px;color:#fff;font-weight:700}.priority-badge.urgent{background:#ef4444}.priority-badge.high{background:#f97316}.bulletin-title{font-size:.95rem;font-weight:500;color:var(--text-primary);margin:0;line-height:1.4}.bulletin-meta{display:flex;gap:12px;font-size:.8rem;color:var(--text-secondary)}.bulletin-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.bulletin-modal{background:#fff;width:500px;border-radius:12px;padding:24px;box-shadow:0 10px 25px #0003}.modal-header{display:flex;justify-content:space-between;margin-bottom:20px}.modal-header h3{font-size:1.2rem;margin:0}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;font-weight:500;font-size:.9rem}.form-group input,.form-group select{width:100%;padding:10px;border:1px solid var(--border-color);border-radius:8px;font-size:.95rem}.help-text{font-size:.75rem;color:#666;margin-top:4px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.btn-cancel{padding:8px 16px;background:#f1f5f9;border:none;border-radius:6px;cursor:pointer}.btn-submit{padding:8px 24px;background:var(--color-primary-600);color:#fff;border:none;border-radius:6px;font-weight:700;cursor:pointer}.bulletin-detail-modal{max-width:700px}.bulletin-detail-modal .detail-meta{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.bulletin-detail-modal .meta-author,.bulletin-detail-modal .meta-date{color:var(--text-secondary);font-size:.9rem}.bulletin-detail-modal .detail-content{margin:16px 0}.bulletin-detail-modal .detail-content pre{white-space:pre-wrap;font-family:inherit;line-height:1.8;color:var(--text-primary)}.bulletin-attachment-badge{color:var(--text-muted);font-size:.8rem}.detail-attachments{margin-top:20px;padding-top:16px;border-top:1px solid var(--border-color)}.detail-attachments h4{font-size:.9rem;color:var(--text-secondary);margin-bottom:12px}.attachment-list{display:flex;flex-direction:column;gap:8px}.attachment-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-secondary);border-radius:6px}.attachment-item .file-icon{font-size:1.3rem}.attachment-item .file-name{flex:1;font-size:.9rem}.attachment-item .btn-preview{padding:4px 10px;font-size:.8rem;background:var(--color-primary-500);color:#fff;border:none;border-radius:4px;cursor:pointer}.attachment-item .btn-preview:hover{background:var(--color-primary-600)}.attachments-section{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.attachment-chip{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--bg-tertiary);border-radius:16px;font-size:.85rem}.attachment-chip button{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem}.attachment-chip button:hover{color:var(--color-danger)}.btn-add-attachment{padding:6px 12px;background:none;border:1px dashed var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:.85rem}.btn-add-attachment:hover{border-color:var(--color-primary-500);color:var(--color-primary-600)}.file-preview-overlay{position:fixed;inset:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.file-preview-modal{background:#fff;width:90%;max-width:1000px;height:85vh;border-radius:8px;display:flex;flex-direction:column;box-shadow:0 10px 25px #00000080;overflow:hidden;animation:modalSlideUp .3s cubic-bezier(.16,1,.3,1)}.preview-header{height:56px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;background-color:#2d3748;color:#fff}.preview-header .file-name{font-weight:500;font-size:1.1rem}.preview-actions{display:flex;gap:12px}.preview-actions button{background:none;border:none;color:#fffc;cursor:pointer;font-size:1.2rem;padding:4px;border-radius:4px;transition:all .2s}.preview-actions button:hover{background-color:#ffffff1a;color:#fff}.preview-body{flex:1;overflow:auto;background-color:#f7fafc;display:flex;align-items:center;justify-content:center;padding:24px}.preview-image-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.preview-image{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 4px 12px #0000001a}.preview-document-container{width:100%;height:100%;display:flex;justify-content:center}.pdf-mock-viewer{width:100%;max-width:800px;height:100%;background:#525659;display:flex;flex-direction:column;border-radius:4px;overflow:hidden}.pdf-toolbar{height:40px;background:#323639;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 16px;font-size:.9rem}.pdf-zoom-controls{display:flex;align-items:center;gap:8px}.pdf-zoom-controls button{background:none;border:none;color:#fff;cursor:pointer;font-size:1.2rem;padding:0 4px}.pdf-content{flex:1;overflow-y:auto;padding:24px;display:flex;justify-content:center}.pdf-page{width:100%;max-width:600px;min-height:800px;background:#fff;box-shadow:0 4px 8px #0000004d;padding:40px}.mock-text-lines .line{height:12px;background-color:#e2e8f0;margin-bottom:12px;border-radius:2px}.preview-generic-container{text-align:center;color:#4a5568}.generic-icon{font-size:4rem;margin-bottom:16px}.download-btn{margin-top:16px;padding:8px 24px;background-color:#3182ce;color:#fff;border:none;border-radius:4px;cursor:pointer}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.form-library{height:100%}.form-categories{display:flex;gap:var(--spacing-xs)}.category-btn{padding:.25rem .75rem;font-size:.75rem;font-weight:500;border:1px solid var(--border-color);border-radius:var(--radius-full);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.category-btn:hover{border-color:var(--color-primary-500);color:var(--text-primary)}.category-btn.active{background:var(--color-primary-500);border-color:var(--color-primary-500);color:#fff}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-md)}.form-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-glass);border-radius:var(--radius-md);transition:all var(--transition-fast);animation:slideInUp var(--transition-normal) ease backwards}.form-item:hover{background:var(--bg-tertiary);transform:translateY(-2px)}.form-icon{font-size:1.5rem}.form-info{flex:1;min-width:0}.form-name{display:block;font-size:.9rem;font-weight:500;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.form-meta{display:flex;gap:var(--spacing-md);font-size:.75rem;color:var(--text-muted)}.form-category{color:var(--color-primary-400)}.download-btn{padding:var(--spacing-sm);border-radius:var(--radius-md)}.download-btn:hover{background:var(--color-primary-500);color:#fff}.notification-widget{height:100%}.notification-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.notification-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-glass);border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition-fast)}.notification-item:hover{background:var(--bg-tertiary);transform:translate(4px)}.notification-indicator{width:8px;height:8px;border-radius:var(--radius-full);animation:pulse 2s infinite}.notification-label{flex:1;color:var(--text-primary);font-size:.9rem}.notification-count{padding:.25rem .75rem;border-radius:var(--radius-full);color:#fff;font-size:.8rem;font-weight:600}.shortcuts-widget{height:100%}.shortcuts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.shortcut-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--bg-glass);border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition-fast);border:1px solid transparent}.shortcut-item:hover{background:var(--bg-tertiary);border-color:var(--accent-color);transform:translateY(-2px);box-shadow:0 4px 12px #0003}.shortcut-icon{font-size:1.5rem}.shortcut-label{font-size:.8rem;color:var(--text-secondary);font-weight:500}.shortcut-item:hover .shortcut-label{color:var(--text-primary)}.dashboard{animation:fadeIn var(--transition-normal) ease}.dashboard-header{margin-bottom:var(--spacing-xl)}.dashboard-header h1{font-size:1.75rem;margin-bottom:var(--spacing-xs)}.dashboard-date{color:var(--text-muted);font-size:.9rem}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto auto;gap:var(--spacing-lg)}.dashboard-item{min-height:200px}.dashboard-item.notifications{grid-column:1 / 2;grid-row:1 / 2}.dashboard-item.bulletin{grid-column:2 / 4;grid-row:1 / 3}.dashboard-item.shortcuts{grid-column:1 / 2;grid-row:2 / 3}.dashboard-item.forms{grid-column:1 / 4;grid-row:3 / 4}@media(max-width:1200px){.dashboard-grid{grid-template-columns:1fr 1fr}.dashboard-item.notifications{grid-column:1 / 2;grid-row:1 / 2}.dashboard-item.bulletin{grid-column:2 / 3;grid-row:1 / 3}.dashboard-item.shortcuts{grid-column:1 / 2;grid-row:2 / 3}.dashboard-item.forms{grid-column:1 / 3;grid-row:3 / 4}}@media(max-width:768px){.dashboard-grid{grid-template-columns:1fr}.dashboard-item{grid-column:1 / 2!important;grid-row:auto!important}}.chat-page.line-style{display:flex;height:calc(100vh - var(--spacing-xl) * 2);background:#fff;border-radius:var(--radius-lg);overflow:hidden;animation:fadeIn var(--transition-normal) ease;box-shadow:0 4px 12px #0000001a;border:1px solid #e5e5e5}.chat-sidebar{width:320px;background:#fff;border-right:1px solid #e5e5e5;display:flex;flex-direction:column}.chat-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#2c3e50;border-bottom:1px solid #1a2634;color:#fff}.chat-sidebar-header h2{font-size:1.1rem;font-weight:700;color:#fff;font-family:var(--font-sans)}.chat-sidebar-actions{display:flex;gap:8px}.icon-btn{width:32px;height:32px;border-radius:50%;border:none;background:transparent;color:#fffc;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.icon-btn:hover{background:#ffffff1a;color:#fff}.chat-filter-tabs{display:flex;padding:8px 12px;gap:8px;border-bottom:1px solid #e5e5e5;background:#f5f5f5}.filter-tab{flex:1;padding:6px 12px;border:none;border-radius:6px;background:transparent;color:#666;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s}.filter-tab:hover{background:#0000000d}.filter-tab.active{background:#fff;color:#00b900;box-shadow:0 1px 2px #0000001a}.chat-room-list{flex:1;overflow-y:auto}.chat-room-item{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .2s;border-bottom:1px solid #f0f0f0}.chat-room-item:hover{background:#f5f5f5}.chat-room-item.active{background:#ebfbec}.room-avatar-wrapper{position:relative}.room-avatar{width:48px;height:48px;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center;color:#475569;font-weight:600;font-size:1rem;border:none;font-family:var(--font-sans)}.room-avatar.group{background:#e2e8f0;border-radius:16px}.online-dot{position:absolute;bottom:2px;right:2px;width:12px;height:12px;background:#06c755;border-radius:50%;border:2px solid white}.group-badge{position:absolute;bottom:-2px;right:-2px;width:18px;height:18px;background:#64748b;border-radius:50%;border:2px solid white;display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px}.room-info{flex:1;min-width:0}.room-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.room-name{font-size:.95rem;font-weight:600;color:#1a1a1a;font-family:var(--font-sans)}.room-time{font-size:.75rem;color:#999}.room-preview{display:flex;align-items:center;gap:8px}.preview-text{flex:1;font-size:.8rem;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unread-count{min-width:18px;height:18px;padding:0 5px;background:#06c755;border-radius:9px;color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center}.chat-main{flex:1;display:flex;flex-direction:column;background:#729ecb}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.1);position:relative;z-index:10}.chat-header-info{display:flex;align-items:center;gap:12px}.chat-header-info .room-avatar{width:36px;height:36px;font-size:.9rem;background:#e2e8f0}.header-text h3{font-size:1rem;color:#1a1a1a;margin-bottom:2px;font-family:var(--font-sans)}.member-count,.user-status{font-size:.75rem;color:#666}.user-status.online{color:#06c755}.chat-header-actions{display:flex;gap:8px}.chat-header-actions .icon-btn{font-size:1.25rem;color:#1a1a1a}.chat-header-actions .icon-btn:hover{background:#0000000d;color:#1a1a1a}.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;background-image:url(https://abs.twimg.com/sticky/illustrations/lohp_1300x655.png);background-blend-mode:overlay;background-color:#8cabd9}.date-divider{display:flex;justify-content:center;margin:12px 0}.date-divider span{background:#0003;color:#fff;padding:4px 12px;border-radius:12px;font-size:.75rem}.message{display:flex;gap:10px;max-width:70%}.message.sent{align-self:flex-end;flex-direction:row-reverse}.message.received{align-self:flex-start}.message-avatar{width:36px;height:36px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;color:#1a1a1a;font-weight:600;font-size:.75rem;flex-shrink:0;border:none;font-family:var(--font-sans);overflow:hidden}.message-avatar img{width:100%;height:100%;object-fit:cover}.message-avatar-placeholder{width:36px;flex-shrink:0}.message-content{display:flex;flex-direction:column}.sender-name{font-size:.75rem;color:#fff;margin-bottom:4px;text-shadow:0 1px 1px rgba(0,0,0,.2)}.message.sent .sender-name{display:none}.message-row{display:flex;align-items:flex-end;gap:6px}.message.sent .message-row{flex-direction:row-reverse}.message-bubble{padding:10px 14px;border-radius:20px;max-width:100%;word-wrap:break-word;box-shadow:0 1px 1px #0000001a;border:none;position:relative;font-size:.95rem;line-height:1.5}.message.sent .message-bubble{background:#06c755;color:#fff;border-top-right-radius:4px}.message.received .message-bubble{background:#fff;color:#1a1a1a;border-top-left-radius:4px}.message.sent .message-bubble:after{content:"";position:absolute;top:0;right:-6px;width:0;height:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent transparent transparent #06c755}.message.received .message-bubble:after{content:"";position:absolute;top:0;left:-6px;width:0;height:0;border-style:solid;border-width:0 10px 10px 0;border-color:transparent white transparent transparent}.message-bubble p{margin:0}.message-bubble .auto-link{color:inherit;text-decoration:underline;text-decoration-style:dotted;word-break:break-all}.message-file{display:flex;align-items:center;gap:10px;min-width:200px}.file-icon{font-size:2rem}.file-info{flex:1;display:flex;flex-direction:column;gap:4px}.file-name{font-size:.85rem;font-weight:500}.file-action{background:transparent;border:none;color:inherit;font-size:.75rem;opacity:.8;cursor:pointer;text-align:left;padding:0;text-decoration:underline}.message-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding-bottom:0}.message-meta.left{align-items:flex-end}.message-meta.right{align-items:flex-start}.read-status{font-size:.65rem;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1)}.message.received .read-status{display:none}.message-time{font-size:.65rem;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.1)}.chat-input-area{display:flex;align-items:flex-end;gap:12px;padding:16px 20px;background:#f5f5f5;border-top:1px solid #e5e5e5}.chat-input-area .icon-btn{width:36px;height:36px;color:#1a1a1a}.chat-input-area .icon-btn:hover{color:#06c755;background:#06c7551a}.chat-input-container{flex:1;display:flex;flex-direction:column;background:#fff;border:1px solid #ddd;border-radius:20px;padding:8px 12px}.chat-input{width:100%;border:none;outline:none;padding:8px 4px;font-size:.95rem;color:#1a1a1a;background:transparent;min-height:24px;max-height:100px;resize:none;font-family:inherit;box-shadow:none}.chat-input:focus{box-shadow:none;border:none;background:transparent}.send-btn{width:40px;height:40px;border-radius:50%;border:none;background-color:#06c755;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 2px 4px #0000001a;flex-shrink:0}.send-btn:hover{background-color:#05b34c;transform:scale(1.05)}.message-container{display:flex;flex-direction:column;gap:4px;position:relative;max-width:100%}.message.sent .message-container{align-items:flex-end}.message.received .message-container{align-items:flex-start}.message-reply-context{font-size:.75rem;color:#00000080;margin-bottom:4px;padding-left:8px;border-left:2px solid rgba(0,0,0,.2);display:flex;flex-direction:column}.message.sent .message-reply-context{color:#fffc;border-left-color:#ffffff80;align-items:flex-end;padding-right:8px;padding-left:0;border-left:none;border-right:2px solid rgba(255,255,255,.5)}.reaction-picker{position:absolute;top:-50px;left:50%;transform:translate(-50%);background:#fff;padding:6px 10px;border-radius:20px;box-shadow:0 4px 12px #00000026;display:flex;gap:8px;z-index:100;white-space:nowrap}.reaction-picker button{background:none;border:none;font-size:1.2rem;cursor:pointer;transition:transform .2s;padding:2px}.reaction-picker button:hover{transform:scale(1.3)}.message-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.message-reply-context.clickable{cursor:pointer;transition:background-color .2s}.message-reply-context.clickable:hover{background-color:#cbd5e0}.message-file.clickable-file{cursor:pointer;transition:background-color .2s}.message-file.clickable-file:hover{background-color:#0000000d}@keyframes highlightFlash{0%{background-color:#ffff0080}to{background-color:transparent}}.highlight-flash{animation:highlightFlash 2s ease-out;border-radius:8px}.reaction-badge{background:#fff;border:1px solid #ddd;border-radius:12px;padding:2px 6px;font-size:.75rem;color:#555;cursor:pointer;display:flex;align-items:center;gap:2px;box-shadow:0 1px 2px #0000000d}.reaction-badge.mine{background:#ebfbec;border-color:#06c755;color:#06c755}.chat-input-area{position:relative;flex-direction:column;align-items:stretch;gap:0}.input-reply-preview{background:#f0f0f0;padding:8px 12px;border-radius:8px 8px 0 0;font-size:.85rem;color:#666;display:flex;justify-content:space-between;align-items:center;margin-bottom:-1px;border:1px solid #ddd;border-bottom:none}.close-reply{background:none;border:none;font-size:1.2rem;color:#999;cursor:pointer}.chat-input-area>:not(.input-reply-preview):not(.mention-suggestions){display:flex;align-items:flex-end;gap:12px}.chat-input-container{flex:1;background:#fff;border:1px solid #ddd;border-radius:20px;padding:8px 12px}.mention-suggestions{position:absolute;bottom:100%;left:60px;width:200px;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 -4px 12px #0000001a;max-height:200px;overflow-y:auto;z-index:50;margin-bottom:10px}.mention-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background .2s}.mention-item:hover{background:#f5f5f5}.mention-avatar{width:24px;height:24px;border-radius:50%;background:#06c755;color:#fff;font-size:.7rem;display:flex;align-items:center;justify-content:center}.modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.recipient-modal{width:500px;height:600px;background:#fff;border-radius:12px;display:flex;flex-direction:column;box-shadow:0 10px 25px #0003;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e5e5;background:#f9f9f9}.modal-header h3{margin:0;font-size:1.1rem;color:#333}.modal-tabs{display:flex;border-bottom:1px solid #e5e5e5;background:#fff}.modal-tabs button{flex:1;padding:12px;background:none;border:none;font-weight:600;color:#666;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.modal-tabs button:hover{background:#f5f5f5;color:#333}.modal-tabs button.active{color:#06c755;border-bottom-color:#06c755}.modal-body{flex:1;overflow-y:auto;padding:0;background:#fff}.selector-list{display:flex;flex-direction:column}.selector-section{border-bottom:1px solid #f0f0f0}.section-header{padding:8px 16px;background:#f9fafb;font-size:.85rem;font-weight:600;color:#555;border-bottom:1px solid #eee;display:flex;align-items:center;gap:8px}.section-items{display:flex;flex-direction:column}.selector-item{display:flex;align-items:center;gap:12px;padding:10px 20px;cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.selector-item:hover{background:#f0f9f0}.selector-item input[type=checkbox]{width:18px;height:18px;accent-color:#06c755}.selector-avatar{width:32px;height:32px;border-radius:50%;background:#e2e8f0;color:#555;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600}.modal-footer{padding:16px 20px;border-top:1px solid #e5e5e5;display:flex;align-items:center;justify-content:space-between;background:#f9f9f9}.selected-count{font-size:.9rem;color:#666;font-weight:600}.btn-primary{padding:8px 24px;background:#06c755;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;box-shadow:0 2px 4px #0000001a}.btn-primary:disabled{background:#ccc;cursor:not-allowed;box-shadow:none}.btn-primary:active{transform:translateY(1px)}.search-tab-content{padding:16px}.search-tab-content .search-input{width:100%;padding:12px 16px;border:1px solid #ddd;border-radius:8px;font-size:1rem;margin-bottom:16px}.search-tab-content .search-input:focus{outline:none;border-color:#06c755}.search-hint{padding:32px;text-align:center;color:#888}.user-info-compact{display:flex;flex-direction:column;gap:2px}.user-info-compact .user-dept{font-size:.75rem;color:#888}.group-header{display:flex;align-items:center;gap:8px}.group-icon{font-size:1.2rem}.group-desc{font-size:.8rem;color:#888;padding:8px 16px;margin:0}.more-users{padding:8px 16px;font-size:.85rem;color:#06c755;font-weight:500}.group-header-section{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f5f5f5;border-bottom:1px solid #e5e5e5}.group-header-section h4{margin:0;font-size:.85rem;color:#666}.btn-add-group{padding:4px 10px;font-size:.75rem;background:#06c755;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-add-group:hover{background:#05a548}.group-item{padding:12px 16px}.group-info{display:flex;flex-direction:column;flex:1}.group-name{font-weight:500}.group-item .group-desc{font-size:.75rem;color:#888;margin:0}.no-custom-groups{padding:24px;text-align:center;color:#888;font-size:.9rem}.custom-group{background:#fafafa}.btn-delete-group{background:none;border:none;font-size:1rem;cursor:pointer;opacity:.5}.btn-delete-group:hover{opacity:1}.group-item.clickable{cursor:pointer;transition:background .2s}.group-item.clickable:hover{background:#e8f5e9}.group-action{font-size:1.2rem;color:#06c755;font-weight:700}.group-item.selected{background:#d4edda;border-left:3px solid #06c755}.group-item.selected .group-action{color:#28a745}.message-search-panel{padding:12px 16px;background:#f5f5f5;border-bottom:1px solid #e5e5e5}.message-search-input{width:100%;padding:10px 14px;border:1px solid #ddd;border-radius:20px;font-size:.9rem;outline:none}.message-search-input:focus{border-color:#06c755}.search-results-count{margin-top:8px;font-size:.8rem;color:#666}.search-results-list{margin-top:8px;max-height:200px;overflow-y:auto;background:#fff;border-radius:8px;border:1px solid #e5e5e5}.search-result-item{padding:10px 12px;cursor:pointer;border-bottom:1px solid #f0f0f0;display:flex;flex-direction:column;gap:2px}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:#f9f9f9}.result-sender{font-size:.75rem;color:#06c755;font-weight:600}.result-text{font-size:.85rem;color:#333}.result-time{font-size:.7rem;color:#999}.icon-btn.active{background:#06c755;color:#fff}.mail-page.modern{display:flex;height:calc(100vh - var(--spacing-xl) * 2);background:var(--bg-tertiary);border-radius:var(--radius-lg);overflow:hidden;animation:fadeIn var(--transition-normal) ease;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.mail-sidebar{width:240px;background:var(--bg-secondary);border-right:1px solid var(--border-color);padding:16px;display:flex;flex-direction:column}.compose-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;background:var(--color-primary-500);border:none;border-radius:12px;color:#fff;font-size:.95rem;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm);margin-bottom:20px}.compose-btn:hover{transform:translateY(-1px);background:var(--color-primary-600);box-shadow:var(--shadow-md)}.mail-folders{flex:1;display:flex;flex-direction:column;gap:4px}.folder-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:transparent;border:none;border-radius:8px;color:var(--text-secondary);font-size:.9rem;cursor:pointer;transition:all .2s;text-align:left;font-weight:500}.folder-item:hover{background:#00000008;color:var(--text-primary)}.folder-item.active{background:var(--color-primary-100);color:var(--color-primary-800);font-weight:600}.folder-icon{font-size:1.1rem}.folder-label{flex:1}.folder-count{background:var(--color-primary-500);color:#fff;padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:600}.mail-storage{padding-top:16px;border-top:1px solid var(--border-color)}.storage-label{font-size:.75rem;color:var(--text-muted);margin-bottom:8px}.storage-bar{height:6px;background:var(--border-color);border-radius:3px;overflow:hidden;margin-bottom:4px}.storage-fill{height:100%;background:var(--color-primary-400);border-radius:3px}.storage-text{font-size:.7rem;color:var(--text-muted)}.mail-list-container{width:360px;border-right:1px solid var(--border-color);display:flex;flex-direction:column;background:var(--bg-tertiary)}.mail-list-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.mail-list-header h2{font-size:1.1rem;color:var(--text-primary);font-weight:700;font-family:var(--font-serif)}.mail-list-actions{display:flex;gap:8px}.action-btn{width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.action-btn:hover{background:var(--bg-secondary);color:var(--color-primary-600)}.mail-list{flex:1;overflow-y:auto}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:var(--text-muted)}.empty-icon{font-size:3rem;margin-bottom:12px;opacity:.5}.mail-item{display:flex;align-items:flex-start;gap:12px;padding:16px;border-bottom:1px solid var(--border-color-light);cursor:pointer;transition:all .2s}.mail-item:hover{background:var(--bg-secondary)}.mail-item.selected{background:var(--color-primary-50);border-left:3px solid var(--color-primary-500)}.mail-item.unread{background:#fff}.mail-item.unread .mail-from,.mail-item.unread .mail-subject{font-weight:700;color:var(--text-primary)}.star-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--border-color);padding:0;transition:color .2s;flex-shrink:0}.star-btn:hover,.star-btn.starred{color:var(--color-warning)}.mail-item-content{flex:1;min-width:0}.mail-item-top{display:flex;justify-content:space-between;margin-bottom:4px}.mail-from{font-size:.9rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-serif)}.mail-date{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.mail-subject{font-size:.85rem;color:var(--text-secondary);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-icon{margin-right:4px;color:var(--text-muted)}.mail-preview{font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mail-detail{flex:1;display:flex;flex-direction:column;background:#fcfbf9}.mail-detail-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.back-btn{width:36px;height:36px;border-radius:8px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center}.mail-detail-actions{display:flex;gap:8px}.mail-detail-content{flex:1;overflow-y:auto;padding:32px}.mail-detail-subject{font-size:1.5rem;color:var(--text-primary);font-weight:700;margin-bottom:24px;line-height:1.4;font-family:var(--font-serif)}.mail-detail-meta{display:flex;align-items:center;gap:16px;padding-bottom:24px;border-bottom:1px solid var(--border-color);margin-bottom:24px}.sender-avatar{width:48px;height:48px;border-radius:50%;background:var(--color-primary-200);display:flex;align-items:center;justify-content:center;color:var(--color-primary-800);font-weight:600;font-size:1.1rem;border:1px solid var(--color-primary-300);font-family:var(--font-serif)}.sender-info{flex:1}.sender-name{font-size:1rem;font-weight:600;color:var(--text-primary);font-family:var(--font-serif)}.sender-email{font-size:.85rem;color:var(--text-secondary)}.mail-detail-date{font-size:.85rem;color:var(--text-muted)}.mail-attachments{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:16px;margin-bottom:24px}.attachments-header{font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:12px}.attachments-list{display:flex;flex-direction:column;gap:8px}.attachment-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px}.attachment-icon-large{font-size:1.5rem}.attachment-info{flex:1;display:flex;flex-direction:column}.attachment-name{font-size:.9rem;font-weight:500;color:var(--text-primary)}.attachment-size{font-size:.75rem;color:var(--text-muted)}.attachment-download,.attachment-preview{padding:6px 12px;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--color-primary-600);font-size:.8rem;cursor:pointer;transition:all .2s;font-weight:500}.attachment-download:hover,.attachment-preview:hover{background:var(--color-primary-50);border-color:var(--color-primary-200)}.mail-body{line-height:1.8;color:var(--text-primary);font-size:1rem;font-family:var(--font-sans)}.mail-body p{margin:0 0 1em;min-height:1.4em}.mail-body .auto-link{color:var(--color-primary-600);text-decoration:underline;word-break:break-all;font-weight:500}.mail-body .auto-link:hover{color:var(--color-primary-500)}.quick-reply{display:flex;gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid var(--border-color)}.quick-reply-input{flex:1;padding:12px 16px;border:1px solid var(--border-color);border-radius:8px;font-size:.95rem;outline:none;transition:border-color .2s;background:var(--bg-tertiary)}.quick-reply-input:focus{border-color:var(--color-primary-400);box-shadow:0 0 0 3px #da77561a}.quick-reply-btn{padding:12px 24px;background:var(--color-primary-500);border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:background .2s}.quick-reply-btn:hover{background:var(--color-primary-600)}.no-email-selected{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted)}.no-email-icon{font-size:4rem;margin-bottom:16px;opacity:.3}.compose-modal{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.compose-window{width:600px;max-height:80vh;background:var(--bg-tertiary);border-radius:16px;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);border:1px solid var(--border-color)}.compose-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);border-top-left-radius:16px;border-top-right-radius:16px}.compose-header h3{font-size:1.1rem;color:var(--text-primary);font-weight:600;font-family:var(--font-serif)}.close-btn{width:32px;height:32px;border-radius:50%;border:none;background:transparent;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#0000000d}.compose-body{flex:1;padding:24px;overflow-y:auto}.compose-field{margin-bottom:16px}.compose-field label{display:block;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.compose-field input,.compose-field textarea{width:100%;padding:10px 14px;border:1px solid var(--border-color);border-radius:8px;font-size:.95rem;outline:none;transition:border-color .2s;font-family:inherit;background:var(--bg-primary);color:var(--text-primary)}.compose-field input:focus,.compose-field textarea:focus{border-color:var(--color-primary-400);background:#fff;box-shadow:0 0 0 3px #da77561a}.compose-field textarea{resize:vertical;min-height:200px}.compose-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-top:1px solid var(--border-color);background:var(--bg-secondary);border-bottom-left-radius:16px;border-bottom-right-radius:16px}.btn-attach{padding:8px 16px;border:1px solid var(--border-color);border-radius:8px;background:#fff;color:var(--text-secondary);cursor:pointer;font-weight:500}.btn-attach:hover{background:var(--bg-tertiary);border-color:var(--color-primary-300)}.compose-actions{display:flex;gap:12px}.btn-draft{padding:10px 20px;border:1px solid var(--border-color);border-radius:8px;background:#fff;color:var(--text-secondary);cursor:pointer;font-weight:500}.btn-draft:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-send{padding:10px 24px;border:none;border-radius:8px;background:var(--color-primary-500);color:#fff;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm)}.btn-send:hover{background:var(--color-primary-600);transform:translateY(-1px)}.btn-send:disabled{background:var(--color-gray-400);cursor:not-allowed}.compose-window.expanded{width:750px;max-height:90vh}.recipient-field{position:relative}.recipient-field label{width:40px;flex-shrink:0}.recipient-input-container{position:relative}.recipient-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 12px;min-height:42px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary)}.recipient-tags:focus-within{border-color:var(--color-primary-400);background:#fff;box-shadow:0 0 0 3px #da77561a}.recipient-tags input{flex:1;min-width:120px;border:none!important;padding:4px!important;outline:none;background:transparent;box-shadow:none!important}.recipient-tag{display:flex;align-items:center;gap:4px;padding:4px 10px;background:var(--color-primary-100);color:var(--color-primary-800);border-radius:4px;font-size:.85rem;font-weight:500;border:1px solid var(--color-primary-200)}.recipient-tag.bcc{background:var(--color-secondary-200);color:var(--color-secondary-800);border-color:var(--color-secondary-300)}.recipient-tag button{background:none;border:none;color:inherit;cursor:pointer;padding:0;font-size:1rem;line-height:1;opacity:.6}.recipient-tag button:hover{opacity:1}.cc-bcc-buttons{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:flex;gap:8px}.cc-bcc-buttons button{padding:4px 8px;font-size:.75rem;font-weight:600;color:var(--text-secondary);background:transparent;border:1px solid var(--border-color);border-radius:4px;cursor:pointer}.cc-bcc-buttons button:hover{background:#fff;color:var(--color-primary-600);border-color:var(--color-primary-300)}.recipient-suggestions{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:#fff;border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);max-height:200px;overflow-y:auto;z-index:10}.suggestion-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--border-color-light)}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover{background:var(--bg-secondary)}.suggestion-name{font-size:.9rem;font-weight:600;color:var(--text-primary)}.suggestion-email{font-size:.75rem;color:var(--text-secondary)}.address-book-modal{width:800px;max-height:80vh}.address-book-content{display:flex;height:400px;overflow:hidden}.address-book-sidebar{width:220px;background:var(--bg-secondary);padding:16px;border-right:1px solid var(--border-color);overflow-y:auto}.address-book-sidebar h4{font-size:.8rem;color:var(--text-secondary);margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.preset-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:1px solid transparent;border-radius:8px;text-align:left;cursor:pointer;margin-bottom:4px;transition:all var(--transition-fast)}.preset-btn:hover{background:var(--bg-tertiary)}.preset-btn.active{background:var(--color-primary-50);border-color:var(--color-primary-200)}.preset-icon{font-size:1.2rem}.preset-info{display:flex;flex-direction:column}.preset-name{font-size:.9rem;font-weight:500;color:var(--text-primary)}.preset-desc{font-size:.7rem;color:var(--text-muted)}.address-book-list{flex:1;padding:16px;display:flex;flex-direction:column}.address-search{width:100%;padding:10px 14px;border:1px solid var(--border-color);border-radius:8px;font-size:.9rem;margin-bottom:12px}.address-search:focus{outline:none;border-color:var(--color-primary-400)}.contact-list{flex:1;overflow-y:auto}.contact-item{display:flex;align-items:center;padding:10px;border-radius:8px;margin-bottom:4px;gap:12px}.contact-item:hover{background:var(--bg-secondary)}.contact-avatar{width:36px;height:36px;background:var(--color-primary-100);color:var(--color-primary-600);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600}.contact-info{flex:1;display:flex;flex-direction:column;gap:2px}.contact-name{font-size:.9rem;font-weight:500;color:var(--text-primary)}.contact-email{font-size:.75rem;color:var(--text-secondary)}.contact-dept{font-size:.7rem;color:var(--text-muted)}.btn-add-contact{padding:6px 12px;background:var(--color-primary-500);color:#fff;border:none;border-radius:6px;font-size:.8rem;cursor:pointer}.btn-add-contact:hover{background:var(--color-primary-600)}.no-contacts{padding:32px;text-align:center;color:var(--text-muted)}.btn-address-book{font-size:1rem;padding:4px 8px;background:none;border:1px solid var(--border-color);border-radius:4px;cursor:pointer}.btn-address-book:hover{background:var(--bg-secondary)}.custom-group-item{display:flex;align-items:center;gap:4px}.custom-group-item .preset-btn{flex:1}.btn-delete-custom{background:none;border:none;font-size:.9rem;cursor:pointer;opacity:.6;padding:4px}.btn-delete-custom:hover{opacity:1}.add-custom-btn{border:1px dashed var(--border-color)}.preset-group-row{display:flex;align-items:center;gap:4px;margin-bottom:4px}.preset-group-row .preset-btn{flex:1}.btn-bulk-add{padding:6px 8px;font-size:.7rem;background:var(--color-primary-500);color:#fff;border:none;border-radius:4px;cursor:pointer;white-space:nowrap}.btn-bulk-add:hover{background:var(--color-primary-600)}.mail-search-box{display:flex;align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:20px;padding:4px 12px;gap:6px}.mail-search-box .search-icon{font-size:.9rem}.mail-search-input{border:none;background:transparent;outline:none;font-size:.85rem;width:150px}.mail-search-input::placeholder{color:#999}.search-clear-btn{background:none;border:none;font-size:1rem;cursor:pointer;color:#999;padding:0 4px}.search-clear-btn:hover{color:#666}.workflow-page{animation:fadeIn var(--transition-normal) ease}.workflow-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-xl)}.workflow-header h1{font-size:1.75rem}.workflow-tabs{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-color);padding-bottom:var(--spacing-md)}.tab-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);background:transparent;border:none;font-size:1rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border-bottom:2px solid transparent;margin-bottom:-1px}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--color-primary-400);border-bottom-color:var(--color-primary-400)}.tab-count{background:var(--bg-tertiary);padding:.125rem .5rem;border-radius:var(--radius-full);font-size:.75rem}.tab-btn.active .tab-count{background:var(--color-primary-500);color:#fff}.workflow-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.workflow-card{animation:slideInUp var(--transition-normal) ease backwards}.workflow-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.workflow-card-header h3{font-size:1.1rem}.status-badge{padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.status-badge.pending{background:#ed893633;color:var(--color-warning)}.status-badge.approved{background:#48bb7833;color:var(--color-success)}.status-badge.rejected{background:#f5656533;color:var(--color-error)}.status-badge.circulating{background:#4299e133;color:var(--color-info)}.workflow-meta{display:flex;gap:var(--spacing-xl);margin-bottom:var(--spacing-md);font-size:.875rem;color:var(--text-secondary)}.meta-label{color:var(--text-muted)}.workflow-progress{margin-bottom:var(--spacing-lg)}.progress-label{font-size:.8rem;color:var(--text-muted);margin-bottom:var(--spacing-xs)}.progress-bar{height:6px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary-500),var(--color-secondary-500));border-radius:var(--radius-full);transition:width var(--transition-normal) ease}.workflow-actions{display:flex;gap:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--border-color-light)}.workflow-detail-modal{min-width:500px;max-width:700px}.detail-meta{background:var(--bg-secondary);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.detail-meta p{margin:var(--spacing-xs) 0;display:flex;align-items:center;gap:var(--spacing-sm)}.detail-content h4{margin-bottom:var(--spacing-sm);color:var(--text-secondary)}.detail-content pre{background:var(--bg-tertiary);padding:var(--spacing-md);border-radius:var(--radius-md);white-space:pre-wrap;font-family:inherit;line-height:1.6}.modal-body .form-group{margin-bottom:var(--spacing-md)}.modal-body .form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:500}.modal-body .form-group input,.modal-body .form-group select,.modal-body .form-group textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:1rem;background:var(--bg-primary)}.modal-body .form-group textarea{resize:vertical}.route-progress-section{margin:var(--spacing-lg) 0;padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md)}.route-progress-section h4{margin-bottom:var(--spacing-md);font-size:.9rem;color:var(--text-secondary)}.route-steps-visual{display:flex;align-items:flex-start;gap:var(--spacing-sm);overflow-x:auto;padding:var(--spacing-sm) 0}.route-step-item{display:flex;flex-direction:column;align-items:center;position:relative;min-width:80px}.route-step-circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;margin-bottom:var(--spacing-xs);transition:all var(--transition-fast)}.route-step-circle.completed{background:var(--color-success);color:#fff}.route-step-circle.current{background:var(--color-primary-500);color:#fff;box-shadow:0 0 0 3px #4299e14d}.route-step-circle.pending{background:var(--bg-secondary);color:var(--text-muted);border:2px dashed var(--border-color)}.route-step-label{font-size:.75rem;text-align:center;color:var(--text-secondary);max-width:80px;word-break:break-word}.route-step-line{position:absolute;top:18px;left:calc(50% + 20px);width:calc(100% - 10px);height:2px;background:var(--border-color)}.route-step-line.completed{background:var(--color-success)}.route-progress-text{margin-top:var(--spacing-sm);font-size:.85rem;color:var(--text-muted)}.route-editor-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s}.route-editor-modal{background:var(--bg-primary);width:900px;height:85vh;border-radius:12px;display:flex;flex-direction:column;box-shadow:0 4px 20px #0003;overflow:hidden}.route-editor-header{padding:16px 24px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.route-editor-header h2{margin:0;font-size:1.25rem}.preset-toolbar{background-color:#f7fafc;border-bottom:1px solid #e2e8f0;padding:8px 20px;display:flex;justify-content:space-between;align-items:center;height:50px}.preset-group{display:flex;align-items:center;gap:8px}.preset-select{padding:6px 12px;border:1px solid #cbd5e0;border-radius:4px;font-size:.9rem;min-width:200px}.preset-save-form{display:flex;align-items:center;gap:6px;animation:fadeIn .2s ease}.preset-save-form input{padding:4px 8px;border:1px solid #cbd5e0;border-radius:4px;font-size:.9rem}.btn-small{padding:4px 8px;font-size:.8rem;cursor:pointer;border-radius:3px;border:1px solid #cbd5e0;background:#fff}.btn-small.primary{background:#3182ce;color:#fff;border-color:#3182ce}.btn-text{background:none;border:none;color:#4a5568;cursor:pointer;font-size:.9rem;text-decoration:underline;padding:0}.btn-text:hover{color:#2b6cb0}.route-editor-content{flex:1;display:flex;overflow:hidden}.flow-pane{flex:2;padding:32px;background:var(--bg-secondary);overflow-y:auto;position:relative;display:flex;flex-direction:column;align-items:center}.flow-start,.flow-end{padding:8px 16px;background:var(--text-secondary);color:#fff;border-radius:20px;font-size:.9rem;font-weight:600;margin-bottom:24px;z-index:2}.flow-end{margin-bottom:0;margin-top:24px}.flow-drop-zone{width:100%;max-width:500px;min-height:200px;display:flex;flex-direction:column;align-items:center}.flow-step-container{width:100%;display:flex;flex-direction:column;align-items:center;position:relative;padding:8px 0}.flow-step{width:100%;padding:16px;background:#fff;border:1px solid var(--border-color);border-radius:8px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 4px #0000000d;cursor:grab;transition:transform .2s,box-shadow .2s;position:relative}.flow-step:active{cursor:grabbing;transform:scale(1.02);box-shadow:0 8px 16px #0000001a;z-index:10}.flow-arrow{font-size:1.5rem;color:var(--text-secondary);margin:8px 0}.step-info{display:flex;align-items:center;gap:12px}.step-number{width:28px;height:28px;background:var(--bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;color:var(--text-secondary)}.step-user-avatar{width:36px;height:36px;background:#e2e8f0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem}.step-details{display:flex;flex-direction:column}.step-name{font-weight:600;color:var(--text-primary)}.step-dept{font-size:.8rem;color:var(--text-secondary)}.step-actions .remove-btn{background:none;border:none;color:#ef4444;cursor:pointer;font-size:1.2rem;padding:4px;border-radius:4px}.step-actions .remove-btn:hover{background:#fee2e2}.users-pane{flex:1;padding:16px;background:var(--bg-primary);border-left:1px solid var(--border-color);overflow-y:auto;display:flex;flex-direction:column}.search-box{margin-bottom:16px;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;width:100%}.draggable-user{padding:10px;margin-bottom:8px;background:#fff;border:1px solid var(--border-color);border-radius:6px;cursor:grab;display:flex;align-items:center;gap:10px;transition:background .2s}.draggable-user:hover{background:var(--bg-secondary);border-color:var(--color-primary-300)}.draggable-user:active{cursor:grabbing}.route-editor-footer{padding:16px 24px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:12px;background:var(--bg-primary)}.empty-state{padding:32px;text-align:center;color:var(--text-secondary);border:2px dashed var(--border-color);border-radius:8px;margin:16px 0}.dept-filter{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px;max-height:120px;overflow-y:auto}.dept-btn{padding:4px 8px;font-size:.7rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all var(--transition-fast)}.dept-btn:hover{background:var(--bg-tertiary)}.dept-btn.active{background:var(--color-primary-500);color:#fff;border-color:var(--color-primary-500)}.no-users{padding:24px;text-align:center;color:var(--text-muted);font-size:.9rem}.users-list{overflow-y:auto;flex:1}.booking-page{animation:fadeIn var(--transition-normal) ease}.booking-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg)}.booking-header h1{font-size:1.75rem}.booking-controls{display:flex;gap:var(--spacing-md)}.date-input{width:auto}.booking-legend{display:flex;gap:var(--spacing-xl);margin-bottom:var(--spacing-lg)}.legend-item{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.875rem;color:var(--text-secondary)}.legend-dot{width:12px;height:12px;border-radius:var(--radius-sm)}.booking-timeline{overflow-x:auto}.timeline-header{display:flex;border-bottom:1px solid var(--border-color);padding-bottom:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.resource-label-header{width:150px;flex-shrink:0;font-weight:600;font-size:.875rem;color:var(--text-muted)}.timeline-hours{display:flex}.timeline-hour{width:80px;flex-shrink:0;font-size:.75rem;color:var(--text-muted);text-align:center}.timeline-row{display:flex;align-items:center;height:50px;border-bottom:1px solid var(--border-color-light)}.timeline-row:last-child{border-bottom:none}.resource-label{width:150px;flex-shrink:0;display:flex;align-items:center;gap:var(--spacing-sm);font-size:.875rem;color:var(--text-primary)}.resource-icon{font-size:1.25rem}.timeline-cells{display:flex;position:relative;height:100%}.timeline-cell{width:80px;flex-shrink:0;border-left:1px dashed var(--border-color-light);height:100%}.booking-block{position:absolute;top:5px;height:calc(100% - 10px);border-radius:var(--radius-md);padding:var(--spacing-xs) var(--spacing-sm);display:flex;flex-direction:column;justify-content:center;color:#fff;font-size:.75rem;overflow:hidden;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.booking-block:hover{transform:scale(1.02);box-shadow:var(--shadow-md)}.booking-time{font-weight:600;white-space:nowrap}.booking-user{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.9}.admin-page{animation:fadeIn var(--transition-normal) ease}.admin-header{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-xl)}.admin-header h1{font-size:1.75rem}.admin-header p{color:var(--text-muted);font-size:.9rem}.admin-tabs{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl);border-bottom:1px solid var(--border-color);padding-bottom:var(--spacing-md)}.admin-tab{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-muted);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.admin-tab:hover{background:var(--bg-glass);color:var(--text-primary)}.admin-tab.active{background:var(--color-primary-500);color:#fff}.admin-search{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg)}.admin-search input{flex:1;background:transparent;border:none;font-size:.9rem;color:var(--text-primary);outline:none;padding:var(--spacing-sm)}.admin-search input::placeholder{color:var(--text-muted)}.add-user-btn{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary-500);color:#fff;border:none;border-radius:var(--radius-md);font-size:.85rem;font-weight:600;cursor:pointer}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-md)}.stat-icon{font-size:2rem}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:1.5rem;font-weight:700;color:var(--color-primary-400)}.stat-label{font-size:.8rem;color:var(--text-muted)}.admin-table-container{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--spacing-lg)}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-color-light)}.admin-table th{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-tertiary)}.admin-table tbody tr{transition:background var(--transition-fast)}.admin-table tbody tr:hover{background:var(--bg-glass)}.admin-table tbody tr.inactive{opacity:.5}.employee-id{font-family:monospace;color:var(--text-muted)}.user-name{font-weight:600}.user-email{color:var(--text-muted);font-size:.85rem}.role-badge{padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.7rem;font-weight:600}.role-badge.admin{background:#9f7aea33;color:#9f7aea}.role-badge.approver{background:#38b2ac33;color:var(--color-primary-400)}.role-badge.user{background:#71809633;color:var(--color-gray-400)}.mail-status{font-size:.8rem}.mail-status.configured{color:var(--color-success)}.mail-status.not-configured{color:var(--text-muted)}.status-badge{padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.7rem;font-weight:600}.status-badge.active{background:#48bb7833;color:var(--color-success)}.status-badge.inactive{background:#71809633;color:var(--color-gray-400)}.actions{display:flex;gap:var(--spacing-xs)}.action-link{background:none;border:none;font-size:1rem;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:background var(--transition-fast)}.action-link:hover{background:var(--bg-glass)}.bulk-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.bulk-btn{padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all var(--transition-fast)}.bulk-btn:hover{background:var(--bg-glass);color:var(--color-primary-400)}.mailserver-section{animation:fadeIn var(--transition-normal) ease}.section-header{margin-bottom:var(--spacing-xl)}.section-header h2{font-size:1.25rem;margin-bottom:var(--spacing-xs)}.section-header p{color:var(--text-muted);font-size:.9rem;margin-bottom:var(--spacing-md)}.add-server-btn{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary-500);color:#fff;border:none;border-radius:var(--radius-md);font-size:.85rem;font-weight:600;cursor:pointer}.server-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.server-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);position:relative}.server-card.default{border-color:var(--color-primary-400);box-shadow:0 0 20px #38b2ac1a}.default-badge{position:absolute;top:var(--spacing-md);right:var(--spacing-md);padding:.25rem .75rem;background:var(--color-primary-500);color:#fff;font-size:.7rem;font-weight:600;border-radius:var(--radius-full)}.server-card h3{font-size:1.1rem;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.server-details{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.server-section h4{font-size:.8rem;color:var(--text-muted);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.05em}.server-info{display:flex;flex-direction:column;gap:var(--spacing-xs)}.info-row{display:flex;justify-content:space-between;font-size:.85rem}.info-row .label{color:var(--text-muted)}.info-row .value{color:var(--text-primary);font-family:monospace}.info-row .value.enabled{color:var(--color-success)}.info-row .value.disabled{color:var(--color-warning)}.server-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap;padding-top:var(--spacing-md);border-top:1px solid var(--border-color-light)}.server-action-btn{padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:.8rem;cursor:pointer;transition:all var(--transition-fast)}.server-action-btn:hover{background:var(--bg-glass)}.server-action-btn.default-action{border-color:var(--color-primary-400);color:var(--color-primary-400)}.server-action-btn.test{border-color:var(--color-info);color:var(--color-info)}.server-action-btn.danger{border-color:var(--color-error);color:var(--color-error)}.bulk-apply-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.bulk-apply-section h3{font-size:1rem;margin-bottom:var(--spacing-xs)}.bulk-apply-section p{color:var(--text-muted);font-size:.85rem;margin-bottom:var(--spacing-md)}.bulk-apply-options{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.bulk-apply-btn{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary-500);color:#fff;border:none;border-radius:var(--radius-md);font-size:.85rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.bulk-apply-btn:hover{background:var(--color-primary-600)}.bulk-apply-btn.secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.bulk-apply-btn.secondary:hover{background:var(--bg-glass)}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:480px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #0000004d}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color-light)}.modal-header h3{font-size:1.1rem}.close-btn{width:32px;height:32px;border-radius:var(--radius-full);border:none;background:transparent;font-size:1.5rem;color:var(--text-muted);cursor:pointer}.modal-body{padding:var(--spacing-lg);overflow-y:auto}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.form-group input,.form-group select{width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9rem;outline:none}.form-group input:focus,.form-group select:focus{border-color:var(--color-primary-400)}.radio-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.radio-option{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer}.radio-option input{width:auto}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--border-color-light)}.test-btn{padding:var(--spacing-sm) var(--spacing-lg);background:transparent;border:1px solid var(--color-info);border-radius:var(--radius-md);color:var(--color-info);font-size:.85rem;cursor:pointer;margin-right:auto}.cancel-btn{padding:var(--spacing-sm) var(--spacing-lg);background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.85rem;cursor:pointer}.save-btn{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary-500);border:none;border-radius:var(--radius-md);color:#fff;font-size:.85rem;font-weight:600;cursor:pointer}.system-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:24px;animation:fadeIn .3s ease}.setting-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:24px;box-shadow:var(--shadow-sm)}.setting-card h3{margin-top:0;font-size:1.1rem;font-weight:700;color:var(--text-primary);border-bottom:1px solid var(--border-color);padding-bottom:12px;margin-bottom:20px}.setting-desc{font-size:.9rem;color:var(--text-secondary);margin-bottom:16px}.current-server.badge{background:#e0f2fe;color:#0369a1;padding:2px 8px;border-radius:4px;font-size:.85rem;font-weight:600;margin-left:8px}.setting-actions{display:flex;gap:12px}.divider{border:none;border-top:1px solid var(--border-color);margin:24px 0}.toggle-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:600;color:var(--text-primary)}.toggle-switch{position:relative;display:inline-block;width:48px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#cbd5e1;transition:.4s;border-radius:24px}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%;box-shadow:0 2px 4px #0000001a}input:checked+.slider{background-color:var(--color-primary-600)}input:checked+.slider:before{transform:translate(24px)}.ip-config{transition:opacity .3s}.ip-config.disabled{opacity:.5;pointer-events:none}.input-textarea{width:100%;padding:12px;border:1px solid var(--border-color);border-radius:8px;font-family:monospace;font-size:.9rem;resize:vertical;margin-top:8px;background:var(--bg-tertiary);color:var(--text-primary)}.ip-status{margin-top:12px;font-size:.9rem;color:var(--text-secondary);background:var(--bg-tertiary);padding:12px;border-radius:8px}.highlight-ip{color:#059669;font-weight:700;font-family:monospace}.user-edit-modal{width:600px;max-width:90vw}.form-row{display:flex;gap:16px}.form-group.half{flex:1}.required{color:#e53e3e;margin-left:4px}.highlight-box{background-color:#ebf8ff;padding:12px;border-radius:6px;border:1px solid #bee3f8}.btn-save{margin-top:16px;width:100%;padding:10px;background:var(--color-primary-600);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background .2s}.btn-save:disabled{background:#94a3b8;cursor:not-allowed}.btn-save:hover:not(:disabled){background:var(--color-primary-700)}.resources-section{animation:fadeIn .3s ease}.resource-layout{display:grid;grid-template-columns:2fr 1fr;gap:24px;align-items:start}.resource-list-card,.resource-form-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:24px}.resource-badge{padding:2px 8px;border-radius:4px;font-size:.8rem;font-weight:600}.resource-badge.room{background:#dbeafe;color:#1e40af}.resource-badge.car{background:#fef3c7;color:#92400e}.resource-badge.equipment{background:#f3e8ff;color:#6b21a8}.action-btn.delete{padding:4px 8px;background:#fee2e2;color:#b91c1c;border:none;border-radius:4px;cursor:pointer;font-size:.8rem}.btn-add-resource{width:100%;padding:10px;background:var(--color-primary-600);color:#fff;border:none;border-radius:8px;font-weight:600;margin-top:16px;cursor:pointer}.btn-add-resource:disabled{background:#cbd5e1;cursor:not-allowed}.directory-page{height:100vh;display:flex;flex-direction:column;background:var(--bg-section);overflow:hidden}.directory-header{background:#fff;padding:24px 32px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.header-title h1{font-size:1.8rem;color:var(--color-primary-800);font-family:var(--font-serif);margin-bottom:4px}.header-title p{color:var(--text-secondary);font-size:.9rem}.directory-search-area{min-width:300px}.search-box{display:flex;align-items:center;background:var(--bg-section);border:1px solid var(--border-color);border-radius:24px;padding:8px 16px;gap:8px}.search-box input{background:transparent;border:none;outline:none;font-size:.95rem;width:100%;color:var(--text-primary)}.directory-content{flex:1;display:flex;overflow:hidden}.directory-sidebar{width:250px;background:#fff;border-right:1px solid var(--border-color);padding:24px;overflow-y:auto}.directory-sidebar h3{font-size:.9rem;text-transform:uppercase;color:var(--text-secondary);margin-bottom:16px;letter-spacing:.05em}.directory-sidebar ul{list-style:none;padding:0}.directory-sidebar li{padding:10px 16px;border-radius:8px;cursor:pointer;color:var(--text-primary);font-size:.95rem;margin-bottom:4px;transition:background .2s}.directory-sidebar li:hover{background:var(--bg-section)}.directory-sidebar li.active{background:var(--color-primary-50);color:var(--color-primary-700);font-weight:600}.directory-grid{flex:1;padding:32px;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;align-content:start}.user-card{background:#fff;border:1px solid var(--border-color);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:16px;transition:transform .2s,box-shadow .2s}.user-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.user-card-header{display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--border-color);padding-bottom:16px}.user-avatar{width:60px;height:60px;border-radius:50%;background:var(--color-primary-100);color:var(--color-primary-700);font-size:1.5rem;font-weight:700;display:flex;align-items:center;justify-content:center;position:relative;font-family:var(--font-serif)}.status-dot{position:absolute;bottom:2px;right:2px;width:14px;height:14px;border-radius:50%;border:2px solid white}.status-dot.online{background:#4ade80}.status-dot.busy{background:#f87171}.status-dot.offline{background:#9ca3af}.user-info-primary h2{font-size:1.1rem;color:var(--text-primary);margin:0 0 4px}.user-info-primary .kana{font-size:.75rem;color:var(--text-secondary)}.user-card-body{display:flex;flex-direction:column;gap:10px;flex:1}.info-row{display:flex;justify-content:space-between;align-items:center;font-size:.9rem}.info-row .label{color:var(--text-secondary)}.info-row .value{color:var(--text-primary);font-weight:500}.dept-badge{background:var(--bg-section);padding:2px 8px;border-radius:12px;font-size:.8rem;border:1px solid var(--border-color)}.value.email{font-size:.8rem;color:var(--text-secondary)}.user-card-actions{display:flex;gap:12px;margin-top:8px}.action-btn{flex:1;padding:8px;border-radius:6px;border:1px solid var(--border-color);background:#fff;cursor:pointer;font-size:.9rem;transition:all .2s;color:var(--text-primary)}.action-btn:hover{background:var(--bg-section);border-color:var(--color-primary-200)}.action-btn.chat{color:#06c755;border-color:#06c755;background:#f0fdf4}.action-btn.chat:hover{background:#dcfce7}.app{display:flex;min-height:100vh;width:100%}
