:root{--bg:#f8fafc;--surface:#fff;--text:#0f172a;--muted:#64748b;--accent:#6366f1;--accent-hover:#4f46e5;--border:#e2e8f0;--shadow:0 10px 40px #0f172a14}[data-theme=dark]{--bg:#0b1120;--surface:#111827;--text:#f8fafc;--muted:#94a3b8;--accent:#818cf8;--accent-hover:#a5b4fc;--border:#1e293b;--shadow:0 10px 40px #00000059}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.6;transition:background .3s,color .3s}a{color:inherit;text-decoration:none}.header{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in srgb, var(--bg) 85%, transparent);border-bottom:1px solid var(--border);position:sticky;top:0}.nav{justify-content:space-between;align-items:center;gap:1rem;max-width:960px;margin:0 auto;padding:1rem 1.5rem;display:flex}.logo{font-size:1.125rem;font-weight:700}.logo-link{align-items:center;display:flex}.logo-img{width:auto;height:90px}.nav-links{gap:1.5rem;list-style:none;display:flex}.nav-links a{font-size:1.1rem;font-weight:600}.nav-links a:hover{color:var(--accent)}.nav-links a.active{color:var(--accent);font-weight:700}.nav-user{border-left:1px solid var(--border);align-items:center;gap:.75rem;margin-left:.5rem;padding-left:1rem;display:flex}.nav-user-name{color:var(--text);white-space:nowrap;font-size:1rem;font-weight:600}.nav-logout-btn{color:var(--danger,#ef4444);border:1px solid var(--danger,#ef4444);cursor:pointer;background:0 0;border-radius:6px;padding:.35rem .7rem;font-size:.9rem;font-weight:600;transition:all .2s}.nav-logout-btn:hover{background:var(--danger,#ef4444);color:#fff}.nav-login-btn{color:var(--accent);border:1px solid var(--accent);border-radius:6px;margin-left:.5rem;padding:.35rem .85rem;font-size:1rem;font-weight:600;text-decoration:none;transition:all .2s}.nav-login-btn:hover{background:var(--accent);color:#fff}.image-upload{margin-bottom:1rem}.image-upload-label{color:var(--muted);margin-bottom:.4rem;font-size:.85rem;font-weight:500;display:block}.image-upload-dropzone{border:2px dashed var(--border);text-align:center;cursor:pointer;background:var(--bg);border-radius:.6rem;padding:1.5rem;transition:border-color .2s,background .2s}.image-upload-dropzone:hover,.image-upload-dropzone.dragging{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 5%, transparent)}.image-upload-placeholder{color:var(--muted);font-size:.9rem}.image-upload-preview{-o-object-fit:cover;object-fit:cover;border-radius:.5rem;max-width:100%;max-height:180px}.rich-text-editor{margin-bottom:1rem}.rich-text-toolbar{border:1px solid var(--border);background:var(--bg);border-bottom:none;border-radius:.6rem .6rem 0 0;flex-wrap:wrap;gap:.3rem;padding:.5rem;display:flex}.rich-text-toolbar button{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:.4rem;min-width:2rem;padding:.3rem .6rem;font-size:.85rem}.rich-text-toolbar button:hover{border-color:var(--accent)}.rich-text-toolbar button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.rich-text-editor .ProseMirror{border:1px solid var(--border);background:var(--bg);min-height:220px;color:var(--text);border-radius:0 0 .6rem .6rem;padding:.85rem}.rich-text-editor .ProseMirror:focus{border-color:var(--accent);outline:none}.rich-text-editor .ProseMirror img{border-radius:.4rem;max-width:100%}.rich-text-editor .ProseMirror p{margin:.5rem 0}.theme-toggle{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;width:2.5rem;height:2.5rem;font-size:1rem}main{max-width:960px;margin:0 auto;padding:0 1.5rem 4rem}.hero{text-align:center;padding:5rem 0 4rem}.badge{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);border-radius:999px;margin-bottom:1.25rem;padding:.35rem .85rem;font-size:.875rem;font-weight:600;display:inline-block}.hero h1{margin-bottom:1rem;font-size:clamp(2.5rem,6vw,4rem);line-height:1.1}.subtitle{color:var(--muted);max-width:32rem;margin:0 auto 2rem;font-size:1.125rem}.hero-actions{flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:1.5rem;display:flex}.btn{cursor:pointer;border:none;border-radius:.75rem;justify-content:center;align-items:center;padding:.75rem 1.25rem;font-weight:600;transition:transform .15s,background .2s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}.cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:4rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:1rem;padding:1.5rem}.card-icon{margin-bottom:.75rem;font-size:1.75rem;display:block}.card h2{margin-bottom:.5rem;font-size:1.125rem}.card p{color:var(--muted);font-size:.95rem}.contact{max-width:32rem;margin:0 auto}.contact h2{text-align:center;margin-bottom:1.5rem}.contact-form{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:1rem;gap:1rem;padding:1.5rem;display:grid}.contact-form label{gap:.4rem;font-size:.9rem;font-weight:600;display:grid}.contact-form input,.contact-form textarea{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);font:inherit;border-radius:.6rem;padding:.75rem .9rem}.form-status{text-align:center;color:var(--accent);margin-top:1rem;font-weight:600}.messages-section{margin-bottom:4rem}.messages-section h2{text-align:center;margin-bottom:1.5rem}.messages-list{gap:1rem;display:grid}.message-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:1rem;padding:1.25rem}.message-card.unread{border-left:3px solid var(--accent)}.message-card strong{color:var(--accent);margin-bottom:.25rem;display:block}.message-card p{color:var(--text);margin-bottom:.5rem}.message-card small{color:var(--muted)}.muted{color:var(--muted);text-align:center}.footer{text-align:center;border-top:1px solid var(--border);color:var(--muted);padding:2rem 1.5rem;font-size:.9rem}.projects-section,.skills-section,.blog-section{margin-bottom:4rem}.projects-section h2,.skills-section h2,.blog-section h2{text-align:center;margin-bottom:1.5rem}.tech-tags{flex-wrap:wrap;gap:.4rem;margin-top:.75rem;display:flex}.tech-tag{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent);border-radius:999px;padding:.2rem .6rem;font-size:.8rem;font-weight:500}.card-links{gap:.5rem;margin-top:1rem;display:flex}.btn-small{border-radius:.5rem;padding:.4rem .8rem;font-size:.85rem}.skills-grid{gap:1.5rem;display:grid}.skill-group{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:1rem;padding:1.25rem}.skill-category{text-transform:capitalize;color:var(--accent);margin-bottom:.75rem;font-size:1rem}.skill-items{flex-wrap:wrap;gap:.5rem;display:flex}.skill-pill{background:var(--bg);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.9rem;display:inline-flex}.skill-level{color:var(--accent);letter-spacing:1px;font-size:.75rem}.blog-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;display:grid}.blog-card{cursor:pointer;transition:transform .15s}.blog-card:hover{transform:translateY(-2px)}.blog-card h2{margin-bottom:.5rem;font-size:1.1rem}.blog-card p{color:var(--muted);font-size:.95rem}.blog-content{max-width:700px;margin:0 auto;padding:2rem 0}.blog-content h1{margin-bottom:1rem;font-size:2rem}.blog-content .meta{color:var(--muted);margin-bottom:2rem}.blog-content .content{line-height:1.8}.blog-content .content p{margin-bottom:1rem}.blog-back{color:var(--accent);margin-bottom:2rem;font-weight:600;display:inline-block}.blog-back:hover{text-decoration:underline}.announcement-stack{z-index:20;position:sticky;top:0}.announcement-bar{text-align:center;justify-content:center;align-items:center;gap:1rem;padding:.6rem 1.5rem;font-size:.9rem;font-weight:600;display:flex}.announcement-info{color:#713f12;background:#fef08a}.announcement-warning{color:#713f12;background:#fde047}.announcement-success{color:#14532d;background:#bbf7d0}.announcement-error{color:#7f1d1d;background:#fecaca}.announcement-close{cursor:pointer;color:inherit;opacity:.6;background:0 0;border:none;font-weight:700}.announcement-close:hover{opacity:1}.auth-page{justify-content:center;padding:4rem 0;display:flex}.auth-form{background:var(--surface);border:1px solid var(--border);width:100%;max-width:26rem;box-shadow:var(--shadow);border-radius:1rem;gap:1rem;padding:2rem;display:grid}.auth-form h1{text-align:center;margin-bottom:.5rem}.auth-form label{gap:.4rem;font-size:.9rem;font-weight:600;display:grid}.auth-form input{border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;border-radius:.6rem;padding:.75rem .9rem}.auth-switch{text-align:center;color:var(--muted);font-size:.9rem}.auth-switch a{color:var(--accent);font-weight:600}.auth-error{color:#7f1d1d;text-align:center;background:#fecaca;border-radius:.5rem;padding:.6rem .9rem;font-size:.85rem}.auth-success{color:#14532d;text-align:center;background:#bbf7d0;border-radius:.5rem;padding:.6rem .9rem;font-size:.85rem}.admin-layout{grid-template-columns:220px 1fr;width:100vw;min-height:100vh;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:0;padding-right:0;display:grid;position:relative}.admin-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:.25rem;padding:1.5rem 1rem;display:flex}.admin-sidebar h2{margin-bottom:1rem;padding:0 .5rem;font-size:1rem}.admin-nav-link{color:var(--text);border-radius:.5rem;padding:.6rem .75rem;font-size:.9rem}.admin-nav-link:hover{background:var(--bg)}.admin-nav-link.active{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);font-weight:600}.admin-main{width:100%;padding:2rem}.admin-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.admin-header h1{font-size:1.5rem}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.admin-stat-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:1rem;padding:1.25rem}.admin-stat-card .stat-label{color:var(--muted);margin-bottom:.4rem;font-size:.85rem}.admin-stat-card .stat-value{font-size:1.75rem;font-weight:700}.admin-charts{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.admin-chart-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:1rem;padding:1.25rem}.admin-chart-card h3{margin-bottom:1rem;font-size:1rem}.admin-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);width:100%;box-shadow:var(--shadow);border-radius:1rem;overflow:hidden}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem 1rem;font-size:.9rem}.admin-table th{background:var(--bg);color:var(--muted);font-weight:600}.admin-table tr:last-child td{border-bottom:none}.role-badge{border-radius:999px;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.role-badge.admin{background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--accent)}.role-badge.user{background:var(--bg);color:var(--muted);border:1px solid var(--border)}.admin-table-actions{gap:.5rem;display:flex}.btn-danger{color:#fff;background:#ef4444}.btn-danger:hover{background:#dc2626}.admin-form{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:1rem;gap:1rem;max-width:500px;margin-bottom:2rem;padding:1.5rem;display:grid}.admin-form label{gap:.4rem;font-size:.9rem;font-weight:600;display:grid}.admin-form input,.admin-form textarea,.admin-form select{border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;border-radius:.6rem;padding:.65rem .85rem}.admin-section{margin-bottom:2.5rem}.admin-section h2{margin-bottom:1rem;font-size:1.15rem}@media (max-width:900px){.admin-layout{grid-template-columns:1fr}.admin-sidebar{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;overflow-x:auto}}@media (max-width:600px){.nav-links{display:none}}body.c3d-active>header,body.c3d-active>.header,body.c3d-active>footer,body.c3d-active>.footer,body.c3d-active>div:first-child:not(.c3d-root){display:none!important}body.c3d-active>main{max-width:none;margin:0;padding:0}body.c3d-active{background:#06060e;overflow-x:hidden}.finance-dashboard{color:#e2e8f0;background:#0d1117;border-radius:1rem;margin:-.5rem;padding:1.5rem}.finance-dashboard .admin-header h1{color:#f1f5f9}.finance-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.finance-kpi-card{background:#161b22;border:1px solid #21262d;border-radius:.85rem;padding:1.1rem 1.25rem}.finance-kpi-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.4rem;font-size:.8rem}.finance-kpi-value{margin-bottom:.4rem;font-size:1.6rem;font-weight:700}.finance-main-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}.finance-card{background:#161b22;border:1px solid #21262d;border-radius:.85rem;padding:1.25rem}.finance-card h3{color:#f1f5f9;margin-bottom:1rem;font-size:1rem}.finance-tx-form{flex-direction:column;gap:.6rem;margin-bottom:1.25rem;display:flex}.finance-tx-form input,.finance-tx-form select{color:#e2e8f0;font:inherit;background:#0d1117;border:1px solid #21262d;border-radius:.5rem;padding:.55rem .75rem}.finance-tx-type-toggle{gap:.5rem;display:flex}.finance-tx-type-toggle button{color:#94a3b8;cursor:pointer;background:#0d1117;border:1px solid #21262d;border-radius:.5rem;flex:1;padding:.5rem;font-weight:600}.finance-tx-type-toggle button.active.income{color:#39ff88;background:#39ff8826;border-color:#39ff88}.finance-tx-type-toggle button.active.expense{color:#dc143c;background:#dc143c26;border-color:#dc143c}.finance-tx-list{flex-direction:column;gap:.5rem;max-height:220px;display:flex;overflow-y:auto}.finance-tx-row{border-bottom:1px solid #21262d;align-items:center;gap:.6rem;padding:.5rem .25rem;font-size:.85rem;display:flex}.finance-tx-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.finance-tx-dot.income{background:#39ff88}.finance-tx-dot.expense{background:#dc143c}.finance-tx-category{color:#cbd5e1;flex:1}.finance-tx-amount{font-weight:600}.finance-tx-amount.income{color:#39ff88}.finance-tx-amount.expense{color:#dc143c}.finance-tx-delete{color:#64748b;cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.1rem;line-height:1}.finance-tx-delete:hover{color:#dc143c}.finance-goals-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.finance-goal-card{text-align:center}.finance-radial{margin-bottom:.5rem;position:relative}.finance-radial-label{color:#f1f5f9;font-size:1.4rem;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.finance-goal-card .btn,.finance-goal-card input{margin-top:.5rem}.finance-goal-card input{color:#e2e8f0;background:#0d1117;border:1px solid #21262d;border-radius:.5rem;flex:1;padding:.4rem .6rem}@media (max-width:900px){.finance-main-grid{grid-template-columns:1fr}}:is(body:has(.prowash-root)>.header,body:has(.prowash-root)>.announcement-stack,body:has(.prowash-root)>.footer){display:none!important}body:has(.prowash-root)>main{max-width:none!important;margin:0!important;padding:0!important}
