:root{--primary-color: #2b7a0b;--primary-light: #5bbc34;--secondary-color: #f7a400;--section-card: #2b7a0b;--section-plan: #e8860c;--section-record: #0ea5e9;--bg-color: #f4f6f8;--text-primary: #1a202c;--text-secondary: #4a5568;--white: #ffffff;--border-color: #e2e8f0;--surface-primary: #ffffff;--surface-secondary: #f8fafc;--surface-accent: #f0fdf4;--surface-overlay: rgba(15, 23, 42, .55);--focus-ring: rgba(91, 188, 52, .1);--panel-muted-bg: #f8fafc;--panel-muted-border: #cbd5e1;--panel-info-bg: #f0f9ff;--panel-info-border: #bae6fd;--panel-success-bg: #f0fdf4;--panel-success-border: #bbf7d0;--panel-warning-bg: #fffbeb;--panel-warning-border: #fef08a;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--border-radius: 12px}:root[data-theme=dark]{--primary-color: #7ddf52;--primary-light: #9bef76;--secondary-color: #ffb84d;--section-card: #7ddf52;--section-plan: #ffb84d;--section-record: #38bdf8;--bg-color: #0f172a;--text-primary: #e5edf7;--text-secondary: #94a3b8;--border-color: #334155;--surface-primary: #111827;--surface-secondary: #1f2937;--surface-accent: rgba(125, 223, 82, .12);--surface-overlay: rgba(2, 6, 23, .72);--focus-ring: rgba(125, 223, 82, .18);--panel-muted-bg: #1f2937;--panel-muted-border: #475569;--panel-info-bg: #0f2234;--panel-info-border: #1d4f73;--panel-success-bg: #13261a;--panel-success-border: #2f6d41;--panel-warning-bg: #2f2410;--panel-warning-border: #7a5b1d;--shadow-sm: 0 1px 2px 0 rgba(2, 6, 23, .45);--shadow-md: 0 10px 20px rgba(2, 6, 23, .35);--shadow-lg: 0 18px 38px rgba(2, 6, 23, .45)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,sans-serif;background-color:var(--bg-color);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;transition:background-color .2s ease,color .2s ease}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-header{background-color:var(--surface-primary);padding:.8rem;box-shadow:var(--shadow-sm);display:flex;align-items:center;position:sticky;top:0;z-index:10}.app-header h2{color:var(--primary-color);font-weight:700;font-size:1.45rem}.app-logo{display:block;height:58px;width:auto;max-width:min(78vw,520px);object-fit:contain}.app-nav{display:flex;gap:1rem;width:100%;overflow-x:auto;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}.nav-link{color:var(--text-primary);text-decoration:none;font-weight:600;font-size:.9rem;padding:.25rem .5rem;border-radius:6px;white-space:nowrap}.app-nav a[href="#/settings"]{display:none}@media (max-width: 640px){.app-logo{height:50px;max-width:min(80vw,360px)}}.nav-link:hover{background-color:var(--surface-secondary)}.nav-link[data-active=true]{border-bottom:3px solid var(--nav-active-color, var(--primary-color));color:var(--nav-active-color, var(--primary-color));border-radius:6px 6px 0 0}.app-main{flex:1;padding:.6rem;max-width:1200px;margin:0 auto;width:100%}.container{background:var(--surface-primary);border-radius:var(--border-radius);padding:1rem;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease}.container:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:8px;font-weight:600;cursor:pointer;border:none;transition:all .2s ease;text-decoration:none;font-size:.875rem}.btn-primary{background-color:var(--primary-color);color:var(--white)}.btn-primary:hover{background-color:var(--primary-light);transform:translateY(-1px)}.btn-outline{background-color:transparent;color:var(--primary-color);border:1px solid var(--primary-color)}.btn-outline:hover{background-color:var(--surface-accent)}.btn-danger{background-color:#ef4444;color:var(--white)}.btn-danger:hover{background-color:#dc2626}.form-control{width:100%;max-width:100%;min-width:0;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:8px;font-size:1rem;outline:none;transition:border-color .2s;font-family:Inter,sans-serif;box-sizing:border-box;background:var(--surface-primary);color:var(--text-primary)}.form-control:focus{border-color:var(--primary-light);box-shadow:0 0 0 3px var(--focus-ring)}textarea.form-control{resize:vertical}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.8rem}.lesson-card{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:.8rem;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column}.lesson-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--primary-light)}.lesson-card h3{margin-bottom:.5rem;color:var(--text-primary)}.detail-panel{padding:1.5rem;border-radius:8px;border:1px solid var(--panel-muted-border);background:var(--panel-muted-bg);color:var(--text-primary)}.detail-panel--info{border-color:var(--panel-info-border);background:var(--panel-info-bg)}.detail-panel--success{border-color:var(--panel-success-border);background:var(--panel-success-bg)}.detail-panel--warning{border-color:var(--panel-warning-border);background:var(--panel-warning-bg)}.detail-panel--compact{padding:.8rem;border-radius:4px}.multiline-content{color:var(--text-primary);white-space:pre-wrap;line-height:1.6}.calendar-filter{margin-bottom:1rem;padding:1rem;border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--calendar-surface, var(--surface-secondary));box-shadow:var(--shadow-sm)}.calendar-filter-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.calendar-view-toggle{display:inline-flex;padding:.2rem;border-radius:999px;background:var(--surface-secondary);border:1px solid var(--border-color)}.calendar-view-toggle button{border:none;background:transparent;color:var(--text-secondary);font-weight:700;padding:.55rem 1rem;border-radius:999px;cursor:pointer}.calendar-view-toggle button.is-active{background:var(--calendar-accent, var(--primary-color));color:var(--white)}.calendar-period-nav{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.calendar-period-label{min-width:180px}.calendar-period-label strong,.calendar-period-label span{display:block}.calendar-period-label span{color:var(--text-secondary);font-size:.85rem;margin-top:.15rem}.calendar-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.6rem;margin-bottom:1rem}.calendar-week-day{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.75rem .5rem;border-radius:12px;border:1px solid var(--border-color);background:var(--surface-secondary);cursor:pointer;color:var(--text-primary)}.calendar-week-day.is-selected{border-color:var(--calendar-accent, var(--primary-color));box-shadow:inset 0 0 0 1px var(--calendar-accent, var(--primary-color))}.calendar-week-day span,.calendar-week-day small{color:var(--text-secondary)}.calendar-week-day strong{font-size:1.1rem}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem}.calendar-weekday-header{text-align:center;font-size:.8rem;font-weight:700;color:var(--text-secondary);padding-bottom:.1rem}.calendar-day-cell{min-height:84px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:.6rem;border-radius:12px;border:1px solid var(--border-color);background:var(--surface-primary);cursor:pointer;color:var(--text-primary);text-align:left;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.calendar-day-cell.is-selected{background:var(--calendar-accent, var(--primary-color));border-color:var(--calendar-accent, var(--primary-color));color:var(--white)}.calendar-day-cell.is-today{box-shadow:inset 0 0 0 1px var(--calendar-accent, var(--primary-color))}.calendar-day-cell.is-outside-month{opacity:.45}.calendar-day-number{font-size:1rem;font-weight:700}.calendar-day-count{font-size:.75rem;color:var(--text-secondary)}.calendar-day-cell.is-selected .calendar-day-count{color:#ffffffd9}.calendar-filter-summary{margin-top:1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.calendar-filter-summary>div{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:12px;padding:.9rem}.calendar-filter-summary strong{display:block;margin-bottom:.2rem}.calendar-filter-summary p{color:var(--text-secondary);font-size:.9rem}.calendar-preview-list{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.5rem}.calendar-preview-chip{display:inline-flex;align-items:center;padding:.35rem .7rem;border-radius:999px;background:var(--surface-primary);border:1px solid var(--border-color);font-size:.85rem}.schedule-empty-state{padding:1.5rem;border:1px dashed var(--border-color);border-radius:12px;background:var(--surface-secondary)}:root[data-theme=dark] .calendar-filter{border-color:#3b4d63}:root[data-theme=dark] .calendar-view-toggle{background:#152133}:root[data-theme=dark] .calendar-week-day,:root[data-theme=dark] .calendar-day-cell{background:#162131}:root[data-theme=dark] .calendar-day-cell.is-selected,:root[data-theme=dark] .calendar-view-toggle button.is-active{box-shadow:0 8px 18px #082f4959}:root[data-theme=dark] .calendar-filter-summary>div{background:#111827}:root[data-theme=dark] .calendar-day-cell.is-outside-month{opacity:.3}.schedule-empty-state strong{display:block;margin-bottom:.35rem}.schedule-empty-state p{color:var(--text-secondary)}.today-schedule-board{display:grid;grid-template-columns:72px minmax(0,1fr);gap:.75rem;align-items:start}.today-schedule-time-column{position:relative}.today-schedule-time-label{display:flex;align-items:flex-start;justify-content:flex-end;padding-right:.5rem;color:var(--text-secondary);font-size:.8rem}.today-schedule-grid-wrapper{overflow-x:auto}.today-schedule-grid{position:relative;min-width:280px;border:1px solid var(--border-color);border-radius:16px;background:linear-gradient(180deg,#fffffffa,#f8fafcfa)}.today-schedule-hour-line{position:absolute;left:0;right:0;border-top:1px solid #e2e8f0}.today-schedule-drag-banner{margin-bottom:.9rem;padding:.65rem .85rem;border-radius:12px;background:#ecfccb;border:1px solid #84cc16;color:#3f6212;font-size:.9rem;font-weight:700}.today-schedule-item{position:absolute;display:flex;flex-direction:column;gap:.2rem;padding:.55rem .65rem;border-radius:12px;background:linear-gradient(180deg,#fef3c7,#fde68a);border:1px solid #f59e0b;box-shadow:var(--shadow-sm);color:#78350f;text-decoration:none;overflow:hidden;cursor:grab;text-align:left;-moz-appearance:none;appearance:none;-webkit-appearance:none;touch-action:none;-webkit-user-select:none;user-select:none}.today-schedule-item strong{font-size:.9rem;line-height:1.2}.today-schedule-item span{font-size:.75rem;line-height:1.2}.today-schedule-item.is-dragging{cursor:grabbing;box-shadow:var(--shadow-lg);transform:scale(1.01);z-index:3}.today-schedule-item.is-saving{opacity:.85}@media print{@page{size:A4 landscape;margin:0}body{background-color:#fff}.no-print,.app-header{display:none!important}.app-main{padding:0!important;max-width:none!important}.a4-landscape-page{width:297mm;height:209mm;page-break-after:always;padding:10mm;box-sizing:border-box;margin:0;box-shadow:none;border:none;display:flex;flex-direction:row}.card-print-page .a4-landscape-page{width:calc(297mm / .82);height:calc(209mm / .82);transform:scale(.82);transform-origin:top left;zoom:.82}}@media screen{.a4-landscape-page{width:297mm;height:210mm;padding:10mm;margin:2rem auto;background:#fff;box-shadow:var(--shadow-md);border:1px solid var(--border-color);display:flex;flex-direction:row;border-radius:8px;box-sizing:border-box;transform-origin:top center;max-width:100%;overflow-x:auto}}.print-pane{flex:1;display:flex;flex-direction:column;overflow:hidden;width:50%}.pane-left{border-right:1px dashed #cbd5e1;padding-right:10mm}.pane-right{padding-left:10mm}.diagram-grid{display:grid;flex:1;width:100%;gap:10px;min-height:0}.diagram-grid.count-1{grid-template-columns:1fr;grid-template-rows:1fr}.diagram-grid.count-2{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.diagram-grid.count-3,.diagram-grid.count-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.diagram-container{display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;padding:5px;background:#f8fafc}.diagram-container img{max-width:100%;max-height:100%;object-fit:contain}.responsive-grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.responsive-grid-2col>*,.responsive-grid-3col>*{min-width:0}.responsive-grid-3col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.5rem}@media (max-width: 768px){.app-header{padding:.65rem;gap:.3rem!important}.app-header h2{font-size:1.5rem}.app-nav{gap:.35rem}.nav-link{font-size:1rem;padding:.2rem .35rem}.responsive-grid-2col,.responsive-grid-3col{grid-template-columns:1fr;gap:1rem}.a4-landscape-page{flex-direction:column!important;height:auto!important;width:auto!important;padding:1rem!important}.print-pane{width:100%!important}.pane-left{border-right:none;border-bottom:2px dashed #cbd5e1;padding-right:0;padding-bottom:1rem;margin-bottom:1rem}.pane-right{padding-left:0}.card-print-page{overflow-x:auto}.card-print-page .a4-landscape-page{flex-direction:row!important;width:calc(297mm / .82)!important;height:calc(210mm / .82)!important;padding:10mm!important;margin:1rem 0!important;overflow:hidden!important;transform:scale(.82);transform-origin:top left}.card-print-page .print-pane{width:50%!important}.card-print-page .pane-left{border-right:1px dashed #cbd5e1!important;border-bottom:none!important;padding-right:10mm!important;padding-bottom:0!important;margin-bottom:0!important}.card-print-page .pane-right{padding-left:10mm!important}.page-header{flex-wrap:wrap;gap:.5rem}.page-header h1{font-size:1.15rem;width:100%}.page-header .header-actions{width:100%;justify-content:flex-end}h2{font-size:1.1rem}.btn{font-size:.8rem;padding:.4rem .7rem}.container{padding:.75rem}.card-grid{grid-template-columns:1fr}.lesson-card{padding:.6rem}.calendar-filter{padding:.75rem}.calendar-filter-toolbar,.calendar-period-nav{align-items:stretch}.calendar-period-label{min-width:0}.calendar-week-strip,.calendar-month-grid{gap:.35rem}.calendar-week-day{padding:.6rem .35rem}.calendar-day-cell{min-height:64px;padding:.45rem}.calendar-filter-summary{grid-template-columns:1fr}.today-schedule-board{grid-template-columns:56px minmax(0,1fr);gap:.5rem}.today-schedule-time-label{font-size:.75rem;padding-right:.35rem}.today-schedule-item{padding:.45rem .5rem}.today-schedule-item strong{font-size:.8rem}.today-schedule-item span{font-size:.7rem}.form-control{font-size:1rem;padding:.6rem .75rem}}
