:root{--navy:#002b5c;--navy2:#001c3d;--blue:#1d8dff;--gold:#c9a969;--gold2:#ead9ad;--text:#062a56;--muted:#5f789a;--line:#d5e5f7;--glass:rgba(255,255,255,.74);--glass2:rgba(255,255,255,.88);--shadow:0 32px 92px rgba(0,38,83,.18);--premium-shadow:0 34px 95px rgba(0,31,69,.16),0 1px 0 rgba(255,255,255,.88) inset}
*{box-sizing:border-box}html,body{min-height:100%;height:100%}
body{margin:0;font-family:"Segoe UI",Arial,sans-serif;color:var(--text);background:#eef6ff url("/app_assets/auth_bg.png") center/cover no-repeat fixed;overflow:hidden}
body:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 17% 18%,rgba(255,255,255,.96),rgba(255,255,255,.34) 38%,rgba(255,255,255,.10) 72%),linear-gradient(120deg,rgba(248,250,253,.86),rgba(255,255,255,.56)),linear-gradient(135deg,rgba(201,169,105,.14) 0 1px,transparent 1px 170px),linear-gradient(45deg,rgba(201,169,105,.10) 0 1px,transparent 1px 220px);pointer-events:none}body:after{content:"";position:fixed;inset:-10%;background:radial-gradient(ellipse at 88% 12%,rgba(201,169,105,.16),transparent 34%),radial-gradient(ellipse at 8% 88%,rgba(0,54,111,.10),transparent 36%);pointer-events:none}
.auth-shell{position:relative;z-index:1;width:min(1770px,94vw);min-height:100vh;margin:0 auto;display:grid;grid-template-columns:1.46fr 1fr;gap:42px;align-items:center;padding:20px 0 40px}
.auth-left,.auth-right{background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(255,255,255,.62));border:1px solid rgba(184,208,234,.76);border-top-color:rgba(255,255,255,.92);border-left-color:rgba(255,255,255,.88);border-radius:36px;box-shadow:var(--premium-shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);position:relative}.auth-left:before,.auth-right:before{content:"";position:absolute;inset:0;border-radius:36px;pointer-events:none;background:linear-gradient(135deg,rgba(201,169,105,.18),transparent 28%,transparent 70%,rgba(201,169,105,.10));opacity:.75}
.auth-left{min-height:780px;padding:56px 60px 58px;overflow:hidden;display:flex;flex-direction:column}.auth-left.building:after{content:"";position:absolute;right:-2px;bottom:20px;width:79%;height:102%;background:url("/app_assets/auth_building.png") center bottom/contain no-repeat;opacity:.72;filter:drop-shadow(0 28px 46px rgba(0,69,130,.13)) saturate(1.02) brightness(1.02);pointer-events:none}.auth-left .hero:before{content:"";position:absolute;left:0;top:-30px;width:178px;height:178px;border:1px solid rgba(201,169,105,.22);border-radius:50%;opacity:.75;transform:translate(-42%,-28%);pointer-events:none}
.support-note{position:relative;z-index:2;color:#6d7f98;font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:900;margin:0 0 14px}.logo-row{position:relative;z-index:2;display:flex;gap:26px;align-items:center;margin-bottom:50px}.logo-row img{display:block;object-fit:contain;max-height:54px;max-width:210px;filter:drop-shadow(0 10px 18px rgba(0,35,80,.06))}.logo-row img.logo-ggsn{max-width:205px}.logo-row img.logo-cnil{max-width:178px}
.hero{position:relative;z-index:2;max-width:640px;margin-top:8px}h1{margin:0;color:#052f5f;font-size:82px;line-height:1.04;letter-spacing:-.05em;font-weight:900;text-shadow:0 1px 0 rgba(255,255,255,.7)}.blue-line{width:60px;height:5px;border-radius:999px;background:linear-gradient(90deg,#2c9dff,var(--gold));margin:24px 0 0}.hero-note{margin-top:26px;color:#315a88;font-size:21px;line-height:1.55;font-weight:550}.premium-subtitle{margin-top:22px;color:#496a91;font-size:18px;font-weight:700;letter-spacing:.02em}
.auth-right{min-height:780px;padding:78px 62px}.tabs{position:relative;display:flex;background:rgba(232,241,251,.78);border:1px solid rgba(198,216,236,.70);border-radius:18px;overflow:hidden;margin-bottom:62px;height:74px;box-shadow:inset 0 1px 0 rgba(255,255,255,.86)}.tabs:before{content:"";position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:15px;background:linear-gradient(135deg,#00366f,#001f45);box-shadow:0 10px 24px rgba(0,42,91,.22),inset 0 1px 0 rgba(255,255,255,.22);transition:transform .38s cubic-bezier(.2,.8,.2,1);z-index:0}.tabs.reg:before{transform:translateX(calc(100% + 0px))}.tabs button{position:relative;z-index:1;flex:1;border:0;background:transparent!important;color:#6380a5;font-size:22px;font-weight:800;cursor:pointer;border-radius:16px;transition:color .28s ease,transform .22s ease}.tabs button:hover{transform:translateY(-1px)}.tabs button.active{color:#fff;box-shadow:none}
label{display:block;color:#062a56;font-size:17px;font-weight:900;margin:0 0 16px;text-transform:lowercase}.auth-form{animation:formIn .34s cubic-bezier(.2,.8,.2,1);will-change:transform,opacity}@keyframes formIn{from{opacity:0;transform:translateY(14px) scale(.985);filter:blur(2px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.input-wrap{position:relative;margin-bottom:36px}.input-wrap .ico{position:absolute;left:28px;top:50%;transform:translateY(-50%);width:28px;height:28px;opacity:.66;color:#6785ad;transition:color .22s ease,opacity .22s ease,transform .22s ease}.input-wrap:focus-within .ico{color:#1d8dff;opacity:.95;transform:translateY(-50%) scale(1.08)}.input-wrap input,.input-wrap select{position:relative;z-index:1;width:100%;height:82px;border:1px solid rgba(184,205,229,.92);border-radius:18px;background:rgba(255,255,255,.88);padding:0 66px 0 78px;color:#092d58;font-size:21px;outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.78),0 10px 26px rgba(0,45,91,.04);transition:border-color .24s ease,box-shadow .24s ease,background .24s ease,transform .18s ease}.input-wrap input:focus,.input-wrap select:focus{border-color:#61a9ff;background:rgba(255,255,255,.94);box-shadow:0 0 0 4px rgba(50,153,255,.12),inset 0 1px 0 rgba(255,255,255,.7);transform:translateY(-1px)}
.eye{position:absolute;z-index:3;right:22px;top:50%;transform:translateY(-50%);border:0;background:rgba(255,255,255,.2);color:#6380a5;font-size:0;cursor:pointer;padding:0;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease}.eye:hover{background:rgba(29,141,255,.10);color:#1d5f9f;box-shadow:0 6px 18px rgba(0,55,110,.10)}.eye svg{width:26px;height:26px;transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .22s ease}.eye.visible{color:#0a4a88;transform:translateY(-50%) scale(1.05)}.eye.visible svg{transform:scale(1.08) rotate(-6deg)}button.primary,.auth-button{width:100%;min-height:82px;border:0;border-radius:18px;margin-top:8px;background:linear-gradient(135deg,#00427f,#001b3c 72%);color:#fff;font-size:26px;font-weight:900;cursor:pointer;box-shadow:0 18px 34px rgba(0,32,70,.24),inset 0 1px 0 rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;gap:24px;position:relative;overflow:hidden;transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}button.primary:before,.auth-button:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent,rgba(255,255,255,.16),transparent);transform:translateX(-120%);transition:transform .7s ease}button.primary:hover,.auth-button:hover{transform:translateY(-2px);box-shadow:0 22px 42px rgba(0,32,70,.28),inset 0 1px 0 rgba(255,255,255,.22);filter:saturate(1.06)}button.primary:hover:before,.auth-button:hover:before{transform:translateX(120%)}button.primary:active,.auth-button:active{transform:translateY(0) scale(.992)}button.primary:after,.auth-button.arrow:after{content:"→";font-size:38px;line-height:1;font-weight:300;transition:transform .22s ease}button.primary:hover:after,.auth-button.arrow:hover:after{transform:translateX(5px)}.msg{margin-top:22px;color:#9b1c31;font-weight:800;white-space:pre-wrap;line-height:1.45}.reg-note{color:#6f87a7;font-size:16px;line-height:1.45;margin-top:-10px;margin-bottom:22px}.secure-note{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:22px;color:#6f87a7;font-size:13px;font-weight:800;letter-spacing:.02em}.secure-note span{width:8px;height:8px;border-radius:50%;background:#1f9d55;box-shadow:0 0 0 4px rgba(31,157,85,.10)}
.qr-box{display:flex;justify-content:center;align-items:center;background:var(--glass2);border:1px solid var(--line);border-radius:26px;min-height:320px;margin:20px 0 26px}.qr-box img{width:248px;height:248px;object-fit:contain}.secret{font-family:Consolas,monospace;background:rgba(235,244,255,.88);color:#123a68;border:1px solid var(--line);border-radius:14px;padding:12px 14px;word-break:break-all;font-size:14px}.info-list{margin:26px 0 0;padding:0;list-style:none;display:grid;gap:16px;color:#315a88;font-size:19px;line-height:1.5}.info-list li:before{content:"";display:inline-block;width:8px;height:8px;background:#2c9dff;border-radius:50%;margin-right:12px;vertical-align:middle}
@media(max-width:1200px){body{overflow:auto}.auth-shell{grid-template-columns:1fr;width:min(1120px,94vw);padding:24px 0 36px;gap:26px}.auth-left,.auth-right{min-height:auto}.auth-left.building:after{opacity:.26;width:58%;height:72%;right:-8px;bottom:-10px}}@media(max-width:700px){.auth-shell{width:95vw;padding:18px 0 28px}.auth-left,.auth-right{padding:28px 22px;border-radius:24px}.auth-left:before,.auth-right:before{border-radius:24px}.logo-row{gap:14px;margin-bottom:38px;flex-wrap:wrap}.logo-row img{max-height:46px;max-width:150px}h1{font-size:52px}.auth-right{padding:34px 24px}.tabs{height:64px;margin-bottom:36px}.tabs button{font-size:18px}.input-wrap input{height:72px;font-size:18px}.eye{width:34px;height:34px;right:18px}.eye svg{width:23px;height:23px}.auth-left.building:after{width:74%;height:58%;right:-18px;bottom:-8px;opacity:.22}}


    /* password fields: используем настоящий type=password; классы ниже оставлены только для совместимости старой разметки. */
    .password-masked { -webkit-text-security: disc; text-security: disc; }
    .password-visible { -webkit-text-security: none; text-security: none; }
    /* ===== v1.50 remove native browser password reveal icon ===== */
    input[type="password"]::-ms-reveal,
    input[type="password"]::-ms-clear {
      display:none !important;
      width:0 !important;
      height:0 !important;
    }
    /* Safari/macOS fix: не скрываем ::-webkit-textfield-decoration-container.
       В старой версии это правило блокировало ввод в поле пароля до нажатия на глазик.
       Оставляем только обычный кастомный глазик рядом с input. */


    /* ===== v1.68 style-only: light mini-cvat boundary panels ===== */
    .modal .right,
    .modal-content .right {
      background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,251,255,.94));
      border-left:1px solid rgba(184,205,229,.85);
    }

    #detectionsList {
      display:flex;
      flex-direction:column;
      gap:8px;
    }

    .det-row {
      position:relative;
      overflow:hidden;
      padding:11px 12px;
      border-radius:14px;
      border:1px solid rgba(184,205,229,.92);
      background:linear-gradient(145deg,#ffffff,#f7fbff);
      color:#092447;
      box-shadow:0 8px 18px rgba(0,38,83,.045);
      transition:border-color .16s ease, background .16s ease, box-shadow .16s ease;
    }

    .det-row:hover {
      border-color:#8fc1f4;
      box-shadow:0 12px 26px rgba(0,38,83,.075);
    }

    .det-row b {
      color:#05244a;
      font-weight:950;
    }

    .det-row.selected,
    .det-row.anchor {
      border-color:#2b7de1;
      background:linear-gradient(145deg,#eef6ff,#ffffff);
      box-shadow:0 0 0 2px rgba(43,125,225,.14), 0 14px 28px rgba(0,38,83,.08);
    }

    .det-row.det-row-focus-pulse {
      border-color:#0b74de;
      box-shadow:0 0 0 3px rgba(11,116,222,.22), 0 14px 30px rgba(0,38,83,.10);
    }

    .det-row.site-object {
      border-color:#63c7d9;
      background:linear-gradient(145deg,#eefcff,#ffffff);
      box-shadow:0 0 0 2px rgba(48,204,232,.12), 0 12px 24px rgba(0,38,83,.06);
    }

    .det-row.site-object::before {
      content:"граница";
      position:absolute;
      top:9px;
      right:10px;
      padding:4px 8px;
      border-radius:999px;
      color:#075b68;
      background:#e4fbff;
      border:1px solid #9fe5ef;
      font-size:10px;
      font-weight:950;
      text-transform:uppercase;
      letter-spacing:.04em;
    }

    .det-row.outside-roi {
      opacity:.78;
      border-style:dashed;
      border-color:#b4bfcc;
      background:linear-gradient(145deg,#f8fafc,#ffffff);
      color:#607089;
      box-shadow:none;
    }

    .det-row .muted,
    .muted {
      color:#6f829c !important;
    }

    .site-panel,
    .roi-panel {
      margin-top:12px;
      padding:15px;
      border-radius:18px;
      background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(247,251,255,.94));
      border:1px solid rgba(184,205,229,.94);
      box-shadow:0 16px 34px rgba(0,38,83,.07), inset 0 1px 0 rgba(255,255,255,.96);
    }

    .site-panel {
      border-color:#a9dfe8;
      background:
        radial-gradient(circle at 12% 0%,rgba(48,204,232,.12),transparent 34%),
        linear-gradient(145deg,#ffffff,#f4fcff);
    }

    .roi-panel {
      background:
        radial-gradient(circle at 12% 0%,rgba(43,125,225,.10),transparent 34%),
        linear-gradient(145deg,#ffffff,#f7fbff);
    }

    .site-panel .roi-panel-head,
    .roi-panel .roi-panel-head {
      display:flex;
      justify-content:space-between;
      gap:10px;
      align-items:center;
      margin-bottom:9px;
    }

    .site-panel .roi-panel-title,
    .roi-panel .roi-panel-title {
      color:#05244a;
      font-size:17px;
      line-height:1.2;
      font-weight:950;
      letter-spacing:-.015em;
    }

    .site-panel p,
    .roi-panel p {
      margin:0 0 12px;
      color:#617792;
      font-size:13px;
      line-height:1.45;
      font-weight:760;
    }

    .site-status-pill,
    .roi-status-pill {
      flex:0 0 auto;
      padding:6px 10px;
      border-radius:999px;
      font-size:11px;
      font-weight:950;
      letter-spacing:.02em;
      white-space:nowrap;
    }

    .site-status-pill {
      color:#075b68;
      background:#e6fbff;
      border:1px solid #9fe5ef;
    }

    .site-status-pill.empty {
      color:#8a4b00;
      background:#fff7e8;
      border-color:#ead39d;
    }

    .roi-status-pill {
      color:#0a4d90;
      background:#eef6ff;
      border:1px solid #bdd9f8;
    }

    .roi-status-pill.empty {
      color:#8a4b00;
      background:#fff7e8;
      border-color:#ead39d;
    }

    .site-panel .row,
    .roi-panel .row {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
      margin:0;
    }

    .site-panel .row + .row,
    .roi-panel .row + .row {
      margin-top:10px !important;
    }

    .site-panel .row button,
    .roi-panel .row button {
      min-height:44px;
      border-radius:13px !important;
      border:1px solid rgba(184,205,229,.94) !important;
      background:linear-gradient(145deg,#ffffff,#f4f8fc) !important;
      color:#05244a !important;
      font-weight:950 !important;
      box-shadow:none !important;
      transition:border-color .16s ease, background .16s ease, filter .16s ease;
    }

    .site-panel .row button:hover,
    .roi-panel .row button:hover {
      border-color:#7db5f0 !important;
      background:linear-gradient(145deg,#f8fbff,#ffffff) !important;
      filter:saturate(1.04);
      transform:none !important;
      box-shadow:none !important;
    }

    .site-panel .row button:first-child {
      color:#075b68 !important;
      border-color:#9fe5ef !important;
      background:linear-gradient(145deg,#f0fdff,#ffffff) !important;
    }

    .site-panel .row button:last-child,
    .roi-panel .row button:last-child {
      color:#05244a !important;
    }

    #editDetections,
    #editNote {
      border-radius:14px;
      border:1px solid rgba(184,205,229,.94);
      background:#ffffff;
      color:#092447;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.96);
    }

    @media(max-width:760px){
      .site-panel .row,
      .roi-panel .row {
        grid-template-columns:1fr;
      }
    }


    /* ===== v1.69 control signs class picker ===== */
    .class-picker-overlay {
      position:fixed;
      inset:0;
      z-index:2400;
      display:none;
      align-items:center;
      justify-content:center;
      padding:24px;
      background:rgba(8,22,38,.32);
      backdrop-filter:blur(10px);
      -webkit-backdrop-filter:blur(10px);
    }
    .class-picker-overlay.open { display:flex; }
    .class-picker-card {
      width:min(760px,100%);
      max-height:min(760px,92vh);
      overflow:auto;
      border-radius:24px;
      padding:20px;
      background:linear-gradient(145deg,#ffffff,#f6fbff);
      border:1px solid rgba(184,205,229,.94);
      box-shadow:0 34px 92px rgba(0,38,83,.22), inset 0 1px 0 rgba(255,255,255,.96);
    }
    .class-picker-head {
      display:flex;
      justify-content:space-between;
      gap:16px;
      align-items:flex-start;
      margin-bottom:14px;
    }
    .class-picker-head h3 { margin:2px 0 6px; color:#05244a; font-size:24px; line-height:1.1; }
    .class-picker-head p { margin:0; color:#617792; font-weight:760; }
    .class-picker-head button {
      width:42px;
      height:42px;
      border-radius:13px !important;
      border:1px solid rgba(184,205,229,.94) !important;
      background:#fff !important;
      color:#05244a !important;
      font-size:22px;
      font-weight:950;
      box-shadow:none !important;
    }
    .class-picker-list {
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:10px;
    }
    .class-choice {
      text-align:left;
      min-height:70px;
      border-radius:16px !important;
      border:1px solid rgba(184,205,229,.94) !important;
      background:linear-gradient(145deg,#ffffff,#f7fbff) !important;
      color:#05244a !important;
      box-shadow:none !important;
      padding:12px 13px !important;
      display:flex;
      align-items:center;
      gap:12px;
      transition:border-color .16s ease, background .16s ease;
    }
    .class-choice:hover { border-color:#7db5f0 !important; background:linear-gradient(145deg,#f1f8ff,#ffffff) !important; transform:none !important; }
    .class-choice:focus,
    .class-choice.active {
      outline:none;
      border-color:#2b7de1 !important;
      box-shadow:0 0 0 3px rgba(43,125,225,.16) !important;
      background:linear-gradient(145deg,#eef6ff,#ffffff) !important;
    }
    .class-choice-icon {
      width:38px;
      height:38px;
      border-radius:13px;
      display:flex;
      align-items:center;
      justify-content:center;
      background:#eef6ff;
      color:#0a4d90;
      border:1px solid #bdd9f8;
      font-size:12px;
      font-weight:950;
      flex:0 0 38px;
    }
    .class-choice.site .class-choice-icon { background:#e6fbff; color:#075b68; border-color:#9fe5ef; }
    .class-choice b { display:block; color:#05244a; font-weight:950; font-size:14px; }
    .class-choice span { display:block; margin-top:3px; color:#6f829c; font-size:11px; font-weight:850; }
    .class-picker-foot { margin-top:14px; display:flex; justify-content:flex-end; }
    .class-picker-foot button {
      max-width:160px;
      border-radius:13px !important;
      border:1px solid rgba(184,205,229,.94) !important;
      background:#fff !important;
      color:#05244a !important;
      box-shadow:none !important;
    }
    #detClass {
      border-radius:13px;
      border:1px solid rgba(184,205,229,.94);
      background:#fff;
      color:#05244a;
      min-height:44px;
      font-weight:850;
      padding:0 11px;
    }
    @media(max-width:720px){ .class-picker-list { grid-template-columns:1fr; } }


    /* ===== v1.73 clean review panel ===== */
    .object-edit-row label { font-size:12px; letter-spacing:.02em; }
    .control-help {
      margin-top:8px;
      border:1px solid rgba(184,205,229,.84);
      border-radius:14px;
      background:linear-gradient(145deg,#ffffff,#f7fbff);
      padding:0;
    }
    .control-help summary {
      cursor:pointer;
      list-style:none;
      padding:10px 13px;
      color:#05244a;
      font-weight:950;
      user-select:none;
    }
    .control-help summary::-webkit-details-marker { display:none; }
    .control-help summary::after {
      content:"развернуть";
      float:right;
      color:#6f829c;
      font-size:12px;
      font-weight:850;
    }
    .control-help[open] summary::after { content:"свернуть"; }
    .control-help .zoom-hint {
      padding:0 13px 12px;
      margin:0;
      display:flex;
      gap:8px 10px;
      flex-wrap:wrap;
    }

    .review-side {
      display:flex;
      flex-direction:column;
      gap:12px;
    }
    .review-section {
      padding:15px;
      border-radius:18px;
      background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(247,251,255,.94));
      border:1px solid rgba(184,205,229,.94);
      box-shadow:0 14px 30px rgba(0,38,83,.055), inset 0 1px 0 rgba(255,255,255,.96);
    }
    .review-section-head {
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:10px;
      margin-bottom:10px;
    }
    .section-kicker {
      color:#617792;
      font-size:11px;
      font-weight:950;
      letter-spacing:.06em;
      text-transform:uppercase;
      margin-bottom:3px;
    }
    .review-section h3 {
      margin:0;
      color:#05244a;
      font-size:18px;
      line-height:1.15;
      font-weight:950;
      letter-spacing:-.02em;
    }
    .compact-row {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
    }
    .ai-result-box {
      min-height:48px;
      padding:12px 13px;
      border-radius:14px;
      border:1px solid rgba(184,205,229,.94);
      background:linear-gradient(145deg,#ffffff,#f7fbff);
      color:#05244a;
      font-weight:850;
      line-height:1.35;
    }
    .review-badge {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:28px;
      padding:5px 9px;
      border-radius:999px;
      border:1px solid rgba(184,205,229,.94);
      background:#eef6ff;
      color:#0a4d90;
      font-size:11px;
      font-weight:950;
      white-space:nowrap;
    }
    .review-badge.ok {
      color:#087043;
      background:#e9fbf2;
      border-color:#bfead4;
    }
    .review-badge.neutral {
      color:#6f829c;
      background:#f5f8fb;
      border-color:#d5e2ef;
    }
    .quick-status-row {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
      margin-top:10px;
    }
    .quick-status-row button {
      min-height:42px;
      border-radius:13px !important;
      border:1px solid rgba(184,205,229,.94) !important;
      background:linear-gradient(145deg,#ffffff,#f4f8fc) !important;
      color:#05244a !important;
      font-weight:950 !important;
      box-shadow:none !important;
    }
    .quick-status-row .soft-danger {
      color:#9d1c14 !important;
      border-color:#f0c7c4 !important;
      background:linear-gradient(145deg,#fff7f6,#ffffff) !important;
    }
    .tech-section summary {
      cursor:pointer;
      color:#05244a;
      font-weight:950;
      list-style:none;
    }
    .tech-section summary::-webkit-details-marker { display:none; }
    .tech-section summary::after {
      content:"только для руководителя";
      float:right;
      color:#6f829c;
      font-size:11px;
      font-weight:850;
    }
    .tech-section.restricted {
      display:none;
    }
    .danger-section {
      border-color:#f0c7c4;
      background:linear-gradient(145deg,#fffafa,#ffffff);
    }
    .danger-section .danger {
      background:linear-gradient(145deg,#fff5f5,#ffecec) !important;
      color:#b42318 !important;
      border-color:#f0b8b4 !important;
    }
    @media(max-width:760px){
      .compact-row,
      .quick-status-row {
        grid-template-columns:1fr;
      }
    }


    /* ===== v1.76 popup wheel scroll + updated quick menu ===== */
    #classPickerOverlay {
      overscroll-behavior:contain;
      touch-action:none;
    }
    #classPickerOverlay .class-picker-card {
      max-height:min(500px,calc(100vh - 24px)) !important;
      display:flex;
      flex-direction:column;
      overflow:hidden !important;
    }
    #classPickerOverlay .class-picker-list {
      flex:1 1 auto;
      min-height:0;
      max-height:360px !important;
      overflow-y:auto !important;
      overscroll-behavior:contain;
      scrollbar-width:thin;
      scroll-behavior:smooth;
    }
    #classPickerOverlay .class-picker-list::-webkit-scrollbar { width:8px; }
    #classPickerOverlay .class-picker-list::-webkit-scrollbar-thumb { background:#b8cde5; border-radius:999px; }
    #classPickerOverlay .class-picker-list::-webkit-scrollbar-track { background:#f1f6fb; border-radius:999px; }
    .photo-more-menu button { white-space:normal; line-height:1.18; }
    .photo-more-menu button.danger { margin-top:4px; border-top:1px solid rgba(242,188,188,.65) !important; }


    /* ===== v1.77 review decision buttons ===== */
    .review-decision-block {
      margin-top:12px;
      padding:12px;
      border:1px solid rgba(184,205,229,.94);
      border-radius:16px;
      background:
        radial-gradient(circle at 12% 0%,rgba(43,125,225,.10),transparent 32%),
        linear-gradient(145deg,#ffffff,#f7fbff);
    }
    .decision-head {
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:10px;
      margin-bottom:10px;
    }
    .decision-head h4 {
      margin:2px 0 0;
      color:#05244a;
      font-size:17px;
      line-height:1.15;
      font-weight:950;
    }
    .review-decision-pill {
      flex:0 0 auto;
      padding:6px 10px;
      border-radius:999px;
      border:1px solid #bdd9f8;
      color:#0a4d90;
      background:#eef6ff;
      font-size:11px;
      font-weight:950;
      white-space:nowrap;
    }
    .review-decision-pill.empty {
      color:#8a4b00;
      background:#fff7e8;
      border-color:#ead39d;
    }
    .review-decision-grid {
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
    }
    .review-decision-btn {
      min-height:42px;
      border-radius:13px !important;
      border:1px solid rgba(184,205,229,.94) !important;
      background:linear-gradient(145deg,#ffffff,#f4f8fc) !important;
      color:#05244a !important;
      font-weight:950 !important;
      box-shadow:none !important;
      text-align:center;
      transition:border-color .16s ease, background .16s ease, box-shadow .16s ease;
    }
    .review-decision-btn:hover {
      border-color:#8fc1f4 !important;
      background:linear-gradient(145deg,#f1f8ff,#ffffff) !important;
      transform:none !important;
      box-shadow:none !important;
    }
    .review-decision-btn.active {
      border-color:#2b7de1 !important;
      background:linear-gradient(145deg,#eaf4ff,#ffffff) !important;
      box-shadow:0 0 0 3px rgba(43,125,225,.13) !important;
    }
    .review-decision-btn.ok.active {
      border-color:#6fc88e !important;
      background:linear-gradient(145deg,#ecf8f0,#ffffff) !important;
      color:#176b36 !important;
      box-shadow:0 0 0 3px rgba(36,154,80,.12) !important;
    }
    .review-decision-btn.warn.active {
      border-color:#efd393 !important;
      background:linear-gradient(145deg,#fff8e8,#ffffff) !important;
      color:#805a00 !important;
    }
    .review-decision-btn.bad.active,
    .review-decision-btn.danger.active {
      border-color:#f2bcbc !important;
      background:linear-gradient(145deg,#fff0f0,#ffffff) !important;
      color:#a10f22 !important;
    }
    .review-decision-btn.muted.active {
      border-color:#cbd5e1 !important;
      background:linear-gradient(145deg,#f1f5f9,#ffffff) !important;
      color:#475569 !important;
    }
    .review-save-result {
      margin-top:10px;
      width:100%;
      min-height:44px;
      border-radius:14px !important;
      border:1px solid rgba(0,64,128,.24) !important;
      background:linear-gradient(135deg,#064a87,#00305c 74%) !important;
      color:#fff !important;
      font-weight:950 !important;
      box-shadow:none !important;
    }
    .review-save-result:hover {
      filter:saturate(1.06);
      transform:none !important;
    }
    .review-advanced {
      margin-top:11px;
      border:1px solid rgba(184,205,229,.84);
      border-radius:14px;
      background:linear-gradient(145deg,#ffffff,#f7fbff);
      overflow:hidden;
    }
    .review-advanced summary {
      cursor:pointer;
      list-style:none;
      padding:10px 13px;
      color:#05244a;
      font-weight:950;
      user-select:none;
    }
    .review-advanced summary::-webkit-details-marker { display:none; }
    .review-advanced summary::after {
      content:"показать";
      float:right;
      color:#6f829c;
      font-size:12px;
      font-weight:850;
    }
    .review-advanced[open] summary::after { content:"скрыть"; }
    .review-advanced .row {
      padding:0 12px 12px;
      margin:0 !important;
    }
    @media(max-width:760px){
      .review-decision-grid {
        grid-template-columns:1fr;
      }
    }



/* ===== v2.64 adaptive auth layout ===== */
body{overflow-x:hidden;overflow-y:auto;min-height:100dvh}
.auth-shell{min-height:100dvh;padding:clamp(14px,2vh,24px) 0 clamp(18px,3vh,40px)}
.auth-right{overflow:visible}
.input-wrap select{appearance:auto;-webkit-appearance:menulist;color:#092d58;background:rgba(255,255,255,.92)}
@media(max-height:900px) and (min-width:1201px){
  .auth-shell{align-items:center;gap:34px;padding:14px 0 18px}
  .auth-left{min-height:calc(100dvh - 32px);padding:38px 52px 40px}
  .auth-right{min-height:auto;padding:42px 54px;max-height:calc(100dvh - 32px);overflow:auto;scrollbar-width:thin}
  .logo-row{margin-bottom:34px}.logo-row img{max-height:46px}.support-note{margin-bottom:10px}
  h1{font-size:clamp(58px,4.8vw,74px)}.blue-line{margin-top:18px}.tabs{height:66px;margin-bottom:34px}.tabs button{font-size:20px}
  label{font-size:15px;margin-bottom:10px}.input-wrap{margin-bottom:22px}.input-wrap input,.input-wrap select{height:66px;font-size:19px;border-radius:16px}.input-wrap .ico{left:24px;width:24px;height:24px}.input-wrap input,.input-wrap select{padding-left:66px}button.primary,.auth-button{min-height:66px;font-size:22px}.reg-note{font-size:14px;margin-top:-4px;margin-bottom:14px}.msg{margin-top:14px}.secure-note{margin-top:14px}
}
@media(max-width:1200px){body{overflow:auto}.auth-shell{min-height:auto;align-items:start}.auth-right{overflow:visible}}
@media(max-width:700px){.input-wrap input,.input-wrap select{height:68px;font-size:17px;padding-left:62px}.auth-left{min-height:360px}.auth-left.building:after{opacity:.20}.hero{margin-top:0}.secure-note{margin-bottom:4px}}
@media(max-width:520px){.auth-shell{width:94vw;padding:12px 0 18px}.auth-left{display:none}.auth-right{padding:22px 18px;border-radius:22px}.tabs{height:58px;margin-bottom:24px}.tabs button{font-size:16px}label{font-size:14px;margin-bottom:8px}.input-wrap{margin-bottom:18px}.input-wrap input,.input-wrap select{height:62px;font-size:16px;border-radius:15px}.input-wrap .ico{left:20px;width:22px;height:22px}.input-wrap input,.input-wrap select{padding-left:58px;padding-right:48px}button.primary{min-height:62px;font-size:19px}.reg-note{font-size:13px}.msg{font-size:14px}}


/* ===== v2.72 polished registration/auth request layout ===== */
body.auth-login .auth-right,
body.auth-reg .auth-right{
  scrollbar-width:thin;
  scrollbar-color:rgba(0,61,122,.24) transparent;
}
.auth-right::-webkit-scrollbar{width:8px}
.auth-right::-webkit-scrollbar-thumb{background:rgba(0,61,122,.22);border-radius:999px}
.auth-right::-webkit-scrollbar-track{background:transparent}
body.auth-reg .auth-right{
  display:flex;
  flex-direction:column;
  padding-top:clamp(30px,4.2vh,50px);
  padding-bottom:clamp(24px,3.5vh,42px);
}
body.auth-reg .tabs{
  height:62px;
  margin-bottom:24px;
  flex:0 0 auto;
}
body.auth-reg .tabs button{font-size:20px}
body.auth-reg #form{min-height:0}
body.auth-reg label{
  font-size:14px;
  margin-bottom:8px;
  letter-spacing:.01em;
}
body.auth-reg .input-wrap{margin-bottom:16px}
body.auth-reg .input-wrap input{
  height:58px;
  border-radius:15px;
  font-size:17px;
  padding-left:62px;
  padding-right:54px;
}
body.auth-reg .input-wrap .ico{
  left:22px;
  width:23px;
  height:23px;
}
body.auth-reg .eye{width:34px;height:34px;right:17px}
body.auth-reg .eye svg{width:22px;height:22px}
.request-caption{
  margin:-4px 0 16px;
  padding:13px 14px;
  border-radius:16px;
  border:1px solid rgba(184,205,229,.82);
  background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(238,246,255,.72));
  color:#58718f;
  font-size:13px;
  line-height:1.38;
  font-weight:760;
}
.request-caption b{
  display:block;
  color:#052f5f;
  font-size:15px;
  font-weight:950;
  margin-bottom:3px;
}
.dept-panel{
  margin:0 0 16px;
  padding:14px;
  border-radius:18px;
  border:1px solid rgba(184,205,229,.88);
  background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(239,247,255,.74));
  box-shadow:0 12px 28px rgba(0,45,91,.055),inset 0 1px 0 rgba(255,255,255,.82);
}
.dept-panel-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  margin-bottom:10px;
}
.dept-title{
  color:#062a56;
  font-size:14px;
  font-weight:950;
  text-transform:lowercase;
}
.dept-subtitle{
  margin-top:3px;
  color:#6f87a7;
  font-size:12px;
  line-height:1.32;
  font-weight:760;
}
.dept-count{
  flex:0 0 auto;
  padding:6px 10px;
  border-radius:999px;
  background:#edf6ff;
  border:1px solid #c6dcf3;
  color:#0b4b88;
  font-size:11px;
  font-weight:950;
  white-space:nowrap;
}
.dept-list{
  display:grid;
  gap:8px;
  max-height:190px;
  overflow:auto;
  padding-right:2px;
  scrollbar-width:thin;
}
.dept-list::-webkit-scrollbar{width:7px}
.dept-list::-webkit-scrollbar-thumb{background:rgba(0,61,122,.20);border-radius:999px}
.dept-card{
  width:100%;
  border:1px solid rgba(184,205,229,.96);
  background:linear-gradient(145deg,#ffffff,#f6fbff);
  border-radius:15px;
  padding:12px 13px;
  text-align:left;
  display:grid;
  grid-template-columns:22px 1fr auto;
  gap:10px;
  align-items:center;
  cursor:pointer;
  color:#092d58;
  box-shadow:0 8px 18px rgba(0,45,91,.035);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease;
}
.dept-card:hover{
  transform:translateY(-1px);
  border-color:#78b5f3;
  box-shadow:0 12px 24px rgba(0,45,91,.075);
}
.dept-card.active{
  border-color:#0d579a;
  background:linear-gradient(145deg,#eef7ff,#ffffff);
  box-shadow:0 0 0 3px rgba(29,141,255,.12),0 13px 26px rgba(0,45,91,.08);
}
.dept-mark{
  width:20px;
  height:20px;
  border-radius:50%;
  border:2px solid #b9d0e8;
  background:#fff;
  position:relative;
}
.dept-card.active .dept-mark{
  border-color:#0d579a;
  background:#0d579a;
}
.dept-card.active .dept-mark:after{
  content:"";
  position:absolute;
  left:5px;
  top:2px;
  width:5px;
  height:10px;
  border:solid #fff;
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.dept-name{
  min-width:0;
  font-size:16px;
  line-height:1.22;
  font-weight:950;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dept-note{
  color:#6f87a7;
  font-size:11px;
  font-weight:850;
  white-space:nowrap;
}
.dept-empty{
  padding:16px;
  border-radius:16px;
  border:1px dashed rgba(184,205,229,.95);
  background:linear-gradient(145deg,#ffffff,#f8fbff);
  color:#667f9f;
  line-height:1.42;
  font-size:13px;
  font-weight:750;
}
.dept-empty b{
  display:block;
  color:#062a56;
  font-size:16px;
  margin-bottom:5px;
}
body.auth-reg .reg-note{
  margin:0 0 14px;
  padding:11px 13px;
  border-radius:15px;
  background:rgba(237,246,255,.74);
  border:1px solid rgba(198,220,243,.74);
  color:#5f789a;
  font-size:13px;
  line-height:1.38;
  font-weight:760;
}
body.auth-reg button.primary{
  min-height:62px;
  font-size:21px;
  border-radius:16px;
  margin-top:2px;
}
body.auth-reg button.primary:disabled{
  cursor:not-allowed;
  filter:grayscale(.35);
  opacity:.58;
  transform:none!important;
  box-shadow:0 10px 24px rgba(0,32,70,.12),inset 0 1px 0 rgba(255,255,255,.16);
}
body.auth-reg .secure-note{margin-top:12px;font-size:12px}
body.auth-reg .msg{margin-top:12px}
@media(max-height:820px) and (min-width:1201px){
  body.auth-reg .auth-shell{gap:28px}
  body.auth-reg .auth-left{min-height:calc(100dvh - 28px);padding-top:32px;padding-bottom:32px}
  body.auth-reg .logo-row{margin-bottom:26px}.support-note{font-size:10px}
  body.auth-reg h1{font-size:clamp(50px,4.2vw,66px)}
  body.auth-reg .auth-right{padding:24px 44px;max-height:calc(100dvh - 28px)}
  body.auth-reg .tabs{height:56px;margin-bottom:18px}.tabs button{font-size:18px}
  .request-caption{display:none}
  body.auth-reg label{font-size:13px;margin-bottom:6px}
  body.auth-reg .input-wrap{margin-bottom:11px}
  body.auth-reg .input-wrap input{height:51px;font-size:16px}
  .dept-panel{padding:12px;margin-bottom:12px}
  .dept-list{max-height:132px}.dept-card{padding:10px 11px;border-radius:13px}.dept-name{font-size:15px}.dept-note{display:none}
  body.auth-reg .reg-note{font-size:12px;padding:9px 11px;margin-bottom:11px}
  body.auth-reg button.primary{min-height:54px;font-size:19px}.secure-note{display:none}
}
@media(max-width:1200px){
  body.auth-reg .auth-right{max-height:none;overflow:visible}
  body.auth-reg .auth-left{display:none}
  body.auth-reg .auth-shell{width:min(620px,94vw);grid-template-columns:1fr;align-items:start;padding:18px 0}
}
@media(max-width:520px){
  .request-caption{padding:11px 12px;font-size:12px}.request-caption b{font-size:14px}
  .dept-panel{padding:12px;border-radius:16px}.dept-panel-head{display:block}.dept-count{display:inline-flex;margin-top:8px}
  .dept-card{grid-template-columns:20px 1fr;gap:9px}.dept-note{grid-column:2;font-size:10px}.dept-name{font-size:15px;white-space:normal}
  body.auth-reg .reg-note{font-size:12px}
}


/* v auth-final: реальные password-поля, быстрые переключения, успех заявки */
.auth-ready .auth-right{contain:layout paint;}
.field-error{border-color:#df6b6b!important;box-shadow:0 0 0 4px rgba(223,107,107,.12)!important;}
.form-error-list{margin:0 0 14px;padding:12px 14px;border:1px solid #f0b8b8;background:#fff6f6;color:#9b1c31;border-radius:14px;font-size:13px;font-weight:800;line-height:1.35;}
.register-success{padding:34px 28px;border:1px solid rgba(155,205,166,.7);background:linear-gradient(145deg,rgba(247,255,250,.96),rgba(255,255,255,.86));border-radius:24px;box-shadow:0 20px 54px rgba(20,107,55,.10);text-align:left;}
.register-success-icon{width:62px;height:62px;border-radius:20px;background:#e4faef;color:#08783b;display:grid;place-items:center;font-size:34px;font-weight:900;margin-bottom:18px;box-shadow:inset 0 0 0 1px rgba(8,120,59,.12);}
.register-success h2{margin:0 0 10px;color:#062a56;font-size:28px;line-height:1.1;letter-spacing:-.02em;}
.register-success p{margin:0 0 20px;color:#526b8c;font-size:16px;line-height:1.55;font-weight:700;}
.register-success .primary{margin-top:12px;}
.dept-empty.simple{display:block;text-align:left;}
.dept-empty.simple b{display:block;margin-bottom:6px;}
body.auth-reg .auth-right{overflow:auto;scrollbar-width:thin;}
body.auth-reg .input-wrap{margin-bottom:18px;}
body.auth-reg label{margin-bottom:8px;}
body.auth-reg .msg{margin-top:12px;}
body.auth-reg .primary:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.2);transform:none!important;box-shadow:none;}
@media(max-height:860px) and (min-width:1201px){
  body.auth-reg .auth-right{padding-top:34px!important;padding-bottom:28px!important;}
  body.auth-reg .tabs{margin-bottom:20px!important;}
  body.auth-reg .input-wrap input{height:56px!important;font-size:16px!important;}
}

/* ===== mobile-auth final pass ===== */
@media(max-width:760px){
  html,body{min-height:100%;height:auto}
  body{overflow:auto;background-attachment:scroll}
  body:before{background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(238,246,255,.84))}
  body:after{display:none}
  .auth-shell{width:100%;min-height:100svh;display:block;padding:0}
  .auth-left{min-height:auto;border-radius:0;border:0;border-bottom:1px solid rgba(184,205,229,.82);box-shadow:none;padding:18px 18px 22px;background:rgba(255,255,255,.82)}
  .auth-left:before{display:none}
  .auth-left.building:after{opacity:.14;width:70%;height:100%;right:-18px;bottom:-28px}
  .support-note{font-size:9px;margin-bottom:8px}
  .logo-row{gap:12px;margin-bottom:18px;flex-wrap:nowrap}
  .logo-row img{max-height:34px;max-width:128px}
  .hero{margin-top:0}
  .hero h1,h1{font-size:36px!important;line-height:1.04!important;letter-spacing:-.02em!important}
  .blue-line{width:46px;height:4px;margin-top:13px}
  .hero-note,.premium-subtitle{font-size:14px;line-height:1.42;margin-top:14px}
  .auth-right{min-height:auto;border:0;border-radius:0;box-shadow:none;background:rgba(255,255,255,.96);padding:22px 18px 28px}
  .auth-right:before{display:none}
  .tabs{height:52px;margin-bottom:24px;border-radius:14px}
  .tabs:before{border-radius:11px}
  .tabs button{font-size:15px}
  label{font-size:13px;margin-bottom:8px}
  .input-wrap{margin-bottom:17px}
  .input-wrap .ico{left:16px;width:22px;height:22px}
  .input-wrap input{height:58px;border-radius:14px;padding-left:50px;padding-right:50px;font-size:16px}
  .eye{right:12px;width:34px;height:34px}
  .eye svg{width:22px;height:22px}
  button.primary,.auth-button{min-height:58px;border-radius:14px;font-size:19px;gap:12px}
  button.primary:after,.auth-button.arrow:after{font-size:28px}
  .msg{margin-top:14px;font-size:13px}
  .secure-note{margin-top:14px;font-size:11px}
  .reg-note{font-size:13px;margin-bottom:16px}
  .request-caption{font-size:12px;border-radius:14px}
  .dept-list{max-height:220px}
  .dept-card{border-radius:13px}
  .register-success{padding:22px 18px;border-radius:18px}
  .register-success h2{font-size:22px}
  .register-success p{font-size:14px}
}

@media(max-width:420px){
  .auth-left{padding:15px 14px 18px}
  .auth-right{padding:20px 14px 26px}
  .logo-row img{max-width:112px}
  .hero h1,h1{font-size:31px!important}
  .tabs button{font-size:14px}
  .input-wrap input{height:54px;font-size:15px}
  button.primary,.auth-button{min-height:56px;font-size:18px}
  body.auth-reg .auth-left{display:none}
  body.auth-reg .auth-right{min-height:100svh}
}
