*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}body{color:#333;background:#fafafa;font-family:Verdana,Tahoma,sans-serif;font-size:14px}a{color:#0080ff;text-decoration:none}a:hover{text-decoration:underline}.topbar{color:#f1f1f1;background:linear-gradient(#606060,#404040);padding:12px 24px;box-shadow:0 1px 6px #0000004d}.topbarTitle{letter-spacing:.04em;margin:0;font-family:Arial,sans-serif;font-size:18px;font-weight:700}.layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:16px;max-width:1100px;margin:0 auto;padding:16px;display:grid}@media (max-width:900px){.layout{grid-template-columns:1fr}}.calendar{background:#f8f8f8;border-radius:6px;overflow:hidden;box-shadow:0 0 12px #0000002e}.calendarHead{text-align:center;background:linear-gradient(#f8f8f8,#d8d8d8);border-bottom:1px solid gray;padding:8px 0}.calendarTitle{color:#404040;text-shadow:1px 1px 1px #fff;font-family:Arial,sans-serif;font-size:14px;font-weight:700}.calendarBody{padding:10px}.calendarFoot{background:#f0f0f0;border-top:1px solid #ddd;justify-content:center;align-items:center;gap:12px;padding:10px;display:flex}.calendarFoot .yearLabel{color:#555;font-size:22px;font-weight:700}.calendarFoot .semesterLabel{color:#777;font-size:12px}.btn{cursor:pointer;color:#333;background:linear-gradient(#fdfdfd,#e3e3e3);border:1px solid #aaa;border-radius:4px;padding:6px 12px;font-family:Verdana,sans-serif;font-size:12px}.btn:hover{background:linear-gradient(#fff,#e8e8e8);border-color:#888}.btn:active{background:#d8d8d8}.calendarGrid{background:#303030;border:1px solid #202020;border-radius:3px;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}@media (max-width:1000px){.calendarGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:600px){.calendarGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:400px){.calendarGrid{grid-template-columns:1fr}}.monthPanel{border-collapse:collapse;table-layout:fixed;background:#f8f8f8;width:100%}.monthTitle{color:#202020;text-align:center;text-shadow:1px 1px 1px #fff;background:linear-gradient(#f0f0f0,#d8d8d8);border-bottom:1px solid #000;height:18px;padding:0;font-family:Verdana,sans-serif;font-size:11px;font-weight:700}.day{color:#505a78;background:#f8f8f8;font-family:Verdana,sans-serif;font-size:10px;line-height:15px}.day>td{vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;height:15px;padding:0 1px;overflow:hidden}.monthPanel col.colNum{width:16px}.monthPanel col.colLetter{width:11px}.monthPanel col.colRight{width:15px}.day .dayNum{text-align:right;padding:0 1px 0 0}.day .dayLetter{text-align:center;color:#888;padding:0}.day .dayLabel{padding-left:2px}.day .dayRight{text-align:right;padding:0 1px 0 0}.daySaturday{color:#505a78;background:#e8e8ff}.daySunday .dayLetter,.dayHoliday .dayLetter,.dayToday .dayLetter{color:#fff}.daySunday{color:#fff;background:#8bf}.dayHoliday{color:#fff;background:#faa}.dayToday{font-weight:700;color:#fff!important;background:#ff4040!important}.dayPad{background:#f8f8f8}.weekNum{color:#555;font-size:9px;font-weight:400}.day .dayRight{position:relative}.vacBar{gap:0;font-size:0;line-height:0;display:flex;position:absolute;top:0;bottom:0;right:1px}.vacStripe{background:0 0;width:2px;height:100%;display:block}.vacZone-A{background:red}.vacZone-B{background:#ff8000}.vacZone-C{background:#00c000}.sidebar{gap:12px;display:grid}.panel{color:#444;background:#f1f1f1;border-radius:5px;padding:10px 12px;font-family:Tahoma,sans-serif;font-size:12px;box-shadow:0 0 8px #00000026}.panelTitle{color:#404040;margin-bottom:6px;font-weight:700}.vacationPanel label{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.zoneLegend{gap:4px;display:grid}.zoneTag{border-left:3px solid #ccc;padding-left:8px;font-size:11px;line-height:14px;display:block}.zoneTag-A{color:#b00000;border-color:red}.zoneTag-B{color:#a50;border-color:#ff8000}.zoneTag-C{color:#007000;border-color:#00c000}.zoneSwatch{display:none}.zoneCities{color:#666;font-size:10px;display:block}.vacSource{color:#888;margin-top:6px;font-size:10.5px}.wTimer{text-align:center;background:#f1f1f1}.wTimerWeekday{color:#666;text-transform:uppercase;letter-spacing:.04em;font-size:11px}.wTimerDate{color:#404040;font-size:18px;font-weight:700}.wTimerTime{color:#555;margin-top:2px;font-family:Courier New,monospace;font-size:16px}.about{color:#777;font-size:11px;line-height:1.4}
