.modal-backdrop{position:fixed;inset:0;background:#061b32aa;display:grid;place-items:center;padding:18px;z-index:50}
.modal{background:#fff;width:min(760px,100%);max-height:92vh;overflow:auto;border-radius:16px;box-shadow:0 30px 80px #00162d66}
.modal-head,.modal-actions{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #e4e9ef}
.modal-head h2{margin:0;font-size:19px}.modal-actions{border-top:1px solid #e4e9ef;border-bottom:0;justify-content:flex-end;gap:10px}.modal-body{padding:20px 22px}
.project-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:10px;font-weight:800;color:#536274;text-transform:uppercase}.field input,.field select,.field textarea{width:100%;border:1px solid #d8e1e9;border-radius:9px;padding:11px;font:inherit;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#0a65af;box-shadow:0 0 0 3px #0a65af16}.field textarea{min-height:82px;resize:vertical}.icon-btn{border:0;background:#edf3f8;border-radius:8px;width:34px;height:34px;cursor:pointer}.empty{text-align:center;padding:38px 15px;color:#7d8999}.loading{text-align:center;padding:28px}.error-box{padding:11px;border-radius:8px;background:#fdeced;color:#ad2929;font-size:11px;margin-bottom:12px}.table-wrap{overflow:auto}.btn:disabled{opacity:.55;cursor:not-allowed}
.project-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:18px;padding-top:4px}
.project-tile{min-width:0;border:1px solid #e1e8ef;border-radius:18px;background:#fff;overflow:hidden;cursor:pointer;box-shadow:0 7px 22px rgba(17,56,91,.07);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.project-tile:hover,.project-tile:focus-visible{transform:translateY(-5px);border-color:#a7cce8;box-shadow:0 18px 38px rgba(17,75,122,.16);outline:none}
.project-thumb{height:148px;position:relative;display:grid;place-items:center;overflow:hidden;color:#fff;background:linear-gradient(135deg,#075ca1,#23a0d8)}
.project-thumb:before,.project-thumb:after{content:"";position:absolute;border-radius:50%;background:#ffffff18;animation:projectFloat 5s ease-in-out infinite}
.project-thumb:before{width:150px;height:150px;right:-35px;top:-55px}.project-thumb:after{width:95px;height:95px;left:-22px;bottom:-35px;animation-delay:-2.5s}
.project-thumb.sunset{background:linear-gradient(135deg,#d85045,#f2a93b)}.project-thumb.forest{background:linear-gradient(135deg,#08795f,#30b47c)}.project-thumb.violet{background:linear-gradient(135deg,#6042a6,#a85cc7)}.project-thumb.steel{background:linear-gradient(135deg,#314b63,#7392aa)}.project-thumb.gold{background:linear-gradient(135deg,#9b6506,#e7ad24)}
.project-thumb-icon{position:relative;z-index:1;font-size:62px;filter:drop-shadow(0 10px 14px #001b3044);transition:transform .3s ease}.project-tile:hover .project-thumb-icon{transform:scale(1.1) rotate(-3deg)}
.project-thumb-code{position:absolute;z-index:2;left:13px;top:13px;padding:6px 9px;border-radius:8px;background:#061c3266;backdrop-filter:blur(5px);font-size:9px;font-weight:800;letter-spacing:.5px}
.project-thumb-status{position:absolute;z-index:2;right:13px;top:13px}.project-thumb>i{position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,transparent,#fff,transparent);animation:projectScan 2.8s linear infinite}
.project-tile-body{padding:16px}.project-tile-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.project-tile-heading h3{margin:0;color:#13263a;font-size:15px;line-height:1.35}.project-tile-heading p{margin:4px 0 0;color:#7c8998;font-size:10px}.project-tile-heading>strong{color:#0a65af;font-size:18px}
.project-tile-budget{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:9px 11px;border:1px solid #dceaf4;border-radius:10px;background:linear-gradient(135deg,#f3f9fd,#edf8f4)}.project-tile-budget span{color:#617286;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.35px}.project-tile-budget strong{color:#0871a9;font-size:13px;white-space:nowrap}
.project-tile-location{display:flex;align-items:flex-start;gap:6px;min-height:34px;margin:13px 0 9px;color:#607083;font-size:10px;line-height:1.45}.project-tile-location span:last-child{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.project-progress{height:7px;border-radius:99px;background:#eaf0f5;overflow:hidden}.project-progress span{display:block;width:var(--project-progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,#0871bf,#25b987);animation:projectGrow .8s ease-out both}
.project-tile-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:15px;padding-top:13px;border-top:1px solid #edf1f4}.project-team{color:#748194;font-size:9px}.project-team b{color:#163a57;font-size:11px}.project-tile-footer .btn{padding:8px 10px;font-size:9px}
@keyframes projectGrow{from{width:0}}@keyframes projectFloat{50%{transform:translateY(10px) scale(1.05)}}@keyframes projectScan{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@media(prefers-reduced-motion:reduce){.project-tile,.project-thumb:before,.project-thumb:after,.project-thumb>i,.project-progress span,.project-thumb-icon{animation:none;transition:none}}
@media(max-width:720px){.project-form{grid-template-columns:1fr}.field.full{grid-column:auto}.modal{max-height:96vh}.hero{gap:10px}.table{min-width:720px}.project-gallery{grid-template-columns:1fr;gap:13px}.project-thumb{height:128px}.project-thumb-icon{font-size:52px}.project-tile-body{padding:14px}}
