*,:before,:after{box-sizing:border-box}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--font-md);line-height:var(--line-normal);color:var(--text-primary);background:var(--background);margin:0}h1{font-size:var(--font-xl);line-height:var(--line-tight);margin:var(--space-md) 0}h2{font-size:var(--font-lg);margin:var(--space-lg) 0 var(--space-sm)}h3{font-size:var(--font-md);margin:0 0 var(--space-sm)}h4{font-size:var(--font-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:var(--space-md) 0 var(--space-xs)}a{color:var(--primary)}.muted{color:var(--text-secondary)}.error{color:var(--status-fail);font-size:var(--font-sm);margin:var(--space-xs) 0 0}button{font:inherit;font-size:var(--font-sm);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);cursor:pointer;border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--text-primary)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast)}button:hover:not(:disabled):not(.primary){border-color:var(--primary)}button.small{min-height:32px;padding:var(--space-xs) var(--space-sm);font-size:var(--font-xs)}input,select,textarea{font:inherit;color:var(--text-primary);background:var(--background);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-sm);width:100%}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.field{gap:var(--space-xs);margin-bottom:var(--space-sm);flex-direction:column;display:flex}.field>span{font-size:var(--font-xs);color:var(--text-secondary)}.center-screen{place-items:center;min-height:100vh;display:grid}.app-shell{grid-template-columns:232px minmax(0,1fr);min-height:100vh;display:grid}.app-side{gap:var(--space-lg);height:100vh;padding:var(--space-lg) var(--space-md);border-right:1px solid var(--border);background:var(--surface);flex-direction:column;display:flex;position:sticky;top:0}.brand{font-weight:700;font-size:var(--font-lg);color:var(--primary);padding:0 var(--space-sm);text-decoration:none}.side-nav{gap:var(--space-xs);flex-direction:column;display:flex}.side-nav a{align-items:center;gap:var(--space-sm);padding:10px var(--space-sm);border-radius:var(--radius-md);color:var(--text-primary);font-weight:600;font-size:var(--font-sm);text-decoration:none;display:flex}.side-nav a:hover{background:var(--background)}.side-nav a.active{background:var(--primary);color:var(--primary-contrast)}.nav-icon{flex:none;width:18px;height:18px}.side-foot{gap:var(--space-sm);padding:0 var(--space-sm);flex-direction:column;margin-top:auto;display:flex}.user-name{font-size:var(--font-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-main{width:100%;min-width:0;max-width:1100px;padding:var(--space-lg) var(--space-xl)}@media (width<=800px){.app-shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.app-side{align-items:center;gap:var(--space-md);height:auto;padding:var(--space-sm) var(--space-md);border-right:0;border-bottom:1px solid var(--border);flex-flow:wrap;position:static}.side-nav{flex-direction:row}.side-foot{flex-direction:row;align-items:center;margin-top:0;margin-left:auto;padding:0}.user-name{max-width:10rem}.app-main{padding:var(--space-md)}}.tabs{gap:var(--space-xs);border-bottom:1px solid var(--border);margin:var(--space-lg) 0 var(--space-md);display:flex;overflow-x:auto}.tab{color:var(--text-secondary);padding:var(--space-sm) var(--space-md);white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;margin-bottom:-1px;font-weight:600}.tab:hover:not(:disabled):not(.primary){color:var(--text-primary);border-color:#0000}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-count{min-width:1.5em;margin-left:var(--space-xs);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);font-size:var(--font-xs);text-align:center;padding:0 6px;display:inline-block}.locale-toggle{border:1px solid var(--border);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.locale-toggle button{min-height:32px;padding:var(--space-xs) var(--space-sm);font-size:var(--font-xs);background:0 0;border:none;border-radius:0}.locale-toggle button.active{background:var(--primary);color:var(--primary-contrast)}.login-screen{min-height:100vh;padding:var(--space-lg);background:var(--surface);place-items:center;display:grid}.login-card{background:var(--background);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:380px;padding:var(--space-xl)}.login-card header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.login-card h1{color:var(--primary);margin:0}.login-card button.primary{width:100%;margin-top:var(--space-md)}.project-list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.project-row{justify-content:space-between;align-items:baseline;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-primary);text-decoration:none;display:flex}.project-row:hover{border-color:var(--primary)}.project-name{font-weight:600}.breadcrumb{font-size:var(--font-sm);color:var(--text-secondary);margin-top:var(--space-sm)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md)}.meta-grid{gap:0 var(--space-md);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.inspection-list{margin:0;padding:0;list-style:none}.inspection-row{align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.inspection-row:last-child{border-bottom:none}.inspection-type{min-width:12rem;font-weight:600}.badge{align-items:center;gap:var(--space-xs);font-size:var(--font-xs);border-radius:var(--radius-lg);padding:2px var(--space-sm);white-space:nowrap;border:1px solid;font-weight:600;display:inline-flex}.badge svg{width:14px;height:14px}.badge-ok{color:var(--status-ok)}.badge-fail{color:var(--status-fail)}.badge-warning{color:var(--status-warning)}.badge-locked{color:var(--status-locked)}.badge-info{color:var(--status-info)}.photo-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.photo-card{gap:var(--space-xs);flex-direction:column;margin:0;display:flex}.photo-card img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--background);width:100%}.photo-placeholder{aspect-ratio:4/3;border:1px dashed var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-secondary);font-size:var(--font-xs);padding:var(--space-sm);text-align:center;place-items:center;display:grid}.photo-card figcaption{font-size:var(--font-xs);flex-direction:column;display:flex}.photo-move{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-sm);background:var(--background)}.row-actions{gap:var(--space-sm);display:flex}.punch-list{gap:var(--space-md);flex-direction:column;display:flex}.punch-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);background:var(--background)}.punch-head{gap:var(--space-sm);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.punch-fields{gap:0 var(--space-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.punch-fields .field:first-child{grid-column:1/-1}.punch-actions{gap:var(--space-sm);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.button-link{font-size:var(--font-xs);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);background:var(--surface);min-height:32px;color:var(--text-primary);align-items:center;text-decoration:none;display:inline-flex}.button-link:hover{border-color:var(--primary)}.datasheet-upload{align-items:flex-end;gap:var(--space-md);flex-wrap:wrap;display:flex}.datasheet-upload .field{flex:220px;margin:0}.datasheet-upload button{margin-bottom:var(--space-xs)}.datasheet-upload p{flex-basis:100%;margin:0}.branding-card{max-width:480px;margin-top:24px}.branding-preview{max-width:260px;max-height:64px;margin:8px 0;display:block}.file-picker{align-items:center;gap:var(--space-sm);min-height:40px;display:flex}.file-button{min-height:40px;padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-size:var(--font-sm);cursor:pointer;white-space:nowrap;align-items:center;font-weight:600;display:inline-flex}.file-button:hover{border-color:var(--primary)}.file-name{font-size:var(--font-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.visually-hidden-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}:is(.visually-hidden-input:focus-visible+*,.file-picker:has(.visually-hidden-input:focus-visible) .file-button){outline:2px solid var(--primary);outline-offset:1px}.empty-state{align-items:center;gap:var(--space-sm);padding:var(--space-xl) var(--space-md);text-align:center;color:var(--text-secondary);border:1px dashed var(--border);border-radius:var(--radius-md);margin:var(--space-sm) 0;flex-direction:column;display:flex}.empty-state .nav-icon{width:32px;height:32px}.empty-state p{max-width:40rem;margin:0}.report-list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.report-row{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--background);display:flex}.report-row .nav-icon{width:22px;height:22px;color:var(--primary)}.report-text{flex-direction:column;flex:auto;min-width:0;display:flex}.report-name{font-weight:600}.button-link.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast);min-height:36px;font-size:var(--font-sm);padding:var(--space-xs) var(--space-md)}
