:root{--bg:#d9dde0;--surface:#f1f3f4;--surface-strong:#ffffff;--ink:#171a1d;--muted:#5f666d;--line:#b7bec5;--brand:#1f2428;--brand-strong:#121518;--brand-soft:#d7dce0;--accent:#d96d1f;--accent-soft:#f7dfcf;--warning:#c85c16;--danger:#a7372a;--danger-soft:#f3d4cf;--ok-soft:#d5e2d9;--ok-ink:#244b33;--shadow:0 10px 24px rgba(18,21,24,0.08);--radius:8px}*{box-sizing:border-box}html{min-height:100%;background:linear-gradient(180deg,#c7ccd0 0,var(--bg) 100%)}body{margin:0;min-height:100vh;color:var(--ink);font-family:Franklin Gothic Medium,Arial Narrow,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}p{line-height:1.5}.shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{display:flex;flex-direction:column;padding:16px;background:linear-gradient(180deg,#20262a,#161a1d);color:#eef1f3;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:hidden;border-right:3px solid var(--accent)}.brand{margin-bottom:14px}.brand-home{display:inline-flex;margin-bottom:10px}.brand-logo{width:160px;height:auto}.brand h1{margin:0;font-size:1.05rem;line-height:1.05;text-transform:uppercase;letter-spacing:.02em}.brand p{margin:8px 0 0;font-size:.82rem;line-height:1.28}.brand p,.muted,.nav-note{color:rgba(238,241,243,.72)}.nav-note{margin-top:4px;padding-top:8px;border-top:1px solid rgba(238,241,243,.12);text-transform:uppercase;font-size:.68rem;letter-spacing:.08em}.nav{display:grid;grid-gap:8px;gap:8px;margin-top:10px}.user-panel{margin-top:14px;margin-bottom:0;padding:12px;border-radius:var(--radius);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12)}.user-panel span,.user-panel strong{display:block}.user-panel strong{text-transform:uppercase;letter-spacing:.03em}.user-panel span{margin-top:4px;color:rgba(238,241,243,.72);font-size:.82rem}.logout-button{margin-top:10px;width:100%;border:1px solid rgba(255,255,255,.18);background:transparent;color:#eef1f3;border-radius:6px;padding:10px 12px;cursor:pointer;text-transform:uppercase;font-weight:700;letter-spacing:.04em;font-size:.8rem}.nav-item{border:1px solid rgba(255,255,255,.14);border-radius:6px;padding:10px 12px;background:rgba(255,255,255,.03)}.nav-item span,.nav-item strong{display:block}.nav-item strong{text-transform:uppercase;letter-spacing:.04em}.nav-item span{margin-top:4px;color:rgba(238,241,243,.68);font-size:.8rem;line-height:1.2}.main{padding:24px}.hero,.panel,.photo-card,.report-block,.stat,.status-card,.table-card,.timeline-item{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.hero{padding:24px;display:grid;grid-gap:20px;gap:20px;background:linear-gradient(135deg,#2a3136,#171b1f);color:#eef1f3;border-left:8px solid var(--accent)}.hero-top,.inline-head,.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.eyebrow,.section-kicker{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:4px;background:rgba(217,109,31,.14);color:#7c3908;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700}.hero .eyebrow{background:rgba(217,109,31,.18);color:#ffd2af}.hero h2,.panel h3,.table-card h3{margin:0;text-transform:uppercase;letter-spacing:.02em}.hero-grid,.home-grid,.home-links,.photos-grid,.project-list,.stats-grid,.status-grid,.two-column{display:grid;grid-gap:16px;gap:16px}.hero-grid,.status-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.two-column{grid-template-columns:1.3fr .9fr;margin-top:24px}.panel,.table-card{padding:22px}.panel-subsection{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.compact-actions{gap:12px}.stat{padding:18px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}.stat .label{color:rgba(238,241,243,.7);display:block;margin-bottom:8px;font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}.stat .value{display:block;font-size:1.9rem;font-weight:700}.chip-row,.meta-row,.stack{display:flex;flex-wrap:wrap;gap:10px}.chip{display:inline-flex;padding:7px 10px;border-radius:4px;background:#ebeeef;color:var(--ink);font-size:.88rem;text-transform:uppercase;letter-spacing:.03em}.autosave-banner,.chip{align-items:center;border:1px solid var(--line)}.autosave-banner{display:flex;gap:10px;padding:9px 12px;border-left:4px solid var(--accent);border-radius:6px;background:#f7f8f8}.autosave-indicator{display:inline-flex;align-items:center;justify-content:center;min-width:84px;padding:6px 10px;border-radius:999px;font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.autosave-indicator.idle{background:#e6eaed;color:#42505a}.autosave-indicator.saving{background:#d7e3ef;color:#1f4f7a}.autosave-indicator.saved{background:var(--ok-soft);color:var(--ok-ink)}.autosave-indicator.error{background:var(--danger-soft);color:var(--danger)}.autosave-copy{color:#51615a;font-size:.86rem}.badge{display:inline-flex;align-items:center;justify-content:center;border-radius:4px;padding:6px 10px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border:1px solid transparent}.badge.ready{background:#f3e2d2;color:#8a4a16;border-color:#d7b190}.badge.in_progress{background:#d7e3ef;color:#1f4f7a;border-color:#a9bfd4}.badge.completed{background:#e2dbe9;color:#5b4273;border-color:#bcaecc}.badge.approved{background:var(--ok-soft);color:var(--ok-ink);border-color:#adc4b5}.badge.submitted{background:#d9e7ee;color:#27506a;border-color:#acc3d0}.button-row{display:flex;flex-wrap:wrap;gap:10px}.button,.button-link,.dark-button{padding:11px 14px;border-radius:4px;cursor:pointer;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.button{border:1px solid transparent}.button-link{display:inline-flex;align-items:center;justify-content:center}.button.primary{background:#ebeeef;color:var(--ink);border-color:var(--line)}.button.secondary{background:var(--accent);color:#fff;border:1px solid #b45518}.summary-link-button{background:#4f84b8;color:#f7fbff;border:1px solid #356592}.dark-button{border:1px solid #101316;background:var(--brand);color:#f7f7f2}.table{width:100%;border-collapse:collapse}.equipment-register-tools{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin:18px 0 12px}.equipment-search-field{min-width:min(420px,100%);flex:1 1 360px}.table td,.table th{padding:14px 8px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.table th{color:#4f5860;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.timeline{display:grid;grid-gap:12px;gap:12px}.summary-groups{display:grid;grid-gap:18px;gap:18px;margin-top:18px}.summary-group{border:1px solid var(--line);border-radius:6px;background:#fbfbfa;padding:14px}.summary-table-wrap{overflow-x:auto;margin-top:12px}.summary-table-wrap.compact{overflow:auto}.summary-table{min-width:920px}.summary-table.compact{min-width:0;width:max-content;border-collapse:collapse;border:1px solid #c8ced3;background:#fff}.summary-question-head{min-width:90px}.summary-question-head.compact{min-width:132px}.summary-question-head span{display:block;font-size:.74rem;line-height:1.25;white-space:normal}.summary-question-head.compact span{font-size:.76rem;font-weight:700;line-height:1.2;max-width:132px;white-space:normal;text-align:left}.summary-cell{text-align:center}.summary-cell.compact{padding:5px 4px}.summary-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;border:1px solid var(--line);font-weight:700;text-transform:uppercase}.summary-panel-compact .table td,.summary-panel-compact .table th{padding:7px 6px;border:1px solid #d2d7db}.summary-panel-compact .summary-group{padding:10px}.summary-panel-compact .summary-mark{width:20px;height:20px;font-size:.82rem}.summary-panel-compact .table td:first-child,.summary-panel-compact .table th:first-child{min-width:78px;font-size:.9rem}.summary-panel-compact .table td:nth-child(2),.summary-panel-compact .table th:nth-child(2){min-width:96px;font-size:.9rem}.summary-panel-compact .table thead th{vertical-align:bottom;background:#f5f7f8}.compact-hero{padding:18px 22px}.summary-mark.check{background:var(--ok-soft);color:var(--ok-ink);border-color:#adc4b5}.summary-mark.fail{background:var(--danger-soft);color:var(--danger);border-color:#d2a19d}.summary-mark.pending{background:#eef1f3;color:#546067}.summary-equipment-link{display:grid;grid-gap:2px;gap:2px;color:#1f4f7a}.summary-equipment-link span{font-size:.76rem;color:#58656d;text-transform:uppercase;letter-spacing:.04em}.photo-card,.report-block,.status-card,.timeline-item{padding:16px}.photo-card strong,.report-block strong,.status-card strong,.timeline-item strong,.workflow-step strong{display:block;margin-bottom:8px;text-transform:uppercase;letter-spacing:.03em}.status-card{border-left:6px solid var(--accent)}.workflow-list{display:grid;grid-gap:10px;gap:10px;margin-top:18px}.workflow-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;grid-gap:16px;gap:16px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:6px;background:linear-gradient(180deg,#fafbfb,#eef1f3)}.workflow-seq{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:4px;background:#20262a;color:#eef1f3;font-size:1rem;font-weight:700;letter-spacing:.06em}.workflow-copy strong{display:block;margin-bottom:6px;font-size:1rem;text-transform:uppercase;letter-spacing:.05em}.workflow-copy p{margin:0;color:#51615a;line-height:1.45;max-width:52ch}.workflow-badge{justify-self:end}.photos-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.photo-frame{min-height:120px;border-radius:4px;background:linear-gradient(145deg,#2b3135,#69727a);margin-bottom:12px}.report-photo-frame{display:grid;place-items:center;aspect-ratio:4/3;padding:10px;border:1px solid var(--line);border-radius:4px;margin-bottom:12px;background:#f2f4f5;overflow:hidden}.checklist{display:grid;grid-gap:8px;gap:8px}.compact-field{gap:4px}.check-item{display:grid;grid-gap:8px;gap:8px;padding:10px 12px;border:1px solid #c9d0d5;border-left:4px solid #2e353a;border-radius:6px;background:#fcfcfb}.check-item-head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:start}.check-item-copy strong{display:block;margin-bottom:2px;font-size:.95rem;letter-spacing:.01em;line-height:1.25}.check-item-section{color:#66716d;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.check-choice-group{display:inline-flex;flex-wrap:wrap;gap:6px}.check-choice{display:inline-flex;align-items:center;justify-content:center;min-width:56px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:#eef1f3;color:#33403a;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.check-choice input{position:absolute;opacity:0;pointer-events:none}.check-choice.selected{background:#20262a;border-color:#20262a;color:#f4f6f7}.check-item-details{display:grid;grid-template-columns:160px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start}.check-item .field span{font-size:.68rem;letter-spacing:.08em}.check-item .field input,.check-item .field textarea{padding:9px 10px}.auto-grow-textarea{min-height:42px;overflow:hidden;resize:none;line-height:1.35}.status-pill{justify-self:start;padding:8px 10px;border-radius:4px;font-size:.82rem;background:#e8ecee;border:1px solid var(--line);color:var(--ink);text-transform:uppercase;letter-spacing:.05em}.note-box{padding:16px;border:1px dashed #919aa2;border-radius:4px;background:#f5f6f6;color:#51615a}.equipment-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:4px;background:#eef1f3;color:var(--ink);font-size:1rem;font-weight:700;text-transform:uppercase}.equipment-edit-form{margin-top:8px}.project-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.management-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.project-management-card{background:linear-gradient(180deg,#fbfbfb,#f1f3f4)}.job-report-item{background:#fafbfb;border:1px solid var(--line)}.home-grid{gap:20px}.home-links{grid-template-columns:repeat(2,minmax(0,1fr))}.home-link-card,.project-card{display:grid;grid-gap:8px;gap:8px;padding:18px;border-radius:4px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--accent)}.home-link-card strong,.project-card strong{font-size:1rem;text-transform:uppercase;letter-spacing:.03em}.activity-meta,.home-link-card span,.project-card span{color:#51615a}.activity-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:.92rem}.form-shell{display:grid;place-items:center}.form-card,.login-card{width:min(780px,100%);padding:28px;border-radius:8px;background:rgba(255,255,255,.96);border:1px solid var(--line);box-shadow:var(--shadow)}.login-card{width:min(560px,100%);border-top:6px solid var(--accent)}.form-card h2,.login-card h1{margin-bottom:8px;text-transform:uppercase;letter-spacing:.02em}.crud-form,.login-form{display:grid;grid-gap:18px;gap:18px;margin-top:24px}.crud-form input,.crud-form select,.crud-form textarea,.field select{width:100%;padding:14px 16px;border-radius:4px;border:1px solid var(--line);background:#fff}.crud-form textarea{resize:vertical}.report-photo{width:100%;height:100%;object-fit:contain;border-radius:4px;background:#eff4ee}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-copy{color:#51615a}.login-error{margin-top:18px;padding:12px 14px;border-radius:4px;background:var(--danger-soft);color:var(--danger);border-left:4px solid var(--danger)}.field{display:grid;grid-gap:8px;gap:8px}.field span{font-weight:700;text-transform:uppercase;font-size:.85rem;letter-spacing:.04em}.field-hint{color:#51615a;font-size:.82rem;line-height:1.4}.camera-file-input{padding:10px 12px;background:#fff}.camera-file-input::-webkit-file-upload-button{margin-right:12px;padding:10px 14px;border:1px solid #101316;border-radius:4px;background:var(--brand);color:#f7f7f2;font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.camera-file-input::file-selector-button{margin-right:12px;padding:10px 14px;border:1px solid #101316;border-radius:4px;background:var(--brand);color:#f7f7f2;font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.login-button{border:1px solid #101316;border-radius:4px;background:var(--brand);color:#f7f7f2;padding:14px 16px;cursor:pointer;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.login-help{margin-top:24px;padding:18px;border-radius:4px;background:#f5f6f6;border:1px dashed #919aa2;color:#51615a}.login-help strong{display:block;margin-bottom:10px;color:var(--ink);text-transform:uppercase;letter-spacing:.04em}@media (max-width:1100px){.hero-grid,.photos-grid,.shell,.stats-grid,.status-grid,.two-column,.workflow-list{grid-template-columns:1fr}.sidebar{position:static;height:auto}.main{padding:18px}.check-item-details,.check-item-head,.check-row,.form-grid,.home-links,.management-summary-grid,.workflow-row{grid-template-columns:1fr}.autosave-banner{flex-direction:column;align-items:flex-start}.workflow-badge{justify-self:start}}