@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&display=swap');
:root{--bg:#eff6ef;--paper:#fff;--sub:#f4f9f4;--text:#234432;--muted:#799386;--green:#317c4c;--green-hover:#24663e;--line:#e2eee5;--shadow:0 12px 38px rgba(43,80,50,.055);--work:#77a9e6;--study:#e9b65d;--personal:#88c996;--important:#ed9292}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px 'DM Sans',system-ui,sans-serif}body.dark{--bg:#0d1b16;--paper:#1a3025;--sub:#233e2e;--text:#e5f5e9;--muted:#a0bba9;--green:#6ac589;--green-hover:#8bd9a3;--line:#30533c;--shadow:0 15px 40px rgba(0,0,0,.13)}button,input,textarea,select{font:inherit}button{cursor:pointer;transition:.15s}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #92cf9c;outline-offset:2px}.hidden{display:none!important}.app{min-height:100vh;display:flex}.sidebar{width:240px;min-width:240px;background:var(--paper);border-right:1px solid var(--line);padding:30px 18px;display:flex;flex-direction:column;gap:43px;position:sticky;top:0;height:100vh}.logo{display:flex;gap:10px;align-items:center;font-weight:800;font-size:23px;letter-spacing:-1px}.logo-icon,.brand-icon{background:#2e7e4a;color:#fff;padding:8px 12px;border-radius:13px;font-size:25px}.logo small{display:block;letter-spacing:0;font-size:10px;color:var(--muted);font-weight:500}.aside-title,.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.7px;color:var(--muted)}.aside-title{margin:0 0 13px 11px}.aside-section{display:grid;gap:6px}.nav-btn{border:0;background:transparent;color:var(--muted);border-radius:9px;padding:12px 13px;text-align:left;display:flex;gap:13px;align-items:center;font-weight:700}.nav-btn.active,.nav-btn:hover{color:var(--green);background:var(--sub)}.category-row{display:flex;gap:10px;align-items:center;padding:8px 12px;color:var(--muted);font-size:12px}.cat{display:inline-block;width:9px;height:9px;border-radius:50%;background:#adbcb1;flex-shrink:0}.cat.work{background:var(--work)}.cat.study{background:var(--study)}.cat.personal{background:var(--personal)}.cat.important{background:var(--important)}.side-footer{margin-top:auto;display:grid;gap:12px}.main{flex:1;min-width:0;max-width:1600px;margin:auto;padding:43px clamp(16px,3vw,48px) 20px}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:34px}.topbar h1{font-size:clamp(23px,2.2vw,34px);margin:7px 0 6px;letter-spacing:-1.2px}.topbar h1 span{color:#86b68d}.topbar p{margin:0;color:var(--muted)}.top-actions,.month-actions,.modal-actions{display:flex;align-items:center;gap:10px}.primary{background:#2e7b4c;color:white;border:1px solid #2e7b4c;border-radius:10px;padding:12px 17px;font-weight:700}.primary:hover{background:#23633c}.secondary{background:var(--paper);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:11px 15px;font-weight:700}.secondary:hover,.icon-btn:hover{background:var(--sub)}.full{width:100%}.dashboard{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(285px,1fr);gap:20px;align-items:start}.calendar-panel,.detail-panel,.sticker-panel,.upcoming-panel{background:var(--paper);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}.calendar-panel{padding:26px 22px}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}.calendar-header h2{font-size:25px;text-transform:capitalize;letter-spacing:-.6px;margin:6px 0 0}.icon-btn{height:37px;min-width:37px;border:1px solid var(--line);background:var(--paper);color:var(--text);border-radius:9px;font-size:24px;line-height:1}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekdays{text-align:center;color:var(--muted);font-size:11px;font-weight:800;margin-bottom:10px}.day{min-height:92px;min-width:0;border-radius:10px;border:1px solid var(--line);background:var(--sub);padding:8px;text-align:left;color:var(--text);position:relative;overflow:hidden}.day:not(.outside):hover{border-color:#74b588;transform:translateY(-1px)}.day.selected{background:color-mix(in srgb,var(--green) 17%,var(--paper));border:2px solid var(--green);padding:7px}.day.outside{opacity:.25;cursor:default}.day.today .number{background:var(--green);color:var(--paper);padding:3px 6px;border-radius:7px}.day .number{font-size:12px;font-weight:800}.day-sticker{display:block;width:29px;height:29px;object-fit:contain;margin:2px auto 1px}.day-event{background:color-mix(in srgb,var(--green) 15%,var(--paper));font-size:10px;border-left:3px solid var(--green);border-radius:3px;padding:3px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px}.day-event.work{border-color:var(--work)}.day-event.study{border-color:var(--study)}.day-event.personal{border-color:var(--personal)}.day-event.important{border-color:var(--important)}.day-more{font-size:9px;color:var(--muted)}.legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:20px;font-size:11px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:6px}.rightcol{display:grid;gap:18px}.detail-panel,.sticker-panel,.upcoming-panel{padding:22px}.detail-panel h2{font-size:24px;margin:7px 0 4px}.detail-panel>p{color:var(--muted);margin:0 0 16px}.event-card{padding:13px;margin:8px 0;border-radius:10px;background:var(--sub);border-left:3px solid var(--green);cursor:pointer}.event-card .event-top{font-size:11px;color:var(--muted);margin-bottom:3px}.event-card strong{font-size:13px}.event-card p{margin:6px 0 0;color:var(--muted);font-size:11px;white-space:pre-wrap}.empty{color:var(--muted);font-size:12px;padding:14px 0}.sticker-heading{display:flex;align-items:start;justify-content:space-between}.rightcol h3{margin:7px 0 16px;font-size:18px}.link-btn{border:0;background:none;color:var(--green);font-weight:700;font-size:12px;padding:8px}.stickers{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.sticker{border-radius:9px;background:var(--sub);border:1px solid var(--line);padding:8px 3px;display:flex;justify-content:center;align-items:center;min-height:48px}.sticker:hover,.sticker.active{border:2px solid var(--green);padding:7px 2px}.sticker img{width:31px;height:31px}.sticker-note{color:var(--muted);font-size:11px;line-height:1.5;margin:13px 0 0}.upcoming-item{display:flex;align-items:center;gap:11px;padding:10px 0;border-top:1px solid var(--line);cursor:pointer}.upcoming-date{background:var(--sub);padding:8px;border-radius:7px;min-width:43px;text-align:center;color:var(--green);font-weight:800;font-size:12px}.upcoming-item strong{font-size:12px}.upcoming-item small{display:block;color:var(--muted);margin-top:4px}footer{margin:25px 0;color:var(--muted);font-size:11px;text-align:center}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 30% 20%,#d5efda,var(--bg) 60%)}.auth-card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:34px;width:min(100%,420px);box-shadow:var(--shadow);text-align:center}.auth-card h1{font-size:30px;margin:14px 0 4px}.auth-card p{color:var(--muted);margin-bottom:24px}.auth-card form{text-align:left;display:grid;gap:11px}.auth-card label,.modal-card label{font-weight:700;font-size:12px}input,textarea,select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--sub);color:var(--text);margin-top:6px}#authHint{color:var(--muted);line-height:1.5}.error{color:#d75e67;font-size:12px;min-height:18px}.modal-backdrop{position:fixed;inset:0;z-index:20;background:#06190eb3;display:grid;place-items:center;padding:18px}.modal-card{width:min(100%,540px);max-height:95vh;overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:26px}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0;font-size:23px}.modal-card form{display:grid;gap:16px;margin-top:17px}.modal-card label{display:block}.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{margin-top:5px}.modal-actions span{flex:1}.danger{border:0;background:transparent;color:#dd6770;font-weight:700}.toast{position:fixed;bottom:22px;right:22px;background:#234d34;color:white;padding:13px 18px;border-radius:10px;box-shadow:var(--shadow);display:none;z-index:30}.toast.visible{display:block}@media(max-width:1000px){.sidebar{width:185px;min-width:185px}.dashboard{grid-template-columns:1fr}.rightcol{grid-template-columns:repeat(2,minmax(0,1fr))}.upcoming-panel{grid-column:span 2}}@media(max-width:700px){.app{display:block}.sidebar{width:100%;height:auto;position:static;padding:13px 16px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.logo{font-size:19px}.aside-section{display:none}.side-footer{margin:0;display:flex;gap:6px}.side-footer .secondary{width:auto;font-size:11px;padding:8px}.side-footer .link-btn{font-size:11px}.main{padding:21px 12px}.topbar{display:block;margin-bottom:20px}.topbar h1{font-size:24px}.top-actions{margin-top:18px}.top-actions button{flex:1;font-size:12px;padding:11px 8px}.calendar-panel{padding:15px 9px}.calendar-header{padding:0 6px}.calendar-header h2{font-size:21px}.calendar-grid,.weekdays{gap:3px}.day{min-height:68px;padding:4px;border-radius:7px}.day.selected{padding:3px}.day-sticker{width:23px;height:23px}.day-event{font-size:8px;padding:2px}.day-more{font-size:8px}.rightcol{grid-template-columns:1fr}.upcoming-panel{grid-column:auto}.legend{gap:8px}.fields{grid-template-columns:1fr}.modal-card{padding:18px}}
