/* =====================================================================
   CIC Apps | assets/apps.css
   One page, every system.
   ===================================================================== */
:root{
  --teal:#0B4D4A; --teal-d:#063B39; --gold:#D4A820; --cream:#F5F1E8;
  --ink:#1A2421; --line:#E5E0D4; --muted:#6B7A75; --white:#fff;
  --shadow:0 1px 3px rgba(11,36,33,.06), 0 10px 30px rgba(11,36,33,.07);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--cream);color:var(--ink);
  font:15px/1.65 Arial,Helvetica,sans-serif;
  display:flex;flex-direction:column;min-height:100vh}
@supports(min-height:100dvh){body{min-height:100dvh}}
a{color:inherit}

/* --- the band across the top ---------------------------------------- */
.ca-top{background:linear-gradient(155deg,var(--teal),var(--teal-d) 60%,#0A5F5A);
  color:#fff;position:relative;overflow:hidden}
.ca-staff .ca-top{background:linear-gradient(155deg,#123D2B,#0C2A1E 60%,#1A5C3F)}

.ca-top-in{display:flex;align-items:center;justify-content:space-between;gap:18px;
  max-width:1080px;margin:0 auto;padding:16px 22px;position:relative;z-index:3}
.ca-brand img{height:38px;width:auto;display:block}

.ca-tabs{display:flex;gap:5px;background:rgba(255,255,255,.13);border-radius:24px;padding:4px}
.ca-tabs a{padding:8px 18px;border-radius:22px;text-decoration:none;font:700 13.5px Arial;
  color:rgba(255,255,255,.78)}
.ca-tabs a:hover{color:#fff}
.ca-tabs a.on{background:#fff;color:var(--teal)}
.ca-staff .ca-tabs a.on{color:#123D2B}

/* --- the greeting, over the photographs ------------------------------ */
.ca-hero{position:relative;max-width:1080px;margin:0 auto;padding:34px 22px 46px;
  min-height:180px;display:flex;align-items:flex-end;z-index:2}
.ca-hero-shots{position:absolute;inset:0;z-index:0;overflow:hidden}
.ca-hero-shots img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:center 34%;opacity:0;transition:opacity 1.8s ease-in-out}
.ca-hero-shots img.on{opacity:.34}
.ca-hero::after{content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(11,77,74,.72),rgba(11,77,74,.28) 60%,transparent)}
.ca-staff .ca-hero::after{
  background:linear-gradient(90deg,rgba(18,61,43,.74),rgba(18,61,43,.30) 60%,transparent)}
.ca-hero-words{position:relative;z-index:2}
.ca-hero h1{font:700 30px/1.2 Georgia,serif;margin:0 0 6px}
.ca-hero p{margin:0;font-size:15px;color:rgba(255,255,255,.85)}
.ca-plain .ca-hero{display:none}

/* --- the tiles -------------------------------------------------------- */
.ca-main{flex:1;max-width:1080px;margin:0 auto;width:100%;padding:34px 22px 40px}
.ca-h{font:700 24px Georgia,serif;color:var(--teal);margin:0 0 4px}

.ca-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}

.ca-tile{display:flex;align-items:center;gap:15px;background:var(--white);
  border:1px solid var(--line);border-left:5px solid var(--tile,var(--teal));
  border-radius:14px;padding:18px 18px;text-decoration:none;
  box-shadow:var(--shadow);transition:transform .14s ease,box-shadow .14s ease}
.ca-tile:hover{transform:translateY(-3px);
  box-shadow:0 2px 6px rgba(11,36,33,.07),0 16px 36px rgba(11,36,33,.14)}
.ca-tile:active{transform:translateY(-1px)}

.ca-tile-icon{flex:0 0 auto;width:50px;height:50px;border-radius:13px;
  background:var(--tile,var(--teal));color:#fff;display:grid;place-items:center}
.ca-tile-body{flex:1;min-width:0}
.ca-tile-body b{display:block;font:700 16px Georgia,serif;color:var(--ink);
  margin-bottom:3px}
.ca-tile-body small{display:block;font-size:12.8px;line-height:1.6;color:var(--muted)}
.ca-tile-go{flex:0 0 auto;color:var(--line);transition:color .14s,transform .14s}
.ca-tile:hover .ca-tile-go{color:var(--tile,var(--teal));transform:translateX(3px)}

.ca-note{margin:26px 0 0;font-size:13.5px;color:var(--muted);text-align:center}
.ca-note a{color:var(--teal);font-weight:700}
.ca-staff .ca-note a{color:#123D2B}

/* --- the compliance gate ---------------------------------------------- */
.ca-gate{max-width:420px;margin:26px auto;background:var(--white);border:1px solid var(--line);
  border-radius:18px;padding:34px 32px;box-shadow:var(--shadow);text-align:center}
.ca-gate h1{font:700 23px Georgia,serif;color:var(--teal);margin:0 0 6px}
.ca-gate p{color:var(--muted);font-size:13.5px;margin:0 0 20px}
.ca-gate label{display:block;text-align:left;font:700 11px Arial;letter-spacing:.9px;
  text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.ca-gate input{width:100%;padding:14px 16px;font-size:16px;border:1.5px solid var(--line);
  border-radius:12px;background:#F8F6F1}
.ca-gate input:focus{outline:2px solid rgba(11,77,74,.22);border-color:var(--teal);
  background:#fff}
.ca-gate button{width:100%;margin-top:18px;padding:15px;font:700 16px Arial;color:#fff;
  background:var(--teal);border:0;border-radius:12px;cursor:pointer}
.ca-gate-note{margin-top:16px;font-size:12.5px}
.ca-err{background:#FFF5F5;border-left:3px solid #8B1A1A;color:#8B1A1A;border-radius:0 8px 8px 0;
  padding:10px 13px;font-size:13.5px;margin-bottom:16px;text-align:left}

/* --- the foot --------------------------------------------------------- */
.ca-foot{background:var(--ink);color:rgba(255,255,255,.68);font-size:12px;line-height:1.7;
  padding:20px 22px;display:flex;gap:20px;justify-content:space-between;flex-wrap:wrap}
.ca-foot b{display:block;color:#fff;font:700 13px Georgia,serif;margin-bottom:3px}
.ca-foot-r{display:flex;flex-direction:column;gap:3px;text-align:right}
.ca-foot a{color:var(--gold);text-decoration:none}
.ca-foot a:hover{text-decoration:underline}

@media(max-width:720px){
  .ca-top-in{flex-direction:column;align-items:flex-start;gap:12px;padding:14px 16px}
  .ca-tabs{width:100%}
  .ca-tabs a{flex:1;text-align:center}
  .ca-hero{padding:26px 16px 32px;min-height:150px}
  .ca-hero h1{font-size:24px}
  .ca-main{padding:24px 16px 32px}
  .ca-grid{grid-template-columns:1fr;gap:12px}
  .ca-tile{padding:15px}
  .ca-tile-icon{width:44px;height:44px;border-radius:12px}
  .ca-foot{flex-direction:column}
  .ca-foot-r{text-align:left}
}

@media(prefers-reduced-motion:reduce){
  .ca-tile,.ca-tile-go{transition:none}
  .ca-hero-shots img{transition:opacity .3s linear}
}

/* One side per address, so the tabs are gone and a quiet label
   remains to say which page somebody is on. */
.ca-who{font:700 12px Arial;letter-spacing:1.4px;text-transform:uppercase;
  color:rgba(255,255,255,.72);background:rgba(255,255,255,.13);
  border-radius:22px;padding:8px 18px}

/* The band is wide and short, so the photograph is now cut for that
   shape rather than being a tall crop squeezed sideways. */
.ca-hero-shots img{object-position:center 40%}
.ca-hero-shots img.on{opacity:.42}
.ca-hero{min-height:210px}
@media(max-width:720px){
  .ca-hero{min-height:170px}
  .ca-hero-shots img.on{opacity:.34}
}

/* Language, and the label saying which side this is */
.ca-top-r{display:flex;align-items:center;gap:10px}
.ca-lang{display:flex;gap:2px;background:rgba(255,255,255,.13);border-radius:20px;padding:3px}
.ca-lang a{padding:5px 11px;border-radius:18px;text-decoration:none;font:700 11.5px Arial;
  color:rgba(255,255,255,.7)}
.ca-lang a.on{background:#fff;color:var(--teal)}
.ca-staff .ca-lang a.on{color:#123D2B}

/* The next intake, on the student side */
.ca-intake{margin:12px 0 0 !important;display:inline-block;
  background:rgba(255,255,255,.16);border-radius:22px;padding:7px 16px;font-size:13px}
.ca-intake b{color:var(--gold)}

/* Is it answering? */
.ca-dot{width:8px;height:8px;border-radius:50%;background:var(--line);flex:0 0 auto;
  margin-right:2px;align-self:flex-start;margin-top:4px}
.ca-dot.is-ok{background:#16A34A}
.ca-dot.is-slow{background:#D4A820}
.ca-dot.is-down{background:#8B1A1A;
  animation:cadot 1.6s ease-in-out infinite}
@keyframes cadot{50%{opacity:.35}}

/* Somewhere to ask */
.ca-tile-help{background:#F7FBF9}
.ca-tile-help .ca-tile-body small{color:#4A5B57}

/* Adding it to the home screen */
.ca-install{position:fixed;left:14px;right:14px;bottom:14px;z-index:60;
  background:var(--ink);color:#fff;border-radius:16px;padding:15px 18px;
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  box-shadow:0 12px 40px rgba(0,0,0,.35);max-width:520px;margin:0 auto}
.ca-install[hidden]{display:none}
.ca-install b{display:block;font:700 14.5px Georgia,serif}
.ca-install small{display:block;font-size:12.5px;color:rgba(255,255,255,.72);
  line-height:1.6;margin-top:3px}
.ca-install-b{margin-left:auto;display:flex;gap:8px}
.ca-install button{background:var(--gold);color:var(--ink);border:0;border-radius:22px;
  padding:9px 18px;font:700 13px Arial;cursor:pointer}
.ca-install button.quiet{background:transparent;color:rgba(255,255,255,.65)}
.ca-install button.quiet:hover{color:#fff}
@media(max-width:520px){
  .ca-install{flex-direction:column;align-items:flex-start}
  .ca-install-b{margin-left:0;width:100%}
  .ca-install button{flex:1}
}

/* The intake, and how close it is */
.ca-intake.soon{background:rgba(212,168,32,.25)}
.ca-intake.soon b{color:#FFE9A8}
.ca-intake.now{background:rgba(22,163,74,.3)}
.ca-intake.now b{color:#BBF7D0}
