







*{box-sizing:border-box;margin:0;padding:0}
:root{
    color-scheme:light;




    --portal-primary:#004A97;
    --portal-accent:#2563eb;



    --portal-primary-light:color-mix(in srgb,var(--portal-primary) 10%,transparent);
    --portal-primary-dark:color-mix(in srgb,var(--portal-primary) 82%,#000);


    --portal-primary-text:var(--portal-primary);
    --portal-accent-light:color-mix(in srgb,var(--portal-accent) 10%,transparent);
    --border-focus:var(--portal-primary);
    --on-primary:#fff;










    --portal-content-max:1600px;
    --portal-gutter:24px;





}







html.dark{
    color-scheme:dark;
    --bg:#1c2430;--surface:#232e3d;--surface-2:#2b3848;--surface-3:#2b3848;
    --border:#3a4e62;
    --text:#dbe5f0;--text-2:#a8bdd0;--text-3:#92a7ba;
    --green:#4ade80;--green-bg:rgba(74,222,128,.08);
    --amber:#fbbf24;--amber-bg:rgba(251,191,36,.08);
    --red:#f87171;--red-bg:rgba(248,113,113,.08);
    --blue:#60a5fa;--violet:#a78bfa;
    --shadow-sm:0 1px 3px rgba(0,0,0,.2);
    --shadow:0 2px 8px rgba(0,0,0,.22),0 1px 3px rgba(0,0,0,.14);
    --shadow-md:0 6px 20px rgba(0,0,0,.26),0 2px 6px rgba(0,0,0,.18);


    --portal-primary-light:color-mix(in srgb,var(--portal-primary) 22%,transparent);
    --portal-primary-dark:color-mix(in srgb,var(--portal-primary) 78%,#fff);
    --portal-primary-text:color-mix(in srgb,var(--portal-primary) 55%,#fff);
    --portal-accent-light:color-mix(in srgb,var(--portal-accent) 20%,transparent);
    --border-focus:color-mix(in srgb,var(--portal-primary) 55%,#fff);
}


html.dark .toast{background:var(--surface-2);color:var(--text);box-shadow:var(--shadow-md)}
html.dark .toast.success{border-left:3px solid var(--green)}
html.dark .toast.error{border-left:3px solid var(--red)}
html.dark .toast.info{border-left:3px solid var(--portal-primary-text)}
body{
    font-family:var(--font);color:var(--text);font-size:14px;line-height:1.5;
    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
    background-color:var(--bg);
    background-image:linear-gradient(180deg,color-mix(in srgb,var(--portal-primary) 5%,var(--bg)) 0,var(--bg) 360px);
    background-repeat:no-repeat;
}
::selection{background:color-mix(in srgb,var(--portal-primary) 18%,transparent)}
h1,h2,h3{letter-spacing:-.02em}









.portal-header,.portal-footer{
    padding-inline:max(var(--portal-gutter),
        calc((100% - var(--portal-content-max)) / 2 + var(--portal-gutter)));
}


.portal-header{
    background:var(--surface);border-bottom:1px solid var(--border);
    padding-block:0;height:60px;display:flex;align-items:center;gap:16px;
    position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm);
}
.portal-header::before{
    content:'';position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--portal-primary),var(--portal-accent));
}
.portal-logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.portal-logo img{height:28px;width:auto;border-radius:var(--r)}
.portal-fastlog-logo{height:28px!important;width:auto;display:block}
.portal-logo-divider{width:1px;height:24px;background:var(--border);margin:0 4px;flex-shrink:0}
.portal-logo-text{font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.3px}




.portal-tenant{display:flex;align-items:center;gap:8px;min-width:0}
.portal-tenant-logo{height:24px;width:auto;max-width:110px;object-fit:contain;border-radius:var(--r);display:block;flex-shrink:0}
.portal-tenant-name{
    font-size:13px;font-weight:600;color:var(--text-2);letter-spacing:-.2px;
    max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.nav-drawer-tenant{display:flex;align-items:center;gap:10px;min-width:0}
.portal-nav{display:flex;align-items:center;gap:4px;flex:1;margin-left:24px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.portal-nav a{
    font-size:13px;font-weight:600;color:var(--text-2);text-decoration:none;white-space:nowrap;
    padding:8px 12px;border-radius:var(--r);transition:all var(--dur-fast) var(--ease-out);
}
.portal-nav a:hover{background:var(--surface-2);color:var(--text)}
.portal-nav a.active{background:var(--portal-primary-light);color:var(--portal-primary-text)}
.portal-user{margin-left:auto;display:flex;align-items:center;gap:12px;flex-shrink:0}
.portal-user-name{font-size:13px;color:var(--text-2);font-weight:500}
.portal-user-avatar{
    width:32px;height:32px;border-radius:var(--r-full);
    background:linear-gradient(135deg,var(--portal-primary),var(--portal-accent));color:var(--on-primary);
    display:flex;align-items:center;justify-content:center;
    font-size:11px;font-weight:700;
    box-shadow:0 2px 6px color-mix(in srgb,var(--portal-primary) 30%,transparent);
}
.portal-logout{
    font-size:12px;font-weight:600;color:var(--text-3);cursor:pointer;border:none;background:none;
    font-family:var(--font);padding:6px 10px;border-radius:var(--r);transition:all var(--dur-fast);
}
.portal-logout:hover{background:var(--surface-2);color:var(--text)}
.header-icon-btn{
    width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;
    border:none;background:none;color:var(--text-2);cursor:pointer;
    border-radius:var(--r);transition:all var(--dur-fast) var(--ease-out);
}
.header-icon-btn:hover{background:var(--surface-2);color:var(--text)}
.header-icon-btn span{display:inline-flex}


.user-menu-wrap{position:relative;display:flex;align-items:center}
.user-menu-btn{
    display:flex;align-items:center;gap:10px;background:none;border:none;cursor:pointer;
    padding:4px 6px;border-radius:var(--r);font-family:var(--font);
    transition:background var(--dur-fast) var(--ease-out);
}
.user-menu-btn:hover{background:var(--surface-2)}
.menu-panel{
    position:absolute;top:calc(100% + 8px);right:0;min-width:220px;
    background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
    box-shadow:var(--shadow-md);padding:6px;z-index:200;
    animation:fadeUp var(--dur-fast) var(--ease-out);
}
.menu-head{padding:10px 12px 8px;border-bottom:1px solid var(--border);margin-bottom:6px}
.menu-head-name{font-size:13px;font-weight:700;color:var(--text)}
.menu-head-mail{font-size:12px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis}
.menu-item{
    display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;
    font-size:13px;font-weight:600;color:var(--text-2);text-decoration:none;
    background:none;border:none;border-radius:var(--r);cursor:pointer;
    font-family:var(--font);text-align:left;
    transition:all var(--dur-fast) var(--ease-out);
}
.menu-item:hover{background:var(--surface-2);color:var(--text)}
.menu-divider{height:1px;background:var(--border);margin:6px 0}


.nav-toggle{display:none}
.nav-drawer-overlay{position:fixed;inset:0;background:var(--overlay);z-index:900}
.nav-drawer{
    position:fixed;top:0;left:0;bottom:0;width:280px;max-width:85vw;
    background:var(--surface);z-index:901;display:flex;flex-direction:column;
    box-shadow:var(--shadow-md);animation:drawerIn var(--dur) var(--ease-out);
}
@keyframes drawerIn{from{transform:translateX(-100%)}to{transform:none}}
.nav-drawer-head{
    display:flex;align-items:center;justify-content:space-between;
    padding:12px 12px 12px 16px;border-bottom:1px solid var(--border);min-height:60px;
}
.nav-drawer-nav{display:flex;flex-direction:column;gap:2px;padding:12px;flex:1;overflow-y:auto}
.nav-drawer-nav a{
    display:flex;align-items:center;gap:12px;min-height:48px;padding:0 12px;
    font-size:14px;font-weight:600;color:var(--text-2);text-decoration:none;
    border-radius:var(--r);transition:all var(--dur-fast) var(--ease-out);
}
.nav-drawer-nav a:hover{background:var(--surface-2);color:var(--text)}
.nav-drawer-nav a.active{background:var(--portal-primary-light);color:var(--portal-primary-text)}
.nav-drawer-foot{padding:12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:2px}


@keyframes sheetUp{from{transform:translateY(100%)}to{transform:none}}
@media(max-width:640px){
    .modal-overlay{align-items:flex-end}
    .modal--sheet{
        max-width:none!important;width:100%;border-radius:var(--r) var(--r) 0 0;
        max-height:92vh;animation:sheetUp var(--dur) var(--ease-out);
    }
}


.portal-main{
    max-width:var(--portal-content-max);margin:0 auto;
    padding-block:32px 48px;padding-inline:var(--portal-gutter);
}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}









.portal-main>*{animation:fadeUp var(--dur-slow) var(--ease-out) backwards}


.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.page-title{font-family:var(--font-display);font-size:24px;font-weight:var(--font-display-weight);letter-spacing:-.02em;color:var(--text);margin:0;line-height:1.2}
.page-sub{font-size:13px;color:var(--text-2);margin:4px 0 0}
.back-link{
    display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;
    color:var(--text-2);text-decoration:none;padding:6px 10px;border-radius:var(--r);
    transition:all var(--dur-fast);
}
.back-link:hover{background:var(--surface-2);color:var(--text)}


.dashboard-hero{
    position:relative;overflow:hidden;border-radius:var(--r);
    background:linear-gradient(135deg,var(--portal-primary) 0%,var(--portal-primary-dark) 100%);
    color:var(--on-primary);padding:32px;margin-bottom:24px;
    display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
    box-shadow:0 12px 32px color-mix(in srgb,var(--portal-primary) 30%,transparent);
}
.dashboard-hero::before{
    content:'';position:absolute;top:-60%;right:-8%;width:420px;height:420px;border-radius:50%;
    background:radial-gradient(closest-side,rgba(255,255,255,.14),transparent);pointer-events:none;
}
.dashboard-hero>*{position:relative}
.dashboard-hero-title{font-family:var(--font-display);font-size:26px;font-weight:var(--font-display-weight);letter-spacing:-.02em;margin:0;line-height:1.2}
.dashboard-hero-sub{font-size:14px;color:rgba(255,255,255,.85);margin:8px 0 0}



.hero-brand{display:flex;align-items:center;gap:16px;flex:1;min-width:220px}
.hero-brand-text{min-width:0}












.hero-tenant-logo{
    flex-shrink:0;display:flex;align-items:center;justify-content:center;
    height:96px;max-width:200px;overflow:hidden;border-radius:var(--r);
    background:rgba(255,255,255,.92);box-shadow:inset 0 0 0 1px rgba(255,255,255,.45);
}


.hero-tenant-logo img{height:100%;width:auto;max-width:100%;object-fit:contain;display:block}


.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}
.kpi-card{
    background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
    padding:20px;box-shadow:var(--shadow);position:relative;overflow:hidden;
}
.kpi-card::before{
    content:'';position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--portal-primary),var(--portal-accent));opacity:.9;
}
.kpi-card-label{font-size:11px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em}
.kpi-card-value{font-family:var(--font);font-size:32px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text);margin-top:8px;line-height:1.1}
.kpi-card-sub{font-size:12px;color:var(--text-3);margin-top:4px}


.portal-card{
    background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
    box-shadow:var(--shadow);
}
.portal-card-header{
    padding:16px 20px;border-bottom:1px solid var(--border);
    display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.portal-card-title{font-family:var(--font);font-size:14px;font-weight:700;letter-spacing:-.01em;color:var(--text)}
.portal-card-body{padding:20px}


.fl-interactive{
    --fl-glow:var(--portal-primary);
    cursor:pointer;
    transition:box-shadow var(--dur) cubic-bezier(.2,0,0,1),transform var(--dur) cubic-bezier(.2,0,0,1),border-color var(--dur) cubic-bezier(.2,0,0,1);
}
@media (hover:hover){
    .fl-interactive:hover{
        box-shadow:0 0 0 1px var(--fl-glow),0 8px 20px color-mix(in srgb,var(--fl-glow) 14%,transparent);
        transform:translateY(-2px);
    }
}
.fl-interactive:focus-visible{outline:none;box-shadow:0 0 0 2px var(--fl-glow),0 8px 20px color-mix(in srgb,var(--fl-glow) 18%,transparent)}
.fl-interactive:active{transform:translateY(0);transition-duration:var(--dur-fast)}
.fl-interactive[aria-disabled="true"],.fl-interactive:disabled{cursor:not-allowed;opacity:.55;pointer-events:none}

.fl-row-interactive{
    --fl-glow:var(--portal-primary);
    cursor:pointer;
    position:relative;
    transition:background var(--dur-fast) cubic-bezier(.2,0,0,1),box-shadow var(--dur-fast) cubic-bezier(.2,0,0,1);
}





@media (hover:hover){
    .fl-row-interactive:hover{
        background:color-mix(in srgb,var(--fl-glow) 6%,transparent);
        box-shadow:inset 0 0 0 1px var(--fl-glow),inset 3px 0 0 var(--fl-glow),0 4px 12px color-mix(in srgb,var(--fl-glow) 12%,transparent);
        z-index:1;
    }
}
.fl-row-interactive:focus-visible{outline:none;background:color-mix(in srgb,var(--fl-glow) 8%,transparent);box-shadow:inset 0 0 0 2px var(--fl-glow),inset 3px 0 0 var(--fl-glow)}


.fl-dropzone{border:2px dashed var(--border);border-radius:var(--r);padding:20px;text-align:center;background:var(--surface);cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast)}
.fl-dropzone--active,.fl-dropzone:hover{border-color:var(--portal-primary);background:color-mix(in srgb,var(--portal-primary) 5%,transparent)}

@media (prefers-reduced-motion:reduce){
    .fl-interactive,.fl-row-interactive{transition:none!important}
    .fl-interactive:hover{transform:none!important}
}


.portal-table{width:100%;border-collapse:collapse}
.portal-table th{
    padding:10px 16px;font-size:11px;font-weight:700;color:var(--text-3);
    text-transform:uppercase;letter-spacing:.06em;text-align:left;
    border-bottom:1px solid var(--border);background:var(--surface-2);
}
.portal-table td{
    padding:12px 16px;font-size:13px;border-bottom:1px solid var(--border);
    vertical-align:middle;
}
.portal-table th:first-child,.portal-table td:first-child{padding-left:20px}
.portal-table th:last-child,.portal-table td:last-child{padding-right:20px}
.portal-table tbody tr:last-child td{border-bottom:none}
.portal-table tbody tr{transition:background var(--dur-fast)}
.portal-table tr:hover td{background:color-mix(in srgb,var(--portal-primary) 4%,transparent)}
.portal-table tr{cursor:pointer}






.portal-table .cell-meta{color:var(--text-3);font-size:12px;white-space:nowrap}



.portal-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.portal-table-wrap .portal-table{min-width:520px}












.portal-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:20px}
@media(max-width:768px){.portal-detail-grid{grid-template-columns:minmax(0,1fr)}}







.status-badge{
    display:inline-flex;align-items:center;gap:7px;white-space:nowrap;
    font-size:12px;font-weight:500;color:var(--text);
    --status-dot:var(--text-3);
}
.status-badge::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--status-dot);flex-shrink:0}
.status-badge.open{--status-dot:var(--portal-primary)}
.status-badge.in-progress{--status-dot:var(--amber)}
.status-badge.waiting{--status-dot:var(--violet)}
.status-badge.done{--status-dot:var(--green)}






.priority-badge{
    display:inline-flex;align-items:center;
    font-size:12px;font-weight:500;color:var(--text-2);
}
.priority-badge.kritisch{font-weight:700;color:var(--text)}


.btn{
    display:inline-flex;align-items:center;gap:6px;padding:8px 16px;
    border-radius:var(--r);font-size:13px;font-weight:600;cursor:pointer;
    border:1px solid transparent;transition:all var(--dur-fast) var(--ease-out);font-family:var(--font);
}
.btn-primary{
    background:var(--portal-primary);color:var(--on-primary);border-color:var(--portal-primary);
    box-shadow:0 1px 2px color-mix(in srgb,var(--portal-primary) 30%,transparent);
}
.btn-primary:hover{
    background:var(--portal-primary-dark);border-color:var(--portal-primary-dark);
    box-shadow:0 4px 12px color-mix(in srgb,var(--portal-primary) 30%,transparent);transform:translateY(-1px);
}
.btn-primary:active{transform:none;box-shadow:0 1px 2px color-mix(in srgb,var(--portal-primary) 30%,transparent)}
.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:var(--shadow-sm)}
.btn-secondary:hover{border-color:color-mix(in srgb,var(--portal-primary) 35%,var(--border));color:var(--portal-primary-text)}
.btn-sm{font-size:12px;padding:6px 12px}
.btn-danger{background:var(--surface);color:var(--red);border-color:var(--red)}
.btn-danger:hover{background:var(--red-bg)}


.btn-success{background:var(--green);border-color:var(--green);color:var(--surface)}
.btn-success:hover{filter:brightness(.95)}


.form-group{margin-bottom:16px}
.form-label{display:block;font-size:12px;font-weight:600;color:var(--text-2);margin-bottom:4px}
.form-input,.form-textarea,.form-select{
    width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r);
    font-size:13px;font-family:var(--font);color:var(--text);background:var(--surface);
    transition:border-color var(--dur-fast),box-shadow var(--dur-fast);
}
.form-input:hover,.form-textarea:hover,.form-select:hover{
    border-color:color-mix(in srgb,var(--portal-primary) 30%,var(--border));
}
.form-input:focus,.form-textarea:focus,.form-select:focus{
    outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--portal-primary-light);
}
.form-textarea{min-height:120px;resize:vertical}
.form-input-error{border-color:var(--red) !important}


.comment-list{list-style:none}
.comment-item{
    padding:16px 0;border-bottom:1px solid var(--border);
}
.comment-item:last-child{border-bottom:none}
.comment-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.comment-author{font-size:13px;font-weight:600;color:var(--text)}
.comment-date{font-size:11px;color:var(--text-3)}
.comment-body{font-size:13px;color:var(--text-2);line-height:1.6;white-space:pre-wrap}


.modal-overlay{
    position:fixed;top:0;left:0;right:0;bottom:0;background:var(--overlay);
    display:flex;align-items:center;justify-content:center;z-index:1000;
}
.modal{
    background:var(--surface);border-radius:var(--r);box-shadow:0 20px 60px rgba(0,0,0,.3);
    width:100%;max-width:560px;max-height:90vh;overflow-y:auto;
}
.modal-header{
    padding:20px 24px;border-bottom:1px solid var(--border);
    display:flex;align-items:center;justify-content:space-between;
}
.modal-title{font-family:var(--font);font-size:16px;font-weight:700}
.modal-close{
    border:none;background:none;font-size:18px;cursor:pointer;color:var(--text-3);
    width:32px;height:32px;display:flex;align-items:center;justify-content:center;
    border-radius:var(--r);
}
.modal-close:hover{background:var(--surface-3)}
.modal-body{padding:24px}
.modal-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}


.modal--preview{width:min(1000px,calc(100vw - 48px));max-width:none;height:calc(100vh - 64px);max-height:none;display:flex;flex-direction:column}
.dp-preview-body{flex:1;padding:0;background:var(--surface-2);overflow:auto;position:relative}
.dp-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.dp-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--text-2);font-size:13px;padding:24px;text-align:center}
.dp-pages{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px}
.dp-image-wrap{display:flex;align-items:center;justify-content:center;padding:16px;height:100%}
.dp-image-wrap img{max-width:100%;max-height:100%;object-fit:contain}
.dp-text-wrap{padding:18px;height:100%;overflow:auto}
.dp-text-wrap pre{font-family:var(--font-mono,monospace);font-size:12px;color:var(--text);white-space:pre-wrap;word-break:break-word;margin:0}

.dp-page{position:relative}
.dp-page .textLayer{
    position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden;opacity:.25;line-height:1;
    transform-origin:0 0;pointer-events:auto;
}
.dp-page .textLayer span,.dp-page .textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}
.dp-page .textLayer ::selection{background:rgba(0,100,200,.35);color:transparent}
@media(max-width:640px){
    .modal--preview{width:calc(100vw - 32px);height:calc(100vh - 32px)}
}


.empty-state{text-align:center;padding:48px 24px;color:var(--text-3)}
.empty-state-icon{
    width:64px;height:64px;margin:0 auto 12px;border-radius:var(--r-full);
    background:var(--surface-2);display:flex;align-items:center;justify-content:center;
}
.empty-state-text{font-size:14px;font-weight:600;color:var(--text-2)}


.loading{display:flex;align-items:center;justify-content:center;padding:48px}
.spinner{
    width:32px;height:32px;border:3px solid var(--border);
    border-top-color:var(--portal-primary);border-radius:50%;
    animation:spin 1s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}


.toast-container{position:fixed;top:16px;right:16px;z-index:2000;display:flex;flex-direction:column;gap:8px}
.toast{
    padding:12px 16px;border-radius:var(--r);font-size:13px;font-weight:600;
    box-shadow:0 8px 24px rgba(0,0,0,.18);animation:slideIn var(--dur) var(--ease-out);
    display:flex;align-items:center;gap:8px;min-width:280px;
}
.toast.success{background:var(--green);color:#fff}
.toast.error{background:var(--red);color:#fff}
.toast.info{background:var(--portal-primary);color:#fff}
@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}




.landing-page{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}
.landing-split{flex:1;display:grid;grid-template-columns:1.1fr 1fr}
.landing-brand-pane{
    position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;
    padding:48px;color:var(--on-primary);
    background:linear-gradient(135deg,var(--portal-primary) 0%,var(--portal-primary-dark) 100%);
}
.landing-brand-pane::before{
    content:'';position:absolute;top:-20%;right:-10%;width:520px;height:520px;
    border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.12),transparent 70%);
}
.landing-brand-inner{position:relative;max-width:460px}
.landing-brand-logo{display:inline-flex;align-items:center;margin-bottom:28px}
.landing-brand-logo img{
    height:42px;width:auto;display:block;border-radius:var(--r);
    border:1px solid rgba(255,255,255,.25);
}
.landing-title{font-family:var(--font-display);font-size:32px;font-weight:var(--font-display-weight);margin:0 0 8px;letter-spacing:-.02em;color:inherit}
.landing-brand-sub{font-size:15px;color:rgba(255,255,255,.85);margin:0;line-height:1.5}


.landing-preview{
    margin-top:32px;background:var(--surface);border:1px solid var(--border);
    border-radius:var(--r);box-shadow:var(--shadow-md);padding:16px 18px;
    max-width:340px;width:100%;color:var(--text);
}
.landing-preview-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.landing-preview-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:8px}
.landing-preview-sla{font-size:12px;color:var(--text-3);margin-bottom:14px}
.landing-preview-reply{display:flex;align-items:center;gap:8px;padding-top:12px;border-top:1px solid var(--border)}
.landing-preview-reply-text{font-size:12px;color:var(--text-2);line-height:1.5}


.landing-status{display:flex;align-items:center;gap:7px;margin-top:24px;font-size:13px;color:rgba(255,255,255,.85);--status-dot:var(--green)}
.landing-status::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--status-dot);flex-shrink:0}
.landing-status.degraded{--status-dot:var(--amber)}
.landing-auth-pane{display:flex;align-items:center;justify-content:center;padding:48px 24px}
.landing-card{
    background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
    box-shadow:var(--shadow-md);max-width:400px;width:100%;padding:36px 32px;
}
.landing-auth-title{font-family:var(--font-display);font-size:22px;font-weight:var(--font-display-weight);margin:0 0 6px;color:var(--text)}
.landing-auth-sub{font-size:13px;color:var(--text-2);margin:0 0 24px;line-height:1.5}
.landing-btn{width:100%;justify-content:center;padding:13px 24px;font-size:15px}
.landing-links{
    display:flex;align-items:center;justify-content:space-between;
    margin-top:16px;padding-top:16px;border-top:1px solid var(--border);
    font-size:13px;
}
.landing-link{color:var(--portal-primary-text);text-decoration:none;font-weight:600;cursor:pointer;background:none;border:none;padding:0;font-family:var(--font)}
.landing-link:hover{text-decoration:underline}
.landing-hint{color:var(--text-3);font-size:12px}

.landing-trust{display:flex;align-items:flex-start;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-3);line-height:1.5}
.landing-trust-icon{flex-shrink:0;color:var(--text-3);display:inline-flex;margin-top:1px}
.landing-contact{margin-top:16px;text-align:center;color:var(--text-3);font-size:12px}
@media(max-width:900px){
    .landing-split{grid-template-columns:1fr}
    .landing-brand-pane{padding:40px 24px}
    .landing-auth-pane{padding:32px 16px 40px}
}
@media(max-width:640px){








    .landing-split{align-content:start}
    .landing-preview{display:none}
    .landing-brand-sub{display:none}
    .landing-brand-pane{padding:24px 20px 16px}
    .landing-status{margin-top:10px}
    .landing-auth-pane{padding:16px 16px 24px}
    .landing-card{padding:20px 20px}
    .landing-auth-sub{margin:0 0 16px}



    .landing-auth-pane .landing-btn{min-height:52px}
}


.register-page{
    display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;
    background:linear-gradient(135deg,var(--portal-primary) 0%,var(--portal-primary-dark) 100%);
}
.register-card{
    background:var(--surface);border-radius:var(--r);box-shadow:0 24px 80px rgba(0,0,0,.35);
    max-width:480px;width:100%;overflow:hidden;
}
.register-header{padding:40px 32px 24px;text-align:center}
.register-logo{height:48px;width:auto;margin-bottom:20px}
.register-title{font-family:var(--font-display);font-size:22px;font-weight:var(--font-display-weight);color:var(--text);margin:0}
.register-subtitle{font-size:14px;color:var(--text-2);margin:8px 0 0}
.register-body{padding:0 32px 32px}
.register-greeting{font-size:15px;color:var(--text);font-weight:600;margin:0 0 8px}
.register-text{font-size:14px;color:var(--text-2);line-height:1.6;margin:0 0 24px}
.register-btn{width:100%;justify-content:center;padding:12px 24px;font-size:15px}
.register-login-hint{text-align:center;font-size:13px;color:var(--text-3);margin:16px 0 0}
.register-login-link{color:var(--portal-primary-text);text-decoration:none;font-weight:600}
.register-login-link:hover{text-decoration:underline}
.register-error-icon{font-size:48px;margin-bottom:12px}

.register-page>.loading .spinner{border-color:rgba(255,255,255,.35);border-top-color:var(--on-primary)}
.register-page>.loading p{color:rgba(255,255,255,.85)!important}


.portal-footer{
    text-align:center;padding-block:32px;margin-top:48px;
    border-top:1px solid var(--border);color:var(--text-3);font-size:12px;
    letter-spacing:.01em;
}


@media(max-width:768px){



    :root{--portal-gutter:16px}
    .portal-header{gap:8px}



    .portal-tenant-name{display:none}
    .portal-logo-divider{display:none}

    .portal-nav{display:none}
    .nav-toggle{display:inline-flex;width:44px;height:44px}
    .portal-main{padding-block:20px 32px}
    .kpi-grid{grid-template-columns:repeat(2,1fr);gap:8px}
    .kpi-card-value{font-size:26px}
    .portal-user-name{display:none}
    .modal{max-width:calc(100% - 32px)}
    .dashboard-hero{padding:24px 20px}
    .dashboard-hero-title{font-size:22px}
    .hero-brand{gap:12px}
    .hero-tenant-logo{height:72px;max-width:150px}
    .landing-title{font-size:26px}
    .portal-seg-btn{min-height:44px}
    .table-search{flex-basis:100%;margin-left:0}
}
@media(max-width:480px){
    .kpi-grid{grid-template-columns:1fr}
}



.portal-seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;font-size:12px;background:var(--surface);box-shadow:var(--shadow-sm)}
.portal-seg-btn{padding:6px 12px;background:var(--surface);color:var(--text-2);border:none;cursor:pointer;font-family:var(--font);font-size:12px;font-weight:600;transition:background var(--dur-fast)}
.portal-seg-btn:hover{background:var(--surface-2)}
.portal-seg-btn.active{background:var(--portal-primary);color:var(--on-primary)}
.portal-chip{padding:5px 14px;border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);color:var(--text-2);font-size:12px;font-weight:600;cursor:pointer;font-family:var(--font);transition:all var(--dur-fast)}
.portal-chip:hover{border-color:var(--portal-primary);color:var(--portal-primary-text)}
.portal-chip.active{background:var(--chip-color,var(--portal-primary));color:var(--on-primary);border-color:var(--chip-color,var(--portal-primary))}


.knowledge-cat-chip{padding:6px 12px;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-full);font-size:13px;cursor:pointer;color:var(--text-2);transition:all var(--dur-fast) ease}
.knowledge-cat-chip:hover{border-color:var(--portal-primary);color:var(--portal-primary-text)}
.knowledge-cat-chip.active{background:var(--portal-primary);color:var(--on-primary);border-color:var(--portal-primary)}
.knowledge-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px;cursor:pointer;box-shadow:var(--shadow);transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);display:flex;flex-direction:column;gap:6px}
.knowledge-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px color-mix(in srgb,var(--portal-primary) 14%,transparent);border-color:var(--portal-primary)}
.knowledge-card-cat{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--portal-primary-text);font-weight:600}
.knowledge-card-title{margin:0;font-size:16px;font-weight:600;color:var(--text);line-height:1.3}
.knowledge-card-summary{margin:0;font-size:13px;color:var(--text-2,#4b5563);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.knowledge-card-meta{font-size:11px;color:var(--text-3,#6b7280);margin-top:auto;padding-top:6px}
.knowledge-modal-overlay{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:1000;overflow-y:auto}
.knowledge-modal{background:var(--surface);border-radius:var(--r);max-width:760px;width:100%;box-shadow:0 20px 50px rgba(0,0,0,.25);display:flex;flex-direction:column;max-height:calc(100vh - 80px)}
.knowledge-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px;border-bottom:1px solid var(--border)}
.knowledge-modal-cat{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--portal-primary-text);font-weight:600;margin-bottom:4px}
.knowledge-modal-title{font-family:var(--font-display);margin:0;font-size:20px;font-weight:var(--font-display-weight);color:var(--text)}
.knowledge-modal-close{background:none;border:none;font-size:28px;line-height:1;color:var(--text-3,#6b7280);cursor:pointer;padding:0 4px}
.knowledge-modal-close:hover{color:var(--text)}
.knowledge-modal-body{padding:20px 24px;overflow-y:auto}
.knowledge-modal-summary{margin:0 0 16px;font-size:14px;color:var(--text-2,#4b5563);font-style:italic}
.knowledge-modal-content{font-size:14px;line-height:1.6;color:var(--text)}
.knowledge-modal-content h2{font-size:18px;margin:20px 0 8px}
.knowledge-modal-content h3{font-size:16px;margin:16px 0 6px}
.knowledge-modal-content h4{font-size:14px;margin:14px 0 6px}
.knowledge-modal-content p{margin:0 0 10px}
.knowledge-modal-content ul{margin:8px 0;padding-left:22px}
.knowledge-modal-content hr{border:none;border-top:1px solid var(--border);margin:14px 0}
.knowledge-modal-meta{margin-top:20px;padding-top:12px;border-top:1px solid var(--border);font-size:12px;color:var(--text-3,#6b7280)}

.knowledge-feedback{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.knowledge-feedback-question{font-size:13px;font-weight:600;color:var(--text);margin-bottom:8px}
.knowledge-feedback-actions{display:flex;gap:8px}
.knowledge-feedback-comment{margin-top:10px}
.knowledge-feedback-thanks{font-size:13px;font-weight:600;color:var(--green)}
@media(max-width:600px){
    .knowledge-modal-overlay{padding:0}
    .knowledge-modal{border-radius:0;max-height:100vh;height:100vh}
}



.skip-link{
    position:absolute;left:-9999px;top:8px;z-index:9999;
    padding:8px 16px;background:var(--portal-primary);color:var(--on-primary);
    border-radius:var(--r);font-size:13px;text-decoration:none;font-weight:600;
}
.skip-link:focus{left:8px;outline:2px solid #fff;outline-offset:2px}



:focus-visible{outline:2px solid var(--portal-primary);outline-offset:2px}
button:focus-visible,a:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible{
    outline:2px solid var(--portal-primary);outline-offset:2px
}

button:focus:not(:focus-visible){outline:none}


[aria-invalid="true"]{border-color:#dc2626 !important;outline-color:#dc2626}


.hero-side{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.kpi-spark{width:100%;height:28px;margin-top:10px;display:block}


.hero-tagline{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 0;font-size:13px;color:rgba(255,255,255,.9)}
.hero-tagline-link{color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.hero-tagline-sep{opacity:.6}


.hero-search{
    display:flex;align-items:center;gap:10px;width:100%;max-width:320px;
    padding:10px 14px;font-family:var(--font);font-size:13px;color:var(--text-3);
    background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
    cursor:pointer;text-align:left;box-shadow:var(--shadow-sm);
    transition:border-color var(--dur-fast) var(--ease-out);
}
.hero-search:hover,.hero-search:focus-visible{outline:none;border-color:var(--border-focus)}
.hero-search-icon{display:inline-flex;flex-shrink:0}
.hero-search-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}

.trend-fallback{display:flex;gap:6px;align-items:flex-end;height:140px}
.trend-fallback-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px}
.trend-fallback-nums{display:flex;gap:2px;justify-content:center;font-size:12px;font-weight:600;line-height:1}
.trend-fallback-nums span{width:14px;text-align:center}
.trend-fallback-nums .is-created{color:var(--portal-primary-text)}
.trend-fallback-nums .is-resolved{color:var(--green)}
.trend-fallback-legend{display:flex;gap:16px;margin-top:8px;font-size:12px;color:var(--text-3)}
.trend-fallback-bars{display:flex;gap:2px;height:120px;align-items:flex-end;width:100%;justify-content:center}
.trend-fallback-bar{width:14px;border-radius:var(--r) var(--r) 0 0}
.trend-fallback-bar--created{background:var(--portal-primary)}
.trend-fallback-bar--resolved{background:var(--green)}
.donut-row{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.donut-legend{min-width:140px}
.donut-legend-label{flex:1;min-width:72px;color:var(--text-2)}
.donut-legend-value{font-weight:700}
.donut-legend-pct{color:var(--text-3);min-width:40px;text-align:right}



.quality-list{display:flex;flex-direction:column}
.quality-list>div{padding:12px 0;border-bottom:1px solid var(--border)}
.quality-list>div:first-child{padding-top:4px}
.quality-list>div:last-child{padding-bottom:0;border-bottom:none}
.quality-list .kpi-card-value{font-size:26px}
.quality-list .kpi-card-sub{min-height:1.4em}
.quality-list .kpi-spark{width:120px;height:34px;margin-top:8px}

.sidebar-way{display:flex;align-items:flex-start;gap:10px;padding:8px 0;text-decoration:none;color:inherit;border-bottom:1px solid var(--border)}
.sidebar-way:last-child{border-bottom:none}
.sidebar-way-icon{flex-shrink:0;color:var(--portal-primary-text)}
.sidebar-way-label{display:block;font-size:13px;font-weight:600}


.announce-list{margin-bottom:16px}
.announce{
    display:flex;gap:10px;align-items:flex-start;padding:12px 14px;margin-bottom:8px;
    border-radius:var(--r);border-left:3px solid var(--blue);
    background:color-mix(in srgb,var(--blue) 9%,transparent);
}
.announce--warning{border-left-color:var(--amber);background:color-mix(in srgb,var(--amber) 9%,transparent)}
.announce--important{border-left-color:var(--red);background:color-mix(in srgb,var(--red) 9%,transparent)}
.announce-icon{line-height:1;flex-shrink:0;color:var(--blue)}
.announce--warning .announce-icon{color:var(--amber)}
.announce--important .announce-icon{color:var(--red)}
.announce-title{font-weight:600;font-size:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.announce-tag{font-size:10px;padding:1px 6px;border-radius:var(--r-full);background:color-mix(in srgb,var(--text) 6%,transparent);font-weight:700}
.announce-tag--ack{background:var(--amber-bg);color:var(--amber)}
.announce-body{font-size:12px;margin-top:2px;color:var(--text-2)}




.cell-key{font-weight:600;color:var(--portal-primary-text);white-space:nowrap}
.portal-table .cell-key{min-width:76px;position:relative}






.portal-table td.cell-key{padding-left:34px}








.portal-table .cell-title{width:100%;max-width:0}
.cell-title-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.mini-title{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;margin-bottom:8px;color:var(--portal-primary-text)}




.cell-name{font-weight:500}
.cell-actions{text-align:right;white-space:nowrap}
.portal-table .cell-lastlogin{color:var(--text-3)}


.cell-resolved{white-space:nowrap}


.detail-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:8px}




.detail-more{position:relative}
.detail-more summary{
    list-style:none;display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:var(--r);color:var(--text-2);
    cursor:pointer;transition:background var(--dur-fast) var(--ease-out);
}
.detail-more summary::-webkit-details-marker{display:none}
.detail-more summary:hover,.detail-more[open] summary{background:var(--surface-2);color:var(--text)}
.detail-more-panel{
    position:absolute;top:calc(100% + 4px);right:0;z-index:5;
    display:flex;flex-direction:column;align-items:flex-start;gap:8px;
    min-width:220px;padding:12px;background:var(--surface);border:1px solid var(--border);
    border-radius:var(--r);box-shadow:var(--shadow-md);animation:fadeUp var(--dur-fast) var(--ease-out);
}
.detail-head-row{display:flex;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap}
.copy-key{
    display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:700;
    color:var(--portal-primary-text);background:none;border:none;cursor:pointer;
    padding:2px 8px;margin-left:-8px;border-radius:var(--r);font-family:var(--font);
    transition:background var(--dur-fast) var(--ease-out);
}
.copy-key:hover{background:var(--portal-primary-light)}
.copy-key-icon{display:inline-flex;color:var(--text-3)}
.section-label{font-size:11px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:16px}
.issue-status-prominent{display:flex}
.status-badge-lg{font-size:16px;font-weight:700;gap:9px}
.status-badge-lg::before{width:10px;height:10px}
.sla-block{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.sla-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.sla-state{font-size:12px;font-weight:600;color:var(--green);font-variant-numeric:tabular-nums}
.sla-state::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:6px;vertical-align:1px}
.sla-state--warn{color:var(--amber)}
.sla-state--breach{color:var(--red)}



.sla-state--paused{color:var(--violet)}



.sla-caption{font-size:12px;color:var(--text-2)}
.sla-big{margin-top:2px;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2;color:var(--green)}
.sla-big--warn{color:var(--amber)}
.sla-big--breach{color:var(--red)}
.sla-big--paused{color:var(--violet)}
.sla-bar{height:6px;margin-top:12px;background:var(--surface-3);border-radius:var(--r);overflow:hidden}
.sla-bar-fill{height:100%;border-radius:var(--r);background:var(--green);transition:width var(--dur-slow) var(--ease-out)}
.sla-bar-fill--warn{background:var(--amber)}
.sla-bar-fill--breach{background:var(--red)}
.sla-bar-fill--paused{background:var(--violet)}
.sla-note{font-size:10px;color:var(--text-3);margin-top:3px}
.sla-axis{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin-top:8px}
.sla-axis .sla-note{margin-top:0}
.done-banner{
    margin-top:16px;padding:10px 16px;background:var(--green-bg);border-radius:var(--r);
    display:flex;align-items:center;gap:8px;color:var(--green);font-size:12px;font-weight:600;
}
.approval-amount{font-family:var(--font);font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);margin-bottom:16px}
.kv-row{display:flex;gap:12px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}
.kv-row:last-child{border-bottom:none}
.kv-key{min-width:160px;color:var(--text-3)}
.kv-val{color:var(--text-2);white-space:pre-wrap}
.timeline{position:relative;padding-left:28px}
.timeline-line{position:absolute;left:13px;top:0;bottom:0;width:2px;border-radius:1px;background:var(--border)}
.timeline-item{position:relative;margin-bottom:20px}
.timeline-item--pending{opacity:.6}
.timeline-item--failed .timeline-card{border-color:var(--red)}



.stream-filter-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.stream-filter-chip{
    display:inline-flex;align-items:center;gap:6px;padding:4px 12px;
    border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);
    color:var(--text-2);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;
    transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast);line-height:1.4;white-space:nowrap;
}
.stream-filter-chip:hover{background:var(--surface-2);color:var(--text)}
.stream-filter-chip.is-active{background:var(--portal-primary);border-color:var(--portal-primary);color:var(--on-primary)}
.stream-filter-chip-cnt{
    font-size:10px;font-weight:700;padding:1px 7px;border-radius:var(--r-full);
    background:var(--surface-2);color:var(--text-3);min-width:18px;text-align:center;font-variant-numeric:tabular-nums;
}
.stream-filter-chip.is-active .stream-filter-chip-cnt{background:color-mix(in srgb,var(--on-primary) 22%,transparent);color:var(--on-primary)}



.timeline-dot{position:absolute;left:-20px;top:17px;width:12px;height:12px;border-radius:50%;background:var(--portal-primary);border:2px solid var(--surface)}
.timeline-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);padding:12px 16px}
.timeline-card--self{background:var(--portal-primary-light);border-left:3px solid var(--portal-primary)}


.timeline-card--agent{background:color-mix(in srgb,var(--blue) 8%,var(--surface-2));border-left:3px solid var(--blue)}
.timeline-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.timeline-avatar{
    width:22px;height:22px;border-radius:50%;background:var(--portal-primary);color:var(--on-primary);
    display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0;
}
.timeline-avatar--agent{background:var(--blue)}
.timeline-author{font-size:13px;font-weight:600;color:var(--text)}
.timeline-time{font-size:11px;color:var(--text-3)}
.timeline-state{font-size:11px;color:var(--text-3);font-style:italic}









.issue-description,.timeline-body,.solution-text{
    max-width:70ch;font-size:13px;color:var(--text-2);line-height:1.6;
}
.issue-description,.timeline-body{white-space:pre-wrap}


.timeline-item--event{margin-bottom:14px}



.timeline-dot--event{top:7px;background:var(--surface-3);border-color:var(--border)}
.timeline-event{display:flex;align-items:center;min-height:22px;gap:8px;flex-wrap:wrap;padding:2px 0}
.timeline-event-text{font-size:12px;color:var(--text-3)}
.timeline-event-text strong{color:var(--text-2)}


.timeline-event-files-label{font-size:12px;color:var(--text-3);margin-bottom:4px}

.channel-note{
    display:flex;align-items:flex-start;gap:8px;margin-bottom:16px;padding:10px 12px;
    border:1px solid var(--border);border-radius:var(--r);background:var(--surface-2);
    font-size:12px;color:var(--text-3);line-height:1.55;
}
.channel-note-icon{color:var(--text-3);flex-shrink:0;display:inline-flex;margin-top:1px}
.channel-note strong{color:var(--text-2)}


.composer-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}







.composer-card-body{padding:14px 16px}




.composer-textarea{min-height:52px;transition:min-height var(--dur-fast) var(--ease-out)}
.composer-textarea:focus{min-height:96px}



.composer-foot-meta{display:flex;align-items:baseline;gap:0;flex-wrap:wrap;min-width:0}


.composer-hint{font-size:12px;color:var(--text-3)}
.composer-foot-meta .composer-hint::before{content:'·';margin:0 6px;color:var(--text-3)}
.char-count{font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}
.meta-grid{display:grid;gap:14px}
.meta-label{font-size:10px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.meta-value{font-size:13px}
.assignee-avatar{
    width:28px;height:28px;border-radius:50%;background:var(--portal-primary);color:var(--on-primary);
    display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;
}


.solution-text{white-space:pre-line}
.known-error-note{
    display:flex;align-items:center;gap:8px;padding:10px 14px;min-height:44px;box-sizing:border-box;
    border:1px solid var(--border);border-radius:var(--r);background:var(--surface-2);
    font-size:13px;font-weight:600;color:var(--portal-primary-text);text-decoration:none;margin-bottom:20px;
}
.known-error-note:hover{text-decoration:underline}
.known-error-note svg{color:var(--text-3);flex-shrink:0}


.csat-block{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.csat-fieldset{border:0;margin:0;padding:0}
.csat-legend{padding:0;font-size:13px;font-weight:600;color:var(--text);margin-bottom:10px}
.csat-stars{display:flex;gap:2px;align-items:center}
.csat-star{
    display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
    border:none;background:transparent;border-radius:var(--r);cursor:pointer;color:var(--text-3);padding:0;
}
.csat-star:hover,.csat-star:focus-visible{color:var(--amber)}
.csat-star.is-active{color:var(--amber)}
.csat-star.is-active svg{fill:currentColor}
.csat-star--readonly{width:20px;height:20px;cursor:default}
.csat-stars-readonly{display:inline-flex;gap:1px;margin-left:4px}
.csat-comment{margin-top:10px;width:100%;max-width:480px}
.csat-actions{display:flex;justify-content:flex-end;margin-top:8px;max-width:480px}
.csat-thanks{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--green)}
.csat-rated{font-size:13px;color:var(--text-2)}


.suggestion-link{display:block;padding:8px 0;border-bottom:1px solid var(--border);text-decoration:none;color:inherit}
.suggestion-link:last-child{border-bottom:none}
.suggestion-link-title{font-size:13px;font-weight:600;color:var(--text)}
.suggestion-link-summary{font-size:12px;color:var(--text-3);margin-top:2px}
.suggestion-link:hover .suggestion-link-title{color:var(--portal-primary-text)}


.wizard-progress{display:flex;align-items:center;gap:10px;margin-bottom:20px;flex-wrap:wrap}
.wizard-step{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-3)}
.wizard-step--active{color:var(--portal-primary-text)}
.wizard-dot{
    width:22px;height:22px;border-radius:50%;border:2px solid var(--border);
    display:inline-flex;align-items:center;justify-content:center;
    font-size:11px;font-weight:700;background:var(--surface);flex-shrink:0;
}
.wizard-step--active .wizard-dot{border-color:var(--portal-primary);color:var(--portal-primary-text)}
.wizard-step--done .wizard-dot{background:var(--portal-primary);border-color:var(--portal-primary);color:var(--on-primary)}
.wizard-sep{flex:0 0 24px;height:2px;background:var(--border)}
.form-grid-2{display:grid;grid-template-columns:1fr;column-gap:20px}
@media(min-width:900px){
    .form-grid-2{grid-template-columns:1fr 1fr}
    .form-span-2{grid-column:1 / -1}
}
.file-chip{
    display:flex;align-items:center;gap:8px;padding:8px 12px;margin-bottom:6px;
    background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
}
.file-chip-name{flex:1;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-chip-size{font-size:11px;color:var(--text-3)}
.file-chip-remove{background:none;border:none;cursor:pointer;color:var(--text-3);font-size:16px;padding:2px 4px;line-height:1}
.file-chip-remove:hover{color:var(--red)}
.file-chip--link{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit}
.file-chip--link:hover{border-color:var(--border-focus)}





.file-chip--compact{width:auto;max-width:360px;margin-bottom:0}




.file-chip--fill{width:100%;max-width:360px;margin-bottom:0}
.draft-hint{
    display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--text-2);
    padding:8px 12px;background:var(--surface-2);border:1px solid var(--border);
    border-radius:var(--r);margin-bottom:16px;
}
.success-panel{max-width:560px;margin:24px auto}
.success-check{display:inline-flex;margin-bottom:12px}
.success-key{font-size:18px;margin:0 auto}


.account-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:900px){.account-grid{grid-template-columns:1fr 1fr}}
.profile-head{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.profile-avatar{
    width:56px;height:56px;border-radius:50%;flex-shrink:0;
    background:linear-gradient(135deg,var(--portal-primary),var(--portal-accent));
    color:var(--on-primary);display:flex;align-items:center;justify-content:center;
    font-size:18px;font-weight:700;
}
.profile-name{font-family:var(--font);font-size:18px;font-weight:800;color:var(--text)}
.profile-mail{font-size:13px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis}
.pill{
    display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--r-full);
    font-size:11px;font-weight:700;background:var(--surface-3);color:var(--text-2);
}
.pill--green{background:var(--green-bg);color:var(--green)}
.pill--brand{background:var(--portal-primary-light);color:var(--portal-primary-text)}
.pill--neutral{background:var(--surface-3);color:var(--text-3)}
.pill--info{background:color-mix(in srgb,var(--blue) 18%,transparent);color:var(--blue)}
.switch-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:13px}
.switch{
    width:40px;height:24px;border-radius:var(--r-full);border:1px solid var(--border);
    background:var(--surface-3);position:relative;cursor:pointer;padding:0;flex-shrink:0;
    transition:background var(--dur-fast) var(--ease-out);
}
.switch-knob{
    position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;
    background:var(--surface);box-shadow:var(--shadow-sm);
    transition:transform var(--dur-fast) var(--ease-out);
}
.switch--on{background:var(--portal-primary);border-color:var(--portal-primary)}
.switch--on .switch-knob{transform:translateX(16px)}
.dirty-dot{
    display:inline-block;width:6px;height:6px;border-radius:50%;
    background:var(--amber);margin-left:6px;vertical-align:middle;
}
.danger-zone{border-color:color-mix(in srgb,var(--red) 30%,var(--border))}
.confirm-inline{font-size:11px;color:var(--text-2);margin-right:6px}


.knowledge-search{position:relative;max-width:640px;margin:0 auto 20px}
.knowledge-search-input{
    width:100%;padding:13px 14px 13px 42px;font-size:15px;font-family:var(--font);
    color:var(--text);background:var(--surface);border:1px solid var(--border);
    border-radius:var(--r);box-shadow:var(--shadow-sm);
    transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);
}
.knowledge-search-input:focus{outline:none;border-color:var(--border-focus);box-shadow:var(--shadow)}
.knowledge-search .table-search-icon{left:14px}
.match-mark{background:var(--portal-primary-light);color:inherit;border-radius:var(--r);padding:0 1px}
.knowledge-modal-nav{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    padding:12px 20px;border-top:1px solid var(--border);
}
.knowledge-modal-nav .btn{max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:640px){
    .knowledge-modal{border-radius:var(--r) var(--r) 0 0;align-self:flex-end;max-height:92vh}
}


.cmdk-overlay{align-items:flex-start;padding-top:12vh}
.cmdk-panel{
    background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
    box-shadow:var(--shadow-md);width:100%;max-width:560px;overflow:hidden;
    margin:0 16px;
}
.cmdk-input-row{position:relative;display:flex;align-items:center;border-bottom:1px solid var(--border)}
.cmdk-input{flex:1;border:none;background:none;padding:14px 14px 14px 40px;font-size:14px;font-family:var(--font);color:var(--text)}
.cmdk-input:focus{outline:none}
.cmdk-input-row .table-search-icon{left:14px}
.cmdk-input-row .kbd{margin-right:12px}
.kbd{
    font-size:10px;font-weight:700;color:var(--text-3);border:1px solid var(--border);
    border-radius:var(--r);padding:2px 6px;background:var(--surface-2);
}
.cmdk-list{max-height:320px;overflow-y:auto;padding:6px}
.cmdk-group-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);padding:8px 10px 4px}
.cmdk-item{
    display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;
    background:none;border:none;border-radius:var(--r);cursor:pointer;
    font-family:var(--font);font-size:13px;color:var(--text-2);text-align:left;
}
.cmdk-item.active,.cmdk-item:hover{background:var(--surface-2);color:var(--text)}
.cmdk-item-icon{display:inline-flex;color:var(--text-3);flex-shrink:0}
.cmdk-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmdk-empty{padding:20px;text-align:center;font-size:13px;color:var(--text-3)}
@media(max-width:640px){
    .cmdk-overlay{padding-top:0;align-items:flex-end}
    .cmdk-panel{max-width:none;margin:0;border-radius:var(--r) var(--r) 0 0;max-height:80vh}
}


@media print{
    .portal-header,.portal-footer,.nav-drawer,.nav-drawer-overlay,.toast-container,.no-print{display:none!important}
    .portal-main{max-width:none;padding:0}
    .portal-detail-grid{grid-template-columns:1fr}
    body{background:#fff}
}







.table-toolbar{display:grid;grid-template-columns:max-content 1fr;column-gap:12px;row-gap:16px;align-items:center;margin-bottom:16px}



.table-toolbar-row2{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
@media(max-width:768px){
    .table-toolbar{grid-template-columns:1fr}










    .table-toolbar > .portal-seg,
    .table-toolbar-row2 .portal-seg{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}
.table-search{position:relative;margin-left:auto;min-width:200px;flex:0 1 260px}
.table-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-3);display:inline-flex;pointer-events:none}
.table-search-input{
    width:100%;padding:8px 10px 8px 34px;font-size:13px;font-family:var(--font);
    color:var(--text);background:var(--surface);border:1px solid var(--border);
    border-radius:var(--r);transition:border-color var(--dur-fast) var(--ease-out);
}
.table-search-input:focus{outline:none;border-color:var(--border-focus)}
.th-sort{
    display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;
    font:inherit;color:inherit;cursor:pointer;font-family:var(--font);
    text-transform:inherit;letter-spacing:inherit;
}
.th-sort:hover{color:var(--text)}
.th-sort-arrow{font-size:10px;line-height:1;min-width:8px;display:inline-block}








.th-filterable{display:flex;align-items:center;gap:2px;position:relative}
.th-filter-trigger{
    display:inline-flex;align-items:center;justify-content:center;
    position:relative;width:20px;height:20px;padding:0;border:none;background:none;
    color:var(--text-3);cursor:pointer;border-radius:var(--r);
    opacity:0;transition:opacity var(--dur-fast),background var(--dur-fast),color var(--dur-fast);
}
.th-filterable:hover .th-filter-trigger,
.th-filter-trigger.is-active,
.th-filter-trigger[aria-expanded="true"],
.th-filter-trigger:focus-visible{opacity:1}
.th-filter-trigger:hover{background:var(--surface);color:var(--text)}
.th-filter-trigger.is-active{color:var(--portal-primary-text)}


.th-filter-dot{
    position:absolute;top:1px;right:1px;width:6px;height:6px;
    border-radius:50%;background:var(--portal-primary);
}
.th-filter-menu{
    position:absolute;top:100%;left:0;z-index:5;margin-top:4px;
    background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
    box-shadow:var(--shadow-sm);min-width:180px;padding:4px;
    text-transform:none;letter-spacing:normal;font-weight:400;
}
.th-filter-option{
    display:block;width:100%;text-align:left;padding:7px 10px;border:none;background:none;
    font:inherit;font-size:12px;color:var(--text);cursor:pointer;border-radius:var(--r);
    white-space:nowrap;
}
.th-filter-option:hover{background:var(--surface-2)}
.th-filter-option.is-active{background:var(--portal-primary);color:var(--on-primary)}
.portal-table-wrap--sticky{max-height:65vh;overflow-y:auto}
.portal-table-wrap--sticky th{position:sticky;top:0;background:var(--surface-2);z-index:2}



.portal-table-wrap--sticky.has-open-filter-menu{overflow:visible}
.table-pager{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:10px 16px;border-top:1px solid var(--border);font-size:12px;color:var(--text-3);
}
.pager-btns{display:flex;gap:6px}


.table-pager-more{color:inherit}


.rate-link{color:var(--portal-primary-text);font-weight:600;text-decoration:none}
.rate-link:hover{text-decoration:underline}






.row-flag{position:absolute;left:20px;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--violet)}






.mobile-sort-bar{display:none;gap:8px;margin-bottom:16px}
.mobile-sort-bar select{flex:1;width:auto;min-width:0}
.mobile-sort-dir-btn{
    display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;flex:none;padding:0;
    border:1px solid var(--border);border-radius:var(--r);
    background:var(--surface);color:var(--text-2);cursor:pointer;
    font-family:var(--font);font-size:16px;transition:background var(--dur-fast);
}
.mobile-sort-dir-btn:hover{background:var(--surface-2)}



.mobile-filter-bar{display:none;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.mobile-filter-bar select{flex:1 1 140px;width:auto;min-width:0}






.analytics-reload-link{margin-left:12px}
.analytics-legend-link{
    display:flex;align-items:center;gap:8px;margin-bottom:2px;padding:6px 8px;
    border-radius:var(--r);font-size:13px;text-decoration:none;color:inherit;
    transition:background var(--dur-fast) var(--ease-out);
}
@media (hover:hover){
    .analytics-legend-link:hover{background:var(--surface-2)}
}
.legend-swatch{display:inline-block;width:10px;height:10px;border-radius:var(--r);flex-shrink:0;vertical-align:middle}
.legend-swatch--created{background:var(--portal-primary)}
.legend-swatch--resolved{background:var(--green)}


.chart-host{width:100%;height:220px;min-height:220px}
.chart-host--donut{width:180px;height:180px;min-height:180px;flex-shrink:0}





.donut-chart-wrap{position:relative;flex-shrink:0}
.donut-center{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    text-align:center;pointer-events:none;line-height:1.15;
}
.donut-center-value{display:block;font-size:22px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.donut-center-label{display:block;font-size:11px;color:var(--text-3)}




.reports-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:16px}


.reports-aging-row{display:flex;gap:16px;align-items:flex-end;height:96px;margin-top:4px}
.reports-aging-bar{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;flex:1;height:100%;min-width:0}
.reports-aging-bar-value{font-size:13px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.reports-aging-bar-fill{width:28px;max-width:100%;background:var(--portal-primary);border-radius:var(--r) var(--r) 0 0;min-height:3px}
.reports-aging-bar-label{font-size:11px;color:var(--text-3);text-align:center}









.reports-row-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px;align-items:stretch}
.reports-row-grid>.portal-card{display:flex;flex-direction:column;min-width:0}
.reports-row-grid>.portal-card>.portal-card-body{flex:1;display:flex;flex-direction:column}
.reports-row-grid .reports-aging-row{flex:1;height:auto;min-height:96px}
@media(max-width:768px){.reports-row-grid{grid-template-columns:minmax(0,1fr)}}





.skel{position:relative;overflow:hidden;background:var(--surface-3);border-radius:var(--r)}
.skel::after{
    content:'';position:absolute;inset:0;transform:translateX(-100%);
    background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--text) 5%,transparent),transparent);
    animation:skelShimmer 1.2s linear infinite;
}
@keyframes skelShimmer{to{transform:translateX(100%)}}
.skel-text{height:12px;margin:6px 0}
.skel-title{height:20px;width:40%;margin-bottom:12px}
.skel-badge{height:20px;width:72px;border-radius:var(--r-full)}
.skel-circle{border-radius:50%;width:32px;height:32px;flex-shrink:0}
.skel-kpi{height:96px}
.skel-card{height:180px}
.skel-chart{height:240px}
.skel-row{display:flex;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border)}
.skel-row .skel-text{flex:1;margin:0}
.skel-row .skel-text:first-child{flex:0 0 90px}
.skel-stack{display:flex;flex-direction:column;gap:16px}




.anim-stagger>*{animation:fadeUp var(--dur-slow) var(--ease-out) both}
.anim-stagger>*:nth-child(2){animation-delay:40ms}
.anim-stagger>*:nth-child(3){animation-delay:80ms}
.anim-stagger>*:nth-child(4){animation-delay:120ms}
.anim-stagger>*:nth-child(5){animation-delay:160ms}
.anim-stagger>*:nth-child(6){animation-delay:200ms}
.anim-stagger>*:nth-child(7){animation-delay:240ms}
.anim-stagger>*:nth-child(n+8){animation-delay:280ms}

@keyframes barGrow{from{width:0}}
.bar-grow{animation:barGrow var(--dur-slow) var(--ease-out) both}

@keyframes checkDraw{from{stroke-dashoffset:24}to{stroke-dashoffset:0}}
.check-draw path{stroke-dasharray:24;animation:checkDraw var(--dur-slow) var(--ease-out) both}











@media(max-width:640px){



    .portal-table-wrap .portal-table--cards{min-width:0}
    .portal-table--cards thead{display:none}
    .portal-table--cards tbody tr{
        display:flex;flex-wrap:wrap;align-items:baseline;
        gap:4px 8px;padding:14px 16px;
    }
    .portal-table--cards td{display:block;padding:0;border:none;vertical-align:baseline;font-size:13px}





    .portal-table--cards .cell-key{order:1}
    .portal-table--cards .cell-status{order:2;margin-left:auto}
    .portal-table--cards .cell-title{order:3;flex:0 0 100%;width:auto;max-width:none}




    .portal-table--cards .cell-title-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}
    .portal-table--cards .cell-category{order:4}
    .portal-table--cards .cell-priority{order:5}
    .portal-table--cards .cell-next{order:6}
    .portal-table--cards .cell-updated{order:7}


    .portal-table--cards .cell-resolved{order:4;white-space:normal;color:var(--text-3);font-size:12px}



    .portal-table--cards .cell-created{display:none}




    .portal-table--cards .cell-request-type{display:none}














    .portal-table--cards .cell-priority::before{content:'·';margin:0 4px;color:var(--text-3)}
    .portal-table--cards .cell-priority ~ .cell-updated::before,
    .portal-table--cards .cell-next:not(.is-empty) ~ .cell-updated::before{content:'·';margin:0 4px;color:var(--text-3)}
    .portal-table--cards .cell-next.is-empty{display:none}



    .portal-table--cards .cell-name{order:1}
    .portal-table--cards .cell-email{order:3;flex:0 0 100%;color:var(--text-3);font-size:12px}
    .portal-table--cards .cell-role{order:4;color:var(--text-3);font-size:12px}
    .portal-table--cards .cell-lastlogin{order:5;color:var(--text-3);font-size:12px}
    .portal-table--cards .cell-lastlogin::before{content:'·';margin:0 4px;color:var(--text-3)}
    .portal-table--cards .cell-actions{order:6;flex:0 0 100%;text-align:left;white-space:normal;margin-top:6px}


    .portal-table--cards .row-action--toggle{min-width:0}



    .mobile-sort-bar{display:flex}


    .mobile-filter-bar{display:flex}





    .composer-textarea{min-height:44px;transition:min-height var(--dur-fast) var(--ease-out)}
    .composer-textarea:focus{min-height:100px}
    .composer-attach-label{display:none}
    .composer-attach-btn{width:44px;padding:0;justify-content:center}
    .composer-hint{display:none}


    .analytics-reload-link{display:inline-flex;align-items:center;min-height:44px}
    .analytics-legend-link{min-height:44px}






    .table-pager-more{display:inline-flex;align-items:center;min-height:44px}
    .rate-link{display:inline-flex;align-items:center;min-height:44px}
    .sidebar-way{min-height:44px;align-items:center}
}







@media(max-width:768px){
    .portal-header{gap:6px}
    .portal-user{gap:4px}
    .header-icon-btn{width:44px;height:44px;flex:none}
    .portal-logo{display:inline-flex;align-items:center;min-height:44px}
    .user-menu-btn{min-height:44px}
    .btn,.th-sort,.knowledge-cat-chip,.copy-key,.back-link,.landing-link,.hero-search,.custom-link{min-height:44px}


    .knowledge-cat-chip,.landing-link,.custom-link{display:inline-flex;align-items:center}
    .form-input,.form-select,.table-search-input{min-height:44px}


    .switch-row{min-height:44px}
    .switch{position:relative}
    .switch::before{content:'';position:absolute;inset:-10px -4px}
    .kpi-card-label,.section-label,.meta-label,.knowledge-card-cat,.knowledge-card-meta,.announce-tag,.portal-table th,.wizard-dot,.pill,.timeline-avatar,.portal-user-avatar,.char-count,.th-sort-arrow{font-size:12px}
    .sla-note{font-size:13px}
    .timeline-time,.file-chip-size{font-size:12px}
}


@media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:var(--dur-fast) !important;scroll-behavior:auto !important}
}


@media (forced-colors: active){
    .skip-link{background:Highlight;color:HighlightText;border:2px solid HighlightText}
    :focus-visible{outline:2px solid Highlight}
}


.sr-only{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}





.support-banner{
    position:sticky;top:0;z-index:2100;display:flex;align-items:center;gap:12px;
    flex-wrap:wrap;padding:8px 16px;
    background:var(--amber-bg);color:var(--amber);
    border-bottom:1px solid color-mix(in srgb,var(--amber) 35%,transparent);
}
.support-banner-tag{
    font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:11px;
    padding:2px 8px;border-radius:var(--r-full);
    background:color-mix(in srgb,var(--amber) 15%,transparent);
}
.support-banner-text{font-size:13px;flex:1 1 auto;min-width:0}
.support-banner-exit{
    font-family:var(--font);font-size:12px;cursor:pointer;
    padding:4px 10px;border-radius:var(--r);
    border:1px solid color-mix(in srgb,var(--amber) 45%,transparent);
    background:transparent;color:var(--amber);
    transition:background var(--dur-fast) var(--ease-out);
}
.support-banner-exit:hover{background:color-mix(in srgb,var(--amber) 12%,transparent)}








.perm-modal{max-width:min(720px,calc(100vw - 32px));display:flex;flex-direction:column;overflow:hidden}
.perm-modal .modal-body{overflow-y:auto;flex:1 1 auto;min-height:0}
.perm-modal .modal-footer{flex:0 0 auto}
.perm-head{display:flex;flex-direction:column;gap:2px;min-width:0}
.perm-head-sub{font-size:12px;color:var(--text-3);margin:0;overflow-wrap:anywhere}
.perm-lead{font-size:13px;font-weight:700;color:var(--text);margin:0 0 2px}
.perm-lead-sub{font-size:12px;color:var(--text-3);margin:0 0 12px}


.perm-roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.perm-role{
    text-align:left;padding:14px;border:1px solid var(--border);border-radius:var(--r);
    background:var(--surface);cursor:pointer;font-family:var(--font);
    transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out);
}
.perm-role:hover:not(:disabled){border-color:var(--portal-primary)}
.perm-role:disabled{cursor:not-allowed;opacity:.6}
.perm-role--on{border-color:var(--portal-primary);background:var(--portal-primary-light);box-shadow:inset 0 0 0 1px var(--portal-primary)}
.perm-role-name{display:block;font-size:13px;font-weight:700;color:var(--text)}
.perm-role-sub{display:block;font-size:12px;color:var(--text-3);margin-top:4px;line-height:1.45}
.perm-custom-note{font-size:12px;color:var(--text-3);margin:10px 0 0}
.perm-disclose{
    background:none;border:0;padding:0;margin-top:16px;cursor:pointer;
    font-family:var(--font);font-size:13px;font-weight:700;
    color:var(--portal-primary-text);text-decoration:underline;
}
.perm-section{padding:16px 0 4px;border-top:1px solid var(--border);margin-top:16px}
.perm-section-head{font-size:13px;font-weight:700;color:var(--text);margin:0 0 8px}

.perm-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;min-height:40px}
.perm-row+.perm-row{border-top:1px solid var(--border)}
.perm-row-label{font-size:13px;min-width:0}
.perm-row-hint{display:block;font-size:12px;color:var(--text-3);margin-top:2px}
.perm-row-control{flex-shrink:0}
.perm-switch-list{display:flex;flex-direction:column}
.perm-switch-list .switch-row{margin-bottom:0;padding:10px 0;align-items:flex-start}
.perm-switch-list .switch-row+.switch-row{border-top:1px solid var(--border)}
.perm-switch-text{display:flex;flex-direction:column;gap:1px;min-width:0}
.perm-switch-hint{font-size:12px;color:var(--text-3)}
.switch:disabled{cursor:not-allowed;opacity:.5}
.perm-hints{margin-top:16px}
.perm-hint{display:block}
.perm-actions{flex-wrap:wrap}


@media(max-width:640px){
    .perm-row{flex-direction:column;align-items:flex-start;gap:8px}
    .perm-row-control{width:100%}
    .perm-row-control .portal-seg{width:100%}
    .perm-row-control .portal-seg-btn{flex:1 1 0;text-align:center}
}








.row-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:2px}
.row-action{
    font-size:12px;font-weight:500;padding:5px 10px;justify-content:center;
    background:transparent;border-color:transparent;box-shadow:none;color:var(--text-2);
}
.row-action:hover{background:var(--surface-2);border-color:transparent;color:var(--portal-primary-text)}
.row-action:disabled{opacity:.5;cursor:not-allowed}
.row-action:disabled:hover{background:transparent;color:var(--text-2)}


.row-action--danger:hover{background:var(--red-bg);color:var(--red)}
.row-action--toggle{min-width:98px}





.row-action--open{border-color:var(--border);color:var(--text)}
.row-action--open:hover{background:var(--portal-primary-light);border-color:var(--portal-primary-text);color:var(--portal-primary-text)}
