:root{--bg: #b9bcbe;--chassis: #aeb2b5;--chassis-d: #8e9397;--surface: #dcdedf;--surface-2: #cfd2d4;--border: #a3a8ab;--text: #22262a;--muted: #5d656b;--key: #8f959a;--key-d: #646a6f;--key-text: #1d2124;--cream: #cfc7b5;--cream-d: #9f9784;--red: #d6333a;--red-d: #8f1f25;--yellow: #f2b632;--yellow-d: #a97b0d;--teal: #20a9a3;--teal-d: #137470;--blue: #1f78d1;--blue-d: #124c8a;--green: #7d9b2f;--green-d: #51661a;--accent: var(--blue);--ok: #4f7a1d;--warn: #9a6a05;--danger: #c02a31;--shadow: 0 1px 0 rgba(255,255,255,.55) inset, 0 6px 14px rgba(40,45,50,.22);--inset: inset 0 2px 4px rgba(30,35,40,.22);--vent: #7f858a;--radius: 10px;color-scheme:light}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Bahnschrift,DIN Alternate,Eurostile,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:26px;margin:0 0 18px;font-weight:700;letter-spacing:.02em;text-transform:capitalize}h2{font-size:15px;margin:0 0 12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:13px}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100%}.side{background:linear-gradient(180deg,color-mix(in srgb,var(--chassis) 88%,white),var(--chassis));color:var(--text);padding:20px 14px;display:flex;flex-direction:column;gap:6px;border-radius:0 22px 22px 0;position:sticky;top:0;height:100vh;overflow:hidden;box-shadow:4px 0 0 var(--chassis-d),8px 0 18px #00000040,inset -1px 0 #fff6}.side:after{content:"";position:absolute;left:14px;right:14px;bottom:12px;height:72px;pointer-events:none;background:repeating-linear-gradient(0deg,var(--vent) 0 3px,transparent 3px 9px);opacity:.55;border-radius:4px}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 16px;font-weight:800;font-size:19px;letter-spacing:.12em;text-transform:uppercase}.brand:before{content:"";width:30px;height:30px;flex:none;background:url(/favicon.svg) center / contain no-repeat}.brand b{font-weight:800;color:var(--red)}.nav a,.nav-group{--k: var(--key);--kd: var(--key-d);display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;padding:9px 14px;margin-bottom:7px;border-radius:8px;color:var(--key-text);font:inherit;text-transform:capitalize;font-weight:600;background:linear-gradient(180deg,color-mix(in srgb,var(--k) 86%,white),var(--k));box-shadow:0 3px 0 var(--kd),0 5px 6px #0003,inset 0 1px #ffffff59;border:0;cursor:pointer}.nav a{justify-content:flex-start;gap:10px}.nav-group .lbl{display:flex;align-items:center;gap:10px}.nav .icon{flex:none}.subnav a{gap:8px}.nav a:hover,.nav-group:hover{text-decoration:none;filter:brightness(1.08)}.nav a:active,.nav-group:active{transform:translateY(2px);box-shadow:0 1px 0 var(--kd),inset 0 1px #ffffff4d}.nav a.router-link-active,.nav-group.active{--k: var(--blue);--kd: var(--blue-d);color:#fff}.nav-group .caret{opacity:.8}.subnav{margin:0 0 6px 10px;padding-left:10px;border-left:3px solid var(--chassis-d)}.subnav a{padding:6px 12px;font-size:14px;margin-bottom:6px;--k: var(--cream);--kd: var(--cream-d);color:#2b2820}.subnav a.router-link-active{--k: var(--yellow);--kd: var(--yellow-d);color:#2b2210}.side .spacer{flex:1}.side .me{padding:8px 10px;font-size:13px;color:var(--text);position:relative;z-index:1;font-weight:600}.side .tools{display:flex;gap:6px;padding:0 4px 92px;position:relative;z-index:1}.main{padding:28px 34px 48px;max-width:1200px;width:100%}button,.btn{--k: var(--key);--kd: var(--key-d);font:inherit;font-weight:600;text-transform:capitalize;cursor:pointer;border:0;border-radius:8px;padding:9px 16px;color:var(--key-text);background:linear-gradient(180deg,color-mix(in srgb,var(--k) 86%,white),var(--k));box-shadow:0 3px 0 var(--kd),0 5px 6px #0003,inset 0 1px #ffffff59;transition:transform .06s,box-shadow .06s,filter .1s}button:hover{filter:brightness(1.07)}button:active{transform:translateY(2px);box-shadow:0 1px 0 var(--kd),inset 0 1px #ffffff4d}button.primary{--k: var(--blue);--kd: var(--blue-d);color:#fff}button.ghost{--k: var(--cream);--kd: var(--cream-d);color:#2b2820}button.small-btn{padding:4px 11px;font-size:13px}button:disabled{opacity:.5;cursor:not-allowed;filter:none}button.del{--k: var(--red);--kd: var(--red-d);color:#fff;margin-left:6px}.side button.ghost{padding:5px 10px;font-size:13px}input,select,textarea{font:inherit;color:var(--text);background:color-mix(in srgb,var(--surface) 70%,white);border:1px solid var(--border);border-radius:6px;padding:9px 12px;width:100%;box-shadow:var(--inset)}select{appearance:none;-webkit-appearance:none;padding-right:38px;cursor:pointer;text-overflow:ellipsis;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}select:disabled{cursor:not-allowed}input:focus,select:focus,textarea:focus,button:focus-visible,.nav a:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}textarea{min-height:120px;resize:vertical}label{display:block;font-size:11.5px;font-weight:700;letter-spacing:.08em;color:var(--muted);margin:0 0 5px;text-transform:uppercase}.field{margin-bottom:14px}input[type=checkbox]{width:auto;box-shadow:none;accent-color:var(--blue)}label:has(>input[type=checkbox]){text-transform:none;letter-spacing:0;font-size:14px;font-weight:500;color:var(--text)}.card{background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 90%,white),var(--surface));border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);position:relative}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.row>*{flex:1 1 160px}.row>.fit{flex:0 0 auto}.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:20px}.stat{--k: var(--key);--kd: var(--key-d);color:#fff;border-radius:12px;padding:16px 18px 18px;background:linear-gradient(180deg,color-mix(in srgb,var(--k) 86%,white),var(--k));box-shadow:0 6px 0 var(--kd),0 10px 14px #00000040,inset 0 1px #fff6;margin-bottom:6px}.grid>.stat:nth-child(1){--k: var(--blue);--kd: var(--blue-d)}.grid>.stat:nth-child(2){--k: var(--red);--kd: var(--red-d)}.grid>.stat:nth-child(3){--k: var(--teal);--kd: var(--teal-d)}.grid>.stat:nth-child(4){--k: var(--yellow);--kd: var(--yellow-d);color:#2b2210}.stat .n{font-size:38px;line-height:1;font-weight:800}.stat .l{margin-top:6px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.9}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}th{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--border)}tr.click:hover{background:var(--surface-2);cursor:pointer}.table-wrap{overflow-x:auto}.badge{--k: var(--cream);--kd: var(--cream-d);display:inline-block;padding:2px 10px;border-radius:5px;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;color:#2b2820;background:var(--k);box-shadow:0 2px 0 var(--kd)}.badge.s-open,.badge.p-medium{--k: var(--blue);--kd: var(--blue-d);color:#fff}.badge.s-in_progress,.badge.p-high{--k: var(--yellow);--kd: var(--yellow-d);color:#2b2210}.badge.s-waiting{--k: var(--teal);--kd: var(--teal-d);color:#fff}.badge.s-resolved{--k: var(--green);--kd: var(--green-d);color:#fff}.badge.p-urgent{--k: var(--red);--kd: var(--red-d);color:#fff}.badge.s-closed,.badge.p-low{--k: var(--key);--kd: var(--key-d);color:var(--key-text)}.overdue{color:var(--danger);font-weight:700}.pager{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:14px}.error{color:var(--danger);margin:8px 0;font-weight:600}.notice{color:var(--ok);margin:8px 0;font-weight:600}.two{display:grid;grid-template-columns:1fr 300px;gap:18px;align-items:start}.comment{border-left:4px solid var(--border);padding:4px 0 4px 14px;margin-bottom:16px}.comment.internal{border-left-color:var(--yellow);background:color-mix(in srgb,var(--yellow) 12%,transparent)}.comment.staff{border-left-color:var(--blue)}.pre{white-space:pre-wrap;word-break:break-word}.bars{display:flex;align-items:end;gap:10px;height:120px}.bars div{flex:1;text-align:center;font-size:12px;color:var(--muted)}.bars span{display:block;background:var(--teal);border-radius:4px 4px 0 0;min-height:3px;margin-bottom:4px;box-shadow:0 2px 0 var(--teal-d)}.login-wrap{min-height:100%;display:grid;place-items:center;padding:20px}.login{width:100%;max-width:380px;overflow:hidden}.login:before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:linear-gradient(90deg,var(--red) 0 20%,var(--yellow) 20% 40%,var(--teal) 40% 60%,var(--blue) 60% 80%,var(--green) 80%)}.login:after{content:"";position:absolute;right:14px;bottom:14px;width:70px;height:40px;opacity:.5;pointer-events:none;background:repeating-linear-gradient(0deg,var(--vent) 0 2px,transparent 2px 6px)}@media(max-width:800px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;border-radius:0 0 20px 20px;flex-direction:row;flex-wrap:wrap;align-items:center}.side:after,.side .spacer{display:none}.side .tools{padding:0}.nav{display:flex;flex-wrap:wrap;gap:4px;width:100%}.nav a,.nav-group{width:auto;margin-bottom:4px}.subnav{display:flex;flex-wrap:wrap;gap:4px;border:0;margin:0;padding:0}.main{padding:18px 14px 40px}.two{grid-template-columns:1fr}}.cal-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.cal-title{margin:0 6px;min-width:160px;text-align:center;font-size:17px;color:var(--text);text-transform:capitalize}.cal-legend{margin-left:auto;display:flex;align-items:center;gap:6px;color:var(--muted)}.dot{display:inline-block;width:11px;height:11px;border-radius:3px;margin-left:8px;box-shadow:0 2px #00000040}.dot.pending,.chip.pending{--k: var(--blue);--kd: var(--blue-d)}.dot.today,.chip.today{--k: var(--yellow);--kd: var(--yellow-d)}.dot.overdue,.chip.overdue{--k: var(--red);--kd: var(--red-d)}.dot.done,.chip.done{--k: var(--green);--kd: var(--green-d)}.dot{background:var(--k)}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.cal-dow{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:4px 6px}.cal-day{min-height:104px;padding:6px;border-radius:8px;background:color-mix(in srgb,var(--surface) 60%,white);border:1px solid var(--border);box-shadow:var(--inset);cursor:pointer;overflow:hidden}.cal-day.out{opacity:.5}.cal-day.has{border-top:4px solid var(--blue)}.cal-day.today{outline:2px solid var(--yellow);outline-offset:-2px}.cal-day.sel{background:var(--surface-2)}.cal-num{font-weight:700;font-size:13px;margin-bottom:4px}.cal-day.today .cal-num{color:var(--yellow-d)}.chip{display:block;width:100%;text-align:left;padding:2px 6px;margin-bottom:4px;font-size:11.5px;border-radius:4px;text-transform:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;box-shadow:0 2px 0 var(--kd);background:var(--k)}.chip.today{color:#2b2210}.more{color:var(--muted)}.badge[class*=log-login_failed]{--k: var(--red);--kd: var(--red-d);color:#fff}.badge.log-login,.badge.log-logout{--k: var(--key);--kd: var(--key-d);color:var(--key-text)}.badge.log-ticket_create,.badge.log-user_create,.badge.log-app_create{--k: var(--green);--kd: var(--green-d);color:#fff}.badge.log-app_delete{--k: var(--red);--kd: var(--red-d);color:#fff}.badge.log-ticket_update,.badge.log-user_update,.badge.log-app_update,.badge.log-sla_update,.badge.log-profile_update{--k: var(--yellow);--kd: var(--yellow-d);color:#2b2210}.badge.log-comment_add,.badge.log-attachment_add{--k: var(--teal);--kd: var(--teal-d);color:#fff}@media(max-width:800px){.cal-day{min-height:70px;padding:4px}.chip{font-size:10px}.cal-legend{margin-left:0}}
