:root{--color-primary:#4f46e5;--color-primary-light:#6366f1;--color-accent:#059669;--color-bg:#eef2ff;--color-surface:#ffffffc7;--color-text:#0f172a;--color-text-muted:#64748b;--color-border:#6366f11f;--color-border-mid:#6366f133;--color-earned:#059669;--color-pending:#d97706;--color-danger:#dc2626;--radius:14px;--radius-sm:9px;--blur:blur(20px);--shadow:0 4px 24px #4f46e512, 0 1px 4px #0000000a;--shadow-hero:0 8px 40px #4f46e52e}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);background-image:radial-gradient(at 15% 40%,#6366f121 0%,#0000 55%),radial-gradient(at 85% 15%,#10b98114 0%,#0000 50%),radial-gradient(at 65% 85%,#8b5cf612 0%,#0000 50%);min-height:100vh;font-family:Open Sans,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{-webkit-backdrop-filter:var(--blur);border-bottom:1px solid var(--color-border-mid);z-index:100;background:#ffffffd1;justify-content:space-between;align-items:center;height:64px;padding:0 2rem;display:flex;position:sticky;top:0;box-shadow:0 1px #6366f10f}.header-brand{align-items:center;gap:.75rem;display:flex}.logo-pill{background:linear-gradient(135deg,#4f46e5,#7c3aed);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex;box-shadow:0 2px 10px #4f46e54d}.app-logo{object-fit:contain;width:auto;height:24px}.header-text{flex-direction:column;display:flex}.app-title{letter-spacing:-.01em;color:var(--color-text);font-family:Poppins,sans-serif;font-size:1.1rem;font-weight:600}.beta-badge{text-transform:uppercase;letter-spacing:.1em;color:var(--color-primary);vertical-align:middle;background:#4f46e51a;border:1px solid #4f46e540;border-radius:4px;margin-left:.4rem;padding:.15em .55em;font-size:.55rem;font-weight:700;position:relative;top:-1px}.header-total{color:var(--color-text-muted);font-size:.85rem;font-weight:500}.tab-nav{gap:0;display:flex}.tab-nav button{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;height:64px;padding:0 1.25rem;font-family:Open Sans,sans-serif;font-size:.875rem;font-weight:500;transition:all .18s ease-out}.tab-nav button:hover{color:var(--color-text)}.tab-nav button.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.app-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:1.5rem 2rem}.getting-started-tip{border-radius:var(--radius-sm);color:var(--color-primary);background:#4f46e512;border:1px solid #4f46e533;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding:.75rem 1rem;font-size:.9rem;display:flex}.tip-link{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:.9rem;font-weight:700;text-decoration:underline}.tip-link:hover{color:var(--color-primary-light)}.tip-dismiss{color:var(--color-primary);cursor:pointer;opacity:.4;background:0 0;border:none;padding:0 .25rem;font-size:1.2rem;line-height:1}.tip-dismiss:hover{opacity:1}.app-footer{text-align:center;color:var(--color-text-muted);border-top:1px solid var(--color-border-mid);padding:1rem;font-size:.8rem}.card-name{font-weight:500}.disclaimer{opacity:.7;margin-top:.5rem;font-size:.7rem}.card{-webkit-backdrop-filter:var(--blur);background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--color-border-mid);padding:1.25rem}.card h3{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin-bottom:.75rem;font-family:Poppins,sans-serif;font-size:.8rem;font-weight:600}.card-description{color:var(--color-text-muted);margin-bottom:.75rem;font-size:.85rem}.hero-card{color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-hero);background:linear-gradient(135deg,#4f46e5 0%,#6d28d9 60%,#4338ca 100%);margin-bottom:1.5rem;padding:1.5rem;position:relative;overflow:hidden}.hero-card:before{content:"";pointer-events:none;background:#ffffff12;border-radius:50%;width:260px;height:260px;position:absolute;top:-80px;right:-60px}.hero-card:after{content:"";pointer-events:none;background:#ffffff0d;border-radius:50%;width:220px;height:220px;position:absolute;bottom:-60px;left:10%}.hero-title-row{align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.hero-card h2{color:#fffc;font-family:Poppins,sans-serif;font-size:1rem;font-weight:500}.tier-badge{background:var(--tier-color,#888);border-radius:50%;flex-shrink:0;width:20px;height:20px;display:inline-block;box-shadow:0 0 0 3px #fff3,inset 0 -2px 4px #0003}.tier-badge.large{width:26px;height:26px}.hero-numbers{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.25rem;display:grid}.hero-stat{flex-direction:column;display:flex}.hero-label{text-transform:uppercase;letter-spacing:.08em;color:#ffffff8c;margin-bottom:.25rem;font-size:.7rem}.hero-value{color:#fff;font-family:Poppins,sans-serif;font-size:1.5rem;font-weight:700}.hero-value.earned{color:#a7f3d0}.hero-value.pending{color:#fde68a}.hero-value.projected{color:#bfdbfe}.progress-bar-container{background:#ffffff2e;border-radius:5px;height:10px;margin-bottom:1.5rem;position:relative}.progress-bar{border-radius:5px;height:100%;transition:width .5s}.progress-bar.earned-segment,.progress-bar.pending-segment,.progress-bar.projected-segment{overflow:hidden}.progress-bar.earned-segment{background:linear-gradient(90deg,#10b981,#6ee7b7);border-radius:5px 0 0 5px;position:absolute;top:0;left:0}.progress-bar.pending-segment{background:linear-gradient(90deg,#f59e0b,#fcd34d);border-radius:0;position:absolute;top:0}.progress-bar.projected-segment{background:#ffffff4d;border-radius:0 5px 5px 0;position:absolute;top:0}.target-marker{z-index:1;background:#fff;border-radius:2px;width:2px;position:absolute;top:-4px;bottom:-4px;box-shadow:0 0 6px #fffc}.target-marker:after{content:attr(data-label);color:#fffc;white-space:nowrap;font-size:.7rem;font-weight:600;position:absolute;bottom:-18px;left:50%;transform:translate(-50%)}.progress-text{color:#ffffffb3;font-size:.85rem}.projection-card{margin-top:1.5rem;margin-bottom:0}.dashboard>.dashboard-grid+.dashboard-grid,.projection-card+.dashboard-grid{margin-top:1.5rem}.dashboard-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.data-table{border-collapse:collapse;width:100%;font-size:.85rem}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border-mid);padding:.5rem .75rem;font-size:.72rem;font-weight:600}.data-table td{border-bottom:1px solid var(--color-border);padding:.5rem .75rem}.data-table tr:last-child td{border-bottom:none}.data-table .num{text-align:right;font-variant-numeric:tabular-nums;font-family:Poppins,sans-serif;font-weight:500}.data-table .total-row td{border-top:1px solid var(--color-border-mid);border-bottom:none;font-weight:600}.data-table.compact td,.data-table.compact th{padding:.35rem .5rem}.desc-cell{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.table-container{overflow-x:auto}.status-badge{border-radius:20px;align-items:center;gap:.3rem;padding:.2rem .65rem;font-size:.72rem;font-weight:600;display:inline-flex}.status-badge:before{content:"";border-radius:50%;flex-shrink:0;width:5px;height:5px}.status-badge.complete{color:#065f46;background:#0596691a;border:1px solid #05966933}.status-badge.complete:before{background:#059669}.status-badge.pending{color:#92400e;background:#d977061a;border:1px solid #d9770633}.status-badge.pending:before{background:#d97706}.btn{border-radius:var(--radius-sm);border:1px solid var(--color-border-mid);color:var(--color-text);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb3;padding:.5rem 1rem;font-family:Open Sans,sans-serif;font-size:.85rem;font-weight:500;transition:all .18s ease-out}.btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:#fff}.btn.primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:600;box-shadow:0 4px 12px #4f46e540}.btn.primary:hover{background:#4338ca;box-shadow:0 6px 20px #4f46e559}.btn.danger{color:var(--color-danger);border-color:#dc26264d}.btn.danger:hover{border-color:var(--color-danger);background:#fef2f2}.btn-icon{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:.25rem;font-size:1rem;transition:color .15s}.btn-icon:hover{color:var(--color-text)}.btn-icon.danger:hover{color:var(--color-danger)}.form-row{flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem;display:flex}.form-row.compact{margin-top:.75rem;margin-bottom:0}.form-row label{color:var(--color-text-muted);flex-direction:column;gap:.25rem;font-size:.8rem;font-weight:500;display:flex}.form-row input,.form-row select{border:1px solid var(--color-border-mid);color:var(--color-text);background:#fffc;border-radius:6px;padding:.4rem .6rem;font-family:Open Sans,sans-serif;font-size:.85rem;transition:border-color .15s,box-shadow .15s}.form-row input:focus,.form-row select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #4f46e51a}.form-row.compact input{border:1px solid var(--color-border-mid);background:#fffc;border-radius:6px;padding:.4rem .5rem;font-size:.85rem}.form-actions{gap:.5rem;margin-top:.5rem;display:flex}.add-entry-form{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--color-primary);border-radius:var(--radius);background:#ffffffd9;margin-bottom:1rem;padding:1rem;box-shadow:0 0 0 3px #4f46e514}.edit-row input,.edit-row select{border:1px solid var(--color-border-mid);background:#ffffffe6;border-radius:5px;padding:.25rem .4rem;font-family:Open Sans,sans-serif;font-size:.8rem}.activity-panel h2{margin-bottom:0;font-family:Poppins,sans-serif;font-size:1.1rem;font-weight:600}.activity-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.activity-controls{align-items:center;gap:.75rem;display:flex}.activity-controls select{border:1px solid var(--color-border-mid);color:var(--color-text);background:#fffc;border-radius:6px;padding:.4rem .6rem;font-family:Open Sans,sans-serif;font-size:.85rem}.entry-count{color:var(--color-text-muted);margin-top:.75rem;font-size:.8rem}.actions{white-space:nowrap}.import-panel h2{margin-bottom:.5rem;font-family:Poppins,sans-serif;font-size:1.1rem;font-weight:600}.import-instructions{color:var(--color-text-muted);margin-bottom:1rem;font-size:.9rem}.import-year-filter{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.import-year-filter label{align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;display:flex}.import-year-filter select{border:1px solid var(--color-border-mid);color:var(--color-text);background:#fffc;border-radius:6px;padding:.4rem .6rem;font-family:Open Sans,sans-serif;font-size:.85rem}.year-hint{color:var(--color-text-muted);font-size:.8rem}.drop-zone{border:2px dashed var(--color-border-mid);border-radius:var(--radius);text-align:center;cursor:pointer;background:#4f46e505;padding:3rem;transition:all .18s ease-out}.drop-zone:hover{border-color:var(--color-primary);background:#4f46e50a}.drop-text{color:var(--color-text-muted);font-size:.95rem}.import-status{text-align:center;padding:2rem}.import-status.error{color:var(--color-danger)}.import-review{flex-direction:column;gap:1rem;display:flex}.review-summary{-webkit-backdrop-filter:var(--blur);border-radius:var(--radius);border:1px solid var(--color-border-mid);background:#ffffffd9;padding:1rem}.review-summary h3{text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin-bottom:.5rem;font-family:Poppins,sans-serif;font-size:.8rem;font-weight:600}.review-counts{gap:.75rem;margin-top:.5rem;display:flex}.review-badge{border-radius:20px;padding:.25rem .75rem;font-size:.78rem;font-weight:600}.review-badge.new{color:#065f46;background:#0596691a;border:1px solid #05966933}.review-badge.updated{color:#312e81;background:#4f46e51a;border:1px solid #4f46e533}.review-badge.duplicate{color:#475569;background:#64748b1a;border:1px solid #64748b33}.review-section{-webkit-backdrop-filter:var(--blur);border-radius:var(--radius);border:1px solid var(--color-border-mid);background:#ffffffd9;padding:1rem}.review-section h4{margin-bottom:.5rem;font-size:.85rem;font-weight:600}.review-actions{gap:.75rem;display:flex}.settings-panel{flex-direction:column;gap:1rem;display:flex}.settings-panel h2{font-family:Poppins,sans-serif;font-size:1.1rem;font-weight:600}.target-grid{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.target-btn{border:1px solid var(--color-border-mid);border-radius:var(--radius-sm);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff80;flex-direction:column;align-items:center;gap:.25rem;padding:1rem .5rem;font-family:Open Sans,sans-serif;transition:all .18s ease-out;display:flex}.target-btn:hover{border-color:var(--color-primary-light);background:#ffffffd9}.target-btn.active{border-color:var(--color-primary);background:#4f46e50f;box-shadow:0 0 0 3px #4f46e51a}.target-level{font-size:.9rem;font-weight:600}.target-amount{color:var(--color-text-muted);font-size:.8rem}.custom-target-input{text-align:center;border:1px solid var(--color-border-mid);background:#fffc;border-radius:5px;width:5rem;padding:.25rem;font-family:Open Sans,sans-serif;font-size:.8rem}.tag-list{flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;display:flex}.tag{color:var(--color-primary);background:#4f46e512;border:1px solid #4f46e526;border-radius:20px;align-items:center;gap:.4rem;padding:.25rem .7rem;font-size:.8rem;display:inline-flex}.tag-remove{cursor:pointer;color:var(--color-primary);opacity:.5;background:0 0;border:none;padding:0;font-size:1rem;line-height:1}.tag-remove:hover{opacity:1;color:var(--color-danger)}.button-row{gap:.75rem;display:flex}.forecast-grid{flex-direction:column;gap:.5rem;display:flex}.forecast-item{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.4rem 0;font-size:.85rem;display:flex}.forecast-item:last-child{border-bottom:none}.forecast-item:has(+.forecast-item.highlight){border-bottom:none}.forecast-item.highlight{color:var(--color-primary);border-top:1px solid var(--color-border-mid);border-bottom:none;padding-top:.5rem;font-weight:600}.forecast-label{color:var(--color-text-muted)}.forecast-item.highlight .forecast-label{color:var(--color-primary)}.how-to-use{flex-direction:column;gap:1rem;display:flex}.how-to-use h2{font-family:Poppins,sans-serif;font-size:1.1rem;font-weight:600}.how-to-use ol,.how-to-use ul{flex-direction:column;gap:.6rem;padding-left:1.25rem;font-size:.9rem;line-height:1.6;display:flex}.how-to-use a{color:var(--color-primary)}@media (width<=768px){.app-header{flex-direction:column;gap:.5rem;height:auto;padding:.75rem 1rem}.hero-numbers{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.target-grid{grid-template-columns:repeat(3,1fr)}.app-main{padding:1rem}}
