@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--blue:#2563eb;--blue-dark:#1d4ed8;--blue-light:#3b82f6;--blue-50:#eff6ff;--teal:#14b8a6;--teal-dark:#0d9488;--teal-light:#2dd4bf;--navy:#0f172a;--navy-2:#1e293b;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--green:#10b981;--amber:#f59e0b;--red:#ef4444}body,html{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--gray-50);color:var(--navy);-webkit-font-smoothing:antialiased;height:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:3px}:root{--sidebar-w:236px;--mobile-nav-h:68px}.app-main{margin-left:var(--sidebar-w)}.app-sidebar{position:fixed;top:0;left:0;bottom:0;z-index:50;width:var(--sidebar-w);background:#0b1220;display:flex;flex-direction:column;padding:20px 14px 16px;gap:6px;overflow-y:auto;overflow-x:hidden}.sb-logo{display:flex;align-items:center;gap:12px;padding:0 6px 18px;text-decoration:none}.sb-logo-text{font-size:18px;font-weight:800;color:#fff;letter-spacing:-.3px}.sb-new{display:flex;align-items:center;gap:10px;height:48px;padding:0 16px;margin-bottom:14px;border-radius:12px;background:#2563eb;color:#fff;font-size:15px;font-weight:700;text-decoration:none;box-shadow:0 4px 14px rgba(37,99,235,.35);transition:background .15s}.sb-new:hover{background:#1d4ed8}.sb-new.is-active{box-shadow:0 0 0 3px rgba(96,165,250,.45)}.sb-nav{display:flex;flex-direction:column;gap:4px}.sb-item{display:flex;align-items:center;gap:12px;height:46px;padding:0 14px;border-radius:11px;color:#94a3b8;font-size:15px;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.sb-item:hover{background:rgba(255,255,255,.05);color:#e2e8f0}.sb-item.is-active{background:rgba(59,130,246,.18);color:#fff}.sb-item.is-active svg{color:#60a5fa}.sb-bottom{margin-top:auto;display:flex;flex-direction:column;gap:8px}.sb-user{gap:10px;padding:10px;border-radius:12px;background:rgba(255,255,255,.04)}.sb-avatar,.sb-user{display:flex;align-items:center}.sb-avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0;background:#1e293b;color:#e2e8f0;justify-content:center;font-size:13px;font-weight:700}.sb-user-info{min-width:0}.sb-user-name{font-size:13px;font-weight:600;color:#e2e8f0}.sb-user-name,.sb-user-org{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-user-org{font-size:12px;color:#64748b}@media (max-width:1279px){.app-sidebar{display:none!important}.app-main{margin-left:0!important;padding-bottom:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom))}.mobile-nav{display:grid!important}}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:100;height:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#0b1220;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center}.mnav-side{align-items:stretch;justify-content:space-evenly}.mnav-item,.mnav-side{display:flex;height:100%}.mnav-item{flex:1 1;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#94a3b8;font-size:11px;font-weight:600;text-decoration:none;background:none;border:none;font-family:inherit;cursor:pointer}.mnav-item.is-active{color:#fff}.mnav-item.is-active svg{color:#60a5fa}.mnav-new{width:56px;height:56px;margin:-22px 12px 0;flex-shrink:0;border-radius:50%;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(37,99,235,.45)}.mnav-sheet-backdrop{position:fixed;inset:0;z-index:99;background:rgba(15,23,42,.35)}.mnav-sheet{position:absolute;right:12px;bottom:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom) + 10px);min-width:200px;padding:6px;background:#fff;border-radius:14px;box-shadow:0 12px 32px rgba(15,23,42,.25)}.mnav-sheet-item{display:flex;align-items:center;gap:12px;height:48px;padding:0 14px;border-radius:10px;color:#0f172a;font-size:16px;font-weight:600;text-decoration:none}.mnav-sheet-item:active{background:#f1f5f9}.mnav-phone-only{display:none!important}@media (max-width:699px){.mnav-ipad-only{display:none!important}.mnav-phone-only{display:flex!important}}@media (min-width:700px){.mobile-nav{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}.mnav-item{font-size:12px;max-width:130px}.mnav-new{margin:-22px 28px 0}}.grid-stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px}@media (max-width:1023px){.grid-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.grid-stats{grid-template-columns:repeat(2,1fr);gap:10px}}.grid-panels{display:grid;grid-template-columns:1.2fr .8fr;grid-gap:16px;gap:16px}@media (max-width:1023px){.grid-panels{grid-template-columns:1fr}}.grid-kpi{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}@media (max-width:1023px){.grid-kpi{grid-template-columns:repeat(2,1fr)}}.grid-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px;gap:20px}@media (max-width:767px){.grid-overview{grid-template-columns:minmax(0,1fr)}}input[type=date],input[type=time]{min-width:0;max-width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value{text-align:left}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.page-pad{padding:28px 32px;max-width:1100px}@media (max-width:1279px){.page-pad{padding:28px 24px;max-width:none}}@media (max-width:767px){.page-pad{padding:18px 16px}}.customer-link{color:#0f172a;transition:color .15s}.customer-link:hover{color:#2563eb;text-decoration:underline!important}.btn{height:46px;padding:0 16px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 15px Inter,-apple-system,sans-serif;white-space:nowrap;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s}.btn:disabled{opacity:.55;cursor:wait}.btn-primary{border:none;background:#2563eb;color:#fff;font-weight:700}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-secondary{border:1px solid #e2e8f0;background:#fff;color:#0f172a}.btn-secondary:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.btn-icon{width:46px;padding:0;color:#475569}.tag{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:14px;font-size:13px;font-weight:600;white-space:nowrap}.tag .dot{width:7px;height:7px;border-radius:50%;background:#d97706}.tag-pass{background:#ecfdf5;color:#047857;font-weight:700}.tag-fail{background:#fef2f2;color:#b91c1c;font-weight:700}.tag-amber{background:#fffbeb;color:#92400e}.tag-neutral{background:#f1f5f9;color:#334155}.seg{display:inline-flex;gap:4px;padding:4px;background:#eef2f7;border-radius:12px}.seg button{height:40px;padding:0 18px;border:none;border-radius:9px;background:transparent;color:#475569;font:600 15px Inter,-apple-system,sans-serif;cursor:pointer}.seg button.is-on{background:#fff;color:#0f172a;box-shadow:0 1px 3px rgba(15,23,42,.12)}.cert-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:20px}.cert-search{position:relative;flex:1 1 320px;max-width:520px;display:block;color:#94a3b8}.cert-search svg{position:absolute;left:16px;top:15px;pointer-events:none}.cert-search input{width:100%;height:50px;padding:0 16px 0 46px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;font-size:16px;color:#0f172a;outline:none}.cert-search input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.15)}.cert-empty{padding:60px 24px;text-align:center;color:#64748b;font-size:15px;background:#fff;border:1px solid #e2e8f0;border-radius:16px}.cert-list{display:flex;flex-direction:column;gap:14px}.cert-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 1px 2px rgba(15,23,42,.04)}.cert-card-body{padding:20px 22px 16px;display:flex;flex-direction:column;gap:10px}.cert-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.cert-no{font-size:13px;font-weight:600;color:#64748b;letter-spacing:.3px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cert-tags{display:flex;gap:8px;flex-wrap:wrap}.cert-customer{font-size:20px;font-weight:700;letter-spacing:-.3px;color:#0f172a}.cert-meta{display:flex;flex-wrap:wrap;gap:8px 22px;color:#475569;font-size:15px}.cert-meta span{display:inline-flex;align-items:center;gap:7px}.cert-meta svg{color:#94a3b8;flex-shrink:0}.cert-actions{display:flex;gap:10px;padding:14px 22px;border-top:1px solid #f1f5f9;background:#fbfcfe;border-radius:0 0 16px 16px}.cert-actions>.btn{flex:1 1 auto}.menu-wrap{position:relative;flex-shrink:0}.menu-backdrop{position:fixed;inset:0;z-index:40}.menu{position:absolute;right:0;bottom:calc(100% + 8px);z-index:41;min-width:220px;padding:6px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 12px 32px rgba(15,23,42,.18)}.menu-item{width:100%;height:46px;padding:0 12px;border:none;border-radius:10px;display:flex;align-items:center;gap:12px;background:none;color:#0f172a;text-decoration:none;font:600 15px Inter,-apple-system,sans-serif;cursor:pointer;text-align:left}.menu-item:hover{background:#f1f5f9}.menu-danger{color:#b91c1c}.lt800-only,.narrow-only{display:none!important}@media (max-width:799px){.gte800-only{display:none!important}.lt800-only{display:flex!important}}@media (max-width:699px){.wide-only{display:none!important}.narrow-only{display:flex!important}.cert-card-body{padding:16px 16px 14px}.cert-customer{font-size:18px}.cert-meta{font-size:14px}.cert-actions{padding:12px 16px;gap:8px}.seg{width:100%}.seg button{flex:1 1;padding:0 8px;font-size:14px}input,select,textarea{font-size:16px!important}}.dash-tile{display:flex;flex-direction:column;gap:4px;padding:20px 22px;border-radius:16px;background:#fff;border:1px solid #e2e8f0;text-decoration:none;transition:border-color .15s,box-shadow .15s}.dash-tile:hover{border-color:#cbd5e1;box-shadow:0 2px 8px rgba(15,23,42,.06)}.dash-tile-label{font-size:14px;font-weight:600;color:#64748b}.dash-tile-value{font-size:36px;font-weight:800;letter-spacing:-1px;color:#0f172a;line-height:1.15;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dash-tile-sub{font-size:14px;color:#475569}.dash-tile.is-warn{background:#fff7ed;border-color:#fed7aa}.dash-tile.is-warn .dash-tile-label,.dash-tile.is-warn .dash-tile-sub,.dash-tile.is-warn .dash-tile-value{color:#9a3412}.dash-panel{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;align-self:start}.dash-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 22px;min-height:60px;border-bottom:1px solid #f1f5f9}.dash-panel-head h2{font-size:18px;font-weight:700;color:#0f172a}.dash-link{min-height:44px;display:inline-flex;font-size:15px;font-weight:600;color:#2563eb}.dash-link,.dash-row{align-items:center;text-decoration:none}.dash-row{display:flex;gap:14px;min-height:68px;padding:12px 18px 12px 22px;border-top:1px solid #f1f5f9;color:inherit}.dash-panel-head+.dash-row{border-top:none}.dash-row:hover{background:#f8fafc}.dash-when{width:76px;flex-shrink:0;white-space:nowrap;font-size:14px;font-weight:700;color:#0f172a;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dash-main{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.dash-title{font-size:16px;font-weight:600;color:#0f172a}.dash-sub,.dash-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-sub{font-size:14px;color:#64748b}.dash-tags{display:flex;gap:6px;flex-shrink:0}.dash-chev{color:#94a3b8;flex-shrink:0}.dash-empty{padding:36px 22px;text-align:center;color:#64748b;font-size:15px;display:flex;flex-direction:column;align-items:center}@media (max-width:699px){.dash-tile{padding:16px}.dash-tile-value{font-size:30px}.dash-tile-sub{display:none}.dash-row{padding:12px 14px 12px 16px;gap:10px}.dash-when{width:62px;font-size:13px}.dash-tags .tag-amber{display:none}}.modal-backdrop{position:fixed;inset:0;z-index:1000;background:rgba(15,23,42,.5);display:flex;align-items:center;justify-content:center;padding:16px}.modal{width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow-y:auto;background:#fff;border-radius:18px;box-shadow:0 24px 64px rgba(15,23,42,.3)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 24px 8px}.modal-head h2{font-size:20px;font-weight:800;color:#0f172a}.modal-head p{font-size:14px;color:#64748b;margin-top:4px}.modal-body{padding:12px 24px 8px;display:flex;flex-direction:column;gap:16px}.modal-foot{display:flex;align-items:center;gap:10px;padding:16px 24px 22px;border-top:1px solid #f1f5f9;margin-top:8px}.field{width:100%;height:48px;padding:0 14px;border:1px solid #cbd5e1;border-radius:11px;font-size:16px;color:#0f172a;background:#fff;font-family:inherit}.field:disabled{background:#f8fafc;color:#94a3b8}.field:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.15)}textarea.field{height:auto;padding:12px 14px;resize:vertical;line-height:1.4}select.field{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.send-row{display:grid;grid-template-columns:170px 1fr;grid-gap:12px;gap:12px;align-items:start}.send-check{display:flex;align-items:center;gap:10px;min-height:48px;font-size:15px;font-weight:600;color:#0f172a;cursor:pointer}.send-check input{width:22px;height:22px;accent-color:#2563eb}.send-msg{display:flex;flex-direction:column;gap:8px;font-size:15px;font-weight:600;color:#0f172a}.send-msg em{font-style:normal;font-weight:500;color:#94a3b8}.send-error{padding:12px 14px;border-radius:10px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:14px;font-weight:600}.send-summary{flex:1 1;font-size:13px;color:#64748b}@media (max-width:699px){.send-row{grid-template-columns:1fr;gap:6px}.send-check{min-height:32px}.modal-foot{flex-wrap:wrap}.send-summary{flex-basis:100%}.modal-foot .btn{flex:1 1}}.pressure-time-row{display:grid;align-items:end;grid-gap:0 24px;gap:0 24px;grid-template-columns:minmax(110px,170px) minmax(0,1fr)}.time-date-pair{display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(0,.8fr) minmax(0,1fr)}.time-date-pair input{min-width:0}@media (max-width:520px){.pressure-time-row{grid-template-columns:minmax(0,1fr)}}