:root{--admin-bg-deep:#0c1222;--admin-bg:#111827;--admin-surface:#1e293b;--admin-surface-hover:#273549;--admin-border:#334155;--admin-text:#e2e8f0;--admin-muted:#94a3b8;--admin-accent:#38bdf8;--admin-accent-soft:#38bdf826;--admin-glow:0 0 40px #38bdf814}html.theme-admin,html.theme-admin body{background:#0c1222;background:var(--admin-bg-deep);color:#e2e8f0;color:var(--admin-text)}#root{min-height:100vh}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}.app-shell{min-height:100vh}.app-shell--admin{background:radial-gradient(ellipse 120% 80% at 50% -20%,#38bdf81f,#0000 50%),linear-gradient(180deg,#0c1222,#111827 45%,#0f172a);background:radial-gradient(ellipse 120% 80% at 50% -20%,#38bdf81f,#0000 50%),linear-gradient(180deg,var(--admin-bg-deep) 0,var(--admin-bg) 45%,#0f172a 100%);color:#e2e8f0;color:var(--admin-text);min-height:100vh}.app-shell--admin .layout-main{margin:0 auto;max-width:1280px;padding:clamp(20px,3vw,32px) clamp(18px,3vw,28px) 48px}.app-shell:not(.app-shell--admin) .layout-main{padding:24px}.app-loading{align-items:center;background:#0c1222;background:var(--admin-bg-deep);color:#94a3b8;color:var(--admin-muted);display:flex;justify-content:center;min-height:100vh}.app-navbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #0000;position:sticky;top:0;z-index:100}.app-navbar--light{background:#f0f0f0f2;border-bottom-color:#e2e8f0}.app-navbar--dark{background:#0f172ae0;border-bottom-color:#334155;border-bottom-color:var(--admin-border);box-shadow:0 0 40px #38bdf814;box-shadow:var(--admin-glow)}.app-navbar__inner{align-items:center;display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 auto;max-width:1280px;padding:12px clamp(16px,3vw,24px)}.app-navbar__link{border-bottom:2px solid #0000;font-size:14px;font-weight:500;padding:6px 4px 8px;text-decoration:none;transition:color .15s ease,border-color .15s ease}.app-navbar--dark .app-navbar__link{color:#94a3b8}.app-navbar--dark .app-navbar__link:hover{color:#cbd5e1}.app-navbar--dark .app-navbar__link--active{border-bottom-color:#38bdf8;border-bottom-color:var(--admin-accent);color:#38bdf8;color:var(--admin-accent);font-weight:700}.app-navbar__link--contractor{color:#6d28d9}.app-navbar__link--contractor:hover{color:#5b21b6}.app-navbar__link--contractor-active{border-bottom-color:#1d4ed8;color:#1d4ed8;font-weight:700}.app-navbar__spacer{flex:1 1;min-width:8px}.app-navbar__user{color:#94a3b8;color:var(--admin-muted);font-size:13px}.app-navbar--light .app-navbar__user{color:#475569}.app-navbar__logout{border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;padding:8px 14px;transition:background .15s ease,border-color .15s ease}.app-navbar--dark .app-navbar__logout{background:#1e293b;background:var(--admin-surface);border:1px solid #334155;border:1px solid var(--admin-border);color:#e2e8f0;color:var(--admin-text)}.app-navbar--dark .app-navbar__logout:hover{background:#273549;background:var(--admin-surface-hover);border-color:#475569}.app-navbar--light .app-navbar__logout{background:#fff;border:1px solid #cbd5e1;color:#334155}.app-navbar--light .app-navbar__logout:hover{background:#f8fafc}.app-shell--admin .layout-main h1,.app-shell--admin .layout-main h2{color:#f8fafc;font-weight:700;letter-spacing:-.02em;margin-top:0}.app-shell--admin .layout-main h2{font-size:clamp(1.35rem,2.5vw,1.65rem)}.app-shell--admin .layout-main a{color:#38bdf8;color:var(--admin-accent);text-decoration:underline;text-underline-offset:3px}.app-shell--admin .layout-main a:hover{color:#7dd3fc}.app-shell--admin .layout-main li,.app-shell--admin .layout-main p{color:#94a3b8;color:var(--admin-muted)}.app-shell--admin .layout-main strong{color:#cbd5e1}.app-shell--admin .layout-main input[type=email],.app-shell--admin .layout-main input[type=password],.app-shell--admin .layout-main input[type=text],.app-shell--admin .layout-main select,.app-shell--admin .layout-main textarea{background:#1e293b;background:var(--admin-surface);border:1px solid #334155;border:1px solid var(--admin-border);border-radius:8px;color:#e2e8f0;color:var(--admin-text)}.app-shell--admin .layout-main input:focus,.app-shell--admin .layout-main select:focus,.app-shell--admin .layout-main textarea:focus{border-color:#38bdf8;border-color:var(--admin-accent);box-shadow:0 0 0 3px #38bdf826;box-shadow:0 0 0 3px var(--admin-accent-soft);outline:none}.app-shell--admin .layout-main select option{background:#1e293b;background:var(--admin-surface);color:#e2e8f0;color:var(--admin-text)}.app-shell--admin .layout-main button:not(.app-navbar__logout){border-radius:8px;font-weight:600;transition:transform .1s ease,box-shadow .15s ease,background .15s ease}.app-shell--admin .layout-main button:not([disabled]):not(.app-navbar__logout):hover{transform:translateY(-1px)}.app-shell--admin .layout-main button[disabled]{cursor:not-allowed;opacity:.55}.app-shell--admin .layout-main table{border-color:#334155!important;border-color:var(--admin-border)!important;border-radius:12px;overflow:hidden}.app-shell--admin .layout-main thead{background:#1e293b!important;background:var(--admin-surface)!important;color:#e2e8f0!important;color:var(--admin-text)!important}.app-shell--admin .layout-main tbody tr:nth-child(2n){background:#1e293b59}.app-shell--admin .layout-main tbody td{border-color:#334155!important;border-color:var(--admin-border)!important;color:#e2e8f0;color:var(--admin-text)}.app-shell--admin .admin-panel{box-shadow:0 4px 24px #00000040}.app-shell--admin .admin-panel,.app-shell--admin .admin-toolbar{background:#1e293b;background:var(--admin-surface);border:1px solid #334155;border:1px solid var(--admin-border);border-radius:12px}.app-shell--admin .admin-toolbar{align-items:flex-end;box-shadow:0 4px 24px #0003;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding:16px 18px}.app-shell--admin .admin-toolbar__field{color:#94a3b8;color:var(--admin-muted);display:flex;flex-direction:column;font-size:11px;font-weight:600;gap:6px;letter-spacing:.05em;text-transform:uppercase}.app-shell--admin .admin-toolbar__field select{min-width:240px;padding:10px 14px!important}.app-shell--admin .admin-toolbar__link{font-size:14px;font-weight:600;padding:10px 0 12px;text-decoration:none!important}.app-shell--admin .gantt-hint{background:#1e293b8c!important;border:1px solid #334155!important;border:1px solid var(--admin-border)!important;border-radius:10px;color:#94a3b8!important;color:var(--admin-muted)!important;max-width:720px;padding:14px 16px!important}.app-shell--admin .gantt-hint kbd{background:#1e293b!important;background:var(--admin-surface)!important;border-color:#334155!important;border-color:var(--admin-border)!important;color:#e2e8f0!important;color:var(--admin-text)!important}.app-shell--admin .construction-gantt-viewport .gantt-mount-root>.gantt-container{background:#f1f5f9;border-color:#334155;border-color:var(--admin-border);box-shadow:inset 0 1px 0 #ffffff14,0 8px 32px #00000059}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.page-alert{font-size:14px;margin:0 0 12px}.page-alert--error{color:#b91c1c}.app-shell--admin .page-alert--error{background:#7f1d1d40;border:1px solid #b91c1c80;border-radius:8px;color:#fecaca;padding:12px 14px}.page-alert--success{color:#15803d}.app-shell--admin .page-alert--success{background:#14532d59;border:1px solid #22c55e59;border-radius:8px;color:#86efac;padding:12px 14px}.page-muted-box{color:#64748b;font-size:13px;line-height:1.5;margin-top:12px;max-width:560px}.app-shell--admin .page-muted-box{background:#1e293b73;border:1px solid #334155;border:1px solid var(--admin-border);border-radius:10px;color:#94a3b8;color:var(--admin-muted);max-width:640px;padding:14px 16px}.admin-form-add-project{align-items:flex-end;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px;margin-top:16px;padding:16px}.app-shell--admin .admin-form-add-project{background:#1e293b;background:var(--admin-surface);border-color:#334155;border-color:var(--admin-border);box-shadow:0 4px 24px #0003}.btn-primary{background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;font:inherit;padding:10px 18px}.btn-primary:disabled{background:#94a3b8;cursor:wait}.app-shell--admin .btn-primary:not(:disabled){background:linear-gradient(180deg,#0ea5e9,#0284c7);box-shadow:0 2px 12px #0ea5e959}.app-shell--admin .btn-primary:not(:disabled):hover{box-shadow:0 4px 16px #0ea5e973}.app-shell--admin .layout-main code{background:#1e293b;background:var(--admin-surface);border:1px solid #334155;border:1px solid var(--admin-border);border-radius:4px;color:#e2e8f0;font-size:.88em;padding:2px 7px}.gantt-hint{color:#475569;font-size:13px;line-height:1.55;margin:0 0 12px;max-width:720px}.gantt-hint kbd{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:4px;font-family:inherit;font-size:.9em;padding:2px 7px}.gantt-error-box{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;margin-bottom:12px;padding:16px}.app-shell--admin .gantt-error-box{background:#7f1d1d33;border-color:#991b1b;color:#fecaca}.gantt-empty-hint{color:#666;font-size:14px;margin:0;padding:8px 0}.app-shell--admin .gantt-empty-hint{color:#94a3b8;color:var(--admin-muted)}.construction-gantt-viewport{max-width:100%;min-width:0;width:100%}.construction-gantt-viewport .gantt-mount-root>.gantt-container{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box;max-height:min(85vh,920px);max-width:100%;overflow:auto;overflow-x:auto;overflow-y:auto;overscroll-behavior:contain;width:100%}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.gantt .bar-label.bar-label-pct{fill:#fff;text-anchor:middle;font-size:11px;font-weight:600;pointer-events:none}.gantt .bar-label.bar-label-name{fill:#333;text-anchor:start;font-size:12px;font-weight:500;pointer-events:none}.gantt .grid-background{fill:none}.gantt .grid-header{fill:#fff;stroke:#e0e0e0;stroke-width:1.4}.gantt .grid-row{fill:#fff}.gantt .grid-row:nth-child(2n){fill:#f5f5f5}.gantt .row-line{stroke:#ebeff2}.gantt .tick{stroke:#e0e0e0;stroke-width:.2}.gantt .tick.thick{stroke-width:.4}.gantt .today-highlight{fill:#fcf8e3;opacity:.5}.gantt .arrow{fill:none;stroke:#666;stroke-width:1.4}.gantt .bar{fill:#b8c2cc;stroke:#8d99a6;stroke-width:0;transition:stroke-width .3s ease;-webkit-user-select:none;user-select:none}.gantt .bar-progress{fill:#a3a3ff}.gantt .bar-invalid{fill:#0000;stroke:#8d99a6;stroke-width:1;stroke-dasharray:5}.gantt .bar-invalid~.bar-label{fill:#555}.gantt .bar-label{fill:#fff;dominant-baseline:central;text-anchor:middle;font-size:12px;font-weight:lighter}.gantt .bar-label.big{fill:#555;text-anchor:start}.gantt .handle{fill:#ddd;cursor:ew-resize;opacity:0;transition:opacity .3s ease;visibility:hidden}.gantt .bar-wrapper{cursor:pointer;outline:none}.gantt .bar-wrapper:hover .bar{fill:#a9b5c1}.gantt .bar-wrapper:hover .bar-progress{fill:#8a8aff}.gantt .bar-wrapper:hover .handle{opacity:1;visibility:visible}.gantt .bar-wrapper.active .bar{fill:#a9b5c1}.gantt .bar-wrapper.active .bar-progress{fill:#8a8aff}.gantt .lower-text,.gantt .upper-text{text-anchor:middle;font-size:12px}.gantt .upper-text{fill:#555}.gantt .lower-text{fill:#333}.gantt .hide{display:none}.gantt-container{font-size:12px;overflow:auto;position:relative}.gantt-container .popup-wrapper{background:#000c;border-radius:3px;color:#959da5;left:0;padding:0;position:absolute;top:0}.gantt-container .popup-wrapper .title{border-bottom:3px solid #a3a3ff;padding:10px}.gantt-container .popup-wrapper .subtitle{color:#dfe2e5;padding:10px}.gantt-container .popup-wrapper .pointer{border:5px solid #0000;border-top-color:#000c;height:5px;margin:0 0 0 -5px;position:absolute}
/*# sourceMappingURL=main.bc852e95.css.map*/