:root{font-family:Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic UI,sans-serif;color:#1f2933;background:#f7f9fb;--accent: #2f6fed;--accent-dark: #1d4fc0;--danger: #d64545;--border: #d9e2ec;--muted: #7b8794}*{box-sizing:border-box}body{margin:0}.app{min-height:100vh;display:flex;flex-direction:column}.app-body{flex:1}.app-header{display:flex;align-items:center;gap:1rem;padding:.6rem 1.25rem;background:#fff;border-bottom:1px solid var(--border)}.app-header .brand{font-weight:700;letter-spacing:.05em;color:var(--accent-dark);text-decoration:none}.app-header .brand:hover{opacity:.8}.app-header .who{margin-left:auto;font-size:.85rem;color:var(--muted)}.landing,.login-page{flex:1;min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem 1rem}.login-page h1{margin:0;font-size:2.5rem;letter-spacing:.05em}.tagline{margin:0 0 1.5rem;color:#52606d}.dev-login{margin-top:2.5rem;padding:1.25rem;border:1px dashed var(--border);border-radius:8px;display:flex;flex-direction:column;gap:.75rem;min-width:280px}.dev-login h2{margin:0;font-size:.95rem;color:var(--muted)}.dev-login label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.page{max-width:860px;margin:0 auto;padding:.6rem 1rem 3rem}.page h1{font-size:1.5rem;margin:.4rem 0 .75rem}.page>p:first-child{margin:0 0 .2rem;font-size:.85rem}.page h1 small{font-weight:400;color:var(--muted);font-size:.9rem}.panel{background:#fff;border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem;margin:1rem 0}.panel h2{margin:0 0 .75rem;font-size:1.05rem}.card-list{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;border-top:1px solid var(--border)}.card-list a,.card-static{display:flex;align-items:baseline;gap:.75rem;padding:.45rem .35rem;border-bottom:1px solid var(--border);text-decoration:none;color:inherit}.card-list a:hover{background:#f2f6ff}.card-list strong{font-weight:600}.card-list span{margin-left:auto;font-size:.8rem;color:var(--muted);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-list .empty,.table .empty{color:var(--muted);font-size:.9rem;padding:.4rem 0}.inline-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}input{padding:.45rem .6rem;border:1px solid var(--border);border-radius:6px;font-size:.95rem}input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}.button{display:inline-block;padding:.45rem 1rem;border:1px solid var(--accent);border-radius:6px;background:#fff;color:var(--accent-dark);font-size:.95rem;cursor:pointer;text-decoration:none;text-align:center}.button:hover:not(:disabled){background:#eef4ff}.button:disabled{opacity:.5;cursor:default}.button.primary{background:var(--accent);color:#fff}.button.primary:hover{background:var(--accent-dark)}.button.danger{border-color:var(--danger);color:var(--danger)}.button.danger:hover:not(:disabled){background:#fdf0f0}.button.small{padding:.25rem .6rem;font-size:.8rem}.table{width:100%;border-collapse:collapse;margin-bottom:.75rem;font-size:.92rem}.table th,.table td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid var(--border)}.table th{font-size:.8rem;color:var(--muted);font-weight:600}.error{color:var(--danger);font-size:.85rem}.danger-zone{border-color:#f3d6d6}.status{display:grid;grid-template-columns:auto auto;gap:.25rem 1rem;font-size:.9rem;color:#3e4c59}.status dt{font-weight:600}.status dd{margin:0}.version-footer{padding:.75rem;text-align:center;font-size:.75rem;color:var(--muted)}.panel-link{float:right;font-size:.85rem;font-weight:400}select{padding:.4rem .5rem;border:1px solid var(--border);border-radius:6px;font-size:.9rem;background:#fff}.muted{color:var(--muted);font-size:.85rem}.saved{color:#2f8132;font-size:.85rem;margin-left:.5rem}.badge{display:inline-block;min-width:1.4em;padding:.05em .45em;border-radius:999px;background:var(--danger);color:#fff;font-size:.75rem;text-align:center;vertical-align:middle}.missing{color:var(--danger);font-size:.88rem}.reflection-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.reflection-list li{border:1px solid var(--border);border-radius:6px;padding:.6rem .85rem;background:#fbfdff}.reflection-list li.board-item{border:none;padding:0;background:none}.board-item .board-post{border:1px solid var(--border);border-radius:6px;padding:.6rem .85rem;background:#fbfdff}.board-item .board-reply{margin:.45rem 0 0 1.8rem;position:relative}.board-item .board-reply:after{content:"";position:absolute;left:-1.1rem;top:-.45rem;width:.75rem;height:1.2rem;border-left:2px solid var(--border);border-bottom:2px solid var(--border);border-bottom-left-radius:6px}.reflection-head{display:flex;gap:.75rem;align-items:baseline;font-size:.85rem;color:var(--muted)}.reflection-list p{margin:.35rem 0 0;white-space:pre-wrap}.reflection-form{display:flex;flex-direction:column;gap:.75rem}.reflection-form fieldset{display:flex;flex-direction:column;gap:.75rem;min-width:0}.reflection-form textarea{width:100%;box-sizing:border-box}.chapter-manager{display:flex;flex-direction:column;gap:.35rem;margin:.4rem 0 .75rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:6px;max-width:28rem}.chapter-manager .inline-form{margin:0}textarea{padding:.6rem .75rem;border:1px solid var(--border);border-radius:6px;font-size:.95rem;font-family:inherit;resize:vertical}textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}.textarea-wrap{position:relative;width:100%}.textarea-wrap textarea{width:100%;box-sizing:border-box;display:block;padding-bottom:1.4rem}.textarea-wrap .char-count{position:absolute;right:1.1rem;bottom:.4rem;font-size:.7rem;color:var(--muted);pointer-events:none;-webkit-user-select:none;user-select:none}.pending-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-top:1px solid var(--border)}.pending-list a{display:block;padding:.45rem .35rem;border-bottom:1px solid var(--border);text-decoration:none;color:inherit}.pending-list a:hover{background:#fff5f5}.page.wide{max-width:1200px}.page.full{max-width:none;padding-left:1.5rem;padding-right:1.5rem}.matrix-scroll{overflow-x:auto}.table.matrix th,.table.matrix td{white-space:nowrap;text-align:center}.table.matrix td:first-child,.table.matrix th:first-child{text-align:left}.table .ok,.ok{color:#2f8132}.table .ng,.ng{color:var(--danger)}.version-footer .copyright{margin-left:.75rem}.app-nav{display:flex;gap:.9rem;font-size:.9rem}.app-nav a{color:var(--muted);text-decoration:none;padding:.15rem 0}.app-nav a.active{color:var(--accent-dark);border-bottom:2px solid var(--accent)}.chip-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.chip{padding:.3rem .7rem;border:1px solid var(--border);border-radius:999px;background:#fff;font-size:.85rem;cursor:pointer}.chip.active{border-color:var(--accent);background:#eef4ff;color:var(--accent-dark)}.check-row{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;cursor:pointer}.question-editor textarea{width:100%;margin:.5rem 0}.choices-editor{display:flex;flex-direction:column;gap:.35rem}.material-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.rating-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.rating-buttons{display:flex;gap:.3rem}.rating{width:2.2rem;height:2.2rem;border:1px solid var(--border);border-radius:6px;background:#fff;cursor:pointer;font-size:.95rem}.rating.active{background:var(--accent);border-color:var(--accent);color:#fff}.rating:disabled{opacity:.6;cursor:default}.bar{height:.9rem;min-width:2px;background:var(--accent);border-radius:3px}.user-menu{margin-left:auto;position:relative}.app-header .who{display:none}.avatar{width:2.1rem;height:2.1rem;border-radius:50%;border:1px solid var(--accent);background:#eef4ff;color:var(--accent-dark);font-weight:700;cursor:pointer;font-size:.95rem}.avatar:hover{background:var(--accent);color:#fff}.menu-overlay{position:fixed;inset:0;z-index:10}.menu-popup{position:absolute;right:0;top:2.6rem;z-index:11;min-width:12rem;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #1f29331f;overflow:hidden}.menu-user{display:flex;flex-direction:column;padding:.7rem .9rem;border-bottom:1px solid var(--border);font-size:.9rem}.menu-item{display:block;width:100%;text-align:left;padding:.55rem .9rem;border:none;background:none;font-size:.9rem;cursor:pointer}.menu-item:hover{background:#f2f6ff}.section-title{font-size:1.05rem;color:var(--muted);margin:1.5rem 0 .25rem}.two-col{display:grid;grid-template-columns:1fr;gap:0 1rem;align-items:start}@media(min-width:1000px){.two-col{grid-template-columns:1fr 1fr}}.scroll-table{max-height:26rem;overflow-y:auto;margin-bottom:.75rem}.scroll-table .table{margin-bottom:0}.scroll-table thead th{position:sticky;top:0;background:#fff;z-index:1}.action-row{margin-bottom:.5rem}.subnav{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.subnav a{padding:.4rem .9rem;text-decoration:none;color:var(--muted);font-size:.92rem;border-bottom:2px solid transparent;margin-bottom:-1px}.subnav a.active{color:var(--accent-dark);border-bottom-color:var(--accent);font-weight:600}.unit-list{list-style:none;margin:0 0 .75rem;padding:0;border-top:1px solid var(--border)}.unit-list>li{border-bottom:1px solid var(--border)}.unit-row{display:flex;align-items:center;gap:.7rem;padding:.45rem .35rem}.unit-row .unit-title{flex:1}.unit-detail{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:.5rem .75rem .9rem 2rem;background:#fbfdff}@media(max-width:800px){.unit-detail{grid-template-columns:1fr}}.table.schedule td{vertical-align:top;min-width:8.5rem}.table.schedule .unit-cell{text-align:left;white-space:normal;min-width:12rem}.cell-scheduled{display:flex;flex-direction:column;gap:.15rem}.cell-actions{display:flex;gap:.5rem;justify-content:center}.link-button{border:none;background:none;color:var(--accent-dark);cursor:pointer;font-size:.8rem;padding:.1rem}.link-button.danger{color:var(--danger)}.link-button:hover{text-decoration:underline}td.editing{min-width:11rem}td.editing input,td.editing select{margin-bottom:.3rem;width:100%}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border:none;border-radius:5px;background:none;color:var(--muted);cursor:pointer;vertical-align:middle}.icon-button:hover:not(:disabled){background:#eef4ff;color:var(--accent-dark)}.icon-button.danger:hover:not(:disabled){background:#fdf0f0;color:var(--danger)}.icon-button:disabled{opacity:.4;cursor:default}.chip.static{display:inline-flex;align-items:center;gap:.15rem;cursor:default}.terms-editor{margin-bottom:.75rem}.unit-title-input{flex:1}.editable-title{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.editable-title input{font-size:1.25rem;font-weight:600}.reflection-item{display:flex;flex-direction:column;gap:.35rem}.reflection-item .item-label span{font-weight:600}.item-desc{margin:.1rem 0 0;white-space:pre-wrap}.item-draft{border-bottom:1px solid var(--border);padding:.5rem 0;display:flex;flex-direction:column;gap:.35rem}.text-item-title{font-size:.95rem;margin:.75rem 0 .35rem}.unit-detail .theme-editor{grid-column:1 / -1}.unit-detail .theme-editor textarea{width:100%}.teacher-comment{position:relative;border:none;background:#f6f9fd;padding:.75rem .95rem;border-radius:8px;font-size:.92rem}.teacher-comment:before{content:"";position:absolute;inset:4px;border:1px dashed #a9bdd8;border-radius:5px;pointer-events:none}.teacher-comment p{margin:.25rem 0 0;white-space:pre-wrap}.comment-box{margin-top:.5rem;display:flex;flex-direction:column;gap:.35rem}.comment-box textarea{width:100%}.badge-pub{background:#2f8132;color:#fff;border-radius:999px;padding:.05em .6em;font-size:.72rem}.unit-no{color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums}td.editing{background:#f4f8ff;padding:.5rem!important}.cell-editor{display:flex;flex-direction:column;gap:.35rem;min-width:9.5rem}.cell-editor input[type=date],.cell-editor select{width:100%;margin:0;font-size:.85rem;padding:.3rem .4rem}.cell-editor-actions{display:flex;gap:.35rem;justify-content:center}.cell-editor-actions .button{flex:1}.cell-empty{display:flex;flex-direction:column;gap:.1rem;align-items:center}.muted-link{color:var(--muted)}td.skipped{background:#f5f5f5}.skip-label{color:var(--muted);font-size:.85rem;letter-spacing:.05em}.program-grid{display:grid;grid-template-columns:1fr;gap:0 1rem;align-items:start}@media(min-width:1100px){.program-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}.theme-table td{vertical-align:top}.theme-table .theme-input{width:100%;min-height:4.2rem;font-size:.95rem}.inactive-row td{color:#9aa5b1;background:#fafafa}.inactive-row td a{color:#9aa5b1}.status-tag{display:inline-block;margin-left:.4rem;padding:.05em .5em;border:1px solid #cbd2d9;border-radius:999px;font-size:.72rem;color:#7b8794;background:#fff}.status-tag.override{border-color:var(--accent);color:var(--accent-dark)}.chip.current{border-color:var(--accent);background:#eef4ff;color:var(--accent-dark)}.quiz-block{border:1px solid var(--border);border-radius:8px;padding:.7rem .9rem;background:#fbfdff}.quiz-question{font-weight:600;margin:0 0 .5rem}.quiz-correct-row td{background:#f0f9f0}.check-row.quiz-correct{color:#2f8132;font-weight:600}.status-tag.quiz-ok{border-color:#2f8132;color:#2f8132}.quiz-editor{display:flex;flex-direction:column;gap:.4rem;padding:.5rem 0}.quiz-editor textarea{width:100%}.quiz-editor-cell{background:#fbfdff}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:0 1rem;align-items:start}.dashboard-side{order:-1}@media(min-width:1000px){.dashboard-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.dashboard-side{order:0}}.quiz-result-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.quiz-result-list li{border-bottom:1px solid var(--border);padding-bottom:.6rem}.quiz-result-list .quiz-q{margin:.25rem 0}.timetable-detail{border:1px solid var(--border);border-radius:8px;padding:.7rem .9rem;margin:.5rem 0 .75rem;background:#fbfdff}.periods-editor{display:flex;flex-direction:column;gap:.3rem;margin-top:.5rem}.lesson-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}.lesson-list>li>a{display:block;padding:.55rem .4rem;border-bottom:1px solid var(--border);text-decoration:none;color:inherit}.lesson-list>li>a:hover{background:#f2f6ff}.lesson-row-top{display:flex;align-items:baseline;gap:.6rem}.lesson-date{font-weight:400;font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums}.lesson-status{margin-left:auto;display:flex;gap:.35rem}.status-tag.pending{border-color:var(--danger);color:var(--danger)}.lesson-row-topic{margin-top:.2rem;font-size:.92rem;color:#3e4c59}.lesson-list .empty{padding:.5rem .4rem;color:var(--muted)}.program-shell{display:flex;align-items:stretch;min-height:calc(100vh - 3.1rem)}.program-sidenav{width:13rem;flex-shrink:0;border-right:1px solid var(--border);background:#fafbfc}.program-sidenav .drawer-head{padding:.9rem 1rem .75rem;border-bottom:1px solid var(--border)}.program-sidenav .drawer-back{display:block;font-size:.8rem;margin-bottom:.45rem}.program-sidenav .drawer-title{font-weight:700;line-height:1.3}.program-sidenav .drawer-sub{font-size:.78rem;color:var(--muted);margin-top:.15rem}.program-sidenav nav{display:flex;flex-direction:column;gap:0;position:sticky;top:0;padding:.6rem 0 1rem}.program-sidenav a{display:block;padding:.45rem 1rem .45rem 1.35rem;color:inherit;text-decoration:none;font-size:.92rem}.program-sidenav a:hover{background:#f0f3f8}.program-sidenav a.active{background:#eef4ff;color:var(--accent-dark);font-weight:600}.program-sidenav .nav-group{margin-top:.9rem;padding:0 1rem .25rem 1.35rem;font-size:.72rem;letter-spacing:.04em;color:var(--muted)}.program-sidenav .nav-sep{height:0;border-top:1px solid var(--border);margin:.55rem 0}.program-shell-content{flex:1;min-width:0;padding:.75rem 1.25rem 3rem}.program-shell-content .panel{background:none;border:none;border-radius:0;padding:0;margin:0 0 1.75rem}.program-shell-content .panel>h2{margin:.25rem 0 .6rem;padding-bottom:.35rem;border-bottom:1px solid var(--border);font-size:1.05rem}.drawer-toggle,.drawer-backdrop{display:none}@media(max-width:800px){.program-shell{flex-direction:column;min-height:0}.program-sidenav{position:fixed;top:0;left:0;bottom:0;width:15rem;max-width:82vw;z-index:60;overflow-y:auto;background:#fff;border-right:1px solid var(--border);box-shadow:2px 0 12px #0000001f;transform:translate(-105%);transition:transform .2s ease}.program-sidenav.open{transform:none}.drawer-backdrop{display:block;position:fixed;inset:0;background:#0000004d;z-index:55}.drawer-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.55rem 1rem;border:none;border-bottom:1px solid var(--border);background:#fafbfc;font-size:.95rem;font-weight:600;text-align:left;cursor:pointer}.drawer-toggle-icon{font-size:1.1rem;line-height:1}.program-shell-content{padding:1rem 1rem 2.5rem}}.table.schedule .seq-cell{width:2.2rem;min-width:0;padding-left:.3rem;padding-right:.3rem;text-align:center;color:var(--muted)}.lesson-box{border:1px solid var(--border);border-radius:6px;padding:.3rem .45rem;text-align:left}.lesson-box-head{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.lesson-box-head .cell-actions{justify-content:flex-end;gap:.3rem}.cell-units{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin-top:.3rem}.cell-units .chip{display:inline-flex;align-items:center;gap:.15rem;padding:0 .35rem;font-size:.75rem;line-height:1.5;border-radius:4px;cursor:default;max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#f4f6fa}.cell-units .chip .icon-button{padding:0;font-size:.7rem}.cell-units select{font-size:.75rem;padding:0 .25rem;max-width:7rem}.cell-theme{margin-top:.25rem}.cell-theme select{font-size:.75rem;padding:0 .25rem;max-width:100%;color:var(--muted)}.cell-theme select.has-theme{color:var(--text, #1f2933)}.lesson-roster td{vertical-align:top}.lesson-roster .col-no{width:3rem;white-space:nowrap}.lesson-roster .col-student{width:13rem}.lesson-roster .student-line{display:flex;align-items:center;justify-content:space-between;gap:.4rem;white-space:nowrap;margin-bottom:.25rem}.lesson-roster .student-name{font-weight:600}.lesson-roster .note-input{width:100%;box-sizing:border-box}.lesson-roster .col-ans{width:26%}.lesson-roster .col-reply{width:11rem}.lesson-roster .col-ans{width:30%}.lesson-roster .reply-input{width:100%;box-sizing:border-box;margin-top:.4rem;font-size:.85rem}.lesson-roster .answer-body{white-space:pre-wrap}.lesson-roster .reply-actions{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem}.lesson-roster .reply-buttons{display:flex;gap:.5rem}.lesson-roster .answer-cell{font-size:.88rem;white-space:pre-wrap}.lesson-roster .answer-line{margin-bottom:.2rem}.lesson-roster .answer-label{color:var(--muted);font-size:.78rem}.lesson-row-topic{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.comment-badge{flex-shrink:0;background:var(--danger);color:#fff;border-radius:4px;padding:.05rem .45rem;font-size:.72rem;white-space:nowrap}.comment-badge.muted-badge{background:none;color:var(--muted);padding:.05rem 0}.teacher-comment.my-comment{margin-top:.75rem}.lesson-roster .not-submitted{color:var(--danger);font-weight:600}.lesson-roster .reply-badges{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin-bottom:.3rem}.lesson-roster .comment-box textarea{width:100%;box-sizing:border-box}.mobile-only{display:none}@media(max-width:800px){.desktop-only{display:none!important}.mobile-only{display:block}.program-shell-content .panel>p.muted{font-size:.8rem}.program-shell-content .inline-form select{max-width:100%}}.check-mobile{max-width:100%;min-width:0}.check-mobile .chip-row{margin-bottom:.5rem}.check-mobile .lesson-list a{display:block;padding:.55rem .25rem}.check-row-line{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.check-row-main{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.check-row-line .status-tag{flex-shrink:0}@media(max-width:1100px){.table.matrix th,.table.matrix td{font-size:.8rem;padding:.3rem .35rem}}.mobile-inline,.mobile-caption{display:none}@media(max-width:800px){.mobile-inline{display:inline}.mobile-caption{display:block;font-size:.72rem;color:var(--muted);margin-bottom:.15rem}.lesson-roster thead{display:none}.lesson-roster,.lesson-roster tbody,.lesson-roster tr,.lesson-roster td{display:block;width:100%;box-sizing:border-box}.lesson-roster tr{border:1px solid var(--border);border-radius:8px;padding:.55rem .7rem;margin-bottom:.7rem}.lesson-roster td{border:none;padding:.3rem 0;width:100%!important}.lesson-roster td:empty,.lesson-roster .col-no{display:none}.lesson-roster .col-student,.lesson-roster .col-ans,.lesson-roster .col-reply{width:100%!important}.lesson-roster .refl-first,.lesson-roster .refl-mid{height:auto}.lesson-roster .cell-flex{height:auto;min-height:0}.lesson-roster .cell-grow{flex:none}.lesson-roster .refl-last{padding-bottom:.3rem}.lesson-roster .return-corner{position:static;display:flex;justify-content:flex-end;gap:.4rem;margin-top:.35rem}.lesson-roster .publish-row{justify-content:flex-start}.lesson-stats{row-gap:.35rem}.lesson-stats .check-row{margin-left:0!important;width:100%}.lesson-roster .student-line{white-space:normal}.lesson-roster .reply-actions{flex-direction:row;align-items:center;flex-wrap:wrap;gap:.6rem}}.program-shell-content h1{font-size:1.05rem;margin:.25rem 0 .6rem;padding-bottom:.35rem;border-bottom:1px solid var(--border)}.program-shell-content h1 small{color:var(--muted);font-weight:400;font-size:.85rem}.att-symbols{display:inline-flex;gap:.15rem}.att-symbol{width:1.7rem;height:1.7rem;padding:0;border:1px solid var(--border);border-radius:4px;background:#fff;font-size:.9rem;line-height:1;cursor:pointer;color:var(--muted)}.att-symbol.active{border-color:var(--accent);background:#eef4ff;color:var(--accent-dark);font-weight:700}.correction-box{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem;margin-top:.25rem;padding:.15rem .35rem;background:#fff4f4;border:1px solid var(--danger);border-radius:4px;font-size:.78rem}.att-correction-form{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin:.3rem 0 .5rem}.att-correction-form input{flex:1;min-width:10rem}.lesson-roster .refl-first,.lesson-roster .refl-mid,.lesson-roster .refl-last{border-top:1px solid #b9c6d6;border-bottom:1px solid #b9c6d6;padding:.25rem .4rem;font-size:.8rem}.lesson-roster .refl-first{border-left:1px solid #b9c6d6}.lesson-roster .refl-last{border-right:1px solid #b9c6d6}.lesson-roster .refl-first .answer-label,.lesson-roster .refl-mid .answer-label{font-size:.72rem}.lesson-roster .refl-first .reply-input,.lesson-roster .refl-mid .reply-input,.lesson-roster .refl-last textarea{font-size:.78rem;padding:.3rem .4rem}.lesson-roster .refl-last{font-size:.78rem}@media(max-width:800px){.lesson-roster .refl-first,.lesson-roster .refl-mid,.lesson-roster .refl-last{border:none;padding:.3rem 0}}.publish-row{display:flex;align-items:center;gap:.6rem;margin-top:.2rem;font-size:.75rem}.publish-label{color:var(--muted)}.publish-check{display:inline-flex;align-items:center;gap:.2rem;font-size:.75rem;cursor:pointer}.lesson-roster .refl-first,.lesson-roster .refl-mid{height:1px}.lesson-roster .cell-flex{display:flex;flex-direction:column;height:100%;min-height:100%}.lesson-roster .cell-grow{flex:1}.status-tag.returned{background:#fff4f4;color:var(--danger);border-color:var(--danger)}.returned-notice{position:relative;padding:.75rem .95rem;border:none;border-radius:8px;background:#fdf6f6;color:var(--danger);font-weight:600}.returned-notice:before{content:"";position:absolute;inset:4px;border:1px dashed #dfa8a8;border-radius:5px;pointer-events:none}.publish-row{justify-content:flex-end}.grade-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;font-size:.78rem}.grade-btn{width:1.7rem;height:1.7rem;padding:0;border:1px solid var(--border);border-radius:4px;background:#fff;cursor:pointer;font-size:.85rem}.grade-btn.active{border-color:var(--accent);background:#eef4ff;color:var(--accent-dark);font-weight:700}.lesson-item{position:relative}.grade-mark-mini{position:absolute;left:-.35rem;top:35%;transform:translateY(-50%) rotate(-8deg);font-size:2.1rem;line-height:1;color:#e0525273;font-weight:700;pointer-events:none;z-index:2}.stars{color:#f0b429;letter-spacing:.05em;font-size:.85rem;white-space:nowrap}.stars .star-off{color:#d8dee6}.lesson-roster .col-reply .cell-flex,.lesson-roster .refl-last{position:relative}.return-corner{position:absolute;right:.35rem;bottom:.3rem;display:flex;align-items:center;gap:.4rem}.publish-comments{font-size:.72rem;padding:.1rem .5rem}.publish-comments.on{background:#eef4ff;border-color:var(--accent);color:var(--accent-dark)}.lesson-roster .refl-last{padding-bottom:2rem}.return-corner .icon-button{color:var(--danger)}.reflection-panel{position:relative}.grade-mark{position:absolute;top:-1.2rem;right:1rem;font-size:7rem;line-height:1;color:#e052528c;transform:rotate(-8deg);pointer-events:none;z-index:5;font-weight:700;text-shadow:none;-webkit-user-select:none;user-select:none}.lesson-roster tr.graded-row td{background:#f5f6f8}.lesson-roster tr.graded-row{opacity:.65}.lesson-roster tr.ungraded-row td{background:#fffbea}.lesson-roster tr.ungraded-row .refl-first,.lesson-roster tr.ungraded-row .refl-mid,.lesson-roster tr.ungraded-row .refl-last{border-top-color:#e5b900;border-bottom-color:#e5b900}.lesson-roster tr.ungraded-row .refl-first{border-left-color:#e5b900}.lesson-roster tr.ungraded-row .refl-last{border-right-color:#e5b900}.lesson-roster .refl-first{position:relative}.returned-card{position:absolute;top:.35rem;left:.6rem;z-index:5;width:min(26rem,calc(100vw - 5rem));background:#d9534fd9;color:#fff;border-radius:8px;padding:.45rem .7rem;font-size:.85rem;line-height:1.45;white-space:normal;box-shadow:0 2px 10px #00000040;pointer-events:none}.quiz-check-group h3{margin:.8rem 0 .3rem}.grade-matrix th .grade-qbody{font-weight:400;font-size:.72rem;color:var(--muted);white-space:normal}.grade-matrix td{vertical-align:top;font-size:.85rem}.grade-matrix .col-qtext{min-width:22rem}.grade-matrix .col-qchoice{min-width:9rem}.grade-answer{white-space:pre-wrap;margin-bottom:.2rem}.grade-stars{display:inline-flex;align-items:center;gap:.05rem;white-space:nowrap}.grade-star,.grade-zero{background:none;border:none;cursor:pointer;padding:0 .05rem;font-size:.9rem;line-height:1;color:#c9cfd8}.grade-star.filled{color:#e5b900}.grade-zero{font-weight:700;font-size:.85rem}.grade-zero.active{color:#d9534f}.grade-value{font-size:.75rem;color:var(--muted);margin-left:.25rem}.grade-comment{display:block;width:100%;box-sizing:border-box;margin-top:.25rem;font-size:.78rem;padding:.2rem .4rem;min-height:3.4em;resize:vertical;line-height:1.35}.grade-char-count{font-size:.68rem;color:var(--muted);margin-left:.2rem;white-space:nowrap}.grade-auto{font-size:.82rem}.results-publish-bar{margin-bottom:.6rem}.import-mapping{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;margin:.4rem 0 .6rem}.import-mapping label{display:flex;align-items:center;gap:.35rem;font-size:.85rem}.answer-headline{display:flex;flex-wrap:wrap;align-items:center;gap:0 .7rem;margin-bottom:.2rem}.answer-headline .answer-line{margin-bottom:0}.submitted-time{font-size:.7rem;color:var(--muted)}.pdf-viewer-page{max-width:1040px}.pdf-viewer-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}.pdf-viewer-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-page{display:block;margin:0 auto .6rem;max-width:100%;box-shadow:0 1px 6px #0000002e;border-radius:3px;background:#fff}.material-dl{margin-left:.5rem;font-size:.75rem}.student-photo{width:2rem;height:2rem;border-radius:50%;object-fit:cover;border:1px solid var(--border);flex-shrink:0;vertical-align:middle}.roster-photo{width:2.6rem;height:2.6rem}.photo-placeholder{display:inline-flex;align-items:center;justify-content:center;background:#eef2f6;color:#9aa5b1}.photo-cell{display:flex;align-items:center;gap:.4rem;white-space:nowrap}.lesson-roster .student-line{align-items:center}.course-row-with-actions{display:flex;align-items:center}.course-row-with-actions>a:first-child{flex:1}.course-row-action{margin-left:.5rem;flex-shrink:0}.push-status{font-size:.75rem;color:var(--muted);margin-top:.25rem;white-space:normal}.item-desc.theme-question{color:#323f4b;font-size:.92rem;margin:.15rem 0 0;white-space:pre-wrap}.lesson-theme-line{margin:0 0 .5rem;font-size:.88rem;color:#52606d;background:#f6f9fd;border:1px solid var(--border);border-radius:6px;padding:.35rem .6rem}.photo-clickable{cursor:zoom-in}.photo-modal-overlay{position:fixed;inset:0;z-index:1000;background:#000000a6;display:flex;align-items:center;justify-content:center;cursor:zoom-out}.photo-modal-box{text-align:center;max-width:min(92vw,34rem)}.photo-modal-img{max-width:100%;max-height:78vh;border-radius:10px;box-shadow:0 6px 30px #00000080;background:#fff}.photo-modal-name{color:#fff;margin-top:.5rem;font-size:1rem;text-shadow:0 1px 3px rgba(0,0,0,.6)}.bulk-photo{margin-top:.8rem;border-top:1px dashed var(--border);padding-top:.7rem}.bulk-photo .scroll-table{max-height:20rem;overflow-y:auto}.seating-columns{display:grid;grid-template-columns:minmax(0,1fr) 21rem;gap:0 1rem;align-items:start}.seating-side .panel{margin-top:0;margin-bottom:1rem}.seating-main .panel{margin-top:0}@media(max-width:900px){.seating-columns{grid-template-columns:1fr}}.seating-room{position:relative;overflow-x:auto;padding:.4rem 0}.seating-room-tools{position:absolute;top:.4rem;right:.2rem;display:flex;align-items:center;gap:.4rem;z-index:2}.seating-room-tools-left{right:auto;left:.2rem;font-size:.85rem;gap:.6rem}.seating-radio{display:inline-flex;align-items:center;gap:.2rem;cursor:pointer}.seating-radio input{margin:0}.seating-room-tools select{padding:.25rem .4rem;font-size:.8rem}.seating-fullscreen-btn{width:2rem;height:2rem;padding:0;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--muted);font-size:1.1rem;line-height:1;cursor:pointer}.seating-fullscreen-btn:hover{color:var(--accent-dark);border-color:var(--accent);background:#f2f6ff}.seating-podium{width:12rem;margin:0 auto .8rem;text-align:center;padding:.3rem;border:1px solid var(--border);border-radius:6px;background:#eef2f6;color:var(--muted);font-size:.85rem}.seating-grid{display:grid;gap:.4rem;width:max-content;margin:0 auto}.seat{display:flex;flex-direction:column;align-items:center;gap:.2rem;min-height:4.6rem;padding:.35rem .25rem;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:pointer;font-size:.72rem;line-height:1.25}.seat:hover{background:#f2f6ff}.seat-empty{background:#fafbfc}.seat-off{background:#f0f2f4;border-style:dashed}.seat-hidden{visibility:hidden;pointer-events:none}.seat-ghost{background:transparent;border-style:dotted;opacity:.45}.seat-gap{pointer-events:none}.seat-row-gap{grid-column:1 / -1;height:1.1rem;pointer-events:none}.seating-grid.photo-mode .seat{position:relative;min-height:5.8rem;padding:0;overflow:hidden}.seating-grid.photo-mode .seat-photo{position:absolute;inset:0;width:100%;height:100%;border-radius:0;border:none}.seating-grid.photo-mode .photo-placeholder{font-size:2rem}.seating-grid.photo-mode .seat-name{position:absolute;left:0;right:0;bottom:0;background:#0000008c;color:#fff;font-size:.68rem;padding:.15rem .2rem}.seating-grid.photo-mode .seat-name .muted{color:#d9e2ec}.seat-selected{outline:2px solid var(--accent);outline-offset:0}.seat-photo{width:2.2rem;height:2.2rem}.seat-name{text-align:center;word-break:keep-all}.table.matrix.attendance-book{--att-no-w: 2.3rem;width:auto;max-width:100%;font-size:.85rem}.attendance-book th,.attendance-book td{padding:.1rem .3rem;line-height:1.2;vertical-align:middle}.attendance-book th{font-size:.72rem;line-height:1.25;padding-top:.2rem;padding-bottom:.2rem}.attendance-book th.col-lesson{min-width:2.6rem}.attendance-book .col-no,.attendance-book .col-name{position:sticky;background:#fff;z-index:1}.attendance-book .col-no{left:0;width:var(--att-no-w);min-width:var(--att-no-w);max-width:var(--att-no-w);text-align:right}.attendance-book .col-name{left:var(--att-no-w);white-space:nowrap;text-align:left;box-shadow:2px 0 0 var(--border)}.attendance-book .col-login{white-space:nowrap;font-size:.75rem;text-align:left}.attendance-book .col-name .name-kana{display:inline;margin-left:.3rem;font-size:.65rem}.attendance-book .col-name .status-tag{margin-left:.3rem}.attendance-book .col-sum{width:2rem;color:var(--muted)}.attendance-book td.att-cell{padding:0}.att-cell-btn{width:100%;min-width:2.2rem;height:1.55rem;padding:0;border:1px solid transparent;border-radius:4px;background:transparent;font-size:.95rem;line-height:1;cursor:pointer}.att-cell-btn:hover{border-color:var(--accent);background:#f2f6ff}.att-cell.unmarked .att-cell-btn{color:#b5bec8}.att-cell.absent .att-cell-btn,.att-cell.present.reflected .att-cell-btn,.att-legend-reflected{color:var(--danger);font-weight:700}.att-cell.late .att-cell-btn,.att-cell.early_leave .att-cell-btn{color:#8a6d00;font-weight:700}.att-cell.official .att-cell-btn{color:#8a6d00}.attendance-book .att-total td{border-top:2px solid var(--border);font-size:.85rem;color:var(--muted)}.backup-update-row td{background:#fff8dc}.status-tag.backup-tag-update{border-color:#b8860b;color:#8a6d00}.table.matrix td.check-review,.lesson-list li.check-review{background:#fff8dc;box-shadow:inset 0 0 0 1px #e5c96a}.table.matrix td.check-done a,.lesson-list li.check-done a{color:var(--muted);opacity:.55}.table.matrix td.check-done a:hover,.lesson-list li.check-done a:hover{opacity:1}.check-missing{color:var(--danger)}.check-pending{color:#8a6d00;font-weight:600}.opening{position:fixed;inset:0;display:flex;flex-direction:column;background:#fff;color:var(--text, #1f2933);padding:.8rem 1.2rem 1rem;box-sizing:border-box;overflow:hidden}.opening-head{display:flex;align-items:flex-end;gap:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--border)}.opening-titles{flex:1;min-width:0}.opening-subject{font-size:1.1rem;color:var(--muted)}.opening-title{font-size:2rem;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opening-meta{text-align:right;white-space:nowrap}.opening-when{font-size:1.5rem;font-weight:600}.opening-seq{margin-left:.6rem;font-size:1rem;color:var(--muted);font-weight:400}.opening-class{font-size:1.3rem}.opening-tools .button{opacity:.45}.opening-tools .button:hover{opacity:1}.opening-body{flex:1;min-height:0;display:flex;gap:1.2rem;padding-top:.6rem}.opening-board{flex:1;min-width:0;display:flex;flex-direction:column}.opening-board .seating-podium{width:16rem;font-size:1rem;margin-bottom:.5rem}.opening-board .seating-display-area{flex:1;min-height:0}.opening-board-foot{font-size:.85rem;padding-top:.3rem;padding-right:8rem}.opening-comment{width:30%;max-width:28rem;padding:1rem 1.2rem 6rem;border:1px solid var(--border);border-radius:10px;background:#fbfdff;font-size:1.4rem;line-height:1.6;white-space:pre-wrap;overflow-y:auto}.opening-qr{position:absolute;right:1rem;bottom:.8rem;text-align:center;font-size:.75rem}.opening-qr img{display:block;width:6.5rem;height:6.5rem}.opening-settings{margin-top:.6rem;padding-top:.6rem;border-top:1px dashed var(--border)}.opening-comment-input{width:100%;box-sizing:border-box;margin:.4rem 0}.auto-link{word-break:break-all;color:var(--accent-dark);text-decoration:underline}.name-kana{display:block;font-size:.65rem;font-weight:400;color:var(--muted);line-height:1.1;white-space:nowrap}.seat .name-kana{font-size:.58rem}.seating-grid.photo-mode .name-kana{display:none}.seating-grid.no-photo .seat{justify-content:center;min-height:3.6rem}.seating-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.seating-toolbar-group{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem}.seating-tool{display:inline-flex;align-items:center;gap:.35rem;font-size:.88rem;padding:0}.seating-toolbar select{padding:.25rem .4rem;font-size:.85rem}.seating-subbar{margin-top:.5rem;font-size:.88rem}.seating-status{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.3rem 1rem;margin:.5rem 0 .2rem;font-size:.85rem}.seating-status-right{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.3rem .9rem;margin-left:auto}.seating-status .link-button{font-size:.85rem}.button.small.active{background:var(--accent);color:#fff}.seat{position:relative}.seat.seat-clickable{cursor:pointer}.seat.seat-absent,.seat.seat-absent:hover{background:#fbe9e9;border-color:var(--danger)}.seat.seat-absent .seat-name{color:var(--danger)}.seat-att{position:absolute;top:.1em;right:.25em;font-size:1.1em;font-weight:700;line-height:1;color:var(--danger);z-index:1}.seat-att-official,.seat-att-late,.seat-att-early_leave{color:#8a6d00}.seating-grid.photo-mode .seat.seat-absent .seat-name{color:#ffb3b3}.seating-grid.photo-mode .seat-att{text-shadow:0 0 3px #fff,0 0 3px #fff}.seating-display-head .seating-display-notice{flex:1;text-align:center;font-size:.95rem;color:var(--danger);font-weight:600}.seating-display{position:fixed;inset:0;z-index:3000;display:flex;flex-direction:column;background:#fff;color:var(--text, #1f2933);padding:.6rem 1rem 1rem;box-sizing:border-box}.seating-display-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.4rem}.seating-display-head .seating-display-title{margin-right:auto}.seating-display-title{font-size:1.15rem;font-weight:600}.seating-display-exit{opacity:.55}.seating-display-exit:hover{opacity:1}.seating-display .seating-podium{width:16rem;font-size:1rem;margin-bottom:.6rem}.seating-display-area{flex:1;min-height:0;min-width:0;display:flex;align-items:flex-start;justify-content:center;overflow:hidden}.seating-grid.display{gap:var(--seat-gap, .4rem);font-size:var(--seat-font, 1rem)}.seating-grid.display .seat{width:var(--seat-w, 6rem);height:var(--seat-h, 5rem);min-height:0;box-sizing:border-box;font-size:var(--seat-font, 1rem);line-height:1.2;cursor:default;padding:.3em .2em;gap:.15em;justify-content:center;border-width:2px}.seating-grid.display .seat:hover{background:#fff}.seating-grid.display .seat-empty,.seating-grid.display .seat-empty:hover{background:#fafbfc}.seating-grid.display .seat-off,.seating-grid.display .seat-off:hover{background:#f0f2f4}.seating-grid.display .seat-row-gap{height:var(--seat-aisle-row, .6rem)}.seating-grid.display .seat-name{font-weight:600;white-space:nowrap;max-width:100%;overflow:hidden}.seating-grid.display .seat .name-kana{font-size:.62em;font-weight:400}.seating-grid.display .seat-no{font-weight:400}.seating-grid.display .seat-photo{width:calc(var(--seat-w, 6rem) * .5);height:calc(var(--seat-w, 6rem) * .5)}.seating-grid.display .photo-placeholder{font-size:calc(var(--seat-w, 6rem) * .28)}.seating-grid.display.photo-mode .seat{padding:0}.seating-grid.display.photo-mode .seat-photo{width:100%;height:100%}.seating-grid.display.photo-mode .seat-name{font-size:.85em;padding:.15em .2em}.att-number-input{width:4rem}.question-image{display:block;max-width:100%;max-height:24rem;border-radius:6px;border:1px solid var(--border);margin:.3rem 0 .6rem}.question-image-thumb{max-height:4rem;max-width:8rem;border-radius:4px;border:1px solid var(--border)}.grade-qimg{display:block;max-height:3rem;max-width:100%;margin-top:.2rem;border-radius:3px}.grade-total{white-space:nowrap}.submit-confirm{border:2px solid #e5b900;background:#fffbea}.submit-confirm-warn{color:#a15c00}.submit-confirm-note{color:#8f1f2b}.quiz-result-head .quiz-score{font-size:1.3rem;color:#d9534f}.graded-question{position:relative}.quiz-mark{position:absolute;top:.2rem;right:.6rem;font-size:3.4rem;font-weight:700;line-height:1;pointer-events:none;z-index:2}.quiz-mark.excellent,.quiz-mark.full{color:#d9534fbf}.quiz-mark.partial{color:#e6a200cc}.quiz-mark.zero{color:#3b6ea5bf}.quiz-points{font-size:.8rem;font-weight:400;color:var(--muted);margin-left:.4rem}.board-post-form{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.board-post-form textarea,.board-reply-form textarea{width:100%;box-sizing:border-box}.board-actions{display:flex;align-items:center;gap:.7rem;margin-top:.35rem;font-size:.82rem}.board-reply-item{padding:.5rem .7rem;border:1px solid var(--border);border-radius:6px;background:#fff}.board-reply-item.teacher-comment{border:none}.board-item.resolved .board-post{opacity:.65}.status-tag.teacher-tag{background:#eef4ff;color:var(--accent-dark);border-color:var(--accent)}.board-reply+.board-reply{margin-top:.4rem}.board-tiles{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.board-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.9rem .5rem .75rem;border-radius:10px;text-decoration:none;color:inherit;text-align:center;font-size:.88rem;font-weight:600}.board-tile:before{content:"";position:absolute;inset:4px;border:1px dashed currentColor;opacity:.35;border-radius:7px;pointer-events:none}.board-tile svg{width:26px;height:26px}.board-tile.qa{background:#eef4ff;color:var(--accent-dark)}.board-tile.refl{background:#fdf3e7;color:#a05f1a}.board-tile:hover{filter:brightness(.97)}.board-tile .tile-course{font-size:.72rem;font-weight:400;color:inherit;opacity:.75}.like-button{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .5rem;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--muted);font-size:.78rem;cursor:pointer;line-height:1}.like-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent-dark)}.like-button.liked{border-color:var(--accent);background:#eef4ff;color:var(--accent-dark)}.like-button.static{cursor:default}.like-count{font-weight:600}.board-tiles-block{margin-bottom:1rem}.course-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.course-rows a{display:flex;align-items:center;gap:.7rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;background:#fbfdff;text-decoration:none;color:inherit}.course-rows a:hover{border-color:var(--accent);background:#f4f8ff}.course-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border-radius:8px;background:#eef4ff;color:var(--accent-dark)}.course-icon svg{width:18px;height:18px}.course-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.05rem}.course-main .muted{font-size:.78rem}.row-arrow{color:var(--muted);font-size:1.1rem}.pending-rows a{background:#fffdf7}.pending-rows a:hover{border-color:var(--danger);background:#fdf6f6}.pending-dot{flex-shrink:0;width:.55rem;height:.55rem;border-radius:50%;background:var(--danger)}.user-chip{display:inline-flex;align-items:center;gap:.35rem}.user-chip-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;background:#e7edf5;color:#5a708c;flex-shrink:0}.user-chip-icon svg{width:13px;height:13px}.board-tabs{display:flex;gap:.25rem;margin-bottom:.9rem;border-bottom:1px solid var(--border)}.board-tab{padding:.4rem 1rem;border:none;background:none;font-size:.95rem;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.board-tab.active{color:var(--accent-dark);font-weight:600;border-bottom-color:var(--accent)}.lesson-stats{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin:.4rem 0 .7rem}.lesson-stats .stat{display:inline-flex;align-items:baseline;gap:.35rem;padding:.25rem .7rem;border:1px solid var(--border);border-radius:6px;background:#fbfdff;font-size:.95rem}.lesson-stats .stat-label{font-size:.75rem;color:var(--muted)}.lesson-stats .stat-warn{border-color:#e5b900;background:#fffbea}.lesson-stats .stat-warn strong{color:#9c7400}.board-post-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.status-tag.cat-study{background:#eef4ff;color:var(--accent-dark);border-color:var(--accent)}.status-tag.cat-chat{background:#eefaf0;color:#1e7d36;border-color:#7fc78f}.status-tag.cat-unit{background:#fdf3e7;color:#a05f1a;border-color:#dfb27f}.answer-q{font-size:.75rem;margin-bottom:.05rem}.pull-indicator{position:fixed;top:0;left:0;right:0;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;background:linear-gradient(#eef4ff,#eef4ff00);color:var(--muted);font-size:.85rem;z-index:90;pointer-events:none;padding-bottom:.4rem}.pull-indicator .ready{color:var(--accent-dark);font-weight:600}.install-banner{position:fixed;left:.75rem;right:.75rem;bottom:.75rem;z-index:95;display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 16px #00000026}.install-banner img{border-radius:8px}.install-text{flex:1;display:flex;flex-direction:column;font-size:.85rem}.install-text span{color:var(--muted);font-size:.75rem}.update-banner{position:fixed;top:.6rem;left:50%;transform:translate(-50%);z-index:96;display:flex;align-items:center;gap:.7rem;padding:.45rem .9rem;background:#223a5e;color:#fff;border-radius:999px;font-size:.85rem;box-shadow:0 4px 14px #00000040;white-space:nowrap}.board-group{margin:0 0 1.4rem}.board-group-title{font-size:.95rem;margin:0 0 .5rem;padding-bottom:.3rem;border-bottom:1px solid var(--border)}.board-group-title.theme-title{font-size:.82rem;color:#444;font-weight:600}.board-post{position:relative}.board-actions.likes-corner{position:absolute;right:.5rem;bottom:.4rem;margin-top:0;display:flex;align-items:center;gap:.5rem}.published-time{font-size:.68rem;color:var(--muted)}.board-post{padding-bottom:1.9rem!important}.board-reply.teacher-reply{position:relative;background:#eaf1fc;border-radius:8px;padding:.6rem .8rem .55rem;font-size:.92rem}.board-reply.teacher-reply:before{content:"";position:absolute;inset:4px;border:1px dashed #8fafd9;border-radius:5px;pointer-events:none}.board-reply.teacher-reply p{margin:0;white-space:pre-wrap}.reply-label{display:flex;align-items:center;gap:.25rem;font-size:.66rem;font-weight:700;color:var(--accent-dark);margin-bottom:.15rem;letter-spacing:.03em}.theme-filter{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;max-width:100%}.theme-filter label{flex-shrink:0}.theme-filter select{flex:1;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}.notif-bell{position:relative;margin-left:auto}.user-menu{margin-left:.4rem!important}.bell-button{position:relative;display:flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border:none;border-radius:50%;background:none;color:#4a5b72;cursor:pointer}.bell-button:hover{background:#eef2f8}.bell-badge{position:absolute;top:.1rem;right:.05rem;min-width:1rem;height:1rem;padding:0 .2rem;border-radius:999px;background:var(--danger);color:#fff;font-size:.62rem;font-weight:700;display:flex;align-items:center;justify-content:center}.notif-popup{position:absolute;right:0;top:2.6rem;width:20rem;max-width:calc(100vw - 1.5rem);max-height:60vh;overflow-y:auto;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 22px #00000029;z-index:80;padding:.5rem 0}.notif-title{font-size:.78rem;font-weight:700;color:var(--muted);padding:.2rem .9rem .4rem;border-bottom:1px solid var(--border)}.notif-popup p{padding:.6rem .9rem;margin:0}.notif-popup ul{list-style:none;margin:0;padding:0}.notif-popup li button{display:flex;flex-direction:column;gap:.1rem;width:100%;padding:.5rem .9rem;border:none;border-bottom:1px solid #f0f2f5;background:none;text-align:left;cursor:pointer;font-size:.85rem}.notif-popup li button:hover{background:#f4f8ff}.notif-popup li.unread button{background:#eef4ff}.notif-time{font-size:.72rem;color:var(--muted)}.push-toggle{border-top:1px solid var(--border);padding:.45rem .9rem .15rem;font-size:.8rem}@media(max-width:800px){.lesson-roster .refl-first,.lesson-roster .refl-mid,.lesson-roster .refl-last{height:auto!important;border:none!important;padding:.3rem 0!important}.lesson-roster .cell-flex{display:block;height:auto!important;min-height:0!important}.lesson-roster .cell-grow{flex:none}.lesson-roster .refl-last{padding-bottom:.3rem!important}.lesson-roster .return-corner{position:static!important;display:flex;justify-content:flex-end;gap:.5rem;margin-top:.4rem}.lesson-roster tr{border:none!important;border-bottom:2px solid var(--border)!important;border-radius:0!important;padding:.6rem 0 .7rem!important;margin-bottom:0!important;background:none!important}.lesson-roster tr td{background:none!important}.lesson-roster tr.ungraded-row{background:#fffbea!important}.lesson-roster tr.graded-row{opacity:.6}}.entry-meta{font-size:.72rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.reflection-list li.unread-entry .board-post{background:#fff8dc!important;border-color:#e5c96a!important}
