:root{--scale:1;--cobalt:#1e4d8c;--cobalt-dark:#123763;--porcelain:#f4f7f9;--ink:#331728;--muted:#617084;--line:#dbe4eb;--amber:#c68a2e;--red:#b23b30;--green:#2e7d5b;--white:#fff;--shadow:0 18px 48px #1237631a;color:var(--ink);background:var(--porcelain);font-size:calc(16px * var(--scale));font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*,:before,:after{box-sizing:border-box}body{background:var(--porcelain);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;touch-action:manipulation;min-width:320px;min-height:100vh;margin:0;line-height:1.5}body.dark{--porcelain:#0f131a;--ink:#e2e8f0;--muted:#94a3b8;--line:#2d3748;--white:#12161f;--shadow:0 18px 48px #0006;color:var(--ink);background:var(--porcelain);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root.dark{--porcelain:#0f131a;--ink:#e2f0e3;--muted:#94a3b8;--line:#2d3748;--white:#12161f;--cobalt-dark:#a6c4f2;background:var(--porcelain);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root:has(body.dark){--porcelain:#0f131a;--ink:#e2f0e3;--muted:#94a3b8;--line:#2d3748;--white:#12161f;--cobalt-dark:#a6c4f2;background:var(--porcelain);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}button{font:inherit}button,a,[tabindex]{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--cobalt);outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2{color:var(--c-cobalt-dark,var(--cobalt-dark));font-family:var(--font-sans,system-ui, sans-serif);letter-spacing:-.01em;font-weight:800}h1{font-size:1.8rem;line-height:1.08}h2{font-size:1.18rem;line-height:1.2}h3{color:var(--ink);font-size:1rem;font-weight:800}#app{min-height:100vh}.eyebrow{color:var(--c-cobalt,var(--cobalt));letter-spacing:.08em;text-transform:uppercase;font-size:.76rem;font-weight:900}.section-block{border:1px solid var(--c-border,#1e4d8c1f);background:var(--c-paper,#ffffffdb);box-shadow:var(--shadow);border-radius:.5rem;padding:1rem}.section-heading{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.timeline-note{color:var(--c-cobalt-dark,var(--cobalt-dark));overflow-wrap:anywhere;margin-top:.35rem;font-size:.9rem;font-weight:700}.spinner{vertical-align:middle;flex:none;width:1em;height:1em;display:inline-block}.track{fill:none;stroke:var(--c-cobalt,#1e4d8c);stroke-width:3px;opacity:.15}.arc{fill:none;stroke:var(--c-cobalt,#1e4d8c);stroke-width:3px;stroke-linecap:round;stroke-dasharray:56;stroke-dashoffset:56px;transform-origin:50%;animation:1.4s ease-in-out infinite spin}@keyframes spin{0%{stroke-dashoffset:56px;transform:rotate(0)}50%{stroke-dashoffset:14px;transform:rotate(180deg)}to{stroke-dashoffset:56px;transform:rotate(720deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}:root{--font-serif:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-scale:1;--c-cobalt:var(--cobalt,#1e4d8c);--c-cobalt-dark:var(--cobalt-dark,#123763);--c-cobalt-light:#2b6cb0;--c-cobalt-subtle:#e7f5ff;--c-amber:#c68a2e;--c-amber-subtle:#fdf6e9;--c-red:#b23b30;--c-red-subtle:#fbf0ef;--c-green:#2e7d5b;--c-green-subtle:#eff7f2;--c-paper:#fff;--c-paper-dim:#f4f7f9;--c-ink:var(--ink,#172333);--c-ink-muted:var(--muted,#617084);--c-border:var(--line,#dbe4eb);--c-border-strong:#c2ccd6;--radius-s:8px;--radius-m:12px;--radius-l:18px;--shadow-sm:0 2px 6px #1237630f;--shadow-md:0 8px 24px #1237631a;--space-xs:calc(4px * var(--font-scale));--space-s:calc(8px * var(--font-scale));--space-m:calc(16px * var(--font-scale));--space-l:calc(24px * var(--font-scale))}body.dark{--c-cobalt:#5285d7;--c-cobalt-dark:#5e89c9;--c-cobalt-light:#5b8ddb;--c-cobalt-subtle:#16283e;--c-amber:#e0b158;--c-amber-subtle:#3a3220;--c-red:#e07d74;--c-red-subtle:#3a2220;--c-green:#63bd93;--c-green-subtle:#1d3329;--c-paper:#12161f;--c-paper-dim:#1a202c;--c-ink:#e4f0e2;--c-ink-muted:#94a3b8;--c-border:#2d3748;--c-border-strong:#4a5568;--shadow-sm:0 2px 6px #0000004d;--shadow-md:0 8px 24px #0006}body.dark .settings-section-card{background-color:var(--c-paper)}.muted{color:var(--c-ink-muted)}.tool-container{width:100%;max-width:84rem;padding:var(--space-m);margin-inline:auto}.tool-narrow{width:100%;max-width:46rem;margin-inline:auto}.section-header{margin-bottom:var(--space-m);padding-bottom:var(--space-xs);justify-content:space-between;align-items:baseline;gap:var(--space-s);display:flex}.section-title{font-family:var(--font-serif);font-size:calc(1.2rem * var(--font-scale));color:var(--c-ink);font-weight:700}.section-meta{font-family:var(--font-sans);font-size:calc(.72rem * var(--font-scale));color:var(--c-ink-muted)}.timetable{border-collapse:collapse;width:100%;margin-bottom:var(--space-l)}.timetable th{font-family:var(--font-sans);font-size:calc(.68rem * var(--font-scale));text-transform:uppercase;letter-spacing:.08em;color:var(--c-ink-muted);text-align:left;padding:var(--space-xs) var(--space-s)}.timetable td{padding:calc(10px * var(--font-scale)) var(--space-s);vertical-align:top}.col-time{font-family:var(--font-sans);font-size:calc(.72rem * var(--font-scale));color:var(--c-ink-muted);white-space:nowrap;width:82px}.col-subject{color:var(--c-ink);font-weight:600}.col-details{font-family:var(--font-sans);font-size:calc(.72rem * var(--font-scale));color:var(--c-ink-muted);text-align:right;white-space:nowrap}tr.status-vertretung{background-color:var(--c-amber-subtle)}.data-list{margin-bottom:var(--space-l);padding:0;list-style:none}.data-item{padding:var(--space-s) 0;flex-direction:column;gap:4px;display:flex}.data-item-row{justify-content:space-between;align-items:baseline;gap:var(--space-s);display:flex}.data-label{font-weight:600;font-size:calc(.88rem * var(--font-scale))}.data-val{font-family:var(--font-sans);font-size:calc(.78rem * var(--font-scale));color:var(--c-cobalt);font-weight:600}.data-sub{font-size:calc(.78rem * var(--font-scale));color:var(--c-ink-muted)}.mensa-card{padding:var(--space-m) 0}.mensa-card:first-child{padding-top:0}.form-group{margin-bottom:var(--space-m)}.form-label{font-family:var(--font-sans);font-size:calc(.7rem * var(--font-scale));text-transform:uppercase;letter-spacing:.05em;color:var(--c-ink);margin-bottom:var(--space-xs);font-weight:600;display:block}.form-input,.form-textarea,.form-select{width:100%;padding:calc(9px * var(--font-scale));background-color:var(--c-paper-dim);border:1px solid var(--c-border);border-radius:var(--radius-s);font-family:var(--font-sans);font-size:calc(.85rem * var(--font-scale));color:var(--c-ink);appearance:none}.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%237a8794' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:1rem}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:2px solid var(--c-cobalt);background-color:var(--c-paper);border-color:#0000}.btn-submit{width:100%;padding:.6rem var(--space-m);background-color:var(--c-cobalt);color:#fff;border-radius:var(--radius-s);font-family:var(--font-sans);font-size:calc(.82rem * var(--font-scale));letter-spacing:.01em;cursor:pointer;box-shadow:var(--shadow-sm);border:none;font-weight:600;transition:transform .15s,box-shadow .15s,background-color .15s}.btn-submit:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-submit:active:not(:disabled){transform:translateY(0)scale(.98)}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{width:100%;padding:var(--space-m);background-color:var(--c-paper-dim);color:var(--c-ink);border:1px solid var(--c-border);border-radius:var(--radius-s);font-family:var(--font-sans);font-size:calc(.78rem * var(--font-scale));text-transform:uppercase;letter-spacing:.08em;cursor:pointer;font-weight:600;transition:transform .15s,box-shadow .15s,background-color .15s,border-color .15s}.btn-secondary:hover{box-shadow:var(--shadow-sm);border-color:var(--c-cobalt);transform:translateY(-1px)}.btn-secondary:active{transform:translateY(0)scale(.98)}.btn-small{padding:var(--space-xs) var(--space-s);background:var(--c-paper-dim);border:1px solid var(--c-border);border-radius:var(--radius-s);font-family:var(--font-sans);font-size:calc(.72rem * var(--font-scale));cursor:pointer;color:var(--c-ink);font-weight:600;transition:transform .15s,border-color .15s,background-color .15s}.btn-small:hover{border-color:var(--c-cobalt);transform:translateY(-1px)}.btn-small:active{transform:translateY(0)scale(.96)}.form-card{background:var(--c-paper);border:1px solid var(--c-border);border-radius:var(--radius-m);box-shadow:var(--shadow-sm);padding:var(--space-m);margin-bottom:var(--space-m)}.settings-section{margin-bottom:var(--space-l)}.settings-heading{font-size:calc(.85rem * var(--font-scale));color:var(--c-cobalt);margin-bottom:var(--space-s);padding-bottom:4px;font-weight:700}.choice-grid{gap:var(--space-s);grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));display:grid}.choice-card{border:1px solid var(--c-border);border-radius:var(--radius-s);background:var(--c-paper);padding:var(--space-m);cursor:pointer;transition:border-color .15s,box-shadow .15s,background-color .15s;display:block;position:relative}.choice-card:hover{border-color:var(--c-cobalt)}.choice-card.selected{border-color:var(--c-cobalt);box-shadow:var(--shadow-sm);background:#1e4d8c0f}.choice-card input{opacity:0;pointer-events:none;position:absolute}.choice-name{font-weight:600;font-size:calc(.88rem * var(--font-scale));margin-bottom:2px}.badge-status{font-family:var(--font-sans);font-size:calc(.68rem * var(--font-scale));text-transform:uppercase;border-radius:4px;flex-shrink:0;padding:2px 6px;font-weight:700}.badge-offen{background:var(--c-amber-subtle);color:var(--c-amber);border:1px solid var(--c-amber)}.badge-bearbeitung{background:var(--c-cobalt-subtle);color:var(--c-cobalt);border:1px solid var(--c-cobalt)}.badge-erledigt{background:var(--c-green-subtle);color:var(--c-green);border:1px solid var(--c-green)}.badge-pruefung{background:var(--c-amber-subtle);color:var(--c-amber);border:1px solid var(--c-amber)}.settings-section-card{background:var(--c-paper-dim);border:1px solid var(--c-border);border-radius:var(--radius-m);padding:var(--space-m);margin-bottom:var(--space-m)}.settings-section-title{font-family:var(--font-serif);font-size:calc(.95rem * var(--font-scale));color:var(--c-cobalt);letter-spacing:.02em;margin-bottom:var(--space-s);padding-bottom:4px;font-weight:700}.state-text{color:var(--c-ink-muted);font-weight:700}.state-error{color:var(--c-red);font-weight:800}@keyframes afra-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes afra-scale-in{0%{opacity:0;transform:scale(.92)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes afra-dropdown-in{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes afra-stagger-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.section-block,.settings-section-card,.form-card{animation:.32s both afra-fade-in}.view-dropdown{transform-origin:100% 0;animation:.18s cubic-bezier(.2,.9,.3,1) both afra-dropdown-in}.timeline-item,.data-item,.mensa-card,.timetable tbody tr{animation:.3s both afra-stagger-in}.timeline-item:nth-child(2),.data-item:nth-child(2),.mensa-card:nth-child(2),.timetable tbody tr:nth-child(2){animation-delay:45ms}.timeline-item:nth-child(3),.data-item:nth-child(3),.mensa-card:nth-child(3),.timetable tbody tr:nth-child(3){animation-delay:90ms}.timeline-item:nth-child(4),.data-item:nth-child(4),.mensa-card:nth-child(4),.timetable tbody tr:nth-child(4){animation-delay:.135s}.timeline-item:nth-child(5),.data-item:nth-child(5),.mensa-card:nth-child(5),.timetable tbody tr:nth-child(5){animation-delay:.18s}.timeline-item:nth-child(6),.data-item:nth-child(6),.mensa-card:nth-child(6),.timetable tbody tr:nth-child(6){animation-delay:.225s}.choice-card{transition:transform .2s cubic-bezier(.2,.9,.3,1),border-color .15s,box-shadow .2s,background-color .2s}.choice-card:hover{transform:translateY(-2px)}.choice-card.selected{border-color:var(--c-cobalt);box-shadow:var(--shadow-sm);background:#1e4d8c0f;transform:translateY(-1px)}*{scrollbar-width:thin;scrollbar-color:var(--c-border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--c-border-strong);border:2px solid var(--c-paper);border-radius:8px}::-webkit-scrollbar-thumb:hover{background-color:var(--c-cobalt-light)}::-webkit-scrollbar-corner{background:0 0}.tab-bar[data-v-ddbb2921]{z-index:30;border-top:1px solid var(--c-border,#1e4d8c24);padding:.55rem max(.65rem, env(safe-area-inset-left)) calc(.55rem + env(safe-area-inset-bottom)) max(.65rem, env(safe-area-inset-right));background:var(--c-paper,#fffffff0);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);grid-template-columns:repeat(3,1fr);gap:.25rem;animation:.32s cubic-bezier(.2,.9,.3,1) both tab-bar-in-ddbb2921;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -1rem 2.5rem #1237631f}@keyframes tab-bar-in-ddbb2921{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.tab-button[data-v-ddbb2921]{min-width:0;min-height:4rem;color:var(--c-ink-muted,var(--muted));background:0 0;border:0;border-radius:.5rem;place-items:center;gap:.18rem;font-size:.78rem;font-weight:900;transition:color .18s;display:grid}.tab-icon[data-v-ddbb2921]{border:2px solid #0000;border-radius:999px;place-items:center;width:2.15rem;height:2.15rem;display:grid}.tab-icon svg[data-v-ddbb2921]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:1.25rem;height:1.25rem}.tab-button[data-v-ddbb2921]:hover{border-color:var(--c-cobalt,var(--cobalt));background:var(--c-cobalt-light-dim,#1e4d8c14);cursor:pointer}.tab-button.is-active[data-v-ddbb2921]{color:var(--c-cobalt,var(--cobalt))}.tab-button.is-active .tab-icon[data-v-ddbb2921]{border-color:var(--c-cobalt,var(--cobalt));background:var(--c-cobalt-light-dim,#1e4d8c14);animation:.36s cubic-bezier(.2,.9,.3,1.4) both tab-icon-pop-ddbb2921}@keyframes tab-icon-pop-ddbb2921{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}.ad-overlay[data-v-60a5cfe0]{z-index:450;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#090e188c;place-items:center;padding:1rem;animation:.18s both ad-overlay-in-60a5cfe0;display:grid;position:fixed;inset:0}.ad-sheet[data-v-60a5cfe0]{border:1px solid var(--c-border);background:var(--c-paper);border-radius:18px;outline:none;flex-direction:column;width:100%;max-height:88vh;animation:.24s cubic-bezier(.2,.9,.3,1.1) both ad-sheet-in-60a5cfe0;display:flex;overflow:hidden;box-shadow:0 24px 60px #00000047}.ad-head[data-v-60a5cfe0]{border-bottom:1px solid var(--c-border);background:var(--c-paper);flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1.3rem;display:flex}.ad-head-start[data-v-60a5cfe0]{align-items:center;gap:.4rem;min-width:0;display:flex}.ad-back[data-v-60a5cfe0]{background:var(--c-paper-dim);width:2rem;height:2rem;color:var(--c-cobalt);cursor:pointer;border:0;border-radius:8px;flex-shrink:0;place-items:center;line-height:1;transition:background-color .15s,color .15s,transform .15s;display:grid}.ad-back[data-v-60a5cfe0]:hover{background:var(--c-cobalt-light-dim,#1e4d8c14);color:var(--c-cobalt);transform:scale(1.06)}.ad-back svg[data-v-60a5cfe0]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4px;width:1.05rem;height:1.05rem}.ad-title[data-v-60a5cfe0]{color:var(--c-ink);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.05rem;font-weight:700;overflow:hidden}.ad-close[data-v-60a5cfe0]{background:var(--c-paper-dim);width:2rem;height:2rem;color:var(--c-ink-muted);cursor:pointer;border:0;border-radius:8px;flex-shrink:0;place-items:center;font-size:1rem;line-height:1;transition:background-color .15s,color .15s,transform .15s;display:grid}.ad-close[data-v-60a5cfe0]:hover{background:var(--c-paper-dim);color:var(--c-ink);transform:scale(1.06)}.ad-body[data-v-60a5cfe0]{min-height:0;color:var(--c-ink);flex:auto;padding:1.3rem;overflow-y:auto}.ad-foot[data-v-60a5cfe0]{border-top:1px solid var(--c-border);background:var(--c-paper);flex-shrink:0;justify-content:flex-end;gap:.5rem;padding:.9rem 1.3rem;display:flex}@keyframes ad-overlay-in-60a5cfe0{0%{opacity:0}to{opacity:1}}@keyframes ad-sheet-in-60a5cfe0{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=640px){.ad-overlay[data-v-60a5cfe0]{place-items:end center;padding:0}.ad-sheet[data-v-60a5cfe0]{border-bottom:none;border-radius:18px 18px 0 0;max-height:92vh;animation:.28s cubic-bezier(.2,.9,.3,1) both ad-sheet-up-60a5cfe0;max-width:100%!important}.ad-foot[data-v-60a5cfe0]{padding-bottom:calc(.9rem + env(safe-area-inset-bottom))}}@keyframes ad-sheet-up-60a5cfe0{0%{opacity:.6;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.sh-user[data-v-42873179]{align-items:center;gap:var(--space-m);padding-bottom:var(--space-m);margin-bottom:var(--space-l);border-bottom:1px solid var(--c-border);animation:.28s cubic-bezier(.2,.9,.3,1) both sh-user-in-42873179;display:flex}.sh-avatar[data-v-42873179]{background:var(--c-cobalt);color:#fff;width:2.9rem;height:2.9rem;font-size:calc(1rem * var(--font-scale));letter-spacing:.02em;border-radius:999px;flex-shrink:0;place-items:center;font-weight:800;display:grid}.sh-user-info[data-v-42873179]{min-width:0}.sh-user-name[data-v-42873179]{font-size:calc(1rem * var(--font-scale));color:var(--c-ink);font-weight:800}.sh-user-meta[data-v-42873179]{font-size:calc(.75rem * var(--font-scale));color:var(--c-ink-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sh-menu[data-v-42873179]{gap:var(--space-s);flex-direction:column;display:flex}.sh-item[data-v-42873179]{border:1px solid var(--c-border);border-radius:var(--radius-s);background:var(--c-paper-dim);width:100%;color:var(--c-ink-muted);font-family:var(--font-sans);text-align:left;cursor:pointer;align-items:center;gap:.75rem;padding:.65rem .7rem;transition:border-color .15s,background-color .15s,transform .15s;animation:.34s cubic-bezier(.2,.9,.3,1) both sh-item-in-42873179;display:flex}.sh-item[data-v-42873179]:hover{border-color:var(--c-cobalt);background:var(--c-paper);color:var(--c-cobalt);transform:translateY(-1px)}.sh-icon[data-v-42873179]{border-radius:var(--radius-s);background:var(--c-cobalt-light-dim,#1e4d8c14);width:2.3rem;height:2.3rem;color:var(--c-cobalt);flex-shrink:0;place-items:center;display:grid}.sh-icon svg[data-v-42873179]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:1.15rem;height:1.15rem}.sh-item-text[data-v-42873179]{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.sh-item-label[data-v-42873179]{font-size:calc(.88rem * var(--font-scale));color:var(--c-ink);font-weight:700}.sh-item-sub[data-v-42873179]{font-size:calc(.74rem * var(--font-scale));color:var(--c-ink-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sh-chevron[data-v-42873179]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2px;width:1.1rem;height:1.1rem;color:var(--c-ink-muted);flex-shrink:0}@keyframes sh-user-in-42873179{0%{opacity:0;transform:translateY(6px)}}@keyframes sh-item-in-42873179{0%{opacity:0;transform:translateY(10px)}}@media (prefers-reduced-motion:reduce){.sh-user[data-v-42873179],.sh-item[data-v-42873179]{animation:none}}.spinner[data-v-32fd4604]{vertical-align:middle;flex:none;width:1em;height:1em;display:inline-block}.track[data-v-32fd4604]{fill:none;stroke:currentColor;opacity:.15;stroke-width:3px}.arc[data-v-32fd4604]{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round;stroke-dasharray:56;stroke-dashoffset:56px;transform-origin:50%;animation:1.4s ease-in-out infinite spin-32fd4604}@keyframes spin-32fd4604{0%{stroke-dashoffset:56px;transform:rotate(0)}50%{stroke-dashoffset:14px;transform:rotate(180deg)}to{stroke-dashoffset:56px;transform:rotate(720deg)}}.cd-body[data-v-e271663f]{padding:var(--space-xs,.25rem) 0}.cd-message[data-v-e271663f]{color:var(--c-ink-muted,#4b5563);margin:0;font-size:.9375rem;line-height:1.5}.cd-actions[data-v-e271663f]{justify-content:flex-end;align-items:center;gap:var(--space-s,.75rem);width:100%;display:flex}.cd-btn[data-v-e271663f]{align-items:justify-content;border-radius:var(--radius-s,.375rem);cursor:pointer;justify-content:center;align-items:center;gap:.5rem;min-width:5.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .15s ease-in-out;display:inline-flex}.cd-btn[data-v-e271663f]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.cd-confirm[data-v-e271663f]{background-color:var(--c-cobalt,#2563eb);border:1px solid var(--c-cobalt,#2563eb);color:#fff}.cd-confirm[data-v-e271663f]:hover:not(:disabled){background-color:var(--c-cobalt-dark,#1d4ed8);border-color:var(--c-cobalt-dark,#1d4ed8);transform:translateY(-1px)}.cd-confirm.is-danger[data-v-e271663f]{background-color:var(--c-danger,#dc2626);border-color:var(--c-danger,#dc2626)}.cd-confirm.is-danger[data-v-e271663f]:hover:not(:disabled){background-color:var(--c-danger-dark,#b91c1c);border-color:var(--c-danger-dark,#b91c1c)}.cd-btn[data-v-e271663f]:focus-visible{outline:2px solid var(--c-focus-ring,#60a5fa);outline-offset:2px}.courses-edit-btn[data-v-7cb88b9a]{width:auto;padding:var(--space-s) var(--space-m);margin-top:var(--space-s)}.courses-summary[data-v-7cb88b9a]{gap:var(--space-s);flex-direction:column;display:flex}.courses-summary-group[data-v-7cb88b9a]{flex-direction:column;display:flex}.courses-summary-label[data-v-7cb88b9a]{font-family:var(--font-sans);font-size:calc(.68rem * var(--font-scale));text-transform:uppercase;letter-spacing:.06em;color:var(--c-ink-muted);margin-bottom:.15rem;font-weight:700}.courses-summary-row[data-v-7cb88b9a]{align-items:baseline;gap:.6rem;padding:.2rem 0;display:flex}.lk-fields[data-v-7cb88b9a]{gap:var(--space-s);margin-bottom:var(--space-m);flex-direction:column;display:flex}.lk-field[data-v-7cb88b9a]{flex-direction:column;gap:.25rem;display:flex}.lk-label[data-v-7cb88b9a]{font-family:var(--font-sans);font-size:calc(.68rem * var(--font-scale));text-transform:uppercase;letter-spacing:.05em;color:var(--c-ink-muted);font-weight:700}.lk-select[data-v-7cb88b9a]{cursor:pointer}.courses-search[data-v-7cb88b9a]{width:100%;margin-bottom:var(--space-m);border:1px solid var(--c-border);border-radius:var(--radius-s);background:var(--c-paper);color:var(--c-ink);font-family:var(--font-sans);font-size:calc(.82rem * var(--font-scale));padding:.55rem .7rem}.courses-list[data-v-7cb88b9a]{gap:var(--space-m);flex-direction:column;max-height:38vh;display:flex;overflow-y:auto}.courses-group[data-v-7cb88b9a]{flex-direction:column;gap:.35rem;display:flex}.courses-group-title[data-v-7cb88b9a]{font-family:var(--font-sans);font-size:calc(.72rem * var(--font-scale));text-transform:uppercase;letter-spacing:.05em;color:var(--c-ink-muted);justify-content:space-between;align-items:center;margin-bottom:.1rem;font-weight:700;display:flex}.courses-count[data-v-7cb88b9a]{font-size:calc(.68rem * var(--font-scale));font-weight:700}.courses-item[data-v-7cb88b9a]{border:1px solid var(--c-border);border-radius:var(--radius-s);background:var(--c-paper-dim);cursor:pointer;align-items:center;gap:.6rem;padding:.5rem .65rem;transition:border-color .15s,background-color .15s;display:flex}.courses-item[data-v-7cb88b9a]:hover{border-color:var(--c-cobalt)}.courses-item.checked[data-v-7cb88b9a]{border-color:var(--c-cobalt);background:var(--c-cobalt-light-dim,#1e4d8c14)}.courses-item input[data-v-7cb88b9a]{accent-color:var(--c-cobalt)}.courses-code[data-v-7cb88b9a]{font-family:var(--font-sans);font-size:calc(.82rem * var(--font-scale));color:var(--c-cobalt);min-width:4.2rem;font-weight:700}.courses-subject[data-v-7cb88b9a]{font-size:calc(.78rem * var(--font-scale));color:var(--c-ink-muted);flex:1}.courses-empty[data-v-7cb88b9a]{padding:var(--space-m) 0;text-align:center;color:var(--c-ink-muted);font-size:calc(.78rem * var(--font-scale))}.courses-save[data-v-7cb88b9a]{padding:var(--space-s) var(--space-m);border:1px solid var(--c-cobalt);border-radius:var(--radius-s);background:var(--c-cobalt);color:#fff;font-family:var(--font-sans);font-size:calc(.78rem * var(--font-scale));letter-spacing:.01em;cursor:pointer;font-weight:600;transition:opacity .15s,transform .15s}.courses-save[data-v-7cb88b9a]:hover:not(:disabled){transform:translateY(-1px)}.courses-save[data-v-7cb88b9a]:disabled{opacity:.6;cursor:wait}.sd-section-title--sub[data-v-0f5efc47]{margin-top:var(--space-m)}.saxonia-vault[data-v-a3d90679]{margin-bottom:var(--space-m)}.saxonia-head[data-v-a3d90679]{justify-content:space-between;align-items:flex-start;gap:var(--space-s);margin-bottom:var(--space-s);display:flex}.saxonia-title[data-v-a3d90679]{font-family:var(--font-serif);font-size:calc(1.05rem * var(--font-scale));color:var(--c-cobalt);font-weight:700;line-height:1.2}.vault-chip[data-v-a3d90679]{font-family:var(--font-sans);font-size:calc(.62rem * var(--font-scale));text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-xs);border:1px solid var(--c-border-strong);color:var(--c-ink-muted);background:var(--c-paper-dim);flex-shrink:0;padding:2px 8px;font-weight:700}.vault-chip--ok[data-v-a3d90679]{color:var(--c-green);border-color:var(--c-green);background:var(--c-green-subtle)}.vault-hint[data-v-a3d90679]{font-size:calc(.76rem * var(--font-scale));color:var(--c-ink-muted);margin-bottom:var(--space-m);line-height:1.45}.vault-mode-note[data-v-a3d90679]{margin-top:2px;margin-bottom:var(--space-m)}.vault-actions[data-v-a3d90679]{gap:var(--space-s);flex-direction:column;display:flex}.vault-fallback[data-v-a3d90679]{margin-top:var(--space-s);padding-top:var(--space-s);border-top:1px solid var(--c-border)}.homeinfo-vault[data-v-779a21d9]{margin-bottom:var(--space-m)}.homeinfo-head[data-v-779a21d9]{justify-content:space-between;align-items:flex-start;gap:var(--space-s);margin-bottom:var(--space-s);display:flex}.homeinfo-title[data-v-779a21d9]{font-family:var(--font-serif);font-size:calc(1.05rem * var(--font-scale));color:var(--c-cobalt);font-weight:700;line-height:1.2}.vault-chip[data-v-779a21d9]{font-family:var(--font-sans);font-size:calc(.62rem * var(--font-scale));text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-xs);border:1px solid var(--c-border-strong);color:var(--c-ink-muted);background:var(--c-paper-dim);flex-shrink:0;padding:2px 8px;font-weight:700}.vault-chip--ok[data-v-779a21d9]{color:var(--c-green);border-color:var(--c-green);background:var(--c-green-subtle)}.vault-hint[data-v-779a21d9]{font-size:calc(.76rem * var(--font-scale));color:var(--c-ink-muted);margin-bottom:var(--space-m);line-height:1.45}.vault-mode-note[data-v-779a21d9]{margin-top:2px;margin-bottom:var(--space-m)}.vault-actions[data-v-779a21d9]{gap:var(--space-s);flex-direction:column;display:flex}.vault-fallback[data-v-779a21d9]{margin-top:var(--space-s);padding-top:var(--space-s)}.consent-create[data-v-7e1c6ecc]{gap:var(--space-s)}.consent-create-fields[data-v-7e1c6ecc]{gap:var(--space-s);flex-direction:column;display:flex}.consent-create-btn[data-v-7e1c6ecc]{background:var(--c-cobalt);border-color:var(--c-cobalt);color:#fff;align-self:flex-end}.consent-create-btn[data-v-7e1c6ecc]:hover{border-color:var(--c-cobalt)}.consent-create-btn[data-v-7e1c6ecc]:disabled{opacity:.6;cursor:not-allowed;transform:none}.consent-list[data-v-7e1c6ecc]{gap:var(--space-s);flex-direction:column;display:flex}.consent-card[data-v-7e1c6ecc]{border:1px solid var(--c-border);border-radius:var(--radius-s);background:var(--c-paper);padding:var(--space-m);box-shadow:var(--shadow-sm)}.consent-card--open[data-v-7e1c6ecc]{border-color:var(--c-cobalt)}.consent-card-head[data-v-7e1c6ecc]{justify-content:space-between;align-items:baseline;gap:var(--space-s);display:flex}.consent-card-title[data-v-7e1c6ecc]{align-items:center;gap:var(--space-s);min-width:0;display:flex}.consent-card-label[data-v-7e1c6ecc]{font-size:calc(.9rem * var(--font-scale));color:var(--c-ink);font-weight:700}.consent-card-key[data-v-7e1c6ecc]{font-family:var(--font-mono,monospace);font-size:calc(.68rem * var(--font-scale));color:var(--c-ink-muted);flex-shrink:0}.consent-badge[data-v-7e1c6ecc]{font-family:var(--font-sans);font-size:calc(.66rem * var(--font-scale));text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:999px;padding:2px 8px;font-weight:700}.consent-badge--none[data-v-7e1c6ecc]{background:var(--c-amber-subtle);color:var(--c-amber);border:1px solid var(--c-amber)}.consent-badge--granted[data-v-7e1c6ecc]{background:var(--c-green-subtle);color:var(--c-green);border:1px solid var(--c-green)}.consent-badge--revoked[data-v-7e1c6ecc],.consent-badge--denied[data-v-7e1c6ecc]{color:var(--c-red);border:1px solid var(--c-red);background:#ef444414}.consent-badge--active[data-v-7e1c6ecc]{background:var(--c-cobalt-subtle);color:var(--c-cobalt);border:1px solid var(--c-cobalt)}.consent-version-text[data-v-7e1c6ecc]{margin-top:var(--space-s);font-size:calc(.82rem * var(--font-scale));color:var(--c-ink);white-space:pre-wrap;line-height:1.45}.consent-version-meta[data-v-7e1c6ecc]{font-size:calc(.7rem * var(--font-scale));color:var(--c-ink-muted);margin-top:4px}.consent-card-actions[data-v-7e1c6ecc]{gap:var(--space-s);margin-top:var(--space-s);display:flex}.consent-primary[data-v-7e1c6ecc]{background:var(--c-cobalt);border-color:var(--c-cobalt);color:#fff}.consent-primary[data-v-7e1c6ecc]:hover{border-color:var(--c-cobalt)}.consent-danger[data-v-7e1c6ecc]{color:var(--c-red);border-color:var(--c-red)}.consent-danger[data-v-7e1c6ecc]:hover{border-color:var(--c-red)}.consent-version-form[data-v-7e1c6ecc]{gap:var(--space-s);margin-top:var(--space-s);padding-top:var(--space-s);border-top:1px dashed var(--c-border);flex-direction:column;display:flex}.consent-error[data-v-7e1c6ecc]{color:var(--c-red)}.consent-mine[data-v-7e1c6ecc],.ss-backup[data-v-7d8e1415]{margin-top:var(--space-l);padding-top:var(--space-m);border-top:1px solid var(--c-border)}.sd-section{margin-bottom:var(--space-l)}.sd-section-title{font-family:var(--font-sans);font-size:calc(.68rem * var(--font-scale));text-transform:uppercase;letter-spacing:.08em;color:var(--c-cobalt);margin-bottom:var(--space-s);border-bottom:1px solid var(--c-border);padding-bottom:4px;font-weight:700}.sd-row{justify-content:space-between;align-items:center;gap:var(--space-m);padding:var(--space-xs) 0 var(--space-m);display:flex}.sd-row--column{flex-direction:column;align-items:stretch}.sd-row-text{min-width:0}.sd-row-label{font-size:calc(.88rem * var(--font-scale));color:var(--c-ink);font-weight:600}.sd-row-sub{font-size:calc(.74rem * var(--font-scale));color:var(--c-ink-muted)}.sd-section-hint{margin-bottom:var(--space-m)}.sd-actions{gap:var(--space-s);flex-direction:column;display:flex}.sd-file-label{cursor:pointer;justify-content:center;display:flex}.sd-danger{border-color:var(--c-red)!important;color:var(--c-red)!important}.sd-dialog .settings-section-card,.sd-dialog .form-card{box-shadow:none;margin-bottom:var(--space-m);background:0 0;border:none;padding:0}.sd-dialog .data-label{color:var(--c-ink)}.font-size-control{justify-content:space-between;align-items:center;gap:var(--space-s);display:flex}.switch{flex-shrink:0;width:44px;height:24px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background-color:var(--c-border-strong);border-radius:24px;transition:all .3s;position:absolute;inset:0}.slider:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .3s;position:absolute;bottom:3px;left:3px}input:checked+.slider{background-color:var(--c-cobalt)}input:checked+.slider:before{transform:translate(20px)}body.dark .slider:before{background-color:var(--c-ink)}.color-picker-grid{gap:10px;margin-top:6px;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:28px;height:28px;transition:transform .2s,border-color .2s}.color-swatch.active{border-color:var(--c-ink);transform:scale(1.15)}.color-swatch:hover{transform:scale(1.15)}.settings-fade-enter-active{transition:opacity .24s,transform .24s cubic-bezier(.2,.9,.3,1)}.settings-fade-leave-active{transition:opacity .14s,transform .14s}.settings-fade-enter-from{opacity:0;transform:translateY(10px)}.settings-fade-leave-to{opacity:0;transform:translateY(-6px)}.settings-forward-enter-active{transition:opacity .22s,transform .22s cubic-bezier(.2,.9,.3,1)}.settings-forward-leave-active{transition:opacity .16s,transform .16s ease-in}.settings-forward-enter-from{opacity:0;transform:translate(28px)}.settings-forward-leave-to{opacity:0;transform:translate(-24px)}.settings-back-enter-active{transition:opacity .22s,transform .22s cubic-bezier(.2,.9,.3,1)}.settings-back-leave-active{transition:opacity .16s,transform .16s ease-in}.settings-back-enter-from{opacity:0;transform:translate(-28px)}.settings-back-leave-to{opacity:0;transform:translate(24px)}@media (prefers-reduced-motion:reduce){.settings-fade-enter-active,.settings-fade-leave-active,.settings-forward-enter-active,.settings-forward-leave-active,.settings-back-enter-active,.settings-back-leave-active{transition:none}}.pd-dialog{flex-direction:column;display:flex}.pd-head{align-items:center;gap:var(--space-m);padding-bottom:var(--space-m);margin-bottom:var(--space-l);border-bottom:1px solid var(--c-border);display:flex}.pd-avatar{background:var(--c-cobalt);color:#fff;width:3.6rem;height:3.6rem;font-size:calc(1.25rem * var(--font-scale));letter-spacing:.02em;border-radius:999px;flex-shrink:0;place-items:center;font-weight:800;display:grid}.pd-name{font-size:calc(1.15rem * var(--font-scale));color:var(--c-ink);font-weight:800}.pd-role{font-size:calc(.78rem * var(--font-scale));color:var(--c-cobalt);font-weight:600}.pd-details{gap:var(--space-m);margin-bottom:var(--space-l);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));display:grid}.pd-detail-label{font-family:var(--font-sans);font-size:calc(.68rem * var(--font-scale));text-transform:uppercase;letter-spacing:.08em;color:var(--c-ink-muted);margin-bottom:3px;font-weight:700}.pd-detail-value{font-size:calc(.9rem * var(--font-scale));color:var(--c-ink);overflow-wrap:anywhere;font-weight:600}.pd-section{margin-bottom:var(--space-l)}.pd-section-title{font-family:var(--font-sans);font-size:calc(.68rem * var(--font-scale));text-transform:uppercase;letter-spacing:.08em;color:var(--c-cobalt);margin-bottom:var(--space-s);border-bottom:1px solid var(--c-border);padding-bottom:4px;font-weight:700}.pd-chips{gap:var(--space-s);flex-wrap:wrap;display:flex}.pd-chip{border:1px solid var(--c-border);background:var(--c-paper-dim);color:var(--c-ink);font-size:calc(.78rem * var(--font-scale));border-radius:999px;padding:.3rem .7rem;font-weight:600}.pd-chip--lk{border-color:var(--c-cobalt);color:var(--c-cobalt);font-weight:700}.calendar-fab[data-v-7c859118]{right:1.25rem;bottom:calc(6.25rem + env(safe-area-inset-bottom));z-index:40;background:var(--c-cobalt);color:#fff;cursor:pointer;border:0;border-radius:999px;place-items:center;width:3.5rem;height:3.5rem;transition:transform .15s,box-shadow .15s,background-color .15s;animation:.36s cubic-bezier(.2,.9,.3,1.3) .12s both fab-in-7c859118;display:grid;position:fixed;box-shadow:0 .6rem 1.6rem #12376359}@keyframes fab-in-7c859118{0%{opacity:0;transform:translateY(14px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.calendar-fab[data-v-7c859118]:hover{transform:translateY(-2px);box-shadow:0 .8rem 2rem #12376366}.calendar-fab[data-v-7c859118]:focus-visible{outline:3px solid var(--c-cobalt-light);outline-offset:2px}.calendar-fab svg[data-v-7c859118]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:1.6rem;height:1.6rem}.calendar-fab-label[data-v-7c859118]{border-radius:var(--radius-s);background:var(--c-paper);color:var(--c-ink);white-space:nowrap;box-shadow:var(--shadow-sm);opacity:0;pointer-events:none;padding:.3rem .6rem;font-size:.75rem;font-weight:800;transition:opacity .15s,transform .15s;position:absolute;right:calc(100% + .6rem);transform:translate(4px)}.calendar-fab:hover .calendar-fab-label[data-v-7c859118],.calendar-fab:focus-visible .calendar-fab-label[data-v-7c859118]{opacity:1;transform:translate(0)}@media (width<=640px){.calendar-fab[data-v-7c859118]{width:3.25rem;height:3.25rem;right:1rem}.calendar-fab-label[data-v-7c859118]{display:none}}.tour-overlay[data-v-5850d3cb]{z-index:400;background:#090e188c;position:fixed;inset:0}.tour-spotlight[data-v-5850d3cb]{z-index:400;border:2px solid var(--c-cobalt);pointer-events:none;background:#ffffff05;border-radius:10px;transition:top .3s,left .3s,width .3s,height .3s;position:fixed;box-shadow:0 0 0 9999px #090e188c}.tour-card[data-v-5850d3cb]{z-index:401;gap:var(--space-s);max-height:min(85vh,34rem);padding:var(--space-l);border:1px solid var(--c-border-strong);border-radius:var(--radius-l);background:var(--c-paper);color:var(--c-ink);box-shadow:var(--shadow-md);font-family:var(--font-sans);flex-direction:column;transition:top .25s,left .25s;display:flex;position:fixed;overflow-y:auto}.tour-card-tall[data-v-5850d3cb]{max-height:min(92vh,46rem)}.tour-card[data-v-5850d3cb] .saxonia-vault.form-card,.tour-card[data-v-5850d3cb] .homeinfo-vault.form-card,.tour-card[data-v-5850d3cb] .settings-section-card{box-shadow:none;border:none;margin:0;padding:0}.tour-card-top[data-v-5850d3cb]:before,.tour-card-bottom[data-v-5850d3cb]:before{content:"";border:9px solid #0000;position:absolute;left:50%;transform:translate(-50%)}.tour-card-top[data-v-5850d3cb]:before{border-top-color:var(--c-paper);top:100%}.tour-card-bottom[data-v-5850d3cb]:before{border-bottom-color:var(--c-paper);bottom:100%}.tour-skip[data-v-5850d3cb]{color:var(--c-ink-muted);font-family:var(--font-sans);font-size:calc(.68rem * var(--font-scale));letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;align-self:flex-end;font-weight:700}.tour-skip[data-v-5850d3cb]:hover{color:var(--c-cobalt)}.tour-kicker[data-v-5850d3cb]{font-family:var(--font-sans);font-size:calc(.68rem * var(--font-scale));letter-spacing:.08em;text-transform:uppercase;color:var(--c-cobalt);font-weight:700}.tour-title[data-v-5850d3cb]{font-family:var(--font-serif);font-size:calc(1.3rem * var(--font-scale));font-weight:800;line-height:1.15}.tour-body[data-v-5850d3cb]{color:var(--c-ink-muted);font-size:calc(.9rem * var(--font-scale));line-height:1.5}.tour-progress[data-v-5850d3cb]{height:4px;margin-top:var(--space-xs);background:var(--c-cobalt);border-radius:999px;transition:width .25s}.tour-actions[data-v-5850d3cb]{justify-content:flex-end;gap:var(--space-s);margin-top:var(--space-s);display:flex}.tour-actions .tour-btn[data-v-5850d3cb]{width:auto;padding:var(--space-s) var(--space-m)}.login-shell[data-v-71301a38]{min-height:100dvh;padding:calc(1.5rem + env(safe-area-inset-top)) clamp(var(--space-m), 6vw, 2.5rem) calc(1.5rem + env(safe-area-inset-bottom));background:var(--c-paper-dim);font-family:var(--font-sans);overscroll-behavior:none;-webkit-text-size-adjust:100%;flex-direction:column;animation:.42s cubic-bezier(.2,.9,.3,1) both login-fade-in-71301a38;display:flex;position:relative;overflow-y:auto}@keyframes login-fade-in-71301a38{0%{opacity:0}to{opacity:1}}.login-inner[data-v-71301a38]{align-items:center;gap:var(--space-l);flex-direction:column;width:100%;max-width:23rem;margin:auto;display:flex}.login-hero[data-v-71301a38]{justify-items:center;gap:var(--space-m);text-align:center;display:grid;position:relative}.logo[data-v-71301a38]{width:clamp(4.5rem,22vw,6rem);height:auto;fill:var(--c-cobalt-dark);filter:drop-shadow(0 12px 24px #12376338)}.login-title[data-v-71301a38]{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--c-cobalt-dark);margin:0;font-size:clamp(1.6rem,6vw,2rem);font-weight:800}.login-form[data-v-71301a38]{gap:var(--space-m);width:100%;display:grid}.form-group[data-v-71301a38]{gap:var(--space-s);display:grid}.field-heading[data-v-71301a38]{justify-content:space-between;align-items:center;gap:var(--space-s);display:flex}.field-label[data-v-71301a38]{color:var(--c-ink);font-size:.8rem;font-weight:700}.info-tooltip[data-v-71301a38]{display:inline-flex;position:relative}.info-tooltip:hover .tooltip-bubble[data-v-71301a38],.info-tooltip:focus-within .tooltip-bubble[data-v-71301a38]{opacity:1;transform:translateY(0)}.info-button[data-v-71301a38]{border:1px solid var(--c-border-strong);width:1.25rem;height:1.25rem;color:var(--c-cobalt);background:var(--c-paper);cursor:help;border-radius:999px;place-items:center;font-size:.72rem;font-weight:700;transition:background-color .15s,color .15s,border-color .15s;display:grid}.info-button[data-v-71301a38]:hover{background:var(--c-cobalt-subtle)}.tooltip-bubble[data-v-71301a38]{z-index:40;border-radius:var(--radius-s);width:max-content;max-width:min(16rem,70vw);color:var(--c-paper);background:var(--c-ink);box-shadow:var(--shadow-md);opacity:0;pointer-events:none;padding:.5rem .75rem;font-size:.75rem;font-weight:500;line-height:1.4;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + .5rem);right:0;transform:translateY(4px)}.tooltip-bubble code[data-v-71301a38]{background:#ffffff24;border-radius:4px;padding:1px 4px;font-size:.68rem}.text-field[data-v-71301a38]{border:1px solid var(--c-border);border-radius:var(--radius-m);width:100%;min-height:2.9rem;color:var(--c-ink);background:var(--c-paper);font:inherit;box-shadow:var(--shadow-sm);padding:.6rem .85rem;font-size:max(1rem,16px);transition:border-color .15s,box-shadow .15s,background-color .15s}.text-field[data-v-71301a38]::placeholder{color:var(--c-ink-muted)}.text-field[data-v-71301a38]:focus{border-color:var(--c-cobalt);background:var(--c-paper);box-shadow:0 0 0 3px var(--c-cobalt-subtle);outline:none}.primary-button[data-v-71301a38]{justify-content:center;align-items:center;gap:var(--space-s);border-radius:var(--radius-m);color:#fff;background:var(--c-cobalt);min-height:3rem;font-family:var(--font-sans);letter-spacing:.02em;cursor:pointer;box-shadow:var(--shadow-sm);border:0;font-size:.92rem;font-weight:700;transition:background-color .15s,transform .1s,box-shadow .15s;display:inline-flex}.primary-button[data-v-71301a38]:hover:not(:disabled){background:var(--c-cobalt-dark);box-shadow:var(--shadow-md)}.primary-button[data-v-71301a38]:active:not(:disabled){transform:scale(.98)}.primary-button[data-v-71301a38]:disabled{cursor:not-allowed;opacity:.6}.forgot-link[data-v-71301a38]{color:var(--c-cobalt);justify-self:center;font-size:.82rem;font-weight:600;text-decoration:none;transition:color .15s}.forgot-link[data-v-71301a38]:hover{color:var(--c-cobalt-dark);text-decoration:underline}@media (height<=560px){.login-inner[data-v-71301a38]{gap:var(--space-m)}.login-hero[data-v-71301a38]{gap:var(--space-xs)}.logo[data-v-71301a38]{width:3.25rem}.login-title[data-v-71301a38]{font-size:1.35rem}.login-form[data-v-71301a38]{gap:var(--space-s)}.form-group[data-v-71301a38]{gap:var(--space-xs)}.text-field[data-v-71301a38]{min-height:2.4rem}.primary-button[data-v-71301a38]{min-height:2.5rem}}@media (height<=560px) and (orientation:landscape) and (width>=720px){.login-inner[data-v-71301a38]{align-items:center;gap:var(--space-l);flex-direction:row;width:auto;max-width:none}.login-hero[data-v-71301a38]{text-align:left;justify-items:start}.login-form[data-v-71301a38]{width:min(23rem,46vw)}}@media (width>=768px){.login-inner[data-v-71301a38]{gap:var(--space-l);max-width:25rem}.logo[data-v-71301a38]{width:6.5rem}.login-title[data-v-71301a38]{font-size:2.1rem}.login-form[data-v-71301a38]{gap:var(--space-l)}.text-field[data-v-71301a38]{min-height:3rem}}@media (prefers-reduced-motion:reduce){.login-shell[data-v-71301a38]{animation:none}}.session-shell[data-v-22ae5a54]{min-height:100vh;padding:calc(1rem + env(safe-area-inset-top)) 1rem calc(1rem + env(safe-area-inset-bottom));background:var(--porcelain);place-items:center;display:grid}.session-card[data-v-22ae5a54]{width:min(100%,25rem);box-shadow:var(--shadow);background:#ffffffe6;border:1px solid #1e4d8c1f;border-radius:.5rem;gap:1.35rem;padding:1.2rem;display:grid}.app-shell[data-v-22ae5a54]{min-height:100vh;padding-bottom:calc(5.75rem + env(safe-area-inset-bottom))}.app-shell.is-display[data-v-22ae5a54]{padding-bottom:0}.app-main[data-v-22ae5a54]{width:100%;max-width:none;margin:0;padding:0}.page-enter-active[data-v-22ae5a54],.page-leave-active[data-v-22ae5a54]{transition:opacity .18s,transform .18s}.page-enter-from[data-v-22ae5a54]{opacity:0;transform:translateY(8px)}.page-leave-to[data-v-22ae5a54]{opacity:0;transform:translateY(-6px)}.toast-stack[data-v-22ae5a54]{z-index:80;gap:.75rem;width:min(22rem,100vw - 2rem);display:grid;position:fixed;top:1rem;right:1rem}.toast[data-v-22ae5a54]{color:var(--ink,#0f172a);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform-origin:100% 0;background:#fffffff7;border:1px solid #0f172a14;border-radius:.95rem;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.85rem .9rem;animation:.32s cubic-bezier(.2,.8,.2,1) toast-in-22ae5a54;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 34px #0f172a29}.toast[data-v-22ae5a54]:before{content:"";background:#94a3b82e;width:.25rem;position:absolute;inset:0 auto 0 0}.toast-success[data-v-22ae5a54]{border-color:#16a34a33;box-shadow:0 14px 34px #16a34a29}.toast-error[data-v-22ae5a54]{border-color:#ef444438;box-shadow:0 14px 34px #ef444429}.toast-info[data-v-22ae5a54]{border-color:#1e4d8c33;box-shadow:0 14px 34px #1e4d8c24}.toast-warning[data-v-22ae5a54]{border-color:#ca8a0433;box-shadow:0 14px 34px #ca8a0429}.toast-leaving[data-v-22ae5a54]{animation:.24s cubic-bezier(.22,1,.36,1) forwards toast-out-22ae5a54!important}.toast-icon[data-v-22ae5a54]{border-radius:999px;flex-shrink:0;place-items:center;width:1.8rem;height:1.8rem;font-size:.95rem;font-weight:700;display:grid}.toast-icon-success[data-v-22ae5a54]{color:#166534;background:#22c55e29}.toast-icon-error[data-v-22ae5a54]{color:#b91c1c;background:#f8717133}.toast-icon-info[data-v-22ae5a54]{color:#1d4ed8;background:#60a5fa2e}.toast-icon-warning[data-v-22ae5a54]{color:#ca8a04;background:#ca8a042e}.toast-content[data-v-22ae5a54]{flex:1;gap:.2rem;min-width:0;display:grid}.toast-content strong[data-v-22ae5a54]{color:var(--ink,#0f172a);font-size:.95rem}.toast-content p[data-v-22ae5a54]{color:#475569;margin:0;font-size:.82rem;line-height:1.35}.toast-close[data-v-22ae5a54]{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.1rem;font-size:1rem;line-height:1;transition:background-color .15s,color .15s}.toast-timeline[data-v-22ae5a54]{transform-origin:0;background:#1e4d8c3d;width:100%;height:3px;animation:linear forwards toast-timeline-22ae5a54;position:absolute;bottom:0;left:0}.toast-leaving .toast-timeline[data-v-22ae5a54]{animation-play-state:paused}.toast-success .toast-timeline[data-v-22ae5a54]{background:#22c55e8c}.toast-error .toast-timeline[data-v-22ae5a54]{background:#f87171a6}.toast-info .toast-timeline[data-v-22ae5a54]{background:#3b82f699}.toast-warning .toast-timeline[data-v-22ae5a54]{background:#ca8a0499}.toast-close[data-v-22ae5a54]:hover{color:#0f172a;background:#0f172a0f}@keyframes toast-in-22ae5a54{0%{opacity:0;transform:translateY(-14px)scale(.94)}60%{opacity:1;transform:translateY(3px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-in-success-22ae5a54{0%{opacity:0;transform:translateY(-14px)scale(.94)}50%{opacity:1;transform:translateY(2px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-in-error-22ae5a54{0%{opacity:0;transform:translateY(-14px)rotate(-1deg)scale(.94)}60%{opacity:1;transform:translateY(3px)rotate(.5deg)scale(1.01)}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}@keyframes toast-in-info-22ae5a54{0%{opacity:0;transform:translateY(-12px)scale(.95)}70%{opacity:1;transform:translateY(2px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-in-warning-22ae5a54{0%{opacity:0;transform:translateY(-12px)scale(.95)}70%{opacity:1;transform:translateY(2px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-out-22ae5a54{0%{opacity:1;transform:translate(0)scale(1)}40%{opacity:.8;transform:translate(4px)scale(.98)}to{opacity:0;transform:translate(20px)scale(.94)}}@keyframes toast-timeline-22ae5a54{0%{transform:scaleX(1)}to{transform:scaleX(0)}}body.dark .session-shell{background:var(--c-paper-dim)}body.dark .session-card{border-color:var(--c-border);background:var(--c-paper);color:var(--c-ink)}body.dark .session-card .state-text{color:var(--c-ink-muted)}body.dark .toast{color:#f8fafc;background:#0f172af2;border-color:#94a3b833;box-shadow:0 14px 34px #02061773}body.dark .toast-content p,body.dark .toast-close{color:#cbd5e1}body.dark .toast-close:hover{background:#94a3b829}body.dark .toast:before{background:#7aa5e84d}body.dark .toast-icon-success{color:var(--c-green)}body.dark .toast-icon-error{color:var(--c-red)}body.dark .toast-icon-info{color:var(--c-cobalt)}body.dark .toast-icon-warning{color:var(--c-warning)}
