@charset "UTF-8";.home-page{max-width:640px;margin:0 auto;padding:60px 24px 100px}.hero-section{text-align:center;margin-bottom:44px;position:relative}.hero-logo{display:inline-block;width:72px;height:72px;margin-bottom:20px}.hero-title{font-family:var(--font-serif);font-size:2.4rem;font-weight:700;letter-spacing:-.02em;color:var(--ink);margin-bottom:10px;font-style:italic}.hero-title span{font-style:italic;font-weight:700}.hero-desc{font-size:.95rem;color:var(--ink-muted);line-height:1.7;max-width:360px;margin:0 auto}.hero-rule{width:40px;height:2px;background:var(--accent);margin:24px auto 0;border-radius:1px;opacity:.6}.api-notice{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--accent-glow);border:1px solid var(--accent);border-radius:var(--radius);margin-bottom:20px;font-size:.8125rem;color:var(--accent);opacity:.85}.api-notice button{padding:5px 14px;background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;transition:opacity .2s}.api-notice button:hover{opacity:.85}.error-banner{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--accent-glow);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;font-size:.8125rem;color:var(--ink);gap:10px}.error-banner .error-content{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.error-banner .error-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-muted)}.error-banner .error-actions{display:flex;gap:6px;flex-shrink:0}.error-banner .btn-retry{padding:5px 14px;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;cursor:pointer;transition:opacity .2s}.error-banner .btn-retry:hover{opacity:.85}.error-banner .btn-fallback{padding:5px 12px;border:1px solid var(--border);background:var(--surface-elevated);color:var(--ink);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s}.error-banner .btn-fallback:hover{border-color:var(--accent);color:var(--accent)}.fallback-tip{background:var(--accent-glow);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;margin-bottom:20px}.fallback-tip .fallback-tip-title{font-weight:600;font-size:.875rem;color:var(--accent);margin-bottom:10px}.fallback-tip .fallback-steps{margin:0;padding-left:18px;font-size:.8125rem;color:var(--ink-muted);line-height:1.9}.fallback-tip .fallback-steps li{margin-bottom:4px}.mode-tabs{display:flex;gap:6px;margin-bottom:14px;background:var(--border-light);padding:4px;border-radius:var(--radius)}.mode-tab{flex:1;padding:9px;border-radius:6px;font-size:.875rem;font-weight:500;color:var(--ink-muted);transition:all .2s;text-align:center}.mode-tab.active{background:var(--surface-elevated);color:var(--ink);box-shadow:var(--shadow-sm)}.mode-tab:hover:not(.active){color:var(--ink)}.input-section{margin-bottom:16px}.url-input,.text-input{width:100%;padding:14px 18px;border:1px solid var(--border);border-radius:var(--radius);font-size:.9375rem;outline:none;background:var(--surface-elevated);color:var(--ink);transition:border-color .2s,box-shadow .2s;line-height:1.6}.url-input::placeholder,.text-input::placeholder{color:var(--ink-muted);opacity:.5}.url-input:focus,.text-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.text-input{resize:vertical;min-height:140px}.btn-generate{width:100%;padding:16px;border-radius:var(--radius);background:var(--accent);color:#fff;font-size:1rem;font-weight:600;letter-spacing:.03em;transition:all .25s;position:relative;overflow:hidden;box-shadow:0 2px 8px #b7612e40}.btn-generate:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 30%,rgba(255,255,255,.12) 100%);opacity:0;transition:opacity .25s}.btn-generate:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #b7612e59}.btn-generate:hover:not(:disabled):after{opacity:1}.btn-generate:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #b7612e33}.btn-generate:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.btn-loading{display:inline-flex;align-items:center;gap:10px}.spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress-steps{margin-top:28px;padding:20px;background:var(--surface-elevated);border:1px solid var(--border-light);border-radius:var(--radius)}.step{display:flex;align-items:center;gap:14px;padding:12px 0;opacity:.35;transition:opacity .4s ease}.step.active{opacity:1}.step.current .step-num{background:var(--accent);color:#fff;animation:pulse 1.5s ease-in-out infinite}.step-num{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8125rem;font-weight:700;background:var(--border);color:var(--ink-muted);flex-shrink:0;transition:all .3s ease}.step.active .step-num{background:var(--accent);color:#fff}.step-info{flex:1}.step-title{font-size:.9375rem;font-weight:600;color:var(--ink);margin-bottom:2px}.step-desc{font-size:.8125rem;color:var(--ink-muted)}@keyframes pulse{0%,to{box-shadow:0 0 #b7612e66}50%{box-shadow:0 0 0 8px #b7612e00}}.bottom-nav{display:flex;gap:8px;margin-top:36px;justify-content:center}.bottom-nav button{padding:9px 20px;border:1px solid var(--ink);border-radius:var(--radius);font-size:.8125rem;color:var(--ink);font-weight:500;transition:all .2s}.bottom-nav button:hover{background:var(--ink);color:#fff}@media (max-width: 480px){.home-page{padding:36px 18px 80px}.hero-logo{width:56px;height:56px}.hero-title{font-size:1.9rem}}.note-page{min-height:100vh;background:var(--bg)}.note-page>.top-bar{padding:10px 14px}.note-page>.top-bar .top-bar-back{font-size:.875rem}.note-page>.top-bar .top-bar-actions button{font-size:.8125rem}.notes-page{min-height:100vh;background:var(--bg)}.notes-body{max-width:640px;margin:0 auto;padding:20px 24px 80px}.search-bar{margin-bottom:20px}.search-input{width:100%;padding:11px 16px;border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;outline:none;background:var(--surface);color:var(--ink);transition:border-color .2s,box-shadow .2s}.search-input::placeholder{color:var(--ink-muted);opacity:.45}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.note-list{display:flex;flex-direction:column;gap:6px}.note-card{display:flex;align-items:center;padding:16px 20px;background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);cursor:pointer;transition:all .2s}.note-card:hover{border-color:var(--border);box-shadow:var(--shadow-md);transform:translate(2px)}.note-card:active{transform:translate(0)}.card-content{flex:1;min-width:0}.card-tag{display:inline-block;padding:2px 10px;background:var(--accent-glow);color:var(--accent);border-radius:3px;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px}.card-title{font-family:var(--font-serif);font-size:1.05rem;font-weight:500;color:var(--ink);margin-bottom:3px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-date{font-size:.75rem;color:var(--ink-muted);opacity:.7}.card-snippet{font-size:.8125rem;color:var(--ink-muted);margin-bottom:4px;opacity:.7;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-share,.card-delete{font-size:1rem;padding:6px;border-radius:6px;border:none;background:transparent;cursor:pointer;opacity:0;transition:opacity .2s;flex-shrink:0}.note-card:hover .card-share,.note-card:hover .card-delete{opacity:1}.card-share:hover{background:var(--accent-glow)}.card-delete:hover{background:var(--danger-subtle)}.notes-body>.empty-state{padding-top:60px}@media (max-width: 480px){.notes-body{padding:16px 18px 80px}}.settings-page{min-height:100vh;background:var(--bg)}.settings-body{max-width:640px;margin:0 auto;padding:24px 24px 80px}.settings-section{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:24px;margin-bottom:14px}.settings-section h2{font-family:var(--font-serif);font-size:1.1rem;font-weight:500;color:var(--ink);margin-bottom:4px}.settings-section .section-desc{font-size:.8125rem;color:var(--ink-muted);margin-bottom:18px;line-height:1.6}.preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}.preset-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:pointer;transition:all .2s}.preset-btn:hover{border-color:var(--accent);background:var(--accent-glow)}.preset-btn.active{border-color:var(--accent);background:var(--accent-glow);box-shadow:0 0 0 2px var(--accent-glow),inset 0 0 0 1px var(--accent)}.preset-btn .preset-name{font-size:.8125rem;font-weight:600;color:var(--ink);line-height:1.3}.preset-btn .preset-provider{font-size:.6875rem;color:var(--ink-muted);line-height:1.2}.preset-btn.active .preset-name{color:var(--accent)}.field-label{display:flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px;margin-top:14px}.field-label-tag{font-size:.625rem;font-weight:500;padding:1px 6px;border-radius:3px;background:var(--accent-glow);color:var(--accent);text-transform:none;letter-spacing:0}.field-label-tag.tag-green{background:#e8f5e9;color:var(--green)}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;font-size:.9375rem;color:var(--ink);cursor:pointer}.toggle-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer}.field-hint{font-size:.75rem;color:var(--ink-muted);margin-top:4px;opacity:.7}.field-input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;outline:none;background:var(--bg);color:var(--ink);transition:border-color .2s,box-shadow .2s}.field-input::placeholder{color:var(--ink-muted);opacity:.45}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);background:var(--surface)}.field-input[readonly]{opacity:.7;cursor:default;background:var(--border-light)}.key-input-row{display:flex;gap:8px}.key-input-row .key-input{flex:1}.key-input-row .btn-toggle-key{flex-shrink:0;padding:0 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-elevated);color:var(--ink-muted);font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s}.key-input-row .btn-toggle-key:hover{border-color:var(--accent);color:var(--accent)}.btn-save{width:100%;margin-top:18px;padding:13px;border-radius:var(--radius);background:var(--accent);color:#fff;font-size:.9375rem;font-weight:600;letter-spacing:.02em;transition:all .2s;box-shadow:0 2px 6px #b7612e33}.btn-save:hover{box-shadow:0 4px 14px #b7612e59;transform:translateY(-1px)}.btn-danger{width:100%;padding:11px;border-radius:var(--radius);border:1px solid var(--danger);background:transparent;color:var(--danger);font-size:.875rem;font-weight:500;transition:all .2s}.btn-danger:hover{background:var(--danger-subtle)}@media (max-width: 480px){.settings-body{padding:18px 16px 80px}.preset-grid{grid-template-columns:repeat(3,1fr);gap:6px}.preset-btn{padding:8px 4px}}.version-notice{position:fixed;top:-100px;left:0;right:0;z-index:9999;transition:top .3s ease}.version-notice.show{top:0}.version-notice-content{display:flex;align-items:center;gap:12px;padding:12px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 20px #667eea66}.version-badge{padding:4px 12px;background:#fff3;border-radius:20px;font-weight:600;font-size:12px;flex-shrink:0}.version-update-text{margin:0;font-size:14px;flex:1}.version-close-btn{padding:6px 16px;border:none;border-radius:6px;background:#ffffffe6;color:#667eea;font-weight:600;cursor:pointer;flex-shrink:0;transition:all .2s}.version-close-btn:hover{background:#fff;transform:scale(1.05)}.about-page{min-height:100vh;background:var(--bg-color)}.about-container{max-width:800px;margin:0 auto;padding:20px}.about-header{display:flex;align-items:center;gap:20px;margin-bottom:40px;padding-top:20px}.back-btn{padding:8px 16px;background:var(--surface-elevated);border:1px solid var(--border-light);border-radius:8px;color:var(--text-color);text-decoration:none;font-size:14px;transition:all .2s}.back-btn:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.about-header h1{margin:0;font-size:24px}.about-content{display:flex;flex-direction:column;gap:32px}.app-logo-section{text-align:center;padding:40px;background:var(--surface-elevated);border-radius:16px;box-shadow:var(--shadow-sm)}.app-logo{width:120px;height:120px;margin-bottom:20px}.app-logo-section h2{margin:0 0 8px;font-size:28px}.version-text{margin:0 0 4px;font-size:16px;color:var(--text-secondary)}.build-time{margin:0;font-size:12px;color:var(--text-tertiary)}.app-description,.update-history,.tech-info{padding:24px;background:var(--surface-elevated);border-radius:12px;box-shadow:var(--shadow-sm)}.app-description h3,.update-history h3,.tech-info h3{margin:0 0 16px;font-size:18px}.app-description p{margin:0;line-height:1.8;color:var(--text-secondary)}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.history-item{display:flex;gap:16px;padding:12px;background:var(--bg-color);border-radius:8px}.history-version{font-weight:600;color:var(--primary-color);min-width:80px;flex-shrink:0}.history-desc{color:var(--text-secondary)}.tech-list{display:flex;flex-wrap:wrap;gap:10px}.tech-tag{padding:8px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:20px;font-size:14px;font-weight:500}.test-page{max-width:600px;margin:0 auto;padding:20px}.test-header{text-align:center;margin-bottom:32px}.test-header h1{margin:0 0 8px;font-size:24px}.test-header p{margin:0;color:var(--text-secondary)}.test-btn{width:100%;padding:16px;font-size:16px;font-weight:600;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;cursor:pointer;margin-bottom:24px;transition:all .2s}.test-btn:active{transform:scale(.98)}.test-results{display:flex;flex-direction:column;gap:12px}.test-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--surface-elevated);border-radius:12px;border-left:4px solid var(--border-light)}.test-item.success{border-left-color:#10b981}.test-item.failed{border-left-color:#ef4444}.test-name{flex:1;font-weight:500}.test-status{font-weight:600;font-size:14px}.test-status.pending{color:var(--text-tertiary)}.test-status.success{color:#10b981}.test-status.failed{color:#ef4444}.test-error{display:block;width:100%;padding-top:8px;color:var(--text-tertiary);font-size:12px;font-style:italic}:root{--bg: #f5f4f0;--surface: #fefdfb;--surface-elevated: #ffffff;--ink: #1c1917;--ink-muted: #78716c;--accent: #b7612e;--accent-glow: #f0ece8;--border: #e7e0d5;--border-light: #f0ebe0;--green: #5b7f5e;--danger: #b5343a;--danger-subtle: #fdf2f0;--shadow-sm: 0 1px 2px rgba(28, 25, 23, .04);--shadow-md: 0 4px 20px rgba(28, 25, 23, .06);--shadow-lg: 0 12px 40px rgba(28, 25, 23, .08);--radius-sm: 4px;--radius: 8px;--radius-lg: 14px;--font-serif: "Playfair Display", "Georgia", "Noto Serif SC", serif;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink);line-height:1.7;min-height:100vh}#root{position:relative;z-index:0}input,textarea,button{font-family:var(--font-sans)}button{cursor:pointer;border:none;background:none}.page-title{font-family:var(--font-serif);font-size:1.6rem;font-weight:500;letter-spacing:-.01em;color:var(--ink)}.top-bar{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:#ffffffe6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light)}.top-bar .top-bar-back{display:flex;align-items:center;gap:4px;font-size:.875rem;color:var(--ink-muted);padding:6px 4px;transition:color .2s}.top-bar .top-bar-back:hover{color:var(--ink)}.top-bar .top-bar-actions{display:flex;gap:6px}.top-bar .top-bar-actions button{padding:7px 14px;border:1px solid var(--ink);border-radius:var(--radius);background:var(--surface);font-size:.8125rem;color:var(--ink);font-weight:500;display:flex;align-items:center;gap:4px;transition:all .2s}.top-bar .top-bar-actions button:hover{background:var(--ink);color:#fff}.top-bar .top-bar-actions button.danger{color:var(--danger);border-color:var(--danger)}.top-bar .top-bar-actions button.danger:hover{background:var(--danger);color:#fff}.empty-state{display:flex;flex-direction:column;align-items:center;padding:100px 40px;text-align:center}.empty-state .empty-logo{width:64px;height:64px;margin-bottom:20px;opacity:.6}.empty-state .empty-text{font-family:var(--font-serif);font-size:1.25rem;font-weight:500;color:var(--ink);margin-bottom:8px}.empty-state .empty-hint{font-size:.875rem;color:var(--ink-muted);margin-bottom:28px;line-height:1.6}.empty-state .btn-primary{padding:10px 28px;border-radius:var(--radius);background:var(--accent);color:#fff;font-size:.875rem;font-weight:600;transition:all .2s;box-shadow:0 2px 6px #b7612e33}.empty-state .btn-primary:hover{box-shadow:0 4px 14px #b7612e59;transform:translateY(-1px)}.modal-overlay{position:fixed;inset:0;background:#1c191759;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface-elevated);border-radius:var(--radius-lg);padding:28px;width:90%;max-width:380px;box-shadow:var(--shadow-lg);border:1px solid var(--border);animation:slideUp .25s ease}.modal .modal-title{font-family:var(--font-serif);font-size:1.15rem;font-weight:500;color:var(--ink);margin-bottom:12px}.modal .modal-message{font-size:.9rem;color:var(--ink-muted);line-height:1.7;margin-bottom:24px}.modal .modal-actions{display:flex;gap:10px;justify-content:flex-end}.modal .modal-actions button{padding:10px 22px;border-radius:var(--radius);font-size:.875rem;font-weight:600;transition:all .2s}.modal .modal-actions .btn-cancel{background:var(--bg);color:var(--ink-muted);border:1px solid var(--border)}.modal .modal-actions .btn-cancel:hover{background:var(--border)}.modal .modal-actions .btn-confirm{background:var(--danger);color:#fff}.modal .modal-actions .btn-confirm:hover{opacity:.85}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 480px){.top-bar{padding:12px 16px}}body.dark{--bg: #1a1a1e;--surface: #252528;--surface-elevated: #2d2d30;--ink: #e8e8e8;--ink-muted: #999;--accent-glow: #2d2018;--border: #3a3a3d;--border-light: #333;--danger-subtle: #2d1818;--shadow-sm: 0 1px 2px rgba(0,0,0,.2);--shadow-md: 0 4px 20px rgba(0,0,0,.3);--shadow-lg: 0 12px 40px rgba(0,0,0,.4)}
