:root{--container-padding: 1rem;--container-padding-lg: 1.5rem;--radius-1: 8px}html{font-size:100%}body{margin:0;background:#f6f7fb;color:#2f3b4b}*{-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;width:100%;height:100%;overflow-x:hidden}body{overflow-y:auto}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-shell{min-height:100vh;display:flex;flex-direction:column;overflow:visible;position:relative}.page{flex:1;width:100%;padding:0;margin:0;position:relative;overflow:visible}main.page{width:100%;max-width:100vw;margin:0;padding:0;overflow-x:hidden}.page .container{width:100%;max-width:100%;margin:0 auto;padding:1rem;box-sizing:border-box}.container{width:100%;max-width:100%;margin:0 auto;padding:0 1rem;box-sizing:border-box}input,textarea,button{touch-action:manipulation}.mat-mdc-form-field,.mat-mdc-text-field-wrapper{touch-action:pan-y!important}@media (min-width: 600px){.page .container,.container{max-width:720px;padding:0 1.5rem}}@media (min-width: 960px){.page .container,.container{max-width:960px;padding:0 2rem}}@media (min-width: 1280px){.page .container,.container{max-width:1140px}}html,body{margin:0;padding:0;width:100%;overflow-x:hidden}.app-header,.mat-toolbar,.mat-toolbar.mat-primary,.mat-toolbar.mat-toolbar-single-row{background-color:#fff!important;color:#2f3b4b;border-bottom:1px solid #e5e8ef;position:sticky;top:0;z-index:1000;box-shadow:0 2px 6px #0000000f;padding:.5rem 1rem;min-height:56px}.mat-toolbar .toolbar-content{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%}.mat-toolbar .logo{height:32px;width:auto}.mat-toolbar nav{display:flex;gap:.5rem;font-size:.875rem}.app-header,.mat-toolbar{position:sticky;top:0;z-index:1000}.mat-toolbar{background-color:#fff!important;color:#2f3b4b;border-bottom:1px solid #e5e8ef;position:sticky;top:0;z-index:1000;box-shadow:0 2px 6px #0000000f}.mat-toolbar+.page,.app-header+.page,.mat-toolbar+main,.app-header+main{padding-top:1rem}@media (min-width: 960px){.mat-toolbar+.page,.app-header+.page,.mat-toolbar+main,.app-header+main{padding-top:1.25rem}}main.page{width:100%;margin:0;padding:0;padding-top:1rem}@media (min-width: 960px){main.page{padding-top:1.25rem}}.app-header,.mat-toolbar{box-shadow:0 2px 6px #0000000f}main.page{width:100%;margin:0;padding:0}.page .container{width:100%;max-width:1140px;margin:0 auto;padding:0 1rem}@media (min-width: 960px){.page .container{padding:0 1.5rem}}.page .surface{border-radius:8px;margin:0}.app-footer{background:#fff;color:#6b778c;border-top:1px solid #e5e8ef;padding:1rem var(--container-padding);text-align:center}.row{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width: 960px){.row.cols-2{grid-template-columns:1fr 1fr}.row.cols-3{grid-template-columns:repeat(3,1fr)}}.surface{background:#fff;border:1px solid #e5e8ef;border-radius:var(--radius-1);box-shadow:0 1px 4px #0000000f}.page .surface,.surface{background:transparent;border:none;border-radius:0;box-shadow:none;padding:0;margin:0;width:100%}@media (min-width: 600px){.page .surface,.surface{background:#fff;border:1px solid #e5e8ef;border-radius:12px;box-shadow:0 2px 8px #0000000a;padding:1.5rem;margin:1rem 0}}@media (min-width: 960px){.page .surface,.surface{padding:2rem;margin:1.5rem 0}}.section{margin:1.25rem 0}.section-header{margin-bottom:1rem}.form{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width: 960px){.form.two-col{grid-template-columns:1fr 1fr}}.form .form-group{display:flex;flex-direction:column}.form .form-actions{display:flex;gap:1rem;justify-content:flex-end}.mat-mdc-form-field,.mdc-text-field--filled{--mdc-filled-text-field-container-color: #e8ecf4;--mdc-filled-text-field-label-text-color: #6b778c;--mdc-filled-text-field-input-text-color: #2f3b4b;--mdc-filled-text-field-active-indicator-color: #2f5fbf;--mdc-filled-text-field-hover-active-indicator-color: #2f5fbf}.mat-mdc-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{min-height:40px;padding:0 1rem}.mat-mdc-raised-button,.mat-mdc-unelevated-button{--mdc-filled-button-container-color: #2f5fbf;--mdc-filled-button-label-text-color: #ffffff}.mat-mdc-outlined-button{--mdc-outlined-button-outline-color: #2f5fbf;--mdc-outlined-button-label-text-color: #2f5fbf}.mt-3{margin-top:1rem}.mb-3{margin-bottom:1rem}.p-3{padding:1rem}.center{text-align:center}.right{text-align:right}:root{--font-family-sans: "Roboto", "Segoe UI", Arial, sans-serif;--fs-body: 1rem;--fs-small: .875rem;--fs-h1: 1.75rem;--fs-h2: 1.5rem;--fs-h3: 1.25rem;--fw-regular: 400;--fw-medium: 500;--fw-bold: 700;--lh-tight: 1.2;--lh-snug: 1.35;--lh-normal: 1.6}body{font-family:var(--font-family-sans);font-size:var(--fs-body);line-height:var(--lh-normal);color:#2f3b4b}h1,.h1{font-size:var(--fs-h1);line-height:var(--lh-snug);font-weight:var(--fw-bold);margin:0 0 .5rem;color:#2f3b4b}h2,.h2{font-size:var(--fs-h2);line-height:var(--lh-snug);font-weight:var(--fw-medium);margin:0 0 .5rem;color:#2f3b4b}h3,.h3{font-size:var(--fs-h3);line-height:var(--lh-tight);font-weight:var(--fw-medium);margin:0 0 .5rem;color:#2f3b4b}label,.label{font-size:var(--fs-small);color:#6b778c}.mat-mdc-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{font-family:var(--font-family-sans);font-weight:var(--fw-medium);letter-spacing:.02em}.mat-mdc-form-field,.mdc-text-field{font-family:var(--font-family-sans)}.mat-mdc-form-field .mat-mdc-form-field-label,.mdc-text-field .mat-mdc-form-field-label{font-size:var(--fs-small);color:#6b778c}.mat-mdc-list-item,.mat-mdc-chip{font-family:var(--font-family-sans);font-size:var(--fs-body)}@media (min-width: 960px){:root{--fs-h1: 2rem;--fs-h2: 1.75rem;--fs-h3: 1.375rem}}:root{--app-error: #d32f2f;--app-error-bg: #fdeaea;--app-error-border: #f5c7c7}.error-message,.alert-error{background:var(--app-error-bg);color:var(--app-error);border:1px solid var(--app-error-border);border-left:4px solid var(--app-error);border-radius:8px;padding:.75rem 1rem;margin:.75rem 0}.mat-mdc-form-field-error{color:var(--app-error)!important}.mat-mdc-form-field.mat-mdc-form-field-invalid,.mdc-text-field--invalid{--mdc-filled-text-field-active-indicator-color: var(--app-error);--mdc-filled-text-field-hover-active-indicator-color: var(--app-error);--mdc-outlined-text-field-focus-outline-color: var(--app-error);--mdc-outlined-text-field-hover-outline-color: var(--app-error)}.mat-mdc-raised-button.mat-warn,.mat-mdc-unelevated-button.mat-warn{--mdc-filled-button-container-color: var(--app-error);--mdc-filled-button-label-text-color: #ffffff}.mdc-linear-progress.error{--mdc-linear-progress-active-indicator-color: var(--app-error)}.portfolio{padding:1rem 0}.portfolio-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width: 600px){.portfolio-grid{grid-template-columns:1fr 1fr}}@media (min-width: 960px){.portfolio-grid{grid-template-columns:repeat(3,1fr)}}.portfolio-item{background:#fff;border:1px solid #e5e8ef;border-radius:12px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.portfolio-item{aspect-ratio:3/4}.portfolio-item img{display:block;width:100%;height:100%;object-fit:cover;border-radius:12px}.portfolio-item .caption{padding:.5rem .75rem;font-size:.875rem;color:#6b778c}.portfolio-item img,.gallery img{filter:grayscale(100%)}.mat-mdc-dialog-container img,.image-dialog img{filter:none!important}.image-dialog .mat-mdc-dialog-container{--mdc-dialog-container-color: #000000;background:#000;border-radius:0;box-shadow:0 20px 60px #000c;padding:0;overflow:hidden!important;display:flex!important;flex-direction:column!important}.image-dialog .mat-mdc-dialog-surface{overflow:hidden!important;display:flex!important;flex-direction:column!important;background:#000}.image-dialog .dialog-body{display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:1rem;background:#000;overflow:hidden;flex:1}.image-dialog .photo{position:relative;display:flex;align-items:center;justify-content:center;overflow:visible;flex:1;min-height:0}.image-dialog .photo img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:none!important;box-shadow:0 10px 30px #00000080,0 4px 12px #0000004d}.image-dialog .dialog-actions{margin-top:1rem;padding-top:1rem;display:flex;justify-content:center;gap:1rem;flex-shrink:0}.image-dialog .dialog-actions button{background-color:#ffffffe6;color:#000}.image-dialog .dialog-actions button:hover{background-color:#fff}@media (min-width: 960px){.image-dialog .photo{max-width:85vw;max-height:calc(90vh - 7rem);padding:16px}.image-dialog .dialog-body{padding:2rem}}
