@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Noto+Sans+JP:wght@400;500;700;900&display=swap";.builder-page{min-height:100vh;height:100vh;display:flex;flex-direction:column;overflow:hidden}.builder-page-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);padding:12px 20px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:1000}.builder-back-button{background:transparent;border:1px solid var(--border-primary);color:var(--text-primary);padding:8px 16px;border-radius:8px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}.builder-back-button:hover{background:var(--bg-tertiary);border-color:var(--border-secondary)}.builder-header-separator{color:var(--text-tertiary);font-size:13px}.builder-header-title{color:var(--text-secondary);font-size:13px;font-weight:500}.builder-header-brand{margin-left:auto;color:var(--accent-primary);font-size:11px;font-weight:700;letter-spacing:2px;font-family:Noto Sans JP,sans-serif}.builder-page-content{flex:1}.builder-page-content.full-bleed{display:flex;flex:1;min-height:0;padding:16px;background:var(--bg-primary);overflow:hidden}.embedded-tool-shell{flex:1;display:flex;width:100%;height:100%;align-items:flex-start;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm)}.embedded-tool-frame{flex:1;width:100%;height:100%;border:0}.editor{height:100%;overflow-y:auto;background:var(--bg-primary)}.editor-section-tabs{display:flex;gap:8px;padding:16px 20px;background:var(--bg-secondary);border-bottom:2px solid var(--border-primary);position:sticky;top:0;z-index:100}.section-tab{padding:8px 16px;border:none;border-radius:8px;background:transparent;color:var(--text-tertiary);cursor:pointer;font-size:13px;font-weight:500;transition:all .15s ease}.section-tab:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.section-tab.active{background:var(--accent-primary);color:#fff}.editor-content{padding:24px;max-width:900px;margin:0 auto}.editor-section{margin-bottom:32px}.editor-section h3{margin:0 0 20px;font-size:18px;font-weight:700;color:var(--text-primary);border-bottom:2px solid var(--border-primary);padding-bottom:12px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;border-bottom:2px solid var(--border-primary);padding-bottom:12px}.section-header h3{margin:0;border:none;padding:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-group label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.form-group input,.form-group textarea,.form-group select{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:10px 12px;font-size:14px;color:var(--text-primary);font-family:inherit;transition:all .15s ease}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#ef4444;box-shadow:0 0 0 3px #ef444426}.form-group textarea{min-height:100px;resize:vertical;line-height:1.5}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-tertiary)}button{padding:8px 16px;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s ease;font-family:inherit;display:inline-flex;align-items:center;gap:6px}.btn-add,.add-button{background:#ef4444;color:#fff}.btn-add:hover,.add-button:hover{background:#dc2626}.btn-secondary{background:var(--border-primary);color:var(--text-primary)}.btn-secondary:hover{background:var(--border-secondary)}.btn-danger,.remove-button{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.btn-danger:hover,.remove-button:hover{background:#ef444433}.btn-icon{padding:8px;background:transparent;color:var(--text-secondary)}.btn-icon:hover{background:var(--border-primary);color:var(--text-primary)}.work-role-editor{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:12px;padding:20px;margin-bottom:16px;transition:all .2s}.work-role-editor:hover{border-color:var(--border-secondary)}.role-header-editor{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.expand-toggle{flex-shrink:0;width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--border-primary);color:var(--text-primary);border-radius:6px;font-size:12px;margin-top:4px}.expand-toggle:hover{background:var(--border-secondary)}.role-fields{flex:1;display:flex;flex-direction:column;gap:12px}.role-position-input,.role-company-input{font-size:15px;font-weight:600;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:10px 12px;color:var(--text-primary)}.role-location-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.role-city-input,.role-state-input{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:10px 12px;color:var(--text-primary);font-size:14px}.role-dates{display:flex;align-items:center;gap:12px}.date-group{display:flex;align-items:center;gap:8px}.month-select,.year-select{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;padding:8px 10px;color:var(--text-primary);font-size:13px;cursor:pointer}.month-select{min-width:80px}.year-select{min-width:90px}.present-checkbox-label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);cursor:pointer;margin:0;padding:6px 10px;border-radius:6px;background:var(--bg-secondary);border:1px solid var(--border-primary);white-space:nowrap}.present-checkbox{width:16px;height:16px;cursor:pointer;margin:0}.role-controls{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-primary)}.role-enabled-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);margin-right:auto}.role-enabled-toggle input[type=checkbox]{width:18px;height:18px;cursor:pointer}.bullet-list{margin-top:16px}.bullet-item{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:12px;margin-bottom:12px;display:flex;flex-direction:column;gap:10px;transition:all .15s}.bullet-item.dragging{opacity:.5}.bullet-item.drag-over{border-color:#ef4444;box-shadow:0 0 0 2px #ef444433}.bullet-header{display:flex;align-items:center;gap:8px}.bullet-drag-handle{cursor:grab;color:var(--text-tertiary);flex-shrink:0;padding:4px}.bullet-drag-handle:hover{color:var(--text-secondary)}.bullet-drag-handle:active{cursor:grabbing}.bullet-checkbox{width:18px;height:18px;cursor:pointer;flex-shrink:0}.bullet-textarea{flex:1;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;padding:10px 12px;font-size:14px;color:var(--text-primary);resize:vertical;min-height:80px;font-family:inherit;line-height:1.5}.bullet-textarea:focus{outline:none;border-color:#ef4444;box-shadow:0 0 0 3px #ef444426}.bullet-controls{display:flex;gap:8px;align-items:center}.bullet-delete{padding:6px 10px;font-size:12px;background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.bullet-delete:hover{background:#ef444433}.bullet-tags,.role-tags,.skill-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tag,.skill-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:11px;color:#ef4444;font-weight:500}.tag button,.skill-tag button{background:none;border:none;color:#ef4444;cursor:pointer;padding:0;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;width:14px;height:14px}.tag button:hover,.skill-tag button:hover{color:#dc2626}.tag-input-wrapper{display:inline-flex;align-items:center;gap:4px}.tag-input{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;padding:4px 8px;font-size:11px;color:var(--text-primary);min-width:100px}.tag-input:focus{outline:none;border-color:#ef4444}.tag-add-btn{padding:4px 8px;font-size:11px;background:var(--border-primary);color:var(--text-primary)}.tag-add-btn:hover{background:var(--border-secondary)}.education-item-editor{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:12px;padding:20px;margin-bottom:16px}.education-fields{display:flex;flex-direction:column;gap:12px}.education-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.education-honors-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.honor-item{display:flex;gap:8px;align-items:center}.honor-item input{flex:1;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;padding:8px 10px;font-size:13px;color:var(--text-primary)}.honor-item button{padding:6px;font-size:12px}.skill-item-editor{background:var(--bg-elevated);border:1px solid var(--border-primary);border-radius:8px;padding:16px;margin-bottom:12px;display:flex;align-items:center;gap:12px;transition:all .15s}.skill-item-editor:hover{border-color:var(--border-secondary)}.skill-item-editor.dragging{opacity:.5}.skill-item-editor.drag-over{border-color:#ef4444;box-shadow:0 0 0 2px #ef444433}.skill-drag-handle{cursor:grab;color:var(--text-tertiary);padding:4px}.skill-drag-handle:hover{color:var(--text-secondary)}.skill-drag-handle:active{cursor:grabbing}.skill-checkbox{width:18px;height:18px;cursor:pointer;flex-shrink:0}.skill-fields{flex:1;display:grid;grid-template-columns:2fr 1fr;gap:12px;align-items:center}.skill-fields input{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;padding:8px 12px;font-size:14px;color:var(--text-primary)}.skill-fields input:focus{outline:none;border-color:#ef4444;box-shadow:0 0 0 3px #ef444426}.skill-item-controls{display:flex;gap:6px}.skill-input-row{display:flex;gap:12px;margin-top:16px}.skill-input-row input{flex:1}.lint-indicator{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:500}.lint-indicator.warning{background:#f59e0b1a;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.lint-indicator.suggestion{background:#3b82f61a;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.editor::-webkit-scrollbar{width:8px}.editor::-webkit-scrollbar-track{background:var(--bg-primary)}.editor::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:4px}.editor::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}@media (max-width: 768px){.form-row,.education-row{grid-template-columns:1fr}.role-dates{flex-wrap:wrap}.skill-fields{grid-template-columns:1fr}}.variant-manager{height:100%;overflow-y:auto;background:var(--bg-primary)}.variant-content{padding:24px;max-width:1200px;margin:0 auto}.variant-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.variant-header h3{margin:0;font-size:24px;font-weight:700;color:var(--text-primary)}.variant-description{color:var(--text-secondary);font-size:14px;line-height:1.6;margin-bottom:24px;padding:16px;background:var(--bg-secondary);border-left:3px solid #ef4444;border-radius:8px}.variant-list{display:flex;flex-direction:column;gap:16px}.variant-card{background:var(--bg-elevated);border:2px solid var(--border-primary);border-radius:12px;padding:20px;transition:all .2s;cursor:pointer}.variant-card:hover{border-color:var(--border-secondary)}.variant-card.active{border-color:#ef4444;background:#ef44440d;cursor:default}.variant-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.variant-radio-label{display:flex;align-items:center;gap:12px;flex:1;cursor:pointer}.variant-radio{width:20px;height:20px;cursor:pointer;accent-color:#ef4444;flex-shrink:0}.variant-name{font-size:16px;font-weight:600;color:var(--text-primary)}.variant-name-input{font-size:16px;font-weight:600;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;padding:6px 12px;color:var(--text-primary);flex:1;max-width:400px}.variant-name-input:focus{outline:none;border-color:#ef4444;box-shadow:0 0 0 3px #ef444426}.variant-badge{display:inline-flex;align-items:center;padding:4px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:11px;font-weight:600;color:#ef4444;text-transform:uppercase;letter-spacing:.5px}.btn-delete-variant{padding:6px;background:transparent;color:var(--text-tertiary);border:none;border-radius:6px;cursor:pointer;font-size:20px;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:all .15s}.btn-delete-variant:hover{background:#ef44441a;color:#ef4444}.variant-card-description{color:var(--text-tertiary);font-size:13px;margin:0;line-height:1.5}.variant-tag-summary{display:flex;gap:12px;margin-top:8px}.tag-count{display:inline-flex;align-items:center;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600}.tag-count.include{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e}.tag-count.exclude{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444}.variant-details{margin-top:24px;padding-top:24px;border-top:2px solid var(--border-primary);display:flex;flex-direction:column;gap:24px}.variant-section{display:flex;flex-direction:column;gap:12px}.variant-section-header{display:flex;flex-direction:column;gap:4px}.variant-section-header label{font-size:13px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.section-hint{font-size:12px;color:var(--text-tertiary);font-weight:400;text-transform:none;letter-spacing:normal}.tag-grid{display:flex;flex-wrap:wrap;gap:8px;padding:16px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;min-height:60px}.tag-button{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--border-primary);border:1px solid var(--border-secondary);border-radius:16px;font-size:12px;font-weight:500;color:#e4e4e7;cursor:pointer;transition:all .15s;white-space:nowrap}.tag-button:hover{background:var(--border-secondary);border-color:#52525b;transform:translateY(-1px)}.tag-button.included{background:#22c55e;border-color:#16a34a;color:#000;font-weight:600}.tag-button.included:hover{background:#16a34a}.tag-button.exclude.excluded{background:#ef4444;border-color:#dc2626;color:#fff;font-weight:600}.tag-button.exclude.excluded:hover{background:#dc2626}.tag-button.excluded-dim{opacity:.4;pointer-events:none}.tag-button.disabled{opacity:.3;cursor:not-allowed}.tag-button:disabled{opacity:.3;cursor:not-allowed}.no-tags-message{color:var(--text-tertiary);font-size:13px;font-style:italic;margin:8px 0;text-align:center;padding:12px}.variant-input,.variant-textarea{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:10px 12px;font-size:14px;color:var(--text-primary);font-family:inherit;transition:all .15s;width:100%}.variant-input:focus,.variant-textarea:focus{outline:none;border-color:#ef4444;box-shadow:0 0 0 3px #ef444426}.variant-textarea{resize:vertical;line-height:1.5}.variant-input::placeholder,.variant-textarea::placeholder{color:#52525b}.override-list{display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px}.override-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;cursor:pointer;transition:all .15s}.override-item:hover{border-color:var(--border-secondary);background:var(--bg-secondary)}.override-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#ef4444;flex-shrink:0}.override-text{font-size:14px;color:#e4e4e7;line-height:1.4}.override-text strong{color:var(--text-primary);font-weight:600}.variant-manager::-webkit-scrollbar{width:8px}.variant-manager::-webkit-scrollbar-track{background:var(--bg-primary)}.variant-manager::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:4px}.variant-manager::-webkit-scrollbar-thumb:hover{background:#52525b}@media (max-width: 768px){.variant-content,.variant-card{padding:16px}.variant-header h3{font-size:20px}.tag-grid{padding:12px}.variant-name-input{max-width:100%}}.linter-view{height:100%;overflow-y:auto;background:var(--bg-primary)}.linter-content{padding:24px;max-width:1200px;margin:0 auto}.linter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:20px;border-bottom:2px solid var(--border-primary)}.linter-header h3{margin:0;font-size:24px;font-weight:700;color:var(--text-primary)}.linter-summary{display:flex;gap:12px}.summary-badge{display:flex;flex-direction:column;align-items:center;padding:12px 20px;border-radius:8px;min-width:100px}.summary-badge.warnings{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3)}.summary-badge.suggestions{background:#3b82f61a;border:1px solid rgba(59,130,246,.3)}.summary-count{font-size:28px;font-weight:700;line-height:1;margin-bottom:4px}.summary-badge.warnings .summary-count{color:#f59e0b}.summary-badge.suggestions .summary-count{color:#3b82f6}.summary-label{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.no-issues{text-align:center;padding:80px 40px;background:var(--bg-elevated);border:2px solid var(--border-primary);border-radius:12px}.no-issues-icon{font-size:64px;margin-bottom:16px;color:#22c55e}.no-issues-text{font-size:20px;font-weight:600;color:#22c55e;margin:0 0 8px}.no-issues-description{font-size:14px;color:var(--text-tertiary);margin:0}.issues-container{display:flex;flex-direction:column;gap:24px}.issues-section{display:flex;flex-direction:column;gap:12px}.section-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:16px;font-weight:600;color:var(--text-primary);padding-bottom:12px;border-bottom:1px solid var(--border-primary)}.title-icon{font-size:18px}.warning-title{color:#f59e0b}.suggestion-title{color:#3b82f6}.issues-list{display:flex;flex-direction:column;gap:8px}.issue-card{background:var(--bg-elevated);border:1px solid var(--border-primary);border-left:4px solid;border-radius:8px;padding:16px;cursor:pointer;transition:all .15s}.issue-card:hover{border-color:var(--border-secondary);background:var(--bg-secondary);transform:translate(4px)}.issue-card.warning{border-left-color:#f59e0b}.issue-card.warning:hover{border-left-color:#f59e0b;box-shadow:0 0 0 1px #f59e0b33}.issue-card.suggestion{border-left-color:#3b82f6}.issue-card.suggestion:hover{border-left-color:#3b82f6;box-shadow:0 0 0 1px #3b82f633}.issue-message{font-size:14px;color:var(--text-primary);line-height:1.5;margin-bottom:8px;font-weight:500}.issue-location{font-size:12px;color:var(--text-tertiary);line-height:1.4;font-family:JetBrains Mono,Courier New,monospace}.linter-view::-webkit-scrollbar{width:8px}.linter-view::-webkit-scrollbar-track{background:var(--bg-primary)}.linter-view::-webkit-scrollbar-thumb{background:var(--border-secondary);border-radius:4px}.linter-view::-webkit-scrollbar-thumb:hover{background:#52525b}@media (max-width: 768px){.linter-content{padding:16px}.linter-header{flex-direction:column;align-items:flex-start;gap:16px}.linter-summary{width:100%}.summary-badge{flex:1;min-width:auto}.no-issues{padding:60px 24px}}.editor-tabs-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.editor-tabs-header{display:flex;border-bottom:1px solid var(--border-primary);background:var(--bg-secondary);padding:0 20px;position:sticky;top:0;z-index:100}.editor-tab{padding:14px 20px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:500;border-bottom:3px solid transparent;transition:all .2s;position:relative;top:2px;display:inline-flex;align-items:center;gap:8px}.editor-tab:hover{color:var(--text-primary);background:var(--bg-tertiary)}.editor-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary);background:var(--accent-primary-light)}.editor-tab.active:hover{color:var(--accent-primary)}.tab-badge{display:inline-flex;align-items:center;gap:4px}.badge-warning,.badge-suggestion{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;font-size:11px;font-weight:600;line-height:1}.badge-warning{background:#f59e0b26;color:#fbbf24;border:1px solid rgba(245,158,11,.35)}.badge-suggestion{background:#3b82f626;color:#60a5fa;border:1px solid rgba(59,130,246,.35)}.editor-tabs-content{flex:1;overflow-y:auto;background:var(--bg-primary)}.editor-tabs-content::-webkit-scrollbar{width:8px}.editor-tabs-content::-webkit-scrollbar-track{background:var(--scrollbar-track)}.editor-tabs-content::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}.editor-tabs-content::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);color:var(--text-primary)}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--bg-primary)}.app-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:var(--bg-secondary);border-bottom:2px solid var(--border-primary);box-shadow:var(--shadow-md)}.header-left{display:flex;align-items:center;gap:16px}.header-left h1{margin:0;font-size:20px;color:var(--text-primary);font-weight:700}.saved-status{font-size:12px;color:var(--text-tertiary)}.header-right,.header-controls{display:flex;align-items:center;gap:12px}.toggle-label{display:flex;align-items:center;gap:6px;font-size:13px;color:#a1a1aa;cursor:pointer}.font-select{padding:6px 10px;border:1px solid var(--border-secondary);border-radius:6px;font-size:13px;background:var(--bg-elevated);color:var(--text-primary);cursor:pointer}.header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pdf-export-group{display:flex;gap:8px;align-items:center}.app-content{display:flex;flex:1;overflow:hidden}.editor-pane{flex:1;min-width:0;overflow:hidden;background:var(--bg-primary);border-right:2px solid var(--border-primary)}.preview-pane{flex:1;min-width:0;overflow:hidden;background:var(--bg-secondary);display:flex;flex-direction:column}.preview-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.preview-header h3{margin:0;font-size:16px;color:var(--text-primary)}.preview-header-right{display:flex;align-items:center;gap:12px}.preview-mode-toggle{display:flex;gap:4px;background:var(--bg-tertiary);border-radius:6px;padding:2px}.preview-mode-btn{padding:6px 12px;border:none;border-radius:4px;font-size:12px;cursor:pointer;background:transparent;color:var(--text-secondary);transition:all .2s}.preview-mode-btn:hover{background:var(--border-secondary);color:var(--text-primary)}.preview-mode-btn.active{background:var(--accent-primary);color:#fff;font-weight:500}.lint-badge{font-size:11px;padding:4px 8px;background:#ef44441a;color:#fca5a5;border-radius:12px;border:1px solid rgba(239,68,68,.3)}.preview-content{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;justify-content:center;align-items:flex-start;background:var(--bg-secondary)}.pdf-preview-frame{width:100%;height:100%;border:none;background:#1f1f1f}.pdf-preview-empty{padding:24px;color:var(--text-tertiary);font-size:14px}button{padding:8px 16px;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;font-family:inherit}button.btn-primary{background:#ef4444;color:#fff}button.btn-primary:hover{background:#dc2626}button.btn-secondary{background:#27272a;color:#fafafa;border:1px solid #3f3f46}button.btn-secondary:hover{background:#3f3f46}button.btn-danger{background:#dc2626;color:#fff}button.btn-danger:hover{background:#b91c1c}button:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{font-family:inherit;font-size:14px;padding:8px 12px;border:1px solid var(--border-primary);border-radius:6px;background:var(--bg-elevated);color:var(--text-primary);transition:all .2s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-light)}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}label{font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:4px;display:block}.form-group{margin-bottom:16px}.checkbox-group{display:flex;align-items:center;gap:8px}.checkbox-group input[type=checkbox]{width:18px;height:18px;cursor:pointer}.divider{height:1px;background:#27272a;margin:20px 0}.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.alert-warning{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);color:#fbbf24}.alert-info{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:#60a5fa}.alert-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e}.loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:18px;color:#a1a1aa}@media (max-width: 1200px){.app-content{flex-direction:column}.editor-pane{border-right:none;border-bottom:2px solid #27272a;max-height:50vh}.preview-pane{max-height:50vh}.header-right{flex-direction:column;align-items:flex-end;gap:8px}.header-actions{flex-wrap:wrap}}.print-analyzer{padding:32px 40px 60px;color:var(--text-primary)}.pa-container{max-width:1200px;margin:0 auto;background:var(--bg-elevated);border-radius:16px;border:1px solid var(--border-primary);box-shadow:var(--shadow-md);padding:32px}.pa-header{text-align:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-primary)}.pa-header h1{font-size:28px;margin-bottom:6px;color:var(--text-primary)}.pa-subtitle{color:var(--text-secondary);font-size:14px}.pa-controls{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:24px;padding:20px;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-primary)}.pa-input-group{flex:1;min-width:200px;display:flex;flex-direction:column;gap:6px}.pa-input-group label{color:var(--text-primary);font-weight:600;font-size:13px}.pa-input-group input[type=file],.pa-input-group select{width:100%;padding:10px;border:1px solid var(--border-primary);border-radius:8px;font-size:14px;background:var(--bg-elevated);color:var(--text-primary);cursor:pointer;transition:border-color .2s ease,background-color .2s ease}.pa-input-group input[type=file]:hover,.pa-input-group select:hover{border-color:var(--accent-primary)}.pa-input-group input[type=range]{width:100%;height:8px;border-radius:4px;background:var(--border-secondary);outline:none;-webkit-appearance:none}.pa-input-group input[type=range]:disabled{opacity:.5;cursor:not-allowed}.pa-input-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--accent-primary);cursor:pointer;border:2px solid var(--bg-elevated)}.pa-input-group input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--accent-primary);cursor:pointer;border:none}.pa-button-group{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.pa-button{padding:10px 18px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s ease,transform .2s ease}.pa-button.primary{background:var(--accent-primary);color:var(--text-on-accent)}.pa-button.primary:hover:not(:disabled){background:var(--accent-primary-hover)}.pa-button.secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-secondary)}.pa-button.secondary:hover:not(:disabled){background:var(--bg-secondary)}.pa-button.danger{background:var(--accent-primary);color:var(--text-on-accent)}.pa-button.danger:hover:not(:disabled){background:var(--accent-primary-hover)}.pa-button:disabled{opacity:.5;cursor:not-allowed}.pa-results{display:flex;gap:20px;margin-bottom:24px;flex-wrap:wrap}.pa-result-card{flex:1;min-width:160px;padding:16px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:10px;box-shadow:var(--shadow-sm)}.pa-result-card.highlight{background:var(--accent-primary);color:var(--text-on-accent)}.pa-result-card .label{display:block;font-size:12px;margin-bottom:8px;color:inherit;opacity:.85}.pa-result-card .value{display:block;font-size:20px;font-weight:700}.pa-image-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.pa-image-panel{text-align:center}.pa-image-panel h3{margin-bottom:12px;color:var(--text-primary);font-size:16px}.pa-image-panel .hint{font-size:11px;color:var(--text-tertiary);font-weight:400;font-style:italic}.pa-image-panel canvas{max-width:100%;height:auto;border:2px solid var(--border-primary);border-radius:10px;box-shadow:var(--shadow-sm);background:var(--bg-tertiary)}.pa-image-panel canvas.selecting{cursor:crosshair}@media (max-width: 768px){.print-analyzer{padding:24px 20px 40px}.pa-container{padding:20px}.pa-image-grid{grid-template-columns:1fr}}.home-container{min-height:100vh;position:relative;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.home-container:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 50%,var(--bg-primary) 100%),radial-gradient(circle at 20% 80%,rgba(239,68,68,.05) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(239,68,68,.03) 0%,transparent 50%);z-index:-1}.home-container:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(var(--border-secondary) 1px,transparent 1px),linear-gradient(90deg,var(--border-secondary) 1px,transparent 1px);background-size:50px 50px;z-index:-1;opacity:.3}.home-header{border-bottom:2px solid var(--border-primary);background:var(--bg-secondary);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-md)}.header-content{max-width:1200px;margin:0 auto;padding:24px 40px;display:flex;flex-direction:column;align-items:flex-start}.logo{font-size:28px;font-weight:800;color:var(--text-primary);display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:8px}.logo-main{font-size:32px;line-height:1;color:var(--text-primary)}.logo-subline{font-family:Noto Sans JP,sans-serif;font-size:14px;letter-spacing:3px;color:var(--text-tertiary);font-weight:700;line-height:1}.subtitle{font-size:13px;color:var(--text-secondary);font-weight:500;letter-spacing:1px}.hero{max-width:800px;margin:0 auto;padding:80px 40px 60px;text-align:center;position:relative}.hero-title{font-size:48px;font-weight:800;color:var(--text-primary);margin-bottom:16px;letter-spacing:-1px;line-height:1.2;animation:fadeIn .6s ease-out}.hero-description{font-size:18px;color:var(--text-secondary);line-height:1.7;max-width:600px;margin:0 auto;animation:fadeIn .8s ease-out}.tools-section{max-width:1200px;margin:0 auto;padding:40px 40px 80px}.section-title{font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:32px;animation:slideIn .6s ease-out}.category-list{display:flex;flex-direction:column;gap:32px}.tool-category{background:var(--bg-secondary);border:1px solid var(--border-primary);border-left:4px solid var(--category-color, var(--accent-primary));border-radius:16px;padding:24px;box-shadow:var(--shadow-sm)}.category-header{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.category-title{font-size:18px;font-weight:700;color:var(--category-color, var(--text-primary));margin:0}.category-description{font-size:13px;color:var(--text-secondary);margin:0}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.category-empty{font-size:13px;color:var(--text-tertiary);padding:16px;border:1px dashed var(--border-secondary);border-radius:12px;background:var(--bg-elevated)}.tool-card{background:var(--bg-elevated);border:2px solid var(--border-primary);border-radius:20px;padding:36px;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;cursor:pointer;animation:fadeIn .6s ease-out forwards;opacity:0}.tool-card.compact{padding:20px;border-radius:14px;border-width:1px}.tool-card:nth-child(1){animation-delay:.1s}.tool-card:nth-child(2){animation-delay:.2s}.tool-card:nth-child(3){animation-delay:.3s}.tool-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px color-mix(in srgb,var(--tool-color, var(--accent-primary)) 25%,transparent);border-color:var(--accent-primary)}.tool-card.disabled{cursor:not-allowed;opacity:.6}.tool-badge{position:absolute;top:16px;right:16px;font-family:Noto Sans JP,sans-serif;font-size:18px;font-weight:900;color:var(--tool-color, var(--accent-primary));opacity:.2;animation:glow 3s ease-in-out infinite}.tool-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.tool-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.tool-name{font-size:18px;font-weight:700;color:var(--text-primary);margin-bottom:8px;letter-spacing:-.5px}.tool-description{font-size:13px;color:var(--text-secondary);line-height:1.7;margin-bottom:14px}.feature-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.feature-pill{font-size:11px;color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-secondary);padding:4px 8px;border-radius:999px}.tool-card-footer{border-top:1px solid var(--border-primary);padding-top:12px;margin-top:12px}.launch-button{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;transition:all .3s ease;letter-spacing:.5px}.home-footer{border-top:2px solid var(--border-primary);padding:60px 40px;text-align:center;background:var(--bg-secondary);margin-top:80px}.footer-content{max-width:800px;margin:0 auto}.footer-brand{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:20px}.footer-kanji{font-family:Noto Sans JP,sans-serif;font-size:32px;font-weight:900;color:var(--accent-primary);opacity:.5}.footer-brand-text{font-size:20px;font-weight:800;color:var(--text-primary);letter-spacing:2px}.footer-text{font-size:13px;color:var(--text-tertiary);margin-bottom:12px;letter-spacing:.5px}.footer-copyright{font-size:12px;color:var(--text-tertiary);opacity:.6}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes glow{0%,to{box-shadow:0 0 20px #ef444433}50%{box-shadow:0 0 40px #ef444466}}@media (max-width: 768px){.hero-title{font-size:36px}.hero-description{font-size:16px}.category-grid{grid-template-columns:1fr}.header-content,.hero,.tools-section,.home-footer{padding-left:20px;padding-right:20px}}:root{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #e5e5e5;--bg-elevated: #ffffff;--text-primary: #1a1a1a;--text-secondary: #666666;--text-tertiary: #999999;--border-primary: #d0d0d0;--border-secondary: #e0e0e0;--accent-primary: #999999;--accent-primary-hover: #dc2626;--accent-primary-light: rgba(239, 68, 68, .1);--accent-primary-border: rgba(239, 68, 68, .3);--category-engineering: #ff663f;--category-engineering-hover: #f0552c;--category-engineering-light: rgba(255, 102, 63, .12);--category-engineering-border: rgba(255, 102, 63, .35);--category-planning: #22c55e;--category-planning-hover: #16a34a;--category-planning-light: rgba(34, 197, 94, .12);--category-planning-border: rgba(34, 197, 94, .35);--category-career: #ef4444;--category-career-hover: #dc2626;--category-career-light: rgba(239, 68, 68, .12);--category-career-border: rgba(239, 68, 68, .35);--category-lab: #3b82f6;--category-lab-hover: #2563eb;--category-lab-light: rgba(59, 130, 246, .12);--category-lab-border: rgba(59, 130, 246, .35);--text-on-bright: #0f0f10;--text-on-accent: #ffffff;--success: #22c55e;--success-light: rgba(34, 197, 94, .1);--success-border: rgba(34, 197, 94, .3);--warning: #f59e0b;--warning-light: rgba(245, 158, 11, .1);--warning-border: rgba(245, 158, 11, .3);--info: #3b82f6;--info-light: rgba(59, 130, 246, .1);--info-border: rgba(59, 130, 246, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--scrollbar-track: #f5f5f5;--scrollbar-thumb: #c0c0c0;--scrollbar-thumb-hover: #a0a0a0}[data-theme=dark]{--bg-primary: #0f0f10;--bg-secondary: #18181b;--bg-tertiary: #27272a;--bg-elevated: #111113;--text-primary: #fafafa;--text-secondary: #a1a1aa;--text-tertiary: #71717a;--border-primary: #27272a;--border-secondary: #3f3f46;--accent-primary: #ef4444;--accent-primary-hover: #dc2626;--accent-primary-light: rgba(239, 68, 68, .1);--accent-primary-border: rgba(239, 68, 68, .3);--category-engineering: #ff663f;--category-engineering-hover: #f0552c;--category-engineering-light: rgba(255, 102, 63, .18);--category-engineering-border: rgba(255, 102, 63, .4);--category-planning: #22c55e;--category-planning-hover: #16a34a;--category-planning-light: rgba(34, 197, 94, .18);--category-planning-border: rgba(34, 197, 94, .4);--category-career: #ef4444;--category-career-hover: #dc2626;--category-career-light: rgba(239, 68, 68, .18);--category-career-border: rgba(239, 68, 68, .4);--category-lab: #3b82f6;--category-lab-hover: #2563eb;--category-lab-light: rgba(59, 130, 246, .18);--category-lab-border: rgba(59, 130, 246, .4);--text-on-bright: #0f0f10;--text-on-accent: #ffffff;--success: #22c55e;--success-light: rgba(34, 197, 94, .1);--success-border: rgba(34, 197, 94, .3);--warning: #f59e0b;--warning-light: rgba(245, 158, 11, .1);--warning-border: rgba(245, 158, 11, .3);--info: #3b82f6;--info-light: rgba(59, 130, 246, .1);--info-border: rgba(59, 130, 246, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--scrollbar-track: #18181b;--scrollbar-thumb: #3f3f46;--scrollbar-thumb-hover: #52525b}*{transition:background-color .2s ease,border-color .2s ease,color .2s ease}[data-tool-category=engineering]{--accent-primary: var(--category-engineering);--accent-primary-hover: var(--category-engineering-hover);--accent-primary-light: var(--category-engineering-light);--accent-primary-border: var(--category-engineering-border)}[data-tool-category=planning]{--accent-primary: var(--category-planning);--accent-primary-hover: var(--category-planning-hover);--accent-primary-light: var(--category-planning-light);--accent-primary-border: var(--category-planning-border)}[data-tool-category=career]{--accent-primary: var(--category-career);--accent-primary-hover: var(--category-career-hover);--accent-primary-light: var(--category-career-light);--accent-primary-border: var(--category-career-border)}[data-tool-category=lab]{--accent-primary: var(--category-lab);--accent-primary-hover: var(--category-lab-hover);--accent-primary-light: var(--category-lab-light);--accent-primary-border: var(--category-lab-border)}.theme-toggle{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:var(--bg-elevated);border:2px solid var(--border-primary);box-shadow:var(--shadow-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1000;transition:all .2s ease}.theme-toggle:hover{transform:scale(1.1);box-shadow:0 12px 20px #00000026;border-color:var(--accent-primary)}.theme-toggle svg{width:24px;height:24px;color:var(--text-primary)}[data-theme=light] .theme-toggle .moon-icon{display:block}[data-theme=light] .theme-toggle .sun-icon,[data-theme=dark] .theme-toggle .moon-icon{display:none}[data-theme=dark] .theme-toggle .sun-icon{display:block}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}
