:root{--color-bg:#f4f6f8;--color-surface:#fff;--color-border:#dde3e8;--color-text:#1c2733;--color-text-muted:#5c6b78;--color-primary:#0b5ea8;--color-primary-dark:#084a86;--color-danger:#c92a2a;--color-danger-hover:#a61e1e;--color-input-bg:#fff;--color-surface-hover:#eef1f4;--color-list-hover:#f1f5f9;--color-selected-bg:#e7f1fb;--color-error-bg:#fff0f0;--color-error-border:#ffd6d6;--color-warn-bg:#fff4e6;--color-warn-border:#ffd8a8;--color-warn-text:#d9480f;--color-warn-hover:#ffe8cc;--color-row-border:#f0f2f4;--color-success:#2b8a3e;--color-success-bg:#ebfbee;--color-success-border:#b2f2bb;--stage-application:#4263eb;--stage-awaiting_award:#e8590c;--stage-awarded_ongoing:#2b8a3e;--stage-finished:#495057;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Segoe UI,system-ui,-apple-system,sans-serif}:root[data-theme=dark]{--color-bg:#10161d;--color-surface:#1a222c;--color-border:#2c3947;--color-text:#e4e9ee;--color-text-muted:#93a1af;--color-primary:#3b8fd9;--color-primary-dark:#2477c2;--color-danger:#e03131;--color-danger-hover:#c92a2a;--color-input-bg:#141c24;--color-surface-hover:#232e3a;--color-list-hover:#202a35;--color-selected-bg:#16324a;--color-error-bg:#3a1d1d;--color-error-border:#5c2b2b;--color-warn-bg:#3a2a15;--color-warn-border:#5c4423;--color-warn-text:#ffa94d;--color-warn-hover:#4a3319;--color-row-border:#232e3a;--color-success:#69db7c;--color-success-bg:#16301c;--color-success-border:#2b5233;--stage-application:#6f8bf5;--stage-awaiting_award:#f0873a;--stage-awarded_ongoing:#69db7c;--stage-finished:#a8b3bd;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text)}button{cursor:pointer;font:inherit;background:var(--color-primary);color:#fff;border:none;border-radius:6px;padding:.5rem .9rem;transition:background .15s}button:hover{background:var(--color-primary-dark)}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{background:var(--color-input-bg);color:var(--color-text);border:1px solid var(--color-border)}button.secondary:hover{background:var(--color-surface-hover)}button.danger{background:var(--color-danger)}button.danger:hover{background:var(--color-danger-hover)}input,select,textarea{font:inherit;border:1px solid var(--color-border);background:var(--color-input-bg);color:var(--color-text);border-radius:6px;padding:.45rem .6rem}textarea{resize:vertical}label{color:var(--color-text-muted);flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:600;display:flex}.form-error{color:var(--color-danger);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:6px;padding:.5rem .7rem;font-size:.85rem}.form-success{color:var(--color-success);background:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:6px;padding:.5rem .7rem;font-size:.85rem}.page-loading{height:100%;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.login-page{background:linear-gradient(160deg,#0b5ea8,#0a3d63);justify-content:center;align-items:center;height:100%;display:flex;position:relative}:root[data-theme=dark] .login-page{background:linear-gradient(160deg,#0a2f4f,#071c2c)}.login-toggles{position:absolute;top:1rem;right:1rem}.login-toggles .lang-switch{background:#ffffff1f;border-color:#ffffff59}.login-toggles .lang-switch button{color:#fff}.login-toggles .theme-toggle{border-color:#ffffff59}.login-footer{position:absolute;bottom:0;left:0;right:0}.login-footer .app-footer{color:#ffffffd9;background:0 0;border-top:none;justify-content:center}.login-footer .app-footer a{color:#fff}.login-card{background:var(--color-surface);border-radius:12px;flex-direction:column;gap:1rem;width:340px;padding:2.5rem;display:flex;box-shadow:0 12px 40px #00000040}.login-logo{align-self:center;height:40px}:root[data-theme=dark] .login-logo,:root[data-theme=dark] .app-header-brand img{filter:brightness(0)invert()}.login-card h1{text-align:center;margin:0;font-size:1.1rem}.login-subtitle{text-align:center;color:var(--color-text-muted);margin:-.5rem 0 .5rem;font-size:.85rem}.login-hint{color:var(--color-text-muted);margin:0;font-size:.82rem}.login-alt-action{color:var(--color-text-muted);text-align:center;margin:.2rem 0 0;font-size:.85rem}.link-button{color:var(--color-primary);background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.link-button:hover{color:var(--color-primary-dark);background:0 0}.app-shell{flex-direction:column;height:100%;display:flex}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);align-items:center;gap:2rem;padding:.6rem 1.2rem;display:flex}.app-header-brand{align-items:center;gap:.6rem;font-weight:700;display:flex}.app-header-brand img{height:26px}.app-header-nav{flex:1;gap:1rem;display:flex}.app-header-nav a{color:var(--color-text-muted);border-bottom:2px solid #0000;padding:.3rem .1rem;font-weight:600;text-decoration:none}.app-header-nav a.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.app-header-user{align-items:center;gap:.8rem;font-size:.9rem;display:flex}.app-header-user em{color:var(--color-text-muted);font-style:normal}.app-header-profile{color:inherit;border-bottom:2px solid #0000;padding:.3rem .1rem;text-decoration:none}.app-header-profile:hover{color:var(--color-primary)}.app-header-profile.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.app-main{flex:1;overflow:hidden}.ui-toggles{align-items:center;gap:.4rem;display:flex}.lang-switch{border:1px solid var(--color-border);border-radius:6px;display:flex;overflow:hidden}.lang-switch button{color:var(--color-text-muted);background:0 0;border-radius:0;padding:.25rem .5rem;font-size:.8rem;font-weight:600}.lang-switch button:hover{background:var(--color-surface-hover)}.lang-switch button.active{background:var(--color-primary);color:#fff}.theme-toggle{border:1px solid var(--color-border);background:0 0;padding:.25rem .45rem;font-size:.9rem;line-height:1}.theme-toggle:hover{background:var(--color-surface-hover)}.app-footer{background:var(--color-surface);border-top:1px solid var(--color-border);color:var(--color-text-muted);flex-wrap:wrap;justify-content:space-between;gap:.3rem 1.5rem;padding:.45rem 1.2rem;font-size:.78rem;display:flex}.app-footer a{color:var(--color-primary);text-decoration:none}.app-footer a:hover{text-decoration:underline}.board-page{flex-direction:column;height:100%;padding:1.2rem 1.5rem;display:flex}.board-toolbar{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.board-toolbar input[type=search],.board-toolbar select{flex:0 220px}.board-toolbar-spacer{flex:1}.board-columns{flex:1;grid-template-columns:repeat(4,minmax(240px,320px));justify-content:center;gap:1rem;min-height:0;display:grid;overflow:auto hidden}.board-column{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.board-column.drag-over{outline:2px dashed var(--color-primary);outline-offset:-2px}.board-column-header{border-bottom:1px solid var(--color-border);border-top:3px solid var(--stage-color,var(--color-primary));align-items:center;gap:.5rem;padding:.7rem .9rem;display:flex}.board-column-header h2{flex:1;margin:0;font-size:.92rem}.board-column-count{color:var(--color-text-muted);background:var(--color-selected-bg);border-radius:999px;padding:.1rem .5rem;font-size:.78rem;font-weight:700}.board-column-body{flex-direction:column;flex:1;gap:.6rem;padding:.6rem;display:flex;overflow-y:auto}.board-column-empty{color:var(--color-text-muted);text-align:center;padding:1rem .5rem;font-size:.82rem}.project-card{background:var(--color-input-bg);border:1px solid var(--color-border);border-left:4px solid var(--stage-color,var(--color-primary));cursor:grab;text-align:left;width:100%;color:var(--color-text);border-radius:8px;flex-direction:column;gap:.35rem;padding:.65rem .75rem;display:flex}.project-card:hover{background:var(--color-list-hover)}.project-card.dragging{opacity:.5}.project-card-title{font-size:.92rem;font-weight:700}.project-card-customer{color:var(--color-text-muted);font-size:.8rem}.project-card-chips{flex-wrap:wrap;gap:.3rem;display:flex}.chip{background:var(--color-selected-bg);color:var(--color-primary);border:1px solid #0000;border-radius:999px;padding:.1rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.chip.equipment{background:var(--color-surface-hover);color:var(--color-text-muted)}.project-card-dates{color:var(--color-text-muted);font-size:.75rem}.project-card-location{color:var(--color-text-muted);font-size:.75rem;font-style:italic}.modal-overlay{z-index:50;background:#0a0f1473;justify-content:center;align-items:center;padding:2.5rem 1.5rem;display:flex;position:fixed;inset:0}.modal-panel{background:var(--color-surface);border-radius:14px;flex-direction:column;gap:1rem;width:min(820px,100%);max-height:100%;padding:1.75rem 2rem;display:flex;overflow-y:auto;box-shadow:0 24px 70px #0000004d}.modal-panel-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.modal-panel-header h2{margin:0}.modal-form-grid{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.modal-form-grid .span-2{grid-column:1/-1}.modal-actions{border-top:1px solid var(--color-border);justify-content:flex-end;gap:.5rem;padding-top:.5rem;display:flex}.checkbox-chip-group{flex-wrap:wrap;gap:.4rem;display:flex}.checkbox-chip-group label{color:var(--color-text);border:1px solid var(--color-border);background:var(--color-input-bg);border-radius:999px;flex-direction:row;align-items:center;gap:.35rem;padding:.25rem .65rem .25rem .5rem;font-size:.82rem;font-weight:400}.checkbox-chip-group label:has(input:checked){background:var(--color-selected-bg);border-color:var(--color-primary);color:var(--color-primary)}.survey-type-group{margin-bottom:.6rem}.survey-type-group-label{text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);margin-bottom:.3rem;font-size:.75rem}.stage-history-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.stage-history-list li{background:var(--color-list-hover);border-radius:6px;padding:.4rem .5rem;font-size:.82rem}.stage-history-meta{color:var(--color-text-muted);font-size:.75rem}.inline-add-form{flex-wrap:wrap;align-items:flex-start;gap:.4rem;margin-top:.4rem;display:flex}.inline-add-form input{flex:140px;min-width:0}.comments-list{flex-direction:column;gap:.5rem;margin:0 0 .8rem;padding:0;list-style:none;display:flex}.comments-list li{background:var(--color-list-hover);border-radius:8px;padding:.5rem .6rem;font-size:.85rem}.comment-body{white-space:pre-wrap;margin-bottom:.25rem}.comments-list .stage-history-meta{align-items:center;gap:.5rem;display:flex}.comments-list .link-button{font-size:.75rem;font-weight:400}.comment-form{flex-direction:column;align-items:flex-end;gap:.5rem;display:flex}.comment-form textarea{width:100%}.attachments-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.attachments-list li{border-bottom:1px solid var(--color-row-border);align-items:center;gap:.5rem;padding:.35rem 0;font-size:.85rem;display:flex}.attachments-list li a{min-width:0;color:var(--color-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;text-decoration:none;overflow:hidden}.attachment-thumb{object-fit:cover;background:var(--color-selected-bg);border-radius:4px;flex-shrink:0;width:36px;height:36px}.attachment-upload-form{flex-wrap:wrap;gap:.4rem;margin-top:.6rem;display:flex}.attachment-upload-form input[type=text]{flex:140px}.admin-page{height:100%;padding:1.5rem 2rem;overflow-y:auto}.admin-page section{margin-bottom:2.5rem}.lookup-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.lookup-manager{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:1rem}.lookup-manager h3{margin-top:0}.lookup-list{flex-direction:column;gap:.3rem;margin:0 0 .8rem;padding:0;list-style:none;display:flex}.lookup-list li{border-bottom:1px solid var(--color-row-border);justify-content:space-between;align-items:center;padding:.3rem 0;font-size:.88rem;display:flex}.lookup-list li button{color:var(--color-danger);background:0 0;padding:.1rem .4rem}.lookup-list li button:hover{background:var(--color-error-bg)}.lookup-empty{color:var(--color-text-muted)}.lookup-category{color:var(--color-text-muted);margin-left:.3rem;font-weight:400}.lookup-add-form{flex-wrap:wrap;gap:.4rem;display:flex}.lookup-add-form input{flex:120px;min-width:0}.data-table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;width:100%;overflow:hidden}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:.6rem .8rem;font-size:.88rem}.data-table tr.row-inactive{opacity:.55}.user-add-form{flex-wrap:wrap;gap:.5rem;margin-top:.8rem;display:flex}.profile-page{max-width:480px;height:100%;padding:1.5rem 2rem;overflow-y:auto}.profile-page section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;flex-direction:column;gap:.8rem;margin-bottom:1.2rem;padding:1.2rem;display:flex}.profile-page h2{margin:0;font-size:1rem}.profile-page h3{margin:0;font-size:.95rem}.detail-fields{grid-template-columns:auto 1fr;gap:.3rem .8rem;margin:0;font-size:.88rem;display:grid}.detail-fields dt{color:var(--color-text-muted)}.detail-fields dd{margin:0}.stacked-form{flex-direction:column;gap:.7rem;display:flex}.form-actions{justify-content:flex-end;gap:.5rem;display:flex}.muted{color:var(--color-text-muted);font-size:.8rem}.calendar-page{gap:1.2rem;height:100%;padding:1.2rem 1.5rem;display:flex;overflow-y:auto}.calendar-main{flex-direction:column;flex:1;min-width:0;display:flex}.calendar-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.8rem;display:flex}.calendar-nav{align-items:center;gap:.5rem;display:flex}.calendar-nav h2{text-align:center;text-transform:capitalize;min-width:11ch;margin:0;font-size:1.15rem}.calendar-legend{color:var(--color-text-muted);flex-wrap:wrap;gap:.4rem 1.2rem;margin-bottom:.8rem;font-size:.8rem;display:flex}.calendar-legend>span{align-items:center;gap:.35rem;display:inline-flex}.cal-chip-demo{border-radius:3px;width:12px;height:12px;display:inline-block}.calendar-grid{border:1px solid var(--color-border);background:var(--color-border);border-radius:10px;grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.calendar-weekday{background:var(--color-surface);text-transform:capitalize;color:var(--color-text-muted);text-align:center;padding:.4rem .5rem;font-size:.75rem;font-weight:700}.calendar-cell{background:var(--color-surface);flex-direction:column;gap:.25rem;min-height:84px;padding:.3rem .35rem;display:flex}.calendar-cell-outside{background:var(--color-bg)}.calendar-cell-outside .calendar-day-number{opacity:.45}.calendar-cell-today .calendar-day-number{background:var(--color-primary);color:#fff}.calendar-day-number{border-radius:999px;align-self:flex-start;padding:.1rem .35rem;font-size:.75rem;font-weight:600}.calendar-cell-events{flex-direction:column;gap:2px;display:flex;overflow:hidden}.cal-chip{text-align:left;white-space:nowrap;text-overflow:ellipsis;background:var(--color-selected-bg);width:100%;color:var(--stage-color,var(--color-primary));border:1px solid #0000;border-color:var(--stage-color,var(--color-primary));border-radius:4px;padding:.12rem .35rem;font-size:.7rem;font-weight:600;display:block;overflow:hidden}button.cal-chip:hover{background:var(--color-surface-hover)}.calendar-hint{color:var(--color-text-muted);margin-top:.8rem;font-size:.8rem}.calendar-upcoming{flex-shrink:0;width:290px}.calendar-upcoming h3{text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);margin:0 0 .6rem;font-size:.9rem}.calendar-upcoming ul{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.cal-upcoming-item{text-align:left;border-left:3px solid var(--stage-color,var(--color-primary));background:var(--color-list-hover);border-radius:8px;flex-direction:column;gap:.1rem;width:100%;padding:.4rem .6rem;font-size:.8rem;display:flex}.cal-upcoming-date{font-size:.75rem;font-weight:700}.cal-upcoming-name{color:var(--color-text);font-weight:600}@media (width<=900px){.calendar-page{flex-direction:column}.calendar-upcoming{width:auto}.board-columns{grid-template-columns:1fr;overflow-y:auto}}
