:root{--nav:#14213d;--blue:#2457c5}

/* ===== Theme (light + dark) ===== */
:root,[data-bs-theme=light]{--app-bg:#f4f8ff;--app-text:#172b4d;--app-heading:#17366c;--card-bg:#ffffff;--card-border:#e4e9f2;--card-shadow:0 2px 12px #263d6610;--table-head-bg:#eef3fc;--table-head-text:#3a557b;--table-border:#e9eef7;--muted-text:#68738a;--topbar-bg:#ffffff;--input-bg:#ffffff;--input-border:#d7e3f4;--input-text:#1e3d6a;--chart-grid:#eef2f9;--alert-bg:#ffffff;--timeline-line:#dbe4f5;--login-bg:#f6f8fc;--login-card:#ffffff;--login-input-border:#e5e5e5;--login-input-bg:#ffffff;--login-text:#212121;--login-muted:#8b8e98;--login-border:#f1f1f4;--panel-icon-bg:#e7f0ff;--login-overlay:linear-gradient(rgba(255,255,255,.28),rgba(255,255,255,.28))}
[data-bs-theme=dark]{--app-bg:#0f1626;--app-text:#d7e0f2;--app-heading:#eaf1ff;--card-bg:#1a2338;--card-border:#2a3650;--card-shadow:0 2px 14px rgba(0,0,0,.35);--table-head-bg:#232f4b;--table-head-text:#b9c8e6;--table-border:#2a3650;--muted-text:#94a3c4;--topbar-bg:#161f33;--input-bg:#101a2e;--input-border:#33415f;--input-text:#e2eaf9;--chart-grid:#2a3650;--alert-bg:#1a2338;--timeline-line:#33415f;--login-bg:#0d1422;--login-card:#161f33;--login-input-border:#33415f;--login-input-bg:#101a2e;--login-text:#e2eaf9;--login-muted:#94a3c4;--login-border:#2a3650;--panel-icon-bg:#1d2f55;--login-overlay:linear-gradient(rgba(10,16,29,.88),rgba(10,16,29,.88))}
body{background:var(--app-bg);color:var(--app-text)}
h1,h2,h3,h4,h5,h6,.card-header,.topbar h2{color:var(--app-heading)}
.card{background:var(--card-bg);border:1px solid var(--card-border);box-shadow:var(--card-shadow)}
.card-header{background:var(--card-bg)!important;border-bottom:1px solid var(--card-border)}
.text-muted{color:var(--muted-text)!important}
.table{--bs-table-bg:transparent;--bs-table-color:var(--app-text);border-color:var(--table-border)}
.table>thead{background:var(--table-head-bg);color:var(--table-head-text)}
.table td,.table th{border-color:var(--table-border)}
.topbar{background:var(--topbar-bg);border-bottom:1px solid var(--card-border)}
.form-control,.form-select{background-color:var(--input-bg);border-color:var(--input-border);color:var(--input-text)}
.form-control::placeholder{color:var(--muted-text)}
.form-control:focus,.form-select:focus{background-color:var(--input-bg);color:var(--input-text);border-color:#77adff;box-shadow:0 0 0 3px rgba(17,93,252,.15)}
.input-group-text{background:var(--table-head-bg);border-color:var(--input-border);color:var(--muted-text)}
.timeline{border-left-color:var(--timeline-line)}
.btn-outline-secondary{--bs-btn-color:var(--app-text);--bs-btn-border-color:var(--input-border);--bs-btn-hover-bg:var(--table-head-bg);--bs-btn-hover-border-color:var(--muted-text);--bs-btn-hover-color:var(--app-heading)}
.btn-outline-primary{--bs-btn-color:var(--app-heading);--bs-btn-border-color:#77adff;--bs-btn-hover-bg:#115dfc;--bs-btn-hover-border-color:#115dfc;--bs-btn-hover-color:#fff}
.theme-switch{display:inline-flex;border:1px solid var(--card-border);border-radius:9px;background:var(--input-bg);overflow:hidden}
.theme-option{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:0;background:transparent;color:var(--muted-text);font-size:.74rem;font-weight:600;line-height:1;cursor:pointer;transition:.2s}
.theme-option svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none}
.theme-option+.theme-option{border-left:1px solid var(--card-border)}
.theme-option:hover{color:var(--app-heading)}
.theme-option.active,.theme-option.active:hover{background:#115dfc;color:#fff}
.theme-option.active svg{stroke:#fff}

/* Authentication screen */.sidebar{width:245px;min-height:100vh;background:var(--nav);position:sticky;top:0}.brand{display:block;color:#fff;text-decoration:none;font-size:1.25rem;font-weight:800;letter-spacing:.5px;margin-bottom:1.5rem}.brand small{display:block;font-size:.6rem;letter-spacing:2px;color:#9fb4df}.sidebar .nav-link{color:#cbd6ed;border-radius:.45rem;padding:.65rem .8rem}.sidebar .nav-link:hover,.sidebar .nav-link.active{background:#2b4a83;color:#fff}.topbar{background:var(--topbar-bg);border-bottom:1px solid var(--card-border)}.card{border:1px solid var(--card-border);border-radius:.8rem;box-shadow:var(--card-shadow)}.metric{border-left:4px solid var(--blue)}.metric .number{font-size:1.75rem;font-weight:700}.table>thead{background:var(--table-head-bg)}.timeline{border-left:2px solid var(--timeline-line);margin-left:.5rem}.timeline-item{position:relative;padding:0 0 1rem 1.25rem}.timeline-item:before{content:'';position:absolute;width:.7rem;height:.7rem;border-radius:50%;left:-.42rem;top:.3rem;background:#2457c5}.ticket-meta dt{color:var(--muted-text);font-size:.78rem;text-transform:uppercase}.ticket-meta dd{font-weight:600}.chart-box{position:relative;height:300px}.chart-empty{display:grid;place-items:center;min-height:220px;color:var(--muted-text);font-size:.85rem}@media(max-width:767px){.sidebar{display:none;position:fixed;z-index:10;width:250px}.sidebar.show{display:block}.content{width:100%}}@media print{.sidebar,.topbar,.no-print,.theme-switch{display:none!important}.content{width:100%}.container-fluid{padding:0!important}body{background:#fff;color:#000}.card{background:#fff!important;box-shadow:none}}

/* Remember-me checkbox */
.remember-me{display:flex;align-items:center;gap:8px;font-size:.74rem;color:var(--login-muted);cursor:pointer;user-select:none;margin-top:-4px}.remember-me input{width:16px;height:16px;accent-color:#115dfc;cursor:pointer}

/* Ticket success modal */
.ts-check{display:grid;place-items:center;width:52px;height:52px;margin:2px auto 14px;border-radius:50%;background:#d3f9d8;color:#2b8a3e;font-size:1.5rem;font-weight:800}
[data-bs-theme=dark] .ts-check{background:#1d3a2a;color:#69db7c}
.modal-content{background:var(--card-bg);color:var(--app-text);border:1px solid var(--card-border);border-radius:14px}
.modal-header,.modal-footer{border-color:var(--card-border)}
.btn-close{filter:none}

/* Ticket updated modal (admin dashboard) */
.tu-check{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,#d3f9d8,#b2f2bb);color:#2b8a3e;box-shadow:0 6px 18px rgba(32,201,151,.22)}
[data-bs-theme=dark] .tu-check{background:linear-gradient(135deg,#1d3a2a,#143122);color:#51cf66;box-shadow:0 6px 18px rgba(32,201,151,.2)}
#ticketUpdatedModal .modal-dialog.modal-md{--bs-modal-width:480px}
#ticketUpdatedModal .modal-content{box-shadow:0 24px 60px rgba(8,21,51,.25)!important;border-radius:18px!important;overflow:hidden}
#ticketUpdatedModal .modal-header .modal-title{font-size:1rem;font-weight:800}
#ticketUpdatedModal .modal-footer{border-top:1px solid var(--table-head-bg);background:var(--table-head-bg);padding-top:14px;padding-bottom:14px}
#ticketUpdatedModal .list-group-item .text-success{font-weight:900}
[data-bs-theme=dark] #ticketUpdatedModal .modal-content{box-shadow:0 24px 60px rgba(0,0,0,.55)!important}

/* Floating/centered animation feel for success modals */
.modal.fade .modal-dialog{transition:transform .28s cubic-bezier(.34,1.56,.64,1),opacity .2s ease}
.modal.show .modal-dialog{transform:none}
[data-bs-theme=dark] .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}

/* Idle-timeout warning toast */
.idle-toast{position:fixed;right:22px;bottom:22px;z-index:1090;display:flex;align-items:center;gap:16px;max-width:430px;padding:14px 16px;background:var(--card-bg);border:1px solid #f0ad4e;border-left:4px solid #f0ad4e;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.25)}.idle-toast-text{display:flex;flex-direction:column;gap:3px}.idle-toast-text strong{color:var(--app-heading);font-size:.86rem}.idle-toast-text span{color:var(--muted-text);font-size:.76rem}.idle-toast-actions{display:flex;gap:8px;flex-shrink:0}

/* Authentication screen */
.login-page{min-height:100vh;display:grid;place-items:center;margin:0;padding:24px;background:var(--login-overlay),url('../img/wise-pattern.png') center/cover no-repeat fixed;font-family:Inter,Arial,sans-serif;color:var(--login-text)}
.form_container{box-sizing:border-box;width:min(100%,400px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:42px 40px 30px;background:var(--login-card);box-shadow:0 106px 42px rgba(0,0,0,.01),0 59px 36px rgba(0,0,0,.05),0 26px 26px rgba(0,0,0,.09),0 7px 15px rgba(0,0,0,.1);border-radius:16px}
.logo_container{box-sizing:border-box;width:80px;height:80px;display:grid;place-items:center;background:var(--login-card);border:1px solid var(--login-border);filter:drop-shadow(0 .5px .5px #efefef) drop-shadow(0 1px .5px rgba(239,239,239,.5));border-radius:14px;overflow:hidden}.logo_container svg{width:48px;height:48px}.logo_container img{width:64px;height:64px;object-fit:contain}
.title_container{display:flex;flex-direction:column;align-items:center;gap:10px}.title{margin:0;font-size:1.25rem;font-weight:700;color:var(--login-text)}.subtitle{margin:0;max-width:280px;font-size:.775rem;text-align:center;line-height:1.25rem;color:var(--login-muted)}
.login_form{display:flex;flex-direction:column;width:100%;gap:16px}.input_container{width:100%;position:relative;display:flex;flex-direction:column;gap:6px}.icon{width:20px;position:absolute;z-index:1;left:13px;bottom:11px;color:var(--login-muted);pointer-events:none}.input_label{font-size:.75rem;color:var(--login-muted);font-weight:600}.input_field{box-sizing:border-box;width:100%;height:42px;padding:0 12px 0 42px;border-radius:7px;outline:none;border:1px solid var(--login-input-border);background:var(--login-input-bg);color:var(--login-text);filter:drop-shadow(0 1px 0 #efefef) drop-shadow(0 1px .5px rgba(239,239,239,.5));transition:all .2s cubic-bezier(.15,.83,.66,1)}.input_field:focus{border-color:transparent;box-shadow:0 0 0 2px #115dfc;background-color:var(--login-input-bg);color:var(--login-text)}.input_field::placeholder{color:var(--login-muted)}.sign-in_btn{width:100%;height:42px;border:0;background:#115dfc;border-radius:7px;outline:none;color:#fff;font-weight:600;cursor:pointer;transition:background .2s,transform .2s}.sign-in_btn:hover{background:#0d4edb}.sign-in_btn:active{transform:translateY(1px)}
.login_alert{box-sizing:border-box;width:100%;padding:10px 12px;border:1px solid #f1b5b5;border-radius:7px;background:#fff5f5;color:#a12424;font-size:.75rem;line-height:1.2}.login_alert--warning{border-color:#f1d494;background:#fff9e9;color:#78550b}.note{margin:0;font-size:.72rem;color:var(--login-muted);text-align:center}
@media(max-width:480px){.login-page{padding:16px}.form_container{padding:34px 24px 26px;border-radius:12px}}

/* Blue employee ticket workspace */
body{font-family:Inter,Arial,sans-serif;background:var(--app-bg);color:var(--app-text)}.sidebar{background:linear-gradient(180deg,#0c357f 0%,#08265d 100%);box-shadow:5px 0 24px rgba(16,57,125,.08)}.brand{display:flex;align-items:center;gap:10px;margin:4px 4px 28px;font-size:1.18rem}.brand-logo{height:42px;width:auto;object-fit:contain;border-radius:8px;background:#fff;padding:3px}.brand-mark{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:#fff;color:#115dfc;font-size:1rem}.brand small{margin-top:1px;color:#a9c9ff;letter-spacing:1.8px}.sidebar-user{display:flex;align-items:center;gap:10px;margin:0 4px 24px;padding:11px 10px;border:1px solid rgba(200,221,255,.2);border-radius:10px;background:rgba(255,255,255,.08);color:#fff}.sidebar-user>span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#63a3ff;font-size:.78rem;font-weight:800}.sidebar-user strong,.sidebar-user small{display:block}.sidebar-user strong{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem}.sidebar-user small{margin-top:2px;color:#b8d0fb;font-size:.64rem}.sidebar .nav-link{position:relative;display:flex;align-items:center;gap:11px;margin:2px 8px;padding:.66rem .8rem;color:#c8dbfa;font-size:.84rem;font-weight:500;border-radius:10px;transition:background .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease}.sidebar .nav-link svg{width:17px;height:17px;flex:0 0 17px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.72;transition:opacity .22s ease,transform .22s ease}.sidebar .nav-link:hover{background:rgba(93,160,255,.16);color:#fff;transform:translateX(3px);box-shadow:0 4px 14px rgba(6,24,60,.28)}.sidebar .nav-link:hover svg{opacity:1;transform:scale(1.1)}.sidebar .nav-link.active{background:linear-gradient(90deg,rgba(93,160,255,.32),rgba(93,160,255,.10));color:#fff;box-shadow:inset 0 0 0 1px rgba(125,181,255,.28)}.sidebar .nav-link.active:before{position:absolute;left:-8px;top:22%;width:3px;height:56%;border-radius:0 3px 3px 0;background:#7db5ff;content:''}.sidebar .nav-link.active svg{opacity:1}.sidebar-label{margin:22px 12px 6px;color:#84abeb;font-size:.62rem;font-weight:700;letter-spacing:1.4px}.sidebar .nav-link--logout{margin-top:4px;color:#b8d0fb}.sidebar .nav-link--logout:hover{background:rgba(224,49,49,.18)}@media (prefers-reduced-motion: reduce){.sidebar .nav-link,.sidebar .nav-link svg{transition:none}.sidebar .nav-link:hover{transform:none}}.topbar{min-height:76px;background:var(--topbar-bg);border-bottom:1px solid var(--card-border);box-shadow:0 2px 10px rgba(24,71,143,.03);position:relative}.topbar h2.topbar-title{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;white-space:nowrap;pointer-events:none;z-index:1}@media(max-width:991px){.topbar h2.topbar-title{white-space:normal;text-align:center;width:90%}}@media(max-width:767px){.topbar h2.topbar-title{position:static;transform:none;text-align:left;width:auto;font-size:1.1rem;letter-spacing:.3px}}.topbar-kicker{display:block;margin-bottom:2px;color:var(--muted-text);font-size:.61rem;font-weight:700;letter-spacing:1.15px}.topbar h2.topbar-title{margin:0;color:var(--app-heading);font-size:1.55rem;font-weight:800;letter-spacing:.5px;line-height:1.15;text-transform:uppercase}.topbar h2{margin:0;color:var(--app-heading);font-size:1.05rem;font-weight:700}@media(max-width:767px){.topbar h2.topbar-title{font-size:1.1rem;letter-spacing:.3px}}.topbar-action{padding:9px 15px;border-radius:8px;background:#115dfc;color:#fff;font-size:.78rem;font-weight:600}.topbar-action:hover{background:#0d4edb;color:#fff}.ticket-page{max-width:1080px;margin:0 auto;padding-bottom:20px}.ticket-page__heading{display:flex;justify-content:space-between;align-items:flex-start;margin:5px 0 24px}.eyebrow{margin:0 0 6px;color:#1665e9;font-size:.66rem;font-weight:800;letter-spacing:1.3px}.ticket-page__heading h1{margin:0;color:var(--app-heading);font-size:1.6rem;font-weight:800;letter-spacing:-.03em}.ticket-page__heading>div>p:not(.eyebrow){margin:7px 0 0;color:var(--muted-text);font-size:.84rem}.ticket-page__step{display:flex;align-items:center;gap:8px;margin-top:8px;color:var(--muted-text);font-size:.75rem;font-weight:600}.ticket-page__step span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#115dfc;color:white}.ticket-form{display:flex;flex-direction:column;gap:18px}.ticket-panel{padding:25px 27px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:13px;box-shadow:var(--card-shadow)}.employee-panel{padding-bottom:20px;border-color:var(--card-border);background:var(--card-bg)}.panel-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:22px}.panel-heading h2{margin:1px 0 4px;color:var(--app-heading);font-size:1rem;font-weight:750}.panel-heading p{margin:0;color:var(--muted-text);font-size:.76rem}.panel-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--panel-icon-bg);color:#115dfc}.panel-icon svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.employee-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding-top:17px;border-top:1px solid var(--card-border)}.employee-grid div{display:flex;flex-direction:column;gap:3px}.employee-grid span{color:var(--muted-text);font-size:.64rem;font-weight:700;letter-spacing:.65px;text-transform:uppercase}.employee-grid strong{color:var(--app-text);font-size:.82rem}.employee-grid small{color:var(--muted-text);font-size:.72rem}.ticket-panel .form-label{margin-bottom:7px;color:var(--app-text);font-size:.76rem;font-weight:700}.ticket-panel .form-label span{color:#115dfc}.ticket-panel .form-control,.ticket-panel .form-select{min-height:43px;border-color:var(--input-border);border-radius:8px;color:var(--input-text);font-size:.82rem;box-shadow:none}.ticket-panel textarea.form-control{min-height:120px;padding-top:11px;resize:vertical}.ticket-panel .form-control::placeholder{color:var(--muted-text)}.ticket-panel .form-control:focus,.ticket-panel .form-select:focus{border-color:#77adff;box-shadow:0 0 0 3px rgba(17,93,252,.12)}.field-hint{margin:6px 0 0;color:var(--muted-text);font-size:.68rem}.attachment-panel{padding-bottom:26px}.attachment-panel .panel-heading{margin-bottom:15px}.file-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:138px;padding:20px;border:1.5px dashed var(--input-border);border-radius:10px;background:var(--input-bg);color:var(--muted-text);cursor:pointer;transition:.2s}.file-drop:hover{border-color:#115dfc;background:var(--table-head-bg)}.file-drop svg{width:27px;height:27px;margin-bottom:7px;stroke:#2169e8;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.file-drop strong{color:var(--app-text);font-size:.78rem}.file-drop span{margin-top:4px;font-size:.68rem}.file-drop input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.ticket-submit{display:flex;align-items:center;justify-content:flex-end;gap:18px}.ticket-submit p{margin:0;color:var(--muted-text);font-size:.71rem}.submit-ticket{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:8px;background:#115dfc;color:#fff;font-size:.8rem;font-weight:700;box-shadow:0 8px 16px rgba(17,93,252,.22)}.submit-ticket:hover{background:#0d4edb;color:#fff}.submit-ticket svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:767px){.topbar h2{font-size:.95rem}.ticket-page__heading{gap:16px;flex-direction:column}.ticket-panel{padding:21px 18px}.employee-grid{grid-template-columns:1fr;gap:13px}.ticket-submit{align-items:flex-end;flex-direction:column;gap:10px}.ticket-submit p{text-align:right}}

/* ========= Ticket View / Detail page ========= */
.ticket-view{max-width:1280px;margin:0 auto}
.ticket-notfound .nf-icon{color:#115dfc}
.ticket-card{border-radius:14px}
.ticket-subject{font-size:1.25rem;font-weight:700;letter-spacing:-.01em}
.ticket-desc{line-height:1.7;font-size:.9rem;white-space:pre-wrap}
.ticket-sidebar{border-radius:12px}
.ticket-sidebar h6{display:flex;align-items:center;gap:8px}

/* Priority badges */
.priority-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.3px}
.priority-low{background:#d3f9d8;color:#2b8a3e}
.priority-medium{background:#fff3bf;color:#8a6100}
.priority-high{background:#ffe8cc;color:#a64b00}
.priority-critical{background:#ffe3e3;color:#c92a2a}
[data-bs-theme=dark] .priority-low{background:#1d3a2a;color:#69db7c}
[data-bs-theme=dark] .priority-medium{background:#3a3117;color:#ffd43b}
[data-bs-theme=dark] .priority-high{background:#3a2514;color:#ffa94d}
[data-bs-theme=dark] .priority-critical{background:#3a1414;color:#ff8787}

/* Attachment grid */
.attachment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.attach-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--card-border);border-radius:10px;background:var(--input-bg);text-decoration:none;color:var(--app-text);transition:.18s}
.attach-item:hover{border-color:#77adff;background:var(--table-head-bg);text-decoration:none;color:var(--app-heading)}
.attach-icon{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:8px;background:var(--panel-icon-bg);color:#115dfc}
.attach-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.attach-info strong{font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.attach-info small{font-size:.66rem;color:var(--muted-text)}

/* Comment cards */
.comment-list{display:flex;flex-direction:column;gap:10px}
.comment-card{border:1px solid var(--card-border);border-radius:12px;padding:12px 14px;background:var(--input-bg)}
.comment-card.comment-admin{border-color:rgba(17,93,252,.35);background:linear-gradient(180deg,rgba(17,93,252,.05),transparent)}
.comment-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.comment-avatar{display:grid;place-items:flex-end;width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#115dfc,#63a3ff);color:#fff;font-size:.75rem;font-weight:800;flex:0 0 32px;place-items:center}
.comment-admin .comment-avatar{background:linear-gradient(135deg,#f76707,#fd7e14)}
.comment-head small{font-size:.68rem}
.comment-body{line-height:1.6;font-size:.85rem;white-space:pre-wrap}
.comment-form{border:1px dashed var(--input-border);border-radius:12px;padding:14px;background:var(--table-head-bg)}
.file-input-label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;padding:7px 12px;border:1px solid var(--input-border);border-radius:8px;background:var(--card-bg);color:var(--muted-text);font-size:.76rem;font-weight:600;transition:.18s}
.file-input-label:hover{border-color:#77adff;color:var(--app-heading)}
.file-input-label input{display:none}

/* Resolution card */
.resolution-card{border-left:4px solid #20c997;border-radius:14px;background:linear-gradient(180deg,rgba(32,201,151,.05),transparent)}
[data-bs-theme=dark] .resolution-card{border-left-color:#20c997;background:linear-gradient(180deg,rgba(32,201,151,.07),transparent)}

/* Timeline (enhanced) */
.timeline{position:relative;margin:0;padding-left:1.25rem;border-left:2px solid var(--timeline-line)}
.timeline-item{position:relative;padding:0 0 1.1rem .2rem}
.timeline-item:last-child{padding-bottom:0}
.timeline-dot{position:absolute;width:12px;height:12px;left:-24px;top:6px;border-radius:50%;background:#115dfc;box-shadow:0 0 0 3px var(--card-bg)}
.timeline-content b{font-size:.78rem;color:var(--app-heading)}
.timeline-content small{font-size:.66rem;display:block;margin-top:2px}

/* Notfound dark adjustments */
[data-bs-theme=dark] .ticket-notfound .nf-icon{color:#63a3ff}

/* Ticket meta */
.ticket-meta{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0}
.ticket-meta dt{margin:0;font-size:.68rem;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-text);font-weight:700;align-self:center}
.ticket-meta dd{margin:0;font-size:.8rem;font-weight:600;color:var(--app-text)}
.ticket-meta-compact{gap:4px 12px}
.ticket-meta-compact dt{font-size:.62rem;letter-spacing:.4px}
.ticket-meta-compact dd{font-size:.74rem;line-height:1.25}

/* Compact sidebar cards (fit everything in one viewport) */
.ticket-sidebar-compact.card{border-radius:10px}
.ticket-sidebar-compact h6{font-size:.78rem;letter-spacing:.2px;margin-bottom:6px}
.ticket-sidebar-compact .form-control,
.ticket-sidebar-compact .form-select{min-height:30px;padding-top:.2rem;padding-bottom:.2rem;font-size:.74rem;border-radius:7px}
.ticket-sidebar-compact textarea.form-control{min-height:26px;padding-top:.25rem;padding-bottom:.25rem;line-height:1.35}
.ticket-sidebar-compact textarea.form-control[rows="1"]{min-height:26px;resize:vertical}
.ticket-sidebar-compact textarea.form-control[rows="2"]{min-height:42px}
.ticket-sidebar-compact .btn.btn-sm{padding:5px 10px;font-size:.72rem;min-height:28px;border-radius:7px}
.ticket-sidebar-compact .form-label.small{font-size:.64rem;margin-bottom:4px}

/* Collapsible resolution fields toggle button */
.ticket-sidebar-compact [data-bs-toggle="collapse"]{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600}
.ticket-sidebar-compact [data-bs-toggle="collapse"] svg{transition:transform .2s ease}
.ticket-sidebar-compact [data-bs-toggle="collapse"][aria-expanded="true"] svg{transform:rotate(90deg)}
#resFields .card-body{border-radius:8px}

/* Timeline compact mode */
.timeline-compact{max-height:260px;overflow-y:auto}
.timeline-compact::-webkit-scrollbar{width:5px}
.timeline-compact::-webkit-scrollbar-thumb{background:var(--sidebar-bg);border-radius:3px}
.timeline-compact .timeline-item{padding-bottom:.55rem}
.timeline-compact .timeline-dot{width:9px;height:9px;left:-20px;top:4px}
.timeline-compact .timeline-content b{font-size:.72rem}
.timeline-compact .timeline-content small{font-size:.61rem;margin-top:1px}
.timeline-compact .timeline{padding-left:1rem}

/* Ticket view sidebar tight spacing */
.ticket-view-sidebar .card{margin-bottom:10px}

/* Print polish */
@media print{.ticket-card,.ticket-sidebar{box-shadow:none;border:1px solid #ddd}}

/* ========= Ticket Table Row Highlights ========= */
.ticket-row-done td{
  background:linear-gradient(180deg,rgba(43,138,62,.06),rgba(43,138,62,.09));
  border-left:4px solid #40c057;
  position:relative;
}
.ticket-row-new td{
  background:linear-gradient(180deg,rgba(201,42,42,.05),rgba(201,42,42,.08));
  border-left:4px solid #ff6b6b;
  position:relative;
}
.ticket-row-done::after,.ticket-row-new::after{
  position:absolute;right:12px;top:50%;transform:translateY(-50%);
  width:8px;height:8px;border-radius:50%;content:'';opacity:.85;box-shadow:0 0 0 3px rgba(255,255,255,.5);
}
.ticket-row-done::after{background:#40c057}
.ticket-row-new::after{background:#ff6b6b;box-shadow:0 0 0 3px rgba(255,255,255,.6),0 0 10px rgba(255,90,90,.6);animation:pulse-new 1.8s ease-in-out infinite}
@keyframes pulse-new{
  0%,100%{opacity:.6;box-shadow:0 0 0 3px rgba(255,255,255,.6),0 0 8px rgba(255,90,90,.4)}
  50%{opacity:1;box-shadow:0 0 0 3px rgba(255,255,255,.8),0 0 16px rgba(255,90,90,.8)}
}

/* Dark-theme adjustments for row highlights */
[data-bs-theme=dark] .ticket-row-done td{
  background:linear-gradient(180deg,rgba(64,192,87,.08),rgba(64,192,87,.14));
  border-left-color:#51cf66;
}
[data-bs-theme=dark] .ticket-row-new td{
  background:linear-gradient(180deg,rgba(255,90,90,.08),rgba(255,90,90,.14));
  border-left-color:#ff8787;
}
[data-bs-theme=dark] .ticket-row-done::after,[data-bs-theme=dark] .ticket-row-new::after{
  box-shadow:0 0 0 3px rgba(26,35,56,.75);
}
[data-bs-theme=dark] .ticket-row-new::after{
  box-shadow:0 0 0 3px rgba(26,35,56,.75),0 0 10px rgba(255,90,90,.65);
}
[data-bs-theme=dark] @keyframes pulse-new{
  0%,100%{opacity:.7;box-shadow:0 0 0 3px rgba(26,35,56,.75),0 0 8px rgba(255,90,90,.5)}
  50%{opacity:1;box-shadow:0 0 0 3px rgba(26,35,56,.8),0 0 18px rgba(255,90,90,.85)}
}

/* Hover feel on highlighted rows */
.table-hover>tbody>tr.ticket-row-done:hover>td,
.table>tbody>tr.ticket-row-done:hover>td{
  background:linear-gradient(180deg,rgba(43,138,62,.09),rgba(43,138,62,.14))!important;
}
.table-hover>tbody>tr.ticket-row-new:hover>td,
.table>tbody>tr.ticket-row-new:hover>td{
  background:linear-gradient(180deg,rgba(201,42,42,.08),rgba(201,42,42,.13))!important;
}
[data-bs-theme=dark] .table-hover>tbody>tr.ticket-row-done:hover>td{
  background:linear-gradient(180deg,rgba(64,192,87,.11),rgba(64,192,87,.18))!important;
}
[data-bs-theme=dark] .table-hover>tbody>tr.ticket-row-new:hover>td{
  background:linear-gradient(180deg,rgba(255,90,90,.11),rgba(255,90,90,.18))!important;
}

/* ========= Ticket Archive ========= */
.archived-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;background:#495057;color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.4px}
[data-bs-theme=dark] .archived-badge{background:#3d4a63;color:#d7e0f2}
.archiving-badge{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;border-radius:999px;border:1px dashed var(--muted-text);color:var(--muted-text);font-size:.62rem;font-weight:600;white-space:nowrap;vertical-align:middle}
.archiving-badge svg{stroke:currentColor;stroke-width:2;fill:none}
.archived-row td{color:var(--muted-text)}
.archived-row td.fw-semibold,.archived-row .badge{color:inherit}
.archived-row .badge.bg-success,.archived-row .badge.bg-dark{color:#fff!important}
.archived-notice{background:var(--table-head-bg);border:1px solid var(--card-border);border-radius:8px;color:var(--muted-text)}
.archive-form{display:inline-block}
@media print{.archiving-badge,.archive-form{display:none!important}}

/* Impersonation banner */
.impersonation-banner{border-left:4px solid #e6a817;background:#fff8e6;border-color:#f0d78c;color:#6b4e0b}
[data-bs-theme=dark] .impersonation-banner{background:#2a2414;border-color:#6b5420;color:#f5e6b8}
.impersonation-banner .small{opacity:.85}

/* ========= Ticket lifecycle pages (Close / Archive / Deleted) ========= */
.life-page{max-width:1180px;margin:0 auto}
.life-hero{
  display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:18px;
  margin-bottom:18px;padding:22px 24px;
  border:1px solid var(--card-border);border-radius:16px;
  background:
    radial-gradient(1200px 180px at 0% 0%,rgba(17,93,252,.10),transparent 55%),
    linear-gradient(180deg,var(--card-bg),var(--card-bg));
  box-shadow:var(--card-shadow);
}
.life-hero h1{margin:0;font-size:1.45rem;font-weight:800;letter-spacing:-.02em;color:var(--app-heading)}
.life-hero p{margin:6px 0 0;max-width:52ch;color:var(--muted-text);font-size:.84rem;line-height:1.45}
.life-stat{
  display:flex;flex-direction:column;align-items:flex-end;justify-content:center;
  min-width:110px;padding:12px 16px;border-radius:14px;
  background:var(--table-head-bg);border:1px solid var(--card-border);
}
.life-stat strong{font-size:1.55rem;line-height:1;color:var(--app-heading);font-weight:800}
.life-stat span{margin-top:4px;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-text)}
.life-pipe{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 18px;padding:14px 16px;border-radius:14px;border:1px solid var(--card-border);background:var(--card-bg)}
.life-pipe__step{display:flex;align-items:center;gap:10px;min-width:160px;opacity:.55;transition:opacity .2s}
.life-pipe__step.is-active{opacity:1}
.life-pipe__dot{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--table-head-bg);border:1px solid var(--card-border);color:var(--muted-text);font-size:.72rem;font-weight:800}
.life-pipe__step.is-active .life-pipe__dot{background:#115dfc;border-color:#115dfc;color:#fff}
.life-pipe__step strong{display:block;font-size:.78rem;color:var(--app-heading)}
.life-pipe__step small{display:block;margin-top:1px;color:var(--muted-text);font-size:.68rem}
.life-pipe__arrow{display:grid;place-items:center;color:var(--muted-text);opacity:.55}
.life-pipe__arrow svg{width:16px;height:16px}
.life-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px;padding:12px;border-radius:14px;border:1px solid var(--card-border);background:var(--card-bg)}
.life-toolbar .form-control,.life-toolbar .form-select{min-height:40px;border-radius:10px;font-size:.82rem}
.life-panel{border:1px solid var(--card-border);border-radius:16px;background:var(--card-bg);box-shadow:var(--card-shadow);overflow:hidden}
.life-table{margin:0}
.life-table>thead th{
  background:var(--table-head-bg);color:var(--table-head-text);
  font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  border-bottom:1px solid var(--card-border);padding:12px 14px;white-space:nowrap;
}
.life-table>tbody>tr>td{padding:14px;border-color:var(--table-border);vertical-align:middle;background:transparent}
.life-table>tbody>tr:hover>td{background:var(--table-head-bg)}
.life-ticket{font-weight:750;color:#1665e9;letter-spacing:-.01em}
[data-bs-theme=dark] .life-ticket{color:#7db5ff}
.life-meta{display:block;margin-top:2px;color:var(--muted-text);font-size:.72rem}
.life-subject{font-size:.84rem;color:var(--app-text);font-weight:550}
.life-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.life-btn{border-radius:9px;font-size:.72rem;font-weight:650;padding:6px 11px;min-height:30px}
.life-btn--open{border:1px solid var(--input-border);background:transparent;color:var(--app-heading)}
.life-btn--open:hover{background:#115dfc;border-color:#115dfc;color:#fff}
.life-btn--archive{border:1px solid #94b8ff;background:rgba(17,93,252,.08);color:#1665e9}
.life-btn--archive:hover{background:#115dfc;border-color:#115dfc;color:#fff}
.life-btn--restore{border:1px solid #8ce99a;background:rgba(64,192,87,.1);color:#2b8a3e}
.life-btn--restore:hover{background:#2b8a3e;border-color:#2b8a3e;color:#fff}
.life-btn--delete{border:1px solid #ffa8a8;background:rgba(224,49,49,.08);color:#c92a2a}
.life-btn--delete:hover{background:#c92a2a;border-color:#c92a2a;color:#fff}
.life-btn--danger{border:1px solid #fa5252;background:#c92a2a;color:#fff}
.life-btn--danger:hover{background:#a61e1e;border-color:#a61e1e;color:#fff}
[data-bs-theme=dark] .life-btn--archive{background:rgba(125,181,255,.12);color:#9ec5ff;border-color:#3d5a8c}
[data-bs-theme=dark] .life-btn--restore{background:rgba(81,207,102,.12);color:#69db7c;border-color:#2f6b3c}
[data-bs-theme=dark] .life-btn--delete{background:rgba(255,135,135,.1);color:#ff8787;border-color:#6b3030}
.life-empty{padding:48px 20px;text-align:center;color:var(--muted-text)}
.life-empty strong{display:block;margin:8px 0 4px;color:var(--app-heading);font-size:.95rem}
.life-empty svg{width:40px;height:40px;stroke:currentColor;stroke-width:1.6;fill:none;opacity:.55}
.life-status{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.02em;background:#212529;color:#fff}
[data-bs-theme=dark] .life-status{background:#0b1220;border:1px solid #33415f}
.life-time{font-size:.76rem;color:var(--muted-text);white-space:nowrap}
@media(max-width:767px){
  .life-hero{padding:18px}.life-stat{align-items:flex-start}
  .life-pipe__step{min-width:140px}.life-actions{justify-content:flex-start}
}
