:root{--color-primary: #222;--color-primary-dark: #000;--color-primary-light: #333;--color-accent: #2563eb;--color-accent-dark: #1e40af;--color-accent-light: #3b82f6;--color-header-hover: #1a365d;--color-secondary: #767676;--color-secondary-dark: #666;--color-secondary-light: #bbb;--color-text: #333;--color-text-light: #666;--color-text-lighter: #767676;--color-text-lightest: #999;--color-bg: #fff;--color-bg-light: #fafafa;--color-bg-dark: #eee;--color-border: #eee;--color-border-medium: #ddd;--color-border-dark: #bbb;--color-link: var(--color-accent);--color-link-hover: var(--color-accent-dark);--color-button-bg: var(--color-accent);--color-button-text: #fff;--color-button-hover: var(--color-accent-dark);--color-button-secondary-bg: #ddd;--color-button-secondary-text: var(--color-accent);--color-button-secondary-hover: #bbb;--font-primary: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;--font-heading: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;--font-size-base: 15px;--font-size-base-rem: .9375rem;--line-height-base: 1.66;--font-size-h1: 24px;--font-size-h1-rem: 1.5rem;--font-size-h2: 20px;--font-size-h2-rem: 1.25rem;--font-size-h3: 18px;--font-size-h3-rem: 1.125rem;--font-size-h4: 16px;--font-size-h4-rem: 1rem;--font-size-h5: 13px;--font-size-h5-rem: .8125rem;--font-size-h6: 15px;--font-size-h6-rem: .9375rem;--font-weight-normal: 400;--font-weight-medium: 600;--font-weight-bold: 700;--font-weight-extra-bold: 800;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--spacing-xxl: 4rem;--max-width: 1000px;--header-height: 80px;--footer-height: auto;--transition-fast: .2s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--color-nav-bg: var(--color-bg);--color-nav-text: var(--color-accent);--color-nav-hover: var(--color-accent-dark);--color-nav-active: var(--color-accent-dark);--color-nav-border: var(--color-border);--color-footer-bg: var(--color-bg-light);--color-footer-text: var(--color-text);--color-footer-heading: var(--color-accent);--color-footer-link: var(--color-accent);--color-footer-link-hover: var(--color-accent-dark);--color-home-hero-bg: var(--color-bg-light);--color-home-hero-text: var(--color-text);--color-home-section-bg: var(--color-bg);--color-home-registration-bg: var(--color-bg-light);--color-vision-hero-bg: var(--color-bg-light);--color-vision-hero-text: var(--color-text);--color-values-card-bg: var(--color-bg-light);--color-values-card-border: var(--color-border);--color-values-card-title: var(--color-accent);--color-team-hero-bg: var(--color-bg-light);--color-team-service-card-bg: var(--color-bg-light);--color-team-service-card-title: var(--color-accent);--color-projects-bg: var(--color-bg);--color-projects-card-border: var(--color-border);--color-contact-bg: var(--color-bg);--color-contact-side-bg: var(--color-bg-light);--color-auth-bg: var(--color-bg);--color-auth-card-bg: var(--color-bg-light);--color-auth-title: var(--color-accent)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,*:before,*:after{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}body{background:var(--color-bg);font-family:var(--font-primary);color:var(--color-text);font-size:var(--font-size-base-rem);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#page{position:relative;word-wrap:break-word}.wrap{margin-left:auto;margin-right:auto;max-width:700px;padding-left:2em;padding-right:2em}.wrap:after{clear:both;content:"";display:block}.site-content-contain{background-color:var(--color-bg);position:relative}.site-content{padding:2.5em 0 0}.content-area,.site-main,.page{width:100%}.entry-header{padding:1em 0}.entry-title{color:var(--color-link);font-size:14px;font-size:.875rem;font-weight:var(--font-weight-extra-bold);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.25em}.entry-content{width:100%}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);clear:both;line-height:1.4;margin:0 0 .75em;padding:1.5em 0 0}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child{padding-top:0}h1{font-size:var(--font-size-h1-rem);font-weight:300}h2,.home.blog .entry-title{color:var(--color-text-light);font-size:var(--font-size-h2-rem);font-weight:300}h3{color:var(--color-text);font-size:var(--font-size-h3-rem);font-weight:300}h4{color:var(--color-text);font-size:var(--font-size-h4-rem);font-weight:var(--font-weight-extra-bold)}h5{color:var(--color-text-lighter);font-size:var(--font-size-h5-rem);font-weight:var(--font-weight-extra-bold);letter-spacing:.15em;text-transform:uppercase}h6{color:var(--color-text);font-size:var(--font-size-h6-rem);font-weight:var(--font-weight-extra-bold)}.entry-header h1.entry-title,.entry-content h1,.entry-content h2,.entry-content h3{transition:transform var(--transition-fast),color var(--transition-fast)}.entry-header h1.entry-title:hover,.entry-content h1:hover,.entry-content h2:hover,.entry-content h3:hover{transform:translateY(-3px);color:var(--color-header-hover)}.values-card__image{width:100%;height:auto;display:block;margin-bottom:1rem;border-radius:4px;border:1px solid var(--color-border)}.team-services-hero__image{width:100%;max-width:800px;height:auto;display:block;margin-bottom:2rem;border-radius:8px;border:1px solid var(--color-border)}.contact-side__image{width:100%;max-width:400px;height:auto;display:block;margin-bottom:1.5rem;border-radius:8px;border:1px solid var(--color-border)}p{margin:0 0 1.5em;padding:0}a{color:var(--color-link);text-decoration:none;transition:color var(--transition-fast)}a:focus{outline:thin dotted}a:hover,a:active{color:var(--color-link-hover);outline:0}img{max-width:100%;height:auto;display:block;border-style:none}ul,ol{margin:0 0 1.5em;padding:0}ul{list-style:disc}ol{list-style:decimal}li>ul,li>ol{margin-bottom:0;margin-left:1.5em}@media screen and (min-width:30em){body,button,input,select,textarea{font-size:18px;font-size:1.125rem}h1{font-size:30px;font-size:1.875rem}h2,.home.blog .entry-title{font-size:26px;font-size:1.625rem}h3{font-size:22px;font-size:1.375rem}h4{font-size:18px;font-size:1.125rem}h5{font-size:13px;font-size:.8125rem}h6{font-size:16px;font-size:1rem}}@media screen and (min-width:48em){body,button,input,select,textarea{font-size:16px;font-size:1rem;line-height:1.5}.wrap{max-width:1000px;padding-left:3em;padding-right:3em}.site-content{padding:5.5em 0 0}body:not(.twentyseventeen-front-page) .entry-header{padding:1em 0}body:not(.twentyseventeen-front-page) .entry-header{padding-top:0}.page:not(.home) #content{padding-bottom:1.5em}}#root{min-height:100vh;display:flex;flex-direction:column}main{flex:1}.nav{display:flex;align-items:center}.nav-list{display:flex;list-style:none;margin:0;padding:0;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:0}.nav-item{position:relative}.nav-link{color:var(--color-nav-text);font-weight:var(--font-weight-medium);padding:.6em .9em;display:block;transition:color var(--transition-fast),background-color var(--transition-fast);text-decoration:none;border-radius:4px;text-align:center}.nav-link__multiline{display:inline-block;text-align:center;line-height:1.3}.nav-link:hover{color:var(--color-nav-hover)}.nav-link.active{color:var(--color-nav-active);font-weight:var(--font-weight-bold)}.nav-link-button{background:none;border:none;color:var(--color-nav-text);font-family:inherit;font-size:inherit;font-weight:inherit;cursor:pointer;width:100%;text-align:left}.nav-link-button:hover{color:var(--color-nav-hover)}@media screen and (max-width:47.999em){.nav{width:100%;justify-content:center}.nav-list{justify-content:center;padding:.25em 0}.nav-item{border:none}.nav-link,.nav-link-button{padding:.5em .75em;font-size:.9rem}}@media screen and (min-width:48em){.nav-list{gap:0}.nav-item{display:inline-block}}.site-header{position:sticky;top:0;z-index:100;background-color:var(--color-nav-bg);border-bottom:1px solid var(--color-nav-border);box-shadow:0 1px 3px #0000000d}.nav-bar{position:relative}.nav-bar-wrap{max-width:var(--max-width);margin-left:auto;margin-right:auto;padding:.5em 2em;display:flex;align-items:center;justify-content:space-between;gap:1rem}.custom-logo-link{display:flex;align-items:center;flex-shrink:0;text-decoration:none}.custom-logo-link img,.custom-logo{display:block;max-height:56px;width:auto}.site-title-fallback{font-size:1.125rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--color-nav-text);white-space:nowrap}.custom-logo-link:hover .site-title-fallback,.custom-logo-link:focus .site-title-fallback{color:var(--color-nav-hover)}@media screen and (min-width:30em){.nav-bar-wrap{padding:.75em 2em}.custom-logo-link img,.custom-logo{max-height:64px}.site-title-fallback{font-size:1.25rem}}@media screen and (min-width:48em){.nav-bar-wrap{padding:.75em 3em}.custom-logo-link img,.custom-logo{max-height:72px;max-width:280px}.site-title-fallback{font-size:1.5rem}}.site-footer{background-color:var(--color-footer-bg);border-top:1px solid var(--color-border);color:var(--color-footer-text)}.site-footer .wrap{max-width:var(--max-width);margin-left:auto;margin-right:auto;padding:2em 2em 1.5em}.widget-area{padding-bottom:2em;padding-top:2em}.widget{padding-bottom:3em}.widget-title{color:var(--color-footer-heading);font-size:13px;font-size:.8125rem;font-weight:var(--font-weight-extra-bold);letter-spacing:.1818em;margin-bottom:1.5em;text-transform:uppercase}.widget-title a{color:inherit}.widget p{margin-bottom:.5em}.social-navigation{font-size:16px;font-size:1rem;margin-bottom:1em}.social-navigation ul{list-style:none;margin-bottom:0;margin-left:0}.social-navigation li{display:inline}.social-navigation a{background-color:var(--color-secondary);border-radius:40px;color:var(--color-bg);display:inline-block;height:40px;margin:0 1em .5em 0;text-align:center;width:40px;transition:background-color var(--transition-fast);text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.social-navigation a:hover,.social-navigation a:focus{background-color:var(--color-primary)}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.site-info{font-size:14px;font-size:.875rem;margin-bottom:1em}.site-info a{color:var(--color-footer-link)}.site-info a:hover{color:var(--color-footer-link-hover)}@media screen and (min-width:48em){.site-footer{font-size:14px;font-size:.875rem;line-height:1.6;margin-top:3em}.site-footer .wrap{padding-left:3em;padding-right:3em}.widget-area{display:table;width:100%}.widget-column.footer-widget-1{float:left;width:36%}.widget-column.footer-widget-2{float:right;width:58%}.social-navigation{clear:left;float:left;margin-bottom:0;width:36%}.site-info{float:left;padding:.7em 0 0;width:58%}.social-navigation+.site-info{margin-left:6%}}.admin-layout{display:flex;min-height:100vh}.admin-sidebar{width:220px;background:#1a1a1a;color:#fff;display:flex;flex-direction:column;flex-shrink:0}.admin-sidebar-header{padding:1.5rem;border-bottom:1px solid #333}.admin-sidebar-header h2{margin:0;font-size:1.25rem}.admin-nav{flex:1;padding:1rem 0}.admin-nav-link{display:block;padding:.6rem 1.5rem;color:#bbb;text-decoration:none;transition:background .2s,color .2s}.admin-nav-link:hover{color:#fff;background:#333}.admin-nav-link.active{color:#fff;background:#333;border-left:3px solid #0066cc}.admin-sidebar-footer{padding:1rem 1.5rem;border-top:1px solid #333}.admin-sidebar-footer .admin-nav-link{margin-bottom:.5rem}.admin-user-email{display:block;font-size:.8rem;color:#888;margin-bottom:.5rem}.admin-logout{display:block;width:100%;margin-top:.5rem;padding:.5rem .75rem;background:#333;border:1px solid #555;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;text-align:center}.admin-logout:hover{background:#444}.admin-main{flex:1;padding:2rem;background:#f5f5f5;overflow:auto}.impersonation-banner{background:#f59e0b;color:#000;padding:.5rem 1rem;display:flex;justify-content:center;align-items:center;gap:1rem;font-size:.9rem}.impersonation-banner button{background:#000;color:#fff;border:none;padding:.25rem .75rem;border-radius:4px;cursor:pointer;font-size:.85rem}.impersonation-banner button:hover{background:#333}.home-hero{margin:-2.5em -2em 1.5em;overflow:hidden;border-radius:0 0 8px 8px}.home-hero__image{width:100%;height:auto;display:block}.home-section{margin-bottom:2rem}.home-section__image{width:100%;max-width:600px;height:auto;display:block;margin-bottom:1rem;border-radius:8px;border:1px solid var(--color-border)}@media screen and (min-width:48em){.home-hero{margin-left:-3em;margin-right:-3em}}.vision-mission-hero{margin:-2.5em -2em 1.5em;overflow:hidden;border-radius:0 0 8px 8px}.vision-mission-hero__image{width:100%;height:auto;display:block}@media screen and (min-width:48em){.vision-mission-hero{margin-left:-3em;margin-right:-3em}}.project-gallery{margin-top:var(--spacing-lg)}.project-gallery__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg)}.project-gallery__message{text-align:center;color:var(--color-text-light);padding:var(--spacing-xl);margin:0}.project-gallery--fallback .project-gallery__message,.project-gallery--error .project-gallery__message{color:var(--color-text-light)}.project-gallery--loading .project-gallery__message{font-style:italic}.project-card{background:var(--color-bg-light);border:1px solid var(--color-border);border-radius:8px;overflow:hidden;text-align:center;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.project-card:hover{border-color:var(--color-border-dark);box-shadow:0 2px 8px #00000014}.project-card--link{display:block;color:inherit;text-decoration:none}.project-card--link:hover{color:inherit}.project-card__view{display:inline-block;margin-top:var(--spacing-sm);font-size:var(--font-size-base-rem);color:var(--color-primary);font-weight:600}.project-card__image-wrapper{aspect-ratio:16 / 10;background:var(--color-bg-dark);overflow:hidden}.project-card__image{width:100%;height:100%;object-fit:cover;display:block}.project-card__content{padding:var(--spacing-md)}.project-card__title{color:var(--color-primary);font-size:var(--font-size-h3-rem);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-xs)}.project-card__category{display:inline-block;color:var(--color-text-lighter);font-size:var(--font-size-h5-rem);margin-bottom:var(--spacing-sm)}.project-card__description{color:var(--color-text-light);margin:0;line-height:var(--line-height-base);font-size:var(--font-size-base-rem)}.project-detail{max-width:900px;margin-bottom:2rem}.project-detail__back{display:inline-block;margin-bottom:1.5rem;color:var(--color-primary);text-decoration:none}.project-detail__back:hover{text-decoration:underline}.project-detail__article{background:var(--color-bg-light);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #00000014}.project-detail__hero{width:100%;max-height:400px;overflow:hidden}.project-detail__hero img{width:100%;height:100%;object-fit:cover;display:block}.project-detail__content{padding:2rem}.project-detail__title{margin:0 0 .5rem;color:var(--color-primary)}.project-detail__category{display:inline-block;font-size:.9rem;color:var(--color-text-light);margin-bottom:1rem}.project-detail__description{margin:0;line-height:1.6;color:var(--color-text)}.project-detail__photos{padding:1.5rem 2rem 2rem;border-top:1px solid var(--color-border)}.project-detail__photos h2{margin:0 0 1rem;font-size:1.25rem}.project-detail__photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.project-detail__photo{margin:0;border-radius:8px;overflow:hidden;background:#fff}.project-detail__photo img{width:100%;height:160px;object-fit:cover;display:block}.project-detail__photo figcaption{padding:.5rem .75rem;font-size:.9rem;color:var(--color-text-light)}.btn{background-color:var(--color-button-bg);border:0;border-radius:2px;box-shadow:none;color:var(--color-button-text);cursor:pointer;display:inline-block;font-size:14px;font-size:.875rem;font-weight:var(--font-weight-extra-bold);line-height:1;padding:1em 2em;text-shadow:none;transition:background var(--transition-fast);font-family:var(--font-primary)}.btn:hover,.btn:focus{background:var(--color-button-hover)}.btn-secondary{background-color:var(--color-button-secondary-bg);color:var(--color-button-secondary-text)}.btn-secondary:hover,.btn-secondary:focus{background:var(--color-button-secondary-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.contact-form-container{max-width:600px;margin:0 auto}.contact-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-group{display:flex;flex-direction:column;margin-bottom:1em}.form-group label{color:var(--color-text);display:block;font-weight:var(--font-weight-extra-bold);margin-bottom:.5em}.form-group input,.form-group textarea{color:var(--color-text-light);background:var(--color-bg);border:1px solid var(--color-border-dark);border-radius:3px;display:block;padding:.7em;width:100%;font-family:var(--font-primary);font-size:var(--font-size-base-rem);transition:color var(--transition-fast),border-color var(--transition-fast)}.form-group input:focus,.form-group textarea:focus{color:var(--color-link);border-color:var(--color-primary);outline:none}.form-group input:disabled,.form-group textarea:disabled{opacity:.6;cursor:not-allowed;background-color:var(--color-bg-dark)}.form-group textarea{resize:vertical;min-height:120px}.form-message{padding:var(--spacing-sm);border-radius:3px;text-align:center;margin-bottom:var(--spacing-sm)}.form-message.success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.form-message.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.auth-page{display:flex;justify-content:center;align-items:center;min-height:60vh;padding:2rem 1rem}.auth-card{width:100%;max-width:400px;background:var(--color-bg-secondary, #f8f8f8);border-radius:8px;padding:2rem;box-shadow:0 2px 8px #00000014}.auth-title{margin:0 0 1rem;font-size:1.5rem;text-align:center}.auth-message{margin:0 0 1.5rem;color:var(--color-text-muted, #666);font-size:.95rem;text-align:center}.auth-form .form-group{margin-bottom:1rem}.auth-form .form-group label{display:block;margin-bottom:.25rem;font-weight:500}.auth-form .form-group input{width:100%;padding:.5rem .75rem;font-size:1rem;border:1px solid #ccc;border-radius:4px}.auth-error{margin-bottom:1rem;padding:.5rem .75rem;background:#fee;color:#c00;border-radius:4px;font-size:.9rem}.auth-actions{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.auth-actions .btn{width:100%}.auth-link-button{background:none;border:none;color:var(--color-link, #0066cc);cursor:pointer;font-size:inherit;padding:0;text-decoration:underline}.auth-link-button:hover{color:var(--color-link-hover, #004499)}.auth-switch{text-align:center;font-size:.95rem}.auth-link{display:block;text-align:center;margin-top:1rem;color:var(--color-link, #0066cc)}.portal-page h1{margin-bottom:1.5rem}.portal-projects{display:flex;flex-direction:column;gap:2rem}.portal-project-card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #00000014}.portal-project-image{width:100%;max-height:300px;overflow:hidden}.portal-project-image img{width:100%;height:100%;object-fit:cover}.portal-project-content{padding:1.5rem}.portal-project-content h2{margin:0 0 .5rem}.portal-project-category{display:inline-block;font-size:.85rem;color:#666;margin-bottom:.5rem}.portal-project-content p{margin:.5rem 0 0}.portal-progress-photos{padding:1rem 1.5rem;border-top:1px solid #eee}.portal-progress-photos h3{margin:0 0 1rem;font-size:1rem}.portal-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.portal-photo{border-radius:8px;overflow:hidden}.portal-photo img{width:100%;height:120px;object-fit:cover;display:block}.portal-photo p{margin:.25rem 0 0;font-size:.85rem}.admin-page{max-width:900px}.admin-page h1{margin:0 0 1.5rem}.admin-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.admin-page-header h1{margin:0}.admin-form{margin-bottom:2rem}.admin-form .form-group{margin-bottom:1rem}.admin-form .form-group label{display:block;margin-bottom:.25rem;font-weight:500}.admin-form .form-group input,.admin-form .form-group textarea{width:100%;max-width:400px;padding:.5rem .75rem;font-size:1rem;border:1px solid #ccc;border-radius:4px}.admin-form .form-hint{margin:.25rem 0 0;font-size:.85rem;color:#666}.admin-form .form-row{display:flex;gap:1rem;flex-wrap:wrap}.admin-form .form-row .form-group{flex:1;min-width:120px}.admin-form .form-check label{display:flex;align-items:center;gap:.5rem}.admin-form .form-check input{width:auto}.admin-form-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 1px 3px #00000014;margin-bottom:1.5rem}.admin-form-inline{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.admin-form-inline input{padding:.5rem .75rem;border:1px solid #ccc;border-radius:4px;min-width:150px}.admin-form-actions,.form-actions{display:flex;gap:.75rem;margin-top:1rem}.admin-error{color:#c00;margin-bottom:1rem}.admin-success{color:#080;margin-bottom:1rem}.admin-table-wrap{overflow-x:auto;background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #eee}.admin-table th{background:#f8f8f8;font-weight:600}.admin-table tr.unread{background:#f0f8ff}.admin-table tr.admin-row{background:#f8f4f0}.admin-role-badge{display:inline-block;padding:.2rem .5rem;font-size:.8rem;font-weight:600;border-radius:4px;text-transform:capitalize}.admin-role-badge.admin{background:#e8e4f0;color:#4a3f6b}.admin-role-badge.client{background:#e8f0f4;color:#2a4a5a}.admin-table .message-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis}.admin-btn-small{padding:.25rem .5rem;font-size:.85rem;margin-right:.5rem;margin-bottom:.25rem;background:#e0e0e0;border:none;border-radius:4px;cursor:pointer}.admin-btn-small:hover{background:#d0d0d0}.admin-btn-small.danger{background:#fee;color:#c00}.admin-btn-small.danger:hover{background:#fcc}.admin-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #ddd}.admin-section h2{margin:0 0 1rem;font-size:1.1rem}.progress-photos-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;margin-bottom:1rem}.progress-photo-item{border:1px solid #ddd;border-radius:8px;overflow:hidden;padding:.5rem}.progress-photo-item img{width:100%;height:100px;object-fit:cover;display:block}.progress-photo-item p{margin:.25rem 0;font-size:.85rem}.editable-caption{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.25rem 0}.editable-caption input{flex:1;min-width:120px;padding:.35rem .5rem;font-size:.85rem;border:1px solid #ccc;border-radius:4px}.user-access-list{display:flex;flex-direction:column;gap:.5rem}.user-access-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:#f8f8f8;border-radius:4px}.project-image-preview{margin-bottom:.75rem}.project-image-preview img{max-width:300px;max-height:200px;object-fit:contain;border-radius:8px;border:1px solid #ddd}.admin-upload-status{display:block;margin-top:.25rem;font-size:.9rem;color:#666}.admin-upload-error{display:block;margin-top:.25rem;font-size:.9rem;color:#c00}.admin-upload-form .admin-upload-error{flex-basis:100%}.site{min-height:100vh;display:flex;flex-direction:column}.site-content-contain{flex:1}
