:root{--coral: #D85A30;--coral-dark: #993C1D;--coral-light: #FAECE7;--coral-mid: #F0997B;--ink: #1C1917;--ink-2: #44403C;--ink-3: #78716C;--ink-4: #A8A29E;--surface: #FAFAF8;--surface-2: #F5F4F0;--surface-3: #EEECEA;--white: #FFFFFF;--border: rgba(28, 25, 23, .1);--border-md: rgba(28, 25, 23, .18);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--shadow-sm: 0 1px 3px rgba(28,25,23,.07), 0 1px 2px rgba(28,25,23,.05);--shadow-md: 0 4px 12px rgba(28,25,23,.08), 0 2px 4px rgba(28,25,23,.04);--font-sans: "DM Sans", system-ui, sans-serif;--font-serif: "DM Serif Display", Georgia, serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);font-size:15px;line-height:1.6;background:var(--surface);color:var(--ink);-webkit-font-smoothing:antialiased}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--white);border-bottom:1px solid var(--border);padding:0 24px;height:58px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.header-logo{display:flex;align-items:center;gap:10px}.logo-mark{width:32px;height:32px;border-radius:8px;background:var(--coral);display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px}.logo-text{font-family:var(--font-serif);font-size:17px;color:var(--ink);letter-spacing:-.01em}.logo-sub{font-size:11px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;font-weight:400}.app-nav{display:flex;gap:4px}.nav-btn{padding:6px 14px;border-radius:var(--radius-md);border:none;background:transparent;color:var(--ink-3);font-family:var(--font-sans);font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .15s}.nav-btn:hover{background:var(--surface-2);color:var(--ink)}.nav-btn.active{background:var(--coral-light);color:var(--coral-dark)}.app-main{flex:1;max-width:860px;width:100%;margin:0 auto;padding:28px 20px}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px}.card+.card,.card+.caption-card{margin-top:10px}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 20px;background:var(--coral);color:#fff;border:none;border-radius:var(--radius-md);font-family:var(--font-sans);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,transform .1s;width:100%}.btn-primary:hover{background:var(--coral-dark)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{background:var(--surface-3);color:var(--ink-4);cursor:not-allowed}.btn-ghost{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;background:transparent;border:1px solid var(--border-md);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:12px;color:var(--ink-3);cursor:pointer;transition:all .15s}.btn-ghost:hover{background:var(--surface-2);color:var(--ink);border-color:var(--border-md)}.btn-ghost.copied{color:#3b6d11;border-color:#c0dd97;background:#eaf3de}.label{display:block;font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}.segmented{display:flex;background:var(--surface-2);border-radius:var(--radius-md);padding:3px;gap:2px}.seg-btn{flex:1;padding:7px 10px;background:transparent;border:none;border-radius:8px;font-family:var(--font-sans);font-size:12px;font-weight:500;color:var(--ink-3);cursor:pointer;transition:all .15s;white-space:nowrap}.seg-btn.active{background:var(--white);color:var(--ink);box-shadow:var(--shadow-sm)}.chip-row{display:flex;flex-wrap:wrap;gap:7px}.chip{padding:6px 13px;border-radius:999px;border:1px solid var(--border-md);background:transparent;font-family:var(--font-sans);font-size:13px;font-weight:500;color:var(--ink-3);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s}.chip:hover{border-color:var(--coral-mid);color:var(--coral-dark)}.chip.active{background:var(--coral-light);border-color:var(--coral);color:var(--coral-dark)}.tab-row{display:flex;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto;scrollbar-width:none}.tab-row::-webkit-scrollbar{display:none}.tab-btn{padding:9px 15px;background:transparent;border:none;border-bottom:2px solid transparent;font-family:var(--font-sans);font-size:13px;font-weight:500;color:var(--ink-3);cursor:pointer;display:flex;align-items:center;gap:6px;white-space:nowrap;transition:all .15s;margin-bottom:-1px}.tab-btn:hover{color:var(--ink)}.tab-btn.active{color:var(--coral);border-bottom-color:var(--coral)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.caption-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;transition:border-color .15s}.caption-card:hover{border-color:var(--border-md)}.caption-card+.caption-card{margin-top:10px}.caption-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:8px}.caption-badges{display:flex;gap:5px;flex-wrap:wrap}.caption-text{font-size:14px;line-height:1.65;color:var(--ink)}.caption-footer{margin-top:8px;font-size:11px;color:var(--ink-4)}.tag-cloud{display:flex;flex-wrap:wrap;gap:6px}.tag-pill{padding:4px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;color:var(--ink-2)}.time-card{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--surface-2);border-radius:var(--radius-md)}.time-card+.time-card{margin-top:8px}.time-icon{width:36px;height:36px;border-radius:8px;background:var(--coral-light);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--coral-dark);font-size:17px}.idea-item{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid var(--border);font-size:13px;line-height:1.55}.idea-item:last-child{border-bottom:none}.idea-num{width:22px;height:22px;border-radius:6px;background:var(--coral-light);color:var(--coral-dark);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.challenge-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px}.challenge-card+.challenge-card{margin-top:10px}.challenge-fix{background:var(--surface-2);border-radius:var(--radius-md);padding:10px 12px;font-size:13px;line-height:1.6;margin-top:8px}.upload-zone{border:2px dashed var(--border-md);border-radius:var(--radius-xl);padding:40px 24px;text-align:center;cursor:pointer;transition:all .2s;background:var(--surface)}.upload-zone:hover,.upload-zone.dragging{border-color:var(--coral);background:var(--coral-light)}.upload-zone input[type=file]{display:none}.upload-preview{position:relative;border-radius:var(--radius-xl);overflow:hidden;aspect-ratio:4/3;background:var(--surface-3)}.upload-preview img{width:100%;height:100%;object-fit:cover;display:block}.preview-clear{position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:50%;background:#1c1917a6;border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:background .15s}.preview-clear:hover{background:#1c1917d9}.ai-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 24px;color:var(--ink-3);font-size:14px}.spinner{width:32px;height:32px;border:2.5px solid var(--surface-3);border-top-color:var(--coral);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.analysis-box{background:var(--coral-light);border:1px solid var(--coral-mid);border-radius:var(--radius-md);padding:12px 14px;font-size:13px;line-height:1.6;color:var(--coral-dark);display:flex;gap:10px;align-items:flex-start;margin-bottom:16px}.error-box{background:#fcebeb;border:1px solid #F09595;border-radius:var(--radius-md);padding:12px 14px;font-size:13px;color:#a32d2d;display:flex;gap:8px;align-items:flex-start}.ai-layout{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start}@media (max-width: 700px){.ai-layout{grid-template-columns:1fr}.app-header{padding:0 16px}.app-main{padding:20px 14px}}.section-label{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-4);margin-bottom:10px}.divider{height:1px;background:var(--border);margin:16px 0}.empty-state{text-align:center;padding:48px 24px;color:var(--ink-4)}.empty-state i{font-size:40px;display:block;margin-bottom:12px;opacity:.4}.empty-state p{font-size:14px}
