.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.login-box{background:#fff;padding:40px;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}.login-title{text-align:center;color:#333;margin-bottom:30px;font-size:28px}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;color:#666;font-weight:500}.form-group input{padding:12px 16px;border:1px solid #ddd;border-radius:8px;font-size:16px;transition:border-color .3s}.form-group input:focus{outline:none;border-color:#667eea}.error-message{color:#e74c3c;font-size:14px;text-align:center;padding:10px;background:#fee;border-radius:6px}.login-button{padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,opacity .2s}.login-button:hover:not(:disabled){transform:translateY(-2px)}.login-button:disabled{opacity:.7;cursor:not-allowed}.dashboard{min-height:100vh;background:#f5f5f5}.dashboard-header{background:#fff;padding:20px 40px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0000001a}.dashboard-header h1{color:#333;font-size:24px;margin:0}.logout-button{padding:10px 24px;background:#e74c3c;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:background .3s}.logout-button:hover{background:#c0392b}.dashboard-body{display:flex;min-height:calc(100vh - 80px)}.dashboard-sidebar{width:200px;background:#2c3e50;color:#fff;padding:20px 0}.sidebar-menu{list-style:none;padding:0;margin:0}.menu-item{padding:15px 20px;cursor:pointer;transition:background .3s}.menu-item:hover{background:#34495e}.menu-item.active{background:#1abc9c;border-left:4px solid #16a085}.dashboard-content{flex:1;padding:40px;overflow-y:auto;display:block}.module-content{background:#fff;padding:30px;border-radius:12px;box-shadow:0 4px 20px #0000001a}.module-content h2{margin-top:0;margin-bottom:24px;color:#333;font-size:20px}@media (max-width: 768px){.dashboard-body{flex-direction:column}.dashboard-sidebar{width:100%;padding:10px 0}.sidebar-menu{display:flex;overflow-x:auto}.menu-item{white-space:nowrap;border-left:none;border-bottom:4px solid transparent}.menu-item.active{border-left:none;border-bottom:4px solid #16a085}.dashboard-content,.module-content{padding:20px}.search-bar{flex-direction:column}.user-list table{font-size:14px}.user-list th,.user-list td{padding:10px}}.header-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:24px;min-height:48px}.search-container{flex:1;min-width:300px;display:flex;align-items:center}.search-bar{display:flex;gap:12px;align-items:center;width:100%}.stats-container{display:flex;gap:40px;padding:12px 20px;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef;align-items:center;height:48px;box-sizing:border-box}.stat-item{display:flex;align-items:center;gap:8px}.stat-label{font-size:14px;color:#666;font-weight:500}.stat-value{font-size:16px;font-weight:600;color:#1abc9c}.user-management{display:flex;flex-direction:column;gap:24px}.search-bar{display:flex;gap:12px;margin-bottom:24px}.search-bar input{flex:1;padding:12px 16px;border:1px solid #ddd;border-radius:6px;font-size:14px;transition:border-color .3s;height:48px;box-sizing:border-box}.search-bar input:focus{outline:none;border-color:#1abc9c}.search-bar button{padding:12px 24px;background:#1abc9c;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .3s;height:48px;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.search-bar button:hover{background:#16a085}.user-list table{width:100%;border-collapse:collapse;margin-bottom:24px}.user-list th,.user-list td{padding:14px 16px;text-align:left;border-bottom:1px solid #ddd}.user-list th{background:#f8f9fa;font-weight:600;color:#333}.user-list tr:hover{background:#f8f9fa}.action-button{padding:8px 16px;margin-right:8px;border:none;border-radius:4px;cursor:pointer;font-size:12px;transition:background .3s}.action-button{background:#3498db;color:#fff}@media (max-width: 768px){.search-bar{flex-direction:column}.user-list table{font-size:14px}.user-list th,.user-list td{padding:10px}}.header-bar{display:flex;justify-content:flex-start;align-items:center;margin-bottom:24px;gap:12px}.add-button{padding:12px 24px;background:#1abc9c;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .3s;font-size:14px;font-weight:500}.add-button:hover{background:#16a085}.article-management{display:flex;flex-direction:column;gap:24px}.article-list table{width:100%;border-collapse:collapse;margin-bottom:24px}.article-list th,.article-list td{padding:14px 16px;text-align:left;border-bottom:1px solid #ddd}.article-list th{background:#f8f9fa;font-weight:600;color:#333}.article-list tr:hover{background:#f8f9fa}.action-button{padding:8px 16px;margin-right:8px;border:none;border-radius:4px;cursor:pointer;font-size:12px;transition:background .3s;background:#3498db;color:#fff}.action-button:hover{background:#2980b9}.action-button.delete{background:#e74c3c;color:#fff}.action-button.delete:hover{background:#c0392b}.pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:24px}.pagination button{padding:10px 16px;background:#f8f9fa;border:1px solid #ddd;border-radius:4px;cursor:pointer;transition:background .3s}.pagination button:hover{background:#e9ecef}.pagination button:disabled{background:#f8f9fa;color:#999;cursor:not-allowed}.pagination span{padding:0 12px;color:#666;font-size:14px}.loading{display:flex;justify-content:center;align-items:center;height:200px;font-size:16px;color:#666}.loading:after{content:"";width:20px;height:20px;border:2px solid #f3f3f3;border-top:2px solid #1abc9c;border-radius:50%;animation:spin 1s linear infinite;margin-left:10px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;width:95%;max-width:1200px;max-height:95vh;overflow-y:auto;box-shadow:0 10px 40px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e9ecef}.close-button{background:none;border:none;font-size:24px;cursor:pointer;color:#999;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .3s}.close-button:hover{background:#f8f9fa;color:#333}.modal-body{padding:24px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333;font-size:14px}.form-group input,.form-group textarea,.form-group select{width:100%;padding:12px 16px;border:1px solid #ddd;border-radius:6px;font-size:14px;transition:border-color .3s;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#1abc9c}.form-group textarea{resize:vertical;min-height:200px}.content-editor{display:flex;flex-direction:column;border:1px solid #ddd;border-radius:6px;overflow:hidden}.editor-toolbar{display:flex;gap:4px;padding:10px 16px;background:#f8f9fa;border-bottom:1px solid #ddd;flex-wrap:wrap}.toolbar-button{padding:6px 10px;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;transition:all .3s;font-size:14px;display:flex;align-items:center;gap:6px;min-width:36px;justify-content:center}.toolbar-button:hover{background:#e9ecef;border-color:#1abc9c}.toolbar-separator{width:1px;height:24px;background:#ddd;margin:0 8px}.toolbar-select{padding:6px 8px;border:1px solid #ddd;border-radius:4px;font-size:14px;background:#fff;cursor:pointer}.editor-content{min-height:500px;padding:16px;border:none;outline:none;font-family:inherit;font-size:14px;line-height:1.6;resize:vertical;overflow-y:auto}.editor-content:focus{outline:none}.editor-content img{max-width:100%;height:auto;margin:10px 0}.editor-content video{max-width:100%;margin:10px 0}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;border-top:1px solid #e9ecef;background:#f8f9fa;border-bottom-left-radius:12px;border-bottom-right-radius:12px}.cancel-button{padding:12px 24px;background:#f8f9fa;color:#333;border:1px solid #ddd;border-radius:6px;cursor:pointer;transition:background .3s;font-size:14px}.cancel-button:hover{background:#e9ecef}.save-button{padding:12px 24px;background:#1abc9c;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .3s;font-size:14px}.save-button:hover{background:#16a085}.herb-management{padding:20px;background-color:#f9f9f9;min-height:100vh}.header-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:15px;border-bottom:2px solid #e0e0e0}.header-bar h2{margin:0;color:#333;font-size:24px;font-weight:600}.add-button{padding:10px 20px;background-color:#4caf50;color:#fff;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .3s}.add-button:hover{background-color:#45a049}.search-bar{display:flex;gap:10px;margin-bottom:20px;padding:15px;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.search-bar input{flex:1;padding:10px 15px;border:1px solid #ddd;border-radius:4px;font-size:14px;outline:none;transition:border-color .3s}.search-bar input:focus{border-color:#4caf50}.search-button{padding:10px 20px;background-color:#2196f3;color:#fff;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:background-color .3s}.search-button:hover{background-color:#1976d2}.clear-button{padding:10px 20px;background-color:#9e9e9e;color:#fff;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:background-color .3s}.clear-button:hover{background-color:#757575}.herb-list{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px;margin-bottom:20px}.loading{text-align:center;padding:40px;color:#999;font-size:16px}.herb-list table{width:100%;border-collapse:collapse}.herb-list th{background-color:#f5f5f5;padding:12px;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #e0e0e0}.herb-list td{padding:12px;border-bottom:1px solid #e0e0e0;color:#555}.herb-list tr:hover{background-color:#f9f9f9}.action-button{padding:6px 12px;margin-right:8px;border:1px solid #ddd;border-radius:4px;background-color:#fff;color:#333;cursor:pointer;font-size:12px;transition:all .3s}.action-button:hover{background-color:#f5f5f5}.action-button.delete{color:#fff;border-color:#e74c3c}.action-button.delete:hover{background-color:#e74c3c;color:#fff}.pagination{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:20px}.pagination button{padding:8px 16px;border:1px solid #ddd;border-radius:4px;background-color:#fff;color:#333;cursor:pointer;font-size:14px;transition:all .3s}.pagination button:hover:not(:disabled){background-color:#f5f5f5}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination span{font-size:14px;color:#666;min-width:80px;text-align:center}@media (max-width: 768px){.herb-management{padding:10px}.header-bar{flex-direction:column;align-items:flex-start;gap:10px}.search-bar{flex-direction:column}.herb-list{padding:10px}.herb-list table{font-size:14px}.herb-list th,.herb-list td{padding:8px}.action-button{padding:4px 8px;font-size:11px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#fff;border-radius:8px;width:90%;max-width:800px;max-height:90vh;overflow-y:auto;box-shadow:0 2px 10px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e0e0e0}.modal-header h3{margin:0;color:#333;font-size:18px}.close-button{background:none;border:none;font-size:24px;cursor:pointer;color:#999}.close-button:hover{color:#333}.modal-body{padding:20px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#333;font-weight:500}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box}.form-group input.error,.form-group textarea.error,.form-group select.error{border-color:#e74c3c;background-color:#fff5f5}.form-group textarea{resize:vertical;min-height:80px}.required{color:#e74c3c;margin-left:4px}.form-hint{display:block;margin-top:5px;color:#666;font-size:12px;font-style:italic}.form-hint.error{color:#e74c3c;font-style:normal}.editor-content{border:1px solid #ddd;border-radius:4px;padding:10px;min-height:120px;font-size:14px;line-height:1.5;outline:none;white-space:pre-wrap;word-break:break-word}.editor-content:focus{border-color:#4caf50;box-shadow:0 0 0 2px #4caf5033}.editor-content:empty:before{content:attr(placeholder);color:#999;pointer-events:none}.toolbar-button{background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;padding:6px 12px;margin-right:10px;cursor:pointer;font-size:14px;transition:background-color .3s}.toolbar-button:hover{background-color:#e0e0e0}.modal-footer{display:flex;justify-content:flex-end;padding:20px;border-top:1px solid #e0e0e0;gap:10px}.cancel-button{padding:10px 20px;border:1px solid #ddd;border-radius:4px;background-color:#fff;cursor:pointer;font-size:14px;transition:all .3s}.cancel-button:hover{background-color:#f5f5f5}.save-button{padding:10px 20px;border:none;border-radius:4px;background-color:#4caf50;color:#fff;cursor:pointer;font-size:14px;transition:background-color .3s}.save-button:hover{background-color:#45a049}.save-button:disabled{background-color:#ccc;cursor:not-allowed}@media (max-width: 768px){.modal-content{width:95%;margin:10px}}.empty-module{display:flex;justify-content:center;align-items:center;height:300px;background:#f8f9fa;border-radius:8px;color:#666;font-size:18px;border:2px dashed #ddd}.app{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}
