*{box-sizing:border-box} :root{--ink:#182230;--muted:#64748b;--line:#e2e8f0;--paper:#f5f7fb;--blue:#2358d5;--navy:#17243b}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 "Segoe UI",Arial,sans-serif}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
.topbar{background:var(--navy);color:#fff;display:flex;align-items:center;gap:28px;padding:14px max(20px,calc((100% - 1200px)/2));flex-wrap:wrap}
.brand{font-size:21px;font-weight:800;color:#fff;letter-spacing:.2px}.topbar nav{display:flex;gap:16px;flex-wrap:wrap}.topbar nav a,.user-menu a{color:#eaf0ff}.user-menu{margin-left:auto;font-size:13px}.role{background:#334663;border-radius:20px;padding:3px 8px;margin:0 6px}
.container{max-width:1200px;margin:30px auto;padding:0 20px;min-height:calc(100vh - 140px)}
h1{font-size:28px;margin:0 0 22px}h2{font-size:19px;margin:0 0 12px}h3{font-size:16px;margin:0 0 10px}
.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap}
.btn,button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;padding:10px 15px;background:var(--blue);color:#fff;font-weight:650;cursor:pointer;font-size:14px}.btn.secondary,button.secondary{background:#e9eef8;color:#1f345a}.btn.danger,button.danger{background:#b42318}.btn.small{padding:6px 10px;font-size:12px}
.panel,.stat,.form-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 2px 8px #14213d05;margin-bottom:18px}
.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px;margin-bottom:20px}.stat .label{color:var(--muted);font-size:13px}.stat .number{font-size:30px;font-weight:800;margin-top:5px}.stat .hint{color:var(--muted);font-size:12px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:12px}
table{border-collapse:collapse;width:100%;min-width:700px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#f8fafc;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#526174}tr:last-child td{border-bottom:0}.muted{color:var(--muted)}.empty{padding:30px;text-align:center;color:var(--muted)}
form .fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}label{font-size:13px;font-weight:700;color:#39475a}
input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:10px 11px;background:#fff;color:var(--ink);font:inherit}textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid #dbe7ff;border-color:#7395ed}.form-actions{display:flex;gap:10px;margin-top:18px}
.badge{display:inline-block;border-radius:30px;padding:3px 9px;font-size:12px;font-weight:700;white-space:nowrap}.green{background:#dcfce7;color:#166534}.blue{background:#dbeafe;color:#1d4ed8}.amber{background:#fef3c7;color:#92400e}.red{background:#fee2e2;color:#991b1b}.gray{background:#e2e8f0;color:#475569}
.alert{padding:12px 15px;border-radius:9px;margin:0 0 18px;background:#dbeafe;color:#1e40af}.alert.error{background:#fee2e2;color:#991b1b}.alert.success{background:#dcfce7;color:#166534}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.filters input,.filters select{width:auto;min-width:160px}
.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.day-name{text-align:center;font-size:12px;font-weight:800;color:var(--muted);padding:8px}.day{background:#fff;border:1px solid var(--line);border-radius:9px;min-height:120px;padding:8px;overflow:hidden}.day.other{background:#f0f2f6;color:#9aa4b2}.day.today{border:2px solid var(--blue)}.day-num{font-size:12px;font-weight:800;margin-bottom:7px}.event{font-size:11px;line-height:1.3;padding:5px;border-radius:5px;margin:4px 0;background:#dbeafe;color:#1e40af;overflow-wrap:anywhere}.event.return{background:#dcfce7;color:#166534}.event.maintenance{background:#fef3c7;color:#92400e}.event.warranty{display:block;text-decoration:none;background:#ffedd5;color:#9a3412;border:1px solid #fdba74}
.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#17243b,#254f9f)}.login-card{background:white;border-radius:18px;padding:32px;width:min(100%,430px);box-shadow:0 25px 70px #07152b55}.login-card h1{font-size:25px;margin-bottom:6px}.login-card .subtitle{color:var(--muted);margin:0 0 25px}.login-card .field{margin:15px 0}.footer{max-width:1200px;margin:0 auto;padding:15px 20px;color:var(--muted);font-size:12px;display:flex;justify-content:space-between}
@media(max-width:850px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:1fr}.user-menu{margin-left:0}.topbar{gap:14px}.topbar nav{gap:10px}}
@media(max-width:520px){.stats{grid-template-columns:1fr 1fr;gap:8px}.stat{padding:14px}.stat .number{font-size:24px}form .fields{grid-template-columns:1fr}.field.full{grid-column:auto}.container{margin-top:20px;padding:0 12px}.day{min-height:80px;padding:4px}.event{font-size:9px;padding:3px}.day-name{font-size:10px;padding:3px}}

.resolve-form{display:grid;gap:7px;min-width:210px}.resolve-form label{margin-top:5px}.resolve-form textarea{min-height:60px}

/* Reporting page */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:18px 0 24px}.stat-card{background:#fff;border:1px solid #dfe5ec;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:8px}.stat-card span{font-size:.9rem;color:#5c6777}.stat-card strong{font-size:1.8rem;color:#172b4d}.panel{background:#fff;border:1px solid #dfe5ec;border-radius:10px;padding:20px;margin:20px 0}.panel h2{margin-top:0}.report-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.report-links>div{border:1px solid #e5e9ef;border-radius:8px;padding:16px}.report-links p{min-height:3.5em}


/* v1.4 notification center */
.notification-list{display:grid;gap:12px}.notification-item{display:flex;gap:18px;justify-content:space-between;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:16px;background:#fff}.notification-item.unread{border-left:4px solid var(--blue);background:#f8fbff}.notification-item.resolved{opacity:.78}.notification-main{min-width:0;flex:1}.notification-main h3{margin:8px 0 5px}.notification-main p{margin:0 0 6px;overflow-wrap:anywhere}.notification-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px}.notification-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.notification-actions form{margin:0}.notification-actions button{white-space:nowrap}@media(max-width:600px){.notification-item{flex-direction:column}.notification-actions{width:100%}}


/* v1.5 security-oriented logout control */
.logout-form { display: inline; margin: 0; }
.link-button { appearance: none; border: 0; padding: 0; background: transparent; color: inherit; font: inherit; text-decoration: underline; cursor: pointer; }
.link-button:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }


/* v1.6 asset label printing */
.label-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;margin:18px 0}
.asset-label{display:flex;align-items:center;gap:10px;min-height:158px;padding:12px;border:1px solid #aeb6c2;border-radius:8px;background:#fff;color:#111;break-inside:avoid;overflow:hidden}
.label-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:5px;overflow-wrap:anywhere}.label-copy strong{font-size:1.2rem;letter-spacing:.02em}.label-copy span{font-weight:600}.label-copy small{font-size:.76rem;color:#333}.qr-target{width:132px;height:132px;flex:0 0 132px;display:flex;align-items:center;justify-content:center}.qr-target svg{display:block;max-width:100%;height:auto}.qr-error{border-color:#b91c1c}
@media print{ @page{size:auto;margin:8mm} body{background:#fff!important;color:#000!important;font-size:10pt}.topbar,.footer,h1,.no-print,.alert{display:none!important}main.container{max-width:none!important;margin:0!important;padding:0!important}.label-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5mm;margin:0}.asset-label{border:1px solid #555;border-radius:0;padding:3mm;min-height:38mm;gap:2mm;box-shadow:none}.label-copy strong{font-size:11pt}.label-copy span{font-size:9pt}.label-copy small{font-size:7pt}.qr-target{width:31mm;height:31mm;flex-basis:31mm}.asset-label svg{width:31mm!important;height:31mm!important}a{color:#000;text-decoration:none}}

/* Respect the HTML hidden attribute even on layout classes such as .field. */
[hidden] { display: none !important; }

/* v1.20 advanced inventory filters */
.filters label{display:flex;flex-direction:column;gap:5px;min-width:165px;flex:1 1 175px}
.filters label input,.filters label select{width:100%;min-width:0}
.filter-actions{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
/* v1.22 preventive maintenance summary */
.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:14px 0 18px}.summary-card{border:1px solid var(--border,#dbe2ea);border-radius:10px;padding:14px;background:var(--panel,#fff)}.summary-card span{display:block;color:var(--muted,#5b6573);font-size:13px}.summary-card strong{display:block;font-size:25px;margin-top:5px}.inline-form{display:inline-block;margin:2px 0}

/* v1.31 localization */
.language-form{display:inline-flex;align-items:center;margin-inline-end:8px}.language-form select{max-width:120px;padding:5px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#111827}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html[dir=rtl] body{text-align:right}html[dir=rtl] .user-menu{direction:rtl}html[dir=rtl] .notification-meta{direction:rtl}html[dir=rtl] input,html[dir=rtl] textarea,html[dir=rtl] select{text-align:right}


/* v1.32.3 professional dropdown navigation */
.topbar{position:relative;z-index:20;align-items:center;gap:18px;overflow:visible}
.topbar .main-nav{position:relative;z-index:30;display:flex;align-items:center;gap:6px;flex:1 1 620px;min-width:0;flex-wrap:wrap;overflow:visible}
.main-nav>a,.main-nav .nav-group>summary{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 11px;border-radius:8px;color:#eaf0ff;white-space:nowrap;font-size:13px;font-weight:650;cursor:pointer;list-style:none}
.main-nav .nav-group>summary::-webkit-details-marker{display:none}
.main-nav .nav-group>summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-inline-start:3px;margin-top:-3px;opacity:.8}
.main-nav>a:hover,.main-nav .nav-group>summary:hover,.main-nav .nav-group[open]>summary,.main-nav>a:focus-visible,.main-nav .nav-group>summary:focus-visible{background:#334663;text-decoration:none;outline-offset:2px}
.main-nav .nav-group{position:relative;flex:0 0 auto;align-self:center}
.main-nav .nav-dropdown{position:absolute;z-index:1000;top:calc(100% + 5px);inset-inline-start:0;width:max-content;min-width:230px;max-width:min(320px,calc(100vw - 24px));max-height:min(65vh,440px);overflow-y:auto;overscroll-behavior:contain;padding:7px;background:#fff;border:1px solid #dbe3ef;border-radius:12px;box-shadow:0 16px 36px #07152b35;display:none;gap:3px}
.main-nav .nav-group[open] > .nav-dropdown{display:flex !important;flex-direction:column;align-items:stretch}
.main-nav .nav-group[open] > .nav-dropdown a{display:flex;align-items:center;min-height:38px;width:100%}
.main-nav .nav-dropdown a{display:flex;align-items:center;padding:9px 12px;border-radius:7px;color:#182230;font-size:13px;line-height:1.4;text-decoration:none;white-space:normal;overflow-wrap:anywhere}
.main-nav .nav-dropdown a:hover,.main-nav .nav-dropdown a:focus-visible{background:#edf3ff;color:#173e91;text-decoration:none;outline-offset:-2px}
.main-nav .nav-dropdown a + a{border-top:1px solid #f0f3f8}
.main-nav .nav-dropdown a:active{background:#e2ebff}
html[dir=rtl] .main-nav .nav-dropdown a{text-align:right}
.user-menu{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
@media(max-width:850px){.topbar .main-nav{order:3;flex:1 1 100%;gap:4px}.main-nav .nav-dropdown{position:absolute;min-width:215px;max-width:calc(100vw - 24px);box-shadow:0 12px 30px #07152b30;margin-top:0}.main-nav .nav-group[open]{flex:0 0 auto}.main-nav .nav-group[open] > .nav-dropdown{display:flex !important;flex-direction:column}.user-menu{margin-left:0}.topbar{gap:12px}}
@media(max-width:520px){.topbar{padding:12px}.topbar .main-nav{align-items:center;flex-wrap:wrap}.main-nav>a,.main-nav .nav-group>summary{padding:8px 9px;font-size:12px}.main-nav .nav-group{max-width:100%}.main-nav .nav-dropdown{width:max-content;max-width:calc(100vw - 24px)}.user-menu{width:100%}}
html[dir=rtl] .main-nav .nav-dropdown{inset-inline-start:0;inset-inline-end:auto}


/* v1.33 company branding */
.topbar .brand{display:inline-flex;align-items:center;gap:10px;min-width:0;max-width:280px;text-decoration:none;flex:0 0 auto}
.topbar .brand span{overflow-wrap:anywhere;line-height:1.2}
.topbar .brand-logo{display:block;width:auto;height:auto;max-width:54px;max-height:38px;object-fit:contain;border-radius:4px;background:#fff;padding:2px}
.branding-settings .fields{margin-top:16px}
.branding-preview{display:flex;align-items:center;gap:18px;margin-top:20px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.branding-preview-image{display:flex;align-items:center;justify-content:center;width:150px;height:84px;flex:0 0 150px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px}
.branding-preview-image img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.branding-preview-copy{min-width:0}
.branding-preview-copy p{margin:5px 0 10px}
.remove-logo{display:flex;align-items:center;gap:8px;font-weight:600}
.remove-logo input{width:auto}
.branding-live-preview{display:flex;align-items:center;gap:12px;min-height:70px;padding:14px 18px;border-radius:10px;background:var(--navy);color:#fff}
.branding-live-preview img{max-width:54px;max-height:38px;object-fit:contain;background:#fff;border-radius:4px;padding:2px}
.branding-live-preview strong{font-size:20px;overflow-wrap:anywhere}
html[dir=rtl] .branding-preview,html[dir=rtl] .branding-live-preview{direction:rtl}
@media(max-width:520px){.topbar .brand{max-width:100%;font-size:19px}.branding-preview{align-items:flex-start;flex-direction:column}.branding-preview-image{width:100%;max-width:180px;flex-basis:auto}}

/* Camera-based QR/barcode scanning (v1.35). */
.camera-scan-panel{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin:1rem 0;padding:1rem;border:1px solid var(--border-color,#d7dde5);border-radius:12px;background:var(--panel-bg,#f8fafc)}
.camera-scan-panel .camera-message{flex-basis:100%;margin:.15rem 0;font-size:.92rem}
.camera-preview{display:block;flex-basis:100%;width:100%;max-width:640px;max-height:55vh;object-fit:contain;border-radius:10px;background:#111}
.camera-scan-panel [hidden]{display:none!important}
@media(max-width:640px){.camera-scan-panel{padding:.75rem}.camera-scan-panel button{min-height:44px}}


/* Reporting & finalization (v1.40): printer-friendly reports. */
.report-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
@media print{
  @page{size:auto;margin:14mm}
  body{background:#fff!important;color:#111!important;font-size:10pt}
  .topbar,.main-nav,.user-menu,.no-print,button,.btn,form,footer{display:none!important}
  .container,main.container{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
  h1{font-size:18pt;margin:0 0 10mm!important}
  h2{font-size:13pt;break-after:avoid}
  .panel,.stat-card,.stat{box-shadow:none!important;background:#fff!important;border:1px solid #bbb!important;break-inside:avoid}
  .stats-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4mm!important}
  .table-wrap{overflow:visible!important}
  table{width:100%!important;border-collapse:collapse!important;font-size:9pt}
  th,td{border:1px solid #aaa!important;padding:4px 6px!important;color:#111!important}
  a{color:#111!important;text-decoration:none!important}
}
