:root{--teal:#098d91;--ink:#064f5b;--card:#d0e8e5;--head:#abd2ce;--line:#94bdbb;--muted:#52666e;--orange:#ff8a00}
*{box-sizing:border-box}
body{margin:0;background:var(--card);color:#19323e;font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}
main{margin-top:42px;margin-bottom:42px;min-height:70vh}
h1{font-size:36px;line-height:1.2;color:var(--ink);margin:0 0 14px}
h2{color:var(--ink);margin:0 0 14px}
p{margin:0 0 20px}
.muted,small{color:var(--muted)}
.eyebrow{color:#c26100;text-transform:uppercase;letter-spacing:.1em;font-size:13px;font-weight:700;margin-bottom:10px}

/* Keep vacant grid tracks, so one or two modules never become full-width banners. */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(0,170px));gap:16px;margin-top:26px}
.tile{aspect-ratio:1;min-width:0;background:#fff;border:0;border-radius:10px;padding:14px;color:inherit;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;box-shadow:0 3px 12px #064f5b24;transition:background-color .16s,box-shadow .16s,transform .16s ease}
a.tile:hover{background:#f5fbfa;box-shadow:0 6px 18px #064f5b30;transform:translateY(-3px)}
.tile:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
.tile strong{font-size:18px;line-height:1.2;color:var(--ink)}
.tile-icon{width:32px;height:32px;flex-shrink:0;color:var(--teal);margin-bottom:2px}
.tile-description{max-width:24ch;font-size:12px;line-height:1.4;color:#304f57;text-wrap:balance}
.tile-placeholder{background:#fff}
.tile-coming-soon{font-size:11px;font-weight:650;background:#fff;color:#52666e;border-radius:4px;padding:3px 8px}
@media(max-width:420px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tile{padding:10px;gap:6px}.tile strong{font-size:15px}.tile-description{font-size:11px}.tile-icon{width:28px;height:28px}}
@media(prefers-reduced-motion:reduce){.tile{transition:none}a.tile:hover{transform:none}}

.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:28px;margin:24px 0}
.panel-title{background:var(--head);margin:-28px -28px 24px;padding:20px 28px;border-radius:14px 14px 0 0}
.narrow{max-width:520px;margin:60px auto}
.login-panel{background:#fff;border:0;box-shadow:0 3px 12px #064f5b24}
.login-panel .panel-title{background:#fff;margin-bottom:16px;padding-bottom:0}
.login-panel .panel-title p{margin-bottom:0}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px;font-weight:650}
.field small{font-weight:400}
input,select,textarea{font:inherit;background:#fff;border:1px solid #9cbbbf;border-radius:8px;padding:11px 13px;min-width:0;max-width:100%;color:#173843}
input:focus,select:focus,textarea:focus{outline:3px solid #078d9140;border-color:var(--teal)}
.button,button.primary{display:inline-block;background:var(--teal);border:1px solid var(--teal);color:#fff;font:inherit;font-weight:650;border-radius:8px;padding:10px 18px;text-decoration:none;cursor:pointer}
.button.secondary{background:#fff;color:var(--ink)}
a{color:#007a80}
.actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.notice{background:#fff7dc;border-left:4px solid var(--orange);padding:15px;margin:18px 0}
.success{background:#e5f5e9;border-left:4px solid #39884c;padding:15px;margin:18px 0}
.error{background:#fff0ed;border-left:4px solid #ba4139;padding:15px;margin:18px 0}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.span-all{grid-column:1/-1}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;background:#fff;font-size:14px}
th,td{padding:12px;text-align:left;border-bottom:1px solid #cedfde}
th{background:var(--head);color:var(--ink)}
td small{display:block}
.badge{display:inline-block;background:#ebf4f3;padding:3px 8px;border-radius:5px;font-size:12px}
footer{border-top:1px solid #d7e3e4;text-align:center;padding:22px;color:var(--muted);font-size:13px}
@media(max-width:760px){main{margin-top:25px}.grid{grid-template-columns:1fr}h1{font-size:29px}.panel{padding:20px}.panel-title{margin:-20px -20px 20px;padding:16px 20px}}
