@font-face{font-family:Montserrat;font-style:normal;font-weight:300;font-display:swap;src:local("Montserrat Light"),local("Montserrat-Light"),url(/assets/montserrat-cyrillic-300-normal-DyQnI4ta.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:300;font-display:swap;src:local("Montserrat Light"),local("Montserrat-Light"),url(/assets/montserrat-latin-300-normal-BgP24wlQ.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:local("Montserrat"),local("Montserrat-Regular"),url(/assets/montserrat-cyrillic-400-normal-BPq32Q8K.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:local("Montserrat"),local("Montserrat-Regular"),url(/assets/montserrat-latin-400-normal-BLhwKU8k.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:local("Montserrat Medium"),local("Montserrat-Medium"),url(/assets/montserrat-cyrillic-500-normal-T0SG181k.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:local("Montserrat Medium"),local("Montserrat-Medium"),url(/assets/montserrat-latin-500-normal-DRFEGfly.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:local("Montserrat SemiBold"),local("Montserrat-SemiBold"),url(/assets/montserrat-cyrillic-600-normal-CQEPC0hM.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:local("Montserrat SemiBold"),local("Montserrat-SemiBold"),url(/assets/montserrat-latin-600-normal-UVxSCcoG.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:local("Montserrat Bold"),local("Montserrat-Bold"),url(/assets/montserrat-cyrillic-700-normal-D-Pqjtdp.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:local("Montserrat Bold"),local("Montserrat-Bold"),url(/assets/montserrat-latin-700-normal-BdjcYUrC.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:local("Montserrat ExtraBold"),local("Montserrat-ExtraBold"),url(/assets/montserrat-cyrillic-800-normal-DDmpGQGC.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:local("Montserrat ExtraBold"),local("Montserrat-ExtraBold"),url(/assets/montserrat-latin-800-normal-axpkC1rd.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-weight:900;font-display:swap;src:local("Montserrat Black"),local("Montserrat-Black"),url(/assets/montserrat-cyrillic-900-normal-CrYcRZSi.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:900;font-display:swap;src:local("Montserrat Black"),local("Montserrat-Black"),url(/assets/montserrat-latin-900-normal-B0TD3Qnu.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:League Spartan;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/league-spartan-latin-600-normal-DHjw6l_K.woff2) format("woff2")}@font-face{font-family:League Spartan;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/league-spartan-latin-700-normal-CtwlLP3z.woff2) format("woff2")}@font-face{font-family:League Spartan;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/league-spartan-latin-800-normal-Bu841fJe.woff2) format("woff2")}@font-face{font-family:League Spartan;font-style:normal;font-weight:900;font-display:swap;src:url(/assets/league-spartan-latin-900-normal-IG1-Q81A.woff2) format("woff2")}:root{--bi-indigo-50: #eef0fa;--bi-indigo-100: #dce0f4;--bi-indigo-200: #b6bde6;--bi-indigo-300: #8b95d4;--bi-indigo-400: #5a66b5;--bi-indigo-500: #3a47a0;--bi-indigo-600: #27348b;--bi-indigo-700: #1f2a73;--bi-indigo-800: #171f54;--bi-indigo-900: #0f1538;--bi-blue-300: #6aa0ff;--bi-blue-400: #2f7bff;--bi-blue-500: #0a66ff;--bi-blue-600: #0a5be0;--bi-blue-700: #0a49b3;--bi-purple-400: #b552d0;--bi-purple-500: #9b39bd;--bi-white: #ffffff;--bi-slate-50: #f6f7fb;--bi-slate-100: #edeff5;--bi-slate-200: #dde1ec;--bi-slate-300: #c2c8da;--bi-slate-400: #9098b2;--bi-slate-500: #646c8a;--bi-slate-600: #474e6b;--bi-slate-700: #333a52;--bi-slate-800: #1f2438;--bi-slate-900: #0e1124;--bi-success: #1e9e6a;--bi-success-bg: #e3f5ec;--bi-warning: #e8a33d;--bi-warning-bg: #fbf0dd;--bi-danger: #d7483b;--bi-danger-bg: #fbe5e3;--bi-info: #0a66ff;--bi-info-bg: #e6efff;--bi-gradient-hero: linear-gradient(135deg, #171f54 0%, #1f2a73 45%, #0a49b3 100%);--bi-gradient-royal: linear-gradient(120deg, #1f2a73 0%, #0a5be0 100%);--bi-gradient-aurora: linear-gradient(115deg, #141a4d 0%, #2740a8 55%, #b552d0 130%);--text-strong: var(--bi-slate-900);--text-body: var(--bi-slate-700);--text-muted: var(--bi-slate-500);--text-faint: var(--bi-slate-400);--text-on-brand: var(--bi-white);--text-link: var(--bi-blue-500);--surface-page: var(--bi-slate-50);--surface-card: var(--bi-white);--surface-sunken: var(--bi-slate-100);--surface-brand: var(--bi-indigo-600);--surface-brand-deep: var(--bi-indigo-800);--surface-inverse: var(--bi-slate-900);--border-subtle: var(--bi-slate-200);--border-default: var(--bi-slate-300);--border-strong: var(--bi-slate-400);--border-brand: var(--bi-indigo-600);--focus-ring: var(--bi-blue-500);--color-primary: var(--bi-indigo-600);--color-primary-hover: var(--bi-indigo-700);--color-primary-active: var(--bi-indigo-800);--color-primary-contrast: var(--bi-white);--color-accent: var(--bi-blue-500);--color-accent-hover: var(--bi-blue-600);--color-accent-contrast: var(--bi-white)}:root{--font-display: "Gotham", "Montserrat", system-ui, sans-serif;--font-sans: "Gotham", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;--font-numeric: "League Spartan", "Gotham", "Montserrat", system-ui, sans-serif;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-extrabold: 800;--fw-black: 900;--fs-display-2xl: 88px;--fs-display-xl: 64px;--fs-display-lg: 48px;--fs-display-md: 38px;--fs-h1: 32px;--fs-h2: 26px;--fs-h3: 21px;--fs-h4: 18px;--fs-body-lg: 18px;--fs-body: 16px;--fs-body-sm: 14px;--fs-caption: 13px;--fs-overline: 12px;--lh-tight: 1.04;--lh-snug: 1.18;--lh-normal: 1.5;--lh-relaxed: 1.65;--ls-display: -.02em;--ls-tight: -.01em;--ls-normal: 0;--ls-overline: .14em}:root{--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--space-32: 128px;--radius-xs: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-2xl: 32px;--radius-pill: 999px;--radius-circle: 50%;--shadow-xs: 0 1px 2px rgba(15, 21, 56, .06);--shadow-sm: 0 2px 6px rgba(15, 21, 56, .08);--shadow-md: 0 8px 20px rgba(15, 21, 56, .1);--shadow-lg: 0 16px 40px rgba(15, 21, 56, .14);--shadow-xl: 0 28px 64px rgba(15, 21, 56, .18);--shadow-brand: 0 14px 30px rgba(39, 52, 139, .3);--shadow-focus: 0 0 0 3px rgba(10, 102, 255, .35);--border-width: 1px;--border-width-strong: 2px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .36s;--container-max: 1200px;--container-wide: 1320px}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-normal);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6,p{margin:0}a{color:var(--text-link);text-decoration:none}a:hover{text-decoration:underline}.bi-display{font-family:var(--font-display);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:var(--ls-display);line-height:var(--lh-tight);color:var(--text-strong)}.bi-overline{font-family:var(--font-sans);font-weight:var(--fw-bold);font-size:var(--fs-overline);text-transform:uppercase;letter-spacing:var(--ls-overline);color:var(--bi-blue-500)}html,body,#app{height:100%;margin:0;padding:0}#app{min-height:100dvh}body{background:var(--surface-page)}*{scrollbar-width:thin;scrollbar-color:var(--bi-slate-300) transparent}.num{font-family:var(--font-numeric);font-weight:var(--fw-bold);letter-spacing:-.01em;font-variant-numeric:tabular-nums}.kicker{font-family:var(--font-sans);font-weight:var(--fw-bold);font-size:var(--fs-overline);text-transform:uppercase;letter-spacing:var(--ls-overline);color:var(--bi-blue-500)}.muted{color:var(--text-muted)}.faint{color:var(--text-faint);font-size:var(--fs-caption)}.page-title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h2);letter-spacing:var(--ls-tight);color:var(--text-strong);line-height:var(--lh-snug)}.surface{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.surface--clip{overflow:hidden}.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-body-sm)}.tbl th{text-align:left;font-weight:var(--fw-semibold);color:var(--text-muted);font-size:var(--fs-overline);text-transform:uppercase;letter-spacing:.05em;padding:10px 16px;background:var(--bi-slate-50);border-bottom:1px solid var(--border-subtle);white-space:nowrap}.tbl td{padding:10px 16px;border-bottom:1px solid var(--border-subtle);color:var(--text-body);vertical-align:middle}.tbl tbody tr:last-child td{border-bottom:0}.t-strong{color:var(--text-strong);font-weight:var(--fw-medium)}.table-scroll{overflow-x:auto}.pp-shell{min-height:100dvh;display:flex;flex-direction:column}.pp-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-4) var(--space-6);background:var(--surface-card);border-bottom:1px solid var(--border-subtle)}.pp-brand{display:flex;align-items:center;gap:var(--space-3)}.pp-brand__logo{height:26px;width:auto;object-fit:contain}.pp-brand__title{display:flex;align-items:baseline;gap:var(--space-2)}.pp-brand__title .page-title{font-size:var(--fs-h4)}.pp-nav{display:flex;gap:var(--space-2);flex-wrap:wrap}.pp-nav a{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:var(--fw-medium);font-size:var(--fs-body-sm);color:var(--text-body);text-decoration:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.pp-nav a:hover{background:var(--bi-slate-50);color:var(--text-strong);text-decoration:none}.pp-nav a.router-link-exact-active{background:var(--surface-brand);color:var(--text-on-brand)}.pp-actions{display:flex;gap:var(--space-2)}.pp-main{flex:1;padding:var(--space-6);max-width:960px;width:100%;margin:0 auto;box-sizing:border-box}.pp-page-head{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-5)}.pp-btn{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:var(--fw-semibold);font-size:var(--fs-body);color:var(--color-primary-contrast);background:var(--color-primary);border:none;border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.pp-btn:hover:not(:disabled){background:var(--color-primary-hover)}.pp-btn:disabled{opacity:.6;cursor:default}.pp-btn--ghost{color:var(--text-body);background:none;border:1px solid var(--border-default);font-weight:var(--fw-medium);font-size:var(--fs-body-sm);padding:var(--space-2) var(--space-3)}.pp-btn--ghost:hover:not(:disabled){background:var(--bi-slate-50)}.pp-btn--sm{padding:4px var(--space-2);font-size:var(--fs-caption);margin-left:var(--space-3)}.pp-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.pp-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-caption);font-weight:var(--fw-medium);padding:2px 10px;border-radius:var(--radius-pill);background:var(--bi-slate-100);color:var(--text-muted);white-space:nowrap}.pp-badge--success{background:var(--bi-success-bg);color:var(--bi-success)}.pp-badge--warning{background:var(--bi-warning-bg);color:var(--bi-warning)}.pp-badge--danger{background:var(--bi-danger-bg);color:var(--bi-danger)}.pp-chips{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-4)}.pp-chip{font-family:var(--font-sans);font-size:var(--fs-body-sm);font-weight:var(--fw-medium);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-body);cursor:pointer}.pp-chip.active{background:var(--surface-brand);border-color:var(--surface-brand);color:var(--text-on-brand)}.pp-child-line{margin-bottom:var(--space-4)}.pp-error{color:var(--bi-danger);background:var(--bi-danger-bg);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--fs-body-sm)}.pp-empty{color:var(--text-muted);padding:var(--space-6);text-align:center}.pp-card-list{display:flex;flex-direction:column;gap:var(--space-3)}.pp-week{position:relative;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-5);padding-right:48px;text-decoration:none;color:inherit;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.pp-week:hover{text-decoration:none;border-color:var(--bi-indigo-200);box-shadow:var(--shadow-md)}.pp-week--empty{opacity:.8}.pp-week__head{display:flex;align-items:baseline;gap:var(--space-3)}.pp-week__title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h4);color:var(--text-strong)}.pp-week__stats{display:flex;gap:var(--space-6);flex-wrap:wrap}.pp-week__stat{display:flex;flex-direction:column;gap:2px}.pp-week__stat .num{font-size:var(--fs-h3);color:var(--text-strong)}.pp-week__open{position:absolute;right:var(--space-4);top:50%;transform:translateY(-50%);color:var(--text-faint)}.pp-warn{color:var(--bi-danger)}.pp-week--quarter{border-left:4px solid var(--bi-indigo-600)}.kicker--quarter{color:var(--bi-indigo-600)}.pp-term{display:inline-flex;align-items:center;gap:var(--space-2);padding:2px var(--space-3);border-radius:var(--radius-md);background:var(--bi-indigo-50);color:var(--bi-indigo-600)}.pp-term__label{font-size:var(--fs-caption)}.pp-term__score{font-size:var(--fs-h4);font-weight:var(--fw-bold)}.pp-subject__meta{margin:0;padding:0 var(--space-5) var(--space-3);font-size:var(--fs-body-sm)}.pp-weeks{display:flex;flex-direction:column;padding:var(--space-2) 0}.pp-weeks__row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(80px,2fr) 64px minmax(160px,2fr);align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-5);color:inherit;text-decoration:none;font-size:var(--fs-body-sm)}.pp-weeks__row:hover{text-decoration:none;background:var(--bi-slate-50)}.pp-weeks__row--empty{opacity:.7}.pp-weeks__bar{height:8px;border-radius:4px;background:var(--bi-slate-100);overflow:hidden}.pp-weeks__fill{display:block;height:100%;border-radius:4px;background:var(--bi-indigo-600)}.pp-weeks__value{text-align:right;color:var(--text-strong)}.pp-weeks__meta{font-size:var(--fs-caption)}@media(max-width:640px){.pp-weeks__row{grid-template-columns:1fr 64px}.pp-weeks__bar,.pp-weeks__meta{display:none}}.pp-trend{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:var(--fs-caption);font-weight:var(--fw-medium)}.pp-trend--better{color:var(--bi-success)}.pp-trend--worse{color:var(--bi-danger)}.pp-trend--same{color:var(--text-muted)}.pp-back{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-body-sm);color:var(--text-muted);margin-bottom:var(--space-4)}.pp-section{margin-bottom:var(--space-7)}.pp-section__title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h4);color:var(--text-strong);margin-bottom:var(--space-3)}.pp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-4)}.pp-stat{padding:var(--space-5)}.pp-stat__icon{width:38px;height:38px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-3);background:var(--bi-indigo-50);color:var(--bi-indigo-600)}.pp-stat__icon--warn{background:var(--bi-danger-bg);color:var(--bi-danger)}.pp-stat__label{font-size:var(--fs-caption);color:var(--text-muted);margin-bottom:var(--space-1)}.pp-stat__value{font-size:var(--fs-h2);color:var(--text-strong);line-height:1.1;margin-bottom:var(--space-1)}.pp-highlights{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.pp-highlight{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) var(--space-4);border-left:3px solid var(--bi-info)}.pp-highlight--warn{border-left-color:var(--bi-warning)}.pp-subject__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5)}.pp-subject__name{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-body-lg);color:var(--text-strong)}.pp-subject__avg{display:flex;align-items:baseline;gap:var(--space-3)}.pp-subject__avg .num{font-size:var(--fs-h3);color:var(--text-strong)}.pp-day{padding:var(--space-4) var(--space-5)}.pp-day__date{font-weight:var(--fw-semibold);font-size:var(--fs-body);color:var(--text-strong);margin-bottom:var(--space-2)}.pp-day__items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.pp-day__item{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:var(--space-3);font-size:var(--fs-body-sm)}.pp-day__no{width:28px;height:28px;border-radius:var(--radius-sm);background:var(--bi-slate-100);color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-caption)}.pp-letter{padding:var(--space-6) var(--space-7);border-left:3px solid var(--bi-indigo-600)}.pp-letter__para{margin:0 0 var(--space-4);color:var(--text-body);font-size:var(--fs-body);line-height:var(--lh-relaxed)}.pp-letter__para:last-of-type{margin-bottom:0}.pp-letter__signature{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);color:var(--text-muted);font-size:var(--fs-caption);line-height:var(--lh-relaxed)}.pp-feedback{padding:var(--space-5) var(--space-6);margin-top:var(--space-6)}.pp-feedback__title{margin:0 0 var(--space-4);font-size:var(--fs-h5, 1.05rem);font-weight:var(--fw-semibold)}.pp-feedback__choices{display:flex;gap:var(--space-3);flex-wrap:wrap}.pp-choice{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--fs-body-sm);font-weight:var(--fw-medium);color:var(--text-body);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-4);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.pp-choice:hover:not(:disabled){background:var(--bi-slate-50)}.pp-choice:disabled{opacity:.6;cursor:default}.pp-choice:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.pp-choice--yes.pp-choice--active{color:var(--bi-success);background:var(--bi-success-bg);border-color:var(--bi-success)}.pp-choice--no.pp-choice--active{color:var(--bi-danger);background:var(--bi-danger-bg);border-color:var(--bi-danger)}.pp-feedback__thanks{display:inline-flex;align-items:center;gap:var(--space-2);margin:var(--space-3) 0 0;color:var(--bi-success);font-size:var(--fs-body-sm)}.pp-feedback__comment{margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.pp-feedback__label{color:var(--text-muted);font-size:var(--fs-body-sm)}.pp-textarea{width:100%;box-sizing:border-box;font-family:var(--font-sans);font-size:var(--fs-body-sm);color:var(--text-body);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-3);resize:vertical;min-height:72px}.pp-textarea:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.pp-textarea:disabled{opacity:.6}.pp-feedback__actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.pp-notify{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);margin-top:var(--space-6)}.pp-notify__icon{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-sm);color:var(--color-primary);background:var(--bi-indigo-50, #eef0fa)}.pp-notify__text{flex:1;min-width:0}.pp-notify__title{display:block;font-weight:var(--fw-semibold)}.pp-notify__hint{display:block;color:var(--text-muted);font-size:var(--fs-body-sm);margin-top:2px}.pp-switch{flex:none;display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--fs-body-sm);background:none;border:none;padding:0;cursor:pointer}.pp-switch__track{position:relative;width:40px;height:22px;border-radius:11px;background:var(--bi-slate-300, #cbd5e1);transition:background var(--dur-fast) var(--ease-out)}.pp-switch__track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform var(--dur-fast) var(--ease-out)}.pp-switch[aria-checked=true] .pp-switch__track{background:var(--color-primary)}.pp-switch[aria-checked=true] .pp-switch__track:after{transform:translate(18px)}.pp-switch:disabled{opacity:.6;cursor:default}.pp-switch:focus-visible .pp-switch__track{box-shadow:var(--shadow-focus)}.pp-consent{max-width:760px}.pp-doc{padding:var(--space-5) var(--space-6);margin-bottom:var(--space-4)}.pp-doc__head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3)}.pp-doc__title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h4);color:var(--text-strong)}.pp-doc__body{white-space:pre-wrap;color:var(--text-body);font-size:var(--fs-body-sm);line-height:var(--lh-relaxed)}.pp-consent__actions{display:flex;gap:var(--space-3);margin-top:var(--space-5)}.pp-hero-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--bi-gradient-hero)}.pp-hero-card{width:100%;max-width:420px;padding:var(--space-8) var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);align-items:flex-start}.pp-hero-card__logo{height:34px;width:auto;background:var(--bi-indigo-600);padding:6px 10px;border-radius:var(--radius-sm)}@media(max-width:640px){.pp-main{padding:var(--space-4)}.pp-header{padding:var(--space-3) var(--space-4)}.pp-brand__title .kicker{display:none}}.pp-gate{max-width:560px}.pp-gate__card{display:flex;flex-direction:column;gap:12px;padding:20px}.pp-gate__actions{display:flex;gap:8px;flex-wrap:wrap}
