:root{--card-width:180px;--card-height:180px;--card-border-radius:6px;--card-gap:8px;--card-padding:0;--card-border-upload:2px dashed var(--border-color);--card-border-content:1px solid var(--border-color);--card-border-hover:2px solid var(--accent-start);--card-border-active:2px solid var(--accent-start);--font-title:14px;--font-body:13px;--font-small:12px;--font-mini:12px;--font-icon:24px;--font-icon-large:32px;--spacing-xs:2px;--spacing-sm:4px;--spacing-md:8px;--spacing-lg:12px;--spacing-xl:16px;--border:#475569;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--transition-fast:0.15s ease;--transition-normal:0.3s ease}*{box-sizing:border-box;margin:0;padding:0}.card{width:var(--card-width);height:var(--card-height);border-radius:var(--card-border-radius);overflow:hidden;flex-shrink:0;transition:var(--transition-fast)}.card-upload{border:var(--card-border-upload);background:var(--bg-tertiary);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.card-upload:hover{border:var(--card-border-hover)}.card-content{border:var(--card-border-content);padding:var(--card-padding);display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.card-saved{border:var(--card-border-content);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.card-saved:hover{border:var(--card-border-hover)}.voice-collapsible{background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;overflow:hidden}.voice-coll-header{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;cursor:pointer;transition:background .2s;user-select:none}.voice-coll-header:hover{background:var(--bg-tertiary)}.coll-arrow{color:var(--text-muted);transition:transform .2s}.voice-collapsible.open .coll-arrow{transform:rotate(180deg)}.voice-coll-body{border-top:1px solid var(--border-color);padding:6px}.rewrite-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.word-count-select{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;padding:4px 8px;font-size:13px;outline:0;cursor:pointer;transition:border-color .2s}.word-count-select:focus{border-color:var(--accent-start)}.word-count-input{width:80px;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;padding:4px 8px;font-size:13px;outline:0;transition:border-color .2s}.word-count-input:focus{border-color:var(--accent-start)}.word-count-tip{font-size:12px;color:var(--text-muted);white-space:nowrap}.mode-switch{display:inline-flex;border:1px solid var(--accent-start);border-radius:4px;overflow:hidden}.mode-switch-item{font-size:12px;padding:3px 10px;cursor:pointer;transition:all .2s;font-weight:500}.mode-switch-item.active{background:var(--accent-start);color:#fff;font-weight:700}.mode-switch-item:not(.active){background:0 0;color:var(--text-muted);font-weight:400}.mode-switch-item:hover:not(.active){background:var(--bg-tertiary);color:var(--text-secondary)}.btn-rewrite{display:inline-flex;align-items:center;gap:4px;padding:6px 16px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;border:none;background:linear-gradient(135deg,var(--accent-start),var(--accent-end));color:#fff}.btn-rewrite:hover{filter:brightness(1.15);transform:translateY(-1px)}.btn-rewrite:disabled{opacity:.5;cursor:not-allowed;transform:none;filter:grayscale(.3)}.btn-rewrite.loading{pointer-events:none}.rewrite-progress{margin-top:8px}.rewrite-progress-bar{width:100%;height:6px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.rewrite-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-start),var(--accent-end));border-radius:4px;transition:width .3s ease;position:relative}.rewrite-progress-fill::after{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{100%{left:100%}}.rewrite-progress-text{font-size:13px;color:var(--text-secondary);margin-top:6px;text-align:center;font-variant-numeric:tabular-nums}.violation-result{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.3);border-radius:6px;padding:10px}.violation-result.safe{background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.3)}.violation-header{display:flex;align-items:center;gap:6px;margin-bottom:8px}.violation-icon{font-size:14px}.violation-title{font-size:13px;font-weight:600}.violation-result.safe .violation-title{color:var(--success)}.violation-result.danger .violation-title{color:var(--error)}.violation-words{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.violation-word-tag{font-size:12px;padding:2px 8px;border-radius:4px;background:rgba(239,68,68,.15);color:var(--error)}.violation-result.safe .violation-word-tag{background:rgba(16,185,129,.15);color:var(--success)}.violation-suggestion{font-size:12px;color:var(--text-secondary);margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color)}.risk-result{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;padding:10px}.risk-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.risk-level-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:600}.risk-level-badge.low{background:rgba(16,185,129,.15);color:var(--success)}.risk-level-badge.medium{background:rgba(245,158,11,.15);color:var(--warning)}.risk-level-badge.high{background:rgba(239,68,68,.15);color:var(--error)}.risk-list{margin:8px 0}.risk-item{font-size:12px;color:var(--text-secondary);padding:4px 0;display:flex;align-items:flex-start;gap:6px}.risk-item::before{content:'•';color:var(--warning);flex-shrink:0}.risk-item.danger::before{color:var(--error)}.suggestion-item{font-size:12px;color:var(--text-muted);padding:2px 0 2px 14px}.suggestion-item::before{content:'✓';color:var(--success);margin-right:4px}.risk-action{margin-top:10px;padding-top:8px;border-top:1px solid var(--border-color)}.compliance-box{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;font-size:13px}.compliance-box.passed{background:rgba(16,185,129,.1);border:1px solid var(--success);color:var(--success)}.compliance-box.failed{background:rgba(239,68,68,.1);border:1px solid var(--error);color:var(--error)}.compliance-icon{font-size:16px}.compliance-message{flex:1}.rewrite-result-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.action-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-secondary)}.action-btn:hover{border-color:var(--accent-start);color:var(--accent-start)}.action-btn.copy{border-color:var(--success);color:var(--success)}.action-btn.copy:hover{background:rgba(16,185,129,.1)}.rewrite-history{margin-top:12px;border-top:1px solid var(--border-color);padding-top:12px}.history-title{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.history-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer;transition:background .2s;font-size:12px}.history-item:hover{background:var(--bg-tertiary)}.history-time{color:var(--text-muted);font-size:12px}.history-preview{flex:1;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.word-count-display{font-size:12px;color:var(--text-muted);margin-left:auto}.word-count-display .count{color:var(--text-secondary);font-weight:500}.word-count-display .target{color:var(--accent-start);font-weight:600}.rewrite-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 8px;border-radius:12px;background:var(--bg-tertiary)}.rewrite-status.processing{background:rgba(59,130,246,.15);color:var(--info)}.rewrite-status.success{background:rgba(16,185,129,.15);color:var(--success)}.rewrite-status.error{background:rgba(239,68,68,.15);color:var(--error)}.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.rewrite-status.processing .status-dot{animation:pulse 1s infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}@media (max-width:768px){.voice-collapsible{margin-bottom:6px}.rewrite-controls{flex-direction:column;align-items:stretch}.mode-switch{width:100%}.mode-switch-item{flex:1;text-align:center}}