:root{--brand-green: #112d1d;--brand-green-700: #1b4029;--brand-green-900: #0a1c12;--brand-lavender: #c9c8e8;--white: #ffffff;--black: #000000;--ink-90: #111111;--ink-70: #2c2c2c;--ink-50: #5c5c5c;--ink-30: #b8b8b8;--ink-10: #e8e8e8;--paper: #ffffff;--paper-soft: #fafaf7;--paper-warm: #faf7ee;--ink: #111111;--rule: #111111;--danger: #7a2929;--danger-bg: #f7eaea;--bg: var(--paper);--fg: var(--black);--fg-muted: var(--ink-50);--fg-strong: var(--brand-green);--link: var(--brand-green);--link-hover: var(--black);--on-brand-fg: var(--white);--on-brand-muted: rgba(255, 255, 255, .72);--font-display: "Cinzel", "Trajan Pro", "Cormorant Garamond", Georgia, serif;--font-serif: "EB Garamond", "Garamond", Georgia, "Times New Roman", serif;--font-arabic: "Amiri", "Scheherazade New", "Traditional Arabic", serif;--font-ui: "DM Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--fs-display-xl: 64px;--fs-display-l: 48px;--fs-display-m: 40px;--fs-h1: 32px;--fs-h2: 26px;--fs-h3: 22px;--fs-h4: 18px;--fs-body-l: 18px;--fs-body: 16px;--fs-body-s: 14px;--fs-caption: 12px;--fs-eyebrow: 11px;--lh-display: 1.08;--lh-heading: 1.18;--lh-body: 1.55;--lh-tight: 1.25;--ls-display: .01em;--ls-eyebrow: .22em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--space-10: 128px;--radius-0: 0px;--radius-1: 2px;--radius-2: 4px;--radius-3: 8px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(17, 45, 29, .06);--shadow-md: 0 6px 18px rgba(17, 45, 29, .1);--shadow-lg: 0 18px 48px rgba(17, 45, 29, .14);--border-hair: 1px solid var(--black);--border-soft: 1px solid var(--ink-10);--ease-standard: cubic-bezier(.2, 0, 0, 1);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .36s}*{box-sizing:border-box}html,body{height:100%;margin:0;background:var(--bg);overflow:hidden;overscroll-behavior:none;position:fixed;inset:0;width:100%}body{color:var(--fg);font-family:var(--font-serif);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#root{height:100%;overflow:hidden}body{-webkit-tap-highlight-color:transparent}:root{--brand-green: #E1BB80;--brand-green-700: #C9A26B;--brand-green-900: #A78554;--brand-lavender: #E1BB80;--white: #112D1D;--black: #fbfaf5;--ink-90: #fbfaf5;--ink-70: rgba(251, 250, 245, .78);--ink-50: rgba(251, 250, 245, .55);--ink-30: rgba(251, 250, 245, .32);--ink-10: rgba(251, 250, 245, .12);--paper: #112D1D;--paper-soft: rgba(251, 250, 245, .04);--paper-warm: #173925;--ink: #fbfaf5;--rule: rgba(251, 250, 245, .18);--danger: #f0b4b4;--danger-bg: rgba(240, 180, 180, .1);--bg: #112D1D;--fg: #fbfaf5;--fg-muted: rgba(251, 250, 245, .7);--fg-strong: #ffffff;--link: #E1BB80;--link-hover: #ffffff;--on-brand-fg: #0A1C12;--on-brand-muted: rgba(10, 28, 18, .72);--border-hair: 1px solid rgba(251, 250, 245, .32);--border-soft: 1px solid rgba(251, 250, 245, .18);--radius-0: 0px;--radius-1: 0px;--radius-2: 0px;--radius-3: 0px;--radius-pill: 0px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .18);--shadow-md: 0 8px 24px rgba(0, 0, 0, .26);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .42);--hand: "Caveat", "Kalam", cursive;--pencil: rgba(251, 250, 245, .65)}.app{height:var(--tg-vh, 100dvh);width:100%;background:var(--bg);display:flex;flex-direction:column;overflow-y:auto;overflow-x:clip;touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:none;overscroll-behavior-y:none}.app.modal-open{overflow:hidden}.tg-safe-top{padding-top:max(56px,calc(var(--tg-safe-top, env(safe-area-inset-top, 0px)) + 12px))}.screen.tg-safe-bottom{padding-bottom:calc(var(--tg-safe-bottom, env(safe-area-inset-bottom, 0px)) + 140px)}.screen{flex:1 0 auto;display:flex;flex-direction:column;padding-left:22px;padding-right:22px;padding-bottom:0;position:relative}.screen-pad-bottom{padding-bottom:24px}.notification-gate-bg{pointer-events:none;user-select:none}.notification-gate-bg .app{filter:blur(5px) saturate(.75)}.notification-modal-backdrop{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:max(22px,var(--tg-safe-top, 0px)) 22px max(22px,var(--tg-safe-bottom, 0px));background:#112d1d42;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);overscroll-behavior:contain}.notification-modal{width:min(100%,380px);border:1.5px solid var(--brand-green);border-radius:var(--radius-2);background:var(--paper);padding:22px;text-align:center;box-shadow:var(--shadow-lg)}.student-info-modal{display:flex;flex-direction:column;text-align:left;height:min(calc(100dvh - 88px),640px);overflow:hidden}.student-info-list{display:grid;gap:10px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding-right:2px}.student-info-row{border:1px solid rgba(251,250,245,.16);border-radius:var(--radius-1);background:#fbfaf50a;padding:10px 12px}.student-info-row .body-s{margin-top:2px;overflow-wrap:anywhere}.notification-bell{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--brand-green);color:var(--white);font-size:22px}.eyebrow,.wf-eyebrow{font-family:var(--font-display);font-size:var(--fs-eyebrow);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--brand-green)}.h1{font-family:var(--font-serif);font-size:var(--fs-h1);font-weight:600;color:var(--brand-green);line-height:var(--lh-heading);letter-spacing:0}.h2{font-family:var(--font-serif);font-size:var(--fs-h2);font-weight:600;color:var(--brand-green);line-height:var(--lh-heading)}.h3{font-family:var(--font-serif);font-size:var(--fs-h3);font-weight:600;color:var(--brand-green)}.display-l{font-family:var(--font-display);font-size:var(--fs-display-l);color:var(--brand-green);line-height:var(--lh-display);letter-spacing:var(--ls-display)}.body{font-family:var(--font-serif);font-size:var(--fs-body);color:var(--fg)}.body-s{font-size:var(--fs-body-s)}.caption{font-size:var(--fs-caption);color:var(--fg-muted)}.muted{color:var(--fg-muted)}.btn{font-family:var(--font-ui);font-size:15px;font-weight:600;border-radius:var(--radius-1);padding:12px 18px;border:1.5px solid var(--ink);background:var(--white);color:var(--ink-90);cursor:pointer;transition:background var(--dur-base) var(--ease-standard),color var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard);-webkit-tap-highlight-color:transparent;user-select:none;touch-action:manipulation}.btn:hover{background:var(--ink);color:var(--white)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.42;pointer-events:none}.btn-primary{background:var(--brand-green);color:var(--white);border-color:var(--brand-green)}.btn-primary:hover{background:var(--brand-green-700);color:var(--white)}.btn-primary:active{background:var(--brand-green-900)}.btn-ghost{background:transparent;border-color:var(--ink-30);color:var(--ink-70)}.btn-ghost:hover{background:var(--ink-10);color:var(--ink-90)}.btn-block{display:block;width:100%}.btn-lg{padding:14px 20px;font-size:16px}.btn-sm{padding:6px 10px;font-size:12px}.welcome-app .screen{align-items:center}.welcome-shell{width:min(100%,1040px);min-height:100%;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,420px);gap:clamp(24px,6vw,80px);align-items:center;padding:clamp(16px,4vw,48px) 0}.welcome-hero{min-width:0;max-width:620px}.welcome-title{max-width:620px;text-wrap:balance}.welcome-lead{max-width:540px;font-size:var(--fs-body-l);line-height:var(--lh-body)}.telegram-note{max-width:560px;margin-top:18px;padding:16px 18px;border-left:3px solid var(--brand-green);background:#e1bb801a}.telegram-note-title{font-family:var(--font-ui);font-size:14px;font-weight:700;color:var(--brand-green)}.telegram-note p{margin:6px 0 0;font-size:15px;line-height:1.6;color:var(--fg)}.welcome-panel{width:100%;max-width:420px;display:flex;flex-direction:column;gap:28px;padding:20px}.welcome-steps{margin:8px 0 0;padding-left:20px;font-size:15px;line-height:1.75}.welcome-auth{display:grid;gap:10px}@media (max-width: 760px){.welcome-app .screen{align-items:stretch}.welcome-shell{grid-template-columns:1fr;align-items:stretch;gap:18px;padding:0}.welcome-title{font-size:clamp(34px,13vw,var(--fs-display-l))}.welcome-lead{font-size:var(--fs-body)}.telegram-note{padding:14px}.welcome-panel{max-width:none;padding:14px}}.telegram-login{display:grid;gap:8px;width:100%;justify-items:center}.telegram-login-title{width:100%;font-family:var(--font-ui);font-size:16px;font-weight:700;text-align:center;color:var(--brand-green)}.telegram-login-widget{min-height:42px;max-width:100%}.telegram-login-widget iframe{max-width:100%}.telegram-login-fallback{color:var(--fg-muted);text-decoration:underline;text-underline-offset:3px}.telegram-login-error{color:var(--danger)}.label{font-family:var(--font-ui);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-50)}.field,input.field,select.field,textarea.field{width:100%;font-family:var(--font-serif);font-size:16px;padding:12px 14px;border:1.5px solid var(--ink);border-radius:var(--radius-1);background:var(--white);color:var(--ink-90);outline:none}.field-row{display:flex;gap:8px}.field,.card,.choice,.id-badge{min-width:0;max-width:100%}input[type=date].field{min-width:0;max-width:100%;overflow:hidden;color-scheme:dark}.card,.choice{overflow-wrap:anywhere}.form-actions{align-items:center;flex-wrap:wrap}.form-actions .btn{flex:0 0 auto}.form-actions .grow{min-width:64px}@media (max-width: 380px){.form-actions .btn{flex:1 1 120px}.form-actions .grow{order:3;flex-basis:100%;text-align:center}}.field-error{border-color:var(--danger)!important}.card{border:1.5px solid var(--ink);border-radius:var(--radius-1);padding:16px;background:var(--white)}.card-soft{background:var(--paper-soft)}.card-warm{background:var(--paper-warm)}.card-brand{background:var(--brand-green);color:var(--white);border-color:var(--brand-green)}.card-dashed{border-style:dashed;border-color:var(--brand-green)}.card-danger{border-color:var(--danger);background:var(--danger-bg)}.access-panel{border-top:1px solid var(--ink-10);padding-top:12px}.row{display:flex;flex-direction:row;gap:12px}.col{display:flex;flex-direction:column;gap:12px}.center{align-items:center}.between{justify-content:space-between}.grow{flex:1}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:24px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-5{margin-top:24px}.mt-6{margin-top:32px}.text-center{text-align:center}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--white);border-top:1px solid var(--ink);display:grid;grid-template-columns:repeat(var(--cols, 3),1fr);gap:4px;padding:6px 8px calc(6px + var(--tg-safe-bottom, env(safe-area-inset-bottom, 0px)));z-index:50}.bottom-nav .nav-item{position:relative;min-height:58px;width:100%;border:0;border-radius:var(--radius-3);background:transparent;color:var(--ink-50);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-family:var(--font-ui);font-size:11px;font-weight:500;line-height:1.1;padding:8px 6px;text-align:center;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;appearance:none;transition:color var(--dur-base) var(--ease-standard),transform var(--dur-fast) var(--ease-standard)}.bottom-nav .nav-item:before{content:"";position:absolute;inset:6px 8px;border-radius:var(--radius-3);background:var(--paper-warm);opacity:0;transform:scale(.88);transition:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard)}.bottom-nav .nav-item:active{transform:translateY(1px)}.bottom-nav .nav-item.active{color:var(--brand-green);font-weight:700}.bottom-nav .nav-item.active:before{opacity:1;transform:scale(1)}.bottom-nav .nav-icon,.bottom-nav .nav-item>div:last-child{position:relative;z-index:1}.bottom-nav .nav-icon{font-size:19px;line-height:1;transition:transform var(--dur-base) var(--ease-standard)}.bottom-nav .nav-item.active .nav-icon{animation:nav-active-pop .22s var(--ease-standard);transform:translateY(-1px) scale(1.08)}@keyframes nav-active-pop{0%{transform:scale(.92)}70%{transform:translateY(-2px) scale(1.14)}to{transform:translateY(-1px) scale(1.08)}}.save-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-ui);font-size:11px;color:var(--ink-50)}.save-badge .dot{width:8px;height:8px;border-radius:999px;background:var(--brand-green)}.id-badge{display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border:1.5px solid var(--ink);border-radius:999px;background:var(--paper-warm)}.id-badge .avatar{width:26px;height:26px;border-radius:999px;background:var(--ink-10);display:grid;place-items:center;color:var(--ink-50);font-family:var(--font-ui);font-size:11px;overflow:hidden}.id-badge .avatar img{width:100%;height:100%;object-fit:cover}.id-badge .id-label{font-family:var(--font-ui);font-size:8px;color:var(--ink-50);letter-spacing:.08em;text-transform:uppercase;line-height:1}.id-badge .id-val{font-family:var(--font-ui);font-size:12px;font-weight:700;color:var(--brand-green);letter-spacing:.04em;line-height:1.2}.progress{height:4px;background:var(--ink-10);border-radius:999px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--brand-green)}.step-header{font-family:var(--font-ui);font-size:11px;font-weight:600;color:var(--ink-50);letter-spacing:.08em;text-transform:uppercase}.choice{display:flex;gap:12px;align-items:center;padding:12px;border:1.5px solid var(--ink);border-radius:var(--radius-1);background:var(--white);cursor:pointer;user-select:none}.choice.on{background:var(--paper-warm);border-color:var(--brand-green)}.choice.is-disabled{cursor:not-allowed;opacity:.68}.choice.is-disabled .radio{opacity:.7}.choice-message{font-family:var(--font-ui);font-size:12px;line-height:1.35;color:#7a2929}.choice .radio{width:18px;height:18px;border-radius:999px;border:1.5px solid var(--ink);display:grid;place-items:center;flex:0 0 auto}.choice.on .radio{border-color:var(--brand-green)}.choice.on .radio:after{content:"";width:8px;height:8px;border-radius:999px;background:var(--brand-green)}.choice .check{width:18px;height:18px;border:1.5px solid var(--ink);display:grid;place-items:center;flex:0 0 auto;font-family:var(--font-ui);font-size:13px;color:var(--white);background:var(--white)}.choice.on .check{background:var(--brand-green);border-color:var(--brand-green)}.pill{font-family:var(--font-ui);font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;border:1.5px solid var(--brand-green);color:var(--brand-green);background:var(--white)}.pill-pending{border-color:#b08900;color:#b08900}.pill-ok{background:var(--brand-green);color:var(--white);border-color:var(--brand-green)}.pill-bad{border-color:var(--danger);color:var(--danger)}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab{font-family:var(--font-ui);font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;border:1.5px solid var(--ink);background:var(--white);color:var(--ink-90);cursor:pointer}.tab.active{background:var(--brand-green);color:var(--white);border-color:var(--brand-green)}.tbl{width:100%;border-collapse:collapse;font-family:var(--font-ui);font-size:13px}.tbl th,.tbl td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--ink-10)}.tbl th{font-size:11px;text-transform:uppercase;color:var(--ink-50);letter-spacing:.08em}.toast{position:fixed;top:calc(env(safe-area-inset-top,0px) + 12px);left:50%;transform:translate(-50%);background:var(--brand-green);color:var(--white);font-family:var(--font-ui);font-size:13px;padding:8px 16px;border-radius:999px;box-shadow:var(--shadow-md);z-index:100}.qmap{display:flex;flex-wrap:wrap;gap:4px}.qmap-dot{width:28px;height:28px;display:grid;place-items:center;border:1.5px solid var(--brand-green);background:var(--paper-warm);color:var(--brand-green);font-family:var(--font-ui);font-size:11px;font-weight:700;border-radius:var(--radius-1);cursor:pointer}.qmap-dot.wrong{border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}.qmap-dot.active{background:var(--brand-green);color:var(--white)}.qmap-dot.empty{border-color:var(--ink-30);background:var(--white);color:var(--ink-50)}a{color:var(--link);text-decoration:underline;text-underline-offset:.18em}a:hover{color:var(--link-hover)}.ar{font-family:var(--font-arabic);direction:rtl;text-align:right;font-size:1.2em}.app{background:var(--bg);color:var(--fg)}.screen{color:var(--fg)}.h1,.h2,.h3,.display-l,.body{color:var(--fg-strong)}.body-s,.caption,.muted{color:var(--fg-muted)}.eyebrow,.wf-eyebrow{color:var(--brand-green)}.card{border-color:#fbfaf566;background:#fbfaf50a;color:var(--fg);border-radius:var(--radius-1)}.card-soft,.card-warm{background:#e1bb801a}.card-brand{background:var(--brand-green);border-color:var(--brand-green);color:var(--on-brand-fg)}.btn{background:transparent;border-color:#fbfaf58c;color:var(--fg);border-radius:var(--radius-1)}.btn:hover{background:#fbfaf51a;color:var(--fg-strong)}.btn-primary{background:var(--brand-green);color:var(--on-brand-fg);border-color:var(--brand-green)}.btn-primary:hover{background:var(--brand-green-700);color:var(--on-brand-fg)}.btn-ghost{background:transparent;border-color:#fbfaf54d;color:#fbfaf5c2}.btn-danger{background:var(--danger);color:var(--white);border-color:var(--danger)}.btn-danger:hover{background:var(--danger);color:var(--white);filter:brightness(.92)}.field,input.field,select.field,textarea.field{background:#ffffff0d;border-color:#ffffff59;color:var(--fg-strong);border-radius:1px}select.field{color-scheme:dark}select.field option{background-color:#214d34;color:var(--fg);padding:10px 12px}select.field option:checked,select.field option:hover{background-color:var(--brand-green);color:var(--on-brand-fg)}.field:focus{border-color:var(--brand-green)}.id-badge{background:#e1bb801a;border-color:#fbfaf559}.id-badge .avatar{background:#fbfaf51f;color:var(--fg-muted)}.id-badge .id-val{color:var(--brand-green)}.choice{background:#fbfaf50a;border-color:#fbfaf559;color:var(--fg)}.choice.on{background:#e1bb801f;border-color:var(--brand-green)}.choice-message{color:#f0b4b4}.choice .radio,.choice .check{border-color:#fbfaf580;background:transparent}.choice.on .radio:after,.choice.on .check{background:var(--brand-green);border-color:var(--brand-green);color:var(--on-brand-fg)}.bottom-nav{background:#0a1c12;border-top-color:#ffffff2e}.bottom-nav .nav-item{color:#ffffff73}.bottom-nav .nav-item.active{color:var(--brand-green)}.bottom-nav .nav-item:before{background:#e1bb8021}.pill-pending{border-color:#f1d68f;color:#f1d68f;background:#f1d68f14}.pill-ok{background:#cfe6d614;color:#cfe6d6;border-color:#cfe6d6}.pill-bad,.pill-fail{border-color:#f0b4b4;color:#f0b4b4;background:#f0b4b414}.tbl th{background:#00000040;color:var(--brand-green)}.tbl th,.tbl td{border-bottom-color:#ffffff2e}.toast{background:var(--brand-green);color:var(--on-brand-fg)}.qmap-dot{background:#e1bb801a;border-color:var(--brand-green);color:var(--brand-green)}.qmap-dot.active{background:var(--brand-green);color:var(--on-brand-fg)}.qmap-dot.empty{background:transparent;border-color:#fbfaf552;color:var(--fg-muted)}.hand,.hand-note{font-family:var(--hand);font-weight:500;line-height:1.15}.hand{color:var(--pencil)}.hand-note{color:var(--brand-green);font-size:16px}.tile-icon{width:32px;height:32px;border:1.5px solid rgba(251,250,245,.4);color:var(--brand-green);display:grid;place-items:center;font-family:var(--font-ui);border-radius:2px;background:#fbfaf50a;flex:0 0 auto}.nav-card{width:100%;border:1.5px solid rgba(251,250,245,.4);border-radius:var(--radius-1);background:#fbfaf50a;text-align:left;cursor:pointer;font:inherit}.status-panel{border:1.5px solid rgba(251,250,245,.4);border-radius:var(--radius-1);background:#fbfaf50a;padding:16px}.status-count{background:var(--brand-green);color:var(--on-brand-fg);border-radius:var(--radius-pill);padding:3px 10px;font-family:var(--font-ui);font-size:11px;font-weight:700}.status-timeline{position:relative;display:flex;flex-direction:column}.status-timeline:before{content:"";position:absolute;left:11px;top:16px;bottom:16px;width:2px;background:#fbfaf552}.status-step{position:relative;z-index:1;display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 0}.status-dot{width:24px;height:24px;border-radius:var(--radius-1);display:grid;place-items:center;flex:0 0 auto;border:1.5px solid rgba(251,250,245,.32);background:var(--bg);color:#fbfaf58c;font-family:var(--font-ui);font-size:12px;font-weight:700}.status-step.done .status-dot,.status-step.current .status-dot{background:var(--brand-green);border-color:var(--brand-green);color:var(--on-brand-fg)}.status-step.refused .status-dot{background:#f0b4b4;border-color:#f0b4b4;color:#0a1c12}.status-copy{flex:1;min-width:0}.status-title{font-family:var(--font-serif);font-size:15px;font-weight:600;color:var(--fg-strong);line-height:1.2}.status-detail{font-family:var(--font-ui);font-size:11px;color:var(--fg-muted);line-height:1.3;margin-top:2px}.status-step.pending .status-title{color:#fbfaf58c}.status-current{color:var(--brand-green);font-family:var(--hand);font-size:14px;flex:0 0 auto}.save-badge .dot,.id-badge,.id-badge .avatar,.progress,.pill,.tab,.toast{border-radius:var(--radius-1)}.attendance-callout{padding:14px;border:1.5px solid var(--brand-green);background:#e1bb8024;box-shadow:0 0 #e1bb8073;animation:attendance-pulse 1.4s ease-in-out infinite}.group-invite-callout{padding:14px;border:1.5px solid var(--brand-green);background:#e1bb801f}@keyframes attendance-pulse{0%,to{box-shadow:0 0 #e1bb806b}50%{box-shadow:0 0 0 8px #e1bb8000}}.attention-pulse{animation:attention-pulse 1.15s ease-in-out infinite;box-shadow:0 0 #e1bb8085}@keyframes attention-pulse{0%,to{filter:brightness(1);box-shadow:0 0 #e1bb8085}50%{filter:brightness(1.16);box-shadow:0 0 0 8px #e1bb8000}}.save-badge.is-idle .dot{background:var(--ink-30)}.save-badge.is-saving .dot{background:#d9a441;animation:save-pulse 1s ease-in-out infinite}.save-badge.is-saved .dot{background:var(--brand-green)}.save-badge.is-error{color:var(--danger)}.save-badge.is-error .dot{background:var(--danger)}@keyframes save-pulse{0%,to{opacity:1}50%{opacity:.3}}@media (hover: none){.btn:hover{background:transparent;border-color:#fbfaf58c;color:var(--fg)}.btn-primary:hover{background:var(--brand-green);color:var(--on-brand-fg)}.btn-ghost:hover{background:transparent;color:#fbfaf5c2}.btn-danger:hover{background:var(--danger);color:var(--white);filter:none}}
