/* rgalarcia.com common identity for the apps (meetings, routines, accounts).
   Source of truth for the look: the website theme rga-academic (style.css tokens, header, buttons).
   Served by each app's nginx at /_rga/ (alias /srv/rga-ui/). Change here = all apps change.
   Page-specific CSS stays in the apps; the old app variable names are kept as aliases below. */

/* ---------- fonts (self-hosted IBM Plex, same files as the website) ---------- */
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-sans-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-sans-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibm-plex-sans-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibm-plex-sans-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/ibm-plex-sans-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/ibm-plex-sans-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-latin-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-latin-ext-400-italic.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Serif';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-serif-latin-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Serif';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-serif-latin-ext-400-italic.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---------- tokens: identical to the website ---------- */
:root{
  --paper:#f6f4ef;--card:#fffefb;--ink:#15253f;--muted:#5e697b;--line:#d9d2c3;--soft:#ece7dc;
  --grid:rgba(34,99,173,.05);--blue:#2263ad;--blue-soft:#e6eef8;--navy:#11284a;
  --amber:#e9a53f;--amber-ink:#a8701a;--rbf:#d33a4b;--green:#2fbf71;--bar:#11284a;--bar-ink:#cfe0f5;
  --mono:'IBM Plex Mono',ui-monospace,monospace;--sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji';
  --serif:'IBM Plex Serif',Georgia,serif;--r:8px;--shadow:0 8px 24px rgba(21,37,63,.06);
  --logo-ink:#11284a;--logo-line:#2263ad;--logo-accent:#e9a53f;
  --on-blue:#fff;--field:var(--card);--mark-bg:#fbe9c6;--danger:#c0392b;--green-ink:#1d8a50;
  --maxw:1100px;
  /* aliases for the apps' own page CSS */
  --bg:var(--paper);--text:var(--ink);--accent:var(--blue);--orange:var(--amber);--red:var(--danger);--mark:var(--mark-bg);
  color-scheme:light;
}
[data-theme="dark"]{
  --paper:#0e2747;--card:#123257;--ink:#e8f1ff;--muted:#a8bfdc;--line:rgba(200,225,255,.22);--soft:rgba(255,255,255,.08);
  --grid:rgba(200,225,255,.07);--blue:#8cc4ff;--blue-soft:rgba(140,196,255,.14);--navy:#e8f1ff;
  --amber-ink:#e9a53f;--bar:#081a31;--shadow:0 8px 24px rgba(0,0,0,.25);
  --logo-ink:#eaf2ff;--logo-line:#8cc4ff;
  --on-blue:#0e2747;--field:#0e2747;--mark-bg:rgba(233,165,63,.32);--danger:#ff8a8a;--green-ink:#5fe39d;
  color-scheme:dark;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);font:16px/1.6 var(--sans);background:var(--paper);
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:32px 32px}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.25;letter-spacing:-.015em;font-family:var(--sans)}
h1{font-size:26px;font-weight:600;margin:0 0 12px}h2{font-size:19px;font-weight:600;margin:0 0 10px}h3{font-weight:600}
:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.lbl{font:500 11px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.aside{font:italic 400 15px var(--serif);color:var(--muted)}
mark{background:var(--mark-bg);color:inherit;border-radius:3px;padding:0 2px}
code,kbd,.mono{font-family:var(--mono)}

/* ---------- header (same as the website's top bar) ---------- */
.rga-top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 88%,transparent);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.rga-top .in{max-width:var(--maxw);margin:auto;display:flex;align-items:center;gap:12px;padding:10px 20px;position:relative}
.rga-top .brand{display:flex;align-items:center;gap:10px;font:600 17px var(--sans);color:var(--ink);white-space:nowrap;min-width:0}
.rga-top .brand:hover{text-decoration:none}.rga-top .brand svg{width:32px;height:32px;flex:none}
.rga-top .brand .site{font:500 10.5px var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);display:block;line-height:1.1}
.rga-top .brand .app{display:block;line-height:1.15}
.rga-nav{margin-left:auto;display:flex;align-items:center;gap:2px}
.rga-nav form{margin:0}
.rga-nav a,.rga-nav button{display:block;font:500 14.5px var(--sans);color:var(--ink);padding:6px 11px;border-radius:6px;
  background:transparent;border:0;cursor:pointer;line-height:1.6;white-space:nowrap}
.rga-nav a:hover,.rga-nav button:hover{background:var(--soft);text-decoration:none}
.rga-nav a[aria-current]{background:var(--navy);color:var(--paper)}
.icon-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--muted);
  background:transparent;cursor:pointer;padding:0;flex:none}
.icon-btn:hover{color:var(--ink);background:transparent}
.rga-top .nav-toggle{display:none;border-radius:10px}
.icon-sun{display:none}[data-theme="dark"] .icon-sun{display:block}[data-theme="dark"] .icon-moon{display:none}
@media (max-width:760px){
  .rga-top .in{padding:10px 14px}
  .rga-top .nav-toggle{display:grid;margin-left:auto}
  .rga-nav{position:absolute;left:0;right:0;top:100%;display:none;flex-direction:column;align-items:stretch;gap:0;margin:0;
    background:var(--card);border-bottom:1px solid var(--line);box-shadow:var(--shadow);padding:6px 14px 12px}
  .rga-nav.open{display:flex}
  .rga-nav a,.rga-nav button{padding:11px 12px;font-size:16px;text-align:left;width:100%}
}

/* ---------- layout ---------- */
main{max-width:var(--maxw);margin:auto;padding:22px 20px 40px}
@media (max-width:760px){main{padding:14px 12px 30px}}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:14px;box-shadow:var(--shadow)}
/* section heading like the website (number tag optional) */
.sh{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.sh .n{font:500 11.5px var(--mono);color:var(--paper);background:var(--ink);padding:1px 7px;border-radius:4px}
.sh h1,.sh h2{margin:0}

/* ---------- controls ---------- */
button,.btn{font:500 15px var(--sans);background:var(--blue);color:var(--on-blue);border:1px solid var(--blue);border-radius:8px;
  padding:8px 14px;cursor:pointer;display:inline-block;line-height:1.35;text-decoration:none}
button:hover,.btn:hover{filter:brightness(1.08);text-decoration:none}
.btn.ghost,button.ghost{background:transparent;color:var(--blue);border-color:var(--line)}
.btn.ghost:hover,button.ghost:hover{border-color:var(--blue);filter:none}
.btn.small,button.small{padding:4px 10px;font-size:13.5px}
button.danger,.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}
[data-theme="dark"] button.danger,[data-theme="dark"] .btn.danger{color:#0e2747}
.linkbtn{background:none;border:0;color:var(--blue);font:inherit;cursor:pointer;padding:0}
button:disabled{opacity:.45;cursor:default;filter:none}
input[type=text],input[type=search],input[type=password],input[type=email],input[type=number],input[type=url],input[type=date],input[type=time],textarea,select{
  width:100%;font:16px var(--sans);padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--field);color:var(--ink)}
/* date/time fields have an intrinsic minimum width (Chrome, iOS Safari): let grids and flex rows shrink them */
input,select,textarea{min-width:0;max-width:100%}
input:focus,textarea:focus,select:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
input[type=checkbox],input[type=radio]{accent-color:var(--blue)}
label.f{display:block;font:500 12.5px var(--mono);letter-spacing:.02em;color:var(--muted);margin:12px 0 4px}

/* ---------- text bits ---------- */
.meta{color:var(--muted);font-size:14px}
.pill{display:inline-block;font:500 11.5px var(--mono);padding:1px 8px;border-radius:4px;margin-right:4px;
  background:var(--blue-soft);color:var(--blue);border:0}
.notice{background:var(--soft);border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:8px;padding:10px 14px;margin-bottom:14px}
.err,.notice.err{background:color-mix(in srgb,var(--danger) 10%,var(--card));border-color:color-mix(in srgb,var(--danger) 45%,transparent);
  border-left-color:var(--danger);color:var(--ink)}
.error{color:var(--danger)}
.ok{color:var(--green-ink)}
.pwbox{font:500 20px/1.3 var(--mono);letter-spacing:1px;background:var(--paper);border:1px dashed var(--blue);border-radius:8px;
  padding:8px 10px;display:inline-block;user-select:all}
progress{width:100%;accent-color:var(--blue)}
