:root{--blue:#2563eb;--blue-dark:#1d4ed8;--blue-soft:#edf3ff;--ink:#17243b;--muted:#6b778b;--border:#e5eaf1;--canvas:#f5f7fb;--white:#fff;--radius:14px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--canvas);font-size:16px;line-height:1.55}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:var(--blue);text-decoration:none}a:hover{color:var(--blue-dark)}button{cursor:pointer}svg{width:20px;height:20px;flex-shrink:0;vertical-align:middle}button:disabled{cursor:wait;opacity:.65}:focus-visible{outline:3px solid #93b7ff;outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:16px;top:-60px;z-index:30;padding:12px 20px;background:white;border-radius:8px}.skip-link:focus{top:12px}.sidebar{position:fixed;inset:0 auto 0 0;width:280px;background:#fff;border-right:1px solid var(--border);padding:30px 18px 20px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 18px;color:var(--ink);width:fit-content}.brand-mark{font-size:44px;line-height:1;font-weight:850;letter-spacing:-3px}.brand-dot{color:var(--blue)}.version{font-size:13px;font-weight:700;letter-spacing:.3px;background:var(--blue-soft);color:var(--blue);padding:3px 7px;border:1px solid #dbe7ff;border-radius:6px}.workspace-label{margin:48px 16px 13px;font-size:12px;font-weight:700;letter-spacing:1.5px;color:#8993a5}.nav-item{display:flex;align-items:center;gap:13px;position:relative;padding:13px 16px;margin:5px 0;border-radius:9px;color:#667185;font-size:15px;font-weight:550}.nav-item:hover{background:#f6f8fc}.nav-item.active{background:var(--blue-soft);color:var(--blue);font-weight:650}.nav-indicator{margin-left:auto;width:6px;height:6px;background:var(--blue);border-radius:50%}.sidebar-footer{margin-top:auto;padding-top:28px}.profile{display:flex;align-items:center;gap:10px;padding:16px 7px;border-top:1px solid var(--border)}.profile>div{min-width:0}.profile strong{font-size:14px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile div>span{display:block;font-size:13px;color:var(--muted)}.avatar{display:inline-flex;align-items:center;justify-content:center;background:#e8efff;color:#4761a4;border-radius:50%;width:38px;height:38px;font-weight:650;font-size:14px;flex-shrink:0}.avatar.small{width:29px;height:29px;font-size:12px}.avatar.unassigned{background:#f1f3f7;color:#8a94a5}.logout{border:0;background:none;display:flex;align-items:center;gap:10px;padding:8px 10px;color:var(--muted);font-size:14px}.logout svg{width:17px}.maker{font-size:12px;color:#98a1b1;margin:24px 8px 0}.maker strong{color:#778299;font-weight:600}.app-main{margin-left:280px}.topbar{height:76px;border-bottom:1px solid var(--border);background:rgba(255,255,255,.9);display:flex;justify-content:space-between;align-items:center;padding:0 38px;gap:16px}.breadcrumbs,.topbar-end,.today{display:flex;align-items:center;gap:14px;font-size:14px}.breadcrumbs{color:#8a94a5}.breadcrumbs svg{width:12px}.breadcrumbs strong{color:#586579;font-weight:500}.topbar-end{gap:22px}.today{gap:8px;color:var(--muted)}.today svg{width:16px}.workspace-badge{border-left:1px solid var(--border);padding-left:22px;color:#8b96a8;font-size:13px}.content{max-width:1800px;margin:0 auto;padding:34px 38px 60px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.eyebrow{display:block;color:#77869c;font-size:12px;font-weight:700;letter-spacing:1.5px;margin-bottom:8px}.page-heading h1{font-size:35px;letter-spacing:-1.3px;margin:0;font-weight:730;line-height:1.25}.heading-dot{color:var(--blue)}.page-heading p{margin:10px 0 0;color:var(--muted);font-size:15px}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 17px;border-radius:8px;border:1px solid transparent;font-weight:600;font-size:15px;line-height:1.4;white-space:nowrap}.button.primary{background:var(--blue);color:#fff;box-shadow:0 3px 7px #2563eb18}.button.primary:hover{background:var(--blue-dark)}.button.secondary{background:#fff;color:#526078;border-color:#dfe5ee}.button.secondary:hover{background:#f7f9fc;border-color:#bfcee3}.button.compact{min-height:32px;padding:6px 12px;font-size:14px}.button.full{width:100%}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:0 0 30px}.stat{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:19px 21px 18px;color:var(--ink);transition:border-color .15s}.stat:hover{border-color:#aac4f8;color:var(--ink)}.stat-top{display:flex;align-items:center;justify-content:space-between;color:#738098;font-size:14px;font-weight:500;gap:8px}.stat-icon{background:#f2f6fe;width:32px;height:32px;display:grid;place-items:center;border-radius:8px;color:#7494cd}.stat-icon svg{width:17px}.stat>strong{display:block;font-size:34px;letter-spacing:-1px;font-weight:700;line-height:1.5;margin-top:7px;font-variant-numeric:tabular-nums}.stat-caption{font-size:13px;color:#919bab}.panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:0 3px 8px #14294b02}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:23px 24px 18px}.panel-heading .muted{font-size:13px}.panel h2{font-size:17px;font-weight:650;letter-spacing:-.25px;margin:0 0 5px}.subtle-label{font-size:13px;color:#98a1b1}.tabs{display:flex;gap:27px;border-bottom:1px solid var(--border);padding:0 24px;overflow-x:auto}.tabs a{padding:13px 0 14px;color:#7b879a;font-size:14px;font-weight:550;white-space:nowrap;border-bottom:2px solid transparent}.tabs a.selected{color:var(--blue);border-bottom-color:var(--blue)}.filters{display:flex;gap:12px;align-items:center;padding:18px 24px}.filters label{margin:0}.search-field{position:relative;flex:1}.search-field svg{position:absolute;top:13px;left:13px;color:#95a0b1;width:17px}.search-field input{padding-left:39px;width:100%}input,select,textarea{background:#fff;border:1px solid #dde4ee;border-radius:7px;padding:10px 12px;color:var(--ink);min-height:42px;font-size:15px;width:100%;transition:border-color .15s}input::placeholder,textarea::placeholder{color:#97a2b3;font-size:14px}select{padding-right:28px}textarea{resize:vertical;line-height:1.7}input:focus,select:focus,textarea:focus{border-color:#80a6f4;outline:2px solid #2563eb15;outline-offset:1px}input[readonly]{background:#f6f8fc;color:var(--muted)}.filters select{max-width:210px;min-width:130px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:14px}th{background:#fafbfe;color:#8c97a8;font-weight:550;font-size:13px;padding:12px 20px;border-top:1px solid #eef1f6;border-bottom:1px solid #eef1f6;white-space:nowrap}td{padding:17px 20px;border-bottom:1px solid #edf0f5;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfdff}.ticket-link{display:flex;flex-direction:column;gap:3px;min-width:210px;max-width:340px;color:var(--ink)}.ticket-link strong{font-size:15px;font-weight:550;line-height:1.5;overflow-wrap:anywhere}.ticket-number{font-size:12px;color:#8896aa;font-variant-numeric:tabular-nums}.customer-name{display:block;max-width:170px;color:#65728a;font-size:14px}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:5px;background:#f0f3f7;color:#708098;padding:4px 8px;font-size:12px;line-height:1.4;max-width:170px}.badge:before{content:"";width:5px;height:5px;background:currentColor;border-radius:50%;flex-shrink:0}.state-1{background:#edf3ff;color:#4879cd}.state-2{background:#eaf7f1;color:#3b8b6b}.state-3{background:#fff6e8;color:#b48737}.state-4,.state-5{background:#f0edfc;color:#8970c1}.state-6,.state-7{background:#f0f3f6;color:#8994a3}.priority{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:#7b879a;white-space:nowrap}.priority-dot{width:6px;height:6px;border-radius:50%;background:#9aa9bb}.priority-2 .priority-dot{background:#e8ac3b}.priority-3{color:#cf635e}.priority-3 .priority-dot{background:#e57670}.owner{display:flex;align-items:center;gap:8px;color:#69758a;font-size:13px;min-width:120px}.date-cell{color:#8a96a8;font-size:13px;white-space:nowrap}.pagination{border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 24px;font-size:13px;color:#8d98aa}.pagination>div{display:flex;gap:8px}.empty-state{text-align:center;padding:38px 20px;color:var(--muted)}.empty-state>svg{width:30px;height:30px;color:#9eafc8;margin-bottom:10px}.empty-state h3{font-weight:600;font-size:17px;color:#596982;margin:0}.empty-state p{font-size:15px;margin:8px 0}.muted{color:var(--muted)}.notice{padding:13px 17px;border-radius:8px;margin-bottom:20px;font-size:15px;display:flex;align-items:center;gap:10px}.notice.error{color:#a43c3c;background:#fff0f0;border:1px solid #f5d3d3}.notice.success{color:#287954;background:#edf9f1;border:1px solid #cee9d7}.notice.hint{color:#8b672a;background:#fff8e9;border:1px solid #f4e4bf}.back-link{display:inline-block;color:#7b88a0;font-size:14px;margin-bottom:22px}.page-heading .detail-title{font-size:29px;max-width:800px;overflow-wrap:anywhere}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px}.detail-body,.detail-side{display:flex;flex-direction:column;gap:24px;min-width:0}.padded{padding:25px}.padded>h2{margin-bottom:20px}.prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85;color:#5c6b82;font-size:15px}.section-title{display:flex;align-items:center;gap:9px;margin-bottom:20px}.section-title h2{margin:0}.section-title>svg{color:var(--blue)}.count-bubble{font-size:12px;border-radius:5px;background:#f0f3f8;padding:1px 7px;color:#8b97a9}.form-stack{display:flex;flex-direction:column;gap:18px}label{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:550;color:#596880}.form-grid{display:grid;gap:20px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.form-actions.bordered{border-top:1px solid var(--border);padding-top:22px;margin-top:8px}.timeline{margin-top:28px}.comment{display:grid;grid-template-columns:38px 1fr;gap:12px;padding:20px 0;border-top:1px solid var(--border)}.comment-heading{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin:0 0 8px;font-size:14px}.comment-heading time{color:#94a0b1;font-size:12px}.facts{margin:0}.facts>div{display:flex;flex-direction:column;gap:5px;margin-bottom:19px}.facts>div:last-child{margin-bottom:0}.facts dt{color:#8e9aab;font-size:13px}.facts dd{margin:0;font-size:15px;color:#52637c;overflow-wrap:anywhere}.time-panel{border-top:3px solid #80a9fa}.time-panel .form-grid{gap:10px}.work-entry{padding:18px 0;border-bottom:1px solid var(--border)}.work-entry:first-child{padding-top:0}.work-entry:last-child{border:0;padding-bottom:0}.work-entry-top{display:flex;justify-content:space-between;gap:16px;margin-bottom:10px}.work-entry-top>div{display:flex;flex-direction:column;gap:4px}.work-entry-top strong{font-size:15px;font-weight:600}.work-entry-top .muted{font-size:13px}.work-entry-top .duration{font-size:23px;color:#47658d;white-space:nowrap}.duration span{font-size:13px;font-weight:400;color:#8c9bb0}.work-entry-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:15px;font-size:13px;color:#8d98aa;margin-top:14px}.ticket-form{max-width:950px}.ticket-form h2{margin:3px 0}.ticket-form hr{border:0;border-top:1px solid var(--border);width:100%;margin:10px 0}.customer-link{font-weight:600;color:#3e5577}.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.contact-card{display:flex;gap:12px}.contact-card>div{display:flex;flex-direction:column;gap:4px;min-width:0}.contact-card strong{font-size:15px}.contact-card div>span{font-size:14px;color:var(--muted);overflow-wrap:anywhere}.customer-tickets{margin-top:24px}.icon-button{background:none;border:0;padding:7px;color:var(--ink)}.mobile-menu{display:none}.login-page{background:white}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-intro{background:#f0f5ff;position:relative;display:flex;flex-direction:column;padding:50px 60px;overflow:hidden}.login-intro:after{content:"";position:absolute;right:-140px;bottom:-180px;width:520px;height:520px;border:75px solid #e3edff;border-radius:50%;pointer-events:none}.login-intro .brand{padding:0}.intro-copy{margin:auto 0;padding:75px 0;position:relative;z-index:1}.intro-copy .eyebrow{color:#6484bc}.intro-copy h1{font-size:clamp(39px,4vw,65px);letter-spacing:-2.8px;line-height:1.15;margin:28px 0;font-weight:700}.intro-copy h1 span{color:var(--blue)}.intro-copy p{font-size:17px;line-height:1.8;color:#7b8eae}.login-credit{font-size:13px;color:#8798b6;position:relative;z-index:1}.login-credit strong{color:#527099}.login-panel{display:flex;align-items:center;justify-content:center;padding:50px}.login-card{width:100%;max-width:390px}.login-card h2{font-size:30px;letter-spacing:-1px;margin:10px 0}.login-card>.muted{font-size:15px;margin-bottom:33px}.login-card .form-stack{gap:23px}.login-card .button{margin-top:3px;min-height:47px}.login-help{color:#9ca7b8;font-size:13px;line-height:1.7;margin-top:28px}.login-card .eyebrow{font-size:12px}.login-card label{font-size:15px}
@media(min-width:1500px){.content{padding:42px 48px}.ticket-link{max-width:440px}.topbar{padding:0 48px}}@media(max-width:1200px){.sidebar{width:245px;padding-inline:12px}.app-main{margin-left:245px}.content{padding:28px 24px}.topbar{padding:0 24px}.stat{padding:16px}.stats{gap:12px}.detail-grid{grid-template-columns:minmax(0,1fr) 300px;gap:18px}.filters{flex-wrap:wrap}.filters .search-field{min-width:250px}.subtle-label{display:none}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-intro{padding:45px 38px}}@media(max-width:900px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:1fr}.detail-side{display:grid;grid-template-columns:1fr 1fr;align-items:start}.page-heading{align-items:flex-start}.topbar-end .today{display:none}.contact-grid{grid-template-columns:1fr}.login-shell{grid-template-columns:.85fr 1fr}.login-panel{padding:30px}.intro-copy h1{font-size:41px}.login-intro{padding:35px 25px}}@media(max-width:700px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:230px;box-shadow:10px 0 30px #15274615}.navigation-open .sidebar{transform:translateX(0)}.app-main{margin-left:0}.navigation-open .app-main{margin-left:230px;min-width:320px}.mobile-menu{display:block}.breadcrumbs .mobile-menu svg{width:20px}.topbar{height:62px;padding:0 18px}.topbar-end{display:none}.content{padding:25px 16px 40px}.page-heading{gap:14px;margin-bottom:22px}.page-heading h1{font-size:29px}.page-heading p{font-size:14px}.page-heading>.button{font-size:13px;padding:9px 12px;min-height:38px}.page-heading>.button svg{width:16px}.eyebrow{font-size:11px}.stats{gap:10px;margin-bottom:22px}.stat-top{font-size:13px}.stat{padding:13px}.stat>strong{font-size:30px}.stat-caption{font-size:12px}.stat-icon{width:26px;height:26px}.panel-heading{padding:20px 17px 12px}.tabs{padding:0 17px;gap:22px}.filters{padding:16px;gap:10px}.filters .search-field{flex-basis:100%;min-width:0}.filters>label:not(.search-field){flex:1;min-width:0}.filters select{min-width:0;max-width:100%;font-size:13px}.filters>.button{font-size:13px;padding:10px}.padded{padding:20px}.detail-side{display:flex}.form-grid.two{grid-template-columns:1fr}.time-panel .form-grid.two{grid-template-columns:1fr 1fr}.page-heading .detail-title{font-size:25px}.pagination{padding:14px 16px}.login-shell{display:flex;flex-direction:column}.login-intro{padding:28px;background:#f0f5ff}.login-intro:after,.intro-copy,.login-credit{display:none}.login-panel{padding:45px 25px}.login-card h2{font-size:27px}.login-card .eyebrow{font-size:11px}.ticket-form .form-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}@media print{.sidebar,.topbar,.button,.back-link,form,.skip-link{display:none!important}.app-main{margin:0}.content{padding:0}.detail-grid{display:block}.panel{break-inside:avoid;box-shadow:none;margin-bottom:20px}body{background:white}}
/* Ticket workflow and time entry */
.button.danger{background:#fff3f2;color:#b83c35;border-color:#f1c9c5}.button.danger:hover{background:#ffe8e5}.table-meta{display:block;font-size:13px;color:#8996a9;margin-top:5px}.planned-date{color:#b47c28}.ticket-signals{display:flex;flex-wrap:wrap;gap:5px 10px;margin:8px 0 3px}.ticket-signals a{font-size:12px;color:#627fa8;background:#f0f5fc;border-radius:4px;padding:2px 5px}.task-entry{border-top:1px solid var(--border);padding:20px 0}.task-entry:last-child{padding-bottom:0}.task-entry .section-title{flex-wrap:wrap;margin-bottom:10px}.task-meta{font-size:13px}.task-actions,.inline-form{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.inline-form select{min-height:34px;padding:6px 28px 6px 10px;font-size:14px}.push-right{margin-left:auto}.checkbox-label{display:flex;flex-direction:row;align-items:center;gap:10px}.checkbox-label input{width:18px;min-height:18px;height:18px;accent-color:var(--blue)}section[id]{scroll-margin-top:20px}.task-actions .button{white-space:normal}.work-entry-bottom .button{margin-left:auto}.work-entry-bottom .button+.button{margin-left:0}
.checklist-item{display:flex;align-items:flex-start;gap:12px;margin-top:15px}.completed{text-decoration:line-through;color:var(--muted)}.remove-details{font-size:13px;color:#936b67;margin-top:16px}.remove-details summary{cursor:pointer}.document-name{display:block;overflow-wrap:anywhere;margin-bottom:10px}.task-entry h3{font-size:17px}.task-entry>form{margin-top:12px}
.contact-editor{padding:16px 0;border-top:1px solid var(--border)}.contact-editor>summary{cursor:pointer;font-weight:550;font-size:15px}.contact-editor>summary .muted{font-weight:400;font-size:13px}.contact-editor>form{margin-top:20px}

.catalog-nav { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.catalog-nav a { padding:10px 14px; border:1px solid #dce4ef; border-radius:9px; color:#475569; background:#fff; text-decoration:none; }
.catalog-nav a.selected { color:#1d4ed8; background:#eff6ff; border-color:#93c5fd; }
.catalog-value { max-width:350px; white-space:normal; overflow-wrap:anywhere; }
.template-picker { display:flex; flex-wrap:wrap; align-items:end; gap:12px; padding:14px; background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; }
.template-picker label { flex:1; min-width:180px; }
.template-picker [role=status] { width:100%; }
.template-picker [role=status]:empty { display:none; }

.material-row { display:flex; flex-wrap:wrap; align-items:end; gap:12px; padding:12px 0; border-bottom:1px solid #e2e8f0; }
.material-row strong { flex:1; min-width:180px; }
.material-row input { max-width:120px; }

.batch-customers { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:12px; max-height:340px; overflow:auto; padding:12px; }

.signature-pad canvas { display:block; width:100%; max-width:900px; height:auto; border:1px solid #94a3b8; border-radius:8px; touch-action:none; margin:12px 0; }
.signature-preview { max-width:100%; width:450px; height:auto; border:1px solid #e2e8f0; }

.sidebar { overflow-y:auto; }
.sidebar > * { flex-shrink:0; }
@media(max-height:850px) { .sidebar { padding-top:20px; } .workspace-label { margin-top:24px; } .nav-item { padding-top:9px; padding-bottom:9px; } .sidebar-footer { padding-top:14px; } .maker { margin-top:12px; } }

.content .button { max-width:100%; white-space:normal; text-align:center; }
.form-actions, .task-actions { flex-wrap:wrap; }
.content > .panel { margin-bottom:20px; }

.ql-toolbar.ql-snow { margin-top:6px; border-color:#d5deeb; border-radius:8px 8px 0 0; background:#f8fafc; }
.ql-container.ql-snow { border-color:#d5deeb; border-radius:0 0 8px 8px; font:inherit; background:white; }
.ql-editor { min-height:160px; line-height:1.6; }
.rich-status { color:#b91c1c; margin:6px 0; }
.rich-status:empty { display:none; }
.rich-body p { margin:0 0 8px; }
.rich-body ul,.rich-body ol { padding-left:24px; }
.rich-body blockquote { border-left:3px solid #93b4ed; margin:10px 0; padding:4px 14px; color:#526078; }
.rich-body pre { overflow:auto; padding:12px; border-radius:6px; background:#f1f5f9; white-space:pre-wrap; }
.rich-body table { max-width:100%; border-collapse:collapse; }
.rich-body td,.rich-body th { border:1px solid #dce4ef; padding:6px 10px; }

.nav-group { margin-bottom: 4px; }
.nav-group summary { cursor: pointer; list-style: none; }
.nav-group summary::-webkit-details-marker { display: none; }
.nav-chevron { margin-left: auto; transition: transform .15s; }
.nav-group[open] .nav-chevron { transform: rotate(90deg); }
.nav-children { margin: 4px 8px 10px 22px; padding-left: 12px; border-left: 1px solid #dbe4f0; }
.nav-child { display: block; padding: 8px 10px; border-radius: 7px; color: #475569; font-size: 14px; text-decoration: none; overflow-wrap: anywhere; }
.nav-child:hover, .nav-child.active { background: #eff6ff; color: #1d4ed8; }
.nav-child.active { font-weight: 600; }
.nav-group summary:focus-visible, .nav-child:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }

.search-select { position:relative; min-width:0; width:100%; }
.search-select .enhanced-select { position:absolute; width:1px; height:1px; padding:0; margin:0; opacity:0; pointer-events:none; }
.search-select .select-search { width:100%; margin:0; padding-right:28px; background-color:#fff; }
.search-select::after { content:'⌄'; position:absolute; top:10px; right:12px; pointer-events:none; color:#64748b; }
.select-results { position:absolute; z-index:50; top:100%; left:0; right:0; margin-top:4px; max-height:240px; overflow-y:auto; overscroll-behavior:contain; border:1px solid #cbd5e1; border-radius:8px; background:#fff; box-shadow:0 8px 24px #0f172a20; }
.select-results[hidden] { display:none; }
.select-result,.select-empty { padding:10px 12px; font-weight:400; font-size:15px; overflow-wrap:anywhere; }
.select-result { cursor:pointer; }
.select-result:hover,.select-result.highlighted { background:#eff6ff; color:#1d4ed8; }
.select-result[aria-selected="true"] { font-weight:600; }
.select-empty { color:#64748b; }
.select-search[aria-invalid="true"] { border-color:#dc2626; }
.panel:has(.search-select) { overflow:visible; }
.table-sort-button { border:0; background:transparent; color:inherit; font:inherit; text-align:left; padding:0; cursor:pointer; }
th[aria-sort="ascending"] .table-sort-button::after { content:' ↑'; }
th[aria-sort="descending"] .table-sort-button::after { content:' ↓'; }
th[aria-sort="none"] .table-sort-button::after { content:' ↕'; color:#94a3b8; }
.table-sort-note { font-size:13px; color:#64748b; margin:8px 16px; }
.global-customer-search { position:relative; width:240px; max-width:100%; }
.global-customer-search input { width:100%; padding:9px 12px; border:1px solid #d5deeb; border-radius:8px; background:#fff; }
.customer-search-results { position:absolute; top:100%; right:0; width:340px; max-width:calc(100vw - 32px); max-height:320px; overflow:auto; background:#fff; border:1px solid #d5deeb; border-radius:8px; box-shadow:0 8px 24px #0f172a20; z-index:60; }
.customer-search-result { padding:10px 14px; cursor:pointer; }
.customer-search-result strong,.customer-search-result span { display:block; overflow-wrap:anywhere; }
.customer-search-result span { font-size:13px; color:#64748b; }
.customer-search-result:hover,.customer-search-result.highlighted { background:#eff6ff; }
.customer-search-results p { padding:10px 14px; }
@media(max-width:700px){.topbar{flex-wrap:wrap;height:auto;gap:10px;padding-top:12px;padding-bottom:12px}.topbar-end{width:100%}.global-customer-search{flex:1;width:auto}.topbar-end .today,.topbar-end .workspace-badge{display:none}}
.phone-action { display:inline-block; margin-top:5px; font-size:14px; }
.phone-action[hidden] { display:none; }

.profile-image { object-fit:cover; }
.profile-preview { width:160px; height:160px; object-fit:cover; border-radius:12px; }
.avatar-badge { position:relative; overflow:hidden; }
.avatar-badge img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.avatar-badge img[hidden] { display:none; }

html[data-theme="dark"] { color-scheme:dark; --blue:#8ab4ff; --blue-dark:#b7d1ff; --blue-soft:#203553; --ink:#e6edf7; --muted:#a5b3c8; --border:#344155; --canvas:#111827; --white:#1b2535; }
html[data-theme="dark"] :is(.sidebar,.topbar,.panel,.login-panel,.login-card,.select-results,.customer-search-results,.ql-container.ql-snow) { background:#1b2535; border-color:#344155; color:#e6edf7; }
html[data-theme="dark"] :is(input,select,textarea,.search-select .select-search,.global-customer-search input) { background-color:#111b2a; border-color:#45536b; color:#e6edf7; }
html[data-theme="dark"] :is(input,textarea)::placeholder { color:#97a6bb; }
html[data-theme="dark"] :is(h1,h2,h3,strong,.ticket-link strong,.facts dd,.prose,.nav-child,.breadcrumbs strong,.profile strong,.customer-link,.customer-name,.task-entry,.catalog-value) { color:#e6edf7; }
html[data-theme="dark"] :is(.muted,.table-meta,.task-meta,.stat-caption,.stat-top,.breadcrumbs,.facts dt,.customer-search-result span,.select-empty,.table-sort-note,.maker,.today) { color:#a5b3c8; }
html[data-theme="dark"] :is(th,.ql-toolbar.ql-snow,.rich-body pre,.login-intro) { background:#172131; color:#c2cede; border-color:#344155; }
html[data-theme="dark"] :is(td,.task-entry,.work-entry,.comment,.form-actions.bordered,.nav-children,.sidebar-footer,.contact-editor,.facts div) { border-color:#344155; }
html[data-theme="dark"] :is(tbody tr:hover,.nav-item.active,.nav-child.active,.nav-child:hover,.select-result:hover,.select-result.highlighted,.customer-search-result:hover,.customer-search-result.highlighted,.catalog-nav a.selected) { background:#253a57; color:#b7d1ff; }
html[data-theme="dark"] .button.secondary { background:#263449; border-color:#52627c; color:#edf3ff; }
html[data-theme="dark"] .button.primary { background:#326ad4; color:white; }
html[data-theme="dark"] .button.danger { background:#512934; color:#ffc1c1; border-color:#8b4454; }
html[data-theme="dark"] :is(.notice.hint,.notice.success,.notice.error) { background:#24364a; color:#edf3ff; border-color:#64748b; }
html[data-theme="dark"] .notice.error { background:#482a35; color:#ffd2d2; }
html[data-theme="dark"] .badge { background:#2a3b52; color:#d4e4ff; }
html[data-theme="dark"] :is(.badge.state-2,.badge.state-7) { background:#173f38; color:#a7f3d0; }
html[data-theme="dark"] :is(.badge.state-6,.priority-3) { background:#492938; color:#ffc2cf; }
html[data-theme="dark"] :is(.avatar,.count-bubble,.workspace-badge) { background:#2b4162; color:#d2e3ff; }
html[data-theme="dark"] .ql-snow .ql-picker { color:#d2ddec; }
html[data-theme="dark"] .ql-snow .ql-stroke { stroke:#d2ddec; }
html[data-theme="dark"] .ql-snow .ql-fill { fill:#d2ddec; }
html[data-theme="dark"] :is(.ql-snow .ql-picker-options,.ql-snow .ql-tooltip) { background:#1b2535; border-color:#52627c; color:#e6edf7; }
@media print { html[data-theme="dark"] { --ink:#17243b;--muted:#6b778b;--border:#e5eaf1;--canvas:white;--white:white; } html[data-theme="dark"] body,html[data-theme="dark"] .panel { background:white!important;color:#17243b!important; } html[data-theme="dark"] :is(h1,h2,h3,strong,td,th,.facts dd,.prose) { color:#17243b!important; } }
html[data-theme="dark"] :is(label,.form-stack label,.eyebrow,.workspace-label) { color:#c2cede; }

.report-bar { display:grid; grid-template-columns:80px minmax(80px,1fr) 60px; align-items:center; gap:12px; margin:10px 0; }.report-bar meter { width:100%; height:24px; }

.report-bar { grid-template-columns: minmax(4.5rem,1fr) minmax(4rem,4fr) minmax(3rem,auto); }
.report-bar > span { overflow-wrap: anywhere; }
.report-bar > strong { font-variant-numeric: tabular-nums; text-align:right; }
.report-chart meter::-webkit-meter-optimum-value { background:var(--primary,#2563eb); }
.report-chart meter::-moz-meter-bar { background:var(--primary,#2563eb); }

/* Compact navigation, login and accessible theme switch. */
.sidebar > nav{margin-top:28px}
.theme-switch{position:relative;display:flex;align-items:center;justify-content:space-around;flex-shrink:0;width:66px;height:34px;border:1px solid var(--border);border-radius:999px;background:var(--blue-soft);color:var(--ink);padding:0;cursor:pointer}
.theme-switch .theme-sun,.theme-switch .theme-moon{position:relative;z-index:2;display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;font-size:21px;line-height:1}
.theme-knob{position:absolute;top:3px;left:3px;width:26px;height:26px;background:var(--white);border-radius:50%;box-shadow:0 1px 4px #0003;transition:transform .18s}
.theme-switch[aria-checked=true] .theme-knob{transform:translateX(32px)}
.login-page .login-shell{display:flex;min-height:100vh;justify-content:center;align-items:center;padding:24px}
.login-page .login-panel{width:100%;max-width:440px;padding:0;background:transparent}
.login-page .login-card{width:100%;max-width:none;padding:32px;background:var(--white);border:1px solid var(--border);border-radius:14px;box-shadow:0 8px 30px #00000008}
.login-card .brand{padding:0;margin-bottom:28px}.login-card h1{font-size:27px;margin:0 0 8px}
@media(prefers-reduced-motion:reduce){.theme-knob{transition:none}}
@media(max-width:600px){.page-heading>.form-actions{width:100%;flex-wrap:wrap}.login-page .login-card{padding:24px}}
[data-theme=dark] .stat{background:var(--white);border-color:var(--border)}
[data-theme=dark] .nav-item{color:var(--muted)}
[data-theme=dark] .nav-item.active{color:var(--blue)}
@media(max-width:700px){.topbar-end{display:flex;width:auto;gap:0}.topbar-end .global-customer-search,.topbar-end .today,.topbar-end .workspace-badge{display:none}}

.sr-only{left:0;top:0}
[data-capture-materials]{display:grid;gap:14px}
.work-materials{min-width:0;border:1px solid var(--border);border-radius:10px;padding:18px}
.work-material-position{padding-bottom:14px;border-bottom:1px solid var(--border)}
[data-optional-signature]>summary{cursor:pointer;font-weight:600;padding:12px 0}
.mail-count{margin-left:auto;min-width:24px;padding:2px 7px;border-radius:999px;background:var(--blue);color:#fff;font-size:13px;text-align:center}
[data-customer-contract][hidden], [data-customer-hint][hidden] { display: none; }
[data-batch-customers] [hidden] { display: none; }
@media(max-width:600px){.teamviewer-filters{flex-direction:column;align-items:stretch}.teamviewer-filters>label{width:100%;min-width:0}.teamviewer-filters input[type="date"],.teamviewer-filters select{width:100%;min-width:0}}
/* Stronger separation between workspace, panels and controls. */
:root { --canvas:#e8eef6; --border:#b9c7d8; --muted:#4c5e75; }
.panel { border-color:var(--border); box-shadow:0 3px 12px #172b4d0b; }
.panel-heading, table thead { background:#edf2f8; }
.button.secondary { color:#263f60; border-color:#a5b8d0; background:#f8fbff; }
input:not([type="checkbox"]):not([type="radio"]),select,textarea { border-color:#a5b5ca; }
html[data-theme="dark"] { --canvas:#101926; --border:#536982; --muted:#b8c7d9; }
html[data-theme="dark"] .panel-heading,html[data-theme="dark"] table thead { background:#25364d; }
html[data-theme="dark"] .button.secondary { background:#293d57; color:#f0f5fc; border-color:#6c829f; }
.content[data-page="ticket-new"],.content[data-page="work-new"],.content[data-page="work-edit"] { max-width:none; }
.content[data-page="ticket-new"] .ticket-form,.content[data-page="mail-ticket"] .ticket-form,.content[data-page="work-new"] .ticket-form,.content[data-page="work-edit"] .ticket-form { max-width:none; width:100%; }
h1 > svg { width:.9em; height:.9em; display:inline-block; vertical-align:-.06em; margin-right:.35em; color:var(--blue); }
.button > svg { width:18px; height:18px; flex-shrink:0; }
html[data-theme="dark"] h1 > svg { color:#91baff; }
html[data-theme="dark"] .template-picker { background:#25364d; border-color:#607791; } html[data-theme="dark"] .panel { border-color:#536982; }

.nav-separator{border:0;border-top:1px solid var(--border);margin:12px 8px}
.quick-create{position:relative;margin-right:12px}.quick-create>summary{list-style:none;cursor:pointer;min-width:38px;padding:9px}.quick-create>summary::-webkit-details-marker{display:none}.quick-create nav{position:absolute;right:0;top:calc(100% + 8px);width:225px;z-index:100;background:var(--panel,#fff);border:1px solid var(--border);border-radius:10px;padding:6px;box-shadow:0 8px 28px #15274625}.quick-create nav a{display:block;padding:10px 12px;border-radius:6px;color:var(--ink)}.quick-create nav a:hover,.quick-create nav a:focus-visible{background:var(--canvas,#e8eef6)}
.compact-filters{padding:14px 18px;gap:10px}.compact-filters .form-grid.two{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 14px}.compact-filters label{font-size:13px;gap:4px}.compact-filters input:not([name=q]),.compact-filters select,.compact-filters .select-search{min-height:34px;padding-block:6px;font-size:13px}.compact-filters .filter-search{grid-column:span 2}.compact-filters .button{min-height:34px;padding:6px 12px}
.table-page-hidden{display:none!important}.table-pager{flex-wrap:wrap}.table-pager label{flex-direction:row;align-items:center}.table-pager select{width:auto;min-height:32px;padding:4px 8px}
@media(max-width:900px){.compact-filters .form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:500px){.compact-filters .form-grid.two{grid-template-columns:1fr}.compact-filters .filter-search{grid-column:auto}}
html[data-theme=dark] .quick-create nav{background:#1c293d}
.filters{gap:10px;padding-block:12px}.filters>label:not(.search-field){font-size:13px}.filters>label:not(.search-field) select,.filters>label:not(.search-field) input:not([name=q]),.filters>label:not(.search-field) .select-search{min-height:34px;padding-block:6px;font-size:13px}
@media print{.table-page-hidden{display:table-row!important}.table-pager,.quick-create{display:none!important}}
.quick-create nav a{display:flex;align-items:center;gap:10px}.quick-create nav a>svg{width:18px;height:18px;flex:0 0 18px}
@media(max-width:600px){
 .teamviewer-sessions,.teamviewer-sessions tbody{display:block;width:100%;min-width:0}
 .teamviewer-sessions thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .teamviewer-sessions tr{display:block;padding:12px 16px;border-bottom:1px solid var(--border)}
 .teamviewer-sessions td{display:block;padding:5px 0;border:0;white-space:normal;overflow-wrap:anywhere}
 .teamviewer-sessions td[data-label]::before{content:attr(data-label);display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:3px}
 .teamviewer-sessions td .button{width:100%;justify-content:center}
}

/* Compact personal ticket overview. */
.my-day{padding:12px 16px;margin-bottom:14px}
.my-day h2{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:16px;line-height:1.3}
.my-day h2 .icon{width:17px;height:17px}
.my-day h2 small{font-size:13px;font-weight:400;margin-left:auto}
.my-day-groups{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.my-day-groups>section{min-width:0}
.my-day-groups h3{margin:0 0 4px;font-size:14px;line-height:1.4}
.my-day-groups p{margin:0;font-size:13px;line-height:1.5}
.my-day-list{list-style:none;margin:0;padding:0;max-height:160px;overflow:auto}
.my-day-list li+li{border-top:1px solid var(--border)}
.my-day-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:6px 2px;font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.my-day-list strong{font-size:13px}
.my-day-list a>span{grid-column:1;grid-row:2}
.my-day-list small{grid-column:2;grid-row:1 / 3;align-self:center;color:var(--muted);font-size:12px}
@media(max-width:600px){.my-day{padding:12px}.my-day-groups{grid-template-columns:1fr;gap:10px}.my-day-list a{grid-template-columns:minmax(0,1fr)}.my-day-list small{grid-column:1;grid-row:3}}

.nav-group-heading{display:flex;align-items:center;border-radius:8px;padding-right:14px}.nav-group-heading .nav-overview{flex:1;min-width:0;margin:0}.nav-group-heading>.nav-chevron{display:flex;align-items:center;justify-content:center;min-width:28px;min-height:40px;margin-left:0}.nav-group-heading.active{background:var(--blue-light,#eef4ff);color:#2563eb}

.ticket-actions{margin-bottom:24px}#kommentare .timeline{margin-bottom:24px}

.ticket-customer-subtitle{margin-top:6px;font-size:23px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.ticket-customer-subtitle a{color:inherit;text-decoration:none}.ticket-customer-subtitle a:hover{text-decoration:underline}@media(max-width:600px){.ticket-customer-subtitle{font-size:19px}}

.ticket-hours{display:flex;align-items:center;gap:7px;margin-top:8px;font-size:15px}.ticket-hours svg{width:16px;height:16px}.ticket-hours strong{font-variant-numeric:tabular-nums}

.ticket-hours-total{margin:0 0 16px}

#arbeitszeiten .work-list{display:grid;gap:16px}#arbeitszeiten .work-entry{padding:16px;border:1px solid var(--border);border-radius:10px;background:transparent}#arbeitszeiten .work-entry-top{padding-bottom:10px;border-bottom:1px solid var(--border)}#arbeitszeiten .work-entry-bottom{padding-top:12px;border-top:1px solid var(--border)}@media(max-width:600px){#arbeitszeiten .work-entry{padding:12px}#arbeitszeiten .work-list{gap:12px}}

.phone-input{display:block;position:relative;min-width:0}.phone-input input{padding-right:48px;width:100%}.phone-action{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin:0;border:1px solid var(--border);border-radius:6px;background:var(--blue-soft);color:var(--blue);flex-shrink:0}.phone-action:hover{background:var(--blue);color:white}.phone-action svg{width:17px;height:17px}.phone-input .phone-action{position:absolute;right:5px;top:50%;transform:translateY(-50%)}.phone-display{display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:4px 4px 4px 10px;border:1px solid var(--border);border-radius:8px;vertical-align:middle}.phone-number{overflow-wrap:anywhere;min-width:0;font-variant-numeric:tabular-nums}.phone-action[hidden]{display:none}

.ticket-detail-grid{grid-template-columns:330px minmax(0,1fr)}@media(max-width:1200px){.ticket-detail-grid{grid-template-columns:300px minmax(0,1fr)}}@media(max-width:900px){.ticket-detail-grid{grid-template-columns:1fr}}

.ticket-dashboard{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-bottom:14px;align-items:stretch}.ticket-dashboard>.panel{min-width:0;margin-bottom:0}.recent-activity{padding:12px 16px}.recent-activity h2{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:16px;line-height:1.3}.recent-activity h2 svg{width:17px;height:17px}.recent-activity p{font-size:13px;margin:0}.recent-activity-list{list-style:none;padding:0;margin:0;max-height:190px;overflow:auto;font-size:13px}.recent-activity-list li{padding:7px 2px;overflow-wrap:anywhere}.recent-activity-list li+li{border-top:1px solid var(--border)}.recent-activity-list li>span{display:block}.recent-activity-list time{color:var(--muted)}.ticket-dashboard .my-day-list a{grid-template-columns:minmax(0,1fr)}.ticket-dashboard .my-day-list small{grid-column:1;grid-row:3}@media(max-width:800px){.ticket-dashboard{grid-template-columns:minmax(0,1fr)}}

.recent-activity-list{max-height:160px;font-size:12px;line-height:1.4}.recent-activity-list li{padding:4px 2px}.recent-activity-list li>div{display:inline}.recent-activity-list li>a{margin-left:5px}.recent-activity-list li>span{display:inline;margin-left:5px}.recent-activity h2{margin-bottom:6px}

.batch-ticket-filter{align-items:flex-end}.batch-ticket-filter label{margin:0}.batch-ticket-filter select,.batch-ticket-filter>.button{height:40px;min-height:40px}.batch-ticket-filter>.button{align-self:flex-end;white-space:nowrap}[data-batch-controls]>.form-actions{margin-top:12px;justify-content:flex-start;gap:8px}[data-batch-controls]>.form-actions .button{min-height:36px;padding:7px 12px;font-size:13px}

.ticket-form.planned-form{width:100%;max-width:none}

.ticket-form.planned-form{padding:18px;gap:14px}.planned-form>.form-grid.two{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}.planned-form label{gap:5px;font-size:14px}.planned-form input,.planned-form select{min-height:38px;padding-top:7px;padding-bottom:7px}.planned-form textarea{min-height:120px}.planned-form .ql-editor{min-height:120px}.planned-form .form-actions{margin-top:4px}@media(max-width:1000px){.planned-form>.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.ticket-form.planned-form{padding:14px}.planned-form>.form-grid.two{grid-template-columns:1fr}}

/* Shared compact form layout; columns follow the actual form width. */
.form-stack{gap:14px;container-type:inline-size}
.panel.padded.form-stack{padding:18px}
.form-stack label{gap:5px;font-size:14px}
.form-stack input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),.form-stack select{min-height:38px;padding-top:7px;padding-bottom:7px}
.form-stack .form-grid{gap:12px 16px}
.form-stack .ql-editor{min-height:120px}
.form-stack>.form-actions{margin-top:4px}
@container(min-width:800px){.form-stack>.form-grid.two{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container(max-width:420px){.form-stack>.form-grid.two{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.panel.padded.form-stack{padding:14px}}

/* More visible lines for descriptions while retaining compact form spacing. */
form .ql-editor[aria-label="Beschreibung"],form .ql-editor[aria-label="Tätigkeit"],form textarea[name="Beschreibung"],form textarea[name="Tätigkeit"],form textarea[name="Fehlerbeschreibung"]{min-height:220px}

.customer-hint-editor{margin-top:18px}.customer-record-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;scroll-margin-top:20px}.customer-record-tabs+.customer-tickets{margin-top:12px}

.ticket-close-dialog{width:min(620px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:22px;border:1px solid var(--border);border-radius:14px;background:var(--white);color:var(--ink)}
.ticket-close-dialog::backdrop{background:rgba(15,23,42,.45)}
.ticket-close-dialog .panel{padding:0;border:0;box-shadow:none;background:transparent}
.ticket-close-dialog h1{font-size:24px;margin:0}.ticket-close-dialog .notice[hidden]{display:none}

[data-customer-panel][hidden]{display:none}.customer-record-tabs~[data-customer-panel]>.customer-tickets{margin-top:12px}

.customer-tags{margin-top:12px;padding:12px 16px}.customer-tags .form-stack{flex-direction:row;align-items:end;gap:12px}.customer-tags label{flex:1}.customer-tags .form-actions{margin:0}.customer-table-search{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin-top:12px}.customer-table-search label{flex:1;min-width:180px}.customer-table-search [role=status]{font-size:13px}.content[data-page="customer"] .page-heading{flex-wrap:wrap}

.customer-heading{gap:18px;align-items:flex-start}.customer-heading-info{min-width:0}.customer-heading-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-left:auto}.customer-heading-actions .button{padding:8px 12px;min-height:38px;font-size:14px}.customer-address{display:flex;flex-direction:column;margin-top:12px;padding-left:12px;border-left:3px solid var(--blue);font-size:18px;font-weight:550;font-style:normal;line-height:1.55;color:var(--ink);overflow-wrap:anywhere}
@media(max-width:700px){.customer-heading-actions{margin-left:0;justify-content:flex-start}.customer-address{font-size:17px}}

.billed-work-signature{max-width:100%;height:auto}

.content[data-page="customer-new"],.content[data-page="user-edit"],.content[data-page="repair-new"],.content[data-page="repair"]{max-width:none}
.content[data-page="customer-new"] .ticket-form,.content[data-page="user-edit"] .ticket-form,.content[data-page="repair-new"] .ticket-form{width:100%;max-width:none}

.servereye-maintenance{color:var(--muted);background:var(--canvas)}.servereye-maintenance td,.servereye-maintenance a{color:var(--muted)}
/* Table searches share the customer overview's input and button layout. */
.search-field{min-width:0}
.search-field>svg{top:50%;transform:translateY(-50%)}
.customer-table-search{align-items:center;padding-inline:0}
.customer-table-search label.search-field{min-width:0}
.work-search-row{padding:0}
.compact-filters .work-search-row .button{min-height:42px;padding:10px 17px}
.content[data-page="ticket-new"] .template-picker,
.content[data-page="ticket-edit"] .template-picker{width:fit-content;max-width:100%;align-self:flex-start}
.content[data-page="ticket-new"] .template-picker label,
.content[data-page="ticket-edit"] .template-picker label{flex:0 1 320px;min-width:0;max-width:100%}
@media(max-width:600px){.content[data-page="ticket-new"] .template-picker,.content[data-page="ticket-edit"] .template-picker{width:100%}}

.ticket-owner-form{display:flex;align-items:center;gap:6px;min-width:180px;max-width:100%}.ticket-owner-form select{min-width:0;flex:1;width:100%;max-width:240px;font-size:14px;min-height:34px}.ticket-owner-form .ticket-owner-save{flex:0 0 34px;padding:6px;min-height:34px}.ticket-owner-save[hidden]{display:none!important}

.ticket-table [data-ticket-field]{min-width:130px}.ticket-table [data-ticket-field] select{max-width:180px}

/* Status remains readable without relying on color alone. */
.user-status{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.user-status.is-active{color:#287954}
.user-status.is-inactive{color:#a43c3c}
html[data-theme="dark"] .user-status.is-active{color:#a7f3d0}
html[data-theme="dark"] .user-status.is-inactive{color:#ffc2cf}
.ticket-description{max-height:24rem;overflow:auto;scrollbar-gutter:stable;border:1px solid var(--border);border-radius:8px;padding:14px 16px;white-space:normal;line-height:1.65}
.ticket-description:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.ticket-description>:first-child{margin-top:0}
.ticket-description>:last-child{margin-bottom:0}
.ticket-description :is(h1,h2,h3,h4,h5,h6){font-size:1.05em;line-height:1.5;margin:14px 0 8px}
.ticket-description :is(p,ul,ol){margin-top:0;margin-bottom:8px}
@media(max-width:600px){.ticket-description{max-height:20rem;padding:12px}}
@media print{.ticket-description{max-height:none;overflow:visible}}

.teamviewer-fetch{margin-bottom:12px}

.customer-contact-list{max-height:22rem;overflow:auto;scrollbar-gutter:stable}
.customer-contacts .contact-editor{margin:0;padding:8px 0;border-bottom:1px solid var(--border)}
.customer-contacts .contact-editor:last-child{border-bottom:0}
.customer-contacts .contact-editor summary{font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.customer-contacts .contact-editor[open]>form{margin-top:12px}
.customer-pagination,.customer-pagination>div{flex-wrap:wrap}
.customer-pagination>div{align-items:center}

.owner .avatar.small,.ticket-owner-form .avatar.small{width:48px;height:48px;min-width:48px;font-size:17px}
.ticket-owner-form [data-owner-avatar]{display:flex;flex-shrink:0}
.ticket-table :is(.customer-name,.owner,.date-cell,.ticket-number,.table-meta,.priority){color:#46556b}
.ticket-table th{color:#4e5c70;font-weight:600}
.ticket-table .ticket-link strong{color:#17243b}
html[data-theme="dark"] .ticket-table :is(.customer-name,.owner,.date-cell,.ticket-number,.table-meta,.priority){color:#c4d0e0}
html[data-theme="dark"] .ticket-table th{color:#c4d0e0}
html[data-theme="dark"] .ticket-table .ticket-link strong{color:#edf3fc}

/* Base size also scales rem-based dialogs and editor controls. */
:root{font-size:17px}
.ql-container.ql-snow{font-size:14px}

/* Official tiX logo */
.brand-logo{display:block;width:100%;max-width:180px;height:auto}.sidebar .brand{width:100%;padding:0 10px}.login-card .brand-logo{max-width:240px}

.brand-logo-dark{display:none}html[data-theme="dark"] .brand-logo-light{display:none}html[data-theme="dark"] .brand-logo-dark{display:block}
/* Compact ticket detail header */
.content[data-page="ticket"]{padding-top:18px}
.content[data-page="ticket"]>.back-link{margin-bottom:8px}
.content[data-page="ticket"]>.page-heading{margin-bottom:10px;gap:12px}
.content[data-page="ticket"] .ticket-customer-subtitle{margin-top:3px}
.content[data-page="ticket"]>.page-heading p{margin-top:4px}
.content[data-page="ticket"]>.ticket-actions{margin-top:0;margin-bottom:10px;gap:6px}
.content[data-page="ticket"]>.notice.hint{padding:8px 12px;margin-bottom:8px}

/* Compare TeamViewer sessions with recorded work side by side. */
.teamviewer-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.teamviewer-comparison-column{min-width:0}
.teamviewer-comparison-column>h2{margin:0 0 6px}
.teamviewer-comparison-column>p{margin:0 0 12px;color:var(--muted)}
.teamviewer-comparison table{min-width:0;width:100%}
.teamviewer-comparison th,.teamviewer-comparison td{padding:12px 10px;white-space:normal;overflow-wrap:anywhere}
.teamviewer-comparison .button{white-space:normal;padding:7px 9px;font-size:13px}
@media(max-width:1100px){.teamviewer-comparison{grid-template-columns:1fr}}
.teamviewer-work-column th:last-child,.teamviewer-work-column td:last-child,.teamviewer-sessions th:first-child,.teamviewer-sessions td:first-child{white-space:nowrap;overflow-wrap:normal}
.teamviewer-work-column th:first-child{width:28%}

.content[data-page="mail-queue"] .mail-queue-actions{margin-bottom:24px}
/* Dashboard periods, document upload and ticket layout */
.stat-periods{margin:8px 0 0;display:grid;gap:2px;font-variant-numeric:tabular-nums}
.stat-periods>div{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.stat-periods dt{font-size:13px;color:var(--muted)}.stat-periods dd{margin:0;font-size:18px;font-weight:650}.stat-periods small{font-size:12px;font-weight:400}
.document-dropzone{display:flex;flex-direction:column;gap:10px;padding:22px;border:2px dashed var(--border);border-radius:10px;background:var(--canvas);cursor:pointer;overflow-wrap:anywhere}
.document-dropzone.drag-over,.document-dropzone:focus-within{border-color:var(--blue);background:var(--blue-soft)}
.document-dropzone input{width:100%;min-width:0;max-width:100%}
.content[data-page="ticket"] .detail-side,.content[data-page="ticket"] .detail-body,.content[data-page="ticket"] .panel{min-width:0;max-width:100%}
.content[data-page="ticket"] .detail-side>.panel{width:100%;box-sizing:border-box}
.content[data-page="ticket"] :is(input,select,textarea,.ql-container,.ql-toolbar,.form-stack,.facts dd){min-width:0;max-width:100%;box-sizing:border-box}
.content[data-page="ticket"] .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.content[data-page="ticket"] .facts dd{overflow-wrap:anywhere}
.content[data-page="ticket"] .ticket-owner-form,.content[data-page="ticket"] .ticket-field-form{min-width:0;max-width:100%}
.content[data-page="ticket"] .button{white-space:normal}
.content[data-page="tickets"] .ticket-table th:nth-child(2),.content[data-page="tickets"] .ticket-table td:nth-child(2){min-width:210px;width:23%}
.content[data-page="tickets"] .ticket-table .customer-name{max-width:none;white-space:normal;overflow-wrap:anywhere}
.content[data-page="tickets"] .ticket-table tbody tr+tr td{border-top:3px solid var(--border)}

@media(max-width:700px){.content[data-page="ticket"] .detail-side{display:flex;flex-direction:column;align-items:stretch;width:100%}.content[data-page="ticket"] .form-grid{grid-template-columns:minmax(0,1fr)}.content[data-page="ticket"] .time-panel .form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.document-dropzone{padding:14px}.stat-periods dd{font-size:16px}}

.content[data-page="reports-daily"] .daily-work{margin-top:20px}

.content[data-page="reports-daily"] form.filters{align-items:flex-end}
.content[data-page="reports-daily"] form.filters>label{margin-bottom:0}
.content[data-page="reports-daily"] form.filters>.button{align-self:flex-end;margin-bottom:0}
/* Ticket overview: text one pixel larger. */
.content[data-page="tickets"] .ticket-table{font-size:15px}
.content[data-page="tickets"] .ticket-table th{font-size:14px}
.content[data-page="tickets"] .ticket-table .ticket-link strong{font-size:16px}
.content[data-page="tickets"] .ticket-table :is(.ticket-number,.badge,.ticket-signals a){font-size:13px}
.content[data-page="tickets"] .ticket-table :is(.priority,.owner,.table-meta){font-size:14px}
.content[data-page="tickets"] .ticket-table .owner .avatar.small{font-size:18px}

/* Align actions with adjacent form controls, below their labels. */
.filters{align-items:flex-end}.filters>label{margin-bottom:0}.filters>.button{align-self:flex-end}
.form-grid>div>.button{align-self:flex-end}

.inline-form,.template-picker{align-items:flex-end}.inline-form>label,.template-picker>label{margin-bottom:0}.inline-form>.button,.template-picker>.button{align-self:flex-end}
.profile-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch;margin-bottom:24px}.profile-settings-grid>.panel{min-width:0;width:100%;max-width:none;margin:0}@media(max-width:900px){.profile-settings-grid{grid-template-columns:1fr}}
.similar-ticket-button:disabled{cursor:default;opacity:.5}.similar-ticket-button.has-suggestions .similar-ticket-star{color:var(--blue);animation:similar-ticket-pulse 2s ease-in-out infinite}.similar-ticket-star{font-size:23px;line-height:1}.similar-ticket-results{text-align:left}.similar-ticket-result{padding:16px 0;border-bottom:1px solid var(--border)}.similar-ticket-result:last-child{border-bottom:0}.similar-ticket-result p{font-size:14px;margin:8px 0}.similar-ticket-result>a{font-weight:650;overflow-wrap:anywhere}.similar-ticket-activity{white-space:pre-wrap;overflow-wrap:anywhere}@keyframes similar-ticket-pulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.similar-ticket-button.has-suggestions .similar-ticket-star{animation:none}}

/* Public comments and attachments share an orange visibility badge. */
.badge.public-visibility{background:#fff0db;color:#9a4700}
html[data-theme="dark"] .badge.public-visibility{background:#493019;color:#ffbd75}

.public-recipient-row input{flex:1;min-width:0;width:100%;min-height:34px;font-size:14px}

/* Keep date and duration controls aligned even when labels wrap. */
.time-panel .form-grid.two{align-items:end}
.time-panel .form-grid.two input{height:38px;min-width:0;width:100%}

.public-link-row{display:flex;align-items:center;gap:6px;min-width:0;margin-top:5px}.public-link-row input{flex:1;min-width:0;width:100%;height:38px}.public-link-row .button{flex:0 0 38px;width:38px;height:38px;min-height:38px;padding:8px}

.badge.internal-visibility{background:#eaf7ef;color:#237347}
html[data-theme="dark"] .badge.internal-visibility{background:#173f32;color:#a7e8bf}

.ticket-owner-form input[type="date"]{flex:1;min-width:0;width:100%;max-width:240px;min-height:34px;font-size:14px}

.comment-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.comment-visibility{min-width:0;display:flex;flex-direction:column;gap:10px}
.comment-visibility:empty{display:none}
.comment-options>label{min-width:0}
.ticket-facts .facts dt{font-size:14px;font-weight:550;color:#596880}
html[data-theme="dark"] .ticket-facts .facts dt{color:#c2cede}
.public-link-hint{font-size:13px;line-height:1.5;margin:0}
[data-inline-status] button[hidden]{display:none!important}
@media(max-width:700px){.comment-options{grid-template-columns:1fr}}

#aufgaben .task-actions,#aufgaben .inline-form{align-items:center;gap:10px}
#aufgaben .inline-form,#aufgaben .inline-form label{margin:0}
#aufgaben .task-actions .button,#aufgaben .inline-form select{height:36px;min-height:36px;padding:6px 10px;line-height:22px}
#aufgaben .task-actions .button{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
#aufgaben .inline-form button{width:36px;padding:6px}

[data-work-close-ticket][hidden]{display:none!important}

/* Clearly distinguish unavailable ticket choices in work entry forms. */
[data-customer-options] select[name="Ticket"]:disabled,[data-customer-options] .search-select:has(select[name="Ticket"]:disabled)>.select-search{background-color:#edf0f4;color:#788494;border-color:#dce1e8;cursor:not-allowed;opacity:1}
html[data-theme="dark"] [data-customer-options] select[name="Ticket"]:disabled,html[data-theme="dark"] [data-customer-options] .search-select:has(select[name="Ticket"]:disabled)>.select-search{background-color:#26313f;color:#8e9aab;border-color:#384555}

.customer-contact-map{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-bottom:20px;align-items:stretch}
.customer-contact-map>.panel{min-width:0;margin:0}
.customer-map{display:flex;flex-direction:column}
.customer-map iframe{display:block;width:100%;min-height:300px;flex:1;border:0;border-radius:8px}
@media(max-width:800px){.customer-contact-map{grid-template-columns:1fr}.customer-map iframe{height:300px}}

.content[data-page="tickets"]{--ticket-overview-gap:18px;padding-top:var(--ticket-overview-gap)}
.content[data-page="tickets"]>.stats,.content[data-page="tickets"]>.ticket-dashboard{gap:var(--ticket-overview-gap);margin-bottom:var(--ticket-overview-gap)}
@media(max-width:1200px){.content[data-page="tickets"]{--ticket-overview-gap:12px}}
@media(max-width:700px){.content[data-page="tickets"]{--ticket-overview-gap:10px}}

/* Reveal ticket work actions without changing row height. */
@media (hover:hover) and (pointer:fine){
.content[data-page="tickets"] .ticket-work-action{opacity:0;pointer-events:none}
.content[data-page="tickets"] .ticket-table tbody tr:hover .ticket-work-action,
.content[data-page="tickets"] .ticket-table tbody tr:focus-within .ticket-work-action{opacity:1;pointer-events:auto}
}

/* Consistent compact headers for work and repair pages. */
.content:is([data-page="work"],[data-page="work-new"],[data-page="work-batch"],[data-page="repair-new"],[data-page="repairs"]){padding-top:18px}
.content:is([data-page="work"],[data-page="work-new"],[data-page="work-batch"],[data-page="repair-new"],[data-page="repairs"])>.back-link{margin-bottom:8px}
.content:is([data-page="work"],[data-page="work-new"],[data-page="work-batch"],[data-page="repair-new"],[data-page="repairs"])>.page-heading{margin-bottom:18px;gap:12px}
.content:is([data-page="work"],[data-page="work-new"],[data-page="work-batch"],[data-page="repair-new"],[data-page="repairs"])>.page-heading p{margin-top:4px}

.consultation-indicator{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px}.consultation-indicator.no-consultation{color:#15803d;background:#dcfce7}.consultation-indicator.needs-consultation{color:#a16207;background:#fef9c3}.consultation-indicator svg{stroke-width:2.5}

/* Mobile search and compact customer/ticket columns. */
@media(max-width:700px){
.topbar .topbar-end{width:100%;min-width:0;gap:10px}
.topbar-end .global-customer-search{display:block;flex:1;min-width:0;width:auto}
.content[data-page="customers"] table th:nth-child(3),.content[data-page="customers"] table td:nth-child(3){display:none}
.ticket-table th:nth-child(n+3),.ticket-table td:nth-child(n+3){display:none}
.content[data-page] .ticket-table{width:100%;min-width:0;table-layout:fixed}
.content[data-page] .ticket-table th:nth-child(1),.content[data-page] .ticket-table td:nth-child(1){width:60%;min-width:0;overflow-wrap:anywhere}
.content[data-page] .ticket-table th:nth-child(2),.content[data-page] .ticket-table td:nth-child(2){width:40%;min-width:0;overflow-wrap:anywhere}
}

.content[data-page="tickets"]>.stats>.stat:nth-child(-n+3){text-align:center}
.content[data-page="tickets"]>.stats>.stat:nth-child(-n+3) .stat-top{justify-content:center;flex-wrap:wrap}

.content[data-page="tickets"] .ticket-table tbody tr.ticket-unassigned>td{background:#fff7ed}
html[data-theme="dark"] .content[data-page="tickets"] .ticket-table tbody tr.ticket-unassigned>td{background:#352c24}

.ticket-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:10px 16px;border-bottom:1px solid var(--border)}
.ticket-toolbar>.tabs{flex:0 1 auto;gap:16px;padding:0;border-bottom:0;max-width:100%}
.ticket-toolbar>.tabs a{padding:10px 0}
.ticket-toolbar>.filters{flex:1 1 460px;display:flex;flex-wrap:nowrap;gap:8px;padding:0;min-width:0}
.ticket-toolbar>.filters .search-field{flex:1 1 200px;min-width:140px}
.ticket-toolbar>.filters>label:not(.search-field){flex:0 1 145px;min-width:0}
.ticket-toolbar>.filters select{width:100%;min-width:0}
.ticket-toolbar>.filters>.button{flex-shrink:0}
@media(max-width:700px){.ticket-toolbar{padding:10px}.ticket-toolbar>.filters{flex-wrap:wrap;flex-basis:100%}.ticket-toolbar>.filters .search-field{flex-basis:100%;min-width:0}.ticket-toolbar>.filters>label:not(.search-field){flex:1}}

.ticket-toolbar>.filters .search-field input{height:34px;min-height:34px;padding-block:6px;font-size:13px}
.ticket-toolbar>.filters>.button{height:34px;min-height:34px;padding:6px 10px}

.ticket-document-list{margin-top:16px}.ticket-document-list table{width:100%;min-width:0}.ticket-document-list td{padding:12px 8px;vertical-align:middle}.ticket-document-list td:first-child{width:100%;min-width:150px}.document-file{display:flex;align-items:center;gap:10px}.document-file>svg{width:24px;height:24px;flex:0 0 24px;color:var(--muted)}.document-file .document-name{overflow-wrap:anywhere;min-width:0}.ticket-document-list .task-actions{gap:8px}.ticket-document-list .badge{white-space:nowrap}

.ticket-document-list{margin-top:10px}.ticket-document-list td{padding:8px 6px}.document-file{gap:7px}.document-file>svg{width:20px;height:20px;flex-basis:20px}.document-file .document-name{margin:0;font-size:14px;line-height:1.35}.ticket-document-list .task-actions{flex-wrap:nowrap;gap:6px}.ticket-document-list .task-actions form{margin:0}.ticket-document-list .task-actions .button{min-height:30px;padding:4px 8px;white-space:nowrap;font-size:13px}.ticket-document-list .task-actions .button svg{width:16px;height:16px}

.ticket-document-list + .form-stack{margin-top:24px}
