:root{--ink:#202a41;--muted:#8790a2;--paper:#f8f9fd;--line:#e9edf4;--purple:#6455df;--purple-dark:#4d3cc8;--soft-purple:#f0efff;--shadow:0 10px 30px rgba(40,46,75,.06)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:14px}.app-shell{display:flex;min-height:100vh}.sidebar{width:258px;background:#fff;border-right:1px solid var(--line);padding:28px 16px 18px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:8}.brand{font-family:Fraunces,serif;text-decoration:none;color:#28334b;font-size:27px;font-weight:700;letter-spacing:-1.5px;display:flex;gap:8px;align-items:center;padding:0 10px 38px}.brand>span:last-child span{color:var(--purple)}.brand-mark{display:grid;place-items:center;background:var(--purple);color:#fff;width:29px;height:29px;border-radius:9px;font:700 18px DM Sans}.main-nav{display:grid;gap:6px}.nav-item,.add-subject,.dark-switch{border:0;background:transparent;font:500 14px DM Sans;color:#677186;cursor:pointer;text-align:left}.nav-item{height:46px;padding:0 12px;border-radius:10px;display:flex;align-items:center;gap:14px}.nav-item span{font-size:21px;width:20px;text-align:center;font-weight:400}.nav-item b{font-size:11px;background:#fff0ef;color:#e25b56;padding:2px 7px;border-radius:8px;margin-left:auto}.nav-item.active{background:var(--soft-purple);color:var(--purple);font-weight:700}.nav-label{font-size:10px;letter-spacing:1.2px;font-weight:700;color:#a8afbd;margin:32px 12px 10px}.subject-nav{display:grid;gap:2px}.subject-nav button{border:0;background:none;text-align:left;padding:8px 12px;color:#697389;font:500 13px DM Sans;cursor:pointer;border-radius:7px}.subject-nav button:hover{background:var(--paper)}.subject-dot{width:8px;height:8px;display:inline-block;border-radius:50%;margin-right:11px}.add-subject{padding:12px;color:var(--purple);font-weight:700}.sidebar-bottom{margin-top:auto}.dark-switch{width:100%;display:flex;align-items:center;gap:12px;padding:12px;color:#5c6578}.dark-switch span:first-child{font-size:19px}.dark-switch i{display:block;width:30px;height:17px;background:#dfe2eb;border-radius:10px;margin-left:auto;position:relative}.dark-switch i:after{content:"";position:absolute;width:13px;height:13px;border-radius:50%;background:#fff;left:2px;top:2px;transition:.2s}.profile{border-top:1px solid var(--line);margin-top:14px;padding:19px 4px 0;display:flex;align-items:center;gap:10px}.avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#f4a887;color:#fff;font-weight:bold}.profile strong,.profile small{display:block}.profile strong{font-size:12px}.profile small{color:#99a1ae;font-size:10px;margin-top:3px}.profile button{border:0;background:none;margin-left:auto;color:#9ba2af}main{margin-left:258px;width:calc(100% - 258px);padding-bottom:50px}.topbar{height:86px;padding:0 clamp(25px,4vw,65px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(255,255,255,.65)}.search{height:40px;width:min(330px,45vw);background:#fff;border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;padding:0 11px;gap:9px}.search span{font-size:24px;line-height:1;color:#a3aab8}.search input{border:0;outline:0;font:13px DM Sans;width:100%;color:var(--ink)}kbd{font:11px DM Sans;color:#9ca4b2;border:1px solid var(--line);border-radius:4px;padding:2px 5px;white-space:nowrap}.top-actions{display:flex;align-items:center;gap:17px}.icon-button{border:0;background:transparent;color:#5e687b;font-size:22px;position:relative;cursor:pointer}.icon-button em{position:absolute;top:3px;right:2px;width:7px;height:7px;border-radius:100%;background:#fa675e;border:1px solid white}.new-button,.save-button{border:0;background:var(--purple);color:#fff;border-radius:8px;padding:12px 17px;font:700 13px DM Sans;cursor:pointer;box-shadow:0 5px 12px #6455df35}.mobile-menu{display:none}.view{display:none;max-width:1270px;margin:auto;padding:43px clamp(25px,4vw,65px)}.view.active{display:block}.welcome{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}.eyebrow{font-size:10px;letter-spacing:1.25px;color:#929aac;font-weight:700;margin:0 0 8px}.welcome h1,.page-title h1{font:700 29px Fraunces,serif;letter-spacing:-.8px;margin:0}.welcome h1 span{color:#f2b433;font-size:20px}.welcome h2{font-size:14px;font-weight:400;color:#8992a3;margin:7px 0 0}.date-badge{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 12px;box-shadow:var(--shadow)}.date-badge strong{font:700 25px Fraunces;color:var(--purple)}.date-badge span{font-size:9px;line-height:12px;color:#9098a8;font-weight:700}.today-hero{height:234px;border-radius:15px;background:linear-gradient(113deg,#6655dd,#8b7bf3);color:white;padding:32px 39px;display:flex;justify-content:space-between;overflow:hidden;position:relative;box-shadow:0 12px 22px #6254d52c}.today-hero .eyebrow{color:#cfc9ff}.today-hero h2{font:700 25px/1.17 Fraunces;margin:0;letter-spacing:-.5px}.white-button{border:0;background:#fff;color:var(--purple);font:700 12px DM Sans;border-radius:7px;padding:11px 14px;margin-top:19px;cursor:pointer}.white-button span{margin-left:10px}.hero-orbit{width:300px;position:relative}.hero-orbit:before{content:"";position:absolute;width:280px;height:280px;border-radius:50%;border:1px solid #ffffff2d;top:-55px;left:0}.hero-orbit:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;border:1px solid #ffffff22;top:-5px;left:50px}.orbit-card{position:absolute;z-index:2;width:126px;height:78px;padding:11px;background:#ffffffed;color:#47516b;border-radius:9px;box-shadow:0 10px 18px #3e33984d}.orbit-card span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:6px;background:#fff1d5;color:#edab34;font-weight:bold;float:left;margin-right:7px}.orbit-card b,.orbit-card small{display:block;font-size:11px}.orbit-card small{font-size:10px;color:#a5aaba;margin-top:3px}.card-1{right:14px;top:18px;transform:rotate(4deg)}.card-2{left:34px;top:118px;transform:rotate(-5deg)}.card-2 span{background:#e9e5ff;color:var(--purple)}.hero-check{z-index:1;position:absolute;top:82px;left:142px;width:45px;height:45px;border-radius:50%;background:#ffe6a8;color:#eaa72b;display:grid;place-items:center;font-size:21px}.dashboard-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:21px;margin-top:21px}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:25px;box-shadow:var(--shadow)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:17px}.panel h2{font:700 20px Fraunces;letter-spacing:-.35px;margin:0}.link-button{border:0;background:none;color:var(--purple);font:700 12px DM Sans;cursor:pointer;padding:4px 0}.upcoming-item{display:flex;align-items:center;padding:12px 0;border-top:1px solid #f0f1f5;gap:13px}.upcoming-item:first-child{border-top:0}.date-square{width:42px;height:42px;border-radius:8px;background:#f0efff;text-align:center;padding-top:5px;flex:none}.date-square strong,.date-square span{display:block}.date-square strong{font-size:16px;color:var(--purple)}.date-square span{font-size:8px;color:#8b84ca;font-weight:700}.task-info{min-width:0}.task-info strong{font-size:13px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-info small{font-size:11px;color:#9aa1af;margin-top:4px;display:block}.type-tag{font-size:10px;padding:4px 8px;border-radius:5px;font-weight:700;margin-left:auto;white-space:nowrap}.tag-Prova{background:#fff0ef;color:#e86c63}.tag-Trabalho{background:#fff8e9;color:#d49b2c}.tag-Tarefa{background:#ecf8f0;color:#57a174}.tag-Apresentação{background:#eaf5ff;color:#4c93c4}.priority-dot{width:8px;height:8px;border-radius:50%;margin-left:auto}.urgente{background:#ee655f}.normal{background:#f3b23e}.tranquilo{background:#59b579}.progress-panel{text-align:center}.progress-panel h2{font-size:19px}.donut-wrap{display:flex;justify-content:center;margin:18px}.donut{width:122px;height:122px;border-radius:50%;background:conic-gradient(var(--purple) calc(var(--progress)*1%),#eceef5 0);display:grid;place-items:center;position:relative}.donut:before{content:"";position:absolute;background:#fff;border-radius:50%;inset:12px}.donut>div{position:relative;display:grid}.donut strong{font:700 22px Fraunces}.donut span{font-size:9px;color:#a2a9b7}.progress-copy{margin:0;font-size:12px}.progress-copy b{color:var(--purple)}.muted{font-size:11px;color:#9ba2b0;margin:6px 0 0}.calendar-panel{margin-top:21px}.calendar-arrows{display:flex;align-items:center;gap:13px}.calendar-arrows button{border:1px solid var(--line);width:29px;height:29px;background:#fff;border-radius:6px;color:#6e7789;cursor:pointer}.calendar-arrows strong{font-size:13px;min-width:95px;text-align:center}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-week{padding:0 5px;border-bottom:1px solid var(--line)}.calendar-week span{font-size:9px;font-weight:700;color:#adb4c1;padding:0 10px 11px}.calendar-grid{min-height:150px}.calendar-day{padding:10px;min-height:62px;border-right:1px solid #f0f1f5;border-bottom:1px solid #f0f1f5;position:relative;font-size:11px;color:#7b8495}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{color:#c9ced8}.calendar-day.today .day-number{background:var(--purple);color:white;border-radius:50%;display:grid;place-items:center;width:22px;height:22px;margin-top:-4px}.cal-event{font-size:8px;line-height:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:3px;padding:0 3px;margin-top:3px;background:#f1efff;color:#6858db}.page-title{margin-bottom:28px}.page-title p:last-child{color:#8e97a8;margin:7px 0 0}.filters{display:flex;gap:10px;margin-bottom:19px}.filters select{border:1px solid var(--line);background:#fff;padding:10px 31px 10px 12px;border-radius:7px;font:12px DM Sans;color:#667085;outline:0}.task-list.full{display:grid;gap:11px}.full .upcoming-item{padding:17px 19px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);border-top:1px solid var(--line)}.full .task-info strong{font-size:14px}.full .check-task{width:21px;height:21px;border:2px solid #ccd2df;border-radius:50%;background:#fff;color:#fff;cursor:pointer}.full .check-task.completed{background:#61b785;border-color:#61b785}.full .completed-title{text-decoration:line-through;color:#a3a9b4}.task-extra{font-size:11px;color:#9aa1af;margin-left:auto}.empty{text-align:center;color:#98a0ad;padding:42px!important;display:block!important}.modal-backdrop{display:none;position:fixed;inset:0;background:#15203c78;z-index:20;place-items:center;padding:20px}.modal-backdrop.open{display:grid}.task-modal{width:min(510px,100%);max-height:93vh;overflow:auto;background:#fff;border-radius:15px;padding:27px;box-shadow:0 20px 80px #1823444d}.modal-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:18px}.modal-head h2{font:700 23px Fraunces;margin:0}.close-modal{border:0;background:#f3f4f8;color:#687185;width:28px;height:28px;border-radius:50%;font-size:21px;line-height:1;cursor:pointer}.task-modal>label,.two-cols>label{font-size:12px;font-weight:700;color:#4e596d;display:grid;gap:6px;margin-top:13px}.task-modal input:not([type=radio]),.task-modal select,.task-modal textarea{border:1px solid #dfe3ec;border-radius:7px;padding:10px;font:13px DM Sans;color:var(--ink);outline-color:var(--purple);width:100%;background:white}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:13px}.priority-options{display:flex;gap:13px}.priority-options label{font-weight:500;display:flex;align-items:center;gap:5px;font-size:11px}.priority-options input{accent-color:var(--purple)}.priority-options i{width:8px;height:8px;border-radius:50%}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:23px}.cancel-button{border:0;background:transparent;color:#778092;font:600 13px DM Sans;padding:10px;cursor:pointer}.save-button{padding:11px 16px}.toast{position:fixed;right:25px;bottom:25px;background:#25324d;color:#fff;border-radius:8px;padding:12px 17px;font-size:13px;opacity:0;transform:translateY(15px);transition:.25s;pointer-events:none;z-index:30}.toast.show{opacity:1;transform:none}.large-calendar{margin:0}.large-calendar .calendar-grid{min-height:470px}.large-calendar .calendar-day{min-height:92px}.large-calendar .cal-event{font-size:10px;line-height:16px;padding:1px 5px}body.dark{--ink:#edf0fa;--muted:#aeb6c8;--paper:#151927;--line:#2a3043;--soft-purple:#302d55;--shadow:none}.dark .sidebar,.dark .panel,.dark .topbar,.dark .search,.dark .date-badge,.dark .filters select,.dark .calendar-arrows button,.dark .task-modal,.dark .full .upcoming-item{background:#1e2434}.dark .search input,.dark .task-modal input:not([type=radio]),.dark .task-modal select,.dark .task-modal textarea{background:#1a2030;color:#edf0fa;border-color:#343b50}.dark .brand{color:#fff}.dark .donut:before{background:#1e2434}.dark .dark-switch i{background:var(--purple)}.dark .dark-switch i:after{left:15px}.dark .calendar-day{border-color:#292f41}.dark .cal-event{background:#33305c;color:#cbc6ff}@media(max-width:850px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.mobile-menu{display:block;border:0;background:none;font-size:20px;color:var(--ink)}main{margin-left:0;width:100%}.topbar{height:68px}.view{padding-top:28px}.today-hero{padding:27px;height:220px}.hero-orbit{display:none}.dashboard-grid{grid-template-columns:1fr}.top-actions{gap:8px}.new-button span{display:none}.new-button{font-size:0;padding:11px 14px}.new-button:first-letter{font-size:17px}.search{width:45vw}.calendar-day{min-height:57px;padding:8px 5px}.calendar-week span{padding-left:5px}.cal-event{font-size:7px}.large-calendar .calendar-grid{min-height:390px}.large-calendar .calendar-day{min-height:77px}}@media(max-width:480px){.topbar{padding:0 17px}.search{width:42vw}.search kbd{display:none}.view{padding:25px 17px}.welcome h1{font-size:25px}.date-badge{display:none}.today-hero h2{font-size:23px}.today-hero{padding:27px 25px}.panel{padding:19px}.filters{overflow:auto}.filters select{flex:none}.two-cols{grid-template-columns:1fr}.priority-options{flex-wrap:wrap}.calendar-panel{overflow:hidden}.calendar-grid{width:100%}.calendar-day{font-size:10px}.calendar-week span{font-size:8px}.task-extra{display:none}}
