:root{color-scheme:light;--ink:#102b3a;--muted:#647983;--line:#dbe5e7;--paper:#f2f7f6;--surface:#fff;--teal:#087d77;--teal-dark:#07645f;--mint:#e4f4f1;--amber:#edb956;--shadow:0 18px 44px rgba(20,57,65,.08)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 88% 5%,#e0f2ef 0,transparent 30rem),var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;min-height:100vh}.portal-shell{width:min(980px,100%);margin:0 auto;padding:26px 24px 48px}.portal-header{min-height:56px;height:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:36px}.portal-mark{display:inline-flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font:800 14px 'Manrope',sans-serif;letter-spacing:.06em}.portal-mark small{display:block;color:var(--muted);font:600 10px 'DM Sans',sans-serif;letter-spacing:.14em;margin-top:3px}.portal-mark-dot{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:var(--ink);color:#fff;font:800 18px 'Manrope',sans-serif}.portal-chip,.step-tag{border-radius:999px;padding:8px 13px;background:var(--mint);color:var(--teal-dark);font-size:12px;font-weight:700}.portal-mascot-brand{display:inline-flex;align-items:center;gap:8px;color:var(--teal-dark);font-size:12px;font-weight:800;white-space:nowrap}.portal-mascot-brand img{display:block;width:42px;height:42px;object-fit:cover;border-radius:50%;border:1px solid rgba(8,125,119,.16)}.portal-intro{max-width:620px;margin:0 0 26px}.eyebrow{margin:0 0 9px;color:var(--teal);font-size:10px;font-weight:700;letter-spacing:.15em}.portal-intro h1{font:800 clamp(30px,6vw,44px)/1.1 'Manrope',sans-serif;letter-spacing:-.045em;margin:0 0 12px}.portal-intro>p:last-child,.muted,.portal-footnote,.privacy-note{color:var(--muted);font-size:14px;line-height:1.6}.portal-intro>p:last-child{max-width:570px;margin:0}.portal-card{background:var(--surface);border:1px solid #e5eded;border-radius:20px;padding:25px;margin-bottom:18px;box-shadow:var(--shadow)}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.card-heading h2{font:700 21px 'Manrope',sans-serif;letter-spacing:-.03em;margin:0}.card-heading .muted{margin:6px 0 0;font-size:12px}.lock-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:#fff3db;color:#b77a11;font-size:14px}.portal-form{display:grid;gap:15px}.portal-form label{display:grid;gap:8px;font-size:12px;font-weight:700;color:#2f4852}.portal-form input,.portal-form select,.portal-form textarea{width:100%;min-height:47px;border:1px solid #d8e3e5;border-radius:10px;background:#fbfdfd;padding:11px 13px;color:var(--ink);font:500 14px 'DM Sans',sans-serif;outline:none}.portal-form input:focus,.portal-form select:focus,.portal-form textarea:focus{border-color:#54a79e;box-shadow:0 0 0 3px rgba(8,125,119,.13)}.portal-form input[readonly]{background:#f1f6f5;color:#61747a}.portal-form select{appearance:auto}.primary-button,.secondary-button{min-height:45px;border:0;border-radius:10px;padding:0 17px;font:700 13px 'DM Sans',sans-serif;cursor:pointer;transition:transform .15s,background .15s}.primary-button{background:var(--teal);color:white}.primary-button:hover{background:var(--teal-dark)}.primary-button:active,.secondary-button:active{transform:translateY(1px)}.secondary-button{background:var(--mint);color:var(--teal-dark);white-space:nowrap}.secondary-button:hover{background:#d5eeea}.text-button{border:0;background:none;color:var(--teal);font:700 12px 'DM Sans',sans-serif;cursor:pointer}.privacy-note{border-top:1px solid #edf1f1;padding-top:14px;margin:17px 0 0;font-size:12px}.form-message{margin:0;color:#a13c37;font-size:12px;line-height:1.5}.form-message:empty{display:none}.field-note{font-weight:500;color:#71858b;font-size:10px;margin-left:5px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.span-two{grid-column:span 2}.form-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:3px}.portal-session{display:flex;justify-content:space-between;align-items:center;padding:0 4px 14px;font-size:12px;color:var(--muted)}.portal-session strong{color:var(--ink)}.rate-note{margin:-7px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.portal-form input:disabled,.portal-form select:disabled{opacity:.65}.secondary-button:disabled{opacity:.5;cursor:not-allowed}.record-list{display:grid;gap:10px}.record-item{border:1px solid #e4ebec;border-radius:13px;padding:13px 15px;display:grid;grid-template-columns:1fr auto;gap:5px 12px;align-items:start}.record-item strong{font-size:13px}.record-item span{color:var(--muted);font-size:11px;line-height:1.5}.record-item .record-date{color:var(--teal-dark);font-weight:700;text-align:right}.record-empty{border:1px dashed #cbd8da;border-radius:12px;padding:22px;text-align:center;color:var(--muted);font-size:13px}.portal-footnote{font-size:12px;margin:12px 2px 24px}.portal-footer{border-top:1px solid #dce6e6;padding-top:17px;color:#859599;font-size:10px;font-weight:700;letter-spacing:.14em}.dr-portal-extra{margin-top:9px}.dr-portal-extra textarea{min-height:110px;resize:vertical}.dr-portal-extra .form-message{margin-top:8px}
.summary-card{position:sticky;top:8px;z-index:5;padding:18px 22px;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-color:#bcded9}.summary-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.summary-heading h2{font:700 18px 'Manrope',sans-serif;margin:0}.summary-heading .eyebrow{margin-bottom:5px}.summary-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.summary-metrics article{min-width:0;padding:10px 12px;border:1px solid #e1ecea;border-radius:12px;background:#f7fbfa}.summary-metrics span,.summary-metrics small{display:block;color:var(--muted);font-size:10px;line-height:1.35}.summary-metrics strong{display:block;margin:3px 0;color:var(--teal-dark);font-size:clamp(14px,2.3vw,20px);line-height:1.25;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.summary-metrics small{font-size:10px}.progress-track{height:9px;margin:12px 0 6px;background:#e6efee;border-radius:999px;overflow:hidden}.progress-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,#087d77,#51b8a8);border-radius:inherit;transition:width .3s}.summary-foot{margin:0;color:var(--muted);font-size:10px;line-height:1.4}.portal-divider{height:1px;border:0;background:#e5eded;margin:23px 0}.admin-subtitle{font:700 16px 'Manrope',sans-serif;margin:0 0 8px}.remember-pin{display:flex!important;align-items:center;gap:9px!important;padding:11px 12px;background:#f7fbfa;border:1px solid #e2ebeb;border-radius:10px}.remember-pin input{width:17px!important;min-height:17px!important;accent-color:var(--teal)}.month-archive{display:grid;gap:10px}.month-archive details{border:1px solid #e1e9e9;border-radius:13px;background:#fff;overflow:hidden}.month-archive summary{cursor:pointer;list-style:none;padding:14px 16px;background:#f7fbfa}.month-archive summary::-webkit-details-marker{display:none}.month-archive summary strong{font-size:13px;color:var(--ink)}.month-archive summary .month-meta{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.55}.month-archive .archive-content{padding:10px 12px 14px}.archive-table-wrap{overflow:auto}.archive-table{width:100%;border-collapse:collapse;min-width:720px;font-size:11px}.archive-table th,.archive-table td{text-align:left;padding:8px 9px;border-bottom:1px solid #e9eeee;white-space:nowrap}.archive-table th{color:#526970;background:#f7fbfa;font-size:10px}.archive-table td{color:#2f4852}.archive-empty{padding:12px;color:var(--muted);font-size:12px}
@media(max-width:640px){.summary-card{top:4px;padding:13px 13px;border-radius:14px}.summary-heading{margin-bottom:8px}.summary-heading h2{font-size:15px}.summary-metrics{gap:5px}.summary-metrics article{padding:8px 7px;border-radius:9px}.summary-metrics span,.summary-metrics small{font-size:9px}.summary-metrics strong{font-size:13px}.summary-foot{font-size:9px}.progress-track{height:7px;margin:9px 0 5px}.month-archive summary{padding:11px 12px}.month-archive .archive-content{padding:8px}.remember-pin{font-size:11px!important}}
.history-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 13px}.history-filters label{display:grid;gap:6px;color:#48616b;font-size:11px;font-weight:700}.history-filters input{min-height:42px;border:1px solid #d8e3e5;border-radius:9px;background:#fbfdfd;padding:9px 12px;color:var(--ink);font:500 14px 'DM Sans',sans-serif}.history-filters input:focus-visible,.portal-form button:focus-visible,.text-button:focus-visible{outline:3px solid rgba(8,125,119,.28);outline-offset:2px}.daily-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0 0 15px}.daily-totals article{min-width:0;padding:12px 13px;border:1px solid #e2ebeb;border-radius:12px;background:#f6faf9}.daily-totals span{display:block;color:var(--muted);font-size:10px;line-height:1.4}.daily-totals strong{display:block;margin-top:5px;color:var(--teal-dark);font-size:14px;line-height:1.35;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.portal-session .text-button{max-width:210px;white-space:normal;text-align:right;line-height:1.35}
@media(max-width:640px){.history-filters{grid-template-columns:1fr 1fr;gap:8px}.daily-totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.daily-totals article{padding:10px}.daily-totals strong{font-size:13px}.portal-session .text-button{max-width:150px}}
@media(max-width:640px){.portal-shell{padding:18px 15px 34px}.portal-header{margin-bottom:26px;justify-content:space-between;row-gap:10px}.portal-mascot-brand{font-size:11px}.portal-mascot-brand img{width:38px;height:38px}.portal-chip{font-size:10px;padding:7px 10px}.portal-intro{margin-bottom:20px}.portal-card{padding:19px 16px;border-radius:16px}.form-grid{grid-template-columns:1fr}.span-two{grid-column:auto}.form-footer{align-items:stretch;flex-direction:column-reverse}.form-footer .primary-button,.portal-form>.primary-button{width:100%}.card-heading{align-items:flex-start}.secondary-button{font-size:11px;padding:0 12px;min-height:40px}.record-item{grid-template-columns:1fr}.record-item .record-date{text-align:left}.portal-session{padding-bottom:11px}}
