@font-face{font-family:"Caviar Dreams";src:url("CaviarDreams.ttf") format("truetype");font-display:swap}
@font-face{font-family:"Caviar Dreams";src:url("Caviar_Dreams_Bold.ttf") format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:"Dancing Script";src:url("DancingScript.ttf") format("truetype");font-display:swap}
:root{--red:#e20d17;--red-dark:#a8070e;--yellow:#ffd319;--ink:#1c1917;--paper:#fffaf0;--muted:#706a62;--line:#ded6c8;--shadow:0 10px 26px rgba(28,25,23,.12)}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(circle at 12% 4%,rgba(255,211,25,.28),transparent 25rem),var(--paper);font-family:"Caviar Dreams",system-ui,sans-serif}.shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;min-height:74px;padding:10px clamp(16px,4vw,54px);color:#fff;background:var(--ink);border-bottom:5px solid var(--yellow)}
.brand{display:flex;align-items:center;gap:13px;color:inherit;text-decoration:none}.brand img{width:48px;height:48px;object-fit:contain}.brand strong{display:block;font-size:clamp(1rem,2vw,1.25rem)}.brand small{display:block;color:var(--yellow);font-size:.73rem}.user-tools{display:flex;align-items:center;gap:12px}.avatar{display:grid;width:42px;height:42px;place-items:center;border:2px solid var(--yellow);border-radius:50%;background:var(--red);font-weight:700}.logout{border:0;background:transparent;color:#fff;text-decoration:underline;cursor:pointer;font:inherit;font-size:.76rem}
.dashboard{width:min(920px,calc(100% - 32px));margin:0 auto;padding:34px 0 70px}.hello{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:26px}.eyebrow{margin:0 0 4px;color:var(--red-dark);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.73rem}h1{margin:0;font:700 clamp(2.3rem,6vw,4.6rem)/.95 "Dancing Script",cursive}.hello>div>p:last-child{margin:10px 0 0;color:var(--muted)}.score{min-width:140px;padding:12px 16px;border:2px solid var(--ink);border-radius:18px 18px 4px 18px;background:var(--yellow);text-align:center;transform:rotate(1.5deg);box-shadow:5px 5px 0 var(--ink)}.score strong{display:block;font-size:1.55rem}.score span{font-size:.75rem;font-weight:700}
.panel{overflow:hidden;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.94);box-shadow:var(--shadow)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:20px 20px 12px}.panel-head h2{margin:0;font-size:1.2rem}.count{display:grid;min-width:32px;height:32px;place-items:center;border-radius:50%;background:var(--red);color:#fff;font-weight:700}.task-list{display:grid;gap:12px;padding:8px 16px 18px}.task{position:relative;padding:18px;border:1px solid var(--line);border-left:7px solid var(--red);border-radius:14px;background:#fff}.task.overdue{border:3px solid var(--red);border-left-width:9px;background:#fff7f4;box-shadow:0 6px 0 rgba(226,13,23,.13)}.overdue-label{display:inline-block;margin:-8px 0 12px;padding:6px 10px;border-radius:8px;background:var(--red);color:#fff;font-weight:700;font-size:.78rem;transform:rotate(-1deg)}.task h3{margin:0 0 9px;font-size:1.05rem}.task-description{margin:0 0 12px;color:var(--muted);font-size:.88rem;line-height:1.5}.meta{display:flex;flex-wrap:wrap;gap:7px 14px;color:var(--muted);font-size:.8rem}.badge{color:var(--red-dark);font-weight:700}.empty{padding:32px;text-align:center}.empty strong{font:700 2rem "Dancing Script",cursive}.empty p{color:var(--muted)}.admin-link{text-align:right}.admin-link a{color:var(--red-dark);font-weight:700}
.messages{width:min(920px,calc(100% - 32px));margin:18px auto 0}.messages p{margin:0;padding:12px 16px;border:2px solid var(--ink);border-radius:10px;background:var(--yellow);font-weight:700}.auth-wrap{display:grid;min-height:calc(100vh - 79px);place-items:center;padding:34px 16px}.auth-card{width:min(480px,100%);padding:clamp(24px,5vw,42px);border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.95);box-shadow:var(--shadow)}.auth-card h1{font-size:clamp(2.8rem,9vw,4.2rem)}.auth-intro{color:var(--muted);line-height:1.55}.auth-form{display:grid;gap:9px;margin-top:22px}.auth-form label{margin-top:7px;font-weight:700}.auth-form input{width:100%;min-height:46px;padding:10px 12px;border:2px solid var(--ink);border-radius:10px;background:#fff;font:inherit}.auth-form input:focus{outline:4px solid rgba(255,211,25,.55)}.btn{min-height:44px;padding:9px 14px;border:2px solid var(--ink);border-radius:11px;background:#fff;color:var(--ink);cursor:pointer;font:700 1rem "Caviar Dreams",sans-serif}.btn.primary{margin-top:14px;background:var(--yellow);box-shadow:3px 3px 0 var(--ink)}.form-error,.field-errors{padding:10px;border-left:5px solid var(--red);background:#fff0ed;color:var(--red-dark);font-weight:700}.field-errors ul{margin:0;padding-left:20px}.help{color:var(--muted);font-size:.76rem;line-height:1.4}.help ul{margin:4px 0;padding-left:20px}.auth-hint{margin:22px 0 0;color:var(--muted);font-size:.75rem;line-height:1.5}
@media(max-width:600px){.topbar{min-height:64px;padding:7px 14px}.brand img{width:42px;height:42px}.brand small,.logout{display:none}.dashboard{width:min(100% - 24px,620px);padding-top:24px}.hello{align-items:flex-start;gap:12px}.hello h1{font-size:2.8rem}.score{min-width:96px;padding:9px}.score strong{font-size:1.2rem}.score span{font-size:.62rem}.panel{border-radius:18px}.panel-head{align-items:flex-start;padding:18px 15px 10px}.task-list{padding:8px 11px 14px}.task{padding:15px}.auth-wrap{align-items:start}}
