:root{--tc-bg:#f4f7fb;--tc-surface:#ffffff;--tc-surface-soft:#f8fafc;--tc-border:#e2e8f0;--tc-text:#172033;--tc-muted:#64748b;--tc-blue:#2563eb;--tc-blue-dark:#1e3a5f;--tc-purple:#6d28d9;--tc-radius:14px;--tc-shadow:0 8px 24px rgba(15,23,42,0.06)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;width:100%;max-width:100%;overflow-x:hidden}body{background:var(--tc-bg);color:var(--tc-text);font-family:Noto Sans JP,Hiragino Sans,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(37,99,235,.28);outline-offset:2px}.tc-header{min-height:58px}.tc-header-logo{display:block;height:28px;width:auto}.tc-header-action{transition:background .18s ease,transform .18s ease}.tc-header-action:hover{background:rgba(255,255,255,.28)!important}.tc-header-action:active{transform:translateY(1px)}.teacher-preview-banner{position:relative;z-index:90}.teacher-nav{position:-webkit-sticky;position:sticky;top:58px;z-index:80}.teacher-nav-link{transition:color .18s ease,background .18s ease}.teacher-nav-link:hover{background:#eff6ff}.logout-label-short,.teacher-nav-label-short{display:none}.tc-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:4px 0 18px}.tc-page-eyebrow{margin-bottom:4px;color:var(--tc-blue);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.tc-page-title{margin:0;color:var(--tc-text);font-size:25px;font-weight:800;letter-spacing:-.025em}.tc-page-description{margin:5px 0 0;color:var(--tc-muted);font-size:13px}.tc-stat-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.tc-stat-chip{min-width:92px;padding:8px 11px;border:1px solid var(--tc-border);border-radius:10px;background:rgba(255,255,255,.82);box-shadow:0 2px 8px rgba(15,23,42,.035)}.tc-stat-chip b{display:block;color:var(--tc-text);font-size:17px;line-height:1.15}.tc-stat-chip span{color:var(--tc-muted);font-size:10px;font-weight:700}.teacher-dashboard-card{border-radius:var(--tc-radius)!important;border-color:var(--tc-border)!important;box-shadow:var(--tc-shadow)}.teacher-student-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px!important;gap:8px!important}.teacher-student-card{border:1px solid #edf1f6;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.teacher-student-card:hover{border-color:#bfdbfe;box-shadow:0 5px 16px rgba(37,99,235,.08);transform:translateY(-1px)}.admin-filter-bar{padding:12px;border:1px solid var(--tc-border);border-radius:12px;background:rgba(255,255,255,.74)}.admin-filter-bar input,.admin-filter-bar select{min-height:40px}.admin-data-card{border:1px solid var(--tc-border);border-radius:var(--tc-radius)!important;box-shadow:var(--tc-shadow)!important}.admin-data-table tbody tr{transition:background .16s ease}.admin-data-table tbody tr:hover{background:#f8fafc}.admin-detail-link{display:inline-flex;align-items:center;justify-content:center;min-height:30px}.student-bottom-nav{display:none}.accordion-card{box-shadow:0 3px 14px rgba(15,23,42,.04);transition:border-color .18s ease,box-shadow .18s ease}.accordion-card:hover{border-color:#cbd5e1!important}.accordion-toggle:hover{background:#f8fafc!important}@media (max-width:767px){.tc-header{min-height:54px;padding:9px 12px!important}.tc-header-logo{height:24px!important;max-width:168px}.admin-account-details,.admin-logout-button,.admin-role-label{display:none!important}.admin-mobile-account{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#faf7ff;border-bottom:1px solid #ede9fe}.admin-mobile-menu-logout{display:flex;width:100%;align-items:center;gap:10px;padding:14px 20px;color:#dc2626;border:0;border-top:1px solid #f3f4f6;background:#fff;font-size:14px;font-weight:700}.admin-main{padding:14px 12px 28px!important}.teacher-preview-banner{padding:8px 12px!important;gap:5px!important;text-align:center}.teacher-account-name{max-width:76px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-label-long{display:none}.logout-label-short{display:inline}.teacher-nav{top:54px}.teacher-nav>div{width:100%;min-width:0!important;padding:0!important}.teacher-nav-link{flex:1 1 25%;min-width:0;justify-content:center;gap:3px!important;padding:10px 3px 8px!important;font-size:11px!important}.teacher-nav-label-long{display:none}.teacher-nav-label-short{display:inline}.teacher-main{padding:14px 12px 28px!important}.tc-page-header{align-items:flex-start;flex-direction:column;gap:11px;margin-bottom:14px}.tc-page-title{font-size:22px}.tc-page-description{font-size:12px;line-height:1.6}.tc-stat-row{width:100%;justify-content:stretch}.tc-stat-chip{flex:1 1;min-width:0;padding:7px 9px}.tc-stat-chip b{font-size:16px}.teacher-student-grid{grid-template-columns:1fr;gap:5px!important}.admin-filter-bar{gap:8px!important;padding:10px}.admin-filter-bar input{flex-basis:100%!important;width:100%}.admin-filter-bar select{flex:1 1;min-width:0}.admin-data-card{background:transparent!important;border:0;box-shadow:none!important}.admin-data-card,.admin-data-card>div:first-child{overflow:visible!important}.admin-data-table,.admin-data-table tbody{display:block;width:100%}.admin-data-table thead{display:none}.admin-data-table tr{display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0;margin-bottom:10px;overflow:hidden;border:1px solid var(--tc-border);border-radius:12px;background:#fff;box-shadow:0 3px 12px rgba(15,23,42,.045)}.admin-data-table td{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px!important;border-bottom:1px solid #f1f5f9!important;font-size:13px!important}.admin-data-table td:before{content:attr(data-label);flex-shrink:0;color:var(--tc-muted);font-size:10px;font-weight:700}.admin-data-table td:first-child,.admin-data-table td:nth-child(2),.admin-data-table td:nth-child(n+3){grid-column:span 1}.admin-data-table td:last-child{border-bottom:0!important}.admin-data-table td[data-label="名前"]{font-weight:700}.admin-data-table td[data-label="操作"]{grid-column:1/-1}.admin-detail-link{width:100%;min-height:34px}.page-size-controls{gap:8px!important;padding:10px 4px!important;background:transparent!important}.page-size-controls .page-spacer{display:none}.page-nav{width:100%;justify-content:space-between;overflow-x:auto}.page-nav button{white-space:nowrap}.page-edge-button,.student-breadcrumb{display:none}.student-main{padding-bottom:86px!important}.student-bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:110;display:grid;grid-template-columns:repeat(5,1fr);padding:5px max(5px,env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left));border-top:1px solid #dbe3ee;background:rgba(255,255,255,.96);box-shadow:0 -8px 24px rgba(15,23,42,.08);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.student-bottom-nav-link{display:flex;min-width:0;min-height:48px;align-items:center;justify-content:center;flex-direction:column;gap:2px;color:#64748b;border-radius:9px;text-decoration:none;font-size:9px;font-weight:700}.student-bottom-nav-link>span:first-child{font-size:17px;line-height:1}.student-bottom-nav-link.active{color:#2563eb;background:#eff6ff}}@media (min-width:768px){.admin-mobile-account,.admin-mobile-menu-logout{display:none!important}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}