/* V3.3 study dashboard. No game-specific styles are loaded from this file. */
.v33-section{display:grid;gap:12px;min-width:0}
.v33-section h2{margin:2px 0 3px;font-size:17px;line-height:1.25;color:var(--study-text,#182943)}
.v33-head{display:flex;align-items:start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.v33-help{font-size:12px;line-height:1.5;color:var(--study-muted,#697c94);margin:0}
.v33-actions{display:flex;gap:5px}
.v33-section button{min-height:35px;border:1px solid #cad7e9;border-radius:9px;background:var(--study-surface-soft,#f5f8ff);color:var(--study-text,#213653);font-weight:700;padding:8px 12px;cursor:pointer}
.v33-section button:hover{border-color:#4679f2}
.v33-section button:focus-visible{outline:3px solid #7faef6;outline-offset:2px}
.v33-section input,.v33-section textarea,.v33-section select{box-sizing:border-box;width:100%;min-width:0;padding:9px 10px;border:1px solid #bdcbe0;border-radius:9px;background:var(--study-surface,#fff);color:var(--study-text,#182943);font:inherit}
.v33-section label{display:grid;gap:5px;color:var(--study-text,#182943);font-size:12px;font-weight:700}
.v33-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end}
.v33-input-grid>button{grid-column:1/-1}
.v33-month{font-size:16px}
.v33-weekdays,.v33-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.v33-weekdays span{text-align:center;font-size:10px;color:var(--study-muted,#718095);font-weight:800}
.v33-calendar .v33-cal-day{padding:5px 1px;min-height:48px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;font-size:12px;border-radius:9px}
.v33-cal-day small{background:#3c77db;border-radius:99px;font-size:9px;color:#fff;min-width:16px;height:16px;display:grid;place-items:center}
.v33-cal-day.outside{opacity:.35}
.v33-cal-day.today{border-color:#5381fa}
.v33-cal-day.selected{background:#436cef;color:#fff}
.v33-selected,.v33-rows{display:grid;gap:7px}
.v33-selected>strong{font-size:13px}
.v33-selected p,.v33-rows p{color:var(--study-muted,#687a93);font-size:12px;margin:0}
.v33-cal-task,.v33-class-item,.v33-notice-row{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:9px;background:var(--study-surface-soft,#f7f9fe);border:1px solid #d9e3f0;border-radius:10px}
.v33-cal-task>span,.v33-class-item>span,.v33-notice-row>span{font-size:11px;min-width:0;overflow-wrap:anywhere;flex:1}
.v33-cal-task button,.v33-class-item button,.v33-notice-row button{font-size:10px;padding:6px 8px;flex:0 0 auto}
.v33-step-list{display:grid;gap:6px}
.v33-step{display:flex!important;align-items:center;gap:9px;font-weight:500!important}
.v33-step input{width:16px!important;height:16px}
.v33-feedback{min-height:16px;margin:0;font-size:11px;color:var(--study-muted,#667a92)}
.v33-badge-list{display:flex;flex-wrap:wrap;gap:6px}
.v33-badge-list span{font-size:10px;padding:6px 9px;border-radius:20px;background:#e9efff;color:#284e9a}
#v33XpStatus>strong{font-size:17px;color:#3f65d6}
#v33XpStatus p{font-size:12px;color:var(--study-muted,#687a93)}
.v33-upload-label{border:1px dashed #819dc4;padding:11px;border-radius:10px;cursor:pointer}
.v33-upload-label input{font-size:11px}
[data-theme=dark] .v33-section button,[data-theme=dark] .v33-section input,[data-theme=dark] .v33-section textarea,[data-theme=dark] .v33-section select{background:#172642;color:#e6f0ff;border-color:#435472}
[data-theme=dark] .v33-cal-task,[data-theme=dark] .v33-class-item,[data-theme=dark] .v33-notice-row{background:#172642;border-color:#354b70}
[data-theme=dark] .v33-badge-list span{background:#243964;color:#c2d8ff}
@media(max-width:670px){.v33-input-grid{grid-template-columns:1fr}.v33-calendar .v33-cal-day{min-height:41px}.v33-head{gap:8px}}

/* 2026–2030 calendar navigator: accessible on phones and tablets. */
.v33-calendar-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.v33-calendar-toolbar .v33-month{margin-right:auto;min-width:145px}
.v33-calendar-toolbar>label{display:flex;align-items:center;gap:7px;min-width:104px}
.v33-calendar-toolbar #v33YearChoice{width:auto;min-width:88px}
.v33-jump-form{display:flex;align-items:end;gap:7px;flex-wrap:wrap}
.v33-jump-form label{font-size:12px}
.v33-jump-form input{width:160px;min-height:44px;font-size:16px}
.v33-jump-form button{min-height:44px}
.v33-section .v33-actions button:disabled,
.v33-section .v33-cal-day:disabled{cursor:not-allowed;opacity:.32}
.v33-calendar{touch-action:pan-y;overscroll-behavior-x:contain}
.v33-cal-day{touch-action:pan-y}
@media(max-width:720px){
 .v33-head{display:grid;grid-template-columns:1fr;width:100%}
 .v33-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;width:100%}
 .v33-section .v33-actions button{min-height:48px;padding:8px 3px;font-size:11px}
 .v33-calendar-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px}
 .v33-calendar-toolbar .v33-month{grid-column:1/-1;min-width:0}
 .v33-calendar-toolbar>label{min-width:0}
 .v33-jump-form{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:7px}
 .v33-jump-form label{grid-column:1/-1}
 .v33-jump-form input{width:100%;min-width:0;min-height:48px}
 .v33-jump-form button{min-height:48px;padding:8px 16px}
 .v33-calendar{gap:3px}
 .v33-calendar .v33-cal-day{min-height:48px;padding:5px 1px;font-size:13px;min-width:0}
 .v33-weekdays{gap:3px}
 .v33-selected .v33-cal-task{flex-wrap:wrap;align-items:start}
 .v33-cal-task button{min-height:40px}
}
@media(max-width:380px){
 .v33-section .v33-actions button{font-size:10px;padding:8px 1px}
 .v33-calendar .v33-cal-day{min-height:46px;font-size:12px}
}
