/* ── BUTTONS ── */
.btn { padding:8px 18px; border:none; border-radius:7px; cursor:pointer; font-family:'Exo 2',sans-serif; font-size:13px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; transition:all .18s; display:inline-flex; align-items:center; gap:6px; }
@keyframes cta-glow { 0%,100%{box-shadow:0 0 14px var(--glow-a),inset 0 1px 0 rgba(255,255,255,.12);}50%{box-shadow:0 0 30px var(--glow-a),inset 0 1px 0 rgba(255,255,255,.12);} }
.btn-primary { background:linear-gradient(135deg,var(--accent),#0047d4); color:#fff; animation:cta-glow 3s ease-in-out infinite; }
.btn-primary:hover { transform:translateY(-1px); }
.btn-ghost { background:rgba(255,255,255,.04); color:var(--text-dim); border:1px solid var(--border); width:36px; height:36px; padding:0; justify-content:center; border-radius:8px; }
.btn-ghost:hover { background:rgba(255,255,255,.09); color:var(--text); border-color:var(--border-bright); }
.btn-secondary { background:rgba(255,255,255,.05); color:var(--text-dim); border:1px solid var(--border); }
.btn-secondary:hover { background:rgba(255,255,255,.09); color:var(--text); }
.btn-danger { background:rgba(255,60,60,.12); color:#ff7777; border:1px solid rgba(255,60,60,.25); }
.btn-danger:hover { background:rgba(255,60,60,.22); }

/* ── TABLE CARD ── */
.table-card { background:var(--bg-card); border:1px solid var(--border); border-left:3px solid var(--accent); border-radius:12px; overflow:hidden; box-shadow:0 0 24px rgba(26,111,255,.08),0 4px 20px rgba(0,0,0,.4); }
.table-toolbar { padding:10px 14px; border-bottom:1px solid var(--border); display:flex; align-items:center; background:linear-gradient(135deg,rgba(26,111,255,.06),transparent); }
.table-title { font-family:'Orbitron',sans-serif; font-size:13px; font-weight:600; letter-spacing:2.5px; text-transform:uppercase; color:var(--text); display:flex; align-items:center; gap:10px; }
.table-title::before { content:''; display:block; width:3px; height:16px; background:linear-gradient(180deg,var(--accent),var(--highlight)); border-radius:2px; }
.table-scroll { overflow-x:auto; }

/* ── TABLE ── */
table { width:100%; border-collapse:collapse; font-size:14px; }
thead th { background:rgba(26,111,255,.07); padding:7px 6px; font-size:9px; text-transform:uppercase; letter-spacing:.8px; color:var(--text-dim); border-bottom:1px solid var(--border); border-right:1px solid rgba(30,52,96,.7); white-space:nowrap; text-align:right; font-weight:600; cursor:default; }
thead th:first-child { text-align:left; padding-left:10px; }
thead th:last-child { border-right:none; text-align:center; }
tbody tr { border-bottom:1px solid rgba(21,34,64,.6); transition:background .12s; }
tbody tr:nth-child(even) { background:rgba(26,111,255,.018); }
tbody tr:hover { background:rgba(26,111,255,.07); }
tbody td { padding:5px 6px; text-align:right; font-family:'Exo 2',monospace; font-variant-numeric:tabular-nums; border-right:1px solid rgba(21,34,64,.8); white-space:nowrap; }
tbody td:first-child { text-align:left; padding-left:10px; }
tbody td:last-child { text-align:center; border-right:none; padding-right:6px; }
@keyframes rowIn { from{opacity:0;transform:translateX(-6px);}to{opacity:1;transform:translateX(0);} }
tbody tr { animation:rowIn .2s ease both; }

/* ── CELL INPUTS ── */
.cell-input { background:transparent; border:none; outline:none; color:inherit; font-family:inherit; font-size:inherit; font-variant-numeric:tabular-nums; text-align:right; width:100%; padding:2px; border-radius:4px; transition:background .15s,box-shadow .15s; cursor:pointer; }
.cell-input::-webkit-inner-spin-button, .cell-input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.cell-input[type=number] { -moz-appearance:textfield; }
.cell-input:hover { background:rgba(26,111,255,.1); }
.cell-input:focus { background:rgba(26,111,255,.18); box-shadow:0 0 0 1px var(--accent); cursor:text; }
.cell-input.c-year  { color:var(--highlight); font-family:'Orbitron',sans-serif; font-size:14px; font-weight:700; width:62px; text-align:left; }
.cell-input.c-price { width:68px; }
.cell-input.c-div   { width:54px; }
.cell-input.c-pkg   { width:36px; color:#fff; font-weight:700; }
.c-divend { color:#5ba3ff; }
.gift-badge { display:inline-flex; align-items:center; gap:3px; padding:2px 7px; border-radius:20px; background:rgba(0,255,153,.09); color:var(--success); border:1px solid rgba(0,255,153,.2); font-size:11px; font-weight:700; white-space:nowrap; }
.no-gift { color:var(--text-muted); }

/* ── DEL BUTTON ── */
.del-btn { background:rgba(26,111,255,.06); border:1px solid var(--border); cursor:pointer; color:var(--text-dim); width:24px; height:24px; display:inline-flex; align-items:center; justify-content:center; border-radius:6px; transition:all .18s; }
.del-btn:hover { background:rgba(26,111,255,.2); border-color:var(--border-bright); color:var(--highlight); box-shadow:0 0 10px var(--glow-a); }
.del-btn svg { pointer-events:none; }

/* ── TOTAL ROW ── */
.total-row { background:rgba(26,111,255,.12) !important; border-top:2px solid rgba(26,111,255,.8) !important; border-bottom:2px solid rgba(26,111,255,.7) !important; }
.total-row td { font-weight:700; color:white !important; font-size:14px; }
.total-label { font-family:'Orbitron',sans-serif; font-size:11px; letter-spacing:2px; color:var(--text-dim) !important; }
tbody tr:last-child:not(.total-row):not(.proj-row):not(.proj-sep):not(.retire-sep) { border-bottom:2px solid rgba(26,111,255,.2); }

/* ── RETIRE SEPARATOR ── */
.retire-sep td { background:rgba(26,111,255,.05) !important; border-top:2px solid rgba(0,212,255,.45) !important; border-bottom:1px solid rgba(0,212,255,.2) !important; padding:4px 6px; }
.retire-sep-label { font-family:'Orbitron',sans-serif; font-size:9px; letter-spacing:2.5px; text-transform:uppercase; color:var(--highlight); }

/* ── PROJECTION ── */
.proj-sep td { background:rgba(var(--proj-rgb),.08) !important; border-top:2px dashed rgba(var(--proj-rgb),.3) !important; border-bottom:1px solid rgba(var(--proj-rgb),.2) !important; padding:4px 6px; }
.proj-sep-label { font-family:'Orbitron',sans-serif; font-size:9px; letter-spacing:2.5px; text-transform:uppercase; color:var(--proj); opacity:.7; }
.proj-row { opacity:.65; }
.proj-row td { border-bottom:1px solid rgba(var(--proj-rgb),.12) !important; }
.proj-row:hover { opacity:.9; background:rgba(var(--proj-rgb),.08) !important; }
.proj-total-row td { background:rgba(var(--proj-rgb),.14) !important; border-top:2px solid rgba(var(--proj-rgb),.55) !important; border-bottom:2px solid rgba(var(--proj-rgb),.4) !important; font-weight:700; color:var(--proj) !important; padding:6px 6px; }
.proj-total-label { font-family:'Orbitron',sans-serif; font-size:10px; letter-spacing:2px; color:var(--proj); opacity:.9; }
.proj-year { color:var(--proj); font-family:'Orbitron',sans-serif; font-size:13px; font-style:italic; }
.proj-val { color:var(--proj); opacity:.8; }
.btn-proj { background:rgba(var(--proj-rgb),.1); color:var(--proj); border:1px solid rgba(var(--proj-rgb),.3); padding:4px 8px 4px 12px; border-radius:6px; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; cursor:pointer; transition:all .18s; margin-left:auto; margin-right:-3px; font-family:'Exo 2',sans-serif; display:inline-flex; align-items:center; gap:5px; }
.btn-proj::after { content:'\25B8'; font-variant-emoji:text; display:inline-block; transition:transform .2s; line-height:1; font-size:15px; }
.btn-proj.active::after { transform:rotate(90deg); }
.btn-proj:hover, .btn-proj.active { background:rgba(var(--proj-rgb),.25); color:var(--proj); filter:brightness(1.3); border-color:rgba(var(--proj-rgb),.5); }

/* ── EMPTY STATE ── */
.empty-state { padding:70px 20px; text-align:center; color:var(--text-dim); display:none; }
.empty-icon { font-size:52px; margin-bottom:20px; opacity:.4; }
.empty-state p { font-size:15px; }
.empty-state p+p { margin-top:8px; font-size:13px; color:var(--text-muted); }

/* ── OVERLAY ── */
.overlay { position:fixed; inset:0; background:rgba(0,0,0,.72); backdrop-filter:blur(5px); display:flex; align-items:center; justify-content:center; z-index:500; opacity:0; pointer-events:none; transition:opacity .2s; }
.overlay.open { opacity:1; pointer-events:all; }

/* ── MODAL ── */
.modal { background:var(--bg-panel); border:1px solid var(--border-bright); border-radius:16px; padding:30px; width:440px; max-width:94vw; box-shadow:0 24px 80px rgba(0,0,0,.85),0 0 50px var(--glow-a),0 0 0 1px rgba(26,111,255,.08); transform:translateY(22px) scale(.97); transition:transform .22s; }
.overlay.open .modal { transform:translateY(0) scale(1); }
.modal-title { font-family:'Orbitron',sans-serif; font-size:16px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#fff; margin-bottom:24px; padding-bottom:16px; border-bottom:1px solid var(--border); }
.form-row { margin-bottom:16px; }
.form-label { display:block; font-size:10px; text-transform:uppercase; letter-spacing:2px; color:var(--text-dim); margin-bottom:8px; }
.form-input { width:100%; background:rgba(255,255,255,.04); border:1px solid var(--border); border-radius:8px; padding:11px 14px; color:var(--text); font-family:'Exo 2',sans-serif; font-size:15px; transition:border-color .18s,background .18s; }
.form-input:focus { outline:none; border-color:var(--accent); background:rgba(26,111,255,.07); }
.form-hint { font-size:11px; color:var(--text-muted); margin-top:5px; }
.modal-actions { display:flex; gap:12px; justify-content:flex-end; margin-top:24px; }

/* ── CONFIRM MODAL ── */
.confirm-modal { background:var(--bg-panel); border:1px solid var(--border-bright); border-radius:16px; padding:28px; width:360px; max-width:90vw; box-shadow:0 24px 80px rgba(0,0,0,.85),0 0 40px var(--glow-a),0 0 0 1px rgba(26,111,255,.08); transform:translateY(22px) scale(.97); transition:transform .22s; }
.overlay.open .confirm-modal { transform:translateY(0) scale(1); }
.confirm-icon { width:48px; height:48px; border-radius:12px; margin:0 auto 18px; background:linear-gradient(135deg,rgba(26,111,255,.15),rgba(0,212,255,.1)); border:1px solid var(--border-bright); display:flex; align-items:center; justify-content:center; }
.confirm-title { font-family:'Orbitron',sans-serif; font-size:15px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:#fff; text-align:center; margin-bottom:10px; }
.confirm-text { font-size:13px; color:var(--text-dim); text-align:center; line-height:1.6; margin-bottom:22px; }
.confirm-year { color:var(--highlight); font-weight:700; }
.confirm-actions { display:flex; gap:10px; }
.confirm-actions .btn { flex:1; justify-content:center; }
.btn-confirm-del { background:linear-gradient(135deg,rgba(26,111,255,.25),rgba(0,212,255,.15)); color:var(--highlight); border:1px solid rgba(0,212,255,.35); font-family:'Exo 2',sans-serif; font-size:12px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; border-radius:8px; padding:10px; cursor:pointer; flex:1; transition:all .18s; }
.btn-confirm-del:hover { background:linear-gradient(135deg,rgba(26,111,255,.4),rgba(0,212,255,.25)); box-shadow:0 0 16px var(--glow-a); }

/* ── INFO CARD ── */
.info-card { background:rgba(26,111,255,.06); border:1px solid rgba(26,111,255,.2); border-radius:10px; padding:16px 18px; font-size:13px; line-height:1.65; color:var(--text-dim); box-shadow:0 0 16px rgba(26,111,255,.06); }
.info-card b { color:var(--highlight); }
.info-card p+p { margin-top:12px; }
