*{box-sizing:border-box}body{margin:0;min-height:100vh}a{text-decoration:none;color:inherit}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 800px at 20% 10%,#1a1c1f,#0f1113 45%,#0b0c0e);color:#e9e9e9;font-family:Segoe UI,system-ui,sans-serif;padding:24px}.login-form{width:100%;max-width:360px;display:flex;flex-direction:column;gap:18px}.login-form--narrow{max-width:320px}.login-form__title{margin:0 0 8px;font-size:24px;font-weight:600;letter-spacing:-.02em;text-align:center}.login-form__label{display:flex;flex-direction:column;gap:8px}.login-form__label-text{font-size:13px;color:#9ca3af}.login-form__input{width:100%;padding:12px 14px;font-size:16px;color:#f5f5f5;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;outline:none;transition:border-color .2s,background .2s}.login-form__input::placeholder{color:#6b7280}.login-form__input:focus{border-color:#ffffff4d;background:#ffffff14}.login-form__btn{padding:14px 20px;font-size:15px;font-weight:600;color:#0f1113;background:#e9e9e9;border:none;border-radius:10px;cursor:pointer;transition:background .2s,transform .1s;margin-top:4px}.login-form__btn:hover{background:#fff}.login-form__btn:active{transform:scale(.98)}.login-form__error{padding:10px 12px;font-size:13px;color:#f0c5c5;background:#aa373733;border:1px solid rgba(170,55,55,.4);border-radius:8px;text-align:center}.login-form__code-row{display:flex;gap:8px;justify-content:center}.login-form__code-input{width:44px;height:52px;padding:0;font-size:22px;font-weight:600;text-align:center;color:#f5f5f5;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;outline:none;transition:border-color .2s,background .2s}.login-form__code-input:focus{border-color:#ffffff59;background:#ffffff14}.login-form__btn:disabled{opacity:.5;cursor:not-allowed}.users-table-wrap{width:100%;overflow-x:auto;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:#0a0c0e59}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:14px 16px;text-align:left;border-bottom:1px solid rgba(255,255,255,.06);font-size:14px}.users-table th{font-weight:600;color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;font-size:12px}.users-table tr:last-child td{border-bottom:none}.users-table .users-table__cell--muted{color:#6b7280}.users-table__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.btn{padding:8px 14px;font-size:13px;font-weight:500;border-radius:8px;cursor:pointer;border:1px solid transparent;transition:background .2s,border-color .2s;font-family:inherit}.btn--secondary{background:#ffffff0f;color:#e5e7eb;border-color:#ffffff1f}.btn--secondary:hover{background:#ffffff1a;border-color:#fff3}.btn--danger{background:#aa373726;color:#f0c5c5;border-color:#aa373766}.btn--danger:hover{background:#aa373740;border-color:#aa373799}.btn--deactivate{background:#f59e0b1f;color:#fbbf24;border-color:#f59e0b66}.btn--deactivate:hover{background:#f59e0b38;border-color:#f59e0b99}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;padding:24px;animation:modalFadeIn .2s ease}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:#111318;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px;width:100%;max-width:420px;box-shadow:0 24px 48px #0006;animation:modalSlideIn .25s ease}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.96) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes itogi-spin{to{transform:rotate(360deg)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08)}.modal-title{margin:0;font-size:20px;font-weight:600;letter-spacing:-.02em}.modal-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#9ca3af;font-size:24px;line-height:1;cursor:pointer;border-radius:8px;transition:background .2s,color .2s}.modal-close:hover{background:#ffffff14;color:#e5e7eb}.modal-form{display:flex;flex-direction:column;gap:18px}.modal-field{display:flex;flex-direction:column;gap:8px}.modal-field-text{color:#f3f4f6;font-size:15px}.modal-field-text--multiline{white-space:pre-wrap;word-break:break-word}.modal-field label{font-size:13px;font-weight:500;color:#9ca3af}.modal-field input,.modal-field select,.modal-field textarea{width:100%;padding:12px 14px;font-size:15px;color:#e5e7eb;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;outline:none;font-family:inherit;transition:border-color .2s,background .2s}.modal-field input[readonly],.modal-field input:disabled,.modal-field select:disabled,.modal-field textarea[readonly],.modal-field-input-readonly{background:#fff0!important;cursor:default;opacity:1}.modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus{border-color:#ffffff40;background:#ffffff0f}.modal-field input[readonly]:focus,.modal-field input:disabled:focus,.modal-field select:disabled:focus,.modal-field textarea[readonly]:focus{background:#fff0}.modal-field select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#ffffff0f;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%239ca3af' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}.modal-field-select-wrap{position:relative;width:100%}.modal-field-select-trigger{width:100%;padding:12px 40px 12px 14px;font-size:15px;color:#e5e7eb;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:10px;outline:none;font-family:inherit;text-align:left;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.modal-field-select-trigger:hover{border-color:#fff3;background:#ffffff0f}.modal-field-select-arrow{color:#9ca3af;font-size:10px;flex-shrink:0}.modal-field-select-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;max-height:220px;overflow-y:auto;background:#111318;border:1px solid rgba(255,255,255,.15);border-radius:10px;box-shadow:0 8px 24px #0006;z-index:10;padding:6px 0}.modal-field-select-option{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;font-size:14px;color:#f3f4f6}.modal-field-select-option:hover{background:#ffffff0f}.modal-field-select-option input[type=checkbox]{width:16px;height:16px;flex-shrink:0;cursor:pointer}.modal-field-select-option-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-field select option{background:#1a1d24;color:#e5e7eb;padding:10px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}.modal-actions .btn--primary{background:#e9e9e9;color:#0f1113;border:none;padding:10px 20px;font-weight:600}.modal-actions .btn--primary:hover{background:#fff}.modal-actions .btn--ghost{background:transparent;color:#9ca3af;border:1px solid rgba(255,255,255,.12)}.modal-actions .btn--ghost:hover{color:#e5e7eb;border-color:#fff3}.modal-error{padding:10px 12px;font-size:13px;color:#f0c5c5;background:#aa373726;border:1px solid rgba(170,55,55,.3);border-radius:8px}.modal-textarea{color:#e5e7eb;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);resize:vertical;min-height:80px}.modal-card--wide{max-width:480px}.kanban-page{padding:0;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.kanban-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px}.kanban-board{flex:1;min-height:0;display:flex;gap:16px;overflow:auto;padding-bottom:16px;align-items:flex-start;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.kanban-board::-webkit-scrollbar{width:8px;height:8px}.kanban-board::-webkit-scrollbar-track{background:transparent}.kanban-board::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:4px}.kanban-board::-webkit-scrollbar-thumb:hover{background:#ffffff59}.kanban-column{flex:0 0 280px;background:#0a0c0e66;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;min-height:120px;transition:border-color .2s,background .2s}.kanban-column--drop{border-color:#ffffff40;background:#ffffff0f}.kanban-column--dragging{opacity:.7}.kanban-column-header{display:flex;align-items:center;justify-content:space-between;padding:8px 4px 12px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:12px;cursor:grab;-webkit-user-select:none;user-select:none}.kanban-column-header:active{cursor:grabbing}.kanban-column-title{font-weight:600;font-size:15px}.kanban-column-actions{display:flex;gap:4px}.kanban-btn-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:#9ca3af;border-radius:6px;cursor:pointer;font-size:14px;transition:background .2s,color .2s}.kanban-btn-icon:hover{background:#ffffff14;color:#e5e7eb}.kanban-btn-icon--danger:hover{background:#aa373733;color:#f0c5c5}.kanban-column-tasks{display:flex;flex-direction:column;gap:8px;min-height:40px}.kanban-task{padding:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:8px;cursor:grab;transition:border-color .2s,background .2s}.kanban-task:hover{background:#ffffff14;border-color:#ffffff1f}.kanban-task:active{cursor:grabbing}.kanban-task--dragging{opacity:.5}.kanban-task--no-assignee{border-color:#c8505080}.kanban-task--priority-green{border-left:3px solid #22c55e}.kanban-task--priority-yellow{border-left:3px solid #eab308}.kanban-task--priority-red{border-left:3px solid #ef4444}.kanban-task-title{font-size:14px;font-weight:500}.kanban-task-creator,.kanban-task-assignee{font-size:12px;color:#9ca3af;margin-top:4px}.kanban-add-task{width:100%;margin-top:8px;padding:10px;border:1px dashed rgba(255,255,255,.2);background:transparent;color:#9ca3af;border-radius:8px;cursor:pointer;font-size:13px;transition:border-color .2s,color .2s}.kanban-add-task:hover{border-color:#ffffff59;color:#e5e7eb}.content-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px}.content-title{margin:0;font-size:22px;font-weight:600}.btn--primary-header{padding:10px 18px;font-size:14px;font-weight:600;color:#0f1113;background:#e9e9e9;border:none;border-radius:10px;cursor:pointer;font-family:inherit;transition:background .2s}.btn--primary-header:hover{background:#fff}.inline-error{padding:12px 14px;margin-bottom:20px;font-size:13px;color:#f0c5c5;background:#aa373726;border:1px solid rgba(170,55,55,.35);border-radius:10px}.credentials-scroll{max-height:220px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.credentials-scroll::-webkit-scrollbar{width:8px}.credentials-scroll::-webkit-scrollbar-track{background:transparent}.credentials-scroll::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:4px}.credentials-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff59}.project-logs-scroll{max-height:520px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.project-logs-scroll::-webkit-scrollbar{width:8px}.project-logs-scroll::-webkit-scrollbar-track{background:transparent}.project-logs-scroll::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:4px}.project-logs-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff59}.pandora-textarea{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent;height:100px}.pandora-textarea::-webkit-scrollbar{width:8px}.pandora-textarea::-webkit-scrollbar-track{background:transparent}.pandora-textarea::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:4px}.pandora-textarea::-webkit-scrollbar-thumb:hover{background:#ffffff59}.nginx-logs-scroll{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.nginx-logs-scroll::-webkit-scrollbar{width:8px}.nginx-logs-scroll::-webkit-scrollbar-track{background:transparent}.nginx-logs-scroll::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:4px}.nginx-logs-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff59}.farm-task-link{display:block;font-size:12px;color:#6ea8fe;margin-top:4px;word-break:break-all;text-decoration:none}.farm-task-link:hover{text-decoration:underline}.farm-upload{padding:12px;border:1px dashed rgba(255,255,255,.2);border-radius:8px;background:#ffffff08;transition:border-color .2s,background .2s}.farm-upload:hover{border-color:#ffffff59}.farm-upload--busy{border-style:solid;border-color:#6ea8fe80}.farm-upload--error{border-color:#ef444499}.farm-upload__row{display:flex;align-items:center;gap:8px;font-size:13px;color:#cdd2da;word-break:break-all}.farm-upload__row--ok{color:#4ade80}.farm-spinner{width:16px;height:16px;flex-shrink:0;border:2px solid rgba(255,255,255,.2);border-top-color:#6ea8fe;border-radius:50%;animation:farm-spin .8s linear infinite}@keyframes farm-spin{to{transform:rotate(360deg)}}.farm-board .kanban-column{flex:1 1 0;min-width:0}.farm-task-counts{font-size:12px;color:#9ca3af;margin-top:4px}.farm-upload--file{display:flex;align-items:center;justify-content:space-between;gap:8px;border-style:solid;margin-bottom:8px}.farm-file-delete{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(170,55,55,.35);border-radius:6px;background:#aa37371f;color:#f0c5c5;font-size:14px;line-height:1;cursor:pointer}.farm-file-delete:hover{background:#aa373740}.farm-file-delete:disabled{opacity:.5;cursor:default}.farm-file-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.farm-file-download{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0a;color:#cdd2da;font-size:14px;line-height:1;cursor:pointer}.farm-file-download:hover{background:#ffffff1a}.farm-file-download:disabled{opacity:.5;cursor:default}.modal-field-select-dropdown{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.modal-field-select-dropdown::-webkit-scrollbar{width:8px}.modal-field-select-dropdown::-webkit-scrollbar-track{background:transparent}.modal-field-select-dropdown::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:4px}.modal-field-select-dropdown::-webkit-scrollbar-thumb:hover{background:#ffffff59}
