:root,:root[data-theme=light]{color-scheme:light;--page: #efeff4;--card: #ffffff;--input: #f2f2f7;--input-border: #e5e5ea;--text: #000000;--hint: #8e8e93;--accent: var(--tg-theme-button-color, #2481cc);--accent-text: var(--tg-theme-button-text-color, #ffffff);--secondary-button: #e5e5ea;--danger: #ff3b30;--ok: #34c759;--radius: 16px;--radius-small: 12px}:root[data-theme=dark]{color-scheme:dark;--page: #1c1c1e;--card: #2c2c2e;--input: #3a3a3c;--input-border: #48484a;--text: #ffffff;--hint: #8e8e93;--accent: var(--tg-theme-button-color, #2ea6ff);--accent-text: var(--tg-theme-button-text-color, #ffffff);--secondary-button: #3a3a3c;--danger: #ff453a;--ok: #30d158}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;color:var(--text);background:var(--page);-webkit-font-smoothing:antialiased}.app{max-width:640px;margin:0 auto;padding:12px 12px 96px}.app-header{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:4px 4px 12px}.lang-select{width:auto;padding:6px 28px 6px 10px;font-size:13px}.roster-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:var(--radius-small);background:var(--input);margin-bottom:8px;cursor:pointer}.roster-row.absent{opacity:.55}.app-header h1{font-size:20px;margin:0}.tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:12px;scrollbar-width:none}.tab{flex:0 0 auto;padding:9px 16px;border:none;border-radius:999px;background:var(--card);color:var(--text);font-size:15px;font-weight:500}.tab-active{background:var(--accent);color:var(--accent-text)}.section{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:12px}.section h2{font-size:17px;margin:0 0 8px}.muted{color:var(--hint);font-size:14px;margin:4px 0 10px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}.grow{flex:1 1 140px}.field{display:block;margin:12px 0;font-size:14px}label.field>span{display:block;color:var(--hint);margin-bottom:6px}input,select{width:100%;padding:11px 12px;border:1px solid var(--input-border);border-radius:var(--radius-small);background:var(--input);color:var(--text);caret-color:var(--accent);font-size:16px;outline:none}input:focus,select:focus{border-color:var(--accent)}input.invalid{border-color:var(--danger)}.clearable{display:flex;align-items:center;gap:6px;padding-right:8px;border:1px solid var(--input-border);border-radius:var(--radius-small);background:var(--input)}.clearable:focus-within{border-color:var(--accent)}.clearable.invalid{border-color:var(--danger)}.clearable input{flex:1 1 auto;min-width:0;border:none;background:transparent;border-radius:var(--radius-small)}.card .clearable{background:var(--card);border-color:var(--card)}.clearable-button{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0 0 2px;border-radius:50%;background:var(--hint);color:var(--card);font-size:18px;line-height:1}button{padding:11px 16px;border:none;border-radius:var(--radius-small);background:var(--accent);color:var(--accent-text);font-size:15px;font-weight:500;cursor:pointer}button:disabled{opacity:.45;cursor:default}button.secondary{background:var(--secondary-button);color:var(--accent)}button.danger{background:var(--secondary-button);color:var(--danger)}button.small{padding:7px 12px;font-size:14px}.card{background:var(--input);border-radius:var(--radius-small);padding:12px;margin:10px 0}.card input,.card select{background:var(--card);border-color:var(--card)}.card-title{display:flex;justify-content:space-between;align-items:center;gap:8px;font-weight:600}.card-actions{display:flex;gap:6px;flex-shrink:0}.notice{border-radius:var(--radius-small);padding:10px 12px;margin:10px 0;font-size:14px}.notice-error{background:#ff453a26;color:var(--danger)}.notice-ok{background:#30d15826;color:var(--ok)}.badge{font-size:13px;color:var(--hint)}.qr-preview{display:block;width:100%;max-width:320px;margin:10px auto;border-radius:var(--radius-small);background:#fff}.link-box{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;background:var(--input);padding:10px 12px;border-radius:var(--radius-small)}.center{text-align:center;padding:40px 12px}.save-bar{position:fixed;left:0;right:0;bottom:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--card);box-shadow:0 -4px 16px #00000026}.save-bar button{width:100%;padding:14px;font-size:16px}
