@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}*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f0f2f5;--surface: #ffffff;--surface2: #f8f9fb;--border: #dfe3ea;--text: #1a1f2e;--text-muted: #647089;--accent: #2563eb;--accent-hover: #1d4ed8;--success: #16a34a;--danger: #dc2626;--radius: 12px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 4px 16px rgba(16, 24, 40, .06)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-synthesis:none}body{font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;line-height:1.5;font-size:15px;letter-spacing:-.011em}#root{min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;border-radius:8px;font-size:14px;font-weight:500;transition:all .15s ease}button:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{font-family:inherit;font-size:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);padding:10px 14px;width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #3b82f633}textarea{resize:vertical;min-height:80px}a{color:var(--accent);text-decoration:none}.app-layout{min-height:100vh;display:flex;flex-direction:column}.header{width:100%;flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--border);padding:0 24px;padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));height:60px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;box-sizing:border-box}.header-actions{display:none;align-items:center;gap:4px}.header-menu-btn{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:8px;background:transparent;border-radius:10px;color:var(--text)}.header-menu-btn:hover{background:var(--surface2)}.header-menu-btn__bar{display:block;width:100%;height:2px;background:currentColor;border-radius:1px;transition:transform .2s ease,opacity .2s ease}.header--menu-open .header-menu-btn__bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.header--menu-open .header-menu-btn__bar:nth-child(2){opacity:0}.header--menu-open .header-menu-btn__bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.header-backdrop{display:none}.header-nav-bell{display:contents}.header-bell-slot{display:none}.header-user-name{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-brand{display:flex;align-items:center;gap:12px;flex:0 0 auto;color:inherit;font-weight:700;font-size:18px;letter-spacing:-.02em;text-decoration:none}.header-brand svg{color:var(--accent);shape-rendering:geometricPrecision}.header-context{min-width:0;display:flex;align-items:center;gap:10px;overflow:hidden}.header-context-separator{flex:0 0 auto;color:var(--text-muted);font-size:17px;font-weight:800;line-height:1}.header-context-link,.header-context-current{min-width:0;color:var(--text-muted);font-size:14px;font-weight:600;line-height:1.3;letter-spacing:0;white-space:nowrap}.header-context-link{flex:0 0 auto;text-decoration:none}.header-context-link:hover{color:var(--accent)}.header-context-current{overflow:hidden;color:var(--text);text-overflow:ellipsis}.header-nav{display:flex;align-items:center;gap:16px}.header-nav--mobile{display:none}.header-admin-btn{width:34px;height:34px;min-width:34px;padding:0;display:inline-flex;align-items:center;justify-content:center}.header-admin-btn svg{flex:0 0 auto}.header-admin-label{display:none}.header-user{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:13px}.notification-bell{position:relative}.notification-bell-btn{position:relative;padding:8px}.notification-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;background:var(--danger);color:#fff;font-size:10px;font-weight:600;border-radius:8px;display:flex;align-items:center;justify-content:center;line-height:1}.notification-panel{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-height:420px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #0000001f;z-index:200;display:flex;flex-direction:column;overflow:hidden}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);font-weight:600;font-size:14px}.notification-list{overflow-y:auto;flex:1}.notification-empty{padding:32px 16px;text-align:center;color:var(--text-muted);font-size:13px}.notification-item{display:flex;gap:10px;width:100%;padding:12px 16px;border:none;background:none;text-align:left;cursor:pointer;border-bottom:1px solid var(--border);font-family:inherit;font-size:13px;color:var(--text)}.notification-item:hover{background:var(--surface2)}.notification-item.unread{background:#3b82f60f}.notification-item.unread:hover{background:#3b82f61a}.notification-item-icon{flex-shrink:0;font-size:16px;line-height:1.4}.notification-item-body{display:flex;flex-direction:column;gap:4px;min-width:0}.notification-item-text{line-height:1.4}.notification-item-time{font-size:11px;color:var(--text-muted)}.role-badge{background:var(--surface2);padding:3px 10px;border-radius:20px;font-size:12px;color:var(--text)}.main-content{flex:1;min-width:0;padding:24px;max-width:1100px;margin:0 auto;width:100%;box-sizing:border-box}.main-content--wide{max-width:none}.main-content--it-admin{max-width:none;padding:16px 20px 20px;display:flex;flex-direction:column;min-height:calc(100vh - 60px)}@media(min-width:769px){.app-layout>.header{position:sticky;top:0;left:0;right:0;margin:0;border-radius:0}}.btn{padding:10px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;text-decoration:none}a.btn{border-radius:8px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface2);border-color:#c8ced8}.btn-danger{background:#ef444426;color:var(--danger);border:1px solid rgba(239,68,68,.3)}.btn-sm{padding:6px 12px;font-size:13px}.btn-ghost{background:transparent;color:var(--text-muted);padding:6px 10px}.btn-ghost:hover{color:var(--text);background:var(--surface2)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:var(--shadow)}.login-card h1{font-size:24px;margin-bottom:8px;font-weight:700;letter-spacing:-.025em}.login-card p{color:var(--text-muted);margin-bottom:28px;font-size:14px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--text-muted)}.password-field{position:relative;display:flex;align-items:center}.password-field input{padding-right:44px}.password-field__toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);border-radius:8px;padding:0}.password-field__toggle:hover{color:var(--text);background:var(--surface2)}.copy-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.copy-field input,.copy-field textarea{min-width:0}.copy-field--textarea{align-items:start}.copy-field--textarea textarea{resize:vertical}.copy-field__btn{align-self:start;min-height:40px;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.login-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--danger);padding:10px 14px;border-radius:8px;margin-bottom:16px;font-size:13px}.demo-accounts{margin-top:24px;padding-top:20px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted)}.demo-accounts p{margin-bottom:8px}.demo-accounts code{background:var(--bg);padding:2px 6px;border-radius:4px;font-size:11px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-header h2{font-size:22px;font-weight:600;letter-spacing:-.02em}.project-create-btn{flex:0 0 auto}.project-list{display:flex;flex-direction:column;gap:12px}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;cursor:pointer;transition:border-color .15s,box-shadow .15s;display:flex;align-items:center;gap:20px;box-shadow:var(--shadow)}.project-card:hover{border-color:var(--accent);background:var(--surface);box-shadow:var(--shadow)}.project-card-info{flex:1;min-width:0}.project-card-title{font-weight:600;font-size:16px;margin-bottom:2px;letter-spacing:-.015em}.project-card-label{font-size:12px;color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;font-weight:500}.project-card-metrics{display:flex;align-items:center;gap:16px;flex-shrink:0}.project-card-actions{display:flex;align-items:center;gap:8px}.project-card-progress{display:flex;align-items:center;gap:10px;flex-shrink:0}.project-card-metric-slot{display:flex;align-items:center;justify-content:center;gap:8px}.project-card-progress .metric-count{min-width:0;text-align:left}.metric-count{font-size:15px;font-weight:600;color:var(--text-muted);min-width:52px;text-align:right;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.metric-percent{font-size:15px;font-weight:700;min-width:0;text-align:left;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.progress-ring{position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:center}.progress-ring svg{display:block;transform:rotate(-90deg);transform-origin:center}.progress-ring-bg{fill:none;stroke:var(--border);shape-rendering:geometricPrecision}.progress-ring-fill{fill:none;stroke-linecap:round;shape-rendering:geometricPrecision;transition:stroke-dashoffset .4s ease,stroke .3s ease}.progress-ring__label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1f2e73;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;z-index:200;overflow-y:auto}.modal-overlay--fullscreen{z-index:400}.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:800px;box-shadow:var(--shadow);animation:modalIn .2s ease}@keyframes modalIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:20px 24px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px 16px;position:relative}.modal-header h3{font-size:18px;padding-right:36px}.modal-header-main{grid-column:1;min-width:0}.modal-header-desc-block{margin-top:4px}.modal-header-desc-toggle{display:none}.modal-header-desc{color:var(--text-muted);font-size:13px;margin-top:0}.modal-header-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.modal-header-metrics{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;gap:12px;padding-right:0}.modal-header-metrics .metric-count{font-size:16px}.modal-header-metrics .metric-percent{font-size:22px;font-weight:700;min-width:0;text-align:center;font-variant-numeric:tabular-nums}.modal-body{padding:20px 24px}@media(min-width:769px){.modal-overlay.modal-overlay--fill-body{align-items:stretch;justify-content:center;padding:28px 20px 24px;overflow:hidden}.modal-overlay--fill-body .modal--fill-body{width:100%;max-width:720px;height:calc(100vh - 52px);height:calc(100dvh - 52px);max-height:none;margin:0 auto;border-radius:16px;display:flex;flex-direction:column;overflow:hidden;align-self:stretch}.modal-overlay--fill-body .modal-body{padding-bottom:20px}.modal-overlay--fill-body .textarea--fill{border-radius:10px}}.modal-overlay--fill-body .modal-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:16px}.modal-overlay--fill-body .modal-form--fill{flex:1;min-height:0;display:flex;flex-direction:column}.modal-overlay--fill-body .form-group--fill{flex:1;min-height:0;display:flex;flex-direction:column;margin-bottom:0}.modal-overlay--fill-body .copy-field--textarea{flex:1;min-height:0}.modal-overlay--fill-body .copy-field--textarea textarea{height:100%}.modal-overlay--fill-body .textarea--fill{flex:1;min-height:0!important;height:auto;width:100%;resize:none;overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollbar-hidden{scrollbar-width:none;-ms-overflow-style:none}.scrollbar-hidden::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}.modal-close{position:absolute;top:16px;right:16px;background:var(--surface2);color:var(--text-muted);width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px;z-index:2}.modal-close:hover{color:var(--text)}.task-list{display:flex;flex-direction:column;gap:8px}.task-item{border:1px solid var(--border);border-radius:10px;overflow:hidden}.task-header{padding:14px 16px;display:flex;align-items:center;gap:14px;cursor:pointer;background:var(--surface2);transition:background .15s}.task-header:hover{background:var(--surface2)}.task-header-info{flex:1;font-weight:500;font-size:15px;letter-spacing:-.01em}.task-header-metrics{display:flex;align-items:center;gap:12px}.task-chevron{color:var(--text-muted);transition:transform .2s;font-size:12px}.task-chevron.open{transform:rotate(90deg)}.task-stages{border-top:1px solid var(--border);padding:8px;background:var(--surface)}.task-description{margin:4px 12px 12px;padding:10px 12px;background:var(--surface2);border-radius:8px;font-size:13px;line-height:1.5;color:var(--text-muted);white-space:pre-wrap}.stage-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .15s}.stage-row:hover{background:var(--surface2)}.stage-status{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px}.stage-status.done{background:#22c55e26;color:var(--success)}.stage-status.pending{background:#ef44441f;color:var(--danger)}.stage-name{flex:1;font-size:14px}.stage-desc-preview{font-size:12px;color:var(--text-muted);margin-top:2px}.stage-panel{margin-top:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);padding:16px}.stage-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.stage-panel-desc{color:var(--text-muted);font-size:13px;margin-bottom:16px}.stage-actions{display:flex;gap:8px;margin-bottom:16px}.comments-section h4{font-size:13px;color:var(--text-muted);margin-bottom:10px;text-transform:uppercase;letter-spacing:.05em}.comment{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:8px}.comment-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px}.comment-author{font-weight:600}.comment-date{color:var(--text-muted)}.comment-text{font-size:14px;white-space:pre-wrap}.comment-attachments{display:flex;flex-direction:column;gap:12px;margin-top:10px}.attachment-preview{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.attachment-preview__thumb-wrap{width:100%;max-width:280px}.attachment-preview__thumb-btn{position:relative;display:block;width:100%;padding:0;border:1px solid var(--border);border-radius:10px;background:var(--surface2);cursor:pointer;overflow:hidden}.attachment-preview__thumb-btn--tip:after{content:"Нажмите для просмотра в полном размере";position:absolute;left:50%;bottom:8px;z-index:2;max-width:calc(100% - 16px);padding:6px 10px;border-radius:8px;background:#0f172ae0;color:#f8fafc;font-size:11px;line-height:1.35;text-align:center;pointer-events:none;opacity:0;transform:translate(-50%) translateY(4px);transition:opacity .15s ease,transform .15s ease}.attachment-preview__thumb-btn--tip:hover:after,.attachment-preview__thumb-btn--tip:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0)}.attachment-preview__thumb{display:block;width:100%;max-height:200px;object-fit:contain}.attachment-preview__thumb-placeholder{min-height:80px;display:flex;align-items:center;justify-content:center;padding:12px;border-radius:10px;border:1px dashed var(--border);font-size:13px;color:var(--text-muted)}.attachment-link{display:inline-flex;align-items:center;font-size:14px;font-weight:500;color:var(--accent);background:none;border:none;padding:0;cursor:pointer;text-align:left;word-break:break-word}.attachment-link:hover:not(:disabled){text-decoration:underline}.attachment-link:disabled{opacity:.65;cursor:wait}.attachment-error{font-size:12px;color:var(--danger)}.image-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:12000;display:flex;align-items:center;justify-content:center;padding:24px 16px}.image-lightbox__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;padding:0;margin:0;background:#000000bf;cursor:pointer}.image-lightbox__panel{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:min(96vw,1200px);max-height:min(92vh,900px);width:100%}.image-lightbox__close{position:absolute;top:-8px;right:-8px;z-index:2;width:36px;height:36px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:#0f172ad9;color:#fff;font-size:22px;line-height:1;cursor:pointer}.image-lightbox__close:hover{background:#1e293bf2}.image-lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:#0f172ad9;color:#fff;font-size:32px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.image-lightbox__nav:hover{background:#1e293bf2}.image-lightbox__nav--prev{left:-8px}.image-lightbox__nav--next{right:-8px}.image-lightbox__stage{display:flex;align-items:center;justify-content:center;min-height:120px;width:100%;max-height:min(72vh,760px);overflow:hidden;touch-action:none}.image-lightbox__stage--zoomed{cursor:grab}.image-lightbox__stage--zoomed:active{cursor:grabbing}.image-lightbox__status{color:#e2e8f0;font-size:14px;padding:24px}.image-lightbox__img{display:block;max-width:100%;max-height:min(72vh,760px);width:auto;height:auto;object-fit:contain;border-radius:12px;background:#0f172a;box-shadow:0 20px 50px #00000059;transition:transform .12s ease;transform-origin:center center;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.image-lightbox__toolbar{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.image-lightbox__tool{border:1px solid rgba(255,255,255,.35);background:#0f172ad9;color:#fff;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer;min-width:40px}.image-lightbox__tool:hover:not(:disabled){background:#1e293bf2}.image-lightbox__tool:disabled{opacity:.4;cursor:default}.image-lightbox__counter{color:#e2e8f0;font-size:13px;min-width:48px;text-align:center}.image-lightbox__caption{margin:0;max-width:100%;padding:0 8px;font-size:13px;line-height:1.4;color:#f8fafc;text-align:center;word-break:break-word}@media(max-width:640px){.image-lightbox__nav--prev{left:4px}.image-lightbox__nav--next{right:4px}}.comment-form{margin-top:12px;display:flex;flex-direction:column;gap:10px}.comment-form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.comment-form-actions .file-input-label,.comment-form-actions .btn{box-sizing:border-box;height:32px;padding:0 12px;font-size:13px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.file-input-label{display:inline-flex;align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:8px;font-weight:500;color:var(--text);cursor:pointer;width:fit-content;transition:background .15s ease}.file-input-label:hover{background:var(--border)}.file-input-label input{display:none}.selected-files{font-size:12px;color:var(--text-muted)}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:20px;box-shadow:var(--shadow)}.form-card h3{font-size:16px;margin-bottom:16px}.department-page-content{width:100%}.department-page-content form,.department-page-content .project-form,.department-page-content .form-card,.department-page-content .admin-form{width:100%;max-width:none;box-sizing:border-box}.montage-page-title--dept{display:none}.project-form{width:100%}.project-form-section-actions{display:flex;align-items:center;justify-content:flex-start;margin:0 0 12px}.project-form-section-toggle{width:100%;min-width:0;min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0;margin:0 0 16px;border:none;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer}.project-form-section-title{font-size:16px;font-weight:600}.project-form-section-toggle svg{flex:0 0 auto;color:var(--text-muted);transition:transform .15s ease}.project-form-section.is-collapsed .project-form-section-toggle svg{transform:rotate(-90deg)}.project-form-section.is-collapsed .project-form-section-toggle{margin-bottom:0}.project-form-section-body[hidden]{display:none}.task-form-block{border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:12px;background:var(--surface2)}.task-form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.stage-form-row{display:grid;grid-template-columns:1fr 2fr auto;gap:10px;margin-bottom:8px;align-items:start}.form-actions{display:flex;gap:10px;margin-top:20px}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border);font-size:14px}.admin-table th{color:var(--text-muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.05em}.admin-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:24px}.admin-form h3{margin-bottom:16px}.admin-access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-access-disclosure{margin-bottom:16px;border:1px solid var(--border);border-radius:6px;background:var(--surface);overflow:hidden}.admin-access-disclosure summary{min-height:42px;padding:10px 12px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;cursor:pointer;list-style:none}.admin-access-disclosure summary::-webkit-details-marker{display:none}.admin-access-disclosure-title{color:var(--text);font-size:13px;font-weight:600}.admin-access-disclosure-value{min-width:0;overflow:hidden;color:var(--text-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.admin-access-disclosure summary svg{color:var(--text-muted);transition:transform .15s ease}.admin-access-disclosure[open] summary svg{transform:rotate(180deg)}.admin-access-disclosure-body{padding:0 12px 12px;border-top:1px solid var(--border)}.admin-access-disclosure-body .admin-access-grid{padding-top:12px}.admin-access-option{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer}.admin-access-option input{width:16px;height:16px;margin:2px 0 0;flex:0 0 auto}.admin-access-option span{display:grid;gap:3px;min-width:0}.admin-access-option strong{font-size:13px}.admin-access-option small{color:var(--text-muted);font-size:12px;line-height:1.35}.admin-access-option.is-disabled{opacity:.62;cursor:default}.project-member-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.project-member-option{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--border);border-radius:6px;cursor:pointer}.project-member-option input{width:16px;height:16px;flex:0 0 auto}.project-member-option span{display:grid;min-width:0}.project-member-option strong,.project-member-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-member-option small{color:var(--text-muted)}.admin-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:var(--success);padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:13px}.admin-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.admin-actions--icons{gap:6px}.admin-icon-btn{width:36px;height:36px;min-height:36px;padding:0!important;display:inline-flex;align-items:center;justify-content:center}.admin-icon-btn svg{display:block}.admin-filters{display:none}.admin-users-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.admin-users-header h3{margin:0}.admin-filters-wrap{position:relative;z-index:5}.admin-filters-btn{display:inline-flex;align-items:center;gap:8px}.admin-filters-btn.is-active{border-color:var(--accent);color:var(--accent)}.admin-filters-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:#fff;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.admin-filters-chevron{font-size:11px;line-height:1;transition:transform .15s ease}.admin-filters-chevron.is-open{transform:rotate(180deg)}.admin-filters-panel{position:absolute;top:calc(100% + 6px);right:0;width:min(280px,calc(100vw - 48px));padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px #10182824;display:flex;flex-direction:column;gap:10px}.admin-filters-panel .form-group,.admin-filters .form-group{margin-bottom:0}.admin-row--inactive td{opacity:.72}.admin-muted{color:var(--text-muted);font-size:13px}.admin-user-list{display:none;list-style:none;margin:0;padding:0}.admin-users-desktop{display:block;overflow-x:auto}.admin-user-list-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 4px;border:none;border-bottom:1px solid var(--border);border-radius:0;background:transparent;text-align:left;color:inherit;cursor:pointer}.admin-user-list-item:last-child{border-bottom:none}.admin-user-list-item:hover,.admin-user-list-item:active{background:var(--surface2)}.admin-user-list-item.is-inactive{opacity:.72}.admin-user-list-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.admin-user-list-login{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-list-name{font-size:13px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-list-side{display:flex;align-items:center;gap:6px;flex-shrink:0;max-width:48%}.admin-user-list-side .role-badge{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-list-chevron{color:var(--text-muted);font-size:18px;line-height:1}.admin-status-pill{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--surface2);color:var(--text-muted);white-space:nowrap}.admin-status-pill--off{background:#dc26261a;color:var(--danger)}.admin-user-detail{display:flex;flex-direction:column;gap:4px}.admin-user-detail-head{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--border)}.admin-user-detail-login{font-size:18px;font-weight:700;letter-spacing:-.02em;word-break:break-word}.admin-user-detail-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.admin-user-detail-actions{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin:0 0 18px;padding:0 0 16px;border-bottom:1px solid var(--border)}.admin-user-detail-actions .btn{flex:1 1 calc(50% - 4px);min-width:140px;justify-content:center;display:inline-flex;align-items:center;gap:8px}.admin-user-detail-actions .btn svg{flex-shrink:0}.admin-user-detail-hint{margin:0;width:100%}.admin-user-detail-section{margin:0 0 12px;font-size:15px;font-weight:600}.admin-user-detail .form-actions{margin-top:8px}.admin-user-detail .form-actions .btn{width:100%;justify-content:center;display:inline-flex;align-items:center;gap:8px}.admin-detail-back{flex-shrink:0}.admin-detail-title{margin:0;flex:1}.admin-group-create{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.admin-group-create input{flex:1;min-width:180px}.admin-group-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.admin-group-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}.admin-group-info{display:flex;flex-direction:column;gap:2px;min-width:0}.admin-group-rename{display:flex;flex:1;gap:8px;flex-wrap:wrap;align-items:center}.admin-group-rename input{flex:1;min-width:140px}.modal--narrow{max-width:480px}input:disabled{opacity:.6;cursor:not-allowed}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state p{margin-top:8px;font-size:14px}.tabs{display:flex;gap:4px;margin-bottom:20px;background:var(--surface);padding:4px;border-radius:10px;width:fit-content}.tab{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;color:var(--text-muted);background:transparent}.tab.active{background:var(--surface2);color:var(--text)}@media(max-width:640px){.stage-form-row,.form-row{grid-template-columns:1fr}}.it-admin-module{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;flex:1;min-height:0;align-items:stretch}.it-admin-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 14px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow);min-height:0;overflow:auto}.it-admin-nav-title{font-size:11px;font-weight:700;color:var(--text-muted);margin-bottom:4px;padding:0 6px;text-transform:uppercase;letter-spacing:.04em}.it-admin-nav{display:flex;flex-direction:column;gap:6px}.it-admin-nav-btn{border:1px solid transparent;background:transparent;color:var(--text);text-align:left;padding:10px 12px;border-radius:10px;font:inherit;font-size:14px;font-weight:500;transition:background .15s ease,color .15s ease,border-color .15s ease}.it-admin-nav-btn:hover{background:var(--surface2)}.it-admin-nav-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}a.it-admin-nav-btn{text-decoration:none;display:block}.dept-nav-mobile{display:none}.dept-nav-desktop{display:contents}.department-content{min-width:0;min-height:0;display:flex;flex-direction:column}.observer-main{display:flex;flex-direction:column;min-height:0}.department-content>.it-admin-module{flex:1;min-height:0}.observer-main>.it-admin-module{flex:1;min-height:0}.observer-module .it-admin-content{flex:1}.observer-section{margin-bottom:28px}.observer-collapsible{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;box-shadow:var(--shadow);overflow:visible}.observer-collapsible-header-row{display:flex;align-items:center;gap:8px;min-height:62px;padding:8px 12px 8px 0;box-sizing:border-box;background:var(--surface2)}.observer-collapsible-header{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:46px;padding:8px 8px 8px 16px;box-sizing:border-box;background:transparent;border:none;text-align:left;color:var(--text);cursor:pointer}.observer-collapsible-header:hover{background:transparent;color:var(--accent)}.observer-collapsible-title-wrap{display:flex;align-items:center;gap:10px;min-width:0}.observer-collapsible-toggle{flex-shrink:0;width:14px;text-align:center;color:var(--text-muted);font-size:12px}.observer-collapsible-title{font-weight:600;font-size:15px}.observer-collapsible-count{font-size:12px;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:2px 10px;flex-shrink:0}.observer-collapsible-header-extra{width:auto;max-width:none;min-height:0;flex-shrink:0;margin-left:0;margin-right:4px;display:flex;align-items:center;justify-content:flex-end;position:relative;z-index:5}.observer-collapsible-body{padding:16px;border-top:1px solid var(--border);background:var(--surface);border-radius:0 0 var(--radius) var(--radius)}.search-popover{position:relative;flex-shrink:0}.search-popover-btn{width:38px;height:38px;padding:0;position:relative}.search-popover-dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--accent);border:1.5px solid var(--surface)}.search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top,0px)) 16px max(16px,env(safe-area-inset-bottom,0px));background:#1a1f2e80;box-sizing:border-box}.search-overlay-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 16px 40px #10182838;animation:searchOverlayIn .18s ease}@keyframes searchOverlayIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.search-overlay-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.search-overlay-header .modal-close{position:static;top:auto;right:auto}.search-overlay-header h3{font-size:16px;font-weight:600;margin:0}.search-overlay-body{padding:16px;display:flex;flex-direction:column;gap:12px}.search-overlay-input{width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-size:15px}.search-overlay-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #2563eb26}.search-overlay-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.it-admin-toolbar .search-popover{margin-left:auto}.it-admin-toolbar .search-popover-btn{width:32px;height:32px}.observer-section-search{width:100%;max-width:none;min-width:0;margin-bottom:12px}.observer-home{width:100%;max-width:560px;margin:0 auto;padding:4px 2px 8px}.observer-home-subtitle{margin:4px 0 0;color:var(--text-muted);font-size:14px}.observer-home-groups{display:flex;flex-direction:column;gap:10px}.observer-home-group-btn{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 18px;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.observer-home-group-btn:hover{border-color:var(--accent)}.observer-home-group-label{font-size:16px;font-weight:650;letter-spacing:-.015em}.observer-home-group-hint{font-size:13px;color:var(--text-muted)}.observer-nav-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:350;background:var(--bg);display:flex;flex-direction:column}.observer-nav-overlay-chrome{flex:1;min-height:0;display:flex;flex-direction:column}.observer-nav-overlay-top{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(var(--header-safe-top, env(safe-area-inset-top, 0px)) + 18px) 14px 10px;background:transparent;border-bottom:none}.observer-nav-overlay-title{font-size:17px;font-weight:700;min-width:0;line-height:1.3}.observer-nav-overlay-close{position:static;top:auto;right:auto;flex-shrink:0;width:36px;height:36px;background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;font-size:20px;line-height:1;cursor:pointer}.observer-nav-overlay-close:hover{color:var(--text);background:#ffffff8c}.observer-nav-overlay-body{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:8px 12px calc(20px + env(safe-area-inset-bottom,0px));scrollbar-width:none}.observer-nav-overlay-body::-webkit-scrollbar{display:none}.observer-nav-overlay-body .it-admin-crumb,.observer-nav-overlay-body--montage .page-header{display:none}.observer-nav-overlay-body--dev .project-list{margin-top:0}.observer-section-title{font-size:17px;font-weight:600;margin-bottom:0}.observer-section-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.observer-search{width:100%;max-width:280px;flex-shrink:0;margin-left:0}.observer-positions{display:flex;flex-direction:column;gap:10px}.observer-position-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.observer-position-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:transparent;text-align:left;color:var(--text)}.observer-position-header:hover{background:var(--surface)}.observer-position-name{font-weight:600;font-size:15px}.observer-position-meta{font-size:13px;color:var(--text-muted);margin-top:4px}.observer-position-toggle{color:var(--text-muted);font-size:14px}.observer-position-body{padding:0 16px 14px;border-top:1px solid var(--border)}.observer-checklist-group{margin-top:12px}.observer-checklist-item{padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:6px;font-size:14px}.observer-progress-bar{height:8px;background:var(--surface2);border-radius:4px;overflow:hidden;margin-bottom:20px}.observer-progress-bar--sm{height:6px;margin-top:8px;margin-bottom:0;max-width:240px}.observer-progress-fill{height:100%;background:var(--accent);border-radius:4px;transition:width .2s ease}.observer-status-badge{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--surface2);color:var(--text-muted);font-weight:600}.observer-status-badge.done{background:#dcfce7;color:var(--success)}.it-admin-info-card{margin-top:auto;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.it-admin-info-title{font-weight:600;font-size:13px;margin-bottom:6px}.it-admin-info-text{font-size:12px;color:var(--text-muted);line-height:1.4}.it-admin-main{min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.it-admin-crumb{flex-shrink:0;font-weight:600;font-size:14px;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface)}.it-admin-content{flex:1;min-height:0;overflow-y:auto;padding:16px 18px 18px}.it-admin-content--fill{display:flex;flex-direction:column;overflow:hidden}.it-admin-subtitle{color:var(--text-muted);font-size:14px;margin-top:4px}.it-admin-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:20px}.it-admin-search{max-width:320px;flex:1;min-width:200px}.it-admin-list{display:flex;flex-direction:column;gap:10px}.it-admin-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:var(--shadow)}.it-admin-row.status-new{border-left:4px solid #f59e0b}.it-admin-row.status-progress{border-left:4px solid var(--accent)}.it-admin-row.status-complete{border-left:4px solid var(--success)}.it-admin-row-main{flex:1;min-width:0}.it-admin-row-name{font-weight:600}.it-admin-row-meta{color:var(--text-muted);font-size:13px}.it-admin-row-status{font-size:13px;margin-top:4px}.it-admin-row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;align-items:center;width:auto;max-width:100%;flex-shrink:0}.it-admin-row-actions .btn{width:auto;min-height:0;height:auto;padding:6px 12px;font-size:13px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.it-admin-row-actions .it-admin-btn-icon{width:32px;height:32px;padding:0}.it-admin-row-actions .it-admin-btn-icon svg{display:block;flex-shrink:0}.it-admin-section-title{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:20px 0 10px}.it-admin-section-title-row{display:inline-flex;align-items:center;gap:6px;margin:20px 0 10px;padding:0;border:none;background:transparent;cursor:pointer;color:inherit;font:inherit;text-align:left}.it-admin-section-title-row:hover .it-admin-section-title,.it-admin-section-title-row:hover .it-admin-section-collapse{color:var(--text)}.it-admin-section-title-row .it-admin-section-title{margin:0;line-height:1.2}.it-admin-section-collapse{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--text-muted);font-size:12px;line-height:1;flex-shrink:0}.it-admin-check-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;margin-bottom:8px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-width:0}.it-admin-check-item>div:first-child{min-width:0;flex:1}.it-admin-check-item.done{border-color:#86efac;background:#f0fdf4}.it-admin-check-title{font-weight:500}.it-admin-check-status{font-size:13px;color:var(--text-muted);margin-top:4px}.it-admin-check-status.done{color:var(--success)}.it-admin-check-notes{font-size:13px;color:var(--text-muted);margin-top:8px;word-break:break-word}.it-admin-check-actions{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.form-group label.it-admin-checkbox{display:flex;align-items:center;gap:10px;margin-bottom:0;font-size:14px;font-weight:500;color:var(--text);cursor:pointer}.it-admin-checkbox input[type=checkbox]{width:16px;height:16px;min-width:16px;margin:0;padding:0;flex-shrink:0;accent-color:var(--accent)}.it-admin-toast{position:fixed;bottom:24px;right:24px;background:var(--text);color:#fff;padding:12px 18px;border-radius:8px;font-size:14px;z-index:200;box-shadow:var(--shadow)}.it-admin-board-page{display:flex;flex-direction:column;flex:1;min-height:0}.it-admin-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;flex:1;min-height:0;align-items:stretch}.it-admin-board-column{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;min-height:0;box-shadow:var(--shadow);overflow:hidden}.it-admin-board-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);flex-shrink:0;min-height:62px;box-sizing:border-box}.it-admin-board-header h3{margin:0;font-size:15px;font-weight:600;line-height:1.3;flex:1;min-width:0}.it-admin-board-header-actions{display:flex;gap:4px;flex-wrap:nowrap;flex-shrink:0;min-width:172px;min-height:38px;align-items:center;justify-content:flex-end}.it-admin-board-btn{min-width:38px;height:38px;padding:0 10px;justify-content:center;flex-shrink:0}.it-admin-board-search-wrap{padding:10px 14px 12px;flex-shrink:0;border-bottom:1px solid var(--border)}.it-admin-board-search{font-size:13px;padding:8px 12px;width:100%;box-sizing:border-box}.it-admin-board-desc{padding:8px 14px 10px;font-size:12px;color:var(--text-muted);line-height:1.4;border-bottom:1px solid var(--border);flex-shrink:0;min-height:44px;display:flex;align-items:flex-start;box-sizing:border-box}.it-admin-drop-zone{flex:1;min-height:120px;overflow-y:auto;padding:8px 12px 12px;margin:0 8px 8px;border-radius:8px;border:2px dashed transparent;transition:border-color .15s,background .15s}.it-admin-drop-zone.nested{margin:0;min-height:80px}.it-admin-drop-zone.drag-over{border-color:var(--accent);background:#2563eb0f}.it-admin-board-column-body{flex:1;min-height:0;overflow-y:auto;padding:8px 12px 12px;display:flex;flex-direction:column;gap:12px}.it-admin-setting-item{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:6px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .15s,box-shadow .15s}.it-admin-setting-item.draggable{cursor:grab}.it-admin-setting-item.draggable:active,.it-admin-setting-item.dragging{cursor:grabbing}.it-admin-setting-item:hover{border-color:var(--accent)}.it-admin-setting-item.selected{border-color:var(--accent);box-shadow:0 0 0 2px #2563eb26}.it-admin-setting-item.hidden-item{opacity:.55}.it-admin-setting-item.readonly{cursor:default;opacity:.85}.it-admin-setting-item.dragging{opacity:.5}.it-admin-setting-title{font-size:14px;font-weight:500}.it-admin-setting-meta{font-size:11px;color:var(--text-muted);margin-top:4px}.it-admin-empty-inline{color:var(--text-muted);font-size:13px;padding:12px 4px;text-align:center}.it-admin-position-list{display:flex;flex-direction:column;gap:4px}.it-admin-position-list.drag-over{outline:2px dashed rgba(37,99,235,.35);outline-offset:2px;border-radius:8px}.it-admin-position-row{display:flex;align-items:center;gap:8px;border-radius:8px;border:1px solid transparent;cursor:grab;-webkit-user-select:none;user-select:none}.it-admin-position-row:active,.it-admin-position-row.dragging{cursor:grabbing}.it-admin-position-row.dragging{opacity:.55}.it-admin-position-row.active{border-color:var(--accent);background:#2563eb0f}.it-admin-position-btn{flex:1;text-align:left;background:transparent;padding:10px 12px;font-size:14px;color:var(--text)}.it-admin-position-count{font-size:12px;color:var(--text-muted);padding-right:10px}.it-admin-position-panel{border-top:1px solid var(--border);padding-top:12px}.it-admin-position-panel-title{font-weight:600;font-size:14px;margin-bottom:10px;padding:0 4px}.it-admin-board-section{margin-bottom:12px}@media(max-width:1100px){.it-admin-board{grid-template-columns:1fr}}@media(max-width:900px){.it-admin-module{grid-template-columns:1fr}.it-admin-sidebar{flex-direction:row;flex-wrap:wrap;align-items:center}.it-admin-nav{flex-direction:row;flex-wrap:wrap;flex:1}.it-admin-info-card{margin-top:0;width:100%}}.montage-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.montage-tab{border:1px solid var(--border);background:var(--surface);color:var(--text);padding:6px 12px;border-radius:8px;font:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.montage-tab:hover{background:var(--surface2)}.montage-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.montage-scope-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23647089' d='M1.4 0L6 4.6 10.6 0 12 1.4 6 7.4 0 1.4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;min-height:40px;cursor:pointer;width:auto;max-width:100%}.montage-scope-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3b82f633;outline:none}.montage-back-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;width:auto;min-height:40px;padding:8px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.montage-back-btn svg{flex-shrink:0;color:var(--accent)}.montage-back-btn:hover{background:#eff6ff;border-color:#bfdbfe;color:var(--accent)}.montage-back-btn:hover svg{color:var(--accent)}.montage-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}.montage-stats--two{grid-template-columns:repeat(2,minmax(0,1fr))}.montage-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.montage-stat-value{font-size:28px;font-weight:700;line-height:1.1;color:var(--text)}.montage-stat-label{margin-top:6px;color:var(--text-muted);font-size:13px}.montage-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:#dbeafe;color:var(--accent);font-size:11px;font-weight:600;vertical-align:middle}.montage-recent-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.montage-recent-header h3{margin-bottom:4px}.montage-recent-row{position:relative;flex-direction:column;align-items:stretch;gap:0}.montage-recent-main{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:0;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}.montage-recent-main.has-view-label{padding-right:7.5em}.montage-report-delete{flex-shrink:0;align-self:flex-end;margin-top:8px}.montage-recent-main:disabled{cursor:default;opacity:1}.montage-recent-date{color:var(--text-muted);font-size:12px}.montage-view-label{position:absolute;top:14px;right:18px;margin:0;padding:0;border:none;background:none;color:var(--danger);font:inherit;font-size:11px;font-weight:600;line-height:1.2;cursor:pointer;white-space:nowrap}.montage-view-label.is-viewed{color:var(--success)}.montage-view-label:hover{text-decoration:underline}.montage-row-btn{width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit;gap:10px}.montage-row-btn:hover{background:var(--surface2)}.montage-row-btn--static,.montage-row-btn--static:hover{cursor:default;background:var(--surface)}.montage-breadcrumb{font-weight:600;color:var(--text);display:flex;align-items:center;flex-wrap:wrap;gap:4px}.montage-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.montage-photo-thumb{aspect-ratio:1;border:1px solid var(--border);border-radius:10px;overflow:hidden;padding:0;background:var(--surface2);cursor:pointer}.montage-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.montage-photo-thumb--empty{display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:default}.montage-description{white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,Consolas,monospace;font-size:13px;line-height:1.45;margin:0;max-height:480px;overflow:auto;background:var(--surface2);border-radius:8px;padding:12px 14px}.it-admin-muted{color:var(--text-muted);font-size:14px}.role-badge--muted{opacity:.65}@media(max-width:700px){.montage-stats{grid-template-columns:1fr}}.montage-suggest,.montage-suggest-wrap{position:relative}.montage-suggest-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);max-height:240px;overflow:auto}.montage-suggest-item{width:100%;text-align:left;border:0;background:transparent;color:var(--text);font:inherit;font-size:14px;padding:8px 10px;border-radius:8px;cursor:pointer}.montage-suggest-item:hover{background:var(--surface2)}.montage-suggest-empty{padding:8px 10px;color:var(--text-muted);font-size:13px}.montage-suggest-hint{margin-top:6px;font-size:12px;color:var(--text-muted)}.montage-admin-tools{margin-bottom:16px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.montage-admin-tools>summary{cursor:pointer;font-weight:600;color:var(--text-muted);font-size:13px}.montage-upload-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:12px}.montage-upload-item{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}.montage-upload-preview{display:block;width:100%;aspect-ratio:1;padding:0;border:0;background:var(--surface2);cursor:pointer}.montage-upload-preview img{width:100%;height:100%;object-fit:cover;display:block}.montage-upload-meta{display:flex;flex-direction:column;gap:8px;padding:8px}.montage-upload-name{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.montage-file-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.montage-file-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:13px}.file-upload-control{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.file-upload-control__label-text{display:block;font-size:13px;font-weight:500;color:var(--text-muted);margin-bottom:6px}.file-upload-control__btn{position:relative;cursor:pointer;margin:0}.file-upload-control__input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0}.file-upload-control__status{color:var(--text-muted);font-size:13px}.montage-upload-preview-wrap{position:relative}.montage-upload-remove{position:absolute;top:6px;right:6px;width:28px;height:28px;border:none;border-radius:8px;background:#1a1f2eb8;color:#fff;font-size:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;z-index:2}.montage-upload-remove:hover{background:var(--danger)}.montage-upload-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-muted)}.app-scroll-spacer{display:none}.archives-page-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border)}.archives-page-header p{margin:6px 0 0;color:var(--text-muted)}.archives-page-header h2{margin:0;letter-spacing:0}.archives-availability{flex:0 0 auto;display:flex;align-items:baseline;gap:6px;min-height:36px;padding:7px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--text-muted);font-size:13px}.archives-availability strong{color:var(--text);font-size:16px}.archives-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.archive-item{min-width:0;min-height:86px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);text-decoration:none;box-shadow:none;transition:border-color .15s ease,background .15s ease}.archive-item:hover{border-color:var(--accent);background:#f8fbff}.archive-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.archive-item.is-disabled{background:var(--surface2);box-shadow:none;cursor:not-allowed}.archive-item-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:8px;border:1px solid #d9e5ff;background:#eef4ff;color:var(--accent);font-size:13px;font-weight:700}.archive-item.is-disabled .archive-item-icon{background:#eceff3;color:var(--text-muted)}.archive-item-content{min-width:0}.archive-item-content h3{margin:0 0 4px;font-size:15px;line-height:1.3;letter-spacing:0}.archive-item-content p{margin:0;color:var(--text-muted);font-size:13px;line-height:1.45}.archive-item-status{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:12px;font-weight:500;white-space:nowrap}.archive-item-status.is-available{color:var(--accent);font-weight:600}.archives-report-page{display:flex;flex-direction:column;overflow:hidden;padding:0}.archives-report-frame-wrap{flex:1;min-height:0;height:auto;overflow:hidden;border:0;border-radius:0;background:var(--surface2)}.archives-report-frame{display:block;width:100%;height:100%;border:0;background:#fff}@media(max-width:900px){.archives-grid{grid-template-columns:1fr}}@media(max-width:600px){.archives-page-header{align-items:stretch;flex-direction:column;gap:8px}.archives-availability{align-self:flex-start;padding-top:0}.archive-item{grid-template-columns:36px minmax(0,1fr);min-height:0;padding:14px}.archive-item-icon{width:36px;height:36px}.archive-item-status{grid-column:2}.archives-report-frame-wrap{min-height:0}}@media(max-width:768px){.admin-access-grid{grid-template-columns:1fr}.admin-access-disclosure summary{grid-template-columns:auto minmax(0,1fr) auto}.project-member-grid{grid-template-columns:1fr}:root{--header-safe-top: env(safe-area-inset-top, 0px);--header-bar-h: 48px;--header-to-nav-gap: 12px}html.mobile-preview{--header-safe-top: 54px}html,body{height:100%;height:100dvh;overflow:hidden;scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}body{font-size:14px}#root{height:100%;overflow:hidden}.app-layout{position:relative;height:100%;display:flex;flex-direction:column;overflow:hidden;padding-top:0}.app-layout:before{content:"";position:absolute;top:0;left:0;right:0;z-index:20;pointer-events:none;height:calc(var(--header-safe-top) + 20px);background:linear-gradient(to bottom,var(--bg) 0%,var(--bg) 60%,transparent 100%)}.app-layout>.main-content{flex:1;min-height:0;display:flex;flex-direction:column;gap:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-width:none;-ms-overflow-style:none;padding-top:0}.app-layout>.header{flex-shrink:0}.app-layout>.main-content:has(.dept-nav-mobile){gap:var(--header-to-nav-gap)}.app-layout>.main-content::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}.header{position:relative;top:auto;left:auto;right:auto;background:transparent;border-bottom:none;box-shadow:none;padding:calc(var(--header-safe-top) + 18px) max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left));margin-bottom:0;flex-shrink:0;height:auto;min-height:0;box-sizing:border-box;align-items:center;z-index:110;transform:none;opacity:1;pointer-events:auto}.header-brand{font-size:17px;gap:8px;font-weight:700}.header-context{gap:7px}.header-context-separator{font-size:14px}.header-context-link,.header-context-current{font-size:13px}.department-page-content.archives-report-page{padding:0}.header-brand svg{display:block;width:24px;height:24px}.header-actions{display:flex;gap:2px}.header-menu-btn{display:inline-flex}.header-menu-btn:hover{background:#ffffff8c}.header-bell-slot{display:block}.header-nav--desktop{display:none!important}.header-nav-bell{display:none}.notification-bell-btn:hover{background:#ffffff8c}.header-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;width:auto;height:auto;z-index:200;background:#0f172a73;border:none;border-radius:0;padding:0;margin:0;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.header-nav--mobile{display:none;position:fixed;top:calc(var(--header-safe-top) + 56px);right:max(12px,env(safe-area-inset-right));left:auto;width:min(280px,calc(100vw - 24px));flex-direction:column;align-items:stretch;gap:4px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 32px #1018282e;z-index:210}.header-nav--mobile.is-open{display:flex}.header-mobile-sections{display:flex;flex-direction:column;gap:2px;padding-bottom:10px;border-bottom:1px solid var(--border)}.header-mobile-menu-label{padding:2px 10px 6px;color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase}.header-mobile-section-link{width:100%;min-height:40px;display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:var(--text);font-size:14px;font-weight:500;text-decoration:none}.header-mobile-section-link:hover{background:var(--surface2)}.header-mobile-section-link.active{background:#eff6ff;color:var(--accent)}.header-mobile-section-link svg{flex:0 0 auto}.header-nav--mobile .btn{width:100%;justify-content:flex-start;padding:12px 14px;font-size:15px}.header-nav--mobile .header-admin-btn{width:100%;min-width:0;height:40px;padding:9px 10px;align-self:stretch;justify-content:flex-start;gap:10px;font-size:14px}.header-nav--mobile .header-admin-label{display:inline}.header-nav--mobile .header-user{flex-direction:column;align-items:stretch;gap:8px;margin-top:4px;padding-top:10px;border-top:1px solid var(--border)}.header-nav--mobile .header-user-name{max-width:none;white-space:normal;font-size:13px;padding:0 4px}.notification-panel{position:fixed;top:calc(var(--header-safe-top) + var(--header-bar-h) + 4px);left:12px;right:12px;width:auto;max-height:min(70vh,480px);z-index:130}.main-content{padding:10px 10px calc(16px + env(safe-area-inset-bottom));max-width:none}.main-content--it-admin{padding:10px 10px calc(16px + env(safe-area-inset-bottom));min-height:0}.department-page-content{padding:12px 14px 14px}.department-page-content .page-header{margin-bottom:12px;padding:0}.department-page-content .page-header h2{font-size:20px;font-weight:700;margin:0}.login-page{height:100%;min-height:100%;min-height:100dvh;box-sizing:border-box;padding:max(16px,var(--header-safe-top, env(safe-area-inset-top, 0px))) 16px max(16px,env(safe-area-inset-bottom,0px));align-items:center;justify-content:center}.login-card{padding:28px 20px;border-radius:14px;max-width:none;width:100%}.login-card h1{font-size:22px}.page-header{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:16px}.page-header h2{font-size:20px}.page-header .btn{width:100%;justify-content:center}.page-header .project-create-btn{width:auto;align-self:flex-end}.projects-page-header{width:100%;flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.projects-page-header .project-create-btn{align-self:auto}.project-card{flex-direction:column;align-items:stretch;gap:10px;padding:12px;margin:0}.project-card-info{width:100%}.project-card-title{font-size:15px}.project-card-metrics{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:8px}.project-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.project-card-actions .btn,.project-card-actions a.btn{width:100%;justify-content:center;border-radius:8px}.project-card-progress{display:flex;align-items:center;justify-content:center;gap:10px;width:100%}.project-card-progress--under-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center}.project-card-progress--under-actions .project-card-metric-slot{min-width:0}.project-card-metrics .metric-count,.project-card-progress .metric-count,.project-card-progress .metric-percent{min-width:0;text-align:center;font-size:14px}.project-card-progress .progress-ring{flex-shrink:0}.form-card,.admin-form{padding:16px 14px;overflow-x:hidden}.project-form-section-toggle{min-height:36px}.project-form-section-actions>.btn{flex:0 0 auto;padding:6px 10px}.admin-users-header{flex-wrap:wrap}.admin-filters-panel{left:auto;right:0;width:min(280px,calc(100vw - 28px))}.form-card:has(.admin-filters-wrap.is-open),.admin-form:has(.admin-filters-wrap.is-open){overflow:visible}.admin-group-row{flex-direction:column;align-items:stretch}.admin-users-desktop{display:none}.admin-user-list{display:block}.admin-users-header:has(.admin-detail-back){justify-content:space-between;align-items:center;gap:8px}.admin-detail-back{margin-left:auto}.admin-user-list-side .role-badge{max-width:min(42vw,150px);white-space:normal;text-align:right;line-height:1.25}.admin-actions{flex-wrap:wrap;justify-content:flex-start}.modal-overlay{padding:12px;align-items:flex-end}.modal{width:100%;max-width:none;max-height:min(92vh,100%);border-radius:16px 16px 0 0}.modal--narrow{max-width:none}.modal-overlay--fullscreen{padding:0;align-items:stretch;justify-content:stretch;background:var(--bg);z-index:400;overflow:hidden}.modal-overlay--fullscreen:before{content:"";position:absolute;top:0;left:0;right:0;z-index:20;pointer-events:none;height:calc(var(--header-safe-top, env(safe-area-inset-top, 0px)) + 20px);background:linear-gradient(to bottom,var(--bg) 0%,var(--bg) 60%,transparent 100%)}.modal-overlay--fullscreen .modal--fullscreen{width:100%;max-width:none;max-height:none;height:100%;height:100dvh;min-height:100%;min-height:100dvh;border-radius:0;border:none;box-shadow:none;display:block;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:none;animation:modalFullscreenIn .22s ease}.modal-overlay--fullscreen .modal--fullscreen::-webkit-scrollbar{display:none}@keyframes modalFullscreenIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.modal-overlay--fullscreen .modal-header{display:flex;flex-direction:column;align-items:stretch;padding:calc(12px + var(--header-safe-top, env(safe-area-inset-top, 0px))) 14px 14px;gap:14px}.modal-overlay--fullscreen .modal-header h3{font-size:17px;padding-right:40px}.modal-overlay--fullscreen .modal-header-main{width:100%}.modal-overlay--fullscreen .modal-header-desc-toggle{display:inline-flex;align-items:center;gap:6px;margin:0;padding:0;border:none;background:transparent;color:var(--accent);font:inherit;font-size:13px;font-weight:500;cursor:pointer}.modal-overlay--fullscreen .modal-header-desc-chevron{font-size:11px;line-height:1;transition:transform .15s ease}.modal-overlay--fullscreen .modal-header-desc-chevron.is-open{transform:rotate(180deg)}.modal-overlay--fullscreen .modal-header-desc{display:none;margin-top:6px}.modal-overlay--fullscreen .modal-header-desc.is-expanded{display:block}.modal-overlay--fullscreen .modal-header-metrics{width:100%;justify-content:center;padding-right:0;gap:0}.modal-overlay--fullscreen .modal-header-metrics .metric-percent{font-size:24px}.modal-overlay--fullscreen .modal-close{top:calc(10px + var(--header-safe-top, env(safe-area-inset-top, 0px)));right:max(12px,env(safe-area-inset-right,0px))}.modal-overlay--fullscreen .modal-body{overflow:visible;padding:14px 12px calc(20px + env(safe-area-inset-bottom,0px))}.modal-overlay--fullscreen .modal-body .form-actions{flex-direction:column;gap:8px}.modal-overlay--fullscreen .modal-body .form-actions .btn{width:100%;justify-content:center}.modal-overlay--fullscreen .modal-body textarea{min-height:160px}.modal-overlay--fullscreen .copy-field{grid-template-columns:1fr}.modal-overlay--fullscreen .copy-field__btn{width:100%;justify-content:center}.modal-overlay--fill-body .modal--fill-body{display:flex;flex-direction:column;overflow:hidden}.modal-overlay--fill-body .modal-body{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.main-content--it-admin,.observer-main,.department-content,.it-admin-main{overflow:visible;flex:none;min-height:0;height:auto}.it-admin-main.observer-main{overflow:hidden}.observer-main>.it-admin-module,.department-content>.it-admin-module{flex:none}.it-admin-sidebar.dept-sidebar,.dept-sidebar{flex:none;align-self:start;width:100%;height:auto!important;min-height:0!important;max-height:none;flex-direction:column;align-items:stretch;padding:6px 8px;gap:0;overflow:visible;position:relative;top:auto;z-index:1;margin:0 0 6px;background:var(--surface)}.dept-sidebar--primary{display:none}.dept-sidebar:has(.dept-nav-mobile.is-open){z-index:90}.dept-sidebar--mobile-hidden{display:none}.it-admin-module:not(:has(.dept-nav-mobile)) .montage-page-title--dept{display:flex}.it-admin-module.observer-module,.it-admin-module{grid-template-columns:1fr;gap:4px;align-items:start;align-content:start;justify-content:start;grid-auto-rows:max-content;overflow:visible;flex:0 0 auto;min-height:0!important;height:auto!important;margin-top:0}.it-admin-crumb{display:none}.it-admin-content.department-page-content,.department-page-content{padding:12px 14px 14px}.department-page-content .montage-tabs{margin-bottom:12px}.observer-module .it-admin-content{flex:none}.dept-nav-desktop{display:none}.dept-nav-mobile{display:block;position:relative;z-index:31}.dept-nav-mobile.is-open{z-index:80}.dept-nav-mobile-label{display:none}.dept-nav-select{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--text);font:inherit;font-size:14px;font-weight:500;text-align:left}.dept-nav-select:hover{border-color:#c8ced8}.dept-nav-select-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dept-nav-select-chevron{flex-shrink:0;color:var(--text-muted);font-size:12px;line-height:1;transition:transform .15s ease}.dept-nav-select-chevron.is-open{transform:rotate(180deg)}.dept-nav-dropdown{position:absolute;z-index:50;top:calc(100% + 4px);left:0;right:0;display:flex;flex-direction:column;gap:2px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #1018282e}.dept-nav-dropdown-item{display:block;width:100%;padding:10px 12px;border:none;border-radius:8px;background:transparent;color:var(--text);text-decoration:none;text-align:left;font:inherit;font-size:14px;font-weight:500;cursor:pointer}.dept-nav-dropdown-item:hover{background:var(--surface2)}.dept-nav-dropdown-item.active{background:#eff6ff;color:var(--accent)}.it-admin-info-card{display:none}.it-admin-content{padding:12px}.it-admin-toolbar{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}.it-admin-search{max-width:none;min-width:0;width:100%}.it-admin-toolbar>.btn{flex:0 0 auto}.it-admin-toolbar .search-popover{margin-left:0}.it-admin-toolbar select,.it-admin-toolbar .montage-scope-select{width:auto;flex:0 0 auto;min-width:140px}.it-admin-content,.it-admin-main,.department-content,.it-admin-module{max-width:100%;overflow-x:hidden;box-sizing:border-box}.it-admin-content .page-header{margin-bottom:12px}.it-admin-content .page-header h2{font-size:20px;word-break:break-word}.it-admin-check-item{flex-direction:column;align-items:stretch;gap:10px;padding:12px 14px;margin-bottom:10px}.it-admin-check-item>div:first-child{min-width:0;width:100%}.it-admin-check-title{font-size:14px;line-height:1.35;word-break:break-word}.it-admin-check-actions{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}.it-admin-check-actions .btn{width:100%;min-height:40px;justify-content:center;box-sizing:border-box}.it-admin-section-title{font-size:12px;margin:14px 0 8px}input,textarea,select{font-size:16px}.observer-collapsible-header-row{border-radius:var(--radius) var(--radius) 0 0}.observer-collapsible:not(.open) .observer-collapsible-header-row{border-radius:var(--radius)}html.mobile-preview .search-overlay{padding-top:max(16px,var(--header-safe-top, 54px))}.search-overlay-card{max-width:none;border-radius:16px}.it-admin-row{flex-direction:column;align-items:stretch;gap:10px;padding:12px 14px}.it-admin-row.montage-recent-row{gap:0}.montage-view-label{top:12px;right:14px}.it-admin-row>.it-admin-muted{align-self:flex-start;font-size:12px}.it-admin-row-actions{display:grid;width:100%;grid-template-columns:32px 1fr 1fr;grid-template-rows:auto auto}.it-admin-row-actions .btn:nth-child(1){grid-column:1;grid-row:1}.it-admin-row-actions .btn:nth-child(2){grid-column:2;grid-row:1}.it-admin-row-actions .btn:nth-child(3){grid-column:3;grid-row:1}.it-admin-row-actions .btn:nth-child(4){grid-column:1 / 3;grid-row:2}.it-admin-row-actions .btn:nth-child(5){grid-column:3;grid-row:2}.it-admin-row-actions--compact{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto}.it-admin-row-actions--compact .btn:nth-child(n){grid-column:auto;grid-row:auto}.it-admin-row-actions .btn{white-space:normal;height:auto;min-height:32px;padding:6px 10px}.montage-tabs{flex-wrap:nowrap;overflow-x:auto;gap:8px;margin-bottom:14px;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.montage-tabs::-webkit-scrollbar{display:none}.montage-tab{flex:0 0 auto;padding:6px 12px;font-size:13px}.montage-stats,.montage-stats--two{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.montage-stat-card{padding:14px}.montage-stat-value{font-size:24px}.montage-photo-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.montage-breadcrumb{font-size:14px;gap:2px;width:100%}.montage-back-btn{width:100%;justify-content:flex-start;min-height:42px;padding:10px 14px}.it-admin-toolbar:has(.montage-back-btn){flex-direction:column;align-items:stretch}.montage-file-row{flex-direction:column;align-items:stretch;gap:8px}.montage-upload-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.file-upload-control{flex-direction:column;align-items:stretch}.file-upload-control .btn,.file-upload-control__btn{width:100%;justify-content:center}.form-actions{flex-direction:column}.form-actions .btn{width:100%;justify-content:center}.observer-collapsible-header,.observer-position-header{gap:8px}.observer-section-header{flex-direction:column;align-items:stretch;gap:10px}.empty-state{padding:40px 16px}.image-lightbox__toolbar{flex-wrap:wrap;justify-content:center}}
