:root{--ink:#17242d;--muted:#718087;--line:#e1e9e5;--bg:#f5f8f5;--paper:#fff;--green:#159b7d;--green-dark:#08735e;--soft:#e5f5ee;--red:#bd514b;--shadow:0 18px 50px rgba(25,52,45,.1)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}.app-shell{max-width:1180px;margin:0 auto;padding:0 28px}.topbar{height:76px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:18px;font-weight:800}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--ink);color:#fff}.badge{font-size:11px;font-weight:800;padding:5px 9px;border-radius:20px;background:var(--soft);color:var(--green-dark)}.topbar .ghost{margin-left:auto;border:0;background:transparent;color:var(--muted);font-weight:750;cursor:pointer}.main{min-height:calc(100vh - 140px);padding:48px 0}.auth-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;min-height:600px}.intro h1{font-size:clamp(42px,6vw,76px);line-height:1.06;letter-spacing:-.07em;margin:10px 0 24px}.intro h1 span{color:var(--green)}.intro p{max-width:470px;color:var(--muted);line-height:1.8}.eyebrow{color:var(--green-dark);font-weight:800;letter-spacing:.12em;font-size:11px;text-transform:uppercase}.auth-card,.panel,.meeting-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:28px;box-shadow:0 8px 28px rgba(25,52,45,.04)}.auth-card{max-width:420px;margin-left:auto;width:100%}.tabs{display:flex;border-bottom:1px solid var(--line);gap:20px;margin-bottom:23px}.tab{border:0;background:transparent;color:var(--muted);padding:0 0 12px;font-weight:750;border-bottom:2px solid transparent}.tab.active{color:var(--ink);border-color:var(--green)}.field{display:grid;gap:7px;margin:14px 0}.field label{font-size:12px;color:var(--muted);font-weight:750}.field input{width:100%;padding:12px;border:1px solid #dce6e0;border-radius:8px;font:inherit}.button{border:0;border-radius:8px;padding:12px 16px;font-weight:800;cursor:pointer}.primary{background:var(--ink);color:#fff}.secondary{background:var(--soft);color:var(--green-dark)}.wide{width:100%;margin-top:10px}.message{min-height:20px;margin:14px 0 0;color:var(--red);font-size:12px}.dashboard-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.dashboard-head h1{margin:5px 0 0;font-size:34px;letter-spacing:-.05em}.user-note{color:var(--muted);font-size:13px}.grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.panel h2{margin:0 0 8px;font-size:20px}.panel p{color:var(--muted);font-size:13px}.action-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.admin-panel{margin-top:16px}.user-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);gap:15px}.user-row:last-child{border-bottom:0}.user-row small{display:block;color:var(--muted);margin-top:3px}.status{font-size:11px;color:var(--muted)}.status.good{color:var(--green-dark)}.meeting-page{padding-top:10px}.meeting-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.meeting-head h1{margin:0;font-size:28px}.meeting-code{font-family:ui-monospace,monospace;font-size:16px;color:var(--green-dark);background:var(--soft);padding:8px 11px;border-radius:7px}.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.video-tile{position:relative;min-height:230px;border-radius:12px;background:#23343c;overflow:hidden;display:grid;place-items:center;color:#fff}.video-tile video{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.video-tile .label{position:absolute;left:12px;bottom:10px;background:rgba(0,0,0,.45);padding:4px 8px;border-radius:5px;font-size:12px}.video-tile .avatar{width:55px;height:55px;border-radius:50%;display:grid;place-items:center;background:#368f7b;font-size:21px;font-weight:800}.meeting-controls{display:flex;justify-content:center;gap:10px;padding:20px}.control{border:1px solid var(--line);background:#fff;border-radius:8px;padding:11px 14px;font-weight:750}.control.end{background:#b9504a;color:#fff;border-color:#b9504a}.hidden{display:none!important}.notice{padding:14px;background:#fff8e8;border:1px solid #f1dfb3;color:#84672d;border-radius:8px;font-size:13px;margin-top:16px}footer{border-top:1px solid var(--line);padding:20px 0 25px;color:#88958f;font-size:11px}@media(max-width:760px){.app-shell{padding:0 18px}.auth-layout,.grid{grid-template-columns:1fr}.auth-card{margin:0}.intro h1{font-size:50px}.main{padding:32px 0}.dashboard-head,.meeting-head{align-items:start;gap:12px;flex-direction:column}.video-grid{grid-template-columns:1fr}.video-tile{min-height:190px}}
.admin-add-form{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.admin-add-form input:not([type=checkbox]){min-width:150px;flex:1;padding:10px;border:1px solid #dce6e0;border-radius:8px;font:inherit}.admin-add-form label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.button.danger{color:var(--red);background:#fff0ef}
.participant-count{display:block;margin-top:6px;color:var(--muted);font-size:12px}
