/* ---------- app shell (role / login / boat screens) ---------- */
.screen{display:none;min-height:100vh;}
.screen.active{display:block;}
.auth-topbar{display:flex;align-items:center;gap:11px;padding:18px 22px;}
.auth-topbar .logo{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,#33a2c1,#5794f2);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#0b0c0e;flex:none;}
.auth-topbar .brandtext b{display:block;font-size:15px;color:var(--text);}
.auth-topbar .brandtext span{display:block;font-size:11.5px;color:var(--text-faint);}

.auth-center{max-width:980px;margin:0 auto;padding:26px 22px 60px;}
.auth-head{text-align:center;margin:18px 0 34px;}
.auth-head h1{font-size:22px;margin:0 0 8px;color:var(--text);font-weight:600;}
.auth-head p{font-size:13.5px;color:var(--text-secondary);margin:0;}

/* role cards */
.role-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.role-card{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:6px;padding:22px 18px;cursor:pointer;text-align:left;transition:border-color .15s,transform .15s;}
.role-card:hover{border-color:var(--teal);transform:translateY(-2px);}
.role-card .ric{width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.role-card .ric svg{width:19px;height:19px;}
.role-card h3{font-size:15px;margin:0 0 6px;color:var(--text);}
.role-card p{font-size:12px;color:var(--text-secondary);line-height:1.5;margin:0;}

/* login */
.auth-card{max-width:400px;margin:40px auto 0;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:6px;padding:30px 28px;}
.auth-card .role-tag{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:var(--teal);background:rgba(51,162,193,.12);border-radius:9px;padding:4px 10px;margin-bottom:18px;}
.auth-field{margin-bottom:16px;}
.auth-field label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:6px;}
.auth-field input{width:100%;background:#0f1113;border:1px solid var(--panel-border);border-radius:4px;padding:10px 12px;color:var(--text);font-size:13.5px;}
.auth-field input:focus{outline:none;border-color:var(--teal);}
.auth-error{font-size:12px;color:var(--red);margin:-4px 0 14px;display:none;}
.auth-error.show{display:block;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--teal);color:#0b0c0e;border:none;border-radius:4px;padding:10px 18px;font-size:13.5px;font-weight:600;cursor:pointer;width:100%;}
.btn:hover{background:#3cb4d0;}
.btn-link{background:none;border:none;color:var(--text-faint);font-size:12px;cursor:pointer;padding:0;text-decoration:underline;}
.auth-back{margin-top:16px;text-align:center;}
.auth-hint{font-size:11px;color:var(--text-faint);margin-top:16px;text-align:center;line-height:1.5;}

/* boat grid */
.boat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;}
.boat-card{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:6px;padding:16px 14px;text-align:center;cursor:pointer;}
.boat-card:hover{border-color:var(--teal);}
.boat-card .bic{width:34px;height:34px;border-radius:50%;background:#1f2226;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;}
.boat-card .bic svg{width:16px;height:16px;color:var(--teal);}
.boat-card h4{font-size:13px;margin:0 0 4px;color:var(--text);}
.boat-card .btag{font-size:10.5px;color:var(--green);}
.boat-card.locked{cursor:not-allowed;opacity:.5;}
.boat-card.locked .bic{background:#1a1c1f;}
.boat-card.locked .bic svg{color:var(--text-faint);}
.boat-card.locked .btag{color:var(--text-faint);}

/* dashboard screen top controls */
.dash-nav{display:flex;align-items:center;gap:10px;}
.dash-nav .navbtn{background:#1f2226;border:1px solid var(--panel-border);color:var(--text-secondary);border-radius:4px;padding:6px 12px;font-size:12px;cursor:pointer;}
.dash-nav .navbtn:hover{color:var(--text);border-color:var(--teal);}

@media (max-width:900px){
  .role-grid{grid-template-columns:repeat(2,1fr);}
  .boat-grid{grid-template-columns:repeat(2,1fr);}
}
