:root{--bg: #f4f1ea;--panel: #ffffff;--ink: #1d2330;--ink-soft: #5b6473;--line: #ded8cc;--accent: #2f6f4e;--accent-ink: #ffffff;--warn: #b4531b;--danger: #a02c2c;--light-square: #f0d9b5;--dark-square: #b58863;--mark: #f6d365;--radius: 10px;--shadow: 0 1px 2px rgba(29, 35, 48, .08), 0 8px 24px rgba(29, 35, 48, .06);font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh}h1,h2,h3{line-height:1.2;margin:0 0 .5rem}a{color:var(--accent)}button{font:inherit;cursor:pointer;border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);padding:.45rem .85rem}button.secondary{background:var(--panel);color:var(--ink);border-color:var(--line)}button.danger{background:var(--panel);color:var(--danger);border-color:#e2b4b4}button:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.45rem .6rem;width:100%}textarea{resize:vertical;min-height:4.5rem}label{display:grid;gap:.25rem;font-size:.86rem;color:var(--ink-soft)}table{width:100%;border-collapse:collapse;font-size:.94rem}th,td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft)}code{background:#efeadd;padding:.05rem .3rem;border-radius:4px}.shell{display:grid;grid-template-rows:auto 1fr;min-height:100vh}.topbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.7rem 1rem;background:#1d2330;color:#f7f5f0}.topbar .brand{font-weight:700;letter-spacing:.02em;display:flex;align-items:center;gap:.45rem}.topbar .brand span.mark{font-size:1.35rem}.topbar nav{display:flex;gap:.35rem;flex-wrap:wrap}.topbar nav a{color:#d8dbe2;text-decoration:none;padding:.35rem .7rem;border-radius:999px;font-size:.92rem}.topbar nav a.active{background:#33507a;color:#fff}.topbar .who{margin-left:auto;display:flex;align-items:center;gap:.6rem;font-size:.9rem}.role-badge{border:1px solid #4c5a73;border-radius:999px;padding:.1rem .55rem;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em}.content{width:min(1080px,100%);margin:0 auto;padding:1.25rem 1rem 3rem;display:grid;gap:1rem}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem}.card>header{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;margin-bottom:.6rem}.card>header h2{margin:0;font-size:1.15rem}.card>header .spacer{flex:1}.muted{color:var(--ink-soft);font-size:.9rem}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.stack{display:grid;gap:.6rem}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.banner{border-left:4px solid var(--warn);background:#fdf3e7;padding:.6rem .8rem;border-radius:6px;font-size:.92rem}.error{color:var(--danger);font-size:.9rem}.notice{color:var(--accent);font-size:.9rem}.tag{display:inline-block;border-radius:999px;padding:.08rem .5rem;font-size:.76rem;border:1px solid var(--line);color:var(--ink-soft);background:#f7f4ee}.tag.done{border-color:#b7d8c5;background:#edf7f1;color:#23694a}.tag.wait{border-color:#e8d3a8;background:#fdf6e6;color:#8a6410}.pill-list{display:flex;flex-wrap:wrap;gap:.35rem}.pill{border:1px solid var(--line);border-radius:999px;padding:.15rem .6rem;font-size:.84rem;background:#fff;color:var(--ink);cursor:pointer}.pill.on{border-color:var(--accent);background:#eaf3ee;color:#23694a}.lesson-grid{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:1rem;align-items:start}@media(max-width:900px){.lesson-grid{grid-template-columns:1fr}}.lesson-image{max-width:100%;border:1px solid var(--line);border-radius:8px;display:block}.task-box{border:1px dashed var(--line);border-radius:var(--radius);padding:.7rem .85rem;background:#fbfaf6;white-space:pre-wrap}.notation-help{display:flex;gap:.25rem;flex-wrap:wrap}.notation-help button{padding:.15rem .5rem;font-size:.86rem;background:#fff;color:var(--ink);border-color:var(--line)}.board-wrap{display:grid;gap:.5rem;justify-items:center}.board{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;width:min(480px,100%);border:2px solid #4a3f2f;border-radius:4px;overflow:hidden;-webkit-user-select:none;user-select:none}.square{position:relative;display:flex;align-items:center;justify-content:center;font-size:clamp(1.1rem,5.2vw,2.35rem);line-height:1}.square.light{background:var(--light-square)}.square.dark{background:var(--dark-square)}.square.last:after{content:"";position:absolute;inset:0;background:#f6d36573}.square .coord{position:absolute;font-size:.56rem;font-weight:600;letter-spacing:0;line-height:1;color:#1d233099;pointer-events:none}.square .coord.rank{top:.12rem;left:.18rem}.square .coord.file{bottom:.1rem;right:.2rem}.square.dark .coord{color:#fffcf5bf}.piece{position:relative;z-index:1;font-family:"Noto Sans Symbols 2",Segoe UI Symbol,DejaVu Sans,sans-serif}.piece.w{color:#fff;-webkit-text-stroke:1.4px #2b2b2b;text-shadow:0 1px 1px rgba(0,0,0,.35)}.piece.b{color:#16181d;-webkit-text-stroke:1.1px #f3f3f3;text-shadow:0 1px 1px rgba(0,0,0,.25)}.moves{display:flex;flex-wrap:wrap;gap:.15rem;max-height:9rem;overflow:auto;font-size:.9rem}.moves button{background:#fff;color:var(--ink);border-color:var(--line);padding:.1rem .4rem;font-size:.88rem}.moves button.current{background:var(--mark);border-color:#c9a227;color:#3a2d00}.moves .move-number{color:var(--ink-soft);font-size:.84rem;padding:.1rem .2rem}.chat{display:grid;grid-template-columns:minmax(200px,260px) 1fr;gap:1rem;align-items:start}@media(max-width:780px){.chat{grid-template-columns:1fr}}.peer-list{display:grid;gap:.3rem;max-height:60vh;overflow:auto}.peer-list button{background:#fff;color:var(--ink);border:1px solid var(--line);text-align:left;display:flex;justify-content:space-between;gap:.4rem}.peer-list button.active{border-color:var(--accent);background:#eaf3ee}.thread{display:grid;gap:.5rem}.messages{display:grid;gap:.4rem;max-height:55vh;overflow:auto;padding:.25rem}.message{border:1px solid var(--line);border-radius:8px;padding:.4rem .6rem;background:#fff}.message.mine{background:#f1f7f3;border-color:#cfe3d7}.message.gone{background:#f6f6f6;color:var(--ink-soft);font-style:italic}.message .meta{display:flex;gap:.5rem;font-size:.76rem;color:var(--ink-soft)}.badge{background:var(--danger);color:#fff;border-radius:999px;padding:0 .4rem;font-size:.72rem}.login{min-height:100vh;display:grid;place-items:center;padding:1rem;background:radial-gradient(circle at 20% 10%,#2f4a3a 0,#1d2330 55%)}.login .card{width:min(420px,100%);display:grid;gap:.7rem}.login h1{font-size:1.35rem}.tabs{display:flex;gap:.3rem}.tabs button{flex:1;background:#fff;color:var(--ink);border-color:var(--line)}.tabs button.on{background:var(--accent);color:#fff;border-color:var(--accent)}
