
:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#292638;background:#faf9fe;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}
.shell{max-width:1140px;padding:28px 24px;margin:auto}.top{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:27px}
.brand{font-family:Georgia,serif;font-size:24px;font-weight:700;letter-spacing:-.4px}.brand small{display:block;font:500 11px Inter,sans-serif;letter-spacing:2px;text-transform:uppercase;color:#8c83a3;margin-top:4px}
nav{display:flex;gap:8px;align-items:center}.btn,.ghost,.pill{border:0;border-radius:12px;padding:11px 15px;background:#826ad0;color:white;font-weight:650;font-size:13px}
.ghost{background:#f0edfa;color:#54488a}.ghost:hover,.btn:hover{filter:brightness(.95)}.pill{background:#e9e4f8;color:#6656a1;font-size:12px;padding:6px 11px}
h1{font:normal 36px Georgia,serif;letter-spacing:-1.3px;margin:4px 0 10px}h2{font:normal 24px Georgia,serif;margin:0 0 14px}h3{margin:0 0 12px;font-size:16px}
.muted,.hint{color:#89839a;font-size:13px;line-height:1.55}.headline{display:flex;justify-content:space-between;align-items:end;gap:14px;margin-bottom:22px}
.layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr);gap:18px}.panel{background:white;border:1px solid #f0ecf8;border-radius:19px;padding:23px;box-shadow:0 5px 30px #60529309}
.bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.month{font:normal 21px Georgia,serif}
.week,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.week{color:#aaa4b8;font-size:12px;text-align:center;margin-bottom:10px}
.date{min-height:77px;border:1px solid transparent;background:#fbfaff;border-radius:14px;padding:10px 7px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;color:#635f75}
.date .num{font-size:14px;font-weight:600}.date.off{opacity:.25}.date.current{border-color:#c0b2f2;background:#f2effc;color:#6048a4}.date:hover{border-color:#c3b9e8}
.dots{display:flex;gap:4px}.dot{width:6px;height:6px;background:#b8a7e9;border-radius:50%}.dot.done{background:#7bc6ab}.dot.late{background:#e8aa8a}
.flex{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{justify-content:space-between}.stack{display:grid;gap:14px}
.task{border:1px solid #eeeaf5;border-radius:13px;padding:15px;display:grid;gap:10px;margin-bottom:10px}.task strong{font-size:15px}
.check{display:flex;gap:10px;align-items:flex-start;line-height:1.45;font-size:14px}.check input{accent-color:#826ad0;width:17px;height:17px}
label.field{display:grid;gap:6px;font-size:12px;font-weight:700;color:#6c6382}
input[type=text],input[type=date],input[type=email],input[type=file],select,textarea{width:100%;padding:12px;border:1px solid #e7e2ef;border-radius:11px;background:#fff;color:#363044}
textarea{min-height:90px;resize:vertical}input:focus,textarea:focus,select:focus{outline:2px solid #d8c9ff}
.card-lite{background:#f8f6fd;border-radius:15px;padding:15px}.empty{text-align:center;color:#9991aa;padding:35px 12px}
.caption{color:#aaa3b4;font-size:11px}.error{color:#a53650;background:#ffedf0;border-radius:10px;padding:12px;font-size:13px;margin-bottom:14px}
.success{color:#28795f}.notice{background:#f7f4fe;border-radius:13px;padding:14px;color:#65578b;font-size:12px;line-height:1.6}
a{color:#7761c4}img.proof{width:100%;max-height:240px;object-fit:contain;border-radius:11px;background:#f7f6f9}
.loading{padding:80px 20px;text-align:center;color:#726889}.login{max-width:430px;margin:11vh auto;padding:38px 30px;text-align:center}
.login .brand{font-size:30px}.login h1{font-size:25px}.badge{border-radius:30px;background:#eeeafa;color:#6d56ac;padding:5px 10px;font-size:11px}
@media(max-width:740px){.shell{padding:22px 13px}.top{margin-bottom:22px}.brand{font-size:21px}.headline{align-items:start}.headline h1{font-size:30px}.layout{grid-template-columns:1fr}.panel{padding:16px}.date{min-height:58px;padding:7px 5px;border-radius:10px}.calendar,.week{gap:4px}.month{font-size:19px}.date .num{font-size:12px}.headline{margin-bottom:14px}}

/* Private login gateway */
.auth-page{min-height:100dvh;display:flex;flex-direction:column;background:radial-gradient(circle at 89% 3%,#eee8ff 0,transparent 32%),#faf9fd}
.auth-head{max-width:1024px;width:100%;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:30px 24px;gap:10px}
.auth-brand{font-family:Georgia,serif;font-size:23px;font-weight:600;letter-spacing:-.6px;color:#29233e}
.auth-strap{font-size:11px;text-transform:uppercase;letter-spacing:2.1px;color:#857aa3}
.auth-card{width:min(440px,calc(100% - 32px));margin:auto;background:#fff;border:1px solid #ede8f5;border-radius:24px;padding:36px;box-shadow:0 22px 65px #7c6ca012}
.auth-eyebrow{font-size:10px;letter-spacing:2px;font-weight:800;color:#7d68b5}
.auth-card h1{font:normal clamp(30px,5vw,40px)/1.1 Georgia,serif;letter-spacing:-1px;color:#251d3d;margin:15px 0}
.auth-card p{font-size:14px;color:#807991;line-height:1.6}
.auth-card form{display:flex;flex-direction:column;gap:10px;margin-top:27px}
.auth-card label{font-size:12px;color:#453963;font-weight:700;margin-top:6px}
.auth-card input{width:100%;padding:14px 15px;border:1px solid #e9e4f2;background:#fff;border-radius:12px;outline:0;color:#29243a}
.auth-card input:focus{border-color:#8a71d0;box-shadow:0 0 0 3px #8a71d015}
.auth-button{margin-top:15px;background:#57418e;border:0;border-radius:12px;color:white;padding:14px 17px;font-size:14px;font-weight:700;width:100%}
.auth-button:disabled{opacity:.55;cursor:wait}
.auth-note{border-left:3px solid #ddcff7;background:#f8f5ff;padding:12px;border-radius:5px}
.auth-page footer{text-align:center;padding:24px;font-size:11px;color:#a29ab3}
@media(max-width:540px){.auth-head{padding:22px 20px}.auth-card{padding:30px 24px;border-radius:19px}}

.auth-link { display:block; margin:16px auto 0; border:0; background:transparent; color:#64519d; text-decoration:underline; text-underline-offset:3px; padding:6px 8px; font-size:13px; }
.auth-link:hover { color:#352464; }
#auth-message { min-height:24px; font-size:13px; line-height:1.6; }
