:root{--accent:#b6863a;--accent-deep:#8a6427;--sand:#e9dcc3;--sand-2:#d8c69f;--ink:#2a2620;--ink-soft:#6f675a;--paper:#faf6ee;--card:#ffffff;--border:#e7ddc8;--danger:#b4493c;--shadow:0 2px 8px rgba(40,32,18,.07);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--paper);color:var(--ink)}*,::after,::before{box-sizing:border-box;margin:0;padding:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideup{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fade{from{opacity:0}to{opacity:1}}body,html{height:100%}body{overflow-x:hidden;background:var(--paper);color:var(--ink)}.lock,.screen{min-height:100dvh;display:flex;flex-direction:column;width:100%;max-width:430px;margin:0 auto;background:var(--paper)}.lock-art{background:linear-gradient(165deg,var(--sand) 0,#f0e8d4 100%);display:flex;align-items:center;justify-content:center;padding:48px 24px 40px;position:relative}.lock-body{padding:28px 20px;flex:1}.lock-eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-deep);font-weight:700;margin-bottom:6px}.lock-title{font-size:clamp(30px,8vw,38px);line-height:1.02;font-weight:800;letter-spacing:-.02em}.lock-sub{margin:12px 0 22px;color:var(--ink-soft);font-size:15px;line-height:1.55}.content,.field,.lock-form,.timeline{display:grid}.lock-form{gap:12px}.content{flex:1;padding:16px 16px 124px;gap:16px;min-width:0;grid-template-columns:minmax(0,1fr);align-content:start}.timeline{gap:10px;min-width:0;grid-template-columns:minmax(0,1fr)}.field{gap:6px}.field-label{font-size:13.5px;font-weight:600}.input{width:100%;height:48px;padding:0 14px;font-size:16px;border:1.5px solid var(--border);border-radius:12px;background:var(--card)}.input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(182,134,58,.18)}.err,.field-error{font-size:13px;color:var(--danger);font-weight:500}.btn-primary{width:100%;height:50px;border:none;border-radius:13px;cursor:pointer;background:var(--accent);color:#fff;font-size:16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 6px 16px rgba(182,134,58,.3)}.btn-ghost{height:50px;border:1.5px solid var(--border);border-radius:13px;background:var(--card);padding:0 16px}.otp-sent{font-size:14px;color:var(--ink-soft);line-height:1.5}.appbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#2a2620;color:#f6efe0;border-bottom:1px solid #3a342a}.appbar-left{display:flex;align-items:center;gap:11px}.appbar-mark{width:38px;height:38px;border-radius:11px;background:rgba(182,134,58,.16);display:grid;place-items:center}.appbar-title{font-size:17px;font-weight:700}.appbar-sub{font-size:12px;opacity:.72}.appbar-lock{width:44px;height:44px;border-radius:12px;border:none;background:rgba(255,255,255,.08);color:inherit;display:grid;place-items:center;text-decoration:none}.section-label{font-size:13px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}.cal-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.cal-head h2{font-size:17px}.cal-strip{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px}.cal-day{flex:0 0 54px;min-height:70px;border-radius:15px;border:1.5px solid var(--border);background:var(--card);display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 0 7px}.cal-day.active{background:var(--accent);border-color:var(--accent)}.cal-day.active .cal-num,.cal-day.active .cal-wd{color:#fff}.cal-wd{font-size:12px;color:var(--ink-soft)}.cal-num{font-size:20px;font-weight:700}.cal-dots{display:flex;gap:3px;height:6px}.dot{width:5px;height:5px;border-radius:50%;background:var(--accent);display:inline-block}.cal-day.active .dot{background:#fff}.day-head{display:flex;align-items:center;justify-content:space-between}.hall-count{font-size:12.5px;color:var(--accent-deep);font-weight:700;background:rgba(182,134,58,.12);padding:3px 10px;border-radius:999px}.timeline.empty{background:var(--card);border:1.5px dashed var(--border);border-radius:18px;padding:34px 20px;text-align:center;gap:6px;justify-items:center}.empty-mark{width:52px;height:52px;border-radius:16px;background:rgba(182,134,58,.12);display:grid;place-items:center}.empty-title{font-size:16px;font-weight:700}.empty-sub{font-size:13.5px;color:var(--ink-soft)}.slot{display:grid;grid-template-columns:52px 4px 1fr auto;align-items:center;gap:10px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:12px 12px;box-shadow:var(--shadow);min-width:0}.slot.blocked{background:#fbf1ee;border-color:rgba(180,73,60,.25)}.slot.slot-joinable{border-color:rgba(91,127,166,.3);background:linear-gradient(180deg,rgba(91,127,166,.05),var(--card))}.slot.slot-joinable:active{transform:scale(.99)}.slot-time{display:flex;flex-direction:column;font-size:13px;font-weight:700;flex-shrink:0}.slot-dash{color:var(--border)}.slot-bar{width:4px;height:38px;border-radius:4px;flex-shrink:0}.slot-main{min-width:0;overflow:hidden}.slot-horse{font-size:15px;font-weight:700;display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot-rider{font-size:12.5px;color:var(--ink-soft);display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot-mitreiter-chip{font-size:11px;font-weight:700;background:rgba(182,134,58,.12);color:var(--accent-deep);padding:1px 7px;border-radius:999px;flex-shrink:0}.slot-join-chip{font-size:11px;font-weight:700;background:rgba(91,127,166,.16);color:#3a6090;padding:1px 7px;border-radius:999px;flex-shrink:0}.slot-actions{display:flex;gap:4px;flex-shrink:0}.icon-btn{width:40px;height:40px;border-radius:11px;border:none;background:#f3ecdd;color:var(--ink-soft);cursor:pointer;display:grid;place-items:center;transition:transform .08s}.icon-btn:active{transform:scale(.93)}.icon-btn.danger{color:var(--danger);background:rgba(180,73,60,.1)}.slot-riders{display:grid;gap:8px}.slot-participant{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0}.slot-participant+.slot-participant{padding-top:8px;border-top:1px solid rgba(231,221,200,.7)}.slot-rider-dot{width:9px;height:9px;border-radius:50%}.slot-participant-main{min-width:0}.slot-participant-actions{display:flex;gap:4px}.slot-meta{display:flex;gap:6px;margin-top:8px}.slot-owner-label{font-size:10px;font-weight:700;color:var(--accent-deep);background:rgba(182,134,58,.12);padding:1px 5px;border-radius:999px}.icon-btn-small{width:32px;height:32px;border-radius:9px}.fab-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:16px;z-index:30;width:calc(100% - 32px);max-width:398px;display:flex;gap:10px}.fab{height:54px;border:none;border-radius:16px;font-size:15px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:1}.fab-primary{background:var(--accent);color:#fff}.fab-ghost{flex:0 0 auto;padding:0 18px;background:var(--ink);color:#f6efe0}.sheet-backdrop{position:fixed;inset:0;z-index:50;background:rgba(40,32,18,.48);display:flex;align-items:flex-end;justify-content:center;animation:fade .2s ease}.sheet{width:100%;max-width:430px;background:var(--paper);border-radius:22px 22px 0 0;padding:10px 18px calc(22px + env(safe-area-inset-bottom,0px));box-shadow:0 -10px 40px rgba(40,32,18,.25);animation:slideup .26s cubic-bezier(.2,.8,.2,1);max-height:92dvh;overflow-y:auto}.sheet-grab{width:40px;height:4px;border-radius:999px;background:var(--border);margin:4px auto 12px}.sheet-head{display:flex;align-items:center;justify-content:space-between}.sheet-head h2{font-size:20px;font-weight:800;letter-spacing:-.01em}.sheet-date{margin:4px 0 16px;font-size:13.5px;color:var(--accent-deep);font-weight:600}.sheet-form{display:grid;gap:14px}.time-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sheet-actions{display:flex;gap:10px;margin-top:4px}.mitreiter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mitreiter-btn{border:1.5px solid var(--border);border-radius:14px;background:var(--card);padding:10px 6px;cursor:pointer;text-align:center;display:grid;gap:3px;font-family:inherit;transition:border-color .12s,background .12s}.mitreiter-btn:active{transform:scale(.97)}.mitreiter-btn.active{border-color:var(--accent);background:rgba(182,134,58,.08);box-shadow:0 0 0 3px rgba(182,134,58,.15)}.mitreiter-label{font-size:13px;font-weight:700;color:var(--ink)}.mitreiter-btn.active .mitreiter-label{color:var(--accent-deep)}.mitreiter-sub{font-size:11px;color:var(--ink-soft);line-height:1.3}.mitreiter-warn{font-size:12.5px;color:var(--danger);font-weight:500;margin-top:4px}.um-hint-card{background:rgba(182,134,58,.07);border:1px solid rgba(182,134,58,.18);border-radius:14px;padding:14px 16px}.um-hint-text{font-size:13.5px;color:var(--ink-soft);line-height:1.6}.app-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;font-size:12px;color:var(--ink-soft);padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px));text-align:center;line-height:1.4}.app-footer a{color:var(--ink-soft);text-decoration:none;border-bottom:1px dotted var(--border)}.app-footer a:hover{color:var(--accent-deep);border-bottom-color:var(--accent)}.app-footer--lock{padding-top:8px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}.legal-page{max-width:680px;margin:0 auto;padding:24px 20px 48px;line-height:1.6;color:var(--ink);font-size:15px}.legal-page h1{font-size:26px;font-weight:800;letter-spacing:-.01em;margin-bottom:4px;line-height:1.15}.legal-page h2{font-size:17px;font-weight:700;margin-top:28px;margin-bottom:8px;line-height:1.3}.legal-page p{margin-bottom:12px}.legal-page ul{padding-left:20px;margin-bottom:12px}.legal-page li{margin-bottom:4px}.legal-page a{color:var(--accent-deep);text-decoration:underline;text-decoration-color:rgba(138,100,39,.4);text-underline-offset:2px}.legal-page a:hover{text-decoration-color:var(--accent-deep)}.legal-updated{color:var(--ink-soft);font-size:13px;margin-bottom:20px}.legal-callout{background:rgba(180,73,60,.08);border:1px solid rgba(180,73,60,.25);border-radius:12px;padding:12px 14px;font-size:13.5px;line-height:1.5;margin-bottom:20px;color:var(--ink)}.legal-back{margin-top:28px;padding-top:16px;border-top:1px solid var(--border);font-size:13px}.legal-related{font-size:12.5px;color:var(--ink-soft);text-align:center;margin-top:6px}.legal-related a{color:var(--ink-soft);text-decoration:underline}.error-page{min-height:100dvh;display:grid;place-items:center;padding:24px;background:linear-gradient(165deg,var(--sand) 0,var(--paper) 52%)}.error-card{width:100%;max-width:390px;background:var(--card);border:1px solid var(--border);border-radius:22px;padding:28px 24px;box-shadow:0 12px 36px rgba(40,32,18,.12);text-align:center}.error-mark{width:68px;height:68px;margin:0 auto 16px;border-radius:20px;display:grid;place-items:center;color:var(--accent-deep);background:rgba(182,134,58,.13)}.error-code{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--accent-deep);text-transform:uppercase}.error-card h1{font-size:27px;line-height:1.15;margin-top:7px}.error-message{margin-top:10px;color:var(--ink-soft);font-size:14.5px;line-height:1.55}.error-actions{display:grid;gap:10px;margin-top:24px}.error-login{display:inline-flex;align-items:center;justify-content:center;color:var(--ink);text-decoration:none;font-weight:700}#pwa-install-hint{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(80px + env(safe-area-inset-bottom,0px));z-index:40;display:flex;align-items:center;gap:8px;background:#2a2620;color:#f6efe0;padding:10px 14px;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.25);max-width:calc(100% - 32px);width:360px;font-size:13px;line-height:1.4;animation:slideup .26s cubic-bezier(.2,.8,.2,1)}.pwa-hint-text{flex:1;display:flex;flex-direction:column;gap:2px}.pwa-hint-text strong{color:#f6efe0;font-weight:700}.pwa-hint-text span{display:inline-flex;align-items:center;gap:4px;color:#cdc4b0}.pwa-hint-text svg{color:#b6863a;vertical-align:-2px}.pwa-hint-close{background:rgba(255,255,255,.08);border:none;color:#f6efe0;width:28px;height:28px;border-radius:8px;font-size:18px;line-height:1;cursor:pointer;flex-shrink:0;display:grid;place-items:center;padding:0}.pwa-hint-close:active{background:rgba(255,255,255,.16)}.um-avatar{width:42px;height:42px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:15px;font-weight:800;letter-spacing:.5px}.um-add-card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:16px}.um-list{display:grid;gap:8px}.um-row{display:flex;flex-direction:column;gap:10px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:12px 14px}.um-row-self{border-color:rgba(182,134,58,.35);background:rgba(182,134,58,.04)}.um-row-head{display:flex;align-items:center;gap:12px;min-width:0}.um-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.um-name{font-size:15px;font-weight:700}.um-email{font-size:12.5px;color:var(--ink-soft)}.um-info{flex:1;min-width:0}.um-role-form{display:contents}.um-role-sel{height:36px;padding:0 30px 0 10px;border-radius:10px;border:1.5px solid var(--border);background:var(--paper);font-size:13px;font-weight:600;color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236f675a' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;appearance:none;cursor:pointer;outline:0}.um-role-sel:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(182,134,58,.18)}.role-pill{font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}.role-admin{background:rgba(182,134,58,.16);color:var(--accent-deep)}.role-user{background:rgba(91,127,166,.14);color:#3a6090}