:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;font-weight:400;color:#0f172a;background-color:#f1f5f9;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,rgba(14,165,233,.15),transparent 45%),radial-gradient(circle at bottom,rgba(236,72,153,.1),transparent 45%),#e2e8f0}a{color:inherit}#root{min-height:100vh}.app{display:flex;flex-direction:column;gap:2rem;min-height:100vh;padding:clamp(1.5rem,4vw,2.5rem) clamp(1.5rem,5vw,3.5rem);color:#0f172a}.app__main{display:flex;flex-direction:column;gap:2rem}.app--login{justify-content:center;align-items:center;gap:0;background:radial-gradient(circle at top,rgba(99,102,241,.15),transparent 45%),linear-gradient(135deg,#f8fafcf2,#e2e8f0eb)}.login-card{width:min(420px,100%);padding:clamp(2rem,5vw,2.75rem);border-radius:24px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(148,163,184,.35);box-shadow:0 30px 45px -30px #0f172a59;display:flex;flex-direction:column;gap:1.5rem}.login-card__header{display:flex;flex-direction:column;gap:.75rem}.login-card__title{margin:0;font-size:clamp(1.85rem,4vw,2.2rem);font-weight:700;color:#1e293b}.login-card__subtitle{margin:0;color:#475569;font-size:.95rem;line-height:1.5}.login-card__form{display:flex;flex-direction:column;gap:1.25rem}.login-card__field{display:flex;flex-direction:column;gap:.45rem}.login-card__field label{font-size:.9rem;font-weight:600;color:#334155}.login-card__field input{width:100%;padding:.75rem 1rem;border-radius:14px;border:1px solid rgba(148,163,184,.5);background-color:#f8fafce6;color:#0f172a;font-size:.95rem;transition:border-color .2s ease,box-shadow .2s ease}.login-card__field input:focus{outline:none;border-color:#6366f18c;box-shadow:0 0 0 4px #6366f12e}.login-card__error{margin:0;font-size:.85rem;font-weight:600;color:#ef4444}.login-card__submit{padding:.85rem 1rem;border-radius:16px;border:none;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#f8fafc;font-size:1rem;font-weight:700;letter-spacing:.01em;cursor:pointer;transition:transform .18s ease,box-shadow .2s ease}.login-card__submit:hover{transform:translateY(-1px);box-shadow:0 12px 24px -16px #6366f1a6}.login-card__submit:active{transform:translateY(0);box-shadow:none}.login-card__submit:disabled{opacity:.7;cursor:not-allowed;transform:none;box-shadow:none}.app-nav{display:inline-flex;gap:.75rem;padding:.5rem;border-radius:999px;background:#94a3b82e;border:1px solid rgba(148,163,184,.3);align-self:flex-start}.app-nav-wrapper{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.app-nav__button{padding:.6rem 1.1rem;border-radius:999px;border:none;background:transparent;color:#334155;font-size:.9rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.app-nav__button:hover:not(:disabled){background:#ffffffa6;color:#1e293b}.app-nav__button:disabled{opacity:.55;cursor:not-allowed}.app-nav__button--active{background:linear-gradient(135deg,#6366f12e,#6366f173);color:#1e1b4b;box-shadow:inset 0 1px #ffffff73}.app-nav__button:focus-visible{outline:2px solid rgba(99,102,241,.45);outline-offset:2px}.app-nav__logout{padding:.55rem 1rem;border-radius:12px;border:1px solid rgba(248,113,113,.45);background:#f871711f;color:#b91c1c;font-size:.85rem;font-weight:600;cursor:pointer;transition:transform .18s ease,box-shadow .2s ease}.app-nav__logout:hover{transform:translateY(-1px);box-shadow:0 10px 18px -14px #b91c1cb3}.app-nav__logout:focus-visible{outline:2px solid rgba(248,113,113,.6);outline-offset:2px}.app__header{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1rem}.app__header h1{margin:0 0 .25rem;font-size:clamp(2rem,3vw,2.75rem);font-weight:700}.app__subtitle{margin:0;color:#475569;max-width:36rem;font-size:.95rem}.legend{display:inline-flex;align-items:center;gap:.75rem;background:#94a3b829;padding:.6rem 1rem;border-radius:999px;border:1px solid rgba(148,163,184,.4)}.legend__marker{width:10px;height:10px;border-radius:50%;display:inline-flex}.legend__marker--team{background:linear-gradient(135deg,#a855f7,#6366f1)}.legend__marker--category{background:linear-gradient(135deg,#22d3ee,#0ea5e9)}.legend__label{font-size:.8rem;color:#334155;font-weight:500}.project-map__header{display:flex;flex-direction:column;gap:.75rem}.project-map__search{display:flex;flex-direction:column;gap:.25rem}.project-map__search-controls{width:100%;max-width:clamp(600px,90vw,960px);position:relative}.project-map__search-input{width:100%;padding:.85rem 3.5rem .85rem 1rem;border-radius:999px;border:1px solid rgba(148,163,184,.6);background:#fffffff2;color:#0f172a;font-size:.95rem;box-shadow:0 16px 30px -24px #0f172a99}.project-map__search-input:focus-visible{outline:2px solid rgba(99,102,241,.4);outline-offset:3px}.project-map__search-button{position:absolute;top:50%;right:.65rem;transform:translateY(-50%);width:40px;height:40px;border-radius:999px;border:none;background:#6366f126;color:#4338ca;font-size:1rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease,transform .18s ease}.project-map__search-button:hover{transform:translateY(-50%) scale(1.05);background:#6366f140}.project-map__search-button:focus-visible{outline:2px solid rgba(99,102,241,.45);outline-offset:2px}.project-map__search-hint{font-size:.75rem;color:#94a3b8}.board{display:flex;gap:clamp(1rem,2vw,1.5rem);flex:1;border-radius:24px;padding:clamp(1rem,2.5vw,1.5rem);background:linear-gradient(135deg,#f8fafcf2,#e2e8f0d9);border:1px solid rgba(148,163,184,.4);box-shadow:inset 0 1px #ffffff80;overflow-x:auto}.board__column{display:flex;flex-direction:column;gap:.85rem;min-width:240px;padding:.75rem;border-radius:18px;background:#ffffffa6;border:1px solid rgba(148,163,184,.35);box-shadow:inset 0 1px #fff9}.board__column--droppable{transition:border-color .2s ease,box-shadow .2s ease}.board__column--droppable:hover,.board__column--droppable:focus-within{border-color:#4f46e573;box-shadow:0 20px 35px -28px #0f172a73}.board__column-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .5rem;border-bottom:1px solid rgba(148,163,184,.3)}.board__column-header-actions{display:inline-flex;align-items:center;gap:.35rem}.board__column-header h2{margin:0;font-size:1rem;font-weight:700;color:#1e293b;text-transform:uppercase;letter-spacing:.05em}.board__column-header span{display:inline-flex;align-items:center;justify-content:center;min-width:1.75rem;padding:.15rem .4rem;border-radius:999px;background:#2563eb1f;color:#2563eb;font-size:.75rem;font-weight:600}.board__header-create-button{width:1.8rem;height:1.8rem;border-radius:50%;border:1px solid rgba(59,130,246,.5);background:#3b82f61f;color:#1d4ed8;font-size:1.1rem;font-weight:700;cursor:pointer;line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease,transform .18s ease}.board__header-create-button:hover{background:#3b82f633;transform:translateY(-1px)}.board__header-create-button:active{transform:translateY(0)}.board__header-create-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.board__column-body{display:flex;flex-direction:column;gap:.85rem;min-height:4rem}.board__column-actions{margin-top:auto;padding:0 .25rem .25rem;display:flex}.board__create-button{flex:1;padding:.55rem .75rem;border-radius:14px;border:1px dashed rgba(37,99,235,.45);background:#3b82f614;color:#1d4ed8;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .18s ease}.board__create-button:hover{background:#3b82f626;border-color:#2563ebb3;transform:translateY(-1px)}.board__create-button:active{transform:translateY(0)}.board__create-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.project-card{width:100%;padding:1.25rem;border-radius:18px;background:#ffffffeb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 18px 32px -26px #0f172a8c,0 8px 16px -10px #0ea5e933;border:1px solid rgba(148,163,184,.35);cursor:grab;-webkit-user-select:none;user-select:none;transition:box-shadow .2s ease,transform .18s ease}.project-card h3{margin:0;font-size:1.15rem;color:#0f172a}.project-card__header{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}.project-card__meta{display:flex;align-items:center;justify-content:space-between;gap:.35rem;flex-wrap:wrap}.project-card__evidence{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.25rem .55rem;border-radius:999px}.project-card__evidence--present{background:#22c55e26;color:#15803d}.project-card__evidence--missing{background:#fbbf2426;color:#b45309}.project-card__description{margin:0 0 1rem;font-size:.88rem;color:#475569}.project-card__address{margin:0 0 .75rem;display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:#1e293b}.project-card__address-icon{font-size:1rem}.project-card__footer{display:flex;justify-content:space-between;align-items:flex-end;gap:.75rem;flex-wrap:wrap}.project-card__categories{display:flex;flex-wrap:wrap;gap:.4rem}.project-card__category{padding:.35rem .65rem;border-radius:999px;background:linear-gradient(135deg,#0ea5e91f,#0ea5e952);color:#0ea5e9;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.project-card__link{padding:.55rem .9rem;border-radius:12px;border:1px solid rgba(99,102,241,.35);background:#6366f114;color:#4338ca;font-size:.78rem;font-weight:600;cursor:pointer;transition:background .2s ease,transform .18s ease;text-decoration:none}.project-card__link:hover{background:#6366f124;transform:translateY(-1px)}.project-card__link:active{transform:translateY(0)}.project-card__link:focus-visible{outline:2px solid rgba(99,102,241,.45);outline-offset:2px}.card-detail{display:flex;flex-direction:column;gap:1.5rem;padding:clamp(1.5rem,3vw,2rem);border-radius:24px;background:linear-gradient(135deg,#f8fafceb,#e2e8f0d9);border:1px solid rgba(148,163,184,.4);box-shadow:inset 0 1px #ffffff80}.card-detail__title{display:flex;flex-direction:column;gap:.5rem}.card-detail__title-display{display:inline-flex;align-items:center;gap:.65rem}.card-detail__title-form{display:flex;flex-direction:column;gap:.6rem}.card-detail__title-input{font-size:clamp(1.8rem,4vw,2.2rem);font-weight:700;color:#0f172a;border:1px solid rgba(148,163,184,.6);border-radius:16px;padding:.65rem .9rem;background:#ffffffe6}.card-detail__title-actions{display:flex;gap:.5rem;flex-wrap:wrap}.card-detail__title-actions button{padding:.5rem 1rem;border-radius:10px;border:1px solid rgba(99,102,241,.4);background:#6366f11f;color:#4338ca;font-weight:600;cursor:pointer}.card-detail__title-actions button:disabled{opacity:.6;cursor:not-allowed}.card-detail__title-cancel{border-color:#94a3b899;background:#f8fafce6;color:#0f172a}.card-detail__title-edit{border:none;background:transparent;font-size:1.4rem;cursor:pointer;color:#6366f1;margin-right:auto}.card-detail__title-edit:hover{transform:translateY(-1px)}.card-detail__title-feedback{margin:0;font-size:.9rem;font-weight:600}.card-detail__title-feedback--error{color:#b91c1c}.card-detail__title-feedback--success{color:#15803d}.card-detail__back{padding:.65rem 1.1rem;border-radius:12px;border:1px solid rgba(148,163,184,.45);background:#fffc;color:#1e293b;font-size:.85rem;font-weight:600;cursor:pointer;transition:transform .18s ease,box-shadow .2s ease}.card-detail__back:hover{transform:translateY(-1px);box-shadow:0 12px 24px -20px #0f172a73}.card-detail__back:focus-visible{outline:2px solid rgba(99,102,241,.45);outline-offset:3px}.card-detail__list{display:grid;gap:1.25rem;margin:0}.card-detail__item{display:grid;gap:.35rem}.card-detail__item dt{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:#475569;font-weight:600}.card-detail__item dd{margin:0;font-size:1rem;color:#0f172a}.card-detail__tags{display:inline-flex;gap:.5rem;flex-wrap:wrap;margin:0;padding:0;list-style:none}.card-detail__tags li{padding:.4rem .75rem;border-radius:999px;background:linear-gradient(135deg,#0ea5e91f,#0ea5e952);color:#0ea5e9;font-size:.78rem;font-weight:600;letter-spacing:.02em}.card-detail__labels-editor{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.card-detail__label-option{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border-radius:999px;border:1px solid rgba(148,163,184,.45);background:#f8fafcd9;font-size:.78rem;font-weight:600;color:#334155}.card-detail__label-option input[type=checkbox]{accent-color:#4c1d95}.card-detail__placeholder{font-size:.85rem;color:#94a3b8}.card-detail__date-editor{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.card-detail__date-input{padding:.45rem .75rem;border-radius:10px;border:1px solid rgba(148,163,184,.6);background:#ffffffe6;color:#0f172a;font-size:.85rem}.card-detail__date-clear{padding:.45rem .85rem;border-radius:10px;border:1px solid rgba(248,113,113,.45);background:#f871711f;color:#b91c1c;font-size:.78rem;font-weight:600;cursor:pointer;transition:transform .18s ease}.card-detail__date-clear:disabled{opacity:.5;cursor:not-allowed;transform:none}.card-detail__date-clear:not(:disabled):hover{transform:translateY(-1px)}.card-detail__date-current{font-size:.85rem;color:#475569}.card-detail__description-form{display:flex;flex-direction:column;gap:.75rem}.card-detail__description-textarea{min-height:6rem;border-radius:14px;border:1px solid rgba(148,163,184,.6);padding:.75rem 1rem;font-size:.95rem;color:#0f172a;background:#f8fafcf2;resize:vertical}.card-detail__description-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.card-detail__description-button{padding:.65rem 1.25rem;border-radius:12px;border:1px solid rgba(59,130,246,.45);background:#3b82f61f;color:#1d4ed8;font-weight:600;font-size:.9rem;cursor:pointer;transition:transform .18s ease,background .2s ease}.card-detail__description-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.card-detail__description-button:not(:disabled):hover{transform:translateY(-1px);background:#3b82f62e}.card-detail__description-feedback{font-size:.85rem;font-weight:600;min-height:1em}.card-detail__description-feedback--error{color:#b91c1c}.card-detail__description-feedback--success{color:#15803d}.card-detail__address-form{display:flex;flex-direction:column;gap:.75rem}.card-detail__address-input{border-radius:12px;border:1px solid rgba(148,163,184,.6);padding:.55rem .85rem;font-size:.95rem;color:#0f172a;background:#ffffffe6}.card-detail__danger-zone{margin-top:2rem;padding:1.5rem;border:1px solid rgba(248,113,113,.4);border-radius:18px;background:#f8fafce6;display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem}.card-detail__danger-zone h3{margin:0 0 .25rem;color:#991b1b}.card-detail__danger-zone p{margin:0;color:#7f1d1d;font-size:.9rem}.card-detail__danger-actions{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}.card-detail__danger-button{padding:.65rem 1.3rem;border-radius:12px;border:1px solid rgba(239,68,68,.6);background:#ef444433;color:#b91c1c;font-weight:700;cursor:pointer;transition:transform .18s ease,background .2s ease}.card-detail__danger-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.card-detail__danger-button:not(:disabled):hover{transform:translateY(-1px);background:#ef44444d}.card-detail__danger-error{color:#b91c1c;font-weight:600;font-size:.85rem}.card-detail__reports{margin-top:2rem;border-radius:24px;background:#ffffffeb;border:1px solid rgba(148,163,184,.35);padding:1.75rem;box-shadow:0 18px 36px -32px #0f172aa6;display:flex;flex-direction:column;gap:1rem}.card-detail__reports-header{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}.card-detail__reports-header h2{margin:0;font-size:1.35rem;color:#0f172a}.card-detail__reports-header p{margin:.35rem 0 0;color:#475569}.card-detail__reports-refresh{align-self:flex-start;padding:.55rem 1rem;border-radius:12px;border:1px solid rgba(79,70,229,.35);background:#4f46e51a;color:#4338ca;font-weight:600;cursor:pointer;transition:background .2s ease,transform .18s ease}.card-detail__reports-refresh:disabled{opacity:.6;cursor:not-allowed;transform:none}.card-detail__reports-refresh:not(:disabled):hover{background:#4f46e52e;transform:translateY(-1px)}.card-detail__reports-feedback{margin:0;padding:.75rem 1rem;border-radius:12px;font-weight:600;font-size:.9rem}.card-detail__reports-feedback--error{background:#f871711f;border:1px solid rgba(248,113,113,.35);color:#b91c1c}.card-detail__reports-feedback--success{background:#86efac26;border:1px solid rgba(34,197,94,.35);color:#15803d}.card-detail__reports-list{display:flex;flex-direction:column;gap:1rem}.card-detail__reports-empty{margin:0;padding:1rem;border-radius:12px;background:#f8fafce6;color:#64748b;text-align:center}.card-report{display:flex;gap:1rem;border:1px solid rgba(226,232,240,.9);border-radius:18px;padding:1rem;align-items:stretch;flex-wrap:wrap}.card-report__preview{width:120px;height:120px;border-radius:14px;overflow:hidden;background:#e2e8f099;display:flex;align-items:center;justify-content:center}.card-report__preview img{width:100%;height:100%;object-fit:cover}.card-report__file-icon{font-weight:700;color:#334155;font-size:1.1rem}.card-report__content{flex:1;min-width:200px;display:flex;flex-direction:column;gap:.35rem}.card-report__name{margin:0;font-weight:700;color:#0f172a}.card-report__comment{margin:0;color:#475569;font-size:.95rem}.card-report__link{font-weight:600;color:#4338ca;text-decoration:none}.card-report__link:hover{text-decoration:underline}.card-report__link-button{padding:0;border:none;background:transparent;font-weight:600;color:#4338ca;cursor:pointer;text-align:left}.card-report__link-button:disabled{opacity:.6;cursor:not-allowed}.card-report__link-button:not(:disabled):hover{text-decoration:underline}.card-report__meta{color:#94a3b8;font-size:.8rem}.card-report__actions{display:flex;flex-direction:column;gap:.5rem}.card-report__action{position:relative;padding:.45rem .9rem;border-radius:10px;border:none;font-size:.8rem;font-weight:600;cursor:pointer;color:#0f172a;background:#e2e8f0b3;text-align:center;transition:background .2s ease,opacity .2s ease}.card-report__action input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.card-report__action--secondary{background:#3b82f62e;color:#1d4ed8}.card-report__action--danger{background:#f871712e;color:#b91c1c}.card-report__action:disabled{opacity:.5;cursor:not-allowed}.card-detail__reports-form{border-top:1px solid rgba(226,232,240,.9);padding-top:1rem;display:flex;flex-direction:column;gap:.75rem}.card-detail__reports-form h3{margin:0 0 .5rem;font-size:1.1rem;color:#0f172a}.card-detail__reports-field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:#475569}.card-detail__reports-field textarea,.card-detail__reports-field input[type=file]{border-radius:12px;border:1px solid rgba(148,163,184,.6);padding:.65rem .85rem;font-size:.9rem;background:#f8fafce6}.card-detail__reports-field textarea:disabled,.card-detail__reports-field input:disabled{opacity:.6;cursor:not-allowed}.card-detail__reports-actions{display:flex;justify-content:flex-end}.card-detail__reports-actions button{padding:.65rem 1.5rem;border-radius:12px;border:1px solid rgba(79,70,229,.35);background:#4f46e526;color:#4338ca;font-weight:700;cursor:pointer;transition:background .2s ease,transform .18s ease}.card-detail__reports-actions button:disabled{opacity:.6;cursor:not-allowed;transform:none}.card-detail__reports-actions button:not(:disabled):hover{background:#4f46e53d;transform:translateY(-1px)}.project-card--dragging{cursor:grabbing;opacity:.85;box-shadow:0 25px 45px -26px #0f172a99,0 18px 28px -16px #4f46e559;transform:scale(1.02)}.role-manager,.directory-manager{display:flex;flex-direction:column;gap:1.5rem}.role-manager__header,.directory-manager__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.role-manager__subtitle,.directory-manager__subtitle{margin:.35rem 0 0;color:#475569;font-size:.95rem;max-width:520px}.role-manager__actions,.directory-manager__actions{display:flex;align-items:center;gap:.75rem}.role-manager__refresh,.directory-manager__refresh{padding:.6rem 1.1rem;border-radius:12px;border:1px solid rgba(79,70,229,.35);background:#4f46e51a;color:#4338ca;font-size:.84rem;font-weight:600;cursor:pointer;transition:background .2s ease,transform .18s ease}.role-manager__refresh:hover:not(:disabled),.directory-manager__refresh:hover:not(:disabled){background:#4f46e529;transform:translateY(-1px)}.role-manager__refresh:disabled,.directory-manager__refresh:disabled{cursor:not-allowed;opacity:.6;transform:none}.role-manager__feedback,.directory-manager__feedback{margin:0;padding:.75rem 1rem;border-radius:12px;font-size:.85rem;font-weight:600}.role-manager__feedback--error,.directory-manager__feedback--error{background:#f871711f;border:1px solid rgba(248,113,113,.35);color:#b91c1c}.role-manager__feedback--success,.directory-manager__feedback--success{background:#86efac26;border:1px solid rgba(34,197,94,.35);color:#15803d}.role-manager__table-wrapper,.directory-manager__table-wrapper{border-radius:20px;background:#ffffffdb;border:1px solid rgba(148,163,184,.35);box-shadow:0 20px 40px -30px #0f172a8c;overflow-x:auto}.role-manager__table,.directory-manager__table{width:100%;border-collapse:collapse;min-width:520px}.role-manager__table th,.role-manager__table td,.directory-manager__table th,.directory-manager__table td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid rgba(226,232,240,.65)}.role-manager__table th,.directory-manager__table th{font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:#475569;font-weight:700;background:#f1f5f9bf}.role-manager__table tr:last-child td,.directory-manager__table tr:last-child td{border-bottom:none}.role-manager__cell{text-align:center}.role-manager__checkbox{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font-size:.78rem;font-weight:600;color:#334155}.role-manager__checkbox input[type=checkbox]{width:18px;height:18px;accent-color:#6366f1}.role-manager__status-button{padding:.4rem .9rem;border-radius:999px;border:1px solid rgba(148,163,184,.5);background:#f8fafce6;font-size:.78rem;font-weight:600;cursor:pointer;transition:background .2s ease,transform .18s ease}.role-manager__status-button--active{border-color:#22c55e80;color:#15803d;background:#86efac26}.role-manager__status-button--inactive{border-color:#f8717180;color:#b91c1c;background:#f8717126}.role-manager__status-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.role-manager__status-button:not(:disabled):hover{transform:translateY(-1px)}.role-manager__password-control{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;justify-content:center}.role-manager__password-input{padding:.4rem .65rem;border-radius:10px;border:1px solid rgba(148,163,184,.6);font-size:.78rem;min-width:160px}.role-manager__password-button{padding:.4rem .8rem;border-radius:10px;border:1px solid rgba(59,130,246,.35);background:#3b82f61f;color:#1d4ed8;font-weight:600;font-size:.78rem;cursor:pointer;transition:transform .18s ease,background .2s ease}.role-manager__password-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.role-manager__password-button:not(:disabled):hover{transform:translateY(-1px)}.role-manager__password-locked{font-size:.78rem;color:#94a3b8}.directory-manager__form{border-radius:20px;border:1px solid rgba(148,163,184,.35);background:#ffffffeb;padding:1.5rem;box-shadow:0 16px 32px -28px #0f172aa6;display:flex;flex-direction:column;gap:1rem}.directory-manager__form-row{display:flex;flex-wrap:wrap;gap:1rem}.directory-manager__field{flex:1;display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;color:#475569}.directory-manager__field span{font-weight:600}.directory-manager__field input,.directory-manager__field textarea{border-radius:12px;border:1px solid rgba(148,163,184,.6);padding:.65rem .85rem;font-size:.9rem;color:#0f172a;background:#f8fafce6;resize:vertical}.directory-manager__field input:disabled,.directory-manager__field textarea:disabled{opacity:.6;cursor:not-allowed}.directory-manager__form-actions{display:flex;justify-content:flex-end;gap:.75rem}.directory-manager__button{padding:.65rem 1.4rem;border-radius:12px;border:1px solid rgba(79,70,229,.35);background:#4f46e51a;color:#4338ca;font-weight:700;font-size:.85rem;cursor:pointer;transition:background .2s ease,transform .18s ease}.directory-manager__button--ghost{background:#f8fafccc;color:#0f172a;border-color:#94a3b899}.directory-manager__button:disabled{opacity:.6;cursor:not-allowed;transform:none}.directory-manager__button:not(:disabled):hover{transform:translateY(-1px)}.directory-manager__empty{text-align:center;color:#64748b;font-style:italic}.directory-manager__actions-cell{display:flex;gap:.35rem;flex-wrap:wrap}.directory-manager__action{border:none;border-radius:10px;padding:.4rem .8rem;font-size:.78rem;font-weight:600;cursor:pointer;background:#3b82f633;color:#1d4ed8;transition:background .2s ease,opacity .2s ease}.directory-manager__action--danger{background:#f871712e;color:#b91c1c}.directory-manager__action:disabled{opacity:.5;cursor:not-allowed}.directory-manager__action:not(:disabled):hover{background:#3b82f64d}.directory-manager__action--danger:not(:disabled):hover{background:#f871714d}.assignments-control{display:flex;flex-direction:column;gap:.4rem}.assignments-control--compact,.assignments-control--compact .assignments-control__chips{gap:.25rem}.assignments-control--compact .assignments-control__select{padding:.35rem .55rem;font-size:.72rem}.assignments-control__chips{display:flex;flex-wrap:wrap;gap:.35rem}.assignments-control__tag{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border-radius:999px;background:#7c3aed24;color:#6d28d9;font-size:.72rem;font-weight:600;letter-spacing:.02em}.assignments-control__placeholder{color:#94a3b8;font-size:.78rem}.assignments-control__remove{background:transparent;border:none;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#6d28d9;cursor:pointer}.assignments-control__remove:hover{color:#4c1d95}.assignments-control__remove:focus-visible{outline:2px solid rgba(124,58,237,.4);border-radius:50%}.assignments-control__select{width:100%;padding:.45rem .75rem;border-radius:10px;border:1px solid rgba(148,163,184,.6);background:#ffffffd9;color:#334155;font-size:.8rem}.project-card__due-date{align-self:flex-start;font-size:.75rem;font-weight:600;color:#f97316;text-transform:uppercase;letter-spacing:.04em}.modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:99}.modal__overlay{position:absolute;inset:0;background:#0f172a8c}.modal__content{position:relative;width:min(420px,90%);background:#fff;border-radius:20px;padding:1.5rem;box-shadow:0 35px 55px -40px #0f172ae6;z-index:1;display:flex;flex-direction:column;gap:1rem}.modal__header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.modal__header h3{margin:0;font-size:1.25rem;color:#0f172a}.modal__close-button{border:none;background:transparent;font-size:1.5rem;cursor:pointer;color:#94a3b8}.modal__form{display:flex;flex-direction:column;gap:.85rem}.modal__field{display:flex;flex-direction:column;gap:.35rem}.modal__field label{font-size:.85rem;font-weight:600;color:#475569}.modal__field input,.modal__field textarea{border-radius:12px;border:1px solid rgba(148,163,184,.55);padding:.6rem .85rem;font-size:.9rem;color:#0f172a;background:#f8fafce6}.modal__field :disabled{background:#e2e8f080;cursor:not-allowed}.modal__actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.modal__button{padding:.65rem 1.2rem;border-radius:12px;border:1px solid rgba(79,70,229,.45);background:#4f46e526;color:#4338ca;font-weight:700;cursor:pointer;transition:background .2s ease,transform .18s ease}.modal__button--ghost{background:#f8fafce6;border-color:#94a3b88c;color:#1e293b}.modal__button:disabled{opacity:.6;cursor:not-allowed;transform:none}.modal__button:not(:disabled):hover{transform:translateY(-1px)}.modal__error{margin:0;color:#dc2626;font-size:.85rem;font-weight:600}@media(max-width:768px){.app--login{padding:clamp(1.5rem,6vw,2rem)}.login-card{padding:1.75rem;border-radius:20px}.board{padding:1rem;gap:1rem;border-radius:18px}.board__column{min-width:220px}.project-card{padding:1rem}}
