@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--bg-page: #f5f6f8;--bg-surface: #ffffff;--bg-elevated: #ffffff;--bg-input: #f8f9fb;--bg-sidebar: #fafbfc;--border: #e2e5ea;--border-light: #eef0f3;--border-focus: #4f6ef7;--text-primary: #1a1d23;--text-secondary: #5f6775;--text-muted: #9ca3af;--accent: #4f6ef7;--accent-hover: #3b5ce4;--accent-subtle: rgba(79, 110, 247, .07);--accent-text: #3b5ce4;--success: #16a34a;--success-bg: #f0fdf4;--success-border: #bbf7d0;--error: #dc2626;--error-bg: #fef2f2;--error-border: #fecaca;--warning: #d97706;--warning-bg: #fffbeb;--warning-border: #fde68a;--sidebar-width: 240px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "Menlo", monospace;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .07);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .08);--transition: .15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-page);color:var(--text-primary);line-height:1.6;min-height:100vh}#root{min-height:100vh;display:flex}a{color:var(--accent-text);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--accent-hover)}::selection{background:var(--accent);color:#fff}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-layout{display:flex;min-height:100vh;width:100%}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border-light);display:flex;flex-direction:column;flex-shrink:0;position:fixed;top:0;left:0;bottom:0;z-index:100;overflow-y:auto}.sidebar-brand{padding:20px 18px 16px;border-bottom:1px solid var(--border-light)}.sidebar-brand h1{font-size:.93rem;font-weight:600;letter-spacing:-.01em;color:var(--text-primary);line-height:1.3}.sidebar-brand span{display:block;font-size:.68rem;color:var(--text-muted);font-weight:400;margin-top:2px;text-transform:uppercase;letter-spacing:.06em}.sidebar-nav{padding:10px 0;flex:1}.nav-section{margin-bottom:6px}.nav-section-label{display:flex;align-items:center;gap:6px;padding:6px 18px;font-size:.67rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.nav-section-label svg{width:13px;height:13px;flex-shrink:0;stroke-width:2.2}.nav-link{display:flex;align-items:center;gap:8px;padding:7px 18px 7px 28px;font-size:.84rem;font-weight:400;color:var(--text-secondary);transition:all var(--transition);border-left:2px solid transparent;cursor:pointer}.nav-link:hover{color:var(--text-primary);background:var(--accent-subtle)}.nav-link.active{color:var(--accent-text);background:var(--accent-subtle);border-left-color:var(--accent);font-weight:500}.sidebar-footer{margin-top:auto;padding:10px 0 16px;border-top:1px solid var(--border-light)}.nav-link-logout{width:100%;justify-content:flex-start;color:var(--text-muted);background:none;border:none;font-family:inherit;font-size:inherit}.nav-link-logout:hover{color:var(--error);background:var(--error-bg)}.main-content{margin-left:var(--sidebar-width);flex:1;min-height:100vh;display:flex;flex-direction:column}.page-header{padding:28px 40px 20px;border-bottom:1px solid var(--border-light);background:var(--bg-surface)}.page-header-with-actions{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px}.page-header-with-actions>div:first-child{flex:1;min-width:0}.page-header-with-actions .btn{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;margin-top:4px}.page-header h2{font-size:1.4rem;font-weight:600;letter-spacing:-.02em;color:var(--text-primary)}.page-header p{font-size:.84rem;color:var(--text-secondary);margin-top:3px}.page-body{padding:24px 40px 40px;flex:1}.author-edit-page{display:flex;flex-direction:column;flex:1;min-height:0;padding:0 40px}.prompts-page{display:flex;flex-direction:column;flex:1;min-height:0}.prompts-tabs-wrap{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.prompts-tabs-wrap.has-save-bar{padding-bottom:70px}.prompts-tabs{display:flex;gap:2px;padding:0 40px 0 0;border-bottom:1px solid var(--border);background:var(--bg-surface);flex-shrink:0}.prompts-tab{padding:12px 20px;font-size:.88rem;font-weight:500;color:var(--text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:all var(--transition);margin-bottom:-1px}.prompts-tab:hover{color:var(--text-primary)}.prompts-tab.active{color:var(--accent-text);border-bottom-color:var(--accent)}.prompts-tab.modified{color:var(--warning)}.prompts-tab.modified:after{content:"•";margin-left:4px;font-size:.7em}.prompts-tab-content{flex:1;overflow-y:auto;display:flex;flex-direction:column;min-height:0}.tab-panel{flex:1;display:flex;flex-direction:column;padding:24px 40px 40px;min-height:0}.tab-panel-header{margin-bottom:20px;flex-shrink:0}.tab-panel-header h3{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.tab-panel-header p{font-size:.82rem;color:var(--text-secondary);margin-top:2px}.tab-panel-body{flex:1}.tab-panel-body-full{flex:1;display:flex;flex-direction:column;min-height:0}.prompt-textarea-full{flex:1;min-height:300px;resize:none}.tab-panel-badges{display:inline-flex;align-items:center;margin-left:12px}.prompt-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;margin-bottom:16px;transition:border-color var(--transition),box-shadow var(--transition);box-shadow:var(--shadow-xs)}.prompt-card:hover{border-color:var(--border);box-shadow:var(--shadow-sm)}.prompt-card.modified{border-color:var(--warning-border);background:var(--warning-bg)}.prompt-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.prompt-card-name{font-family:var(--font-mono);font-size:.82rem;font-weight:500;color:var(--accent-text);background:var(--accent-subtle);padding:3px 10px;border-radius:var(--radius-sm)}.prompt-card-badge{font-size:.67rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:var(--radius-sm);color:var(--warning);background:#d9770614}.prompt-textarea{width:100%;min-height:180px;padding:14px 16px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-mono);font-size:.82rem;line-height:1.7;resize:vertical;transition:border-color var(--transition),box-shadow var(--transition);outline:none}.prompt-textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #4f6ef71a;background:#fff}.prompt-textarea.large{min-height:280px}.field-group{margin-bottom:16px}.field-label{display:block;font-size:.76rem;font-weight:500;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.field-input{width:100%;padding:9px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:.88rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.field-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #4f6ef71a;background:#fff}.author-card{display:flex;align-items:center;gap:14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:8px;transition:all var(--transition);cursor:pointer;text-decoration:none;color:inherit;box-shadow:var(--shadow-xs)}.author-card:hover{border-color:var(--accent);box-shadow:var(--shadow-sm);transform:translate(2px);color:inherit}.author-avatar{width:40px;height:40px;border-radius:10px;background:var(--accent-subtle);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.85rem;color:var(--accent-text);flex-shrink:0}.author-info h3{font-size:.9rem;font-weight:500;color:var(--text-primary)}.author-info p{font-size:.76rem;color:var(--text-muted);margin-top:1px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border:none;border-radius:var(--radius-md);font-family:var(--font-sans);font-size:.82rem;font-weight:500;cursor:pointer;transition:all var(--transition);outline:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-sm)}.btn-ghost{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-page);color:var(--text-primary);border-color:var(--text-muted)}.btn-save{background:var(--accent);color:#fff}.btn-save:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-sm)}.save-bar{position:fixed;bottom:0;left:var(--sidebar-width, 0);right:0;padding:14px 40px;background:var(--bg-surface);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 -4px 16px #0000000d;z-index:50}.save-bar-info{font-size:.82rem;color:var(--text-secondary)}.save-bar-actions{display:flex;gap:8px}.toast-container{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:8px}.toast{padding:10px 18px;border-radius:var(--radius-md);font-size:.82rem;font-weight:500;box-shadow:var(--shadow-md);animation:toast-in .25s ease forwards;max-width:360px}.toast.success{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.toast.error{background:var(--error-bg);color:var(--error);border:1px solid var(--error-border)}.toast.leaving{animation:toast-out .18s ease forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;gap:14px}.spinner{width:28px;height:28px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:.84rem;color:var(--text-muted)}.login-page{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-page)}.login-card{width:100%;max-width:360px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow-md)}.login-card h1{font-size:1.35rem;font-weight:600;color:var(--text-primary);text-align:center;margin-bottom:4px}.login-subtitle{font-size:.84rem;color:var(--text-muted);text-align:center;margin-bottom:24px}.login-form .form-group{margin-bottom:16px}.login-form label{display:block;font-size:.76rem;font-weight:500;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.login-form input{width:100%;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:.88rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.login-form input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #4f6ef71a;background:#fff}.login-error{font-size:.82rem;color:var(--error);margin-bottom:12px;padding:8px 12px;background:var(--error-bg);border-radius:var(--radius-sm)}.login-btn{width:100%;padding:11px 18px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-md);font-family:var(--font-sans);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition);margin-top:8px}.login-btn:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-sm)}.login-btn:disabled{opacity:.7;cursor:not-allowed}.error-container{padding:20px 24px;background:var(--error-bg);border:1px solid var(--error-border);border-radius:var(--radius-lg);color:var(--error);font-size:.84rem}.tags-page{display:flex;flex-direction:column;gap:20px}.tags-toolbar{display:flex;gap:8px}.tags-toolbar .btn{display:inline-flex;align-items:center;gap:6px}.tags-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface)}.tags-table{width:100%;border-collapse:collapse}.tags-table th,.tags-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-light)}.tags-table th{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--bg-page)}.tags-table td{font-size:.88rem}.tags-table tbody tr:last-child td{border-bottom:none}.tags-table tbody tr:hover{background:var(--accent-subtle)}.tags-table-actions{white-space:nowrap;width:1%}.tags-table-actions .btn{margin-right:6px;padding:5px 12px;font-size:.78rem}.tags-select{min-width:140px}.tags-row-new{background:var(--success-bg)}.tags-row-new:hover{background:#f0fdf4e6}.tags-btn-delete:hover:not(:disabled){color:var(--error);border-color:var(--error-border);background:var(--error-bg)}.tags-picker{display:flex;flex-direction:column;gap:20px;max-width:680px}.tags-picker-loading{color:var(--text-muted);font-size:.84rem}.tags-picker-label{display:block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:8px}.tags-picker-selected{flex-shrink:0}.tags-drop-zone{min-height:72px;padding:12px 14px;background:var(--bg-input);border:2px dashed var(--border);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:8px;align-items:center;align-content:flex-start;transition:border-color var(--transition),background var(--transition)}.tags-drop-zone:hover,.tags-drop-zone.tags-drop-zone-active{border-color:var(--accent);background:var(--accent-subtle)}.tags-drop-placeholder{font-size:.84rem;color:var(--text-muted)}.tag-chip{display:inline-flex;align-items:center;padding:5px 10px;font-size:.82rem;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);-webkit-user-select:none;user-select:none}.tag-chip-available{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary)}.tag-chip-available:hover{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent-text)}.tag-chip-available:active,.tag-chip-available.tag-dragging{opacity:.7}.tag-chip-selected{background:var(--accent-subtle);border:1px solid var(--accent);color:var(--accent-text)}.tag-chip-selected:hover{background:var(--error-bg);border-color:var(--error-border);color:var(--error)}.tags-picker-available{flex:1;min-height:0}.tags-picker-groups{display:flex;flex-direction:column;gap:14px}.tags-picker-group{display:flex;flex-direction:column;gap:6px}.tags-picker-group-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.tags-picker-tags{display:flex;flex-wrap:wrap;gap:8px}.tags-picker-empty{font-size:.84rem;color:var(--text-muted)}.modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.modal{background:var(--bg-surface);border-radius:var(--radius-lg);padding:24px;max-width:420px;width:100%;box-shadow:var(--shadow-lg)}.modal h3{font-size:1.15rem;font-weight:600;color:var(--text-primary);margin-bottom:20px}.modal .form-group{margin-bottom:20px}.modal .form-group label{display:block;font-size:.76rem;font-weight:500;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.author-name-editable{display:inline-flex;align-items:center;gap:8px}.author-name-input{font-size:1.4rem;font-weight:600;letter-spacing:-.02em;color:var(--text-primary);background:transparent;border:none;border-bottom:2px solid transparent;padding:2px 4px;margin:-2px -4px;font-family:inherit;outline:none;transition:border-color var(--transition)}.author-name-input:hover{border-bottom-color:var(--border)}.author-name-input:focus{border-bottom-color:var(--accent)}.author-name-icon{display:inline-flex;align-items:center;color:var(--text-muted)}.author-name-editable:hover .author-name-icon{color:var(--accent-text)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state h3{font-size:1.05rem;margin-bottom:6px;color:var(--text-secondary)}
