:root{--bg:#f5f4f0;--surface:#fff;--surface-2:#f0efeb;--border:#e2e0d9;--border-2:#ccc9bf;--text:#1a1917;--text-2:#6b6760;--text-3:#9b9890;--accent:#1a6ef5;--accent-hover:#0f5de0;--accent-soft:#e8f0fe;--green:#16a34a;--green-soft:#dcfce7;--red:#dc2626;--red-soft:#fee2e2;--amber:#d97706;--amber-soft:#fef3c7;--radius:8px;--radius-lg:12px;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 28px #0000001f;--font-body:"DM Sans", sans-serif;--font-display:"DM Serif Display", serif;--sidebar-w:450px;--header-h:56px;--transition:.15s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--bg:#111110;--surface:#1c1b1a;--surface-2:#252422;--border:#2e2c2a;--border-2:#3d3a37;--text:#f0ede8;--text-2:#a09d98;--text-3:#6b6760;--accent:#4d8ff5;--accent-hover:#3a7ef0;--accent-soft:#1a2a45;--green:#22c55e;--green-soft:#14291e;--red:#f87171;--red-soft:#2d1414;--amber:#fbbf24;--amber-soft:#2d2108;--shadow:0 1px 3px #0000004d, 0 1px 2px #0003;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 8px 28px #00000073}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px}body{padding-top:var(--header-h);font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;transition:background var(--transition), color var(--transition)}a{color:var(--accent);text-decoration:none}button{cursor:pointer;font-family:var(--font-body)}input,textarea,select{font-family:var(--font-body);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;transition:border-color var(--transition), box-shadow var(--transition), background var(--transition);outline:none;padding:.5rem .75rem;font-size:.875rem}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}textarea{resize:vertical}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b6760' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right .65rem center;background-repeat:no-repeat;padding-right:2rem}label{color:var(--text-2);margin-bottom:.3rem;font-size:.8rem;font-weight:500;display:block}hr{border:none;border-top:1px solid var(--border);margin:1.25rem 0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:3px}.btn{border-radius:var(--radius);transition:all var(--transition);white-space:nowrap;border:none;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.825rem;font-weight:500;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 3px 10px color-mix(in srgb, var(--accent) 35%, transparent);transform:translateY(-1px)}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.btn-ghost{color:var(--text-2);background:0 0;border:1px solid #0000}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-danger{background:var(--red-soft);color:var(--red);border:1px solid #0000}.btn-danger:hover{background:var(--red);color:#fff}.btn-sm{padding:.3rem .65rem;font-size:.775rem}.btn-icon{border-radius:6px;justify-content:center;width:30px;height:30px;padding:0}.tabs{background:var(--surface-2);border-bottom:1px solid var(--border);z-index:10;justify-content:space-evenly;padding:0 1rem;display:flex;position:sticky;top:0}.tab{color:var(--text-2);cursor:pointer;transition:all var(--transition);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:.75rem 1rem;font-size:.825rem;font-weight:500}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab:hover:not(.active){color:var(--text)}.app-layout{height:calc(100vh - var(--header-h));display:flex}.form-panel{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);transition:background var(--transition), border-color var(--transition);flex-shrink:0;overflow-y:auto}.form-panel-inner{padding:1.25rem}.preview-panel{transition:background var(--transition);flex-direction:column;flex:1;display:flex;overflow:hidden;background:var(--bg)!important}.app-layout .full-preview-mode .preview-scroll{justify-content:center;padding:2rem 0;display:flex}@media (width<=900px){.app-layout{flex-direction:column;height:auto}.form-panel{border-right:none;border-bottom:1px solid var(--border);width:100%;height:auto;overflow-y:visible}.preview-panel{height:auto;min-height:100vh}.hide-panel{display:none!important}}.toast-wrap{z-index:9999;pointer-events:none;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}@media (width<=900px){.toast-wrap{left:1.5rem}}.toast{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text);box-shadow:var(--shadow-md);pointer-events:auto;align-items:center;gap:.6rem;padding:.7rem 1.1rem;font-size:.825rem;animation:.25s toast-in;display:flex}@keyframes toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.toast.fade-out{animation:.25s forwards toast-out}@keyframes toast-out{to{opacity:0;transform:translate(20px)}}.toast-icon{font-size:1rem}.header{z-index:100;height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow);transition:background var(--transition), border-color var(--transition);justify-content:space-between;align-items:center;padding:0 1.25rem;display:flex;position:fixed;top:0;left:0;right:0}.header-left{align-items:center;gap:.75rem;display:flex}.header-logo{font-family:var(--font-display);color:var(--text);letter-spacing:-.01em;align-items:center;gap:4px;font-size:1.15rem;display:flex}.header-logo span{color:var(--accent)}.header-right{align-items:center;gap:.5rem;display:flex}.theme-toggle{border:1px solid var(--border);background:var(--surface-2);width:36px;height:36px;color:var(--text-2);transition:all var(--transition);border-radius:8px;justify-content:center;align-items:center;display:flex}.theme-toggle:hover{background:var(--surface);color:var(--text)}.title-wrapper-desktop{display:block}.title-wrapper-mobile{display:none}@media (width<=540px){.header{padding:0 .85rem}.header-logo{font-size:1rem}.title-wrapper-desktop{display:none}.title-wrapper-mobile{display:block}}.mobile-tabs{background:var(--surface);border-bottom:1px solid var(--border);top:var(--header-h);z-index:50;display:none;position:sticky}@media (width<=900px){.mobile-tabs{display:flex}}@media print{.mobile-tabs{display:none!important}}.section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.7rem;font-weight:600;display:flex}.section-title:after{content:"";background:var(--border);flex:1;height:1px}.field-row{margin-bottom:.85rem}.field-grid{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.85rem;display:grid}.section-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-bottom:.85rem;overflow:hidden}.section-header{background:var(--surface-2);cursor:pointer;width:100%;color:var(--text-1);border:none;justify-content:space-between;align-items:center;padding:.9rem 1rem;font-size:.95rem;font-weight:600;display:flex}.section-body{padding:1rem}.card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--transition);margin-bottom:.75rem;overflow:hidden}.card:hover{border-color:var(--border-2)}.card-header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.7rem 1rem;display:flex}.card-title{color:var(--text);flex:1;font-size:.85rem;font-weight:500}.card-chevron{color:var(--text-1);transition:transform var(--transition);background:var(--surface-2);font-size:.75rem}.card.open .card-chevron{transform:rotate(180deg)}.card-body{padding:0 1rem 1rem;display:none}.card.open .card-body{display:block}.drag-handle{color:var(--text-3);cursor:grab;transition:color var(--transition);padding:0 .15rem;font-size:.9rem}.drag-handle:hover{color:var(--text-2)}.score-ring-wrap{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:center;gap:1rem;margin-bottom:1.25rem;padding:.9rem 1.1rem;display:flex}.score-ring{flex-shrink:0;width:56px;height:56px;position:relative}.score-ring svg{transform:rotate(-90deg)}.score-ring circle{fill:none;stroke-width:5px}.score-ring .track{stroke:var(--border)}.score-ring .fill{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:157;stroke-dashoffset:157px;transition:stroke-dashoffset .6s,stroke .3s}.score-ring .val{color:var(--text);justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex;position:absolute;inset:0}.score-info{flex:1}.score-label{color:var(--text);margin-bottom:.2rem;font-size:.8rem;font-weight:600}.score-sub{color:var(--text-2);font-size:.75rem}.link-tag{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);border-radius:6px;align-items:center;gap:.35rem;margin-bottom:.35rem;margin-right:.35rem;padding:.25rem .6rem;font-size:.775rem;display:inline-flex}.link-tag button{color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;line-height:1}.link-tag button:hover{color:var(--red)}.links-input-row{gap:.5rem;margin-bottom:.5rem;display:flex}.links-input-row input{flex:1}.links-tags-wrap{min-height:28px}.keyword-score{border-radius:var(--radius);justify-content:space-between;align-items:center;margin-top:.5rem;padding:.5rem .75rem;font-size:.8rem;display:flex}.keyword-score.good{background:var(--green-soft);color:var(--green)}.keyword-score.warn{background:var(--amber-soft);color:var(--amber)}.keyword-score.bad{background:var(--red-soft);color:var(--red)}.ks-bar-wrap{background:var(--border);border-radius:3px;width:80px;height:6px;overflow:hidden}.ks-bar{border-radius:3px;height:100%;transition:width .4s}.good .ks-bar{background:var(--green)}.warn .ks-bar{background:var(--amber)}.bad .ks-bar{background:var(--red)}.char-counter{text-align:right;color:var(--text-3);margin-top:.25rem;font-size:.72rem}.skill-tag{background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);color:var(--accent);border-radius:5px;align-items:center;gap:.3rem;margin-bottom:.3rem;margin-right:.3rem;padding:.15rem .5rem;font-size:.775rem;display:inline-flex}.skill-tag button{cursor:pointer;color:var(--accent);background:0 0;border:none;padding:0;font-size:.75rem;line-height:1}.section-order-list{flex-direction:column;gap:.4rem;margin-top:.5rem;display:flex}.section-order-item{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:grab;-webkit-user-select:none;user-select:none;will-change:transform;align-items:center;gap:.6rem;padding:.55rem .75rem;font-size:.825rem;font-weight:400;transition:transform .18s,box-shadow .18s;display:flex}.section-order-item:hover{border-color:var(--border-2);background:var(--surface)}.section-order-item .soi-label{flex:1}.section-order-item .soi-toggle{background:var(--border-2);cursor:pointer;width:28px;height:16px;transition:background var(--transition);border:none;border-radius:8px;flex-shrink:0;position:relative}.section-order-item .soi-toggle:after{content:"";width:12px;height:12px;transition:transform var(--transition);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.section-order-item.enabled .soi-toggle{background:var(--accent)}.section-order-item.enabled .soi-toggle:after{transform:translate(12px)}.theme-swatches{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.theme-swatch{cursor:pointer;width:32px;height:32px;transition:all var(--transition);border:2px solid #0000;border-radius:8px;position:relative;overflow:hidden}.theme-swatch.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.theme-swatch:after{content:"✓";color:#fff;opacity:0;transition:opacity var(--transition);text-shadow:0 1px 2px #0006;justify-content:center;align-items:center;font-size:.7rem;display:flex;position:absolute;inset:0}.theme-swatch.active:after{opacity:1}.export-group{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.export-btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;transition:all var(--transition);align-items:center;gap:.45rem;padding:.55rem 1rem;font-size:.825rem;font-weight:500;display:flex}.export-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.export-btn .eb-icon{font-size:1rem}.preview-toolbar{background:var(--surface);border-bottom:1px solid var(--border);transition:background var(--transition), border-color var(--transition);justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 1.25rem;display:flex}.preview-toolbar-left,.preview-toolbar-right{align-items:center;gap:.5rem;display:flex}.view-toggle{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);gap:2px;padding:2px;display:flex;overflow:hidden}.view-btn{color:var(--text-2);transition:all var(--transition);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:.3rem .7rem;font-size:.775rem;font-weight:500}.view-btn.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}@media (width<=900px){.view-toggle{display:none!important}}a{color:var(--resume-theme-header,#1a6ef5)}.preview-scroll{flex:1;justify-content:center;align-items:flex-start;padding:2rem 1rem;display:flex;overflow-y:auto}.resume-paper{color:#1a1917;box-sizing:border-box;width:8.5in;height:max-content;min-height:11in;box-shadow:var(--shadow-lg);background:#fff;border-radius:4px;flex-shrink:0;padding:.6in;font-family:DM Sans,sans-serif;font-size:13.5px;line-height:1.55;overflow:hidden}.resume-link{color:var(--resume-theme-header,#1a6ef5);text-decoration:none;transition:color .2s}.resume-link:hover{opacity:.85;text-decoration:underline}.resume-name{font-family:var(--font-display);color:#1a1917;letter-spacing:-.02em;margin-bottom:.1rem;font-size:2rem}.resume-headline{color:#6b6760;margin-bottom:.6rem;font-size:.9rem}.resume-contact{color:#6b6760;flex-wrap:wrap;gap:.4rem .9rem;font-size:.8rem;display:flex}.resume-contact span{align-items:center;gap:.3rem;display:flex}.resume-section{margin-top:1.4rem}.resume-section-title{letter-spacing:.1em;text-transform:uppercase;color:var(--resume-theme-header,#1a6ef5);border-bottom:1.5px solid var(--resume-theme-accent,#1a6ef5);margin-bottom:.7rem;padding-bottom:.25rem;font-size:.72rem;font-weight:700}.resume-exp-item{margin-bottom:.9rem}.resume-exp-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem;display:flex}.resume-exp-role{color:#1a1917;font-size:.875rem;font-weight:600}.resume-exp-dates{color:#9b9890;font-size:.775rem}.resume-exp-company{color:#6b6760;margin-bottom:.35rem;font-size:.8rem}.resume-exp-bullets{margin:0;padding-left:1.2rem}.resume-exp-bullets li{color:#2d2c2a;margin-bottom:.2rem;font-size:.825rem}.resume-placeholder{text-align:center;color:var(--text-3);padding:4rem 2rem;font-size:.875rem}.resume-placeholder .rp-icon{margin-bottom:.75rem;font-size:2.5rem}.resume-placeholder h3{color:var(--text-2);margin-bottom:.4rem;font-size:1rem;font-weight:500}@media (width<=900px){.preview-scroll{padding:1rem}.resume-paper{width:100%;min-height:auto;box-shadow:none;page-break-after:always;break-after:page;border-radius:0;padding:1.5rem 1.75rem}}@keyframes pulse-dot{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.typing-dots span{background:var(--text-3);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite pulse-dot;display:inline-block}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@media print{.header,.form-panel,.preview-toolbar,.mobile-view-toggle,.toast-wrap,.mobile-tabs{display:none!important}html,body,#root,.app-layout,.preview-panel,.preview-scroll{background:#fff!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.preview-scroll{padding:0!important}.resume-paper{break-inside:avoid;page-break-inside:avoid;width:100%!important;max-width:100%!important;min-height:auto!important;box-shadow:none!important;background:#fff!important;border-radius:0!important;margin:0!important;padding:0!important;overflow:visible!important}.resume-section,.resume-exp-item{break-inside:avoid;page-break-inside:avoid}@page{size:A4 portrait;margin:20mm}}.resume-skills-grid{flex-wrap:wrap;gap:.35rem;display:flex}.resume-skill-tag{color:#2d2c2a;background:#f0efeb;border-radius:4px;padding:.2rem .55rem;font-size:.775rem}@media print{.resume-skills-grid{gap:0}.resume-skill-tag{padding:.1rem}}
