*{box-sizing:border-box}body{margin:0;font:15px system-ui,Arial;background:#f5f7fa;color:#172033}header{background:#172033;color:white;padding:16px 5%;display:flex;gap:24px;align-items:center;justify-content:space-between}nav{display:flex;gap:16px;flex-wrap:wrap}a{color:inherit;text-decoration:none}.container{max-width:1200px;margin:28px auto;padding:0 18px}h1{font-size:28px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.cards div,.kb,.login-card{background:white;border:1px solid #e2e7ef;border-radius:12px;padding:20px;box-shadow:0 4px 16px #0000000a}.cards b{font-size:32px;display:block}.cards span,.muted,small{color:#687386}table{width:100%;border-collapse:collapse;background:white}th,td{text-align:left;padding:12px;border-bottom:1px solid #e8ecf2}input,button{width:100%;padding:11px;border:1px solid #ccd3dd;border-radius:8px;font:inherit}button{background:#172033;color:white;cursor:pointer}.search{display:flex;gap:8px;margin-bottom:18px}.search input{flex:1}.search button{width:auto}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(420px,100%)}.brand{font-size:25px;font-weight:800}.login label{display:block;margin:15px 0}.login input{margin-top:6px}.alert{background:#fff0f0;padding:10px;border-radius:8px;color:#9a2222}.kb{margin:12px 0}.kb h2{margin:0 0 5px;font-size:19px}@media(max-width:700px){header{align-items:flex-start;flex-direction:column}table{font-size:13px}.container{overflow-x:auto}}

.notice{background:#eaf5ee;color:#245338;padding:12px;border-radius:8px}.auth-links a{text-decoration:underline;color:#2455a4}.logout-form{margin:0}.logout-form button{width:auto;padding:0;border:0;background:transparent;color:inherit;text-decoration:underline}.login h1{font-size:21px}

.clients .client-toolbar,.clients .client-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:18px 0}
.clients .client-toolbar h1{margin-right:auto}.clients .client-link{color:#2455a4;text-decoration:underline}
.clients .client-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;background:#fff;padding:24px;border:1px solid #e2e7ef;border-radius:12px}
.clients label{display:block}.clients input,.clients select,.clients textarea{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid #aeb9c9;border-radius:8px;font:inherit;background:white;color:#172033}
.clients .client-check{display:flex;align-items:center;gap:10px}.clients .client-check input{width:auto;margin:0}
.clients .client-actions button,.clients .client-search button{width:auto}.clients .client-actions{grid-column:1/-1}
.clients .client-search{display:flex;align-items:end;gap:14px;margin-bottom:20px}.clients .client-search label:first-of-type{flex:1}
.clients .client-details{display:grid;grid-template-columns:minmax(140px,1fr) 3fr;gap:10px 20px;background:white;padding:20px;border-radius:10px}
.clients dt{font-weight:600}.clients dd{margin:0;overflow-wrap:anywhere;white-space:normal}.clients .client-record{border:1px solid #e2e7ef;background:white;padding:20px;border-radius:10px;margin:15px 0}
.clients .client-table{overflow-x:auto}.clients :focus-visible{outline:3px solid #3978ca;outline-offset:3px}
@media(max-width:650px){.clients .client-form{grid-template-columns:1fr;padding:16px}.clients .client-search{display:block}.clients .client-search>*{margin-bottom:12px}.clients .client-details{grid-template-columns:1fr;gap:6px}.clients dd{margin-bottom:10px}}

.tickets .ticket-toolbar,.tickets .ticket-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:18px 0}.tickets .ticket-toolbar h1{margin-right:auto}.tickets .ticket-link{color:#2455a4;text-decoration:underline}
.tickets .ticket-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;background:white;padding:24px;border:1px solid #e2e7ef;border-radius:12px}.tickets label{display:block}.tickets input,.tickets select,.tickets textarea{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid #aeb9c9;border-radius:8px;font:inherit;background:white;color:#172033}.tickets .ticket-wide,.tickets .ticket-actions{grid-column:1/-1}.tickets .ticket-check{display:flex;align-items:center;gap:10px}.tickets .ticket-check input{width:auto;margin:0}
.tickets .ticket-actions button,.tickets .ticket-search button{width:auto}.tickets .ticket-search{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:20px}.tickets .ticket-search label:first-of-type{flex:1;min-width:200px}.tickets .ticket-details{display:grid;grid-template-columns:minmax(140px,1fr) 3fr;gap:10px 20px;background:white;padding:20px;border-radius:10px}.tickets dt{font-weight:600}.tickets dd{margin:0;overflow-wrap:anywhere}.tickets .ticket-record{border:1px solid #e2e7ef;background:white;padding:20px;border-radius:10px;margin:15px 0;overflow-wrap:anywhere}.tickets .ticket-record h3{margin:0 0 8px}.tickets .ticket-table{overflow-x:auto}.tickets .ticket-picker{list-style:none;padding:0}.tickets .ticket-picker li{padding:14px;background:white;border-bottom:1px solid #e2e7ef}.tickets .ticket-priority{display:inline-block;border-radius:20px;background:#eaf0f8;padding:4px 10px;white-space:nowrap}.tickets .ticket-priority-high{background:#fff0cf;color:#784500}.tickets .ticket-priority-urgent{background:#ffe0e0;color:#941d1d}.tickets :focus-visible{outline:3px solid #3978ca;outline-offset:3px}
@media(max-width:650px){.tickets .ticket-form{grid-template-columns:1fr;padding:16px}.tickets .ticket-search{display:block}.tickets .ticket-search>*{margin-bottom:12px}.tickets .ticket-details{grid-template-columns:1fr;gap:6px}.tickets dd{margin-bottom:10px}}

.quote-item{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:18px;margin:18px 0;background:white;border:1px solid #d5dce7;border-radius:10px}.quote-item legend{font-weight:700;padding:0 8px}.quote-item label:nth-of-type(2){grid-column:span 3}.quote-document{background:white;padding:28px;border:1px solid #d5dce7;margin-top:20px}.quote-heading{border-bottom:3px solid #172033;margin-bottom:20px}.quote-heading h1{font-size:24px}.quote-document h2{font-size:18px}.quote-lines td,.quote-lines th{padding:8px;font-size:13px;overflow-wrap:anywhere}.quote-lines th{background:#eaf0f8}.quote-lines td:nth-child(n+5){text-align:right;white-space:nowrap}.quote-total{text-align:right;font-size:22px;border-top:2px solid #172033;padding-top:15px}.quote-document .ticket-details{padding:10px 0;font-size:14px}.quote-document p{overflow-wrap:anywhere}
@media(max-width:700px){.quote-item{grid-template-columns:1fr}.quote-item label:nth-of-type(2){grid-column:auto}.quote-document{padding:12px;overflow-x:auto}}
@media print{header,.no-print,.quote-module>.ticket-toolbar{display:none!important}body{background:white;color:#111;font-size:11pt}.container{max-width:none;margin:0;padding:0}.quote-document{border:0;padding:0;margin:0;overflow:visible}.quote-lines{width:100%}.quote-lines th,.quote-lines td{font-size:9pt;padding:6px}.quote-lines tr{break-inside:avoid}.quote-lines thead{display:table-header-group}.quote-lines tfoot{display:table-row-group}.quote-document h2{break-after:avoid}.quote-total{break-inside:avoid}.quote-document .ticket-details{break-inside:avoid}@page{size:A4 landscape;margin:12mm}}

/* GITECH 0.19.3 — also included in app.css for all templates. */
@media screen {
  body a[href]:not(.plain-link) {
    display:inline-flex; align-items:center; justify-content:center;
    min-height:34px; max-width:100%; margin:3px 4px 3px 0; padding:6px 10px;
    border:1px solid #1f4f86; border-radius:6px; background:#245b98; color:#fff;
    font:inherit; font-size:14px; font-weight:600; line-height:1.3; text-align:center;
    text-decoration:none; white-space:normal; overflow-wrap:anywhere;
    vertical-align:middle; box-shadow:0 1px 2px #17203314;
  }
  body a[href]:not(.plain-link):hover {background:#184775; border-color:#143c65}
  body a[href]:not(.plain-link):active {background:#12365b}
  body a[href]:not(.plain-link):focus-visible,body button:focus-visible {outline:3px solid #e8a921; outline-offset:3px}
  body button:not(.menu-toggle) {
    width:auto; max-width:100%; min-height:34px; padding:6px 12px;
    font-size:14px; line-height:1.3; justify-self:start; align-self:start; flex:0 1 auto;
  }
  body :is(.ticket-actions,.client-actions) {gap:8px; align-items:center}
  body :is(.ticket-actions,.client-actions) a[href]:not(.plain-link) {flex:0 1 auto; margin:0}
  body :is(.ticket-toolbar,.client-toolbar) {gap:8px}
  body :is(td,li) a[href]:not(.plain-link) {padding:5px 9px; text-align:left}
  body .auth-links {display:flex; flex-wrap:wrap; gap:8px}
  body .auth-links a[href]:not(.plain-link) {flex:0 1 auto; margin:0}
  body.login .login-card form button {width:100%; min-height:42px; padding:10px 12px; font-size:15px}
  body>header nav {gap:6px; align-items:center}
  body>header nav>a[href]:not(.plain-link),body>header nav .logout-form button {
    min-height:34px; margin:0; padding:7px 10px; border:1px solid #8998ae;
    border-radius:6px; background:#25354d; color:#fff; font-size:14px; line-height:1.3; text-decoration:none;
  }
  body>header nav>a[href]:not(.plain-link):hover,body>header nav .logout-form button:hover {background:#354d70}
  body>header nav .logout-form {align-self:center; display:flex}
}
@media screen and (max-width:700px) {
  body a[href]:not(.plain-link),body button:not(.menu-toggle) {min-height:44px; padding:9px 11px}
  body :is(.ticket-actions,.client-actions) a[href]:not(.plain-link) {flex:0 1 auto}
  body :is(.ticket-toolbar,.client-toolbar) h1 {flex:1 1 100%; margin:0 0 6px}
  html.menu-ready #site-navigation {gap:6px; padding-bottom:8px}
  html.menu-ready #site-navigation>a[href]:not(.plain-link),html.menu-ready #site-navigation .logout-form button {
    display:flex; width:100%; min-height:44px; padding:11px;
    justify-content:flex-start; text-align:left; border-radius:6px;
  }
  html.menu-ready #site-navigation .logout-form {width:100%}
}

[hidden]{display:none!important}
.clients .client-wide{grid-column:1/-1;min-width:0;border:1px solid #d5deea;border-radius:8px;padding:16px}.clients .client-wide label{margin-bottom:12px}.tickets fieldset{min-width:0}.tickets fieldset>div{margin:12px 0}.tickets fieldset .ticket-check{padding:5px 0}

.tickets .billing-choice{display:flex;gap:10px;align-items:flex-start}.tickets .billing-choice input{flex:0 0 auto;width:20px;min-width:20px;margin:2px 0 0;padding:0}.tickets .ticket-check{align-items:flex-start}.tickets .ticket-check input[type=checkbox]{flex:0 0 auto;width:20px;min-width:20px;margin:2px 0 0;padding:0}

.batch-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.batch-client{border:1px solid #ccd3dd;border-radius:8px;padding:16px}.system-alerts{margin:20px 0}.system-alerts li{margin:10px 0}@media(max-width:650px){.batch-fields{grid-template-columns:1fr}}

.batch-client legend,.batch-client p{overflow-wrap:anywhere;max-width:100%}.manual nav{display:block}.manual nav ul{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0}.manual>section{margin:30px 0}.manual p,.manual li{line-height:1.6}

.installment-details{border:1px solid #cbd5e1;border-radius:8px;margin:10px 0;padding:12px;scroll-margin-top:16px}.installment-details>summary{cursor:pointer;font-weight:600;line-height:1.5;overflow-wrap:anywhere}.installment-content{padding-top:12px}.installment-content>details{margin:12px 0}.fiscal-queue td p{margin:8px 0}.fiscal-queue td{vertical-align:top}@media print{.installment-details:not([open])>.installment-content{display:none}.fiscal-queue table{font-size:10pt}}

@media print{.fiscal-queue .ticket-table{overflow:visible}.fiscal-queue table{width:100%;table-layout:fixed;font-size:9pt}.fiscal-queue :is(th,td){white-space:normal!important;overflow-wrap:anywhere;padding:5px}.fiscal-queue tr{break-inside:avoid}.fiscal-queue thead{display:table-header-group}}

.receivable-status{display:inline-block;max-width:100%;padding:2px 8px;border:1px solid transparent;border-radius:6px;font-weight:600;line-height:1.5;vertical-align:baseline;overflow-wrap:anywhere}.receivable-status--overdue{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.receivable-status--paid{color:#166534;background:#f0fdf4;border-color:#bbf7d0}
