:root{
  --paper:#FAF7F1; --card:#FFFFFF; --ink:#14233B; --muted:#5C6B82;
  --gold:#A87F2E; --line:#E8E1D3; --shadow:0 2px 10px rgba(20,35,59,.07);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:20px; line-height:1.55; -webkit-font-smoothing:antialiased;
}
.wrap{max-width:640px; margin:0 auto; padding:28px 20px 64px}
.masthead{text-align:center; padding:10px 0 22px}
.crest{width:46px; height:46px; margin:0 auto 12px; display:block}
.masthead h1{font-family:Georgia,"Times New Roman",serif; font-weight:700; font-size:26px; margin:0; letter-spacing:.2px}
.masthead .sub{margin:6px 0 0; color:var(--gold); font-size:15px; letter-spacing:.18em; text-transform:uppercase; font-weight:600}
.rule{height:2px; width:64px; margin:16px auto 0; background:var(--gold); opacity:.55; border-radius:2px}
.eyebrow{margin:0; color:var(--gold); font-size:14px; letter-spacing:.18em; text-transform:uppercase; font-weight:700}

/* Sign-in card */
.card{background:var(--card); border-radius:18px; box-shadow:var(--shadow); padding:26px 24px; margin:8px 0 0}
.card form{display:flex; flex-direction:column; gap:6px; margin-top:14px}
.card label{font-size:16px; font-weight:700; margin-top:12px}
.card select, .card input{
  font-size:21px; padding:15px 14px; border:2px solid var(--line); border-radius:12px;
  background:#fff; color:var(--ink); width:100%; -webkit-appearance:none; appearance:none;
}
.card select:focus, .card input:focus{outline:none; border-color:var(--gold)}
.card input{letter-spacing:.3em; text-align:center}
.card button{
  margin-top:18px; background:var(--ink); color:#fff; font-size:21px; font-weight:700;
  border:0; padding:18px; border-radius:14px; box-shadow:var(--shadow); cursor:pointer;
}
.card button:active{transform:translateY(1px)}
.card button:disabled{opacity:.6}
.err{color:#A32D2D; background:#FCEBEB; border-radius:10px; padding:12px 14px; font-size:17px; margin:14px 0 0}
.help{color:var(--muted); font-size:16px; margin:18px 2px 0; line-height:1.5; text-align:center}

/* Dashboard greeting */
.greet{display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:4px 0 18px}
.greet .hi{font-family:Georgia,serif; font-size:24px; font-weight:700}
.greet a{color:var(--muted); font-size:16px; text-decoration:none; white-space:nowrap}
.greet a:active{opacity:.6}

/* Hero */
.hero{background:var(--card); border-radius:18px; box-shadow:var(--shadow); border-left:7px solid var(--gold); padding:26px 24px; margin:8px 0 22px}
.hero-date{margin:8px 0 14px; color:var(--muted); font-size:18px; font-weight:600}
.hero-speaker{font-family:Georgia,serif; font-size:34px; line-height:1.15; font-weight:700; margin:0}
.hero-cong{margin:6px 0 0; color:var(--muted); font-size:19px}
.hero-talk{margin:14px 0 0; font-size:21px}
.hero-event{font-family:Georgia,serif; font-size:30px; font-weight:700; margin:6px 0 0}
.num{color:var(--gold); font-weight:700; white-space:nowrap}

/* Calendar button */
.cal{display:block; width:100%; background:var(--ink); color:#fff; text-align:center; font-size:21px; font-weight:700; text-decoration:none; padding:20px; border-radius:16px; box-shadow:var(--shadow)}
.cal:active{transform:translateY(1px)}
.cal-help{text-align:center; color:var(--muted); font-size:16px; margin:12px 6px 30px; line-height:1.5}

/* Sections + rows */
h2.section{font-family:Georgia,serif; font-size:23px; margin:34px 0 4px; font-weight:700}
.section-rule{height:2px; background:var(--line); margin:0 0 14px; border-radius:2px}
ul.list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px}
.row{display:flex; gap:16px; align-items:flex-start; background:var(--card); border-radius:14px; box-shadow:var(--shadow); padding:16px 18px}
.row .rdate{flex:none; width:58px; text-align:center; border-right:1px solid var(--line); padding-right:14px}
.row .rdate .d{display:block; font-family:Georgia,serif; font-size:28px; font-weight:700; line-height:1}
.row .rdate .m{display:block; color:var(--gold); font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; margin-top:3px}
.row .who{flex:1}
.row .speaker{margin:0; font-size:21px; font-weight:700}
.row .cong{margin:3px 0 0; color:var(--muted); font-size:17px}
.row .talk{margin:7px 0 0; font-size:18px; color:var(--ink)}
.row-out{border-left:7px solid var(--gold)}
.row-event{background:#FBF4E6}
.row-event .event{margin:0; font-family:Georgia,serif; font-size:20px; font-weight:700; color:var(--gold)}

.foot{text-align:center; color:var(--muted); font-size:14px; margin-top:40px; line-height:1.6}
.empty{color:var(--muted); font-size:18px; padding:8px 2px}
@media (max-width:380px){ body{font-size:19px} .hero-speaker{font-size:30px} }

/* Home button — top-left on the tool pages, taps back to the dashboard */
.homebtn{position:fixed; top:12px; left:12px; z-index:60; width:46px; height:46px; display:flex; align-items:center; justify-content:center; background:var(--card); border:1px solid var(--line); border-radius:999px; box-shadow:var(--shadow); text-decoration:none}
.homebtn:active{transform:translateY(1px)}
.homebtn:hover{border-color:var(--gold)}
.homebtn svg{width:26px; height:26px; display:block}
@media print{ .homebtn{display:none} }
