/* =====================================================================
   Guardify · App-CSS (Login / Signup / Dashboard / Invite)
   ===================================================================== */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#060810;--bg2:#0c0f1a;--bg3:#111623;--card:#141926;
  --border:#1e2535;--border2:#2a3347;
  --acc:#00ffa3;--acc2:#00d4ff;--acc3:#7c6af7;
  --txt:#e8eaf6;--txt2:#8892b0;--txt3:#4a5568;
  --danger:#ff4757;--warn:#ffa502;--ok:#00ffa3;
  --display:'Syne',sans-serif;--body:'DM Sans',sans-serif;--mono:'JetBrains Mono',monospace;
}
html,body{height:100%}
body{font-family:var(--body);background:var(--bg);color:var(--txt);min-height:100vh}
body::before{content:'';position:fixed;inset:0;background-image:linear-gradient(rgba(0,255,163,.015) 1px,transparent 1px),linear-gradient(90deg,rgba(0,255,163,.015) 1px,transparent 1px);background-size:60px 60px;pointer-events:none;z-index:0}
a{color:var(--acc);text-decoration:none}
a:hover{text-decoration:underline}

/* NAV */
.app-nav{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.5rem;border-bottom:1px solid var(--border);background:rgba(6,8,16,.92);backdrop-filter:blur(12px)}
.brand{font-family:var(--display);font-weight:800;font-size:1.2rem;letter-spacing:-.02em;display:flex;align-items:center;gap:8px;color:var(--txt);text-decoration:none}
.brand-icon{width:28px;height:28px;background:var(--acc);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;color:#060810;font-weight:800}
.brand span{color:var(--acc)}
.nav-right{display:flex;align-items:center;gap:1rem}
.nav-link{color:var(--txt2);font-size:.85rem;cursor:pointer;background:none;border:none;font-family:var(--body)}
.nav-link:hover{color:var(--acc)}

/* AUTH CARD */
.auth-wrap{min-height:calc(100vh - 64px);display:flex;align-items:center;justify-content:center;padding:2rem 1rem;position:relative;z-index:1}
.auth-card{width:100%;max-width:440px;background:var(--card);border:1px solid var(--border2);border-radius:18px;padding:2.25rem 2rem;box-shadow:0 30px 80px rgba(0,0,0,.4)}
.auth-title{font-family:var(--display);font-size:1.6rem;font-weight:800;letter-spacing:-.02em;margin-bottom:.4rem}
.auth-sub{color:var(--txt2);font-size:.9rem;margin-bottom:1.6rem}

.field{margin-bottom:1rem}
.field label{display:block;font-size:.78rem;color:var(--txt2);margin-bottom:6px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em}
.input{width:100%;background:var(--bg2);border:1px solid var(--border2);border-radius:10px;padding:11px 14px;color:var(--txt);font-family:var(--body);font-size:.95rem;transition:all .2s}
.input:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px rgba(0,255,163,.12)}
.input[disabled]{opacity:.6;cursor:not-allowed}

.btn{width:100%;font-family:var(--display);font-weight:700;font-size:.95rem;color:#060810;background:var(--acc);border:none;padding:13px 18px;border-radius:10px;cursor:pointer;transition:all .2s;letter-spacing:-.01em}
.btn:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 12px 28px rgba(0,255,163,.25)}
.btn[disabled]{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}
.btn-ghost{background:transparent;color:var(--txt);border:1px solid var(--border2)}
.btn-ghost:hover{border-color:var(--acc);color:var(--acc);box-shadow:none}
.btn-danger{background:var(--danger);color:#fff}

.auth-foot{margin-top:1.4rem;text-align:center;font-size:.85rem;color:var(--txt2)}
.msg{margin-top:1rem;padding:10px 14px;border-radius:10px;font-size:.85rem;display:none}
.msg.show{display:block}
.msg.err{background:rgba(255,71,87,.1);border:1px solid rgba(255,71,87,.35);color:#ffb3bb}
.msg.ok {background:rgba(0,255,163,.08);border:1px solid rgba(0,255,163,.3);color:var(--acc)}

/* DASHBOARD */
.dash{max-width:1200px;margin:0 auto;padding:2rem 1.5rem;position:relative;z-index:1}
.dash-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}
.dash-title{font-family:var(--display);font-size:2rem;font-weight:800;letter-spacing:-.02em}
.dash-title small{display:block;font-family:var(--body);font-weight:400;color:var(--txt2);font-size:.95rem;margin-top:4px}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}
.kpi{background:var(--card);border:1px solid var(--border2);border-radius:14px;padding:1.2rem 1.3rem}
.kpi-l{font-family:var(--mono);font-size:.7rem;color:var(--txt3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.kpi-v{font-family:var(--display);font-size:1.8rem;font-weight:800;letter-spacing:-.02em}
.kpi-v span{color:var(--acc)}

.panel{background:var(--card);border:1px solid var(--border2);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem}
.panel h2{font-family:var(--display);font-size:1.15rem;font-weight:700;margin-bottom:.25rem}
.panel .panel-sub{color:var(--txt2);font-size:.85rem;margin-bottom:1.2rem}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}

table.tbl{width:100%;border-collapse:collapse;font-size:.9rem}
.tbl th{font-family:var(--mono);font-size:.7rem;color:var(--txt3);text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}
.tbl td{padding:12px 10px;border-bottom:1px solid var(--border);color:var(--txt)}
.tbl tr:last-child td{border-bottom:none}
.tag{display:inline-block;font-family:var(--mono);font-size:.7rem;padding:3px 8px;border-radius:5px;border:1px solid var(--border2);color:var(--txt2)}
.tag.admin{color:var(--acc);border-color:rgba(0,255,163,.35);background:rgba(0,255,163,.08)}
.tag.pending{color:var(--warn);border-color:rgba(255,165,2,.35);background:rgba(255,165,2,.08)}
.tag.done{color:var(--acc);border-color:rgba(0,255,163,.35);background:rgba(0,255,163,.08)}
.tag.overdue{color:var(--danger);border-color:rgba(255,71,87,.4);background:rgba(255,71,87,.1)}
.tag.inprog{color:var(--acc2);border-color:rgba(0,212,255,.35);background:rgba(0,212,255,.08)}

/* Tabs */
.tabs{display:flex;gap:.4rem;margin-bottom:1rem;border-bottom:1px solid var(--border);flex-wrap:wrap}
.tab-btn{background:none;border:none;color:var(--txt2);font-family:var(--mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;padding:10px 14px;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}
.tab-btn:hover{color:var(--txt)}
.tab-btn.active{color:var(--acc);border-bottom-color:var(--acc)}
.tab-pane{display:none}
.tab-pane.active{display:block}

/* Progress-Bar */
.pbar{height:8px;background:var(--bg2);border:1px solid var(--border);border-radius:4px;overflow:hidden;min-width:120px}
.pbar-fill{height:100%;background:linear-gradient(90deg,var(--acc),var(--acc2));transition:width .3s}
.pbar-row{display:flex;align-items:center;gap:.7rem}
.pbar-num{font-family:var(--mono);font-size:.78rem;color:var(--txt2);white-space:nowrap}

/* Checkbox-Liste für Mitarbeiter-Auswahl */
.checklist{max-height:180px;overflow-y:auto;background:var(--bg2);border:1px solid var(--border2);border-radius:10px;padding:.6rem .8rem}
.checklist label{display:flex;align-items:center;gap:.6rem;padding:6px 4px;font-size:.88rem;color:var(--txt);cursor:pointer;border-radius:6px}
.checklist label:hover{background:rgba(255,255,255,.03)}
.checklist input[type=checkbox]{accent-color:var(--acc);width:16px;height:16px;cursor:pointer}
.checklist-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-family:var(--mono);font-size:.7rem;color:var(--txt3);text-transform:uppercase;letter-spacing:.06em}
.checklist-head a{font-size:.75rem;cursor:pointer}

/* Assignment-Form-Layout */
.assign-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
@media(max-width:720px){.assign-grid{grid-template-columns:1fr}}

/* Mitarbeiter-Aufgaben-Karten */
.task-list{display:grid;gap:.7rem}
.task{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--bg2);border:1px solid var(--border2);border-radius:12px;padding:1rem 1.2rem;flex-wrap:wrap}
.task.overdue{border-color:rgba(255,71,87,.45)}
.task.done{opacity:.7}
.task-l{flex:1;min-width:200px}
.task-title{font-family:var(--display);font-weight:700;font-size:1rem;margin-bottom:4px}
.task-meta{font-size:.78rem;color:var(--txt2);font-family:var(--mono)}
.task-r{display:flex;align-items:center;gap:.6rem}

.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.btn-sm{width:auto;padding:8px 14px;font-size:.8rem}
.empty{color:var(--txt3);font-size:.9rem;padding:1rem 0;text-align:center}
.copy-link{font-family:var(--mono);font-size:.75rem;color:var(--acc2);background:var(--bg2);border:1px solid var(--border);padding:4px 8px;border-radius:6px;cursor:pointer;word-break:break-all}
.copy-link:hover{border-color:var(--acc2)}

@media(max-width:640px){
  .auth-card{padding:1.6rem 1.3rem}
  .dash-title{font-size:1.6rem}
}

/* ===== Signup: Plan & Payment Selection ===== */
.signup-card{max-width:620px}
.section-head{font-family:var(--mono);font-size:.68rem;color:var(--txt3);letter-spacing:.14em;text-transform:uppercase;margin:1.8rem 0 .8rem;display:flex;align-items:center;gap:.6rem}
.section-head::before{content:'';flex:0 0 18px;height:1px;background:var(--acc);opacity:.7}
.section-head::after{content:'';flex:1;height:1px;background:var(--border)}

/* Plan cards — mirrors #pricing on index.html */
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border-radius:14px;overflow:hidden;margin-bottom:.25rem;border:1px solid var(--border)}
.plan-opt{background:var(--bg2);border:none;padding:1.4rem 1rem 1.2rem;cursor:pointer;transition:background .2s,transform .2s;text-align:left;position:relative;color:var(--txt);font-family:var(--body);overflow:hidden}
.plan-opt:hover{background:var(--bg3)}
.plan-opt .plan-name{font-family:var(--mono);font-size:.62rem;color:var(--txt3);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.7rem}
.plan-opt .plan-amount{font-family:var(--display);font-size:1.5rem;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--txt);margin-bottom:.2rem}
.plan-opt .plan-amount small{font-size:.7rem;font-weight:400;color:var(--txt2);font-family:var(--body)}
.plan-opt .plan-extra{font-family:var(--mono);font-size:.62rem;color:var(--txt2);margin-top:.45rem;padding-top:.55rem;border-top:1px solid var(--border)}
.plan-opt.featured{background:var(--card)}
.plan-opt.featured::before{content:'BELIEBT';position:absolute;top:0;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:.55rem;letter-spacing:.14em;color:#060810;background:var(--acc);padding:3px 10px;border-radius:0 0 5px 5px;font-weight:700}
.plan-opt.sel{background:rgba(0,255,163,.07);box-shadow:inset 0 0 0 2px var(--acc)}
.plan-opt.sel .plan-name{color:var(--acc)}
.plan-opt.sel::after{content:'✓';position:absolute;top:10px;right:12px;width:18px;height:18px;border-radius:50%;background:var(--acc);color:#060810;font-family:var(--mono);font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center}

/* Payment method tabs — match tab-btn / price-card ghost style */
.pay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;margin-bottom:0}
.pay-opt{background:var(--bg2);border:1px solid var(--border2);border-radius:12px;padding:1rem .5rem;cursor:pointer;transition:all .2s;text-align:center;position:relative;color:var(--txt2);font-family:var(--display);font-weight:700;font-size:.82rem;letter-spacing:-.01em}
.pay-opt:hover{border-color:var(--acc);color:var(--txt);transform:translateY(-1px)}
.pay-opt .pay-icon{display:block;font-size:1.35rem;margin-bottom:.4rem;filter:grayscale(1);opacity:.75;transition:all .2s}
.pay-opt:hover .pay-icon{filter:none;opacity:1}
.pay-opt.sel{border-color:var(--acc);background:rgba(0,255,163,.06);color:var(--txt);box-shadow:0 0 0 3px rgba(0,255,163,.12)}
.pay-opt.sel .pay-icon{filter:none;opacity:1}
.pay-opt.sel::after{content:'';position:absolute;bottom:-1px;left:50%;transform:translateX(-50%);width:28px;height:2px;background:var(--acc);border-radius:2px}

.pay-fields{margin-top:1rem;padding:1.1rem 1rem;background:var(--bg2);border:1px solid var(--border2);border-radius:12px;position:relative}
.pay-fields::before{content:'';position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(45deg);width:10px;height:10px;background:var(--bg2);border-left:1px solid var(--border2);border-top:1px solid var(--border2)}
.pay-fields .field{margin-bottom:.7rem}
.pay-fields .field:last-child{margin-bottom:0}
.pay-row{display:grid;grid-template-columns:2fr 1fr;gap:.6rem}

.pay-note{font-family:var(--mono);font-size:.65rem;color:var(--txt3);margin-top:.6rem;text-align:center;letter-spacing:.04em}
.pay-note span{color:var(--acc2)}

/* Summary — styled like a console readout */
.summary-box{margin-top:1.2rem;padding:1.1rem 1.2rem;background:linear-gradient(135deg,rgba(0,255,163,.06),rgba(0,212,255,.04));border:1px solid var(--border2);border-radius:14px;position:relative;overflow:hidden}
.summary-box::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;background:linear-gradient(180deg,var(--acc),var(--acc2))}
.summary-row{display:flex;justify-content:space-between;align-items:center}
.summary-label{font-family:var(--mono);font-size:.65rem;color:var(--txt3);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.3rem}
.summary-val{font-family:var(--display);font-size:1.6rem;font-weight:800;letter-spacing:-.03em;color:var(--txt);line-height:1}
.summary-val small{font-size:.7rem;font-weight:400;color:var(--txt2);font-family:var(--body)}
.summary-pill{font-family:var(--mono);font-size:.6rem;color:var(--acc);background:rgba(0,255,163,.1);border:1px solid rgba(0,255,163,.3);padding:4px 10px;border-radius:999px;letter-spacing:.1em;text-transform:uppercase}

.field-check{display:flex;align-items:flex-start;gap:.6rem;font-size:.8rem;color:var(--txt2);margin-top:1.2rem;line-height:1.5;background:var(--bg2);border:1px solid var(--border);padding:.85rem 1rem;border-radius:10px}
.field-check input{margin-top:3px;accent-color:var(--acc);width:15px;height:15px;cursor:pointer}
.field-check a{color:var(--acc)}

@media(max-width:620px){
  .plan-grid{grid-template-columns:1fr}
  .pay-grid{grid-template-columns:1fr}
  .pay-row{grid-template-columns:1fr}
  .signup-card{padding:1.6rem 1.2rem}
}
