:root{--bg:#0f1115;--panel:#181b22;--line:#2a2f3a;--text:#e7e9ee;--muted:#8b91a0;--accent:#5b8cff;--green:#3fb950;--red:#f0664f}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Noto Sans JP,sans-serif}.app{max-width:720px;margin:0 auto;padding:0 16px}.header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 0;display:flex}.brand{color:var(--text);font-weight:700;text-decoration:none}.nav{align-items:center;gap:16px;display:flex}.nav a{color:var(--muted);text-decoration:none}.nav a.active{color:var(--text)}.page{padding:24px 0}.narrow{max-width:460px;margin:0 auto}h1{font-size:1.5rem}h2{margin-top:28px;font-size:1.1rem}.muted{color:var(--muted)}.error{color:var(--red)}.intro{margin-bottom:28px}.intro .lead{color:var(--text);font-size:1.05rem;line-height:1.5}.intro-points{color:var(--muted);margin:12px 0 0;padding-left:18px;line-height:1.7}.divider{color:var(--muted);align-items:center;gap:12px;margin:18px 0;font-size:.85rem;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--line);flex:1}.stack{flex-direction:column;gap:12px;display:flex}.stack label{flex-direction:column;gap:6px;display:flex}input{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:8px;width:100%;padding:10px;font-size:1rem}button{background:var(--panel);border:1px solid var(--line);color:var(--text);cursor:pointer;border-radius:8px;padding:10px 14px;font-size:.95rem}button:hover{border-color:var(--accent)}.link-btn{color:var(--accent);background:0 0;border:none;padding:0 6px}.link-btn.danger{color:var(--red)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.block{text-align:center;width:100%;margin:16px 0;padding:12px;text-decoration:none;display:block}.btn-sm{color:var(--accent);padding:6px 10px;font-size:.85rem;text-decoration:none}.stats{gap:12px;margin:20px 0;display:flex}.stat{background:var(--panel);border:1px solid var(--line);text-align:center;color:var(--muted);border-radius:10px;flex:1;padding:16px}.stat .num{color:var(--text);font-size:1.8rem;font-weight:700;display:block}.unit-list{padding:0;list-style:none}.unit-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.study-top{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.dir-toggle{gap:6px;display:flex}.dir-toggle button{padding:6px 10px;font-size:.85rem}.dir-toggle button.active{border-color:var(--accent);color:var(--accent)}.card{background:var(--panel);border:1px solid var(--line);cursor:pointer;text-align:center;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;min-height:240px;padding:24px;display:flex;position:relative}.card-face{width:100%}.card-main{font-size:2rem}.card-main.answer{color:var(--accent)}.card-sub{color:var(--muted);margin-top:6px}.card hr{border:none;border-top:1px solid var(--line);margin:18px 0}.hint{color:var(--muted);font-size:.8rem;position:absolute;bottom:12px}.grade{gap:12px;margin-top:16px;display:flex}.grade button{flex:1;padding:14px;font-weight:600}.grade .wrong{border-color:var(--red);color:var(--red)}.grade .right{border-color:var(--green);color:var(--green)}.manage-units{padding:0;list-style:none}.manage-units li{border-bottom:1px solid var(--line);justify-content:space-between;padding:8px 0;display:flex}.manage-units li.active button.link-btn:first-child{color:var(--text);font-weight:600}.people-list{padding:0;list-style:none}.people-list li{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 0;display:flex}.person-email{word-break:break-all;flex:1}.person-actions{gap:6px;display:flex}.badge{text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:.72rem}.badge-approved{color:var(--green);border-color:var(--green)}.badge-pending{color:var(--accent);border-color:var(--accent)}.badge-blocked{color:var(--red);border-color:var(--red)}.inline-form{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.inline-form input{flex:1;min-width:120px}.cards-table{border-collapse:collapse;width:100%;margin-top:8px}.cards-table th{text-align:left;color:var(--muted);padding-bottom:6px;font-size:.85rem;font-weight:500}.cards-table td{padding:4px 4px 4px 0}.cards-table input{padding:6px 8px}
