:root{--background:#dce6d5;--foreground:#293228;--shadow-hover:0 25px 56px rgba(44,66,42,.2),0 3px 10px rgba(44,66,42,.09)}
html,body{background:var(--background)}
body{color:var(--foreground)}
button{color:inherit}
.brand-mark svg,.app-icon svg,.arrow svg,.date-icon svg,.weather-icon svg,.logout-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
.ambient{pointer-events:none}
.brand-mark svg{width:28px;height:28px;stroke-width:1.8}
.login-mark svg{width:31px;height:31px}
.home-shell{width:min(100%,960px);gap:28px}
.home-header{gap:24px}
.brand{gap:16px}
h1{margin:0;font-size:clamp(28px,4vw,38px);font-weight:600;letter-spacing:-.04em;line-height:1.05}
.logout-button{flex:0 0 auto;display:grid;place-items:center;border-color:rgba(55,79,53,.16);transition:transform 180ms ease,background-color 180ms ease,color 180ms ease}
.logout-button:hover{transform:translateY(-2px);background:#fffdf8;color:#35583d}
.logout-button:focus-visible{outline:3px solid rgba(71,112,68,.28);outline-offset:3px}
.logout-button svg{width:21px;height:21px;stroke-width:1.7}
.login-page{position:relative;min-height:100svh;overflow:hidden;display:grid;place-items:center;padding:28px 18px;isolation:isolate}
.login-card{width:min(100%,430px);padding:38px;display:grid;justify-items:center;gap:24px;border:1px solid rgba(55,79,53,.18);border-radius:30px;background:rgba(255,253,248,.93);box-shadow:0 28px 70px rgba(44,66,42,.18),0 4px 14px rgba(44,66,42,.08);backdrop-filter:blur(14px)}
.login-mark{width:64px;height:64px;border-radius:21px}
.login-heading{display:grid;justify-items:center;gap:7px;text-align:center}
.login-heading>span{color:#55744f;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.login-heading h1{font-size:36px}
.login-heading p{margin:2px 0 0;color:var(--muted);font-size:14px;line-height:1.45}
.login-form{width:100%;display:grid;gap:10px}
.login-form label{color:#4d604a;font-size:13px;font-weight:650}
.login-form input{width:100%;height:52px;padding:0 15px;border:1px solid rgba(55,79,53,.22);border-radius:15px;outline:none;background:#fffdf8;color:var(--foreground);font:inherit;transition:border-color 180ms ease,box-shadow 180ms ease}
.login-form input:focus{border-color:#5a7a53;box-shadow:0 0 0 4px rgba(90,122,83,.12)}
.login-form button{height:52px;margin-top:4px;border:0;border-radius:15px;background:linear-gradient(145deg,#587b51,#35583d);color:#fffaf1;font-weight:650;cursor:pointer;box-shadow:0 12px 24px rgba(51,89,60,.2);transition:transform 180ms ease,box-shadow 180ms ease,opacity 180ms ease}
.login-form button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 15px 30px rgba(51,89,60,.25)}
.login-form button:disabled{cursor:wait;opacity:.7}
.login-form button:focus-visible{outline:3px solid rgba(71,112,68,.28);outline-offset:3px}
.login-message{min-height:20px;margin:0;color:#9b4d2e;font-size:13px;text-align:center;opacity:0}
.login-message-visible{opacity:1}
.info-row{display:flex;align-items:stretch;gap:14px;flex-wrap:wrap}
.date-card,.weather-card{position:relative;min-width:300px;padding:13px 18px 13px 13px;overflow:hidden;display:flex;align-items:center;gap:13px;border:1px solid rgba(58,85,53,.18);border-radius:20px;background:rgba(255,253,247,.9);box-shadow:0 10px 28px rgba(49,75,46,.1)}
.date-card{width:300px}
.weather-card{width:360px}
.date-icon{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;border-radius:14px;color:#4f7149;background:#e4eedf}
.date-icon svg{width:22px;height:22px;stroke-width:1.7}
.date-copy{display:grid;gap:3px}
.date-label{color:#55744f;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.weather-place{color:#55744f;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.date-card time{font-size:15px;font-weight:600;text-transform:capitalize}
.date-flourish{margin-left:auto;color:rgba(78,112,71,.45);font-size:17px}
.weather-icon{width:48px;height:48px;flex:0 0 auto;display:grid;place-items:center;border-radius:16px;color:#926323;background:#f7e7bd}
.weather-icon svg{width:28px;height:28px;stroke-width:1.65}
.weather-copy{min-width:0;display:grid;gap:3px}
.weather-details{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.weather-details strong{font-size:20px;letter-spacing:-.03em}
.weather-details span,.weather-loading{color:var(--muted);font-size:13px}
.weather-copy a{width:fit-content;color:#6b7767;font-size:11px;text-decoration:none;opacity:.78}
.weather-copy a:hover{text-decoration:underline;opacity:1}
.app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.app-card{position:relative;min-height:212px;padding:25px;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:0;text-align:left;text-decoration:none;color:var(--foreground);border:1px solid var(--border);border-radius:28px;background:linear-gradient(145deg,var(--surface),#faf7ef);box-shadow:var(--shadow);cursor:pointer;transition:transform 200ms ease,box-shadow 200ms ease,border-color 200ms ease}
.app-card::after{content:"";position:absolute;width:154px;height:154px;right:-48px;bottom:-75px;border-radius:999px;background:var(--card-glow);opacity:.72;transition:transform 260ms ease,opacity 260ms ease}
.app-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover);border-color:rgba(49,86,48,.3)}
.app-card:hover::after{transform:translate(-8px,-8px) scale(1.08);opacity:.95}
.app-card:focus-visible,.date-card:focus-visible{outline:3px solid rgba(71,112,68,.28);outline-offset:4px}
.app-card-budget{--card-glow:rgba(164,190,139,.42)}
.app-card-calendar{--card-glow:rgba(221,181,103,.4)}
.app-card-training{--card-glow:rgba(217,132,92,.43)}
.app-card-documents{--card-glow:rgba(194,145,139,.36)}
.card-topline{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;width:100%}
.app-icon{width:70px;height:70px;display:grid;place-items:center;border-radius:23px}
.app-icon-budget{background:#e5edd7;color:#4e6a36}
.app-icon-calendar{background:#f8e8c5;color:#99621f}
.app-icon-training{background:#f5ded1;color:#9b4d2e}
.app-icon-documents{background:#f0dedd;color:#814e4b}
.app-icon svg{width:34px;height:34px;stroke-width:1.7}
.arrow{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--border);border-radius:999px;background:#fffdf8;color:var(--fg);transition:transform 200ms ease,background-color 200ms ease;font-size:0}
.app-card:hover .arrow{transform:translate(3px,-3px);background:#f4f8f1}
.arrow svg{width:18px;height:18px;stroke-width:1.8}
.soon-badge{padding:7px 11px;border-radius:999px;background:rgba(129,78,75,.1);color:#7f4d49;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.app-name{position:relative;z-index:1;align-self:stretch;max-width:88%;font-size:clamp(22px,3vw,30px);font-weight:600;letter-spacing:-.035em;line-height:1.12;text-align:left}
.notice{position:fixed;left:50%;bottom:22px;z-index:10;transform:translate(-50%,18px);max-width:calc(100% - 32px);padding:12px 16px;border-radius:14px;background:#35583d;color:#fff9f0;font-size:14px;box-shadow:0 14px 40px rgba(41,73,48,.25);opacity:0;pointer-events:none;transition:opacity 180ms ease,transform 180ms ease}
.notice-visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:681px) and (max-width:700px){.home-page{padding:42px 24px}.app-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.date-card{width:300px;min-width:300px}.weather-card{width:360px;min-width:300px}.app-card{min-height:212px;padding:25px}}
@media(max-width:680px){.home-page{align-items:start;padding:24px 16px 30px}.home-shell{gap:27px}.brand-mark{width:48px;height:48px;border-radius:16px}.brand-mark svg{width:25px;height:25px}.logout-button{width:42px;height:42px;border-radius:14px}.login-card{padding:32px 24px 26px;border-radius:26px}.login-mark{width:60px;height:60px;border-radius:20px}.login-heading h1{font-size:32px}.date-card,.weather-card{width:100%;min-width:0}.app-grid{grid-template-columns:1fr;gap:13px}.app-card{min-height:140px;padding:20px;border-radius:23px}.app-card:hover{transform:none}.app-icon{width:56px;height:56px;border-radius:18px}.app-icon svg{width:29px;height:29px}.arrow{width:34px;height:34px}.app-name{font-size:23px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
