*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#1a1a2e;--card-bg:#24243e;--card-border:#3a3a5c;--text:#e0dff0;--text-dim:#9a98b8;--text-bright:#fff;--accent:#64b5f6;--warn:#ffb74d;--danger:#ef5350;--success:#81c784;--font-base:1.25rem;--font-lg:1.5rem;--font-xl:1.75rem;--font-clock:3.5rem;--radius:12px;--gap:.75rem}html,body{background:var(--bg);height:100%;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--font-base);-webkit-font-smoothing:antialiased;line-height:1.4;overflow:hidden}#app{flex-direction:column;height:100%;display:flex}.dashboard-header{background:var(--card-bg);border-bottom:1px solid var(--card-border);flex-shrink:0;grid-template-columns:1fr auto 1fr;align-items:center;padding:.5rem 1rem;display:grid}.header-date{font-size:var(--font-lg);color:var(--text-dim);text-transform:capitalize}.header-clock{font-size:var(--font-clock);color:var(--text-bright);font-variant-numeric:tabular-nums;font-weight:300}.header-status{color:var(--text-dim);justify-content:flex-end;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.status-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.status-dot.ok{background:var(--success)}.status-dot.warn{background:var(--warn)}.status-dot.error{background:var(--danger)}.dashboard-grid{gap:var(--gap);padding:var(--gap);flex:1;grid-template-rows:1fr 1fr;grid-template-columns:2fr 1.5fr 1fr;min-height:0;display:grid}.widget-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.widget-header{border-bottom:1px solid var(--card-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.widget-title{color:var(--text-bright);font-size:1.1rem;font-weight:600}.widget-meta{color:var(--text-dim);align-items:center;gap:.4rem;font-size:.75rem;display:flex}.widget-meta.stale{color:var(--warn)}.widget-body{flex:1;min-height:0;padding:.5rem .75rem;overflow-y:auto}.widget-body::-webkit-scrollbar{width:4px}.widget-body::-webkit-scrollbar-thumb{background:var(--card-border);border-radius:2px}.widget-empty{height:100%;color:var(--text-dim);justify-content:center;align-items:center;font-style:italic;display:flex}.schedule-columns{gap:1rem;height:100%;display:flex}.student-column{flex:1;min-width:0;overflow-y:auto}.student-name{color:var(--accent);margin-bottom:.25rem;font-size:1rem;font-weight:600}.student-hours{color:var(--text-dim);font-weight:400}.lesson{border-bottom:1px solid var(--card-border);align-items:baseline;gap:.75rem;padding:.3rem 0;display:flex}.lesson:last-child{border-bottom:none}.lesson-time{font-variant-numeric:tabular-nums;color:var(--text-dim);white-space:nowrap;min-width:6.5rem}.lesson-subject{color:var(--text-bright);font-weight:500}.lesson-subject--highlight{color:var(--success);font-weight:700}.lesson.current{background:#4fc3f71a;border-radius:6px;margin:0 -.4rem;padding:.3rem .4rem}.weather-main{align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.weather-temp{color:var(--text-bright);font-size:3rem;font-weight:300;line-height:1}.weather-temp .unit{color:var(--text-dim);font-size:1.5rem}.weather-condition{color:var(--text);font-size:1.1rem}.weather-summary{color:var(--text);border-top:1px solid var(--card-border);white-space:pre-line;margin-top:.5rem;padding-top:.5rem;font-size:.95rem;line-height:1.5}.weather-day-label{color:var(--text-dim);align-self:flex-end;margin-bottom:.3rem;font-size:1.1rem}.weather-details{color:var(--text-dim);gap:1.5rem;margin-top:.5rem;font-size:.9rem;display:flex}.confidence-high{color:var(--success)}.confidence-medium{color:var(--warn)}.confidence-low{color:var(--danger)}.event-item{border-bottom:1px solid var(--card-border);grid-template-columns:7.5rem auto 1fr;align-items:baseline;gap:.5rem;padding:.4rem 0;display:grid}.event-item:last-child{border-bottom:none}.event-date{font-variant-numeric:tabular-nums;color:var(--text-dim);white-space:nowrap;font-size:.9rem}.event-team{color:var(--accent);white-space:nowrap;background:#4fc3f726;border-radius:4px;justify-self:start;padding:.1rem .4rem;font-size:.8rem}.event-title{color:var(--text-bright)}.event-location{color:var(--text-dim);font-size:.85rem}.assignment-item{border-bottom:1px solid var(--card-border);flex-wrap:wrap;align-items:baseline;gap:.5rem;padding:.35rem 0;display:flex}.assignment-item:last-child{border-bottom:none}.assignment-due{font-variant-numeric:tabular-nums;white-space:nowrap;min-width:5.5rem;color:var(--accent);font-size:.9rem}.assignment-today .assignment-due{color:var(--warn);font-weight:700}.assignment-student{color:var(--accent);background:#4fc3f726;border-radius:4px;padding:.1rem .4rem;font-size:.8rem}.assignment-subject{color:var(--text-dim);font-size:.9rem}.assignment-title{color:var(--text-bright)}.feed-item{border-bottom:1px solid var(--card-border);padding:.35rem 0}.feed-item:last-child{border-bottom:none}.feed-header{align-items:baseline;gap:.5rem;display:flex}.feed-date{color:var(--text-dim);white-space:nowrap;font-size:.8rem}.feed-title{color:var(--text-bright);font-weight:500}.feed-sender{color:var(--text-dim);font-size:.85rem}.clickable{cursor:pointer}.clickable:active{background:#64b5f614}.modal-backdrop{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);width:90%;max-width:560px;max-height:80vh;padding:1.25rem;position:relative;overflow-y:auto}.modal-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:.25rem .5rem;font-size:1.25rem;line-height:1;position:absolute;top:.75rem;right:.75rem}.modal-title{color:var(--text-bright);margin-bottom:.75rem;padding-right:2rem;font-size:1.2rem;font-weight:600}.modal-meta-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.modal-tag{color:var(--accent);background:#4fc3f726;border-radius:4px;padding:.15rem .5rem;font-size:.85rem}.modal-date{color:var(--text-dim);font-size:.9rem}.modal-text{color:var(--text);white-space:pre-line;font-size:1rem;line-height:1.6}.modal-text--empty{color:var(--text-dim);font-style:italic}.placeholder-widget{border:2px dashed var(--card-border);border-radius:var(--radius);height:100%;color:var(--text-dim);justify-content:center;align-items:center;font-style:italic;display:flex}.feed-span[data-v-c07b6df9]{grid-column:2/4}
