/* /var/www/flightschool/assets/app.css — Flight School Desk · apps instructor y alumno (teléfono, tablet y web) */
:root{--navy:#0f2a4d;--ink:#0c1a2c;--muted:#5a6b81;--line:#d3dce7;--accent:#1e6bd0;--sunk:#f3f6fa;--bg:#eaeff5;--ok:#17804e;--okbg:#e3f4ea;--warn:#8a5a00;--warnbg:#fbf0dc;--bad:#b8322a;--badbg:#fbe5e3}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);font-family:Archivo,system-ui,sans-serif;color:var(--ink)}
a{color:var(--accent)}a:hover{color:var(--navy)}
[hidden]{display:none!important}
.demobar{background:#06101e;color:#a9bad0;font:600 12px Archivo,system-ui,sans-serif}
.demobar div{max-width:1440px;margin:0 auto;padding:8px 24px;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}
.demobar span{letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.demobar a{color:#a9bad0;text-decoration:none}.demobar a[aria-current]{color:#fff}

/* ---------- shell: teléfono por defecto ---------- */
.app{display:grid;grid-template-columns:minmax(0,1fr);min-height:calc(100vh - 32px)}
.mainc{min-width:0;padding-bottom:88px}
.top{background:var(--navy);color:#e9f0f8}
.top .in{max-width:1100px;margin:0 auto;padding:20px 18px 16px;display:flex;flex-direction:column;gap:12px}
.brand{display:flex;justify-content:space-between;align-items:center}
.brand .lg{display:flex;gap:10px;align-items:center}
.brand img{width:44px;height:auto;display:block}
.brand .nm{font:600 12px 'Barlow Condensed',sans-serif;letter-spacing:.16em;text-transform:uppercase;opacity:.8}
.iconbtn{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:transparent;color:#e9f0f8;display:inline-flex;align-items:center;justify-content:center;position:relative;cursor:pointer}
.dot{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:50%;background:#f0a73a}
.hello{margin:0;font-size:13px;color:#a9bad0}
.h1{margin:2px 0 0;font:700 30px 'Barlow Condensed',sans-serif}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:560px}
.stats div{background:rgba(255,255,255,.07);border-radius:10px;padding:8px 10px}
.stats p{margin:0;font-size:11px;color:#a9bad0}.stats b{display:block;margin-top:2px;font:700 16px 'JetBrains Mono',monospace;color:#fff}
.body{max-width:1100px;margin:0 auto;padding:16px}
.view{display:flex;flex-direction:column;gap:14px}
.cols{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
.stack{display:flex;flex-direction:column;gap:14px;min-width:0}

/* barra inferior en teléfono */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:20;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:6px 4px calc(12px + env(safe-area-inset-bottom))}
.nav .side-brand{display:none}
.nav button{min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:0;color:var(--muted);font:600 11px Archivo,sans-serif;cursor:pointer;position:relative;border-radius:10px}
.nav button[aria-current="page"]{color:var(--accent);font-weight:700}
.badge{position:absolute;top:4px;left:calc(50% + 6px);min-width:16px;height:16px;border-radius:8px;background:#f0a73a;color:#06101e;font:700 10px Archivo,sans-serif;display:flex;align-items:center;justify-content:center;padding:0 4px}

/* tablet */
@media (min-width:640px){
  .body{padding:20px 24px}.top .in{padding:22px 24px 18px}
  .cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* web / tablet horizontal: menú lateral */
@media (min-width:960px){
  .app{grid-template-columns:232px minmax(0,1fr)}
  .mainc{padding-bottom:0}
  .nav{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:4px;padding:18px 12px;border-top:0;border-right:1px solid var(--line);align-self:start;grid-row:1;grid-column:1}
  .nav .side-brand{display:block;font:600 12px 'Barlow Condensed',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:4px 12px 14px}
  .nav button{flex-direction:row;justify-content:flex-start;gap:12px;padding:0 12px;font-size:14px;min-height:46px}
  .nav button[aria-current="page"]{background:#e8f0fc}
  .badge{position:static;margin-left:auto}
  .mainc{grid-column:2;grid-row:1}
  .toast{left:auto!important;right:24px!important;bottom:24px!important;max-width:420px}
}

/* ---------- componentes ---------- */
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px;min-width:0}
.card.hl{border-color:var(--accent)}
.eyebrow{margin:0;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.h2{margin:0;font-size:16px;font-weight:700}
.sub{margin:0;font-size:13px;color:#3d4c60}
.row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font:500 12px 'JetBrains Mono',monospace;background:var(--sunk);border-radius:6px;padding:4px 8px}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:99px;background:#e4ebf4;color:var(--muted);white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pill.ok{background:var(--okbg);color:var(--ok)}.pill.warn{background:var(--warnbg);color:var(--warn)}.pill.bad{background:var(--badbg);color:var(--bad)}.pill.info{background:#dbe8fb;color:#16509c}
.btn{appearance:none;min-height:44px;font:600 14px Archivo,sans-serif;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;padding:0 14px}
.btn:hover{border-color:var(--accent)}
.btn.pri{background:var(--accent);border-color:var(--accent);color:#fff}.btn.full{width:100%}.btn.sm{min-height:36px;font-size:13px}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btns{display:flex;gap:8px}.btns .btn{flex:1}
.point{margin:0;padding:8px 10px;background:var(--sunk);border-radius:8px;font-size:13px}
.av{width:44px;height:44px;border-radius:50%;background:#dbe8fb;color:var(--navy);font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none}
label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:#3d4c60}
select,textarea,input[type=text]{font:400 14px Archivo,sans-serif;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);min-height:44px;width:100%}
textarea{resize:vertical}
.list{display:flex;flex-direction:column;gap:8px}
.item{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;gap:12px;align-items:center}
.item .t{font:700 13px 'JetBrains Mono',monospace;width:52px;flex:none}
.item p{margin:0}.item .m{flex:1;min-width:0}
.tiny{font-size:12px;color:var(--muted);margin:0}
.mono{font-family:'JetBrains Mono',monospace}
.err{margin:0;color:var(--bad);font-size:13px}
.bar{height:10px;border-radius:99px;background:#e4ebf4;overflow:hidden}.bar span{display:block;height:100%;background:var(--accent);border-radius:99px}
.grades{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.g{min-height:44px;border-radius:9px;border:1px solid var(--line);background:var(--sunk);color:#3d4c60;font:700 15px 'JetBrains Mono',monospace;cursor:pointer}
.g[aria-pressed="true"]{border-color:var(--accent);background:var(--accent);color:#fff}
.man{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-bottom:1px solid #e4ebf4}.man:last-child{border-bottom:0}
.flag{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--warn);white-space:nowrap}
.days{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.day{min-height:56px;border-radius:10px;border:1px solid var(--line);background:#fff;cursor:pointer;font:600 12px Archivo,sans-serif;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.day b{font:700 16px 'JetBrains Mono',monospace}
.day[aria-pressed="true"],.slot[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.slot{min-height:44px;border-radius:10px;border:1px solid var(--line);background:var(--sunk);cursor:pointer;font:700 13px 'JetBrains Mono',monospace;color:var(--ink)}
.slot:disabled{background:#fff;color:#a3afbf;text-decoration:line-through;cursor:not-allowed}
.thread{display:flex;flex-direction:column;gap:10px}
.msg{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;max-width:85%}
.msg.me{background:#dbe8fb;border-color:#b9d1f3;align-self:flex-end}
.msgform{display:flex;gap:8px;align-items:flex-end}.msgform label{flex:1}
.toast{position:fixed;left:12px;right:12px;bottom:96px;background:var(--navy);color:#fff;padding:12px 14px;border-radius:12px;font:600 13px Archivo,sans-serif;box-shadow:0 10px 30px rgba(0,0,0,.25);z-index:40}
.sr{position:absolute;left:-9999px}
.foot{background:var(--navy);color:#c9d6e6}
.foot .in{max-width:1440px;margin:0 auto;padding:24px 24px 110px;display:flex;flex-wrap:wrap;gap:16px 40px;justify-content:space-between;align-items:flex-start;font-size:13px}
@media (min-width:960px){.foot .in{padding-bottom:24px}}
.foot img{width:88px;height:auto;display:block}
.foot p{margin:0}
