*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--site-bg);min-height:100dvh;color:var(--site-text);font-family:var(--site-font);letter-spacing:0;-webkit-font-smoothing:antialiased;transition:background-color .24s var(--site-ease), color .24s var(--site-ease);margin:0;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}img,svg,video{max-width:100%;height:auto;display:block}button,input,select,textarea{font:inherit;letter-spacing:0}::selection{background:var(--site-accent-soft)}:focus-visible{outline:2px solid var(--site-accent);outline-offset:2px;border-radius:var(--site-radius-sm)}.site-shell{flex-direction:column;min-height:100dvh;display:flex}.site-main{width:100%;max-width:var(--site-maxw);flex:1;margin:0 auto;padding:40px 24px 72px}.site-header{z-index:50;background:var(--site-header-bg);-webkit-backdrop-filter:saturate(1.6)blur(12px);border-bottom:1px solid var(--site-line);position:sticky;top:0}.site-header__inner{max-width:var(--site-maxw);align-items:center;gap:24px;margin:0 auto;padding:14px 24px;display:flex}.site-brand{flex-direction:column;align-items:flex-start;gap:1px;display:inline-flex}.site-brand__name{font-size:18px;font-weight:700;line-height:1.4}.site-brand__tagline{color:var(--site-text-muted);font-size:13px;line-height:1.5}.site-menu{position:relative}.site-menu__panel{z-index:60;border:1px solid var(--site-line);border-radius:var(--site-radius);background:var(--site-surface);min-width:188px;box-shadow:var(--site-shadow);padding:8px;position:absolute;top:calc(100% + 10px);right:0}.site-menu__link{border-radius:var(--site-radius-sm);color:var(--site-text);transition:background-color .16s var(--site-ease), color .16s var(--site-ease);padding:9px 12px;font-size:15px;display:block}.site-menu__link:hover{background:var(--site-surface-2);color:var(--site-accent)}.site-menu__split{background:var(--site-line);height:1px;margin:6px 4px}.site-menu__row{justify-content:space-between;align-items:center;gap:14px;padding:6px 12px;display:flex}.site-menu__label{color:var(--site-text-muted);font-size:15px}.site-header__actions{align-items:center;gap:8px;margin-left:auto;display:flex}.site-icon-btn{border:1px solid var(--site-line);border-radius:var(--site-radius-sm);width:36px;height:36px;color:var(--site-text-muted);cursor:pointer;transition:color .16s var(--site-ease), border-color .16s var(--site-ease);background:0 0;place-items:center;padding:0;display:inline-grid}.site-icon-btn:hover{color:var(--site-accent);border-color:var(--site-accent)}.site-footer{border-top:1px solid var(--site-line);background:var(--site-surface-2)}.site-footer__inner{max-width:var(--site-maxw);grid-template-columns:1fr auto;align-items:start;gap:20px 32px;margin:0 auto;padding:40px 24px 48px;display:grid}.site-footer__name{margin:0 0 4px;font-size:15px;font-weight:700}.site-footer__tagline{color:var(--site-text-muted);margin:0;font-size:14px}.site-footer__nav{flex-wrap:wrap;gap:20px;display:flex}.site-footer__link{color:var(--site-text-muted);font-size:14px}.site-footer__link:hover{color:var(--site-accent)}.site-footer__meta{color:var(--site-text-muted);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px 18px;font-size:13px;display:flex}.site-footer__copy{margin:0}.site-footer__record:hover{color:var(--site-accent)}.site-btn{border:1px solid var(--site-accent);border-radius:var(--site-radius-sm);background:var(--site-accent);color:var(--site-bg);cursor:pointer;transition:opacity .16s var(--site-ease), background .16s var(--site-ease);justify-content:center;align-items:center;gap:8px;padding:9px 20px;font-size:15px;font-weight:600;display:inline-flex}.site-btn:hover{opacity:.88}.site-btn--ghost{color:var(--site-accent);background:0 0}.portal__hero{border-bottom:1px solid var(--site-line);margin-bottom:40px;padding:32px 0 40px}.portal__title{letter-spacing:0;margin:0 0 10px;font-size:34px;font-weight:700;line-height:1.25}.portal__description{color:var(--site-text-muted);margin:0;font-size:17px}.portal__slots{flex-direction:column;gap:48px;display:flex}.portal__empty{border:1px dashed var(--site-line);border-radius:var(--site-radius);background:var(--site-surface);padding:32px}.portal__empty-title{margin:0 0 8px;font-size:17px;font-weight:700}.portal__empty-body{color:var(--site-text-muted);margin:0;font-size:15px;line-height:1.8}.site-page{max-width:var(--site-prose);margin:0 auto}.site-page__head{margin-bottom:30px}.site-page__title{margin:0 0 10px;font-size:30px;font-weight:700;line-height:1.3}.site-page__lead{color:var(--site-text-muted);margin:0;font-size:16px}.site-page__body{font-size:16px;line-height:1.9}.site-page__body h2{margin:1.9em 0 .6em;font-size:19px;font-weight:700}.site-page__body p{margin:0 0 1.2em}.site-page__hr{border:0;border-top:1px solid var(--site-line);margin:2.4em 0}.site-page__meta{color:var(--site-text-muted);font-size:14px}.site-errorpage{text-align:center;max-width:560px;margin:80px auto}.site-errorpage__code{color:var(--site-accent);margin:0 0 6px;font-size:44px;font-weight:700}.site-errorpage__title{margin:0 0 10px;font-size:22px;font-weight:700}.site-errorpage__body{color:var(--site-text-muted);word-break:break-word;margin:0 0 26px;font-size:15px}.site-errorpage__actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.site-module-error{border:1px solid var(--site-line);border-left:3px solid var(--site-accent);border-radius:var(--site-radius);background:var(--site-surface);padding:20px 22px}.site-module-error__title{margin:0 0 6px;font-size:15px;font-weight:700}.site-module-error__body{color:var(--site-text-muted);word-break:break-word;margin:0 0 14px;font-size:14px}.site-toasts{z-index:100;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:20px;right:20px}.site-toast{border:1px solid var(--site-line);border-left:3px solid var(--site-accent);border-radius:var(--site-radius);background:var(--site-surface);min-width:200px;max-width:340px;box-shadow:var(--site-shadow);padding:12px 16px;font-size:14px}.site-toast--ok{border-left-color:#4caf7d}.site-toast--error{border-left-color:#e2686b}@media (max-width:640px){.site-main{padding:28px 18px 56px}.site-header__inner{gap:14px;padding:12px 18px}.portal__title{font-size:26px}.site-footer__inner{grid-template-columns:1fr;padding:32px 18px 40px}}
