:root{--primary:#0A1628;--accent:#2962FF;--grad-start:#2962FF;--grad-mid:#7C3AED;--grad-end:#EC4899;--bg:#F0F2F5;--card:#FFFFFF;--text:#0A1628;--text2:#64748B;--text3:#94A3B8;--border:#E2E8F0;--success:#22C55E;--danger:#EF4444;--warning:#F59E0B}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{height:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}body{height:100%;overflow-x:hidden;font-family:Inter,system-ui,-apple-system,sans-serif;background:#e2e8f0;color:var(--text);-webkit-font-smoothing:antialiased}#app{max-width:480px;width:100%;margin:0 auto;min-height:100vh;min-height:100dvh;background:var(--bg);position:relative;padding-bottom:80px;overflow-x:hidden;box-shadow:0 0 40px rgba(10,22,40,.08)}#app.no-pad{padding-bottom:0;min-height:100vh;min-height:100dvh}.app-bar{position:sticky;top:0;z-index:20;background:var(--primary);color:#fff;padding:14px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 1px 8px rgba(0,0,0,.08)}.app-bar h1{font-size:18px;font-weight:600;flex:1;min-width:0;letter-spacing:-.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-bar .icon-btn{background:0 0;border:none;color:#fff;cursor:pointer;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:22px;transition:background .15s;flex-shrink:0}.app-bar .icon-btn:hover{background:rgba(255,255,255,.12)}.content{padding:16px}.content.tight{padding:8px}.card{background:var(--card);border-radius:20px;box-shadow:0 4px 16px rgba(41,98,255,.06);padding:16px;margin-bottom:12px}.card.plain{padding:0;overflow:hidden}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;height:54px;border:none;border-radius:16px;font-family:inherit;font-size:16px;font-weight:600;cursor:pointer;transition:transform .08s,box-shadow .15s;padding:0 24px}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:#fff}.btn-gradient{background:linear-gradient(90deg,var(--grad-start),var(--grad-mid));color:#fff;box-shadow:0 8px 20px rgba(41,98,255,.3)}.btn-outline{background:0 0;color:var(--accent);border:1.5px solid var(--accent)}.btn-danger{background:var(--danger);color:#fff}.btn-success{background:var(--success);color:#fff}.btn-warn{background:#fbbf24;color:#0a1628}.btn-ghost{background:0 0;color:var(--accent);height:auto;padding:8px 12px;font-weight:500}.btn-sm{height:44px;font-size:14px;border-radius:12px}.btn[disabled]{opacity:.6;pointer-events:none}.field{margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:600;color:var(--text);margin-bottom:6px}.input{width:100%;height:54px;padding:0 16px;border:1px solid var(--border);border-radius:14px;background:#fff;font-family:inherit;font-size:15px;color:var(--text);outline:0;transition:border .15s,box-shadow .15s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(41,98,255,.12)}.input::placeholder{color:var(--text3)}textarea.input{height:auto;min-height:88px;padding:14px 16px;resize:vertical;line-height:1.4}select.input{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2364748B'><path d='M7 10l5 5 5-5z'/></svg>");background-repeat:no-repeat;background-position:right 12px center;background-size:24px;padding-right:44px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.check{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px;cursor:pointer}.check input{appearance:none;width:22px;height:22px;min-width:22px;border:1.5px solid var(--border);border-radius:6px;background:#fff;cursor:pointer;margin-top:1px;transition:background .15s,border .15s;position:relative}.check input:checked{background:var(--accent);border-color:var(--accent)}.check input:checked::after{content:"";position:absolute;left:6px;top:2px;width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.check .label{font-size:13.5px;color:var(--text);line-height:1.4;min-width:0}.check .link{color:var(--accent);text-decoration:underline;font-size:12.5px;cursor:pointer;display:block;margin-top:2px}.status{text-align:center;font-size:14px;margin-top:12px;color:var(--text2)}.status.ok{color:var(--success)}.status.err{color:var(--danger)}.login{padding:32px 24px}.login-logo{width:90px;height:90px;border-radius:50%;background:linear-gradient(135deg,var(--grad-start),var(--grad-mid),var(--grad-end));display:grid;place-items:center;margin:0 auto 20px;box-shadow:0 10px 40px rgba(41,98,255,.35)}.login-logo .material-icons{font-size:45px;color:#fff}.login h2{text-align:center;font-size:30px;font-weight:700;letter-spacing:-.5px;margin-bottom:6px}.login .sub{text-align:center;font-size:15px;color:var(--text2);margin-bottom:28px}.login .section-title{font-size:15px;font-weight:600;margin-bottom:12px}.hero{background:linear-gradient(135deg,var(--primary),var(--accent));border-radius:16px;padding:20px;color:#fff;display:flex;gap:12px;align-items:center;margin-bottom:20px}.hero .avatar{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.15);display:grid;place-items:center;flex-shrink:0}.hero .avatar .material-icons{font-size:28px;color:#fff}.hero>div:last-child{min-width:0;flex:1}.hero h3{font-size:20px;font-weight:700;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero p{font-size:13.5px;color:rgba(255,255,255,.75);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats{display:flex;gap:10px;margin-bottom:20px}.stat{flex:1;min-width:0;background:#fff;border-radius:14px;padding:14px 8px;text-align:center;box-shadow:0 4px 16px rgba(41,98,255,.06)}.stat .material-icons{font-size:26px;margin-bottom:4px}.stat .val{font-size:18px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis}.stat .lbl{font-size:11.5px;color:var(--text2);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat.i-green .material-icons{color:var(--success)}.stat.i-orange .material-icons{color:var(--warning)}.stat.i-blue .material-icons{color:var(--accent)}.expander{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 16px rgba(41,98,255,.06);margin-bottom:10px}.exp-header{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;user-select:none}.exp-header .ico{width:40px;height:40px;border-radius:10px;background:rgba(41,98,255,.1);display:grid;place-items:center;flex-shrink:0}.exp-header .ico .material-icons{color:var(--accent);font-size:20px}.exp-header .ico.warn{background:rgba(245,158,11,.1)}.exp-header .ico.warn .material-icons{color:var(--warning)}.exp-header .txt{flex:1;min-width:0}.exp-header .txt h4{font-size:15px;font-weight:600;color:var(--text);margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exp-header .txt p{font-size:12px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exp-header .chev{color:var(--text3);transition:transform .2s;flex-shrink:0}.expander.open .exp-header .chev{transform:rotate(180deg)}.exp-body{display:none;padding:0 16px 12px}.expander.open .exp-body{display:block}.news-item{background:#fff;border-radius:16px;padding:14px 16px;box-shadow:0 4px 16px rgba(41,98,255,.06);margin-bottom:10px;cursor:pointer;transition:transform .1s}.news-item:active{transform:scale(.99)}.news-item h4{font-size:15px;font-weight:600;color:var(--text);margin-bottom:4px;word-break:break-word}.news-item p{font-size:13.5px;color:var(--text2);line-height:1.45;margin-bottom:8px;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.news-item .meta{display:flex;gap:14px;font-size:11.5px;color:var(--text3);align-items:center;flex-wrap:wrap}.news-item .meta .material-icons{font-size:13px;vertical-align:-2px;margin-right:2px}.empty{text-align:center;padding:60px 20px;color:var(--text2)}.empty .material-icons{font-size:64px;color:#cbd5e1;margin-bottom:12px;display:block}.empty h4{font-size:16px;font-weight:500;color:var(--text2);margin-bottom:6px}.empty p{font-size:13px;color:var(--text3)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;margin:0 auto;width:100%;max-width:480px;background:#fff;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border);z-index:30;box-shadow:0 -4px 20px rgba(0,0,0,.04);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{background:0 0;border:none;padding:10px 4px 12px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;font-family:inherit;color:var(--text3);font-size:11px;font-weight:500;transition:color .15s;min-width:0}.bottom-nav button .material-icons{font-size:24px}.bottom-nav button.active{color:var(--accent);font-weight:600}.bottom-nav button span:not(.material-icons){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.avatar-big{width:100px;height:100px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent));display:grid;place-items:center;margin:0 auto 10px}.avatar-big .material-icons{font-size:56px;color:#fff}.role-title{text-align:center;font-size:17px;font-weight:600;margin-bottom:20px}.info-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:14px}.info-row .k{color:var(--text2);flex-shrink:0}.info-row .v{font-weight:500;color:var(--text);text-align:right;word-break:break-word;min-width:0}.tabs{display:flex;background:var(--primary);padding:0;overflow-x:auto;position:sticky;top:56px;z-index:19;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar{display:none}.tabs button{flex:1;background:0 0;border:none;color:rgba(255,255,255,.6);padding:12px 8px;font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s;white-space:nowrap}.tabs button.active{color:#fff;border-color:var(--accent)}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center}.stat-grid .cell{padding:8px 4px;min-width:0}.stat-grid .cell .em{font-size:24px;display:block;margin-bottom:4px}.stat-grid .cell .val{font-size:16px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis}.stat-grid .cell .lbl{font-size:11px;color:var(--text2);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item{background:#fff;border-radius:14px;padding:12px 14px;box-shadow:0 2px 10px rgba(41,98,255,.05);margin-bottom:8px;display:flex;gap:12px;align-items:flex-start}.list-item .lead{flex-shrink:0;padding-top:2px}.list-item .lead .material-icons{font-size:22px;color:var(--accent)}.list-item .lead.red .material-icons{color:var(--danger)}.list-item .lead.green .material-icons{color:var(--success)}.list-item .lead.orange .material-icons{color:var(--warning)}.list-item .body{flex:1;min-width:0}.list-item .body .title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:3px;word-break:break-all}.list-item .body .line{font-size:12.5px;color:var(--text2);line-height:1.4;word-break:break-word}.list-item .actions{display:flex;gap:4px;flex-shrink:0}.list-item .actions button{background:0 0;border:none;width:36px;height:36px;border-radius:8px;cursor:pointer;display:grid;place-items:center;transition:background .15s}.list-item .actions button:hover{background:rgba(0,0,0,.04)}.list-item .actions button .material-icons{font-size:20px}.list-item .actions .del .material-icons{color:var(--danger)}.list-item .actions .block .material-icons{color:var(--danger)}.list-item .actions .unblock .material-icons{color:var(--success)}#modal-root .backdrop{position:fixed;inset:0;background:rgba(10,22,40,.55);display:grid;place-items:center;z-index:100;padding:20px;animation:fadeIn .15s}@keyframes fadeIn{from{opacity:0}to{opacity:1}}#modal-root .modal{background:#fff;border-radius:20px;max-width:440px;width:100%;max-height:88vh;overflow-y:auto;padding:20px;animation:pop .18s cubic-bezier(.2,.9,.3,1.1)}@keyframes pop{from{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}#modal-root .modal h3{font-size:18px;font-weight:700;margin-bottom:14px;color:var(--text)}#modal-root .modal .m-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}#modal-root .modal .m-actions .btn{width:auto;min-width:100px;height:44px;padding:0 18px;font-size:14px;border-radius:12px}#toast{position:fixed;left:50%;bottom:100px;transform:translateX(-50%) translateY(20px);background:var(--primary);color:#fff;padding:12px 20px;border-radius:14px;font-size:14px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:200;max-width:calc(100vw - 40px);text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.2)}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}#toast.ok{background:var(--success)}#toast.err{background:var(--danger)}.loader{width:36px;height:36px;border:3px solid rgba(41,98,255,.2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.center-box{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;gap:16px}@media (min-width:481px){body{background:#e2e8f0}#app{border-radius:0}.bottom-nav{border-radius:0}}