*,:before,:after{box-sizing:border-box}:root{--font-display:"Fraunces", Georgia, "Times New Roman", serif;--font-body:"Source Sans 3", "Segoe UI", system-ui, sans-serif;--color-graphite:#121714;--color-graphite-deep:#0c100e;--color-forest:#1a2a22;--color-sage:#8fa686;--color-sage-strong:#7d9a74;--color-sage-muted:#a8b89e;--color-cream:#f3f1ea;--color-offwhite:#eef0ec;--color-warm:#c4a574;--color-on-primary:#121714;--color-page:#ecebe6;--color-surface:#f7f6f2;--color-header:#161c18;--color-text:#1a221c;--color-muted:#3a4740;--color-primary:#7d9a74;--color-primary-hover:#6e8b66;--color-primary-active:#5d7556;--color-border:#d4d8d0;--focus-ring:2px solid var(--color-sage-strong)}html,body,#root{min-height:100%}body{min-width:320px;font-family:var(--font-body);color:var(--color-text);background:var(--color-page);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.45}.auth-gate{color:var(--color-muted);justify-content:center;padding:4rem 1.5rem;display:flex}a:focus-visible,button:focus-visible{outline:var(--focus-ring);outline-offset:2px}img{max-width:100%;display:block}.app-header{z-index:20;color:var(--color-cream);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#161c18f0;border-bottom:1px solid #8fa6862e;position:sticky;top:0}.app-header__inner{align-items:center;gap:1.5rem;max-width:72rem;margin:0 auto;padding:.9rem 1.5rem;display:flex}.app-header__brand{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-cream);flex-shrink:0;font-size:1.35rem;font-weight:650;text-decoration:none}.app-header__brand:hover{color:#fff}.app-header__nav{flex:1;justify-content:center;align-items:center;gap:.35rem;display:none}.app-header__link{color:var(--color-sage-muted);border-radius:.4rem;padding:.45rem .85rem;font-size:.95rem;font-weight:500;text-decoration:none}.app-header__link:hover{color:var(--color-cream);background:#ffffff0d}.app-header__link--active{color:var(--color-cream);background:#7d9a7438}.app-header__actions{align-items:center;gap:.65rem;margin-left:auto;display:flex}.app-header__status{color:var(--color-sage-muted);font-size:.9rem}.app-header__account{align-items:center;gap:.65rem;display:flex}.app-header__user{text-overflow:ellipsis;white-space:nowrap;max-width:9rem;color:var(--color-sage-muted);font-size:.9rem;font-weight:500;overflow:hidden}.app-header__login{background:var(--color-primary);color:var(--color-on-primary);border-radius:.45rem;align-items:center;padding:.45rem 1rem;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex}.app-header__login:hover{background:var(--color-primary-hover)}.app-header__logout{color:var(--color-cream);font:inherit;cursor:pointer;background:0 0;border:1px solid #a8b89e59;border-radius:.45rem;align-items:center;padding:.4rem .85rem;font-size:.88rem;font-weight:600;display:inline-flex}.app-header__logout:hover{background:#ffffff0f}@media (width>=800px){.app-header__nav{display:flex}}.app-layout{background:radial-gradient(ellipse 80% 50% at 20% 0%, #7d9a7424, transparent 55%), radial-gradient(ellipse 60% 40% at 90% 10%, #c4a5741a, transparent 50%), linear-gradient(180deg, #e8ebe4 0%, var(--color-page) 45%, #e4e7e0 100%);flex-direction:column;min-height:100%;display:flex}.app-layout__main{flex:1;width:100%}.app-layout__footer{text-align:center;color:var(--color-muted);padding:1.25rem 1.5rem 1.75rem;font-size:.9rem}.app-layout__footer p{margin:0}.home__hero{justify-content:center;align-items:center;min-height:min(72vh,40rem);padding:3rem 1.5rem 2.5rem;display:flex}.home__hero-inner{text-align:center;max-width:40rem}.home__brand{font-family:var(--font-display);letter-spacing:-.03em;color:var(--color-graphite);margin:0 0 .65rem;font-size:clamp(2.6rem,6vw,4rem);font-weight:650;line-height:1.05}.home__tagline{font-family:var(--font-display);color:var(--color-forest);margin:0 0 1.25rem;font-size:clamp(1.15rem,2.4vw,1.45rem);font-weight:500}.home__lead{max-width:34rem;color:var(--color-muted);margin:0 auto 1.75rem;font-size:1.1rem;line-height:1.55}.home__actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.btn{border:1px solid #0000;border-radius:.5rem;justify-content:center;align-items:center;min-height:2.75rem;padding:.65rem 1.35rem;font-size:1rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.btn--primary{background:var(--color-primary);color:var(--color-on-primary)}.btn--primary:hover{background:var(--color-primary-hover)}.btn--secondary{color:var(--color-forest);background:0 0;border-color:#1a2a2247}.btn--secondary:hover{background:#ffffff73;border-color:#1a2a2266}.home__preview{padding:0 1.5rem 3.5rem}.home__preview-grid{gap:1rem;max-width:64rem;margin:0 auto;display:grid}.home__card{background:#f7f6f2b8;border:1px solid #d4d8d0e6;border-radius:.75rem;padding:1.35rem 1.4rem}.home__card h2{font-family:var(--font-display);color:var(--color-graphite);margin:0 0 .45rem;font-size:1.25rem;font-weight:650}.home__card p{color:var(--color-muted);margin:0;line-height:1.5}@media (width>=800px){.home__preview-grid{grid-template-columns:repeat(3,1fr);gap:1.25rem}}.auth-code{margin:.35rem 0 .25rem;position:relative}.auth-code-field{z-index:1;color:#0000;caret-color:#0000;opacity:0;cursor:pointer;background:0 0;border:0;width:100%;height:100%;margin:0;padding:0;font-size:16px;position:absolute;inset:0}.auth-code-field:disabled{cursor:default}.auth-code-boxes{justify-content:center;align-items:center;gap:clamp(1.1rem,6vw,1.8rem);display:flex}.auth-code-group{flex:1 1 0;justify-content:center;gap:clamp(.28rem,1.8vw,.5rem);min-width:0;display:flex}.auth-code-box{box-sizing:border-box;aspect-ratio:1;min-width:0;max-width:2.9rem;color:var(--color-forest);background:#ffffffb8;border:1px solid #1a2a222e;border-radius:.7rem;flex:1 1 0;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;transition:border-color .12s,background-color .12s,box-shadow .12s;display:flex}.auth-code-box.is-filled{background:#f7f6f2f2;border-color:#1a2a2252}.auth-code-box.is-active{border-color:var(--color-sage-strong);background:#fff;box-shadow:0 0 0 2px #7d9a7447}.auth-code-field:disabled~.auth-code-boxes{opacity:.65}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.login-page{justify-content:center;padding:2.5rem 1.25rem 3.5rem;display:flex}.login-card{border:1px solid var(--color-border);background:#f7f6f2eb;border-radius:.9rem;width:100%;max-width:26rem;padding:2rem 1.6rem 1.75rem;box-shadow:0 12px 40px #1217140f}.login-card__brand{text-align:center;font-family:var(--font-display);color:var(--color-forest);margin:0 0 .35rem;font-size:1.15rem;font-weight:650}.login-card__title{text-align:center;font-family:var(--font-display);color:var(--color-graphite);margin:0 0 .55rem;font-size:1.85rem;font-weight:650}.login-card__lead{text-align:center;color:var(--color-muted);margin:0 0 1.4rem;font-size:.98rem;line-height:1.45}.login-form{flex-direction:column;gap:.35rem;display:flex}.login-label{color:var(--color-forest);font-size:.92rem;font-weight:600}.login-label--pin{margin-top:.85rem}.login-input{box-sizing:border-box;width:100%;min-height:2.75rem;color:var(--color-text);font:inherit;background:#fff;border:1px solid #1a2a2238;border-radius:.5rem;padding:.65rem .85rem}.login-input:focus{outline:var(--focus-ring);outline-offset:1px}.login-input:disabled{opacity:.7}.login-error{color:#8a4536;background:#b56b581f;border-radius:.45rem;margin:.75rem 0 0;padding:.65rem .75rem;font-size:.92rem}.login-submit{background:var(--color-primary);min-height:2.85rem;color:var(--color-on-primary);font:inherit;cursor:pointer;border:0;border-radius:.5rem;margin-top:1.1rem;font-weight:700}.login-submit:hover:not(:disabled){background:var(--color-primary-hover)}.login-submit:disabled{opacity:.55;cursor:default}.login-forgot{text-align:center;margin:1.15rem 0 0;font-size:.95rem}.login-forgot a{color:var(--color-forest);font-weight:600}.placeholder{justify-content:center;padding:3rem 1.5rem 4rem;display:flex}.placeholder__panel{border:1px solid var(--color-border);background:#f7f6f2e0;border-radius:.85rem;width:100%;max-width:36rem;padding:2rem 1.75rem}.placeholder__panel h1{font-family:var(--font-display);color:var(--color-graphite);margin:0 0 .75rem;font-size:1.85rem}.placeholder__panel p{color:var(--color-muted);margin:0 0 .85rem;line-height:1.5}.placeholder__note{font-size:.95rem}.placeholder__back{color:var(--color-forest);margin-top:.5rem;font-weight:600;display:inline-flex}
