:root{--kraft: #ece3d0;--kraft-dark: #ddd0b3;--card: #fdfbf5;--char: #1c1712;--red: #c2452e;--red-deep: #9c3520;--green: #2f6b47;--amber: #b8791b;--steel: #6b6355;--line: rgba(28, 23, 18, .1);--teal: #2a6d68;--navy: #243f5a;--slate: #4d5766;--plum: #6a4879;--rust: #8a4d2b;--gold: #a3781f;--tile: var(--kraft);--tile-2: var(--kraft-dark);--white: var(--card);--mustard: var(--amber)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 1px 1px,rgba(28,23,18,.055) 1px,transparent 0) 0 0 / 16px 16px,linear-gradient(160deg,var(--kraft) 0%,var(--kraft-dark) 100%);color:var(--char);font-family:Inter,sans-serif;-webkit-font-smoothing:antialiased}.display{font-family:Oswald,sans-serif;text-transform:uppercase}.mono{font-family:IBM Plex Mono,monospace}.handwritten{font-family:Caveat,cursive}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:Inter,sans-serif;font-size:15px;padding:11px 13px;border-radius:3px;border:1.5px solid var(--char);background:var(--card);color:var(--char);outline:none;width:100%}label{display:block;font-family:IBM Plex Mono,monospace;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--steel);margin-bottom:6px}.field{margin-bottom:16px}.btn{padding:10px 16px;border-radius:8px;border:none;background:linear-gradient(160deg,#d1543a,var(--red-deep));color:var(--card);font-family:IBM Plex Mono,monospace;text-transform:uppercase;font-weight:700;letter-spacing:.02em;font-size:12px;box-shadow:0 2px 4px #9c352040,0 6px 14px #9c352047;transition:transform .12s ease,box-shadow .12s ease}.btn:hover{box-shadow:0 3px 6px #9c35204d,0 8px 18px #9c352052;transform:translateY(-1px)}.btn:active,.btn-secondary:active{transform:translateY(1px) scale(.97);box-shadow:0 1px 2px #1c171226}.btn:disabled{background:var(--steel);box-shadow:none;cursor:not-allowed;transform:none}.btn-secondary{background:#fff;color:var(--char);border:1.5px solid rgba(28,23,18,.14);border-radius:8px;box-shadow:0 1px 2px #1c17120a;transition:background .15s ease,transform .1s ease}.btn-secondary:hover{background:var(--kraft-dark)}.btn-text{background:none;border:none;color:var(--steel);font-family:IBM Plex Mono,monospace;font-size:12.5px;text-decoration:underline;padding:4px}.app-shell{max-width:860px;margin:0 auto;padding:22px 24px 60px}.app-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 0 22px;margin-bottom:20px}.logo{display:flex;align-items:center;gap:9px;font-family:Oswald,sans-serif;text-transform:uppercase;font-weight:700;font-size:18px}.logo-badge{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--red);position:relative;flex-shrink:0;box-shadow:0 2px 4px #c2452e40}.logo-badge:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:var(--red);border-radius:50%;transform:translate(-50%,-50%)}.clip-header{position:relative;margin-bottom:30px;padding-top:16px}.clip{position:absolute;top:-9px;left:50%;transform:translate(-50%);width:64px;height:26px;background:linear-gradient(165deg,#9a9488,#4f4a41);border-radius:7px;box-shadow:0 6px 14px #1c171259,inset 0 1px #ffffff26;z-index:2}.clip:before{content:"";position:absolute;top:7px;left:9px;right:9px;height:5px;background:#0000004d;border-radius:3px}.header-inner{background:linear-gradient(175deg,#fff,#fdfbf6);border-radius:14px;padding:22px 24px;box-shadow:0 1px 2px #1c17120f,0 8px 20px #1c17121a,0 20px 40px -12px #1c17122e,inset 0 1px #fffc;border:1px solid rgba(28,23,18,.06)}.header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.logout-link{font-family:IBM Plex Mono,monospace;font-size:11.5px;color:var(--steel);text-decoration:underline;background:none;border:none;padding:0}.biz-row{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.biz-name{font-family:Oswald,sans-serif;text-transform:uppercase;font-size:26px;font-weight:800;letter-spacing:-.01em;margin:0}.plan-badge{display:inline-flex;align-items:center;gap:5px;margin-top:2px;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--red-deep);background:linear-gradient(135deg,#fbeae5,#f7dcd4);padding:3px 9px;border-radius:20px}.actions,.dash-actions{display:flex;gap:8px;flex-wrap:wrap}.stat-panel{display:flex;align-items:center;gap:18px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line);width:100%}.ring-wrap{position:relative;width:56px;height:56px;flex-shrink:0}.ring-wrap svg{transform:rotate(-90deg)}.ring-bg{fill:none;stroke:#1c171214;stroke-width:6}.ring-fg{fill:none;stroke:var(--green);stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.2,.8,.2,1)}.ring-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:Oswald,sans-serif;font-weight:700;font-size:14px}.stat-breakdown{display:flex;flex-direction:column;gap:6px;flex:1}.stat-line{display:flex;align-items:center;gap:8px;font-size:12.5px}.stat-count{font-family:IBM Plex Mono,monospace;font-weight:700;margin-left:auto}.stat-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.dot-active{background:var(--green)}.dot-due{background:var(--amber)}.dot-urgent{background:var(--rust)}.dot-expired{background:var(--red)}.section-label{font-family:Caveat,cursive;font-weight:700;font-size:23px;color:var(--steel);margin:26px 0 14px 4px;transform:rotate(-1deg);display:inline-block}.dash-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:20px;gap:16px;flex-wrap:wrap}.dash-title{font-family:Oswald,sans-serif;text-transform:uppercase;font-size:22px;font-weight:700;margin:0}.auth-wrap{max-width:380px;margin:70px auto;padding:0 24px}.auth-card{background:linear-gradient(175deg,#fff,#fdfcf8);border:1px solid rgba(28,23,18,.06);border-radius:14px;padding:30px;box-shadow:0 1px 2px #1c17120f,0 10px 24px #1c17121f,0 24px 48px -14px #1c171233}.auth-title{font-family:Oswald,sans-serif;text-transform:uppercase;font-size:21px;font-weight:700;margin:0 0 6px}.auth-sub{font-size:14px;color:var(--steel);margin:0 0 22px}.auth-toggle{text-align:center;margin-top:16px;font-size:13.5px;color:var(--steel)}.auth-error{background:#b8412a1a;border:1px solid rgba(184,65,42,.35);color:var(--red);font-size:13.5px;padding:10px 12px;border-radius:3px;margin-bottom:16px}.empty-wrap{background:var(--card);border:1px dashed var(--steel);border-radius:6px;padding:44px 30px;text-align:center}.truck-illo{width:150px;margin:0 auto 20px;display:block;animation:bob 3.5s ease-in-out infinite}.truck-illo-sm{width:120px;margin:0 auto 16px;display:block;animation:bob 3.5s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.empty-decal{width:76px;height:76px;margin:0 auto 20px;border-radius:50%;border:2.5px solid var(--char);display:flex;align-items:center;justify-content:center;position:relative;animation:breathe 3s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.empty-decal:before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1.5px dashed var(--steel);border-radius:50%;opacity:.5}.empty-decal-mark{font-family:Oswald,sans-serif;font-weight:700;font-size:11px;text-transform:uppercase;color:var(--steel);letter-spacing:.03em}.empty-title{font-family:Oswald,sans-serif;text-transform:uppercase;font-size:18px;font-weight:700;margin:0 0 10px}.empty-sub{font-size:14px;color:var(--steel);max-width:380px;margin:0 auto 26px;line-height:1.6}.empty-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.empty-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px;text-align:left}.empty-step{padding:16px 16px 14px;border-top:2px solid var(--line)}.empty-step-num{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--red);letter-spacing:.05em;display:block;margin-bottom:8px}.empty-step h4{font-family:Oswald,sans-serif;text-transform:uppercase;font-size:13px;@keyframes ticketIn{to{opacity:1;transform:translateY(0)}}}.empty-step h4 .ticket:nth-child(5){animation-delay:.28s}.empty-step h4 .ticket:nth-child(6){animation-delay:.34s}.empty-step h4 .ticket-tab{width:50px;flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative}.empty-step h4 .ticket-tab:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(160deg,#ffffff38,#00000014)}.empty-step h4 .ticket-tab svg{width:20px;height:20px;position:relative;z-index:1;filter:drop-shadow(0 1px 1px rgba(0,0,0,.2))}.empty-step h4 .tab-health{background:linear-gradient(165deg,#3a8079,var(--teal))}.empty-step h4 .tab-fire{background:linear-gradient(165deg,#d1543a,var(--red))}.empty-step h4 .tab-propane{background:linear-gradient(165deg,#626c7c,var(--slate))}.empty-step h4 .tab-business_license{background:linear-gradient(165deg,#7f5b8f,var(--plum))}.empty-step h4 .tab-commissary{background:linear-gradient(165deg,#a05a34,var(--rust))}.empty-step h4 .tab-insurance{background:linear-gradient(165deg,#2e4d6d,var(--navy))}.empty-step h4 .tab-vehicle_registration{background:linear-gradient(165deg,#3a7a52,var(--green))}.empty-step h4 .tab-staff_certification{background:linear-gradient(165deg,#bd8a26,var(--gold))}.empty-step h4 .ticket-body{flex:1;padding:15px 17px 15px 15px;position:relative}.empty-step h4 .ticket-perf{position:absolute;left:0;top:0;bottom:0;width:0;border-left:2px dashed rgba(36,31,24,.16)}.empty-step h4 .ticket-top,.empty-step h4 .permit-row-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;width:100%}.empty-step h4 .ticket-type,.empty-step h4 .permit-type{font-family:Oswald,sans-serif;text-transform:uppercase;font-weight:600}
