:root{--brand:#e8590c;--bg:#f6f6f4;--card:#fff;--text:#1d1d1b;--muted:#6b6b66;--border:#e2e2dc;--ok:#2b8a3e;--danger:#c92a2a;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}h1{margin:.5rem 0 1rem;font-size:1.5rem}h2{margin:1.25rem 0 .5rem;font-size:1.15rem}a{color:var(--brand)}.app{flex-direction:column;min-height:100dvh;display:flex}.topbar{z-index:1;background:var(--brand);color:#fff;padding:calc(env(safe-area-inset-top) + .75rem) 1rem .75rem;font-weight:700;position:sticky;top:0}.content{flex:1;width:100%;max-width:720px;margin:0 auto;padding:1rem 1rem 5.5rem}.tabbar{background:var(--card);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{text-align:center;color:var(--muted);flex:1;padding:.9rem 0;font-weight:600;text-decoration:none}.tabbar a.active{color:var(--brand)}.auth{max-width:420px;margin:0 auto;padding:2rem 1rem}.center{text-align:center;color:var(--muted);padding:3rem 1rem}.card{background:var(--card);border:1px solid var(--border);color:inherit;border-radius:12px;margin-bottom:.75rem;padding:1rem;text-decoration:none;display:block}.muted{color:var(--muted)}label{margin-bottom:.75rem;font-weight:600;display:block}input,textarea,select{width:100%;font:inherit;border:1px solid var(--border);background:#fff;border-radius:8px;margin-top:.3rem;padding:.7rem;font-size:16px;display:block}label.check{align-items:center;gap:.5rem;font-weight:400;display:flex}label.check input{width:auto;margin:0}.btn{border:1px solid var(--border);color:var(--text);font:inherit;cursor:pointer;background:#fff;border-radius:8px;margin:.25rem .25rem .25rem 0;padding:.7rem 1rem;font-weight:600;text-decoration:none;display:inline-block}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.small{padding:.35rem .6rem;font-size:.85rem}.btn.link{color:var(--brand);background:0 0;border:none;padding:0}.btn:disabled{opacity:.5}.banner{background:#fff3bf;border-radius:8px;margin-bottom:.75rem;padding:.75rem}.banner.error{color:var(--danger);background:#ffe3e3}.banner.ok{color:var(--ok);background:#d3f9d8}.error-text{color:var(--danger);font-weight:400}.badge{background:#e9ecef;border-radius:999px;padding:.15rem .5rem;font-size:.8rem;font-weight:600;display:inline-block}.badge-open,.badge-pending{background:#fff3bf}.badge-awarded,.badge-accepted,.badge-approved{background:#d3f9d8}.badge-done{background:#d0ebff}.badge-declined,.badge-rejected,.badge-withdrawn{background:#ffe3e3}.page-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.list{margin:0;padding:0;list-style:none}.project-card{align-items:center;gap:.75rem;display:flex}.project-card img,.thumb-empty{object-fit:cover;background:var(--border);border-radius:8px;flex-shrink:0;width:72px;height:72px}.tabs{gap:.25rem;margin:1rem 0;display:flex;overflow-x:auto}.tabs button{border:1px solid var(--border);font:inherit;background:#fff;border-radius:999px;flex-shrink:0;padding:.5rem .8rem;font-weight:600}.tabs button.active{background:var(--text);border-color:var(--text);color:#fff}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.row>label{flex:1}.spread{justify-content:space-between}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;margin:.5rem 0;display:grid}.photo-grid figure{margin:0}.photo-grid img{object-fit:cover;border-radius:8px;width:100%;height:140px;display:block}.photo-grid .caption{margin:.25rem 0;padding:.4rem;font-size:.85rem}figcaption{color:var(--muted);font-size:.85rem}.photo-open{cursor:zoom-in;background:0 0;border:none;width:100%;padding:0;display:block}.lightbox{z-index:10;color:#fff;background:#000000e6;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:1rem;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;max-width:100%;max-height:80dvh}.uploader{margin-bottom:.75rem}.upload-row{margin:.25rem 0;font-size:.9rem}.tasks{padding:0;list-style:none}.tasks li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 0;display:flex}.tasks label.check{margin:0}.done{color:var(--muted);text-decoration:line-through}.total{text-align:right;margin:1rem 0;font-size:1.1rem}.amounts{border-collapse:collapse;width:100%;margin:.5rem 0}.amounts td{padding:.2rem 0}.amounts td:last-child{text-align:right}.amounts .sum td{border-top:1px solid var(--border);font-weight:700}.message{white-space:pre-wrap}.contact{margin-top:.5rem}.plain{padding-left:1rem}.actions p{margin-top:0}
