/* Clinical Navy design system — shared visual layer */
:root {
    --primary-color:#167f7a; --primary-dark:#116762; --secondary-color:#64748b;
    --success-color:#178055; --warning-color:#d49522; --danger-color:#d6535b;
    --info-color:#276b9a; --dark-color:#112a46; --light-color:#f4f7fa;
    --border-color:#dfe6ec; --text-color:#243247; --text-muted:#738196;
    --sidebar-width:232px; --cn-surface:#fff; --cn-navy:#112a46; --cn-navy-2:#183957;
    --cn-teal:#167f7a; --cn-teal-soft:#e3f3f2; --cn-amber:#d49522;
    --cn-radius:12px; --cn-shadow:0 10px 28px rgba(17,42,70,.08);
}
html { background:#f4f7fa; }
body { color:var(--text-color); background:#f4f7fa; font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; letter-spacing:-.005em; }
body.app-shell { --primary-color:#167f7a; --primary-dark:#116762; --success-color:#178055; --warning-color:#d49522; --danger-color:#d6535b; --info-color:#276b9a; --dark-color:#112a46; --light-color:#f4f7fa; --border-color:#dfe6ec; --text-color:#243247; --text-muted:#738196; }
a { color:#176f86; }
.wrapper { min-height:100vh; }
.main-container { min-height:100vh; padding-left:var(--sidebar-width); display:block; }
.header { position:fixed; z-index:900; top:0; right:0; left:var(--sidebar-width); height:72px; padding:0; background:#fff; border-bottom:1px solid #e4eaf0; box-shadow:none; }
.header-content { height:72px; padding:0 28px; gap:20px; }
.mobile-brand { display:none; align-items:center; gap:10px; }
.brand-mark { display:grid; place-items:center; flex:0 0 auto; width:38px; height:38px; border-radius:11px; color:#fff; background:#17a7a0; font-weight:800; box-shadow:0 7px 18px rgba(23,167,160,.28); }
.page-context span { display:block; color:#8290a3; font-size:.72rem; }
.page-context strong { display:block; color:#172033; font-size:1.08rem; line-height:1.3; }
.user-info { gap:9px; margin-left:auto; }
.header-study { display:flex; align-items:center; gap:7px; min-height:36px; padding:0 11px; color:#385069; background:#f3f7f9; border:1px solid #e0e7ed; border-radius:9px; font-size:.75rem; font-weight:650; }
.header-study i { color:var(--cn-teal); }
.header-icon-link { display:grid; place-items:center; width:36px; height:36px; padding:0; color:#526177; background:#fff; border:1px solid #dbe3ea; border-radius:9px; text-decoration:none; box-shadow:none; transition:.18s ease; }
.header-manual-link { display:flex; width:auto; padding:0 11px; gap:7px; font-size:.76rem; font-weight:700; white-space:nowrap; }
.header-icon-link:hover { color:var(--cn-teal); border-color:#9dc9c6; background:#f4fbfa; transform:translateY(-1px); }
.user-name { display:flex; align-items:center; gap:9px; padding:0 5px; color:#172033; background:transparent; border:0; border-radius:0; text-decoration:none; }
.user-name:hover { background:transparent; box-shadow:none; transform:none; }
.user-avatar { display:grid; place-items:center; width:36px; height:36px; color:#167c78; background:#dceff0; border-radius:10px; font-size:.75rem; font-weight:800; }
.user-identity strong,.user-identity small { display:block; white-space:nowrap; }
.user-identity strong { font-size:.75rem; }
.user-identity small { color:#8491a3; font-size:.64rem; font-weight:500; }
.logout-btn { color:#8a4850; background:#fff; border-color:#ebd4d6; }
.sidebar { position:fixed; z-index:950; inset:0 auto 0 0; display:flex; flex-direction:column; width:var(--sidebar-width); padding:22px 16px 18px; color:#fff; background:var(--cn-navy); border:0; overflow-y:auto; }
.sidebar-brand { display:flex; align-items:center; gap:11px; padding:0 7px 23px; }
.sidebar-brand strong,.sidebar-brand small { display:block; }
.sidebar-brand strong { color:#fff; font-size:.96rem; }
.sidebar-brand small { color:#aac0d4; font-size:.66rem; }
.nav-menu { display:grid; gap:3px; }
.nav-section { margin:10px 0 0; padding:7px 11px 5px; color:#7894ad; font-size:.61rem; letter-spacing:.12em; }
.nav-link { gap:10px; padding:10px 11px; color:#c8d7e5; border-left:0; border-radius:9px; font-size:.8rem; }
.nav-link i { width:18px; margin:0; font-size:.9rem; text-align:center; }
.nav-link:hover { color:#fff; background:var(--cn-navy-2); }
.nav-link.active { color:#fff; background:#1d4262; border-left:0; box-shadow:inset 3px 0 0 #28c0b6; }
.sidebar-meta { display:grid; gap:3px; margin-top:auto; padding:16px 9px 0; border-top:1px solid #294761; }
.sidebar-meta span { color:#7894ad; font-size:.58rem; letter-spacing:.12em; }
.sidebar-meta strong { color:#fff; font-size:.72rem; }
.sidebar-meta small { color:#8fa9be; font-size:.62rem; }
.qualification-strip { display:flex; align-items:center; gap:5px; margin-left:auto; margin-right:10px; white-space:nowrap; }
.qualification-badge { border:1px solid transparent; border-radius:999px; padding:4px 7px; font-size:.62rem; font-weight:800; letter-spacing:.025em; }
.qualification-app { color:#075985; background:#e0f2fe; border-color:#7dd3fc; }
.qualification-tmf { color:#166534; background:#dcfce7; border-color:#86efac; }
.qualification-stats { color:#334155; background:#fff; border-color:#cbd5e1; }
.qualification-protocol { color:#854d0e; background:#fef9c3; border-color:#fde047; }
.main-content { min-height:100vh; padding:96px 28px 34px; background:#f4f7fa; overflow:visible; }
.public-shell .header { left:0; }.public-shell .main-container { padding-left:0; }.public-shell .main-content { display:grid; place-items:center; }
.page-header,.dashboard-header { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:18px; }
.page-header h1,.dashboard-header h1 { margin:0; color:#172033; font-size:1.42rem; line-height:1.25; letter-spacing:-.025em; }
.page-header h1 i,.dashboard-header h1 i { color:var(--cn-teal); margin-right:7px; }
.header-actions,.form-actions,.action-buttons { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.dashboard-grid { gap:16px; }
.dashboard-card,.data-card,.form-card,.card,.filter-card,.stats-card,.audit-card,.integrity-card { background:#fff; border:1px solid #e0e7ed; border-radius:var(--cn-radius); box-shadow:0 2px 10px rgba(17,42,70,.035); overflow:hidden; }
.card-header,.dashboard-card .card-header { padding:14px 17px; background:#fff; border-bottom:1px solid #e8edf1; }
.card-header h3 { color:#213047; font-size:.84rem; }
.card-header h3 i { color:var(--cn-teal); }
.card-body { padding:17px; }
.btn { min-height:38px; padding:.55rem .9rem; border-radius:9px; font-size:.76rem; font-weight:700; box-shadow:none; transition:.18s ease; }
.btn:hover { transform:translateY(-1px); box-shadow:0 7px 16px rgba(17,42,70,.1); }
.btn-primary { color:#fff; background:var(--cn-teal); border-color:var(--cn-teal); }
.btn-primary:hover { background:var(--primary-dark); border-color:var(--primary-dark); }
.btn-secondary,.btn-outline { color:#40536a; background:#fff; border:1px solid #ccd7e0; }
.btn-secondary:hover,.btn-outline:hover { color:#163d52; background:#f4f8fa; border-color:#9fb6c6; }
.btn-success { background:#178055; }.btn-danger { background:#c84e56; }.btn-warning { background:#d49522; color:#fff; }
.btn-sm { min-height:31px; padding:.36rem .58rem; border-radius:7px; font-size:.69rem; }
input[type="text"],input[type="email"],input[type="password"],input[type="date"],input[type="number"],input[type="search"],textarea,select { min-height:40px; padding:.62rem .76rem; color:#26354a; background:#fff; border:1px solid #cfd9e2; border-radius:9px; box-shadow:0 1px 2px rgba(17,42,70,.03); }
input:focus,textarea:focus,select:focus { outline:0; border-color:#48a8a2; box-shadow:0 0 0 3px rgba(22,127,122,.12); }
.form-group label { color:#405066; font-size:.76rem; font-weight:700; }
.form-help,.help-text { color:#7d8b9e; font-size:.68rem; }
.alert { padding:12px 15px; border-radius:10px; border-left-width:4px; font-size:.78rem; box-shadow:none; }
.alert-success { color:#176943; background:#edf8f2; border-color:#9ed2b7; border-left-color:#178055; }
.alert-error { color:#81363d; background:#fff0f1; border-color:#efc5c8; border-left-color:#d6535b; }
.alert-warning { color:#755316; background:#fff8e8; border-color:#efd59c; border-left-color:#d49522; }
.alert-info { color:#285a78; background:#eef6fa; border-color:#c4dce9; border-left-color:#276b9a; }
.table-container { border:1px solid #e0e7ed; border-radius:11px; overflow:auto; box-shadow:none; }
.data-table,table { border-collapse:collapse; }
.data-table thead,.data-table th { background:#f7f9fb; }
.data-table th { padding:.68rem .85rem; color:#718095; font-size:.64rem; letter-spacing:.055em; text-transform:uppercase; border-bottom:1px solid #dde5eb; }
.data-table td { padding:.76rem .85rem; color:#354358; font-size:.74rem; border-bottom:1px solid #edf1f4; }
.data-table tbody tr:hover { background:#f5faf9; }
.badge,.status-badge { border-radius:999px; padding:.25rem .5rem; font-size:.62rem; font-weight:750; }
.badge-success,.status-approved { color:#176943; background:#e8f6ee; }.badge-warning,.status-in-progress { color:#80570a; background:#fff3d9; }.badge-danger,.status-cq-rejected { color:#8a3940; background:#ffeaec; }
.stat-grid { gap:13px; }.stat-item { padding:15px; background:#fff; border:1px solid #e0e7ed; border-radius:11px; }.stat-value { color:#172033; font-size:1.55rem; }.stat-label { color:#738196; font-size:.7rem; }
.progress-bar { height:7px; background:#e7edf1; border-radius:8px; }.progress-fill { background:var(--cn-teal); border-radius:8px; }
.action-button { color:#27384e; background:#fff; border:1px solid #dfe6ec; border-radius:10px; }.action-button:hover { color:#126c67; background:#f2faf9; border-color:#a8d2cf; }
.file-item { border:1px solid #e1e7ed; border-radius:10px; }.file-item:hover { background:#f5faf9; border-color:#b9d7d4; }
.file-icon { color:#50677c; }.timeline-marker { background:var(--cn-teal); }
.form-container,.artifact-management-container,.integrity-container,.container { max-width:1400px; }
.form-header { color:#172033; background:#fff; border-bottom:1px solid #e3e9ee; }
.form-section,.filter-section,.filters-card,.filter-card,.info-card,.errors-card,.results-summary,.summary-card,.check-history { background:#fff; border:1px solid #e0e7ed; border-radius:11px; box-shadow:none; }
.filter-section { background:#f8fafb !important; }
.zone-section,.section-block,.artifact-item,.tree-zone,.tree-section-header,.tree-artifact,.recent-file-item,.my-file-item,.history-item,.alert-item { border-color:#dfe6ec !important; border-radius:9px !important; }
.zone-header,.tree-zone-header { color:#fff !important; background:#173d5b !important; border-radius:9px 9px 0 0 !important; }
.zone-header:hover,.tree-zone-header:hover { background:#112f49 !important; }
.section-header,.tree-section-header { color:#29435b !important; background:#f2f6f8 !important; }
.section-header:hover,.tree-section-header:hover,.artifact-item:hover,.tree-artifact:hover { background:#edf7f6 !important; }
.artifact-info>i,.file-header i,.info-card i { color:var(--cn-teal) !important; }
.milestone-badge { border-width:1px !important; border-radius:999px !important; font-weight:750 !important; }
.milestone-badge.level-0 { color:#526177 !important; background:#eef2f5 !important; border-color:#ccd6df !important; }
.milestone-badge.level-1 { color:#176943 !important; background:#e8f6ee !important; border-color:#acd8c0 !important; }
.milestone-badge.level-2 { color:#176c67 !important; background:#e3f3f2 !important; border-color:#abd5d2 !important; }
.milestone-badge.level-3 { color:#285a78 !important; background:#eaf3f8 !important; border-color:#b6d3e2 !important; }
.milestone-badge.level-4 { color:#80570a !important; background:#fff3d9 !important; border-color:#ebd08f !important; }
.milestone-badge.level-5 { color:#fff !important; background:#9c4148 !important; border-color:#81363d !important; }
.etmf-lock-banner { color:#755316 !important; background:#fff8e8 !important; border-color:#efd59c !important; border-left:4px solid #d49522 !important; border-radius:10px !important; box-shadow:none !important; }
.stat-card,.summary-card { border:1px solid #e0e7ed !important; border-radius:11px !important; box-shadow:none !important; }
.stat-card.success,.summary-card.all-valid { background:#edf8f2 !important; border-color:#acd8c0 !important; }.stat-card.error,.summary-card.has-errors { background:#fff0f1 !important; border-color:#efc5c8 !important; }
.audit-table,.artifacts-table,.completeness-table,.table { border-color:#dfe6ec !important; }.audit-table th,.artifacts-table th,.completeness-table th,.table th { color:#607087 !important; background:#f4f7f9 !important; }
.old-value { color:#7b4650 !important; background:#fff0f1 !important; }.new-value { color:#176943 !important; background:#edf8f2 !important; }
.unauthorized-card { border:1px solid #e0e7ed !important; border-radius:14px !important; box-shadow:var(--cn-shadow) !important; }.unauthorized-icon { color:#c84e56 !important; }
.login-page { background:linear-gradient(145deg,#0e253f 0%,#173d5b 55%,#167f7a 140%) !important; }
.login-box { padding:30px !important; border:1px solid rgba(255,255,255,.5); border-radius:16px !important; box-shadow:0 24px 70px rgba(4,19,33,.3) !important; }
.login-header i { color:var(--cn-teal) !important; }.login-header h1 { color:#172033; }.study-badge-login { background:#edf7f6 !important; border:1px solid #c6e2e0; box-shadow:none !important; }.study-ref-login { color:#156e69 !important; }.study-name-login { color:#43566c !important; }
.login-page .version-badge { color:#315269 !important; background:#eef5f7 !important; border:1px solid #d4e2e7 !important; border-radius:8px !important; box-shadow:none !important; }.login-page .version-badge i { color:var(--cn-teal) !important; }.login-page .login-header>i { width:54px; height:54px; display:grid; place-items:center; margin:0 auto 12px; border-radius:14px; background:#e3f3f2; }.login-page .btn-primary { background:var(--cn-teal) !important; border-color:var(--cn-teal) !important; }.login-page .btn-primary:hover { background:var(--primary-dark) !important; }.login-page .back-link a,.login-page .forgot-password-link { color:#176f86 !important; }
@media(max-width:1100px){.header-study{display:none}.user-identity{display:none}.header-manual-link{width:36px;padding:0}.header-manual-link span{display:none}.main-content{padding-left:22px;padding-right:22px}}
@media(max-width:760px){:root{--sidebar-width:68px}.sidebar{padding:18px 10px}.sidebar-brand{justify-content:center;padding-left:0;padding-right:0}.sidebar-brand div,.nav-link span,.nav-section,.sidebar-meta{display:none}.nav-link{justify-content:center;padding:11px}.nav-link i{font-size:1rem}.header{left:68px}.header-content{padding:0 8px}.page-context,.header-study,.user-identity{display:none}.qualification-strip{margin-left:0;margin-right:auto;gap:3px}.qualification-badge{padding:3px 5px;font-size:.53rem}.header-icon-link:nth-of-type(n+2){display:none}.main-content{padding:90px 14px 24px}.dashboard-grid{grid-template-columns:1fr}.page-header,.dashboard-header{align-items:flex-start;flex-direction:column}.user-info{gap:4px}}
@media(max-width:480px){.page-context{display:none}.mobile-brand{display:flex}.mobile-brand strong{font-size:.8rem}.header{height:64px}.header-content{height:64px}.main-content{padding-top:80px}.user-name{display:none}}
