:root{font-family:Inter,Arial,sans-serif;color:#1f2937;background:#f3f6fb}*{box-sizing:border-box}body{margin:0}a{color:#2957d3;text-decoration:none}button,input,select,textarea{font:inherit}.panel{background:#fff;border-radius:18px;padding:20px;box-shadow:0 10px 30px #0f172a14}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#eef4ff,#f7f9fc)}.login-card{width:min(100%,480px)}.login-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.logo-mark{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#2957d3;color:#fff;font-weight:700}.logo-mark.large{width:64px;height:64px;font-size:1.2rem}.login-form{display:grid;gap:14px}.login-form label,.report-form label{display:grid;gap:8px;font-weight:600}input,select,textarea{border:1px solid #d7dfec;border-radius:12px;padding:12px 14px;background:#fbfcfe}textarea{resize:vertical}.primary-btn,.secondary-btn,.danger-btn{border:none;border-radius:12px;padding:12px 16px;cursor:pointer;font-weight:700}.primary-btn{background:#2957d3;color:#fff}.secondary-btn{background:#ebf1ff;color:#2957d3}.danger-btn{background:#ffe8e8;color:#b42318}.inline-btn{display:inline-flex;align-items:center;justify-content:center}.hint-box{margin-top:18px;padding:14px;border-radius:14px;background:#f7faff;color:#425466}.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{background:#0f172a;color:#fff;padding:20px;display:flex;flex-direction:column;justify-content:space-between}.logo-card{display:flex;gap:14px;align-items:center;margin-bottom:28px}.logo-card h1{margin:0;font-size:1.2rem}.logo-card p{margin:4px 0 0;color:#cbd5e1;font-size:.92rem}.role-switcher{background:#ffffff14;border-radius:16px;padding:14px;margin-bottom:20px}.role-switcher span{display:block;margin-bottom:10px;color:#cbd5e1}.switch-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.switch-buttons button{border:1px solid rgba(255,255,255,.16);background:transparent;color:#fff;border-radius:10px;padding:10px;cursor:pointer}.switch-buttons button.active{background:#fff;color:#0f172a}.nav-list{display:grid;gap:8px}.nav-link{color:#dbe5f4;padding:12px 14px;border-radius:12px;transition:.2s ease}.nav-link.active,.nav-link:hover{background:#ffffff1a;color:#fff}.sidebar-footer{border-top:1px solid rgba(255,255,255,.12);padding-top:18px}.user-card{display:grid;gap:4px}.user-card span{color:#cbd5e1;font-size:.92rem}.main-content{padding:28px}.page{display:grid;gap:22px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-header h2{margin:0 0 6px;font-size:1.85rem}.page-header p{margin:0;color:#546275}.button-row{display:flex;flex-wrap:wrap;gap:10px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat-card span{color:#546275}.stat-card strong{display:block;margin-top:10px;font-size:2rem}.two-column-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.three-column-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.two-column-layout-wide{display:grid;grid-template-columns:2fr 1fr;gap:18px}.section-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.section-title-row h3,.panel h3{margin-top:0}.stack-list{display:grid;gap:12px}.stack-list.compact{gap:8px}.list-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px;border-radius:14px;background:#f8fbff}.action-link{color:inherit}.filter-bar{display:flex;gap:12px}.filter-bar input{flex:1}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:14px 12px;border-bottom:1px solid #edf1f6}th{color:#546275;font-size:.92rem}.pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:7px 12px;font-size:.85rem;font-weight:700}.pill.good{background:#e7f8ee;color:#18794e}.pill.watch{background:#fff4dd;color:#9a6700}.pill.support{background:#eef2ff;color:#4f46e5}.pill.level-talk{background:#e8f3ff;color:#175cd3}.pill.level-warning{background:#fff2cc;color:#9a6700}.pill.level-serious{background:#ffe4e8;color:#c01048}.info-list{display:grid;gap:10px;color:#334155}.classroom-panel{min-height:520px}.board-label{margin-bottom:18px;border-radius:14px;background:#1e293b;color:#fff;padding:12px;text-align:center;font-weight:700}.classroom-canvas{position:relative;min-height:400px;border-radius:18px;background:linear-gradient(180deg,#fafcff,#f3f7fd);border:1px dashed #c7d3e6}.seat{position:absolute;width:120px;min-height:74px;padding:10px;border-radius:14px;background:#fff;color:#1f2937;border:1px solid #dbe5f4;box-shadow:0 6px 18px #0f172a14;display:grid;gap:6px}.seat-label{color:#546275;font-size:.78rem}.report-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.report-form{display:grid;gap:14px}.alert-box{padding:16px;border-radius:14px;background:#fff4f4;color:#7a271a}.checkbox-row{display:flex!important;align-items:center;gap:8px;margin-top:10px}.simple-list{margin:0;padding-left:18px;color:#475569;display:grid;gap:8px}@media (max-width: 1100px){.stats-grid,.three-column-grid,.two-column-grid,.report-grid,.two-column-layout-wide{grid-template-columns:1fr}}@media (max-width: 900px){.app-shell{grid-template-columns:1fr}.sidebar{gap:18px}.main-content{padding:18px}.page-header{flex-direction:column}}
