*{box-sizing:border-box}body,html{margin:0}body{background:#f6f8fa;font-family:Inter,system-ui,sans-serif;color:#1c2430;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:#2496c0;text-decoration:none}a:hover{color:#1a6e8e}button,input,select,textarea{font-family:inherit;color:inherit;font-size:14px}h1,h2,h3{margin:0;letter-spacing:-.02em}.input,.select{width:100%;border:1px solid #dfe3e9;border-radius:10px;padding:11px 12px;background:#fff;min-height:44px}.input:focus,.select:focus{outline:2px solid #2496c0;outline-offset:0;border-color:#2496c0}.label{display:flex;flex-direction:column;font-size:12.5px;color:#4a5361}.btn,.label{gap:6px;font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:10px 18px;font-size:13.5px;cursor:pointer;border:1px solid #dfe3e9;background:#fff;color:#1c2430;min-height:42px;white-space:nowrap}.btn-primary,.btn:hover{border-color:#2496c0}.btn-primary{background:#2496c0;color:#fff}.btn-primary:hover{background:#1f86ad;border-color:#1f86ad;color:#fff}.btn-danger{color:#c0392b}.btn:disabled{opacity:.6;cursor:default}.alert{border-radius:12px;padding:11px 14px;font-size:13.5px;font-weight:600}.alert-err{background:#fdeeec;color:#c0392b}.alert-ok{background:#e9f6ef;color:#1d8348}.alert-info{background:#eaf5fa;color:#1a6e8e}.chip{display:inline-flex;align-items:center;border-radius:9999px;padding:3px 10px;font-size:12px;font-weight:600;white-space:nowrap}.chip-blue{background:#eaf5fa;color:#1a6e8e}.chip-gray{background:#f0f2f5;color:#5b6472}.chip-red{background:#fdeeec;color:#c0392b}.chip-green{background:#e9f6ef;color:#1d8348}.card{background:#fff;border:1px solid #e7eaef;border-radius:16px}.card-h{font-size:15px;font-weight:700;padding:16px 20px 10px}.row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:13px 20px;border-top:1px solid #f0f2f5}a.row,a.row:hover{color:inherit}a.row:hover{background:#f6f8fa}.muted{color:#7b8494;font-size:12.5px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));grid-gap:14px;gap:14px}.stack{display:flex;flex-direction:column;gap:14px}.avatar{width:36px;height:36px;border-radius:50%;background:#eaf5fa;color:#1a6e8e;font-size:12px;font-weight:700;display:flex;justify-content:center;flex:none}.avatar,.perm{align-items:center}.perm{display:inline-flex;gap:6px;border:1px solid #e1e5ea;border-radius:8px;padding:7px 10px;font-size:13px;font-weight:600;cursor:pointer;background:#fff}.perm:has(input:checked){background:#eaf5fa;border-color:#9ad3ea;color:#1a6e8e}.perm input{accent-color:#2496c0}.shell{min-height:100vh}.side{position:fixed;top:0;bottom:0;left:0;width:260px;background:#fff;border-right:1px solid #e7eaef;display:flex;flex-direction:column;z-index:50;transition:left .25s}.brand{display:flex;align-items:center;gap:12px;padding:22px 22px 18px}.brand img{height:42px}.brand b{display:block;font-size:15.5px;font-weight:800;letter-spacing:-.01em;line-height:1.2}.brand span{display:block;font-size:11px;color:#7b8494;margin-top:2px}.nav{flex:1 1;overflow-y:auto;padding:4px 14px 16px;display:flex;flex-direction:column;gap:2px}.nav-sec{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#9aa2ae;padding:14px 10px 6px}.nav a{display:flex;align-items:center;padding:9px 10px;border-radius:10px;color:#4a5361;font-size:14px;font-weight:500}.nav a:hover{background:#f3f6f9;color:#1c2430}.nav a.on{background:#eaf5fa;color:#1a6e8e;font-weight:600}.side-foot{padding:16px 22px 20px;border-top:1px solid #f0f2f5;display:flex;align-items:center;gap:8px;font-size:11px;color:#9aa2ae}.side-foot img{height:16px}.main{padding-left:260px;min-height:100vh;flex-direction:column}.main,.top{display:flex}.top{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:rgba(246,248,250,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #e7eaef;align-items:center;gap:12px;padding:12px clamp(14px,3vw,40px);min-height:64px}.top h1{flex:1 1;min-width:0;font-size:19px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.me{align-items:center;gap:10px}.me,.me .t{display:flex}.me .t{flex-direction:column;line-height:1.2}.me .t b{font-size:13px}.me .t span{font-size:11px;color:#7b8494}.content{flex:1 1;width:100%;max-width:1360px;margin:0 auto;padding:28px clamp(14px,3vw,40px) 56px}.burger{border:1px solid #dfe3e9;background:#fff;border-radius:10px;width:40px;height:40px;align-items:center;justify-content:center;cursor:pointer;font-size:16px}#navtoggle,.burger,.scrim{display:none}@media (max-width:1023px){.side{left:-290px}.main{padding-left:0}.burger{display:flex}#navtoggle:checked~.side{left:0;box-shadow:0 30px 80px rgba(28,36,48,.18)}#navtoggle:checked~.scrim{display:block;position:fixed;inset:0;background:rgba(28,36,48,.28);z-index:40}.me .t{display:none}}.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.login-art{background:linear-gradient(160deg,#eaf5fa,#d4ecf6);display:flex;flex-direction:column;justify-content:space-between;padding:48px}.login-art img{height:88px;width:auto;align-self:flex-start}.login-art h2{font-size:clamp(28px,3.4vw,42px);font-weight:800;line-height:1.1;color:#1c2430}.login-art p{color:#4a5361;margin:10px 0 0;font-size:15px}.login-form{display:flex;align-items:center;justify-content:center;padding:32px 20px;background:#fff}.login-box{width:100%;max-width:380px}.login-box h1{font-size:26px;font-weight:700;margin-bottom:6px}.powered{display:flex;align-items:center;gap:8px;font-size:11.5px;color:#9aa2ae;margin-top:28px}.powered img{height:16px}@media (max-width:860px){.login{grid-template-columns:1fr}.login-art{display:none}}.chip-amber{background:#fdf4e4;color:#a86a0c}.chip-purple{background:#f2edfc;color:#6b46c1}.view{display:flex;flex-direction:column;gap:16px;animation:gir .22s ease}@keyframes gir{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.h2{font-size:24px;letter-spacing:-.02em;margin:0;text-wrap:pretty}.h2,.sec-t{font-weight:700}.sec-t{font-size:15px}.bar-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.tabs{display:inline-flex;flex-wrap:wrap;gap:2px;background:#eef1f4;border-radius:10px;padding:3px;align-self:flex-start}.tabs button{border:0;border-radius:8px;padding:7px 12px;font-size:13px;font-weight:600;cursor:pointer;background:transparent;color:#6b7482;display:flex;gap:6px}.tabs button.on{background:#fff;color:#1c2430;box-shadow:0 1px 3px rgba(28,36,48,.1)}.tabs .n{color:#9aa2ae;font-weight:500}.pills{display:flex;flex-wrap:wrap;gap:8px}.pill{border:1px solid #e1e5ea;background:#fff;color:#4a5361;border-radius:9999px;padding:6px 13px;font-size:13px;font-weight:600;cursor:pointer}.pill.on{background:#eaf5fa;border-color:#2496c0;color:#1a6e8e}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));grid-gap:14px;gap:14px}.tile{background:#fff;border:1px solid #e7eaef;border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:10px;cursor:pointer;min-width:0}.tile:hover{border-color:#9ad3ea;box-shadow:0 8px 24px rgba(36,150,192,.08)}.split{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.split>.a{flex:2 1 520px;flex-direction:column}.split>.a,.split>.b{min-width:0;display:flex;gap:16px}.split>.b{flex:1 1 300px;flex-direction:column}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));grid-gap:14px;gap:14px}.kpi{background:#fff;border:1px solid #e7eaef;border-radius:16px;padding:18px 20px;display:flex;flex-direction:column;gap:8px;position:relative;min-width:0}.kpi .v{font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:1.05;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.kpi .l{font-size:13px;font-weight:500;color:#6b7482}.kpi .s{font-size:12.5px;font-weight:600;white-space:nowrap;text-overflow:ellipsis}.bar,.kpi .s{overflow:hidden}.bar{height:8px;background:#edf0f4;flex:1 1}.bar,.bar>i{border-radius:9999px}.bar>i{display:block;height:100%;background:#2496c0}.ring{flex:none}.ring,.ring>div{border-radius:50%;display:flex;align-items:center;justify-content:center}.ring>div{background:#fff;flex-direction:column;line-height:1.1}.tl{display:flex;gap:12px;padding:8px 0;font-size:13.5px}.tl-dot{width:7px;height:7px;border-radius:50%;background:#9ad3ea;margin-top:7px;flex:none}.empty{padding:40px 20px;text-align:center;color:#9aa2ae;font-size:14px}.pad{padding:18px 20px}.steps{display:flex;min-width:620px}.steps>div{flex:1 1;display:flex;flex-direction:column;gap:8px}.step-n{width:28px;height:28px;border-radius:50%;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}.step-l{flex:1 1;height:2px;margin:0 8px;border-radius:2px}.utabs{display:flex;gap:4px;border-bottom:1px solid #e7eaef;overflow-x:auto}.utabs button{display:flex;align-items:center;gap:8px;padding:10px 14px;border:0;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;font-size:14px;font-weight:600;color:#6b7482}.utabs button.on{border-bottom-color:#2496c0;color:#1c2430}.utabs .num{width:22px;height:22px;border-radius:50%;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;background:#f0f2f5;color:#9aa2ae}.utabs .num.ok{background:#e9f6ef;color:#1d8348}.utabs button.on .num:not(.ok){background:#2496c0;color:#fff}.cmp{display:grid;grid-gap:8px;gap:8px;align-items:stretch}.cell{border:1.5px solid #eef1f4;border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:1px;background:#fff}.cell.sel{border-color:#2496c0;background:#eaf5fa}.cell.click{cursor:pointer}.modal-bg{position:fixed;inset:0;background:rgba(28,36,48,.32);z-index:80;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(28,36,48,.22);width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow-y:auto;padding:22px;display:flex;flex-direction:column;gap:16px;animation:gir .2s ease}.modal.wide{max-width:760px}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:24px;z-index:90;background:#fff;border:1px solid #e7eaef;border-left:3px solid #2496c0;border-radius:12px;padding:12px 18px;font-size:13.5px;font-weight:600;max-width:calc(100vw - 32px);box-shadow:0 18px 50px rgba(28,36,48,.16)}.toast.err{border-left-color:#c0392b;color:#c0392b}.menu{position:absolute;right:0;top:46px;background:#fff;border:1px solid #e7eaef;border-radius:14px;box-shadow:0 18px 50px rgba(28,36,48,.14);padding:6px;width:210px;z-index:60;display:flex;flex-direction:column}.menu button{text-align:left;border:0;background:none;padding:10px 12px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600}.menu button:hover{background:#f3f6f9}.doc{background:#fff;border:1px solid #e7eaef;border-radius:16px;padding:clamp(20px,4vw,44px);display:flex;flex-direction:column;gap:22px;font-size:13px}.doc table{width:100%;border-collapse:collapse}.doc th{text-align:left;font-size:12px;padding:8px 6px;border-bottom:1.5px solid #1c2430}.doc td{padding:10px 6px;border-bottom:1px solid #e7eaef}.doc .r{text-align:right}.dots{border-bottom:1px dotted #9aa2ae;height:18px}.star{border:0;background:none;font-size:28px;line-height:1;cursor:pointer;padding:4px;min-width:40px;min-height:40px}.cal{display:grid;grid-template-columns:repeat(14,minmax(78px,1fr));grid-gap:6px;gap:6px;min-width:1120px}.cal>div{border-radius:12px;border:1px solid #f0f2f5;padding:10px 8px;display:flex;flex-direction:column;gap:6px;min-height:118px}.cal .ev{background:#eaf5fa;color:#1a6e8e;border-radius:7px;padding:4px 6px;font-size:11px;font-weight:600;line-height:1.25}.scroll-x{overflow-x:auto}.ellip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.drop{border:1px dashed #c9d0d9;background:#f6f8fa;border-radius:12px;padding:14px;font-size:13.5px;font-weight:600;color:#4a5361}.drop,.pick{cursor:pointer;display:flex;gap:10px;align-items:center}.pick{border:1px solid #e1e5ea;border-radius:10px;padding:9px 12px;background:#fff}.pick.on{border-color:#2496c0;background:#eaf5fa;color:#1a6e8e}@media (max-width:640px){.modal-bg{align-items:flex-end;padding:0}.modal{border-radius:20px 20px 0 0;max-height:92vh}.kpi .v{font-size:26px}}@media print{.scrim,.side,.toast,.top,[data-noprint]{display:none!important}.content,.main{padding:0}body{background:#fff}}