@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2) format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2) format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2) format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2) format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff");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}:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--space-10: 128px;--space-11: 192px;--space-12: 256px;--space-13: 384px;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--weight-normal: 400;--weight-bold: 600;--leading-tight: 1.2;--leading-normal: 1.5;--leading-loose: 1.7;--measure: 34em;--grey-100: hsl(214, 32%, 96%);--grey-200: hsl(214, 30%, 91%);--grey-300: hsl(213, 26%, 84%);--grey-400: hsl(215, 18%, 65%);--grey-500: hsl(215, 17%, 53%);--grey-600: hsl(215, 22%, 41%);--grey-700: hsl(215, 28%, 30%);--grey-800: hsl(217, 33%, 20%);--grey-900: hsl(222, 47%, 11%);--teal-100: hsl(172, 66%, 92%);--teal-200: hsl(173, 62%, 83%);--teal-300: hsl(174, 55%, 68%);--teal-400: hsl(174, 62%, 42%);--teal-500: hsl(175, 77%, 29%);--teal-600: hsl(175, 77%, 26%);--teal-700: hsl(176, 80%, 21%);--teal-800: hsl(178, 82%, 17%);--teal-900: hsl(180, 84%, 13%);--red-100: hsl(0, 86%, 95%);--red-500: hsl(0, 72%, 41%);--red-800: hsl(0, 74%, 27%);--yellow-100: hsl(48, 96%, 89%);--yellow-500: hsl(33, 94%, 32%);--yellow-800: hsl(28, 90%, 22%);--green-100: hsl(149, 70%, 91%);--green-500: hsl(152, 85%, 25%);--green-800: hsl(154, 88%, 17%);--shadow-1: 0 1px 3px hsla(215, 40%, 12%, .12);--shadow-2: 0 4px 6px hsla(215, 40%, 12%, .14);--shadow-3: 0 5px 15px hsla(215, 40%, 12%, .16);--shadow-4: 0 10px 24px hsla(215, 40%, 12%, .18);--shadow-5: 0 15px 35px hsla(215, 40%, 12%, .2);--radius: 8px;--radius-full: 999px;--border-width: 1px;--border-width-thick: 2px;--opacity-1: .05;--opacity-2: .1;--opacity-3: .2;--opacity-4: .4;--opacity-5: .6;--opacity-6: .8;--surface: var(--grey-100);--surface-raised: #ffffff;--surface-sunken: var(--grey-200);--border: var(--grey-200);--border-strong: var(--grey-500);--text-primary: var(--grey-900);--text-secondary: var(--grey-700);--text-tertiary: var(--grey-600);--text-disabled: var(--grey-400);--action: var(--teal-600);--action-hover: var(--teal-700);--action-text: #ffffff;--bg: var(--surface);--card: var(--surface-raised);--text: var(--text-primary);--muted: var(--text-tertiary);--accent: var(--action);--accent-soft: var(--teal-100);--danger: var(--red-500);--warn: var(--yellow-500);--shadow: var(--shadow-1);--shadow-lg: var(--shadow-3);--sidebar-bg: linear-gradient(180deg, hsl(196, 68%, 16%) 0%, hsl(196, 76%, 12%) 100%);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--surface);color:var(--text-primary);font-size:var(--text-sm);line-height:var(--leading-normal);font-weight:var(--weight-normal);-webkit-font-smoothing:antialiased}a{color:var(--action);text-decoration:none}.shell{display:flex;min-height:100vh}.sidebar{width:var(--space-11);flex-shrink:0;position:sticky;top:0;height:100vh;background:var(--sidebar-bg);color:var(--grey-200);display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4) var(--space-3) var(--space-3)}.sidebar .brand{font-weight:var(--weight-bold);font-size:var(--text-base);color:#fff;padding:0 var(--space-2);display:flex;align-items:center;gap:var(--space-2)}.sidebar nav{display:flex;flex-direction:column;gap:var(--space-1);flex:1}.sidebar nav a{display:flex;align-items:center;gap:var(--space-3);color:#a9bec6;padding:var(--space-2) var(--space-3);border-radius:var(--radius);font-weight:var(--weight-normal);font-size:var(--text-sm);transition:background .12s,color .12s}.sidebar nav a svg{flex-shrink:0;opacity:var(--opacity-6)}.sidebar nav a.active{background:#ffffff21;color:#fff;font-weight:var(--weight-bold)}.sidebar nav a:hover{background:#ffffff14;color:#fff}.sidebar-bottom{border-top:var(--border-width) solid hsla(0,0%,100%,var(--opacity-2));padding-top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.sidebar-bottom .user{color:#a9bec6;font-size:var(--text-xs);padding:var(--space-2) var(--space-3);border-radius:var(--radius);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.sidebar-bottom .user:hover,.sidebar-bottom .user.active{background:#ffffff14;color:#fff}.sidebar-bottom button{background:transparent;color:#a9bec6;border:var(--border-width) solid hsla(0,0%,100%,var(--opacity-3));border-radius:var(--radius);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:var(--text-xs);font-family:inherit;transition:background .12s,color .12s}.sidebar-bottom button:hover{background:#ffffff14;color:#fff}.content{flex:1;min-width:0}.page{width:100%;margin:0;padding:var(--space-5) var(--space-5) var(--space-7)}.page.boxed{max-width:1280px;margin:0 auto}h1{font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);margin:0 0 var(--space-4);letter-spacing:-.01em;color:var(--text-primary)}h2{font-size:var(--text-xs);margin:var(--space-6) 0 var(--space-3);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--weight-bold)}h3{font-size:var(--text-base);font-weight:var(--weight-bold);margin:var(--space-5) 0 var(--space-2);color:var(--text-primary)}p{margin:0 0 var(--space-3)}p.muted,.lede{max-width:var(--measure);line-height:var(--leading-loose)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--space-11),1fr));gap:var(--space-4)}.card{background:var(--surface-raised);border-radius:var(--radius);padding:var(--space-4);box-shadow:var(--shadow-1)}.card .label{color:var(--text-tertiary);font-size:var(--text-xs);margin-bottom:var(--space-2);font-weight:var(--weight-normal)}.card .value{font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.card .value.text{font-size:var(--text-lg);letter-spacing:0}.card .sub{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-2)}.card .spark{display:block;margin-top:var(--space-3);width:100%}.delta-up{color:var(--green-500);font-weight:var(--weight-bold)}.delta-down{color:var(--red-500);font-weight:var(--weight-bold)}table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface-raised);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-1)}th,td{text-align:left;padding:var(--space-3);border-bottom:var(--border-width) solid var(--border)}tr:last-child td{border-bottom:none}th{position:sticky;top:0;z-index:2;background:var(--grey-100);color:var(--text-tertiary);font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.06em;-webkit-user-select:none;user-select:none}tr:hover td{background:var(--grey-100)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-bold);line-height:1.4}.badge.ok{background:var(--green-100);color:var(--green-800)}.badge.error{background:var(--red-100);color:var(--red-800)}.badge.running,.badge.warn{background:var(--yellow-100);color:var(--yellow-800)}.badge.accent{background:var(--teal-100);color:var(--teal-900)}.badge.info{background:#dcebfe;color:#143694}.badge.neutral{background:var(--grey-200);color:var(--text-secondary)}.toolbar{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);align-items:center;flex-wrap:wrap}.toolbar input,.toolbar select,.toolbar button,.ref-form input,.ref-form select,.login-box input,.role-select,.app-chip{font-family:inherit;font-size:var(--text-sm);color:var(--text-primary);background:var(--surface-raised);border:var(--border-width) solid var(--border-strong);border-radius:var(--radius)}.toolbar input,.toolbar select{padding:var(--space-2) var(--space-3)}.toolbar input{min-width:var(--space-12)}:focus-visible{outline:var(--border-width-thick) solid var(--action);outline-offset:1px}.toolbar input:focus,.toolbar select:focus,.ref-form input:focus,.ref-form select:focus{border-color:var(--action)}.toolbar button{padding:var(--space-2) var(--space-3);cursor:pointer}.toolbar button:hover{border-color:var(--action);color:var(--action)}.ref-form{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:end;margin-top:var(--space-2)}.ref-form label{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-xs);color:var(--text-tertiary)}.ref-form input,.ref-form select{padding:var(--space-2) var(--space-3);width:192px}.ref-form button{padding:var(--space-2) var(--space-4);background:var(--action);color:var(--action-text);border:none;border-radius:var(--radius);cursor:pointer;font-weight:var(--weight-bold);font-size:var(--text-sm);font-family:inherit}.ref-form button:hover{background:var(--action-hover)}.btn-primary{padding:var(--space-2) var(--space-4);background:var(--action);color:var(--action-text);border:none;border-radius:var(--radius);cursor:pointer;font-weight:var(--weight-bold);font-size:var(--text-sm);font-family:inherit}.btn-primary:hover{background:var(--action-hover)}.btn-primary:disabled{opacity:var(--opacity-4);cursor:not-allowed}button.mini{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);border-radius:var(--radius);border:none;background:var(--action);color:var(--action-text);cursor:pointer;font-weight:var(--weight-bold);font-family:inherit}button.mini:hover{background:var(--action-hover)}button.mini.ghost{background:transparent;color:var(--text-tertiary);border:var(--border-width) solid var(--border-strong);font-weight:var(--weight-normal)}button.mini.ghost:hover{color:var(--action);border-color:var(--action);background:transparent}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-box{background:var(--surface-raised);border-radius:var(--radius);padding:var(--space-6);width:var(--space-13);display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--shadow-4)}.login-box h1{text-align:center;margin-bottom:var(--space-2)}.login-box input{padding:var(--space-3)}.login-box button{padding:var(--space-3);background:var(--action);color:var(--action-text);border:none;border-radius:var(--radius);font-weight:var(--weight-bold);cursor:pointer;font-size:var(--text-sm);font-family:inherit}.login-box button:hover{background:var(--action-hover)}.error-text{color:var(--red-500);font-size:var(--text-sm)}.muted{color:var(--text-tertiary)}.spinner{color:var(--text-tertiary);padding:var(--space-5)}.empty{background:var(--surface-raised);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:var(--space-7) var(--space-5);text-align:center;color:var(--text-tertiary)}.empty strong{display:block;color:var(--text-primary);font-size:var(--text-base);margin-bottom:var(--space-2)}td.key{font-weight:var(--weight-bold);color:var(--text-primary)}.aside{color:var(--text-tertiary);font-size:var(--text-xs);font-weight:var(--weight-normal);line-height:var(--leading-normal)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--space-12),1fr));gap:var(--space-4)}.tile{display:flex;align-items:center;gap:var(--space-3);background:var(--surface-raised);border-radius:var(--radius);padding:var(--space-4);box-shadow:var(--shadow-1);cursor:pointer;color:var(--text-primary);transition:box-shadow .12s,transform .12s}.tile:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.tile .tile-icon{font-size:var(--text-2xl)}.tile .tile-name{font-weight:var(--weight-bold);font-size:var(--text-base)}.tile .tile-role{font-size:var(--text-xs);color:var(--text-tertiary)}.chk input[type=checkbox]{width:auto;min-width:0;padding:0;margin:0;flex:none;accent-color:var(--action)}.chk{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-sm);color:var(--text-primary);white-space:nowrap}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg,var(--grey-200) 25%,var(--grey-100) 50%,var(--grey-200) 75%);background-size:200% 100%;animation:shimmer 1.3s ease-in-out infinite;border-radius:var(--radius)}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}*{transition-duration:.01ms!important}}.user-cell{display:flex;align-items:center;gap:var(--space-3);min-width:var(--space-11)}.avatar{width:var(--space-6);height:var(--space-6);border-radius:var(--radius-full);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:var(--weight-bold);font-size:var(--text-sm);color:#fff}.user-cell .who{line-height:var(--leading-normal);min-width:0}.user-cell .who .name{font-weight:var(--weight-bold);display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}.user-cell .who .mail{font-size:var(--text-xs);color:var(--text-tertiary);overflow-wrap:anywhere}.app-col{text-align:center;vertical-align:top}.app-head{display:inline-flex;flex-direction:column;align-items:center;gap:var(--space-1)}.app-head img{width:var(--space-5);height:var(--space-5);object-fit:contain;border-radius:var(--radius)}.app-head .app-emoji{font-size:var(--text-xl);line-height:1}.role-select{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.role-select.role-none{color:var(--text-tertiary);background:transparent}.perm-list{display:inline-flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface-sunken);border-radius:var(--radius);text-align:left}.perm-list label{font-size:var(--text-xs);display:flex;gap:var(--space-2);align-items:center;white-space:nowrap;color:var(--text-primary);cursor:pointer}.actions-cell{white-space:nowrap;text-align:right;vertical-align:top}.actions-cell button{margin-left:var(--space-2)}.panel{background:var(--surface-raised);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-5);box-shadow:var(--shadow-1)}.panel h2{margin:0 0 var(--space-1)}.app-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none}.app-chip img{width:var(--space-4);height:var(--space-4);object-fit:contain;border-radius:var(--radius)}.app-chip.on{border-color:var(--action);background:var(--teal-100);color:var(--teal-900);font-weight:var(--weight-bold)}.table-wrap{overflow-x:auto;background:var(--surface-raised);border-radius:var(--radius);box-shadow:var(--shadow-1)}.table-wrap table{margin:0;box-shadow:none}.catalogue{margin:calc(var(--space-5) * -1) calc(var(--space-5) * -1) 0}.cat-hero{background:linear-gradient(155deg,#0d3645,#093035 60%,#0b3d39);padding:var(--space-7) var(--space-5) var(--space-8);color:#fff}.cat-hero h1{color:#fff;font-size:var(--text-3xl);line-height:var(--leading-tight);margin:0 0 var(--space-3);letter-spacing:-.02em}.cat-hero p{color:#b4d6da;max-width:var(--measure);margin:0;font-size:var(--text-base);line-height:var(--leading-normal)}.cat-search{display:flex;align-items:center;gap:var(--space-3);margin:calc(var(--space-6) * -1) var(--space-5) 0;background:var(--surface-raised);border-radius:var(--radius);box-shadow:var(--shadow-3);padding:var(--space-3) var(--space-4);position:relative;z-index:1}.cat-search svg{color:var(--text-tertiary);flex-shrink:0}.cat-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-family:inherit;font-size:var(--text-base);color:var(--text-primary);padding:var(--space-1) 0}.cat-search input::placeholder{color:var(--text-tertiary)}.cat-search .cat-count{font-variant-numeric:tabular-nums;font-size:var(--text-xs);color:var(--text-secondary);background:var(--grey-100);padding:var(--space-1) var(--space-2);border-radius:var(--radius);border:var(--border-width) solid var(--border)}.cat-search select{border:var(--border-width) solid var(--border-strong);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--text-sm);color:var(--text-primary);background:var(--surface-raised)}.cat-tags{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-5) 0}.cat-tags-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-weight:var(--weight-bold);margin-right:var(--space-2)}.cat-pill{border:var(--border-width) solid var(--border-strong);background:var(--surface-raised);color:var(--text-secondary);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);font-family:inherit;font-size:var(--text-sm);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.cat-pill .n{color:var(--text-tertiary);font-variant-numeric:tabular-nums}.cat-pill:hover{border-color:var(--action);color:var(--action)}.cat-pill.on{background:var(--action);border-color:var(--action);color:var(--action-text);font-weight:var(--weight-bold)}.cat-pill.on .n{color:#bce6e0}.cat-grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(var(--space-13),1fr));padding:var(--space-4) var(--space-5) 0}.cat-card{background:var(--surface-raised);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);transition:box-shadow .12s,transform .12s}.cat-card:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.cat-card-top{display:flex;align-items:center;gap:var(--space-2)}.cat-ini{width:var(--space-5);height:var(--space-5);border-radius:var(--radius-full);background:var(--teal-100);color:var(--teal-900);display:flex;align-items:center;justify-content:center;font-weight:var(--weight-bold);font-size:var(--text-xs);flex-shrink:0}.cat-buyers{font-size:var(--text-xs);color:var(--text-tertiary)}.cat-ca{margin-left:auto;font-weight:var(--weight-bold);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--text-primary)}.cat-name a{color:inherit;text-decoration:none}.cat-name a:hover{color:var(--action);text-decoration:underline}.cat-name{margin:0;font-size:var(--text-base);font-weight:var(--weight-bold);line-height:var(--leading-normal);color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cat-desc{margin:0;font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-normal);flex:1}.cat-desc strong{color:var(--text-primary);font-variant-numeric:tabular-nums}.cat-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);border-top:var(--border-width) solid var(--border);padding-top:var(--space-3)}.cat-traits{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--text-xs)}.cat-go{color:var(--action);font-weight:var(--weight-bold);font-size:var(--text-sm);white-space:nowrap}.cat-go:hover{color:var(--action-hover);text-decoration:underline}.catalogue .empty,.catalogue .spinner,.catalogue .toolbar{margin:var(--space-5)}@media (max-width: 640px){.cat-hero{padding:var(--space-5) var(--space-4) var(--space-7)}.cat-hero h1{font-size:var(--text-2xl)}.cat-search{margin-left:var(--space-4);margin-right:var(--space-4);flex-wrap:wrap}.cat-grid,.cat-tags{padding-left:var(--space-4);padding-right:var(--space-4)}}.pyr{display:grid;gap:var(--space-2)}.pyr-row{display:grid;grid-template-columns:1fr var(--space-9) 1fr;align-items:center;gap:var(--space-2)}.pyr-h,.pyr-f{display:grid;align-items:center;gap:var(--space-2)}.pyr-h{grid-template-columns:var(--space-7) 1fr}.pyr-f{grid-template-columns:1fr var(--space-7)}.pyr-wrap{display:flex;height:20px}.pyr-h .pyr-wrap{justify-content:flex-end}.pyr-bar{border-radius:3px;min-width:2px}.pyr-n{font-size:var(--text-xs);color:var(--text-secondary);font-variant-numeric:tabular-nums}.pyr-h .pyr-n{text-align:right}.pyr-age{text-align:center;font-weight:var(--weight-bold);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--text-primary);white-space:nowrap}.pyr-head{display:grid;grid-template-columns:1fr var(--space-9) 1fr;gap:var(--space-2);margin-bottom:var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-bold)}.pyr-head .g{text-align:right}.pyr-head .d{text-align:left}.pyr-head span{color:var(--text-secondary);font-weight:var(--weight-normal)}.pyr-solo{display:grid;grid-template-columns:var(--space-8) 1fr var(--space-9);align-items:center;gap:var(--space-3)}.sexes{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(var(--space-12),1fr))}.sexe-bloc{display:grid;gap:var(--space-1)}.sexe-bloc dl{display:grid;grid-template-columns:1fr auto;gap:var(--space-1) var(--space-3);margin:var(--space-2) 0 0}.sexe-bloc dt{color:var(--text-secondary);font-size:var(--text-sm)}.sexe-bloc dd{margin:0;font-variant-numeric:tabular-nums;font-weight:var(--weight-bold);text-align:right}.pyr-ref{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--text-tertiary);border-radius:1px}.pyr-wrap{position:relative}.ecarts{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(var(--space-11),1fr))}.ecart{display:grid;gap:var(--space-1)}.ecart .v{font-size:var(--text-2xl);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;line-height:1.1}.ecart .r{font-size:var(--text-sm);color:var(--text-secondary)}.ecart .l{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--weight-bold)}.mois{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--space-1);align-items:end;height:var(--space-8)}.mois>div{display:flex;flex-direction:column;justify-content:flex-end;height:100%;gap:var(--space-1)}.mois i{display:block;background:var(--teal-400);border-radius:3px 3px 0 0;min-height:2px}.mois i.fort{background:var(--teal-700)}.mois span{font-size:var(--text-xs);color:var(--text-tertiary);text-align:center}.jauge{position:relative;height:8px;background:var(--grey-100);border-radius:var(--radius-full);min-width:var(--space-8)}.jauge i{position:absolute;inset:0 auto 0 0;border-radius:var(--radius-full)}.jauge b{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--text-tertiary);border-radius:1px}
