.login-page{min-height:100vh;position:relative;display:grid;place-items:center;padding:24px;overflow:hidden;isolation:isolate;background:var(--bg-primary)}.login-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;background:radial-gradient(72% 60% at 12% 8%,var(--surface-selected),transparent 68%),radial-gradient(70% 62% at 88% 12%,var(--surface-base),transparent 72%),linear-gradient(145deg,var(--bg-primary) 0%,var(--bg-secondary) 100%)}.login-glow{position:absolute;top:50%;left:50%;width:440px;height:440px;border-radius:50%;background:radial-gradient(circle,var(--surface-selected),transparent 70%);transform:translate(-50%,-50%);filter:blur(22px);z-index:-1;pointer-events:none}.login-theme-toggle{position:absolute;top:20px;right:20px;z-index:2}.login-theme-toggle .theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--surface-base);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}.login-theme-toggle .theme-toggle:hover{background:var(--surface-hover);border-color:var(--border-default);color:var(--text-primary)}.login-theme-toggle .theme-toggle:active{transform:translateY(1px)}.login-container{position:relative;z-index:1;width:100%;max-width:460px}.login-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:24px;padding:42px 38px 34px;box-shadow:var(--shadow-lg);animation:fadeInUp .55s cubic-bezier(.2,.9,.2,1)}@media (max-width: 640px){.login-page{padding:16px}.login-theme-toggle{top:14px;right:14px}.login-card{border-radius:20px;padding:30px 22px 24px}}.login-header{text-align:center;margin-bottom:24px}.login-logo{display:flex;justify-content:center;margin-bottom:18px}.brand-logo-login{width:62px;height:62px;display:block;object-fit:contain;background:var(--surface-base);border-radius:16px;padding:8px;border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.login-title{margin:0 0 8px;font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.login-subtitle{margin:0;font-size:var(--text-sm);color:var(--text-tertiary)}.login-form{display:flex;flex-direction:column;gap:18px}.login-error{padding:12px 14px;border-radius:12px;border:1px solid var(--error);background:var(--danger-surface);color:var(--error);font-size:var(--text-sm);text-align:center}.login-page .form-group{display:flex;flex-direction:column;gap:8px}.login-page .form-label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.login-page .input-wrapper{position:relative}.login-page .input-icon{position:absolute;left:16px;top:50%;width:20px;height:20px;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none;transition:color .16s ease}.login-page .input-wrapper:focus-within .input-icon{color:var(--accent-primary)}.login-page .form-input{width:100%;height:52px;padding:0 16px 0 48px;border-radius:14px;border:1px solid var(--input-border);background:var(--input-bg);color:var(--text-primary);font-size:var(--text-md);font-family:var(--font-sans);line-height:1.2;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.login-page .form-input:hover{background:var(--input-hover);border-color:var(--border-default)}.login-page .form-input::placeholder{color:var(--text-tertiary);opacity:1}.login-page .form-input:focus{outline:none;background:var(--input-bg);border-color:var(--accent-primary);box-shadow:var(--ring)}.login-page .form-input:-webkit-autofill,.login-page .form-input:-webkit-autofill:hover,.login-page .form-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text-primary);caret-color:var(--text-primary);-webkit-box-shadow:0 0 0 1000px var(--input-bg) inset;box-shadow:0 0 0 1000px var(--input-bg) inset}.login-button{min-height:50px;margin-top:4px;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:12px;border:1px solid transparent;background:var(--accent-primary);box-shadow:var(--shadow-sm);color:var(--accent-on);font-size:var(--text-md);font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease}.login-button:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.login-button:active:not(:disabled){background:var(--accent-active);transform:translateY(0)}.login-button:disabled{opacity:.66;cursor:not-allowed}.login-page .button-spinner{width:16px;height:16px;border:2px solid var(--surface-active);border-top-color:currentColor;border-radius:50%;animation:spin .75s linear infinite}.login-footer{margin-top:28px;padding-top:20px;border-top:1px solid var(--border-subtle);text-align:center}.login-footer p{margin:0;font-size:var(--text-xs);color:var(--text-tertiary)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.login-card,.button-spinner{animation:none}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:100%;max-width:800px;max-height:90vh;overflow-y:auto;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-xl);animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-content::-webkit-scrollbar{width:8px}.modal-content::-webkit-scrollbar-track{background:var(--surface-base);border-radius:4px}.modal-content::-webkit-scrollbar-thumb{background:var(--accent-primary);border-radius:4px;opacity:.5}.modal-content::-webkit-scrollbar-thumb:hover{opacity:.7}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px 32px;border-bottom:1px solid var(--border-subtle);position:sticky;top:0;background:var(--bg-secondary);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:10}.modal-title{font-size:var(--text-xl);font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.modal-close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.modal-close:hover{background:var(--surface-hover);border-color:var(--border-default);color:var(--text-primary)}.modal-form{padding:32px}.form-error{padding:12px 16px;background:var(--surface-base);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);margin-bottom:24px}.form-grid{display:grid;grid-template-columns:1fr;gap:20px;margin-bottom:20px}@media (min-width: 640px){.form-grid{grid-template-columns:repeat(2,1fr)}}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.form-input,.form-textarea{width:100%;padding:12px 16px;background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-md);transition:all .2s ease;font-family:var(--font-sans)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-tertiary)}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--accent-primary);background:var(--surface-hover);box-shadow:var(--ring)}.form-textarea{resize:vertical;min-height:80px}.image-upload-section{display:flex;flex-direction:column;gap:16px}.upload-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--accent-primary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .2s ease;width:fit-content;font-family:var(--font-sans)}.upload-button:hover{background:var(--surface-hover);border-color:var(--accent-primary)}.image-preview-container{position:relative;width:120px;height:120px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-subtle)}.image-preview-single{width:100%;height:100%;object-fit:cover}.remove-image-button-single{position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--error);border:none;border-radius:var(--radius-sm);color:var(--danger-on);cursor:pointer;transition:all .2s ease}.remove-image-button-single:hover{background:var(--danger-hover);transform:scale(1.1)}.image-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.image-preview-item{position:relative;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-subtle)}.image-preview-item img{width:100%;height:100%;object-fit:cover}.remove-image-button{position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--error);border:none;border-radius:var(--radius-sm);color:var(--danger-on);cursor:pointer;opacity:0;transition:all .2s ease}.image-preview-item:hover .remove-image-button{opacity:1}.remove-image-button:hover{background:var(--danger-hover);transform:scale(1.1)}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:32px;padding-top:24px;border-top:1px solid var(--border-subtle)}.button-primary,.button-secondary{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius-md);font-size:var(--text-md);font-weight:600;cursor:pointer;transition:all .2s ease;font-family:var(--font-sans)}.button-primary{background:var(--accent-primary);border:none;color:var(--accent-on)}.button-primary:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.button-primary:active:not(:disabled){background:var(--accent-active);transform:translateY(0)}.button-primary:disabled{opacity:.6;cursor:not-allowed}.button-secondary{background:var(--surface-base);border:1px solid var(--border-subtle);color:var(--text-primary)}.button-secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-default)}.button-secondary:disabled{opacity:.6;cursor:not-allowed}.button-spinner{width:16px;height:16px;border:2px solid var(--surface-active);border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 640px){.modal-header{padding:20px 24px}.modal-title{font-size:var(--text-lg)}.modal-form{padding:24px}.form-actions{flex-direction:column-reverse}.button-primary,.button-secondary{width:100%}}.dashboard-main{padding:0}.dashboard-container{max-width:var(--container-max);width:100%;margin:0 auto}.dashboard-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;flex-wrap:wrap;gap:20px}.dashboard-topbar>div:first-child{min-width:0}.dashboard-title{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);margin-bottom:8px;letter-spacing:-.02em}.dashboard-subtitle{font-size:var(--text-md);color:var(--text-tertiary)}.add-service-button{display:flex;align-items:center;gap:8px;padding:12px 24px;background:var(--accent-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--accent-on);font-size:var(--text-md);font-weight:600;cursor:pointer;transition:all .2s ease;font-family:var(--font-sans)}.add-service-button:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.add-service-button:active:not(:disabled){background:var(--accent-active);transform:translateY(0)}.add-service-button:disabled{opacity:.6;cursor:not-allowed}.search-container{position:relative;margin-bottom:24px;width:min(100%,640px)}.search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.search-input{width:100%;padding:14px 48px;background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-md);transition:all .2s ease;font-family:var(--font-sans)}.search-input::placeholder{color:var(--text-tertiary)}.search-input:focus{outline:none;border-color:var(--border-default);background:var(--surface-hover);box-shadow:var(--ring)}.search-clear{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;display:flex;align-items:center;transition:color .2s ease}.search-clear:hover{color:var(--text-primary)}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.loading-spinner{width:48px;height:48px;border:4px solid var(--surface-base);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.loading-state p,.error-state p{color:var(--text-secondary);font-size:var(--text-md)}.retry-button{margin-top:16px;padding:10px 24px;background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-weight:500;cursor:pointer;transition:all .2s ease;font-family:var(--font-sans)}.retry-button:hover{background:var(--surface-hover);border-color:var(--border-default)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 20px;text-align:center}.empty-state-icon{margin-bottom:24px;animation:float 3s ease-in-out infinite}.empty-state-icon-ring{color:var(--empty-icon-stroke-soft)}.empty-state-icon-mark{color:var(--empty-icon-stroke-strong)}.empty-state-title{font-size:var(--text-xl);font-weight:700;color:var(--text-primary);margin-bottom:12px;letter-spacing:-.02em}.empty-state-description{font-size:var(--text-md);color:var(--text-tertiary);margin-bottom:32px;max-width:400px}.empty-state-button{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:var(--accent-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--accent-on);font-size:var(--text-md);font-weight:600;cursor:pointer;transition:all .2s ease;font-family:var(--font-sans)}.empty-state-button:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin{to{transform:rotate(360deg)}}.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px;align-items:stretch;min-width:0}.service-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:100%;min-width:0;padding:20px;transition:all .2s ease;display:flex;flex-direction:column;gap:16px}.services-grid>.service-card:only-child{max-width:none;grid-column:1 / -1}.service-card:hover{border-color:var(--border-default);box-shadow:var(--shadow-md);transform:translateY(-2px)}.service-card.deleting{animation:deleteCard .4s ease-out forwards;pointer-events:none}.service-card-header{display:flex;align-items:center;gap:12px;min-width:0}.service-card-icon{width:48px;height:48px;border-radius:var(--radius-md);object-fit:cover;background:var(--surface-base);border:1px solid var(--border-subtle);flex-shrink:0}.service-card-title-group{flex:1;min-width:0}.service-card-title{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);margin:0 0 4px;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.service-card-provider{font-size:var(--text-sm);color:var(--text-tertiary);margin:0}.service-card-body{display:flex;flex-direction:column;gap:12px;min-width:0}.service-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.service-card-meta>*{min-width:0;max-width:100%}.service-card-description{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.service-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid var(--border-subtle);min-width:0}.category-badge{display:inline-block;padding:4px 12px;background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:20px;font-size:var(--text-xs);color:var(--text-secondary);font-weight:500}.rating-badge{display:inline-block;padding:4px 10px;background:var(--surface-base);border:1px solid var(--border-subtle);border-radius:20px;font-size:var(--text-xs);color:var(--text-secondary);font-weight:500}.website-link{color:var(--text-primary);text-decoration:none;font-weight:500;font-size:var(--text-sm);transition:color .2s ease;max-width:100%;overflow-wrap:anywhere}.website-link:hover{color:var(--text-secondary);text-decoration:underline}.action-buttons{display:flex;gap:8px;flex-shrink:0}.action-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);cursor:pointer;transition:all .2s ease;background:var(--surface-base)}.view-button{color:var(--info);border-color:#38bdf857;background:#38bdf81f}.view-button:hover:not(:disabled){background:#38bdf838;border-color:#38bdf885}.edit-button{color:var(--warning);border-color:#faad1459;background:#faad141a}.edit-button:hover:not(:disabled){background:#faad1433;border-color:#faad148c}.delete-button{color:var(--error);border-color:#ff6b6b66;background:#ff6b6b1c}.delete-button:hover:not(:disabled){background:#ff6b6b3d;border-color:#ff6b6b9e}.action-button:disabled{opacity:.5;cursor:not-allowed}.button-spinner-small{width:14px;height:14px;border:2px solid var(--border-subtle);border-top-color:var(--text-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes deleteCard{0%{opacity:1;transform:translate(0) scale(1)}50%{opacity:.5;transform:translate(-20px) scale(.98);background:var(--surface-base)}to{opacity:0;transform:translate(-40px) scale(.95);height:0;padding-top:0;padding-bottom:0;margin-bottom:0}}.table-container{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.services-table{width:100%;border-collapse:collapse}.services-table thead{background:var(--surface-base);border-bottom:1px solid var(--border-subtle)}.services-table th{padding:16px;text-align:left;font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.services-table tbody tr{border-bottom:1px solid var(--border-subtle);transition:background .2s ease}.services-table tbody tr:hover{background:var(--surface-base)}.services-table tbody tr:last-child{border-bottom:none}.services-table td{padding:16px;color:var(--text-primary);font-size:var(--text-md)}.service-name-cell{display:flex;align-items:center;gap:12px}.blog-title-cell{display:flex;flex-direction:column;gap:4px;min-width:0}.blog-title{font-weight:600;color:var(--text-primary)}.blog-excerpt{color:var(--text-tertiary);font-size:var(--text-xs);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:380px}.blog-slug{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;display:inline-block;background:var(--surface-base);border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:var(--radius-sm);padding:4px 8px;font-size:var(--text-xs);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.publish-toggle{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 12px;border:1px solid;font-size:var(--text-xs);font-weight:600;cursor:pointer;background:transparent;transition:all .2s ease}.publish-toggle.published{background:var(--surface-base);border-color:var(--border-default);color:var(--text-primary)}.publish-toggle.draft{background:var(--surface-base);border-color:var(--border-subtle);color:var(--text-tertiary)}.publish-toggle:disabled{opacity:.65;cursor:not-allowed}.service-icon{width:32px;height:32px;border-radius:var(--radius-sm);object-fit:cover;background:var(--surface-base)}.toast-notification{position:fixed;top:24px;right:24px;display:flex;align-items:center;gap:12px;padding:16px 20px;border-radius:var(--radius-md);box-shadow:var(--shadow-xl);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:9999;animation:slideInRight .3s ease-out,slideOutRight .3s ease-out 2.7s;min-width:300px;max-width:500px}.toast-notification.success{background:#52c41a29;border:1px solid rgba(82,196,26,.42);color:var(--text-primary)}.toast-notification.warning{background:#faad1429;border:1px solid rgba(250,173,20,.42);color:var(--text-primary)}.toast-notification.error{background:#ff6b6b29;border:1px solid rgba(255,107,107,.44);color:var(--text-primary)}.toast-content{display:flex;align-items:center;gap:12px;flex:1}.toast-icon{flex-shrink:0}.toast-notification.success .toast-icon{color:var(--success)}.toast-notification.warning .toast-icon{color:var(--warning)}.toast-notification.error .toast-icon{color:var(--error)}.toast-close{background:none;border:none;color:currentColor;cursor:pointer;padding:4px;display:flex;align-items:center;opacity:.6;transition:opacity .2s ease}.toast-close:hover{opacity:1}@keyframes slideInRight{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutRight{0%{transform:translate(0);opacity:1}to{transform:translate(400px);opacity:0}}.confirm-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;display:grid;place-items:center;padding:20px}.confirm-dialog{width:min(100%,460px);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:22px;display:grid;gap:12px}.confirm-dialog-icon{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;color:var(--warning);background:#faad1429;border:1px solid rgba(250,173,20,.36)}.confirm-dialog-title{margin:0;font-size:var(--text-lg);color:var(--text-primary);letter-spacing:-.01em}.confirm-dialog-message{margin:0;color:var(--text-secondary);line-height:1.5}.confirm-dialog-actions{margin-top:8px;display:flex;justify-content:flex-end;gap:10px}.confirm-dialog-button{min-width:120px;height:38px;border-radius:var(--radius-md);border:1px solid;font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all .18s ease}.confirm-dialog-button:disabled{opacity:.65;cursor:not-allowed}.confirm-dialog-cancel{background:var(--surface-base);color:var(--text-primary);border-color:var(--border-subtle)}.confirm-dialog-cancel:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-default)}.confirm-dialog-confirm{background:#ff6b6b2e;color:var(--error);border-color:#ff6b6b75}.confirm-dialog-confirm:hover:not(:disabled){background:#ff6b6b4d;border-color:#ff6b6b9e}@media (max-width: 1024px){.services-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px}.table-container{overflow-x:auto}.services-table{min-width:900px}.toast-notification{right:16px;left:16px;min-width:auto}}@media (max-width: 640px){.dashboard-main{padding:0}.dashboard-title{font-size:var(--text-xl)}.dashboard-topbar{flex-direction:column;align-items:flex-start;gap:16px}.add-service-button{width:100%;justify-content:center}.services-grid{grid-template-columns:1fr;gap:16px}.service-card{padding:16px}.service-card-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.service-card-footer{flex-wrap:wrap;align-items:flex-start}.toast-notification{top:16px;right:16px;left:16px}.empty-state{padding:60px 20px}.empty-state-title{font-size:var(--text-lg)}.empty-state-description{font-size:var(--text-sm)}}[data-theme=light] .view-button{border-color:#0277bd57;background:#0277bd1a}[data-theme=light] .view-button:hover:not(:disabled){background:#0277bd2e;border-color:#0277bd80}[data-theme=light] .edit-button{border-color:#d988065c;background:#d988061c}[data-theme=light] .edit-button:hover:not(:disabled){background:#d9880633;border-color:#d988068a}[data-theme=light] .delete-button{border-color:#d639395c;background:#d639391a}[data-theme=light] .delete-button:hover:not(:disabled){background:#d6393930;border-color:#d639398c}[data-theme=light] .toast-notification.success{background:#2f9e4424;border-color:#2f9e445c}[data-theme=light] .toast-notification.warning{background:#d9880624;border-color:#d988065c}[data-theme=light] .toast-notification.error{background:#d6393924;border-color:#d639395c}[data-theme=light] .confirm-dialog-icon{background:#d9880624;border-color:#d9880652}[data-theme=light] .confirm-dialog-confirm{background:#d6393924;border-color:#d639396b}[data-theme=light] .confirm-dialog-confirm:hover:not(:disabled){background:#d6393942;border-color:#d639398f}@media (min-width: 2560px){.dashboard-container{max-width:min(95vw,2040px)}.dashboard-topbar{margin-bottom:34px}.search-container{width:min(100%,860px);margin-bottom:30px}.services-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,540px),1fr));gap:28px}.services-grid>.service-card:only-child{grid-column:auto;max-width:1360px;justify-self:start}.service-card{padding:28px;min-height:260px}}@media (min-width: 3840px){.dashboard-container{max-width:min(96vw,3100px)}.services-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,620px),1fr));gap:32px}.service-card{padding:32px}}.blog-content-textarea{min-height:180px}.blog-featured-preview{width:min(100%,240px);height:140px}.blog-status-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:42px;background-image:linear-gradient(45deg,transparent 50%,var(--text-tertiary) 50%),linear-gradient(135deg,var(--text-tertiary) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 12px) calc(50% - 3px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;cursor:pointer}.blog-status-select option{background:var(--bg-secondary);color:var(--text-primary)}.admin-shell{min-height:100vh;display:grid;grid-template-columns:292px minmax(0,1fr)}.admin-shell.is-collapsed{grid-template-columns:86px minmax(0,1fr)}.admin-overlay{display:none}.admin-sidebar{position:sticky;top:0;height:100vh;padding:16px 12px;background:var(--bg-secondary);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column}.sidebar-brand{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 10px 14px;border-bottom:1px solid var(--border-subtle);margin-bottom:14px}.brand-left{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.brand-actions{display:flex;align-items:center;gap:6px}.brand-mark{width:44px;height:44px;border-radius:var(--radius-md);background:var(--surface-base);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);display:grid;place-items:center;overflow:hidden;flex-shrink:0}.brand-logo-shell{width:30px;height:30px;object-fit:contain}.brand-meta{display:grid;gap:2px;min-width:0;flex:1}.brand-title{font-size:var(--text-md);font-weight:700;letter-spacing:-.02em;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-caption{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.12em}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--surface-base);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}.icon-button:hover{background:var(--surface-hover);border-color:var(--border-default);color:var(--text-primary)}.icon-button:active{transform:translateY(1px)}.sidebar-close{display:none}.sidebar-nav{display:flex;flex-direction:column;gap:8px;padding:0 8px;flex:1}.nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border-radius:var(--radius-md);background:var(--surface-base);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease}.nav-item:hover{background:var(--surface-hover);border-color:var(--border-default);color:var(--text-primary)}.nav-item.active{background:var(--surface-selected);border-color:var(--border-default);color:var(--text-primary);box-shadow:var(--shadow-sm)}.nav-icon{width:22px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.nav-label{font-size:var(--text-md);font-weight:600;min-width:0}.admin-main{min-width:0;display:flex;flex-direction:column;background:var(--bg-primary)}.admin-topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;height:68px;padding:12px var(--page-px);background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle)}.topbar-left{display:flex;align-items:center;gap:14px;min-width:0;flex:1}.mobile-menu,.desktop-sidebar-toggle{display:none}.topbar-titles{display:grid;gap:2px;min-width:0}.topbar-title{font-size:var(--text-lg);font-weight:700;letter-spacing:-.02em;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-subtitle{font-size:var(--text-sm);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-right{display:flex;align-items:center;gap:10px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--surface-base);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}.theme-toggle:hover{background:var(--surface-hover);border-color:var(--border-default);color:var(--text-primary)}.theme-toggle:active{transform:translateY(1px)}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 14px;border-radius:var(--radius-md);background:var(--surface-base);border:1px solid var(--border-subtle);color:var(--text-primary);font-size:var(--text-md);font-weight:500;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}.btn-ghost:hover{background:var(--surface-hover);border-color:var(--border-default)}.btn-ghost:active{transform:translateY(1px)}.admin-content{padding:var(--page-py) var(--page-px);min-width:0;flex:1}.admin-shell.is-collapsed .brand-meta,.admin-shell.is-collapsed .nav-label,.admin-shell.is-collapsed .brand-caption{display:none}.admin-shell.is-collapsed .sidebar-brand{justify-content:center}.admin-shell.is-collapsed .collapse-button{display:none}.admin-shell.is-collapsed .sidebar-nav{padding-left:6px;padding-right:6px}.admin-shell.is-collapsed .nav-item{justify-content:center;padding:12px 10px}@media (min-width: 1025px){.admin-shell.is-collapsed .desktop-sidebar-toggle{display:inline-flex}}@media (max-width: 1024px){.admin-shell,.admin-shell.is-collapsed{grid-template-columns:1fr}.mobile-menu{display:inline-flex}.collapse-button{display:none}.sidebar-close{display:inline-flex}.admin-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:none;padding:0;margin:0;opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:80}.admin-overlay.open{opacity:1;pointer-events:auto}.admin-sidebar{position:fixed;left:0;top:0;bottom:0;width:min(92vw,340px);transform:translate(-105%);transition:transform .22s ease;z-index:90;border-right:1px solid var(--border-subtle)}.admin-sidebar.open{transform:translate(0)}.admin-content{padding:18px var(--page-px)}.topbar-titles{margin-left:0;padding-left:0}.topbar-title{text-align:left}}@media (max-width: 480px){.admin-topbar{height:62px;padding:10px var(--page-px)}.topbar-title{font-size:var(--text-md)}.topbar-subtitle,.btn-ghost span{display:none}}@media (min-width: 2560px){.admin-sidebar{width:340px;padding:24px 16px}.admin-shell.is-collapsed{grid-template-columns:100px minmax(0,1fr)}.admin-topbar{height:80px;padding:16px var(--page-px)}}:root{--container-max: 1680px;--page-px: clamp(14px, 2vw, 30px);--page-py: clamp(14px, 2vw, 24px);--radius-xs: 6px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", "Helvetica Neue", Arial, sans-serif;--text-xs: clamp(12px, .68vw, 13px);--text-sm: clamp(13px, .82vw, 14px);--text-md: clamp(14px, .94vw, 15px);--text-lg: clamp(17px, 1.16vw, 19px);--text-xl: clamp(21px, 1.5vw, 24px);--text-2xl: clamp(26px, 2vw, 32px);--text-3xl: clamp(32px, 2.5vw, 40px)}:root,[data-theme=dark]{--bg-primary: #1b1c1f;--bg-secondary: #26282d;--bg-tertiary: #2e3138;--bg-elevated: #343842;--card-bg: #272a31;--card-border: #363a43;--surface-base: #2d3038;--surface-hover: #363a43;--surface-active: #404552;--surface-selected: rgba(255, 161, 22, .16);--input-bg: #2b2f37;--input-hover: #333844;--input-border: #434958;--border-subtle: #373b45;--border-default: #4a5060;--border-strong: #61697b;--text-primary: #eceff4;--text-secondary: #c5cbd6;--text-tertiary: #9ba3b3;--text-disabled: #757f91;--accent-primary: #ffa116;--accent-hover: #ffb74a;--accent-active: #eb920d;--accent-on: #1c1f25;--success: #52c41a;--warning: #faad14;--error: #ff6b6b;--danger-on: #ffffff;--info: #38bdf8;--danger-surface: rgba(255, 107, 107, .16);--danger-hover: rgba(255, 107, 107, .28);--overlay-backdrop: rgba(0, 0, 0, .62);--empty-icon-stroke-soft: rgba(255, 161, 22, .28);--empty-icon-stroke-strong: rgba(255, 161, 22, .58);--meta-theme-color: #1b1c1f;--shadow-sm: 0 2px 5px rgba(0, 0, 0, .22);--shadow-md: 0 8px 18px rgba(0, 0, 0, .26);--shadow-lg: 0 14px 28px rgba(0, 0, 0, .3);--shadow-xl: 0 20px 34px rgba(0, 0, 0, .34);--ring-color: rgba(255, 161, 22, .34);--ring: 0 0 0 3px var(--ring-color)}[data-theme=light]{--bg-primary: #f5f7fb;--bg-secondary: #ffffff;--bg-tertiary: #f1f3f7;--bg-elevated: #ffffff;--card-bg: #ffffff;--card-border: #e0e4eb;--surface-base: #f6f8fb;--surface-hover: #eef2f7;--surface-active: #e6ebf2;--surface-selected: rgba(255, 161, 22, .16);--input-bg: #ffffff;--input-hover: #fafbfd;--input-border: #d3d9e4;--border-subtle: #e1e5ec;--border-default: #cfd6e2;--border-strong: #b7bfce;--text-primary: #22262f;--text-secondary: #485161;--text-tertiary: #6b7485;--text-disabled: #98a1b2;--accent-primary: #ff9f1a;--accent-hover: #f19100;--accent-active: #e28100;--accent-on: #ffffff;--success: #2f9e44;--warning: #d98806;--error: #d63939;--danger-on: #ffffff;--info: #0277bd;--danger-surface: rgba(214, 57, 57, .1);--danger-hover: rgba(214, 57, 57, .2);--overlay-backdrop: rgba(15, 23, 42, .42);--empty-icon-stroke-soft: rgba(255, 159, 26, .26);--empty-icon-stroke-strong: rgba(255, 159, 26, .52);--meta-theme-color: #f5f7fb;--shadow-sm: 0 2px 5px rgba(15, 23, 42, .06);--shadow-md: 0 10px 18px rgba(15, 23, 42, .08);--shadow-lg: 0 14px 26px rgba(15, 23, 42, .1);--shadow-xl: 0 20px 34px rgba(15, 23, 42, .12);--ring-color: rgba(255, 159, 26, .32);--ring: 0 0 0 3px var(--ring-color)}@media (min-width: 2560px){:root{--text-xs: clamp(13px, .82vw, 15px);--text-sm: clamp(14px, .94vw, 16px);--text-md: clamp(15px, 1.04vw, 17px);--text-lg: clamp(18px, 1.25vw, 21px);--text-xl: clamp(24px, 1.74vw, 30px);--text-2xl: clamp(30px, 2.24vw, 40px);--text-3xl: clamp(36px, 2.8vw, 52px);--page-px: clamp(24px, 2.5vw, 48px);--page-py: clamp(20px, 2.5vw, 36px)}}@media (min-width: 3840px){:root{--text-xs: clamp(15px, .9vw, 18px);--text-sm: clamp(16px, 1vw, 20px);--text-md: clamp(17px, 1.1vw, 22px);--text-lg: clamp(20px, 1.34vw, 27px);--text-xl: clamp(28px, 1.95vw, 38px);--text-2xl: clamp(36px, 2.6vw, 50px);--text-3xl: clamp(44px, 3.3vw, 64px);--page-px: clamp(32px, 3vw, 64px);--page-py: clamp(24px, 3vw, 48px)}}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-md);line-height:1.45;color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:dark}[data-theme=light] body{color-scheme:light}#root{min-height:100vh}img,svg{display:block;max-width:100%}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}:where(a,button,input,textarea,select,[tabindex]:not([tabindex="-1"])):focus-visible{outline:none;box-shadow:var(--ring);border-radius:calc(var(--radius-sm) - 2px)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
