:root{
  --bg:#000; --panel:#0a0a0a; --line:#262626; --ink:#f2f2f0; --ink2:#9a9a95; --muted:#6b6b67;
  --focus:#fff; --danger:#e5645a; --font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font:15px/1.55 var(--font);-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:inherit}
h1,h2,h3,p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:1.5px solid var(--focus);outline-offset:2px}
.wrap{max-width:920px;margin:0 auto;padding-inline:20px}

/* cabecera del área privada */
.priv-top{border-bottom:1px solid var(--line);padding:18px 0}
.priv-top .row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.priv-top .brand{font-weight:600;letter-spacing:.02em;text-decoration:none;font-size:15px}
.priv-nav{display:flex;gap:4px;flex-wrap:wrap;margin-top:14px}
.priv-nav a{text-decoration:none;color:var(--ink2);font-size:13px;letter-spacing:.03em;text-transform:uppercase;padding:7px 12px;border:1px solid var(--line);border-radius:999px}
.priv-nav a:hover{color:var(--ink);border-color:var(--ink2)}
.priv-nav a.on{color:#000;background:var(--ink);border-color:var(--ink)}
.logout{color:var(--muted);text-decoration:none;font-size:12.5px}
.logout:hover{color:var(--ink)}

main{padding-block:28px 60px}
.card{border:1px solid var(--line);border-radius:14px;padding:20px;background:var(--panel)}
.card + .card{margin-top:16px}
.card h2{font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);font-weight:600}
.hint{color:var(--muted);font-size:13px;margin-top:6px}

.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.modgrid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:8px}
.modcard{display:block;border:1px solid var(--line);border-radius:12px;padding:16px;text-decoration:none;color:var(--ink)}
.modcard:hover{border-color:var(--ink)}
.modcard b{display:block;font-size:14.5px;margin-bottom:4px}
.modcard span{color:var(--muted);font-size:12.5px}

/* objetivos */
.obj-cols{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:10px}
.obj-col h3{font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);font-weight:600;margin-bottom:10px}
.obj-card{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13.5px;display:flex;justify-content:space-between;gap:8px;align-items:flex-start;margin-bottom:8px}
.obj-card.done{opacity:.45;text-decoration:line-through}
.obj-card form{margin:0}
.obj-del{background:none;border:0;color:var(--muted);cursor:pointer;font-size:12px;padding:0 0 0 6px}
.obj-del:hover{color:var(--danger)}
.obj-add{display:flex;gap:6px;margin-top:4px}
.obj-add input{flex:1}

input[type=text],input[type=password],textarea,select{width:100%;background:#050505;border:1px solid var(--line);border-radius:8px;padding:9px 11px;color:var(--ink)}
input:focus,textarea:focus,select:focus{border-color:var(--ink2)}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink);background:var(--ink);color:#000;border-radius:8px;padding:9px 16px;font-weight:600;font-size:13.5px;cursor:pointer;text-decoration:none}
.btn:hover{opacity:.88}
.btn.ghost{background:none;color:var(--ink);border-color:var(--line)}
.btn.sm{padding:6px 12px;font-size:12.5px}
.error{color:var(--danger);font-size:13.5px;margin-top:10px}
.empty{color:var(--muted);font-size:13.5px}

/* login / setup */
.authbox{max-width:340px;margin:14vh auto 0;padding-inline:20px}
.authbox .card{padding:26px 24px}
.authbox label{display:block;font-size:12.5px;color:var(--ink2);margin-bottom:6px;margin-top:14px}
.authbox label:first-of-type{margin-top:0}
.authbox .btn{width:100%;margin-top:20px}
.authbox h1{font-size:15px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.authbox p.sub{color:var(--muted);font-size:13px;margin-top:6px}
.back{display:inline-block;margin-top:18px;color:var(--muted);font-size:13px;text-decoration:none}
.back:hover{color:var(--ink)}
