:root { --bs-primary: #232454; --bs-primary-rgb: 35, 36, 84; --bs-link-color: #232454; --bs-link-hover-color: #17183a; }
body { min-height: 100vh; }
.btn-primary { --bs-btn-bg: #232454; --bs-btn-border-color: #232454; --bs-btn-hover-bg: #17183a; --bs-btn-hover-border-color: #17183a; --bs-btn-active-bg: #12132f; --bs-btn-active-border-color: #12132f; --bs-btn-focus-shadow-rgb: 35,36,84; }
.btn-outline-primary { --bs-btn-color: #232454; --bs-btn-border-color: #232454; --bs-btn-hover-bg: #232454; --bs-btn-hover-border-color: #232454; --bs-btn-active-bg: #17183a; --bs-btn-active-border-color: #17183a; --bs-btn-focus-shadow-rgb: 35,36,84; }
.list-group { --bs-list-group-active-bg: #232454; --bs-list-group-active-border-color: #232454; --bs-list-group-active-color: #fff; }
.form-control:focus { border-color: #6768a0; box-shadow: 0 0 0 .25rem rgba(35,36,84,.2); }
.project-toolbar { background: linear-gradient(110deg, #fbfbff 0%, #f2f2fa 100%); border: 1px solid #dedeea; border-radius: .65rem; box-shadow: 0 .2rem .6rem rgba(35,36,84,.06); overflow: hidden; }
.project-toolbar .breadcrumb { --bs-breadcrumb-divider: '›'; background: rgba(255,255,255,.72); border-bottom: 1px solid #e3e3ed; font-size: .82rem; padding: .65rem 1.1rem; }
.project-toolbar-body { align-items: center; display: flex; gap: 1rem; justify-content: space-between; padding: 1rem 1.15rem; }
.project-heading { align-items: center; display: flex; gap: .8rem; min-width: 0; }
.project-heading-icon { align-items: center; background: #232454; border-radius: .65rem; color: #fff; display: inline-flex; flex: 0 0 auto; font-size: 1.2rem; height: 2.85rem; justify-content: center; width: 2.85rem; }
.project-heading h1 { color: #202149; font-size: 1.45rem; line-height: 1.15; margin: 0 0 .25rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-meta { color: #6b6c83; font-size: .82rem; }
.project-actions { align-items: flex-end; border-left: 1px solid #dcdce8; display: flex; flex: 0 0 auto; flex-direction: column; gap: .3rem; padding-left: 1rem; }
.project-actions-label { color: #74758a; font-size: .65rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
@media (max-width: 575px) { .project-toolbar-body { align-items: flex-start; flex-direction: column; } .project-actions { align-items: flex-start; border-left: 0; border-top: 1px solid #dcdce8; padding: .75rem 0 0; width: 100%; } }
.project-card { border: 1px solid #e1e1ed; border-top: 4px solid #232454; overflow: hidden; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.project-card:hover { transform: translateY(-4px); border-color: #9697bb; box-shadow: 0 .75rem 1.5rem rgba(35,36,84,.16); }
.project-icon { align-items: center; background: #e8e8f4; border-radius: .65rem; color: #232454; display: inline-flex; flex: 0 0 auto; font-size: 1.1rem; height: 2.65rem; justify-content: center; width: 2.65rem; }
.project-code { color: #74758a; display: block; font-size: .73rem; font-weight: 600; letter-spacing: .025em; margin-top: .15rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-metrics { border-top: 1px solid #ebebf2; border-bottom: 1px solid #ebebf2; display: grid; grid-template-columns: 1fr 1fr; margin-bottom: .7rem; padding: .6rem 0; }
.project-metrics > div + div { border-left: 1px solid #ebebf2; padding-left: 1rem; }
.project-metrics strong { color: #232454; display: block; font-size: 1.2rem; line-height: 1.2; }
.metric-label { color: #74758a; display: block; font-size: .68rem; margin-bottom: .25rem; text-transform: uppercase; }
.project-footer { align-items: center; color: #74758a; display: flex; font-size: .75rem; justify-content: space-between; }
.project-open { color: #232454; font-weight: 700; }
.dashboard-toolbar { background: linear-gradient(110deg, #fbfbff 0%, #f2f2fa 100%); border: 1px solid #dedeea; border-radius: .65rem; box-shadow: 0 .2rem .6rem rgba(35,36,84,.06); padding: 1rem 1.15rem; }
.dashboard-toolbar-top { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }
.dashboard-title { align-items: center; display: flex; gap: .75rem; }.dashboard-title-icon { align-items: center; background: #232454; border-radius: .6rem; color: #fff; display: inline-flex; font-size: 1.05rem; height: 2.5rem; justify-content: center; width: 2.5rem; }.dashboard-title h1 { color: #202149; font-size: 1.35rem; line-height: 1.1; margin: 0 0 .2rem; }.dashboard-title p { color: #686980; font-size: .82rem; margin: 0; }
.dashboard-search { align-items: center; background: #fff; border: 1px solid #dcdce8; border-radius: .45rem; display: flex; margin-top: .9rem; overflow: hidden; }.dashboard-search > i { color: #74758a; margin-left: .85rem; }.dashboard-search input { background: transparent; border: 0; color: #292a45; flex: 1; min-width: 0; outline: 0; padding: .62rem .75rem; }.dashboard-search input::placeholder { color: #858699; }.dashboard-search .btn { border-bottom: 0; border-right: 0; border-top: 0; border-radius: 0; padding: .62rem 1rem; }
@media (max-width: 575px) { .dashboard-toolbar-top { align-items: flex-start; flex-direction: column; }.dashboard-search .btn { font-size: .8rem; padding: .65rem .75rem; } }
.back-link { color: #232454; font-size: .9rem; font-weight: 600; text-decoration: none; }
.create-project-header { align-items: center; display: flex; gap: 1rem; }
.create-project-icon { align-items: center; background: #e8e8f4; border-radius: .8rem; color: #232454; display: inline-flex; font-size: 1.45rem; height: 3.4rem; justify-content: center; width: 3.4rem; }
.create-project-card { border: 1px solid #e1e1ed; }
.form-intro { color: #636478; font-size: .9rem; }
.form-intro p { line-height: 1.55; }
.form-tip { align-items: flex-start; background: #f2f2f8; border-radius: .5rem; display: flex; gap: .65rem; padding: .8rem; }
.form-tip i { color: #232454; margin-top: .15rem; }
.documents-card { border: 1px solid #e1e1ed; overflow: hidden; }
.documents-card-header { align-items: center; background: #fff; border-bottom: 1px solid #e8e8f0; display: flex; justify-content: space-between; padding: .9rem 1.1rem; }
.documents-table { --bs-table-hover-bg: #f7f7fc; }
.documents-table thead th { background: #f7f7fb; border-bottom: 1px solid #e5e5ee; color: #67687c; font-size: .68rem; font-weight: 700; letter-spacing: .045em; padding: .7rem 1rem; text-transform: uppercase; white-space: nowrap; }
.documents-table tbody td { border-color: #eeeeF4; padding: .82rem 1rem; }
.document-name, .document-author { align-items: center; display: flex; gap: .55rem; min-width: 160px; }
.document-file-icon { align-items: center; background: #eeeeF8; border-radius: .42rem; color: #232454; display: inline-flex; height: 2rem; justify-content: center; width: 2rem; }
.document-name a { color: #232454; text-decoration: none; } .document-name a:hover { text-decoration: underline; }
.version-pill { background: #ececf6; border-radius: 99rem; color: #232454; display: inline-block; font-size: .76rem; font-weight: 700; padding: .25rem .55rem; }
.author-avatar { align-items: center; background: #e6edf8; border-radius: 50%; color: #304b77; display: inline-flex; font-size: .7rem; font-weight: 700; height: 1.7rem; justify-content: center; text-transform: uppercase; width: 1.7rem; }
.document-date { color: #67687c; font-size: .85rem; white-space: nowrap; }
.status-pill { border-radius: 99rem; display: inline-block; font-size: .75rem; font-weight: 700; padding: .32rem .58rem; white-space: nowrap; }
.status-available { background: #dff5e9; color: #137a4c; }.status-own { background: #e8e8f6; color: #232454; }.status-locked { background: #fff1ce; color: #936000; }
@media (min-width: 768px) { .border-md-start { border-left: 1px solid #e7e7ef; } }
.login-page { background: #10121d url("login-background.bb78d34f387b.png") center center / cover fixed no-repeat; min-height: 100vh; position: relative; }.login-page::before { background: linear-gradient(115deg, rgba(16,17,42,.56), rgba(16,17,32,.23)); content: ''; inset: 0; position: fixed; z-index: -1; }.login-page main { padding-bottom: 2rem; padding-top: 2rem; }.login-layout { min-height: calc(100vh - 4rem); display: flex; flex-direction: column; justify-content: center; }.login-card { backdrop-filter: blur(2px); background: rgba(16,18,39,.38); border: 1px solid rgba(255,255,255,.28); border-radius: .85rem; box-shadow: 0 1.25rem 3rem rgba(0,0,0,.35); color: #fff; padding: 1.7rem; }.login-card-header { align-items: center; display: flex; gap: .75rem; }.login-card-icon { align-items: center; background: rgba(255,255,255,.18); border-radius: .6rem; color: #fff; display: inline-flex; height: 2.55rem; justify-content: center; width: 2.55rem; }.login-card h1 { color: #fff; font-size: 1.35rem; line-height: 1.1; margin: 0 0 .2rem; }.login-card p { color: rgba(255,255,255,.75); font-size: .85rem; margin: 0; }.login-card .form-label { color: #fff; }.login-input { align-items: center; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.3); border-radius: .45rem; display: flex; overflow: hidden; transition: border-color .15s, box-shadow .15s; }.login-input:focus-within { border-color: rgba(255,255,255,.75); box-shadow: 0 0 0 .25rem rgba(255,255,255,.12); }.login-input i { color: rgba(255,255,255,.78); margin-left: .85rem; }.login-input input { background: transparent; border: 0; color: #fff; flex: 1; outline: 0; padding: .68rem .8rem; }.login-submit { padding: .7rem 1rem; }.login-footer { color: rgba(255,255,255,.75); font-size: .73rem; margin: 1.4rem auto 0; text-align: center; }
.upload-dropzone { border: 2px dashed #232454; border-radius: .5rem; cursor: pointer; background: #f7f7fc; } .upload-dropzone.dragover { background: #e8e8f4; }
.folder-node { padding: .3rem .75rem; } .folder-node summary { cursor: pointer; }
@media (max-width: 991px) { aside { max-height: 260px; overflow-y: auto; } }
