*{box-sizing:border-box}:root{--accent: #238636;--accent-hover: #2ea043;--accent-text: #3fb950;--bg-canvas: #0d1117;--bg-default: #161b22;--bg-subtle: #21262d;--border: #30363d;--text-primary: #c9d1d9;--text-secondary: #8b949e;--text-muted: #484f58;--error: #f85149;--error-bg: rgba(248, 81, 73, .15);--info: #58a6ff;--warning: #d29922}body{margin:0;padding:0;background-color:var(--bg-canvas);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-canvas)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:fadeIn .2s ease-out}.animate-slideIn{animation:slideIn .15s ease-out}.line-clamp-1{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-canvas)}.login-card{background:var(--bg-default);border:1px solid var(--border);border-radius:16px;padding:32px;width:100%;max-width:380px;margin:16px}.login-logo{display:flex;flex-direction:column;align-items:center;gap:16px;margin-bottom:32px}.login-logo-icon{width:56px;height:56px;background:#23863626;border-radius:14px;display:flex;align-items:center;justify-content:center}.login-logo-inner{width:28px;height:28px;background:var(--accent);border-radius:8px}.login-title{font-size:20px;font-weight:600;color:var(--text-primary);letter-spacing:-.3px}.login-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:24px;font-size:14px;margin-top:4px}.login-input{width:100%;background:var(--bg-subtle);border:1px solid var(--border);border-radius:12px;padding:16px;color:var(--text-primary);font-size:14px;margin-bottom:16px;outline:none;transition:all .2s}.login-input:focus{border-color:var(--accent);background:var(--bg-subtle)}.login-input::placeholder{color:var(--text-muted)}.login-code-input{text-align:center;font-size:28px;font-weight:600;letter-spacing:12px;font-family:SF Mono,Monaco,monospace;padding:20px 16px}.login-code-input::placeholder{letter-spacing:12px}.login-button{width:100%;background:var(--accent);color:#fff;border:none;border-radius:12px;padding:16px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.login-button:hover:not(:disabled){background:var(--accent-hover)}.login-button:disabled{opacity:.5;cursor:not-allowed}.login-error{background:var(--error-bg);border:1px solid rgba(248,81,73,.3);color:var(--error);padding:12px 16px;border-radius:10px;margin-bottom:16px;font-size:14px;text-align:center}.login-hint{text-align:center;color:var(--text-muted);font-size:12px;margin-top:24px}.user-badge{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-subtle);border-radius:8px;margin:8px 12px;border:1px solid var(--border)}.user-avatar{width:32px;height:32px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px;color:#fff}.user-info{flex:1;min-width:0}.user-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:11px;color:var(--accent-text)}.logout-btn{padding:4px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:4px;transition:all .2s}.logout-btn:hover{background:var(--border);color:var(--error)}.readonly-banner{background:#2386361a;border-bottom:1px solid rgba(35,134,54,.3);color:var(--accent-text);padding:8px 16px;font-size:13px;text-align:center;display:flex;align-items:center;justify-content:center;gap:8px}.rich-text strong{font-weight:700;color:var(--text-primary)}.rich-text em{font-style:italic}.rich-text mark{background:#2386364d;color:var(--accent-text);padding:0 4px;border-radius:3px}.template-block{background:#2386360d;border:1px solid rgba(35,134,54,.2);border-radius:8px;overflow:hidden}.template-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#2386361a;border-bottom:1px solid rgba(35,134,54,.2)}.template-content{padding:16px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px;line-height:1.6;color:var(--accent-text);white-space:pre-wrap}.callout-block{background:#23863614;border-left:4px solid var(--accent);border-radius:0 8px 8px 0;padding:12px 16px;display:flex;gap:12px}.callout-icon{color:var(--accent-text);flex-shrink:0;margin-top:2px}[contenteditable]:empty:before{content:attr(data-placeholder);color:var(--text-muted);pointer-events:none}[contenteditable]:focus{outline:none}[contenteditable] ::selection{background:#2386364d}@keyframes highlightPulse{0%{background:#2386364d}50%{background:#23863626}to{background:transparent}}.highlight-block{animation:highlightPulse 2s ease-out;border-radius:4px}.search-highlight{background:#2386364d;border-radius:2px;padding:0 2px}@media(min-width:768px)and (max-width:1024px){.login-card{max-width:420px;padding:36px}input,select,textarea,button{font-size:16px}.login-input,.login-button{padding:18px}}@media(pointer:coarse){button,.login-button,input,select,textarea,.login-input{min-height:48px}.logout-btn{min-width:44px;min-height:44px;padding:10px}}table{border-collapse:collapse;width:100%}table td{border:1px solid var(--border);min-width:80px;vertical-align:top}table td [contenteditable]:empty:before{content:attr(data-placeholder);color:var(--text-muted);pointer-events:none}table td [contenteditable]{min-height:32px;padding:8px 12px;outline:none}table td [contenteditable]:focus{outline:none}table tr:first-child td{background:#304f584d;font-weight:500}table td [contenteditable].selected{box-shadow:inset 0 0 0 2px var(--accent)}.markdown-preview{position:absolute;bottom:100%;left:0;background:var(--bg-default);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:11px;color:var(--text-secondary);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s}[contenteditable]:focus .markdown-preview{opacity:1}
