:root{--bg:#f4f7fb;--panel:#fff;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--blue:#2563eb;--blue2:#1d4ed8;--red:#dc2626;--amber:#f59e0b;--green:#16a34a;--shadow:0 20px 60px rgba(15,23,42,.08);--r:22px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}a{color:var(--blue);text-decoration:none}.auth-bg{min-height:100vh;background:radial-gradient(circle at 10% 10%,#dbeafe 0,#eff6ff 30%,#f8fafc 65%)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:28px}.auth-panel{width:min(520px,100%);background:rgba(255,255,255,.92);border:1px solid rgba(226,232,240,.85);border-radius:28px;box-shadow:var(--shadow);padding:34px}.brand{display:flex;gap:14px;align-items:center}.brand-logo{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,#0f172a,#2563eb);display:grid;place-items:center;color:#fff;font-weight:800}.brand b{display:block;font-size:18px}.brand span,.muted,.hint,small{display:block;color:var(--muted);font-size:12px}.lead{color:#475569;margin-top:0}.shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{background:#0f172a;color:#e5e7eb;padding:24px;display:flex;flex-direction:column;gap:26px}.sidebar .brand-logo{background:linear-gradient(135deg,#2563eb,#38bdf8)}.sidebar .brand span{color:#94a3b8}.nav{display:flex;flex-direction:column;gap:8px}.nav a{color:#cbd5e1;border-radius:14px;padding:12px 14px}.nav a:hover{background:rgba(255,255,255,.08);color:#fff}.side-note{margin-top:auto;color:#94a3b8;font-size:12px;border:1px solid rgba(148,163,184,.25);border-radius:18px;padding:14px;background:rgba(255,255,255,.04)}.main{padding:26px 30px}.topbar{height:72px;background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 8px 30px rgba(15,23,42,.05);display:flex;align-items:center;justify-content:space-between;padding:0 20px;margin-bottom:24px}.top-actions{display:flex;align-items:center;gap:10px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.page-head h1,h1{margin:0 0 6px;font-size:30px;letter-spacing:-.03em}.page-head p{margin:0;color:var(--muted)}.card,.stat,.settings-card,.tenant-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 12px 40px rgba(15,23,42,.06)}.card{padding:22px;margin-bottom:18px}.card h2{margin:0 0 16px;font-size:18px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.stat{padding:20px}.stat span{color:var(--muted);font-size:13px}.stat b{display:block;font-size:34px;margin-top:4px}.stat.warn b{color:var(--amber)}.stat.danger b{color:var(--red)}.btn{border:0;border-radius:14px;padding:11px 16px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.btn.primary{background:var(--blue);color:#fff}.btn.primary:hover{background:var(--blue2)}.btn.light{background:#f1f5f9;color:#0f172a}.btn.danger{background:#fee2e2;color:#991b1b}.btn.wide{width:100%;justify-content:center}.form{display:flex;flex-direction:column;gap:12px}.control{width:100%;min-height:44px;border:1px solid var(--line);border-radius:14px;padding:10px 12px;background:#fff;color:var(--ink);outline:none}.control:focus{border-color:#93c5fd;box-shadow:0 0 0 4px #dbeafe}textarea.control{resize:vertical}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.layout2{display:grid;grid-template-columns:minmax(0,1.7fr) 420px;gap:18px}.filters{display:grid;grid-template-columns:1fr 220px 240px auto;gap:12px;margin-bottom:16px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px}.table{width:100%;border-collapse:separate;border-spacing:0;background:#fff}.table th{background:#f8fafc;color:#475569;text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.table th,.table td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top}.table tr:last-child td{border-bottom:0}.table small{margin-top:4px}.badge{--c:#64748b;display:inline-flex;border-radius:999px;background:color-mix(in srgb,var(--c) 12%,white);color:var(--c);border:1px solid color-mix(in srgb,var(--c) 22%,white);padding:5px 10px;font-weight:700;font-size:12px}.pill{border:1px solid var(--line);border-radius:999px;padding:8px 12px;background:#fff;color:#475569}.alert{padding:12px 14px;border-radius:14px;margin-bottom:14px;border:1px solid var(--line);background:#fff}.alert.success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.alert.danger{border-color:#fecaca;background:#fef2f2;color:#991b1b}.alert.fade{opacity:.4}.check{display:flex;align-items:center;gap:8px}.tenant-list,.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.tenant-card,.settings-card{padding:20px;color:var(--ink)}.tenant-card b,.settings-card b{display:block;font-size:18px;margin-bottom:6px}.tenant-card span,.settings-card span{color:var(--muted)}.text-box{background:#f8fafc;border:1px solid var(--line);border-radius:18px;padding:16px;margin-bottom:22px}.timeline,.mini-timeline{display:flex;flex-direction:column;gap:12px}.msg{border:1px solid var(--line);border-radius:18px;padding:14px;background:#fff}.msg.internal{background:#fffbeb;border-color:#fde68a}.msg header{display:flex;gap:10px;align-items:center;color:#475569}.msg header b{color:#0f172a}.msg header span{margin-left:auto;color:#94a3b8;font-size:12px}.msg header em{font-style:normal;background:#f59e0b;color:#fff;border-radius:999px;padding:2px 8px;font-size:11px}.mini-timeline div{border-left:3px solid #cbd5e1;padding-left:12px}.mini-timeline span{display:block;color:#94a3b8;font-size:12px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe;border-radius:999px;padding:8px 12px}.empty{text-align:center;color:var(--muted);padding:28px!important}@media(max-width:1000px){.shell{grid-template-columns:1fr}.sidebar{position:static}.stats,.grid2,.grid3,.layout2,.filters{grid-template-columns:1fr}.main{padding:18px}.page-head{flex-direction:column}.topbar{height:auto;padding:14px;gap:10px;align-items:flex-start}}

.global-sidebar{background:#111827}.global-shell .brand-logo{background:linear-gradient(135deg,#7c3aed,#2563eb)}.stats.two{grid-template-columns:repeat(2,minmax(0,1fr))}.badge.green{--c:#16a34a}.badge.red{--c:#dc2626}.badge.danger{--c:#dc2626}.badge.warn{--c:#d97706}.actions{white-space:nowrap}.global-auth .brand-logo{background:linear-gradient(135deg,#111827,#7c3aed)}
.avatar{width:34px;height:34px;border-radius:999px;background:#e2e8f0;display:inline-grid;place-items:center;overflow:hidden;margin-right:8px;vertical-align:middle;color:#64748b}.avatar.small{width:28px;height:28px}.avatar.big{width:72px;height:72px;font-size:34px;margin:0 auto 10px}.avatar img{width:100%;height:100%;object-fit:cover}.user-card{text-align:center;border:1px solid var(--line);border-radius:18px;padding:16px;background:#f8fafc;margin-bottom:18px}.user-card b,.user-card small{display:block}.html-box{overflow-wrap:anywhere}.html-box img{max-width:100%;height:auto;border-radius:14px;border:1px solid var(--line);margin:8px 0}.wysiwyg-toolbar{display:flex;gap:6px;flex-wrap:wrap;background:#f8fafc;border:1px solid var(--line);border-radius:14px 14px 0 0;padding:8px}.wysiwyg-toolbar button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:7px 10px;cursor:pointer}.wysiwyg-editor{min-height:170px;border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px;background:#fff;padding:14px;outline:none}.wysiwyg-editor:focus{box-shadow:0 0 0 4px #dbeafe;border-color:#93c5fd}.paste-preview,.file-list{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.file-chip{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);background:#f8fafc;border-radius:999px;padding:8px 12px;color:#334155}.approval-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.approval-step{border:1px solid var(--line);border-radius:16px;padding:12px;background:#fff;display:grid;grid-template-columns:1fr auto;gap:4px}.approval-step small{grid-column:1/-1}.approval-step.approved{border-color:#bbf7d0;background:#f0fdf4}.approval-step.rejected{border-color:#fecaca;background:#fef2f2}.approval-step.pending{border-color:#fde68a;background:#fffbeb}.mini-list{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.mini-list a{border:1px solid var(--line);border-radius:14px;padding:10px;background:#fff;color:#0f172a}.mini-list span{display:block;color:#64748b;font-size:12px}.statuses-select .chip input{margin-right:6px}
.filters-wide{grid-template-columns:repeat(4,minmax(160px,1fr)) auto auto}.avatar.tiny{width:26px;height:26px;margin:0}.small-input{max-width:110px}.support-load{display:flex;flex-direction:column;gap:10px}.load-row{display:grid;grid-template-columns:34px 1fr 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:10px;background:#fff}.close-fields{display:none;border:1px dashed #f59e0b;background:#fffbeb;border-radius:16px;padding:12px}.close-fields.active{display:block}.wysiwyg-toolbar select,.wysiwyg-toolbar input[type=color]{border:1px solid var(--line);background:#fff;border-radius:10px;padding:6px 8px;min-height:34px}.html-box blockquote,.wysiwyg-editor blockquote{border-left:4px solid #94a3b8;margin:10px 0;padding:8px 12px;background:#f8fafc;color:#334155}.html-box h2,.wysiwyg-editor h2{font-size:22px;margin:14px 0 8px}.html-box h3,.wysiwyg-editor h3{font-size:18px;margin:12px 0 6px}@media(max-width:1200px){.filters-wide{grid-template-columns:1fr 1fr}.load-row{grid-template-columns:34px 1fr}}@media(max-width:700px){.filters-wide{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}}

/* v5: компактный современный интерфейс */
:root{--r:14px;--sidebar:214px;--sidebar-collapsed:66px}body{font-size:13px;line-height:1.35}.shell{grid-template-columns:var(--sidebar) 1fr}.shell.sidebar-collapsed{grid-template-columns:var(--sidebar-collapsed) 1fr}.sidebar{padding:14px 10px;gap:12px;position:relative}.brand{gap:9px;min-height:42px}.brand-logo{width:36px;height:36px;border-radius:12px;font-size:13px}.brand b{font-size:14px;line-height:1.15}.brand span{font-size:11px}.sidebar-toggle{position:absolute;right:8px;top:58px;width:34px;height:30px;border:1px solid rgba(148,163,184,.28);border-radius:10px;background:rgba(255,255,255,.06);color:#e5e7eb;cursor:pointer}.nav{gap:4px;margin-top:8px}.nav a{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:10px;font-weight:700;color:#cbd5e1}.nav-ico{width:22px;text-align:center;font-size:16px;line-height:1}.nav-text{white-space:nowrap}.user-dock{margin-top:auto;border:1px solid rgba(148,163,184,.25);border-radius:14px;padding:10px;background:rgba(255,255,255,.04);color:#e5e7eb}.user-dock strong{display:block;font-size:13px;line-height:1.2;word-break:break-word}.user-dock span{display:block;color:#94a3b8;font-size:11px;margin:2px 0 8px}.user-dock .muted{color:#94a3b8}.shell.sidebar-collapsed .brand-text,.shell.sidebar-collapsed .nav-text,.shell.sidebar-collapsed .user-dock strong,.shell.sidebar-collapsed .user-dock span,.shell.sidebar-collapsed .user-dock .muted,.shell.sidebar-collapsed .user-dock a{display:none}.shell.sidebar-collapsed .sidebar{align-items:center}.shell.sidebar-collapsed .nav a{justify-content:center;padding:10px 8px}.shell.sidebar-collapsed .user-dock{width:42px;height:42px;padding:0;display:grid;place-items:center}.shell.sidebar-collapsed .user-dock:before{content:'👤';font-size:18px}.main{padding:14px 16px 34px;min-width:0}.topbar{height:50px;border-radius:14px;padding:0 12px;margin-bottom:12px}.topbar .muted{font-size:11px}.top-actions{gap:6px}.page-head{margin-bottom:10px;gap:10px}.page-head h1,h1{font-size:22px;margin-bottom:2px}.page-head p{font-size:12px}.card{padding:14px;margin-bottom:12px;border-radius:14px}.card h2{font-size:15px;margin-bottom:10px}.stats{gap:10px;margin-bottom:12px}.stat{padding:12px;border-radius:14px}.stat span{font-size:12px}.stat b{font-size:26px}.btn{border-radius:10px;padding:8px 11px;font-size:12px}.btn.compact{padding:6px 9px}.control{min-height:36px;border-radius:10px;padding:7px 9px;font-size:13px}.grid2{gap:10px}.grid3{gap:8px}.layout2{grid-template-columns:minmax(0,1.8fr) 360px;gap:12px}.filters{gap:8px;margin-bottom:10px}.filters-wide{grid-template-columns:repeat(4,minmax(140px,1fr)) auto auto}.table-wrap{border-radius:12px}.table th,.table td{padding:8px 9px}.table th{font-size:11px}.badge{padding:4px 8px;font-size:11px}.pill{padding:5px 9px;font-size:12px}.alert{padding:9px 11px;border-radius:10px;margin-bottom:10px}.tenant-list,.settings-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.tenant-card,.settings-card{padding:14px;border-radius:14px}.tenant-card b,.settings-card b{font-size:15px}.text-box{border-radius:12px;padding:10px;margin-bottom:12px}.msg{border-radius:12px;padding:10px}.mini-timeline,.timeline{gap:8px}.mini-timeline div{padding-left:9px}.chip{padding:6px 9px}.empty{padding:18px!important}.user-card{border-radius:12px;padding:10px;margin-bottom:12px}.avatar{width:28px;height:28px}.avatar.big{width:54px;height:54px;font-size:26px}.load-row{border-radius:12px;padding:8px;grid-template-columns:30px 1fr 1fr auto}.app-footer,.auth-footer{position:fixed;left:50%;bottom:6px;transform:translateX(-50%);z-index:30;color:#64748b;font-size:11px;background:rgba(255,255,255,.82);border:1px solid rgba(226,232,240,.8);border-radius:999px;padding:4px 12px;backdrop-filter:blur(8px);white-space:nowrap}.auth-footer{bottom:12px}.mobile-menu{display:none}

/* v5: Word-подобный WYSIWYG */
.wysiwyg-toolbar{display:flex;gap:4px;flex-wrap:wrap;align-items:center;background:#f1f5f9;border:1px solid var(--line);border-radius:10px 10px 0 0;padding:5px}.toolbar-group{display:flex;align-items:center;gap:2px;border-right:1px solid #dbe3ef;padding-right:4px;margin-right:2px}.toolbar-group:last-child{border-right:0}.tool-btn,.wysiwyg-toolbar button{width:30px;height:28px;border:1px solid #cbd5e1;background:linear-gradient(#fff,#f8fafc);border-radius:5px;padding:0;display:inline-grid;place-items:center;cursor:pointer;color:#0f172a;font-size:13px;box-shadow:0 1px 0 rgba(255,255,255,.9) inset}.tool-btn:hover,.wysiwyg-toolbar button:hover{background:#e0f2fe;border-color:#93c5fd}.tool-select,.wysiwyg-toolbar select{height:28px;border:1px solid #cbd5e1;background:#fff;border-radius:5px;padding:2px 6px;font-size:12px;max-width:122px}.color-tool{height:28px;min-width:31px;border:1px solid #cbd5e1;background:#fff;border-radius:5px;display:inline-grid;place-items:center;position:relative;cursor:pointer;font-weight:800}.color-tool span{font-size:13px;text-decoration:underline;text-decoration-thickness:3px;text-decoration-color:#ef4444}.color-tool.fill span{background:#fde68a;text-decoration:none;padding:0 2px}.color-tool input{position:absolute;inset:0;opacity:0;cursor:pointer}.align-icon{gap:2px;padding:5px!important}.align-icon span{display:block;height:2px;background:#334155;border-radius:3px;width:16px}.align-icon span:nth-child(2){width:12px}.align-icon span:nth-child(3){width:18px}.align-center span{margin-left:auto;margin-right:auto}.align-center span:nth-child(2){width:16px}.align-right span{margin-left:auto}.align-right span:nth-child(2){width:13px}.align-justify span{width:18px!important}.wysiwyg-editor{min-height:135px;border-radius:0 0 10px 10px;padding:10px;font-size:13px}.wysiwyg-editor table,.html-box table{border-collapse:collapse;width:100%;margin:8px 0;background:#fff}.wysiwyg-editor td,.wysiwyg-editor th,.html-box td,.html-box th{border:1px solid #cbd5e1;padding:6px 8px;min-width:70px}.wysiwyg-editor th,.html-box th{background:#f8fafc}.html-box img,.wysiwyg-editor img{max-width:100%;height:auto;border-radius:8px;border:1px solid var(--line);margin:6px 0}.file-chip{padding:6px 9px;border-radius:999px}.paste-preview,.file-list{gap:6px;margin:6px 0}.close-fields{border-radius:12px;padding:9px}

@media(max-width:1000px){.shell,.shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:230px;z-index:50;transform:translateX(-105%);transition:.18s}.shell.sidebar-open .sidebar{transform:translateX(0)}.main{padding:12px}.mobile-menu{display:inline-flex}.top-actions{display:none}.layout2,.filters,.filters-wide,.grid2,.grid3,.stats{grid-template-columns:1fr}.app-footer{font-size:10px;max-width:96vw;overflow:hidden;text-overflow:ellipsis}.toolbar-group{border-right:0}.wysiwyg-toolbar{gap:3px}}

/* v6: каталог услуг */
.brand-logo img{width:100%;height:100%;object-fit:contain;border-radius:10px;background:#fff;padding:3px}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.catalog-card{position:relative;overflow:hidden;min-height:178px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 24px rgba(15,23,42,.06);color:var(--ink);display:flex;flex-direction:column}.catalog-card:before{content:"";height:4px;background:var(--accent);display:block}.catalog-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(15,23,42,.1)}.catalog-image{height:86px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,white),#f8fafc);display:grid;place-items:center}.catalog-image img{width:100%;height:100%;object-fit:cover}.catalog-image span{font-size:42px}.catalog-body{padding:12px}.catalog-body b{display:block;font-size:16px;margin-bottom:4px}.catalog-body p{margin:0;color:var(--muted);font-size:12px}.catalog-kind{position:absolute;right:8px;top:10px;background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:999px;padding:3px 8px;font-size:11px;color:#475569}.catalog-card.folder .catalog-image{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 22%,white),#fff)}.service-hero{width:100%;max-height:220px;object-fit:cover;border-radius:14px;border:1px solid var(--line);margin-bottom:12px}.route-graph{display:flex;flex-direction:column;align-items:stretch;gap:7px}.route-node{border:1px solid color-mix(in srgb,var(--blue) 25%,white);background:#eff6ff;border-radius:14px;padding:10px}.route-node b,.route-node span,.route-node em{display:block}.route-node span{color:#475569;font-size:12px}.route-node em{font-size:11px;color:#64748b;font-style:normal;margin-top:3px}.route-arrow{text-align:center;color:#94a3b8;font-weight:900}.catalog-admin-list{display:flex;flex-direction:column;gap:8px}.admin-catalog-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;background:#fff;color:var(--ink)}.admin-catalog-row:hover{background:#f8fafc}.admin-catalog-row small{font-size:11px}.catalog-image-preview{width:100%;max-height:120px;object-fit:cover;border:1px solid var(--line);border-radius:12px}.mini-table{display:flex;flex-direction:column;gap:8px}.mini-head,.mini-row{display:grid;grid-template-columns:1.1fr .8fr .8fr 70px;gap:6px;align-items:start}.mini-row .full{grid-column:1/-1;min-height:54px}.step-editor{display:flex;flex-direction:column;gap:10px}.step-card{border:1px solid var(--line);border-radius:14px;background:#f8fafc;padding:10px}.brand-preview{display:flex;align-items:center;gap:12px;background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:10px}.brand-preview img{width:64px;height:64px;object-fit:contain;border-radius:12px;background:#fff;border:1px solid var(--line)}
@media(max-width:1000px){.mini-head,.mini-row{grid-template-columns:1fr}.catalog-grid{grid-template-columns:1fr}}
/* v8 compact visual builders and editor placeholder */
.wysiwyg-editor.is-empty:before{content:attr(data-placeholder);color:#94a3b8;pointer-events:none;display:block}.wysiwyg-editor:not(.is-empty):before{content:''}.catalog-admin-layout{grid-template-columns:300px minmax(0,1fr)}.builder-wrap,.flow-builder{display:grid;grid-template-columns:190px minmax(0,1fr);gap:10px;align-items:start}.builder-palette,.flow-palette{position:sticky;top:10px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;padding:10px;display:flex;flex-direction:column;gap:7px}.palette-btn{border:1px solid #cbd5e1;background:#fff;border-radius:9px;padding:8px 9px;text-align:left;cursor:pointer;font-weight:700;color:#0f172a}.palette-btn:hover{background:#eff6ff;border-color:#93c5fd}.form-canvas,.flow-canvas{min-height:140px;border:1px dashed #cbd5e1;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fafc);padding:10px;display:flex;flex-direction:column;gap:10px}.form-field-card,.flow-node{border:1px solid var(--line);border-radius:14px;background:#fff;padding:9px;box-shadow:0 4px 14px rgba(15,23,42,.04)}.form-field-card.dragging,.flow-node.dragging{opacity:.55;border-color:#2563eb;background:#eff6ff}.drag-handle{float:left;cursor:grab;color:#94a3b8;margin:8px 8px 0 0}.field-config{display:grid;grid-template-columns:1.1fr .8fr .8fr auto auto;gap:6px;align-items:center}.field-preview{margin-top:7px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:11px;padding:8px}.preview-label{display:block;color:#475569;font-size:12px;font-weight:700;margin-bottom:5px}.preview-label b{color:#dc2626}.flow-node{position:relative;border-left:5px solid #2563eb}.flow-node-head{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:8px;align-items:center}.step-badge{width:26px;height:26px;border-radius:999px;background:#2563eb;color:#fff;display:grid;place-items:center;font-weight:800;font-size:12px}.flow-line{font-size:12px;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;padding:4px 8px;margin:7px 0}.flow-details{margin-top:6px}.flow-details summary{cursor:pointer;font-weight:800;color:#334155}.service-flow-hint{border:1px solid #bfdbfe;background:#eff6ff;border-radius:12px;padding:9px;color:#1e3a8a}.floating-menu{margin-bottom:8px}@media(max-width:1100px){.catalog-admin-layout,.builder-wrap,.flow-builder{grid-template-columns:1fr}.builder-palette,.flow-palette{position:static}.field-config,.flow-node-head{grid-template-columns:1fr}.flow-node-head .step-badge{order:-1}}

/* v9 service flow result rules */
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.flow-rule-grid{align-items:end}
@media(max-width:1100px){.grid4{grid-template-columns:1fr}}

/* v10 navigation polish */
.sidebar-toggle{position:static;display:block;margin:8px auto 0;width:28px;height:24px;font-size:14px;line-height:1}
.nav{margin-top:8px}
.shell.sidebar-collapsed .sidebar-toggle{margin:8px auto 0}
.shell.sidebar-collapsed .nav{margin-top:4px}

/* v11 configurable dashboard */
.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:8px;overflow-x:auto}
.mini-stat{min-height:58px;padding:9px 11px;border-left:5px solid var(--c);box-shadow:0 5px 18px rgba(15,23,42,.04)}
.mini-stat span{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-stat b{font-size:22px;line-height:1;color:var(--c);margin-top:2px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.card-head h2{margin:0}
.support-compact{display:flex;flex-direction:column;gap:6px}
.support-row{display:grid;grid-template-columns:30px minmax(180px,1fr) auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:7px 8px;background:#fff;color:var(--ink)}
.support-row:hover{background:#f8fafc}
.support-name b,.support-name small{display:block}
.mini-badges{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}
.b-new{--c:#2563eb}.b-work{--c:#7c3aed}.b-done{--c:#16a34a}.b-open{--c:#f59e0b}
.person-link{font-weight:700}
.ticket-topline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ticket-topline div{border:1px solid var(--line);border-radius:10px;background:#f8fafc;padding:8px 10px;min-width:0}
.ticket-topline span{display:block;color:var(--muted);font-size:11px}
.ticket-topline b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pagination{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.compact-timeline .msg{padding:9px}
@media(min-width:1200px){.dashboard-stats{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}}
@media(max-width:800px){.support-row{grid-template-columns:30px 1fr}.mini-badges{grid-column:1/-1;justify-content:flex-start}.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ticket-topline{grid-template-columns:1fr 1fr}}

/* v12 ITIL problem/change/release chain */
.itil-chain{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.itil-node{border:1px solid var(--line);border-radius:12px;background:#fff;padding:9px 10px}
.itil-node b,.itil-node small{display:block}
.itil-node.problem{border-left:5px solid #dc2626}
.itil-node.change{margin-top:8px;margin-left:10px;border-left:5px solid #f59e0b;background:#fffbeb}
.itil-node.release{margin-top:8px;margin-left:10px;border-left:5px solid #16a34a;background:#f0fdf4}
.itil-form{margin-top:8px}
.itil-create{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}
@media(max-width:800px){.itil-node.change,.itil-node.release{margin-left:0}}

/* v13 knowledge base */
.kb-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:12px}
.kb-cat-list{display:flex;flex-direction:column;gap:6px}
.kb-cat-row{display:flex;align-items:stretch;gap:4px}
.kb-cat-row>a{flex:1;border:1px solid var(--line);border-radius:10px;padding:8px 9px;background:#fff;color:var(--ink);font-weight:700}
.kb-cat-list>a{border:1px solid var(--line);border-radius:10px;padding:8px 9px;background:#fff;color:var(--ink);font-weight:700}
.kb-cat-del{padding:4px 8px!important;align-self:stretch;border-radius:10px!important}
.kb-cat-list small{margin-top:2px;display:block}
.kb-cat-form{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.kb-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.kb-results{min-width:0}
.kb-card{margin-bottom:10px}
.kb-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.kb-card-head b{font-size:16px}
.kb-card p{margin:8px 0;color:#475569}
.kb-meta{display:flex;flex-wrap:wrap;gap:8px;color:#64748b;font-size:12px}
.kb-article .lead{font-size:15px;color:#334155}
.kb-suggest-box{border:1px solid #bfdbfe;background:#eff6ff;border-radius:12px;padding:10px}
.kb-suggest-box h2{font-size:14px;margin:0 0 8px}
.kb-ticket-row{border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px}
.kb-ticket-row>a{display:block;color:var(--ink);margin-bottom:6px}
.kb-ticket-row .top-actions{flex-wrap:wrap}
@media(max-width:900px){.kb-layout{grid-template-columns:1fr}.kb-card-head{align-items:flex-start;flex-direction:column}}

/* v14 work and cost accounting */
.cost-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:10px}
.cost-summary div{border:1px solid var(--line);border-radius:10px;background:#f8fafc;padding:8px 10px}
.cost-summary span{display:block;color:var(--muted);font-size:11px}
.cost-summary b{display:block;font-size:16px}
.cost-form,.timer-box{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}
.cost-row{border:1px solid var(--line);border-left:4px solid #2563eb;border-radius:12px;background:#fff;padding:9px}
.cost-row.material{border-left-color:#16a34a}
.cost-row b,.cost-row span,.cost-row small{display:block}
.cost-row span{color:#64748b;font-size:12px}
.cost-row small{font-weight:800;color:#0f172a;margin-top:3px}

/* v15 self-service portal */
.portal-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
.portal-head h1{font-size:24px}
.portal-head p{margin:0;color:var(--muted)}
.portal-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:12px}
.portal-search .control{min-height:46px;font-size:15px}
.portal-news{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin-bottom:12px}
.portal-news-card{border:1px solid var(--line);border-left:5px solid #2563eb;border-radius:14px;background:#fff;padding:11px 12px;box-shadow:0 5px 18px rgba(15,23,42,.04)}
.portal-news-card.warning{border-left-color:#f59e0b;background:#fffbeb}
.portal-news-card.critical{border-left-color:#dc2626;background:#fef2f2}
.portal-news-card span,.portal-news-card p{display:block;color:#64748b;font-size:12px;margin:0}
.portal-news-card b{display:block;margin:2px 0 4px}
.portal-section{margin-bottom:12px}
.portal-tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.portal-tile{min-height:120px;border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:14px;background:#fff;color:var(--ink);padding:12px;display:flex;flex-direction:column;gap:5px;box-shadow:0 6px 20px rgba(15,23,42,.04)}
.portal-tile:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(15,23,42,.08)}
.portal-tile span{width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--accent) 14%,white);color:var(--accent);display:grid;place-items:center;font-weight:900}
.portal-tile b{font-size:15px}
.portal-tile small{color:#64748b}
.portal-main-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.portal-result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.portal-result-grid h3{margin:0 0 8px;font-size:13px;color:#334155}
.portal-row{display:block;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);padding:9px;margin-bottom:7px}
.portal-row b,.portal-row small{display:block}
.portal-row small{color:#64748b}
.portal-rating{border:1px solid var(--line);border-radius:12px;background:#fff;padding:9px;display:flex;flex-direction:column;gap:7px}
.portal-stars{display:flex;gap:5px;flex-direction:row-reverse;justify-content:flex-end}
.portal-stars label{border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;padding:4px 8px;font-weight:800;cursor:pointer}
.portal-stars input{margin-right:4px}
.portal-template-head{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:14px;background:#fff;padding:10px;margin-bottom:10px}
.portal-template-head>span{width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--accent) 14%,white);color:var(--accent);display:grid;place-items:center;font-weight:900}
.portal-template-head b,.portal-template-head small{display:block}
.portal-kb-suggest{border:1px solid #bfdbfe;background:#eff6ff;border-radius:12px;padding:9px}
.portal-kb-suggest a{display:block;color:#0f172a;margin-bottom:7px}
.portal-kb-suggest form{display:flex;gap:6px;flex-wrap:wrap}
.portal-admin-form{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}
.portal-context-box{border:1px solid #bfdbfe;background:#eff6ff;border-radius:14px;padding:12px;margin-bottom:12px}
.portal-context-box h2{font-size:15px;margin:0 0 9px}
.portal-context-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px}
.portal-context-row div,.portal-rating-view{border:1px solid #dbeafe;border-radius:10px;background:#fff;padding:8px}
.portal-context-row span,.portal-rating-view span{display:block;color:#64748b;font-size:11px}
.portal-context-row b,.portal-rating-view b{display:block;overflow:hidden;text-overflow:ellipsis}
.portal-context-form{margin-top:8px}
@media(max-width:1000px){.portal-head{align-items:flex-start;flex-direction:column}.portal-search,.portal-main-grid,.portal-result-grid,.portal-context-row{grid-template-columns:1fr}.portal-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v16 AI assistant */
.ai-box{border:1px solid #c7d2fe;background:#eef2ff;border-radius:14px;padding:12px;margin-bottom:12px}
.ai-actions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.ai-reply-form{border-top:1px solid #c7d2fe;padding-top:10px;margin-top:8px}
.ai-suggestions{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.ai-suggestion{border:1px solid #c7d2fe;border-radius:12px;background:#fff;overflow:hidden}
.ai-suggestion summary{cursor:pointer;display:flex;align-items:center;gap:8px;padding:7px 12px;user-select:none;list-style:none}
.ai-suggestion summary::-webkit-details-marker{display:none}
.ai-suggestion summary::before{content:'▶';font-size:9px;color:#94a3b8;transition:transform .15s;flex-shrink:0}
.ai-suggestion[open] summary::before{transform:rotate(90deg)}
.ai-suggestion summary b{flex:1;font-size:13px}
.ai-sum-meta{color:#94a3b8;font-size:11px;margin-left:auto}
.ai-suggestion .ai-blocks{padding:0 12px 10px}
.ai-suggestion pre{white-space:pre-wrap;overflow:auto;background:#0f172a;color:#e5e7eb;border-radius:10px;padding:10px;font-size:12px}
.ai-cap-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}
.ai-cap-list span{border:1px solid var(--line);border-left:4px solid #4f46e5;border-radius:10px;background:#fff;padding:9px;font-weight:700}
.ai-manager-report{border-left:5px solid #4f46e5}

/* v16 manager reports */
.report-filter-card{padding:10px}
.report-filters{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:8px;align-items:end}
.report-kpis{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin-bottom:12px}
.report-kpi{border:1px solid var(--line);border-left:5px solid #2563eb;border-radius:12px;background:#fff;padding:10px 11px;box-shadow:0 5px 18px rgba(15,23,42,.04);min-width:0}
.report-kpi span{display:block;color:#64748b;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.report-kpi b{display:block;font-size:20px;line-height:1.1;margin-top:3px;color:#0f172a;white-space:nowrap}
.report-kpi.good{border-left-color:#16a34a}.report-kpi.warn{border-left-color:#f59e0b}.report-kpi.bad,.report-kpi.danger{border-left-color:#dc2626}
.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.report-table th,.report-table td{white-space:nowrap}
.report-table td:first-child{white-space:normal;min-width:180px}
.sla-pill{display:inline-flex;align-items:center;justify-content:center;min-width:54px;border-radius:999px;border:1px solid var(--line);padding:4px 8px;font-weight:800;font-size:11px;background:#f8fafc;color:#334155}
.sla-pill.good{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.sla-pill.warn{border-color:#fde68a;background:#fffbeb;color:#92400e}.sla-pill.bad{border-color:#fecaca;background:#fef2f2;color:#991b1b}

/* ===== NEW DESIGN: Inter + Navy Sidebar + Blue Portal ===== */
:root{--bg:#eceff7;--blue:#6097ff;--blue2:#4d82f0;--ink:#282e3e;--muted:#828791;--sidebar:240px;--sidebar-collapsed:66px}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink)}

/* --- Sidebar --- */
.sidebar{background:#2f3b60;padding:0;gap:0;width:var(--sidebar)}
.shell{grid-template-columns:var(--sidebar) 1fr}
.shell.sidebar-collapsed{grid-template-columns:var(--sidebar-collapsed) 1fr}

.sidebar-logo-bar{background:#fff;height:60px;display:flex;align-items:center;padding:0 16px;gap:10px;flex-shrink:0}
.sidebar-logo-bar .brand-logo-wide{width:auto;max-width:120px;height:34px;border-radius:0;background:transparent;padding:0;font-size:14px}
.sidebar-logo-bar .sidebar-toggle{margin:0 0 0 auto;width:28px;height:26px;color:#64748b;border-color:#e2e8f0;background:#f8fafc;position:static;font-size:14px;border-radius:8px}

.sidebar .nav{padding:16px 10px;margin-top:0;gap:2px}
.sidebar .nav a{color:rgba(255,255,255,.70);font-size:14px;font-weight:600;padding:10px 14px;border-radius:8px;display:flex;align-items:center;gap:9px}
.sidebar .nav a:hover{background:rgba(255,255,255,.09);color:rgba(255,255,255,.95)}
.sidebar .nav a.active{background:#172143;color:#fff;border-radius:10px}
.sidebar .nav .nav-ico{width:20px;text-align:center;flex-shrink:0;font-style:normal}

.sidebar .user-dock{margin:auto 10px 16px;border-color:rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:#e5e7eb}
.sidebar .user-dock strong{color:#fff}
.sidebar .user-dock span{color:rgba(255,255,255,.55)}
.sidebar .user-dock .muted{color:rgba(255,255,255,.45)}
.sidebar .user-dock .btn{background:rgba(255,255,255,.1);color:#e5e7eb}

/* collapsed */
.shell.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed)}
.shell.sidebar-collapsed .sidebar-logo-bar{padding:0;justify-content:center;overflow:hidden}
.shell.sidebar-collapsed .sidebar-logo-bar .brand-logo-wide{display:none}
.shell.sidebar-collapsed .sidebar-logo-bar .sidebar-logo-text{display:none}
.shell.sidebar-collapsed .sidebar .nav a{justify-content:center;padding:10px 8px;position:relative}
.shell.sidebar-collapsed .sidebar .nav a .nav-text{display:none;position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:#1e2a45;color:#fff;padding:5px 12px;border-radius:7px;white-space:nowrap;font-size:13px;font-weight:600;z-index:200;box-shadow:0 3px 10px rgba(0,0,0,.3);pointer-events:none}
.shell.sidebar-collapsed .sidebar .nav a:hover .nav-text{display:block}
.shell.sidebar-collapsed .sidebar .user-dock strong,
.shell.sidebar-collapsed .sidebar .user-dock span,
.shell.sidebar-collapsed .sidebar .user-dock .muted,
.shell.sidebar-collapsed .sidebar .user-dock a{display:none}
.shell.sidebar-collapsed .sidebar .user-dock{width:42px;height:42px;padding:0;display:grid;place-items:center;margin:auto auto 14px}
.shell.sidebar-collapsed .sidebar .user-dock:before{content:'👤';font-size:17px}

/* --- Topbar --- */
.topbar{border-radius:12px;background:rgba(255,255,255,.9)}

/* --- Cards --- */
.card,.stat,.settings-card,.tenant-card{background:#fff}

/* --- Portal: Hero search --- */
.portal-hero{background:#6097ff;border-radius:15px;padding:28px 28px 22px;margin-bottom:14px}
.portal-hero-label{color:rgba(255,255,255,.92);font-size:15px;font-weight:500;margin-bottom:14px}
.portal-hero-form{display:grid;grid-template-columns:1fr auto;gap:10px}
.portal-hero-input{width:100%;min-height:45px;border:none;border-radius:7px;padding:10px 14px;font-size:15px;color:#737783;outline:none;font-family:inherit;background:#fff}
.portal-hero-btn{background:#2f3b61;color:#fff;border:none;border-radius:10px;padding:10px 28px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap}

/* --- Portal: Announce block --- */
.portal-announce-block{background:#dadee0;border:1px solid #c5cae5;border-radius:15px;padding:14px 20px;margin-bottom:14px}
.portal-announce-row{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.portal-announce-dot{width:8px;height:8px;border-radius:50%;background:#5788e4;flex-shrink:0;box-shadow:0 0 5px rgba(87,136,228,.75)}
.portal-announce-type{color:#828791;font-size:13px;font-weight:500}
.portal-announce-title{color:#282e3e;font-size:15px;font-weight:500;padding-left:18px}
.portal-announce-body{color:#595e6b;font-size:14px;margin-top:3px;padding-left:18px}

/* --- Portal: Tiles heading --- */
.portal-tiles-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.portal-tiles-hd h2{font-size:22px;font-weight:600;color:#282e3e;margin:0}
.portal-tiles-hd a{background:#fff;border:1px solid #c5cae5;border-radius:7px;padding:6px 14px;font-size:13px;color:#5a5f6c;text-decoration:none}

/* --- Portal: Tile cards --- */
.portal-tiles-row{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px}
.portal-tile-card{background:#fff;border-radius:20px;padding:16px;min-height:135px;display:flex;flex-direction:column;gap:5px;color:#282e3e;text-decoration:none;transition:transform .15s,box-shadow .15s;border:none}
.portal-tile-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.1);color:#282e3e}
.portal-tile-card-icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:18px;background:color-mix(in srgb,var(--accent,#6097ff) 16%,white);margin-bottom:6px;flex-shrink:0}
.portal-tile-card-name{font-size:18px;font-weight:600;color:#282e3e;line-height:1.2}
.portal-tile-card-desc{font-size:12px;color:#828791;line-height:1.4}

/* --- Portal: Two-column sections --- */
.portal-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.portal-col{background:#fff;border-radius:15px;overflow:hidden}
.portal-col-head{font-size:18px;font-weight:600;color:#282e3e;padding:16px 20px 14px;display:flex;align-items:center;justify-content:space-between}
.portal-col-head a{font-size:12px;color:#6097ff;font-weight:400}
.portal-col-item{display:flex;align-items:flex-start;justify-content:space-between;padding:10px 20px;border-top:1px solid #f2f4fb;color:#282e3e;text-decoration:none}
.portal-col-item:hover{background:#f8f9fc}
.portal-col-item-ico{width:14px;height:10px;background:#b2b5bc;flex-shrink:0;margin-top:5px;margin-right:10px;border-radius:2px}
.portal-col-item-body{flex:1;min-width:0}
.portal-col-item-title{font-size:15px;font-weight:500;color:#282e3e;margin-bottom:2px}
.portal-col-item-sub{font-size:12px;color:#828791}
.portal-col-item-count{color:#b2b5bc;font-size:12px;font-weight:500;flex-shrink:0;margin-left:8px;padding-top:2px}

@media(max-width:1100px){.portal-tiles-row{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.portal-tiles-row{grid-template-columns:repeat(2,1fr)}.portal-cols{grid-template-columns:1fr}}
@media(max-width:1000px){.shell,.shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:240px;z-index:50;transform:translateX(-105%);transition:.18s}.shell.sidebar-open .sidebar{transform:translateX(0)}}
@media(max-width:1300px){.report-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.report-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.report-grid,.report-filters{grid-template-columns:1fr}.report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v17 development module */
.dev-filters{display:grid;grid-template-columns:2fr repeat(4,minmax(130px,1fr)) auto;gap:8px;align-items:end}
.dev-status{display:inline-flex;border:1px solid #cbd5e1;background:#f8fafc;border-radius:999px;padding:4px 8px;font-weight:800;font-size:11px;color:#334155}
.dev-priority{display:inline-flex;border-radius:999px;padding:4px 8px;font-weight:800;font-size:11px;background:#f1f5f9;color:#334155;border:1px solid #cbd5e1}
.dev-priority.critical{background:#fef2f2;border-color:#fecaca;color:#991b1b}.dev-priority.high{background:#fffbeb;border-color:#fde68a;color:#92400e}.dev-priority.normal{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.dev-priority.low{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.dev-board{display:grid;grid-template-columns:repeat(9,minmax(210px,1fr));gap:10px;overflow:auto;padding-bottom:10px}
.dev-column{min-height:360px;border:1px solid var(--line);border-radius:14px;background:#f8fafc;padding:8px}
.dev-column-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding:4px 3px}
.dev-column-head b{font-size:13px}.dev-column-head span{border:1px solid var(--line);border-radius:999px;background:#fff;padding:2px 7px;font-weight:800;color:#475569;font-size:11px}
.dev-card{display:block;border:1px solid var(--line);border-left:4px solid #2563eb;border-radius:12px;background:#fff;color:var(--ink);padding:9px;margin-bottom:8px;box-shadow:0 4px 14px rgba(15,23,42,.04)}
.dev-card:hover{background:#f8fafc}.dev-card b,.dev-card strong,.dev-card small,.dev-card em{display:block}.dev-card b{font-size:12px;color:#2563eb;margin-top:5px}.dev-card strong{font-size:13px;margin:2px 0}.dev-card em{font-style:normal;color:#64748b;font-size:11px;margin-top:4px}
.dev-ticket-form{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}
@media(max-width:1200px){.dev-filters{grid-template-columns:1fr 1fr}.dev-board{grid-template-columns:repeat(4,minmax(210px,1fr))}}
@media(max-width:800px){.dev-filters{grid-template-columns:1fr}.dev-board{grid-template-columns:1fr;overflow:visible}}

/* v18 director and AI reports */
.ai-report{border-left:5px solid #16a34a;background:linear-gradient(180deg,#fff,#f8fafc)}
.ai-report.warn{border-left-color:#f59e0b}.ai-report.bad{border-left-color:#dc2626}
.ai-report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.ai-report-head h2{font-size:18px;margin:2px 0 4px;line-height:1.25}
.ai-kicker{display:inline-flex;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:4px 8px;font-weight:800;font-size:11px}
.ai-status{white-space:nowrap;border:1px solid var(--line);border-radius:999px;background:#fff;padding:6px 10px;font-weight:800;color:#334155}
.ai-report.warn .ai-status{background:#fffbeb;border-color:#fde68a;color:#92400e}.ai-report.bad .ai-status{background:#fef2f2;border-color:#fecaca;color:#991b1b}
.ai-report-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px}
.ai-report-grid>div{border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px}
.ai-report-grid h3{font-size:13px;margin:0 0 8px;color:#334155}
.report-list{margin:0;padding-left:18px;color:#334155}.report-list li{margin:0 0 6px}.report-list.risk li::marker{color:#dc2626}.report-list.action li::marker{color:#16a34a}
.ai-question-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ai-question-row span{border:1px solid #dbeafe;background:#eff6ff;color:#1e3a8a;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700}
@media(max-width:1100px){.ai-report-grid{grid-template-columns:1fr}.ai-report-head{flex-direction:column}.ai-status{white-space:normal}}
.ai-dashboard{border-left:5px solid #4f46e5}
.ai-dashboard .card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ai-candidates{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.ai-candidate{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;border:1px solid #c7d2fe;background:#eef2ff;border-radius:12px;padding:10px}
.ai-candidate b{display:block;font-size:14px}.ai-candidate p{margin:7px 0;color:#334155}
.ai-candidate-actions{display:flex;gap:6px;align-items:center;white-space:nowrap}
.ai-dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.ai-dashboard-grid>div{border:1px solid var(--line);border-radius:12px;background:#fff;padding:10px;min-width:0}
.ai-dashboard-grid h3{font-size:13px;margin:0 0 8px;color:#334155}
.ai-metric-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;align-items:center;border-top:1px solid #eef2f7;padding:7px 0}
.ai-metric-row:first-of-type{border-top:0}.ai-metric-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0f172a;font-weight:700}.ai-metric-row b{font-size:18px}.ai-metric-row small{grid-column:1/-1}
@media(max-width:1200px){.ai-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.ai-candidate{grid-template-columns:1fr}.ai-candidate-actions{white-space:normal}.ai-dashboard-grid{grid-template-columns:1fr}}

/* U-admin branding and report navigation */
.brand-logo.brand-logo-wide{width:138px;height:42px;border-radius:8px;background:#fff;padding:4px 6px;flex:0 0 auto}
.brand-logo.brand-logo-wide img{width:100%;height:100%;object-fit:contain}
.auth-brand-image{display:flex;justify-content:center;margin:0 0 18px}
.auth-brand-image img{display:block;width:min(230px,80%);height:auto;object-fit:contain}
.sidebar .brand-logo.brand-logo-wide{background:#fff}
.shell.sidebar-collapsed .brand-logo.brand-logo-wide{width:42px;padding:4px;overflow:hidden}
.shell.sidebar-collapsed .brand-logo.brand-logo-wide img{width:104px;max-width:none;object-position:left center}
.report-menu{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.report-menu-card{position:relative;z-index:1;display:flex;flex-direction:column;gap:10px;min-height:140px;padding:20px;border:1px solid var(--line);border-top:5px solid #2563eb;border-radius:16px;background:#fff;color:var(--ink);box-shadow:0 8px 24px rgba(15,23,42,.06);overflow:hidden}
.report-menu-card:hover{transform:translateY(-2px);border-color:#93c5fd;box-shadow:0 12px 28px rgba(37,99,235,.12)}
.report-menu-card b{display:block;font-size:20px;line-height:1.25}
.report-menu-card span{display:block;color:#64748b;font-size:14px;line-height:1.55}
.report-menu-card:nth-child(2){border-top-color:#16a34a}.report-menu-card:nth-child(3){border-top-color:#f59e0b}.report-menu-card:nth-child(4){border-top-color:#7c3aed}
.mail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ticket-subject-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.ticket-subject-row label{margin:0}.ticket-subject-row .btn{margin-bottom:1px}
.ai-form-status{min-height:20px}
@media(max-width:700px){.ticket-subject-row{grid-template-columns:1fr}.ticket-subject-row .btn{width:100%}}

/* v19 mail rules and form templates */
.template-help{border:1px solid #bfdbfe;background:#eff6ff;border-radius:12px;padding:10px;margin-bottom:10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.template-help b{width:100%;color:#1e3a8a}.template-help span{border:1px solid #dbeafe;background:#fff;border-radius:999px;padding:4px 8px;font-weight:800;color:#1d4ed8;font-size:11px}.template-help small{width:100%}
.mail-rule-form{border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;padding:10px}


/* v20 AI text blocks + copy button */
.ai-blocks{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.ai-block{border:1px solid #dbeafe;border-radius:10px;background:#f8faff;padding:8px 10px;position:relative}
.ai-block-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:4px}
.ai-block-label{font-weight:700;font-size:12px;color:#3730a3}
.ai-block-text{color:#0f172a;font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}
.btn-copy{width:26px;height:26px;border:1px solid #c7d2fe;border-radius:7px;background:#eef2ff;color:#4f46e5;cursor:pointer;font-size:14px;display:inline-grid;place-items:center;flex-shrink:0;transition:background .12s}
.btn-copy:hover{background:#c7d2fe}
.btn-copy.copied{background:#bbf7d0;border-color:#86efac;color:#166534}

/* v20 Kanban board */
.kanban-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;overflow-x:auto;padding-bottom:12px}
.kanban-col{min-height:300px;border:1px solid var(--line);border-radius:14px;background:#f8fafc;padding:8px;display:flex;flex-direction:column}
.kanban-col--done{border-color:#bbf7d0;background:#f0fdf4}
.kanban-col-head{display:flex;align-items:center;gap:6px;margin-bottom:8px;padding:3px 2px;flex-wrap:wrap}
.kanban-col-head b{font-size:13px;flex:1}
.kanban-count{border:1px solid var(--line);border-radius:999px;background:#fff;padding:1px 7px;font-weight:800;color:#475569;font-size:11px}
.kanban-done-badge{background:#bbf7d0;border:1px solid #86efac;color:#166534;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800}
.kanban-cards{flex:1;display:flex;flex-direction:column;gap:7px;min-height:60px;border-radius:10px;padding:2px;transition:background .15s}
.kanban-cards.drag-over{background:#dbeafe;border:2px dashed #2563eb}
.kanban-card{border:1px solid var(--line);border-left:4px solid #2563eb;border-radius:12px;background:#fff;padding:9px;box-shadow:0 3px 10px rgba(15,23,42,.04);cursor:grab;transition:opacity .15s,box-shadow .15s}
.kanban-card:active{cursor:grabbing}
.kanban-card.dragging{opacity:.4;box-shadow:none}
.kanban-card-top{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:5px}
.kanban-no{font-size:11px;color:#64748b;font-weight:700}
.kanban-card-title{display:block;font-weight:700;font-size:13px;color:#0f172a;line-height:1.35;margin-bottom:6px}
.kanban-card-title:hover{color:#2563eb}
.kanban-card-meta{display:flex;flex-wrap:wrap;gap:5px;font-size:11px;color:#64748b}
.kanban-assignee{font-weight:600}
.kanban-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:999;background:#0f172a;color:#fff;border-radius:10px;padding:9px 16px;font-size:13px;font-weight:700;box-shadow:0 8px 28px rgba(0,0,0,.25)}
.kanban-toast.ok{background:#166534}
.kanban-toast.err{background:#991b1b}

/* v20 Lifecycle matrix */
.lifecycle-matrix-wrap{overflow-x:auto;margin-bottom:14px}
.lifecycle-matrix{font-size:12px;border-radius:10px}
.lifecycle-matrix th{font-size:11px;white-space:nowrap;max-width:80px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}
.lc-cell{text-align:center;padding:4px 3px!important}
.lc-check{display:flex;justify-content:center}
.lc-self{color:#94a3b8;font-size:14px}

/* v21 Logo centered + ticket kanban + misc */
.brand { display:flex; flex-direction:column; align-items:center; padding:16px 10px 8px; }
.brand-logo.brand-logo-wide { margin:0 auto; }
.sidebar .brand-logo.brand-logo-wide { background:transparent; }

/* Ticket kanban */
.tkanban-board { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:10px; overflow-x:auto; padding-bottom:14px; }
.tkanban-col { min-height:260px; border:1px solid var(--line); border-radius:14px; background:#f8fafc; padding:8px; display:flex; flex-direction:column; }
.tkanban-col--final { border-color:#e2e8f0; background:#f1f5f9; opacity:.9; }
.tkanban-col-head { display:flex; align-items:center; gap:6px; margin-bottom:8px; padding:3px 2px; flex-wrap:wrap; }
.tkanban-col-head b { font-size:13px; flex:1; }
.tkanban-col-count { border:1px solid var(--line); border-radius:999px; background:#fff; padding:1px 7px; font-weight:800; color:#475569; font-size:11px; }
.tkanban-cards { flex:1; display:flex; flex-direction:column; gap:7px; min-height:60px; border-radius:10px; padding:2px; transition:background .15s; }
.tkanban-cards.drag-over { background:#dbeafe; border:2px dashed #2563eb; }
.tkanban-card { border:1px solid var(--line); border-left:4px solid #2563eb; border-radius:12px; background:#fff; padding:9px; box-shadow:0 3px 10px rgba(15,23,42,.04); cursor:grab; }
.tkanban-card:active { cursor:grabbing; }
.tkanban-card.dragging { opacity:.4; box-shadow:none; }
.tkanban-card-top { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-bottom:4px; }
.tkanban-card-no { font-size:11px; color:#64748b; font-weight:700; }
.tkanban-priority { display:inline-flex; border-radius:999px; padding:2px 7px; font-weight:800; font-size:10px; background:#f1f5f9; color:#334155; border:1px solid #cbd5e1; }
.tkanban-priority.critical,.tkanban-priority.urgent { background:#fef2f2; border-color:#fecaca; color:#991b1b; }
.tkanban-priority.high { background:#fffbeb; border-color:#fde68a; color:#92400e; }
.tkanban-priority.normal,.tkanban-priority.medium { background:#eff6ff; border-color:#bfdbfe; color:#1d4ed8; }
.tkanban-priority.low { background:#f0fdf4; border-color:#bbf7d0; color:#166534; }
.tkanban-sla-badge { display:inline-flex; border-radius:999px; padding:2px 7px; font-weight:800; font-size:10px; background:#fef2f2; border:1px solid #fecaca; color:#991b1b; }
.tkanban-card-title { display:block; font-weight:700; font-size:13px; color:#0f172a; line-height:1.35; margin-bottom:5px; }
.tkanban-card-title:hover { color:#2563eb; }
.tkanban-card-meta { display:flex; flex-wrap:wrap; gap:5px; font-size:11px; color:#64748b; }
.tkanban-card-meta span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:120px; }
.tkanban-card-footer { display:flex; align-items:center; justify-content:space-between; margin-top:6px; padding-top:6px; border-top:1px solid #f1f5f9; }
.tkanban-assignee { display:flex; align-items:center; gap:5px; font-size:11px; color:#475569; }
.tkanban-assignee select { font-size:11px; border:1px solid #e2e8f0; border-radius:6px; padding:2px 4px; background:#fff; color:#0f172a; cursor:pointer; max-width:130px; }
.tkanban-filters { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:14px; }
.tkanban-filters .control { min-width:130px; }
.tkanban-section-label { font-size:11px; font-weight:700; color:#94a3b8; text-transform:uppercase; letter-spacing:.04em; padding:2px 4px; }

/* Dev kanban assign dropdown */
.kanban-card-assign { margin-top:6px; padding-top:6px; border-top:1px solid #f1f5f9; display:flex; align-items:center; gap:5px; }
.kanban-card-assign select { flex:1; font-size:11px; border:1px solid #e2e8f0; border-radius:7px; padding:3px 5px; background:#fff; color:#0f172a; }
.kanban-card-assign button { font-size:11px; border:1px solid #bfdbfe; border-radius:7px; background:#eff6ff; color:#1d4ed8; padding:3px 7px; cursor:pointer; white-space:nowrap; }
.kanban-card-assign button:hover { background:#dbeafe; }
/* Settings page: grouped layout with search */
.settings-search-wrap{margin-bottom:20px}
.settings-search{max-width:440px;display:block}
.settings-group{margin-bottom:22px}
.settings-group-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px;padding-left:2px}
.settings-group-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.settings-no-results{display:none;text-align:center;color:var(--muted);padding:40px 0}

/* Dark theme */
.theme-dark{--bg:#0f172a;--panel:#1e293b;--ink:#f1f5f9;--muted:#94a3b8;--line:#334155;--shadow:0 20px 60px rgba(0,0,0,.3)}
.theme-dark .sidebar{background:#020617}
.theme-dark .control{background:#0f172a;color:#f1f5f9;border-color:#334155}
.theme-dark .table{background:#1e293b}
.theme-dark .table th{background:#0f172a;color:#94a3b8}
.theme-dark .card,.theme-dark .stat,.theme-dark .settings-card{background:#1e293b}
.theme-dark .btn.light{background:#334155;color:#f1f5f9}
.theme-dark .msg{background:#0f172a;border-color:#334155}
.theme-dark .msg.internal{background:#1c1400;border-color:#854d0e}
.theme-dark .chip{background:#1e3a5f;color:#93c5fd;border-color:#1d4ed8}
.theme-dark .mini-list a{background:#0f172a;color:#e2e8f0;border-color:#334155}
.theme-dark .text-box{background:#0f172a;border-color:#334155}
.theme-dark .wysiwyg-editor,.theme-dark .wysiwyg-toolbar{background:#0f172a;border-color:#334155}
.theme-dark .kanban-card,.theme-dark .tkanban-card{background:#0f172a}
.theme-dark .kanban-col,.theme-dark .tkanban-col{background:#1e293b}

/* Brand subtitle under logo */
.brand-subtitle{color:#94a3b8;font-size:11px;text-align:center;margin-top:3px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* Lifecycle graph editor */
.lc-graph-canvas{position:relative;width:100%;height:480px;background:#f8fafc;border:1px solid var(--line);border-radius:14px;overflow:hidden;cursor:default}
.lc-graph-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.lc-graph-svg .lc-arrow{pointer-events:visibleStroke;cursor:pointer}
.lc-graph-svg .lc-arrow:hover{stroke-width:3;stroke:#dc2626}
.lc-node{position:absolute;min-width:120px;background:#fff;border:2px solid var(--line);border-radius:10px;padding:6px 22px 6px 10px;cursor:move;user-select:none;text-align:center;font-size:12px;font-weight:700;box-shadow:0 2px 8px rgba(15,23,42,.06);transition:border-color .15s}
.lc-node:hover{border-color:#2563eb}
.lc-node.lc-selected{border-color:#2563eb;background:#eff6ff}
.lc-node.lc-done{border-color:#16a34a;background:#f0fdf4;color:#166534}
.lc-node-remove{position:absolute;top:3px;right:4px;font-size:13px;line-height:1;padding:0 2px;background:none;border:none;color:#cbd5e1;cursor:pointer;opacity:0;transition:opacity .1s}
.lc-node:hover .lc-node-remove{opacity:1}
.lc-node-remove:hover{color:#dc2626!important;opacity:1}
.lc-node-handle{display:block;width:12px;height:12px;border-radius:50%;background:#2563eb;position:absolute;right:-7px;top:50%;transform:translateY(-50%);cursor:crosshair;border:2px solid #fff;box-shadow:0 0 0 1px #2563eb}
.lc-graph-hint{font-size:11px;color:#94a3b8;margin-top:8px}
.lc-graph-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap}

/* Modal overlay */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}
.modal-box{width:min(640px,100%);max-height:90vh;overflow-y:auto;position:relative}
.modal-close{position:absolute;right:12px;top:12px;background:none;border:1px solid var(--line);border-radius:8px;font-size:16px;cursor:pointer;color:#64748b;width:30px;height:30px;display:flex;align-items:center;justify-content:center}
.modal-close:hover{background:#f1f5f9}

/* User avatar */
.tbl-avatar{width:36px;height:36px;border-radius:50%;background:#e2e8f0;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;vertical-align:middle}
.tbl-avatar img{width:100%;height:100%;object-fit:cover}
.tbl-avatar-wrap{display:flex;align-items:center;gap:8px}

/* Test plan in dev issues */
.test-plan-section{border:1px solid #bfdbfe;background:#eff6ff;border-radius:14px;padding:12px;margin-top:8px}
.test-plan-section h3{margin:0 0 8px;font-size:14px;color:#1d4ed8}
.test-plan-item{display:flex;align-items:flex-start;gap:8px;padding:6px 0;border-bottom:1px solid #dbeafe}
.test-plan-item:last-child{border-bottom:0}
.test-plan-item input[type=checkbox]{margin-top:2px;flex-shrink:0}

/* Rating stars */
.rating-stars-display{display:flex;align-items:center;gap:3px;font-size:22px;margin-bottom:4px}
.rating-stars-display .star{color:#e2e8f0}.rating-stars-display .star.filled{color:#f59e0b}

/* Inline images in ticket view */
.inline-images-row{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 16px}
.inline-ticket-img{max-width:260px;max-height:200px;border-radius:8px;border:1px solid var(--line);cursor:zoom-in;transition:opacity .15s}
.inline-ticket-img:hover{opacity:.85}

/* Mail ingest log */
.mail-log-pre{background:#0f172a;color:#e2e8f0;font-size:11px;line-height:1.6;padding:14px 16px;border-radius:10px;overflow:auto;max-height:480px;white-space:pre-wrap;word-break:break-all}

/* Version management */
.version-block{border-bottom:1px solid var(--border, #e5e7eb)}
.version-block:last-child{border-bottom:none}
.version-header:hover{background:var(--hover,#f8fafc)}
tr.issue-done td{opacity:.6}
.mail-risk-row td {
  background: #fff1f2;
  border-color: #fecdd3;
}

.mail-risk-row td:first-child {
  box-shadow: inset 4px 0 0 #dc2626;
}
