:root {
    --mine-navy: #17252e;
    --mine-green: #1f7257;
    --mine-green-soft: #e8f4ef;
    --mine-gold: #d99a24;
    --mine-stone: #eef1f3;
    --mine-border: #dfe5e8;
}

body { font-family: "Source Sans 3", system-ui, sans-serif; letter-spacing: .005em; }
.app-header { min-height: 64px; border-bottom: 1px solid var(--mine-border); }
.mobile-header-brand { display:none; }
.app-main { background: #f4f6f7; }
.app-content-header { padding: 1.75rem 0 1.1rem; }
.app-content { padding-bottom: 2rem; }
.dashboard-content { padding-top:1.5rem; }
.app-content-header h1 { font-size: clamp(1.55rem, 2vw, 2rem); font-weight: 700; color: var(--mine-navy); }
.eyebrow { color: var(--mine-green); font-weight: 700; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; }

.sidebar-brand { height: 64px; border-bottom-color: rgba(255,255,255,.1); }
.brand-mark { width: 35px; height: 35px; display: inline-grid; place-items: center; border-radius: 10px; background: var(--mine-green); color: #fff; margin-right: .55rem; }
.brand-symbol { width: 25px; height: 25px; display: block; }
.brand-text { letter-spacing: 0; }
.brand-name { font-family: "Space Grotesk", sans-serif; font-size: 1.05rem; font-weight: 500; letter-spacing: -.04em; white-space: nowrap; }
.brand-name-accent { color: #2a8e69; font-weight: 700; }
.app-sidebar .brand-name-accent, .login-visual .brand-name-accent { color: #c5f36a; }
.tenant-panel { margin: .85rem .75rem 1rem; padding: .9rem 2.5rem .9rem .9rem; border: 1px solid rgba(255,255,255,.11); background: rgba(255,255,255,.06); border-radius: 12px; position: relative; display: flex; flex-direction: column; }
.tenant-panel small { color: #79c5aa; font-size: .65rem; font-weight: 700; letter-spacing: .1em; }
.tenant-panel strong { color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: .2rem 0; }
.tenant-panel > a { position: absolute; right: .8rem; top: 1.25rem; color: #c9d3d8; }
.sidebar-menu .nav-header { font-size: .65rem; letter-spacing: .12em; color: #7f8e97; margin-top: .75rem; }
.sidebar-menu .nav-link { border-radius: 8px; margin-inline: .45rem; width: auto; }
.sidebar-menu .nav-link.active { background: var(--mine-green); box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.sidebar-home-item { margin-bottom:.55rem; padding-bottom:.55rem; border-bottom:1px solid rgba(255,255,255,.08); }
.sidebar-home-item .nav-link { color:#d7dfe2; }
.sidebar-home-item .nav-link:not(.active):hover { color:#fff; background:rgba(255,255,255,.06); }
.sidebar-menu-section { width:100%; margin-bottom:.25rem; }
.sidebar-menu-section details { width:100%; }
.sidebar-section-summary { cursor:pointer; color:#b9c3c8; user-select:none; list-style:none; }
.sidebar-section-summary::-webkit-details-marker { display:none; }
.sidebar-section-summary::marker { display:none; content:""; }
.sidebar-section-summary p { display:flex; align-items:center; width:100%; margin:0; font-size:.72rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.sidebar-section-summary .nav-arrow { margin-left:auto; font-size:.72rem; transition:transform .2s ease; }
.sidebar-menu-section details[open] > .sidebar-section-summary .nav-arrow { transform:rotate(90deg); }
.sidebar-menu-section.has-active > details > .sidebar-section-summary { color:#fff; background:rgba(255,255,255,.07); }
.sidebar-section-summary:hover { color:#fff; background:rgba(255,255,255,.06); }
.sidebar-section-items { padding:.2rem 0 .45rem; }
.sidebar-section-items .nav-link { padding-block:.42rem; color:#adb8bd; }
.sidebar-section-items .nav-link .nav-icon { font-size:.95rem; }
.sidebar-section-items .nav-link p { font-size:.86rem; }
.sidebar-section-items .nav-link.active { color:#fff; }
.sidebar-collapse .sidebar-menu-section details > .sidebar-section-items { display:none; }
.sync-pill { padding: .35rem .7rem; border-radius: 999px; font-size: .78rem; font-weight: 600; transition: color .2s, background-color .2s; }
.sync-pill.is-checking { color: #65757d; background: #edf0f2; }
.sync-pill.is-online { color: var(--mine-green); background: var(--mine-green-soft); }
.sync-pill.is-offline { color: #ad3440; background: #fde8ea; }
.user-avatar { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--mine-navy); color: white; font-weight: 700; }
.user-avatar-lg { width: 68px; height: 68px; font-size: 1.6rem; margin-bottom: .5rem; background: rgba(255,255,255,.18); }
.user-role-menu { width: min(360px, calc(100vw - 1rem)); }
.user-role-panel { padding: .9rem 1rem; border-bottom: 1px solid var(--mine-border); background: #fff; }
.user-role-title { margin-bottom: .4rem; color: #7d8b93; font-size: .67rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.user-project-roles { display: grid; gap: .35rem; max-height: 160px; overflow-y: auto; }
.user-project-role { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .42rem .55rem; border-radius: 7px; background: #f5f7f8; font-size: .76rem; }
.user-project-role span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--mine-navy); }
.user-project-role strong { flex: 0 0 auto; color: var(--mine-green); font-size: .7rem; }

.btn-mine { --bs-btn-color:#fff; --bs-btn-bg:var(--mine-green); --bs-btn-border-color:var(--mine-green); --bs-btn-hover-color:#fff; --bs-btn-hover-bg:#165d46; --bs-btn-hover-border-color:#165d46; }
.card { border-color: var(--mine-border); box-shadow: 0 2px 10px rgba(29,45,55,.04); border-radius: 12px; overflow: hidden; }
.card-header { background: #fff; border-bottom-color: var(--mine-border); padding: 1rem 1.15rem; }
.card-title { float: none; font-weight: 700; color: var(--mine-navy); }
.card-header .section-kicker { display: block; margin-bottom: .15rem; }
.metric-card { position: relative; min-height: 138px; padding: 1.1rem; color: #fff; border: 0; }
.metric-card .metric-label { opacity: .8; font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .07em; }
.metric-card .metric-value { font-size: 2rem; line-height: 1; font-weight: 700; margin: .65rem 0 .4rem; }
.metric-card .metric-note { font-size: .78rem; opacity: .82; }
.metric-card .metric-icon { position: absolute; right: 1rem; top: 1rem; font-size: 2.4rem; opacity: .2; }
.metric-green { background: linear-gradient(135deg, #216e56, #2f9875); }
.metric-navy { background: linear-gradient(135deg, #233641, #3d5969); }
.metric-gold { background: linear-gradient(135deg, #c68312, #e9ad3f); }
.metric-blue { background: linear-gradient(135deg, #27748b, #3aa0b8); }
.metric-link { color:#fff; text-decoration:none; transition:transform .2s ease, box-shadow .2s ease; }
.metric-link:hover, .metric-link:focus-visible { color:#fff; transform:translateY(-3px); box-shadow:0 12px 28px rgba(23,37,46,.18); outline:none; }
.metric-link:focus-visible { box-shadow:0 0 0 3px rgba(31,114,87,.2), 0 12px 28px rgba(23,37,46,.18); }
.metric-open { position:absolute; right:1rem; bottom:1rem; font-size:.9rem; opacity:.7; }

.dashboard-metrics .metric-card { min-height:142px; isolation:isolate; padding:1.05rem 1.1rem; border:0; color:#fff; box-shadow:0 8px 22px rgba(23,37,46,.13); }
.dashboard-metrics .metric-card::before { content:""; position:absolute; z-index:0; width:150px; height:150px; top:-92px; right:-58px; border:1px solid rgba(255,255,255,.16); border-radius:50%; box-shadow:0 0 0 28px rgba(255,255,255,.035),0 0 0 56px rgba(255,255,255,.02); pointer-events:none; }
.dashboard-metrics .metric-green { background:linear-gradient(135deg,#1b644e 0%,#2d9873 100%); }
.dashboard-metrics .metric-navy { background:linear-gradient(135deg,#20333e 0%,#456576 100%); }
.dashboard-metrics .metric-gold { background:linear-gradient(135deg,#b87109 0%,#e2a63a 100%); }
.dashboard-metrics .metric-blue { background:linear-gradient(135deg,#216b81 0%,#3ba0b6 100%); }
.dashboard-metrics .metric-card .metric-label { position:relative; z-index:1; padding-right:3rem; color:rgba(255,255,255,.78); opacity:1; font-size:.72rem; font-weight:750; }
.dashboard-metrics .metric-card .metric-value { position:relative; z-index:1; margin:.72rem 0 .42rem; color:#fff; font-family:"Space Grotesk",sans-serif; font-size:2.15rem; font-weight:650; letter-spacing:-.045em; }
.dashboard-metrics .metric-card .metric-note { position:relative; z-index:1; display:block; max-width:calc(100% - 1.4rem); color:rgba(255,255,255,.78); opacity:1; font-size:.76rem; line-height:1.3; }
.dashboard-metrics .metric-card .metric-icon { z-index:1; top:.85rem; right:.9rem; display:grid; width:38px; height:38px; place-items:center; border:1px solid rgba(255,255,255,.16); border-radius:10px; color:#fff; background:rgba(255,255,255,.12); font-size:1.05rem; opacity:1; backdrop-filter:blur(4px); }
.dashboard-metrics .metric-link { color:#fff; }
.dashboard-metrics .metric-link:hover, .dashboard-metrics .metric-link:focus-visible { color:#fff; transform:translateY(-3px); box-shadow:0 14px 30px rgba(23,37,46,.2); }
.dashboard-metrics .metric-link:focus-visible { box-shadow:0 0 0 3px rgba(31,114,87,.2),0 14px 30px rgba(23,37,46,.2); }
.dashboard-metrics .metric-open { z-index:1; right:.95rem; bottom:.9rem; color:#fff; opacity:.75; transition:transform .18s ease,opacity .18s ease; }
.dashboard-metrics .metric-link:hover .metric-open { opacity:1; transform:translate(2px,-2px); }

.dashboard-welcome { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.15rem 1.25rem; border:1px solid #d8e5df; border-radius:14px; background:linear-gradient(115deg,#fff 0%,#f3faf7 100%); box-shadow:0 3px 14px rgba(29,45,55,.05); }
.dashboard-welcome-copy { display:flex; align-items:center; gap:1rem; min-width:0; }
.dashboard-welcome-copy h2 { color:var(--mine-navy); font-family:"Space Grotesk",sans-serif; font-size:1.22rem; font-weight:650; letter-spacing:-.025em; }
.dashboard-welcome-copy p { color:#6e7d75; font-size:.88rem; }
.dashboard-role-icon { display:grid; flex:0 0 46px; width:46px; height:46px; place-items:center; border-radius:12px; color:var(--mine-green); background:var(--mine-green-soft); font-size:1.15rem; }
.dashboard-role-badge { color:#236b52; background:#def0e8; }
.dashboard-quick-actions { display:flex; flex:0 0 auto; flex-wrap:wrap; justify-content:flex-end; gap:.5rem; }
.dashboard-quick-actions .btn { white-space:nowrap; }
.dashboard-project-link { color:var(--mine-navy); font-weight:750; text-decoration:none; }
.dashboard-project-link:hover { color:var(--mine-green); }
.dashboard-attention { overflow:hidden; border-color:#e4ddd0; box-shadow:0 7px 24px rgba(29,45,55,.07); }
.dashboard-attention-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; background:linear-gradient(110deg,#fff 0%,#fffaf0 100%); }
.dashboard-attention .card-body { padding:1rem; }
.dashboard-attention-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.dashboard-attention-item { display:flex; position:relative; align-items:center; gap:.8rem; min-width:0; padding:.85rem .9rem; border:1px solid transparent; border-radius:11px; color:var(--mine-navy); text-decoration:none; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.dashboard-attention-item:hover,.dashboard-attention-item:focus-visible { color:var(--mine-navy); transform:translateY(-2px); box-shadow:0 8px 18px rgba(29,45,55,.1); outline:none; }
.dashboard-attention-icon { display:grid; flex:0 0 40px; width:40px; height:40px; place-items:center; border-radius:10px; font-size:1rem; }
.dashboard-attention-copy { display:flex; min-width:0; flex:1; flex-direction:column; }
.dashboard-attention-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.84rem; }
.dashboard-attention-copy small { margin-top:.15rem; overflow:hidden; color:#6f7d83; font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-attention-count { display:grid; flex:0 0 31px; width:31px; height:31px; place-items:center; border-radius:9px; color:#fff; font-family:"Space Grotesk",sans-serif; font-size:.83rem; font-weight:700; }
.dashboard-attention-arrow { flex:0 0 auto; color:#879399; font-size:.75rem; }
.attention-danger { border-color:#f2d7da; background:linear-gradient(110deg,#fff8f8 0%,#fff 100%); }
.attention-danger .dashboard-attention-icon { color:#b43e4a; background:#fde8ea; }
.attention-danger .dashboard-attention-count { background:#c94d59; }
.attention-warning { border-color:#f0dfbb; background:linear-gradient(110deg,#fffaf0 0%,#fff 100%); }
.attention-warning .dashboard-attention-icon { color:#9b680e; background:#fff0ce; }
.attention-warning .dashboard-attention-count { background:#c78a1c; }
.attention-gold { border-color:#ead6ad; background:linear-gradient(110deg,#fff9ec 0%,#fff 100%); }
.attention-gold .dashboard-attention-icon { color:#a56a0a; background:#ffedc3; }
.attention-gold .dashboard-attention-count { background:linear-gradient(135deg,#b87109,#dda13a); }
.attention-info { border-color:#cee3e8; background:linear-gradient(110deg,#f3fbfc 0%,#fff 100%); }
.attention-info .dashboard-attention-icon { color:#216f82; background:#e0f2f5; }
.attention-info .dashboard-attention-count { background:#2d8296; }
.dashboard-attention-empty { display:flex; align-items:center; gap:.85rem; padding:.8rem .9rem; border:1px solid #d5eadf; border-radius:11px; background:linear-gradient(110deg,#f2fbf7 0%,#fff 100%); }
.dashboard-attention-empty > span { display:grid; flex:0 0 42px; width:42px; height:42px; place-items:center; border-radius:11px; color:#247458; background:#dff2e9; font-size:1.15rem; }
.dashboard-attention-empty div { display:flex; min-width:0; flex-direction:column; }
.dashboard-attention-empty strong { color:#225f49; font-size:.85rem; }
.dashboard-attention-empty small { margin-top:.16rem; color:#6e7d75; font-size:.74rem; }
.dashboard-field-map-card { overflow:hidden; border-color:#cfddd8; box-shadow:0 8px 26px rgba(29,45,55,.09); }
.dashboard-field-map-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; background:linear-gradient(110deg,#fff 0%,#f2faf7 100%); }
.dashboard-field-map-shell { position:relative; min-height:320px; overflow:hidden; background:#dce8e2; }
.dashboard-field-map { position:absolute; z-index:1; inset:0; }
.dashboard-field-map .leaflet-control-zoom { overflow:hidden; border:0; border-radius:10px; box-shadow:0 5px 18px rgba(23,37,46,.18); }
.dashboard-field-map .leaflet-control-zoom a { color:var(--mine-navy); border-color:#e1e8e5; }
.dashboard-field-map .leaflet-tooltip { padding:.35rem .55rem; border:0; border-radius:7px; color:var(--mine-navy); font-family:"Source Sans 3",sans-serif; font-size:.74rem; font-weight:700; box-shadow:0 4px 14px rgba(23,37,46,.16); }
.dashboard-map-live { display:flex; position:absolute; z-index:450; top:.85rem; left:.85rem; align-items:center; gap:.45rem; padding:.42rem .65rem; border:1px solid rgba(255,255,255,.72); border-radius:999px; color:#fff; background:rgba(23,37,46,.84); font-size:.7rem; font-weight:700; box-shadow:0 4px 14px rgba(23,37,46,.18); backdrop-filter:blur(7px); }
.dashboard-map-live span { width:8px; height:8px; border-radius:50%; background:#4bd196; box-shadow:0 0 0 4px rgba(75,209,150,.17); animation:dashboard-map-pulse 2s ease-out infinite; }
.dashboard-map-legend { display:flex; position:absolute; z-index:450; right:.85rem; bottom:.85rem; flex-wrap:wrap; gap:.85rem; padding:.55rem .7rem; border:1px solid rgba(255,255,255,.75); border-radius:10px; color:#536168; background:rgba(255,255,255,.92); font-size:.72rem; box-shadow:0 5px 18px rgba(23,37,46,.14); backdrop-filter:blur(8px); }
.dashboard-map-legend span { display:flex; align-items:center; gap:.35rem; }
.dashboard-map-legend strong { color:var(--mine-navy); }
.dashboard-map-swatch { width:10px; height:10px; border-radius:3px; }
.map-swatch-project { border:2px solid #1f7257; background:rgba(31,114,87,.18); }
.map-swatch-sample { border-radius:50%; background:#d89425; box-shadow:0 0 0 2px #fff; }
@keyframes dashboard-map-pulse { 0% { box-shadow:0 0 0 0 rgba(75,209,150,.45); } 70% { box-shadow:0 0 0 7px rgba(75,209,150,0); } 100% { box-shadow:0 0 0 0 rgba(75,209,150,0); } }
.dashboard-project-status-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; background:linear-gradient(110deg,#fff 0%,#f4f8fa 100%); }
.dashboard-project-distribution { display:grid; grid-template-columns:repeat(3,1fr); gap:.65rem; padding:.85rem 1rem; border-bottom:1px solid var(--mine-border); background:#fbfcfc; }
.dashboard-project-distribution > div { display:flex; align-items:center; gap:.55rem; min-width:0; padding:.55rem .6rem; border:1px solid transparent; border-radius:10px; }
.dashboard-project-distribution > div > span { display:grid; flex:0 0 32px; width:32px; height:32px; place-items:center; border-radius:9px; font-size:.85rem; }
.dashboard-project-distribution > div > div { display:flex; min-width:0; flex-direction:column; }
.dashboard-project-distribution strong { color:var(--mine-navy); font-family:"Space Grotesk",sans-serif; font-size:1rem; line-height:1; }
.dashboard-project-distribution small { margin-top:.15rem; color:#6f7d83; font-size:.67rem; font-weight:700; }
.distribution-exploration { border-color:#d3e7dd !important; background:#f2faf6; } .distribution-exploration > span { color:#237454; background:#dcefe6; }
.distribution-feasibility { border-color:#eadab7 !important; background:#fffaf0; } .distribution-feasibility > span { color:#9d680d; background:#ffedc6; }
.distribution-operation { border-color:#d0e3e9 !important; background:#f2f9fb; } .distribution-operation > span { color:#236f83; background:#dff0f4; }
.dashboard-project-status-list { display:grid; gap:0; }
.dashboard-project-status-item { --project-accent:#2b8b69; display:block; padding:.85rem 1rem .75rem; border-bottom:1px solid var(--mine-border); color:var(--mine-navy); text-decoration:none; transition:background-color .18s ease,transform .18s ease; }
.dashboard-project-status-item:last-child { border-bottom:0; }
.dashboard-project-status-item:hover,.dashboard-project-status-item:focus-visible { color:var(--mine-navy); background:#f6faf8; outline:none; }
.dashboard-project-status-item:hover { transform:translateX(2px); }
.project-status-feasibility { --project-accent:#c4881c; } .project-status-operation { --project-accent:#2a7f94; }
.dashboard-project-status-top { display:flex; align-items:center; gap:.7rem; }
.dashboard-project-status-icon { display:grid; flex:0 0 38px; width:38px; height:38px; place-items:center; border-radius:10px; color:var(--project-accent); background:color-mix(in srgb,var(--project-accent) 13%,#fff); }
.dashboard-project-status-copy { display:flex; min-width:0; flex:1; flex-direction:column; }
.dashboard-project-status-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.84rem; }
.dashboard-project-status-copy small { margin-top:.08rem; color:#7a878d; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.68rem; }
.project-phase-badge { padding:.3rem .5rem; border-radius:999px; color:var(--project-accent); background:color-mix(in srgb,var(--project-accent) 12%,#fff); font-size:.67rem; font-weight:750; }
.dashboard-project-status-arrow { color:#8a969b; font-size:.72rem; }
.dashboard-project-stage-track { display:grid; position:relative; grid-template-columns:repeat(3,1fr); margin:.7rem .2rem 0 3rem; }
.dashboard-project-stage-track::before,.dashboard-project-stage-track::after { content:""; position:absolute; top:5px; right:16.66%; left:16.66%; height:2px; border-radius:2px; background:#dfe6e3; }
.dashboard-project-stage-track::after { right:auto; width:var(--project-progress); background:var(--project-accent); }
.dashboard-project-stage { position:relative; z-index:1; text-align:center; }
.dashboard-project-stage i { display:block; width:11px; height:11px; margin:0 auto .25rem; border:2px solid #d3ddda; border-radius:50%; background:#fff; }
.dashboard-project-stage small { color:#929da1; font-size:.61rem; font-weight:650; }
.dashboard-project-stage.is-complete i,.dashboard-project-stage.is-current i { border-color:var(--project-accent); background:var(--project-accent); }
.dashboard-project-stage.is-current i { box-shadow:0 0 0 4px color-mix(in srgb,var(--project-accent) 15%,transparent); }
.dashboard-project-stage.is-complete small,.dashboard-project-stage.is-current small { color:var(--project-accent); }
.dashboard-activity-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; background:linear-gradient(110deg,#fff 0%,#f3f9fb 100%); }
.dashboard-activity-list { display:grid; }
.dashboard-activity-item { --activity-accent:#2b8b69; display:flex; position:relative; align-items:flex-start; gap:.7rem; min-width:0; padding:.8rem .9rem .8rem 1rem; border-bottom:1px solid var(--mine-border); color:var(--mine-navy); text-decoration:none; transition:background-color .18s ease; }
.dashboard-activity-item:last-child { border-bottom:0; }
.dashboard-activity-item:hover,.dashboard-activity-item:focus-visible { color:var(--mine-navy); background:#f7faf9; outline:none; }
.dashboard-activity-line { position:absolute; z-index:0; top:2.5rem; bottom:-.8rem; left:1.73rem; width:2px; background:#e1e8e5; }
.dashboard-activity-item:last-child .dashboard-activity-line { display:none; }
.dashboard-activity-icon { display:grid; position:relative; z-index:1; flex:0 0 34px; width:34px; height:34px; place-items:center; border:3px solid #fff; border-radius:10px; color:var(--activity-accent); background:color-mix(in srgb,var(--activity-accent) 13%,#fff); box-shadow:0 0 0 1px color-mix(in srgb,var(--activity-accent) 22%,#fff); font-size:.82rem; }
.dashboard-activity-copy { display:flex; min-width:0; flex:1; flex-direction:column; padding-top:.05rem; }
.dashboard-activity-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.79rem; }
.dashboard-activity-copy small { margin-top:.12rem; overflow:hidden; color:#77858b; font-size:.68rem; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-activity-copy span { margin-top:.24rem; color:#56646b; font-size:.7rem; line-height:1.25; }
.dashboard-activity-time { display:flex; flex:0 0 auto; align-items:center; gap:.35rem; padding-top:.15rem; color:#89959a; font-size:.64rem; }
.dashboard-activity-time i { color:var(--activity-accent); }
.activity-danger { --activity-accent:#c64b58; } .activity-warning { --activity-accent:#c47f25; } .activity-gold { --activity-accent:#b77a13; }
.activity-info { --activity-accent:#2c8196; } .activity-success { --activity-accent:#38815f; } .activity-green { --activity-accent:#2b8b69; }
.clickable-row { cursor:pointer; transition:background-color .15s ease; }
.clickable-row:hover td, .clickable-row:focus td { background:#f1f8f5; }
.clickable-row:focus { outline:2px solid rgba(31,114,87,.35); outline-offset:-2px; }

.section-kicker { font-size: .7rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: #7d8b93; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; margin-right: .4rem; }
.status-ok { background:#27a36f; box-shadow: 0 0 0 4px rgba(39,163,111,.12); }
.status-warning { background:#e0a529; box-shadow: 0 0 0 4px rgba(224,165,41,.13); }
.status-danger { background:#dc5964; box-shadow: 0 0 0 4px rgba(220,89,100,.12); }
.badge-soft-success { background:#e4f4ed; color:#187052; }
.badge-soft-warning { background:#fff3d7; color:#98640b; }
.badge-soft-info { background:#e3f3f7; color:#176a7d; }
.badge-soft-danger { background:#fde8ea; color:#ad3440; }
.badge-soft-secondary { background:#edf0f2; color:#52616a; }
.badge-soft-primary { background:#e8effb; color:#2f5d9b; }
.badge { font-weight: 600; }
.organization-note-indicator { padding: .05rem .25rem; border: 0; color: var(--mine-gold); background: transparent; }
.organization-note-indicator:hover, .organization-note-indicator:focus { color: #a66b08; background: #fff3d7; }
.tooltip-inner { max-width: 360px; text-align: left; white-space: pre-line; }

.mini-chart { height: 210px; display: flex; align-items: flex-end; gap: 8px; padding-top: 1rem; border-bottom: 1px solid var(--mine-border); background-image: linear-gradient(to bottom, transparent 49%, #edf0f2 50%, transparent 51%); background-size: 100% 33%; }
.mini-chart .bar { flex: 1; min-width: 12px; background: linear-gradient(180deg, #3b9d79, #1f7257); border-radius: 5px 5px 0 0; position: relative; opacity: .9; }
.mini-chart .bar:hover { opacity: 1; }
.mini-chart .bar::after { content: attr(data-label); position: absolute; bottom: -1.6rem; width: 100%; text-align: center; font-size: .68rem; color: #7d8b93; }
.progress-thin { height: 6px; }
.activity-line { position: relative; padding-left: 1.8rem; padding-bottom: 1.2rem; }
.activity-line:not(:last-child)::before { content:""; position:absolute; left:.36rem; top:.8rem; bottom:-.2rem; border-left:1px solid #d8e0e4; }
.activity-line::after { content:""; position:absolute; left:0; top:.3rem; width:.75rem; height:.75rem; border-radius:50%; background:var(--mine-green); box-shadow:0 0 0 4px var(--mine-green-soft); }
.activity-line small { color:#809099; }

.table-modern { margin-bottom: 0; }
.table-modern thead th { color:#78868e; font-size:.68rem; text-transform:uppercase; letter-spacing:.07em; border-bottom-width:1px; white-space:nowrap; }
.table-modern tbody td { vertical-align:middle; padding-block:.85rem; }
.sample-code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight:700; color:var(--mine-navy); }
.initial-badge { width:34px; height:34px; display:inline-grid; place-items:center; border-radius:9px; background:var(--mine-green-soft); color:var(--mine-green); font-weight:700; }
.filter-strip { padding:.9rem; background:#f7f9fa; border:1px solid var(--mine-border); border-radius:10px; }
.grid-sort { color:inherit; text-decoration:none; display:inline-flex; gap:.3rem; align-items:center; }
.grid-sort:hover { color:var(--mine-green); }
.table-modern .btn-group form { display:flex; }
.form-label { color:var(--mine-navy); font-weight:600; margin-bottom:.35rem; }
.form-section-title { color:var(--mine-green); font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding-bottom:.55rem; border-bottom:1px solid var(--mine-border); margin:1.5rem 0 1rem; }
.form-section-title:first-of-type { margin-top:0; }
.font-monospace { font-size:.88rem; }

.license-card { border-left: 4px solid var(--mine-green); }
.license-card.warning { border-left-color: var(--mine-gold); }
.project-progress { display:flex; gap:.3rem; }
.project-progress span { height:5px; flex:1; border-radius:5px; background:#e3e8ea; }
.project-progress span.done { background:var(--mine-green); }
.sync-device { display:flex; align-items:center; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--mine-border); }
.sync-device:last-child { border-bottom:0; }
.device-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:12px; background:var(--mine-stone); font-size:1.25rem; }

.custody-timeline { display:grid; grid-template-columns:repeat(4,1fr); position:relative; gap:1rem; margin:1.5rem 0; }
.custody-timeline::before { content:""; position:absolute; top:22px; left:10%; right:10%; height:2px; background:#dfe5e8; }
.custody-step { position:relative; text-align:center; z-index:1; }
.custody-step .step-icon { width:46px; height:46px; display:grid; place-items:center; margin:0 auto .55rem; border-radius:50%; background:#fff; border:2px solid #cad4d9; }
.custody-step.done .step-icon { background:var(--mine-green); border-color:var(--mine-green); color:#fff; }
.custody-step.current .step-icon { background:#fff7e7; border-color:var(--mine-gold); color:#9d680b; }

.qaqc-gauge { --value: 92%; width:142px; aspect-ratio:1; border-radius:50%; background:conic-gradient(var(--mine-green) var(--value), #e4e9eb 0); display:grid; place-items:center; margin:auto; }
.qaqc-gauge::before { content:""; width:106px; aspect-ratio:1; border-radius:50%; background:#fff; }
.qaqc-gauge strong { position:absolute; font-size:1.75rem; color:var(--mine-navy); }

.map-shell { min-height:570px; position:relative; overflow:hidden; background-color:#dfe7e4; background-image:linear-gradient(35deg, transparent 48%, rgba(70,110,95,.15) 49%, rgba(70,110,95,.15) 51%, transparent 52%), linear-gradient(-55deg, transparent 48%, rgba(70,110,95,.12) 49%, rgba(70,110,95,.12) 51%, transparent 52%); background-size:110px 90px, 150px 130px; }
.map-shell::after { content:""; position:absolute; inset:8% 16% 12% 12%; border:3px dashed rgba(31,114,87,.55); border-radius:46% 31% 39% 28%; transform:rotate(-6deg); background:rgba(31,114,87,.05); }
.map-toolbar { position:absolute; z-index:4; top:1rem; left:1rem; right:1rem; display:flex; justify-content:space-between; pointer-events:none; }
.map-toolbar > * { pointer-events:auto; }
.map-layer-panel { position:absolute; z-index:4; right:1rem; bottom:1rem; width:220px; background:rgba(255,255,255,.94); border-radius:12px; padding:1rem; box-shadow:0 6px 24px rgba(23,37,46,.16); }
.map-pin { position:absolute; z-index:3; width:24px; height:24px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:var(--mine-green); border:3px solid #fff; box-shadow:0 3px 8px rgba(0,0,0,.22); }
.map-pin.warning { background:var(--mine-gold); }
.map-pin.core { background:#347da2; }
.map-pin:nth-of-type(1) { left:29%; top:33%; }.map-pin:nth-of-type(2) { left:47%; top:52%; }.map-pin:nth-of-type(3) { left:62%; top:27%; }.map-pin:nth-of-type(4) { left:70%; top:64%; }.map-pin:nth-of-type(5) { left:38%; top:71%; }
.map-scale { position:absolute; z-index:3; left:1rem; bottom:1rem; font-size:.7rem; border-bottom:3px solid #33454f; width:100px; text-align:center; }
.interactive-map { width:100%; min-height:640px; z-index:1; background:#dfe7e4; }
.map-search-panel { position:absolute; z-index:500; top:1rem; left:3.6rem; width:min(360px,calc(100% - 5rem)); }
.map-search-results { background:#fff; border:1px solid var(--mine-border); border-radius:0 0 10px 10px; overflow:hidden; max-height:290px; overflow-y:auto; }
.map-search-results button { display:block; width:100%; border:0; border-bottom:1px solid var(--mine-border); background:#fff; padding:.65rem .8rem; text-align:left; }
.map-search-results button:hover { background:var(--mine-green-soft); }
.map-search-results small { display:block; color:#75848c; }
.map-click-hint { position:absolute; z-index:400; left:50%; bottom:1rem; transform:translateX(-50%); background:rgba(23,37,46,.88); color:#fff; border-radius:999px; padding:.45rem .8rem; font-size:.75rem; white-space:nowrap; pointer-events:none; }
.mobile-map-hint { display:none; }
.leaflet-popup-content a { color:var(--mine-green); font-weight:700; }

.empty-state { padding:3rem 1rem; text-align:center; color:#75848c; }
.empty-state i { font-size:2.4rem; color:#a7b4ba; }

/* Consultant workspace */
.consulting-stat .card-body { position:relative; padding:1.15rem; }
.consulting-stat-icon { position:absolute; top:1rem; right:1rem; width:38px; height:38px; display:grid; place-items:center; border-radius:10px; font-size:1.05rem; }
.consulting-stat-value { color:var(--mine-navy); font-size:1.75rem; font-weight:750; line-height:1; margin:.2rem 3rem .55rem 0; }
.consulting-stat-label { color:#72818a; font-size:.78rem; font-weight:600; }
.consulting-jumpbar { display:flex; flex-wrap:wrap; gap:.45rem; padding:.55rem; border:1px solid var(--mine-border); border-radius:12px; background:#fff; box-shadow:0 2px 10px rgba(29,45,55,.04); }
.consulting-jumpbar a { display:flex; align-items:center; gap:.4rem; padding:.5rem .75rem; border-radius:8px; color:#52616a; font-size:.84rem; font-weight:650; text-decoration:none; }
.consulting-jumpbar a:hover { color:var(--mine-green); background:var(--mine-green-soft); }
.consulting-section-header, .consulting-form-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.consulting-section-header > div, .consulting-form-header { justify-content:flex-start; }
.consulting-section-header > div { display:flex; align-items:center; gap:.75rem; }
.consulting-section-header p, .consulting-form-header p { font-size:.82rem; }
.section-icon { flex:0 0 42px; width:42px; height:42px; display:grid; place-items:center; border-radius:11px; font-size:1.1rem; }
.consulting-table tbody tr:last-child td { border-bottom:0; }
.consulting-table .btn { white-space:nowrap; }
.expense-review-row td { background:#fffaf0; padding:.7rem 1rem !important; }
.review-note { max-width:330px; }
.consulting-form .card { overflow:visible; }
.consulting-form .form-control, .consulting-form .form-select, .consulting-form .input-group-text { min-height:44px; }
.current-file { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1rem; border:1px solid #cfe3d9; border-radius:10px; background:#f5fbf8; }
.current-file > div { display:flex; align-items:center; gap:.75rem; min-width:0; }
.current-file-icon { flex:0 0 38px; width:38px; height:38px; display:grid; place-items:center; border-radius:9px; color:var(--mine-green); background:var(--mine-green-soft); font-size:1.05rem; }
.file-drop-field { display:flex; align-items:center; justify-content:center; gap:.9rem; min-height:116px; padding:1rem; border:1.5px dashed #b9c7cd; border-radius:12px; color:#52616a; background:#fafbfb; cursor:pointer; text-align:left; transition:border-color .2s, background-color .2s; }
.file-drop-field:hover, .file-drop-field:focus-within { border-color:var(--mine-green); background:var(--mine-green-soft); }
.file-drop-field > i { color:var(--mine-green); font-size:1.9rem; }
.file-drop-field span { display:flex; flex-direction:column; }
.file-drop-field small { margin-top:.15rem; color:#7c8a92; font-weight:400; }
.file-drop-field input { position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; }

/* Drilling and field workspace */
.drilling-stat .card-body { position:relative; padding:1.15rem; }
.drilling-stat .section-icon { position:absolute; top:1rem; right:1rem; width:38px; height:38px; font-size:1rem; }
.drilling-stat-value { margin:.15rem 3rem .5rem 0; color:var(--mine-navy); font-size:1.72rem; font-weight:750; line-height:1.1; }
.drilling-stat-label { color:#52616a; font-size:.82rem; font-weight:700; }
.drilling-stat small { color:#829098; }
.drilling-jumpbar { display:flex; flex-wrap:wrap; gap:.45rem; padding:.55rem; border:1px solid var(--mine-border); border-radius:12px; background:#fff; box-shadow:0 2px 10px rgba(29,45,55,.04); }
.drilling-jumpbar a { display:flex; align-items:center; gap:.4rem; padding:.5rem .72rem; border-radius:8px; color:#52616a; font-size:.84rem; font-weight:650; text-decoration:none; }
.drilling-jumpbar a:hover { color:var(--mine-green); background:var(--mine-green-soft); }
.drilling-section-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.drilling-section-header > div { display:flex; align-items:center; gap:.75rem; }
.drilling-section-header p, .drilling-form-header p { font-size:.82rem; }
.drilling-entry .card-body { padding:1.25rem; }
.drilling-entry-tabs { display:grid; grid-template-columns:repeat(4,1fr); gap:.65rem; }
.drilling-entry-tabs .nav-link { display:flex; align-items:center; gap:.75rem; width:100%; min-height:72px; padding:.75rem; border:1px solid var(--mine-border); color:var(--mine-navy); background:#fff; text-align:left; }
.drilling-entry-tabs .nav-link > i { width:38px; height:38px; display:grid; flex:0 0 38px; place-items:center; border-radius:10px; color:var(--mine-green); background:var(--mine-green-soft); font-size:1.05rem; }
.drilling-entry-tabs .nav-link span { display:flex; flex-direction:column; font-size:.88rem; font-weight:700; }
.drilling-entry-tabs .nav-link small { color:#829098; font-size:.72rem; font-weight:500; }
.drilling-entry-tabs .nav-link.active { border-color:var(--mine-green); color:var(--mine-green); background:#f4fbf8; box-shadow:0 0 0 3px rgba(31,114,87,.08); }
.drilling-entry-tabs .nav-link.active > i { color:#fff; background:var(--mine-green); }
.drilling-entry-tabs .nav-link:disabled { opacity:.55; }
.drilling-entry-content { padding:1.1rem; border:1px solid var(--mine-border); border-radius:12px; background:#fafbfb; }
.drilling-entry-content .form-control, .drilling-entry-content .form-select, .drilling-edit-shell .form-control, .drilling-edit-shell .form-select { min-height:44px; }
.drilling-form-actions { display:flex; justify-content:flex-end; gap:.5rem; margin:1.15rem -1.1rem -1.1rem; padding:.9rem 1.1rem; border-top:1px solid var(--mine-border); border-radius:0 0 12px 12px; background:#fff; }
.drilling-table { margin-bottom:0; }
.drilling-table tbody tr:last-child td { border-bottom:0; }
.drilling-table .btn-group form { display:flex; }
.drilling-note { max-width:270px; }
.drilling-edit-shell { max-width:1050px; margin:0 auto; }
.drilling-form-header { display:flex; align-items:center; gap:.8rem; }

/* Compliance workspace */
.compliance-stat .card-body { position:relative; padding:1.1rem; }
.compliance-stat .section-icon { position:absolute; top:.9rem; right:.9rem; width:36px; height:36px; font-size:.95rem; }
.compliance-stat-value { margin:.15rem 2.7rem .45rem 0; color:var(--mine-navy); font-size:1.65rem; font-weight:750; line-height:1.1; }
.compliance-stat-label { color:#52616a; font-size:.8rem; font-weight:700; }
.compliance-stat small { color:#829098; font-size:.72rem; }
.compliance-stat-alert { border-color:#efc3c7; }
.compliance-stat-alert::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:#dc5964; }
.compliance-section-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.compliance-section-header > div { display:flex; align-items:center; gap:.75rem; }
.compliance-section-header p, .compliance-form-header p { font-size:.82rem; }
.compliance-entry .form-control, .compliance-entry .form-select, .compliance-edit-shell .form-control, .compliance-edit-shell .form-select { min-height:44px; }
.compliance-filters { padding:0; border:0; background:transparent; }
.compliance-table { margin-bottom:0; }
.compliance-table tbody tr:last-child td { border-bottom:0; }
.compliance-table .btn-group form { display:flex; }
.compliance-row td:first-child { border-left:3px solid transparent; }
.compliance-row-critical td:first-child { border-left-color:#9f1d2b; }
.compliance-row-critical { background:rgba(159,29,43,.025); }
.compliance-row-overdue td:first-child { border-left-color:#dc5964; }
.compliance-row-urgent td:first-child { border-left-color:var(--mine-gold); }
.compliance-row-warning td:first-child, .compliance-row-upcoming td:first-child { border-left-color:#e7bc5a; }
.compliance-row-completed { opacity:.76; }
.compliance-category-icon { flex:0 0 36px; width:36px; height:36px; display:grid; place-items:center; border-radius:9px; color:var(--mine-green); background:var(--mine-green-soft); }
.compliance-category-environment { color:#47770f; background:#edf7df; }
.compliance-category-inspection { color:#7b5b17; background:#fff3d7; }
.compliance-category-permit { color:#176a7d; background:#e3f3f7; }
.compliance-category-commitment { color:#6b5796; background:#f0eafb; }
.compliance-description { max-width:330px; }
.compliance-status-select { min-width:118px; }
.compliance-edit-shell { max-width:1250px; margin:0 auto; }
.compliance-form-header { display:flex; align-items:center; gap:.8rem; }
.compliance-evidence-card { overflow:visible; }
.compliance-evidence-list { border-top:1px solid var(--mine-border); }
.compliance-evidence-item { display:flex; align-items:center; gap:.7rem; padding:.85rem 1rem; border-bottom:1px solid var(--mine-border); color:var(--mine-navy); text-decoration:none; }
.compliance-evidence-item:last-child { border-bottom:0; }
.compliance-evidence-item:hover { background:var(--mine-green-soft); color:var(--mine-green); }
.compliance-evidence-item > span:nth-child(2) { display:flex; min-width:0; flex-direction:column; }
.compliance-evidence-item strong { max-width:190px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.82rem; }
.compliance-evidence-item small { color:#829098; font-size:.72rem; }
.hse-shell { max-width:1450px; margin:0 auto; }
.hse-stat .card-body { position:relative; display:flex; min-height:96px; flex-direction:column; justify-content:center; padding:1rem 1.2rem; border-left:4px solid var(--mine-green); }
.hse-stat i { position:absolute; top:1rem; right:1rem; color:var(--mine-green); font-size:1.3rem; opacity:.75; }
.hse-stat strong { color:var(--mine-navy); font-size:1.65rem; line-height:1; }
.hse-stat span { margin-top:.45rem; color:#68777f; font-size:.78rem; font-weight:700; }
.hse-stat-danger .card-body { border-left-color:#c53d4d; } .hse-stat-danger i { color:#c53d4d; }
.hse-stat-warning .card-body { border-left-color:#d8a128; } .hse-stat-warning i { color:#d8a128; }
.hse-table th { white-space:nowrap; } .hse-table td { padding:.85rem .75rem; }
.hse-risk { display:inline-grid; min-width:58px; min-height:30px; place-items:center; border-radius:8px; font-size:.78rem; font-weight:800; }
.hse-risk-lg { min-width:70px; min-height:48px; font-size:1rem; }
.hse-risk-low { color:#31714c; background:#e3f4e9; } .hse-risk-medium { color:#876318; background:#fff3cf; }
.hse-risk-high { color:#a34b10; background:#ffeadb; } .hse-risk-critical { color:#9f1d2b; background:#fbe1e4; }
.hse-timeline > div { position:relative; display:flex; flex-direction:column; padding:0 0 1rem 1.25rem; border-left:2px solid #d9e3df; }
.hse-timeline > div:last-child { padding-bottom:0; } .hse-timeline > div > span { position:absolute; top:.2rem; left:-5px; width:8px; height:8px; border-radius:50%; background:var(--mine-green); }
.hse-timeline strong { color:var(--mine-navy); font-size:.82rem; } .hse-timeline small { color:#819098; font-size:.72rem; }
.environmental-shell { max-width:1450px; margin:0 auto; }
.environmental-stat .card-body { position:relative; display:flex; min-height:92px; flex-direction:column; justify-content:center; padding:1rem; border-top:3px solid #4d8d70; }
.environmental-stat i { position:absolute; top:.9rem; right:1rem; color:#4d8d70; font-size:1.2rem; } .environmental-stat strong { color:var(--mine-navy); font-size:1.55rem; line-height:1; } .environmental-stat span { margin-top:.45rem; color:#68777f; font-size:.76rem; font-weight:700; }
.environmental-stat-danger .card-body { border-top-color:#c54854; } .environmental-stat-danger i { color:#c54854; } .environmental-stat-warning .card-body { border-top-color:#d5a229; } .environmental-stat-warning i { color:#d5a229; }
.environmental-category { display:inline-grid; width:38px; height:38px; place-items:center; border-radius:10px; color:#28745a; background:#e2f3eb; font-size:1.05rem; }
.environmental-category-water { color:#207890; background:#e1f3f8; } .environmental-category-dust { color:#806b3b; background:#f6efd9; } .environmental-category-noise { color:#735595; background:#efe7f7; } .environmental-category-waste { color:#466c2c; background:#e7f2df; } .environmental-category-rehabilitation { color:#267049; background:#dff2e7; }
.environmental-table td { padding:.85rem .7rem; } .environmental-status { color:#56636a; background:#edf0f1; } .environmental-status-compliant,.environmental-status-resolved { color:#27714c; background:#dcf1e5; } .environmental-status-non_compliant { color:#9b2937; background:#f9dfe3; } .environmental-status-action_open { color:#8b6314; background:#fff0c9; }
.environmental-result { display:flex; min-height:125px; flex-direction:column; align-items:center; justify-content:center; border:1px solid var(--mine-border); border-radius:12px; background:#f7f9f8; } .environmental-result small { color:#77858c; } .environmental-result strong { margin:.3rem 0; color:var(--mine-navy); font-size:1.8rem; } .environmental-result span { font-size:.78rem; font-weight:800; text-transform:uppercase; }
.environmental-result-non_compliant,.environmental-result-action_open { border-color:#ecc2c7; background:#fff6f7; } .environmental-result-non_compliant span,.environmental-result-action_open span { color:#ad3040; } .environmental-result-compliant,.environmental-result-resolved { border-color:#bcdccc; background:#f3fbf7; } .environmental-result-compliant span,.environmental-result-resolved span { color:#27714c; }
.environmental-timeline > div { position:relative; padding:0 0 1rem 1.2rem; border-left:2px solid #d7e4dd; } .environmental-timeline > div:last-child { padding-bottom:0; } .environmental-timeline > div > span { position:absolute; top:.25rem; left:-5px; width:8px; height:8px; border-radius:50%; background:#4d8d70; } .environmental-timeline strong,.environmental-timeline small { display:block; } .environmental-timeline strong { font-size:.82rem; } .environmental-timeline small { color:#819098; font-size:.72rem; } .environmental-timeline p { margin:.35rem 0 0; font-size:.78rem; }
.contractor-shell { max-width:1450px; margin:0 auto; } .contractor-stat .card-body { position:relative; display:flex; min-height:92px; flex-direction:column; justify-content:center; padding:1rem; border-left:3px solid #68777f; } .contractor-stat i { position:absolute; top:.9rem; right:1rem; color:#68777f; font-size:1.15rem; } .contractor-stat strong { color:var(--mine-navy); font-size:1.55rem; line-height:1; } .contractor-stat span { margin-top:.45rem; color:#68777f; font-size:.75rem; font-weight:700; } .contractor-stat-success .card-body { border-left-color:#3b8060; } .contractor-stat-success i { color:#3b8060; } .contractor-stat-danger .card-body { border-left-color:#c54854; } .contractor-stat-danger i { color:#c54854; } .contractor-stat-warning .card-body { border-left-color:#d5a229; } .contractor-stat-warning i { color:#d5a229; } .contractor-stat-info .card-body { border-left-color:#39839a; } .contractor-stat-info i { color:#39839a; }
.contractor-card { border-left:4px solid #cbd6d1 !important; } .contractor-card-alert { border-left-color:#c54854 !important; } .contractor-logo { display:inline-grid; flex:0 0 44px; width:44px; height:44px; place-items:center; border-radius:12px; color:#fff; background:linear-gradient(145deg,var(--mine-green),#70a68e); font-weight:800; }
.contractor-form-section { padding:1rem; border:1px solid var(--mine-border); border-radius:12px; background:#fbfcfc; } .contractor-form-title { display:flex; align-items:center; gap:.75rem; margin-bottom:1rem; padding-bottom:.8rem; border-bottom:1px solid var(--mine-border); } .contractor-form-title > i,.contractor-section-head > div > i { display:grid; width:36px; height:36px; place-items:center; border-radius:9px; color:var(--mine-green); background:var(--mine-green-soft); } .contractor-form-title strong,.contractor-form-title small { display:block; } .contractor-form-title small,.contractor-section-head small { color:#7d8b91; font-size:.74rem; }
.contractor-section-head > div { display:flex; align-items:center; gap:.7rem; } .contractor-section-head span,.contractor-section-head strong,.contractor-section-head small { display:block; } .contractor-access { display:flex; min-height:125px; flex-direction:column; align-items:center; justify-content:center; border-radius:12px; } .contractor-access i { font-size:1.8rem; } .contractor-access strong { margin:.3rem 0; } .contractor-access small { color:#68777f; } .contractor-access-valid { color:#28734e; background:#e8f6ee; } .contractor-access-invalid { color:#9b3440; background:#fbe9eb; }
.contractor-timeline > div { position:relative; padding:0 0 1rem 1.2rem; border-left:2px solid #d7e0dc; } .contractor-timeline > div:last-child { padding-bottom:0; } .contractor-timeline > div > span { position:absolute; top:.25rem; left:-5px; width:8px; height:8px; border-radius:50%; background:var(--mine-green); } .contractor-timeline strong,.contractor-timeline small { display:block; } .contractor-timeline strong { font-size:.82rem; } .contractor-timeline small { color:#819098; font-size:.72rem; } .contractor-timeline p { margin:.3rem 0 0; font-size:.78rem; }
.finance-shell { max-width:1500px; margin:0 auto; } .purchase-shell { max-width:1250px; margin:0 auto; } .finance-stat .card-body { position:relative; display:flex; min-height:95px; flex-direction:column; justify-content:center; padding:.95rem; border-top:3px solid #304b5a; } .finance-stat i { position:absolute; top:.8rem; right:.9rem; color:#637681; } .finance-stat strong { max-width:90%; color:var(--mine-navy); font-size:1rem; line-height:1.15; } .finance-stat span { margin-top:.45rem; color:#718087; font-size:.7rem; font-weight:700; } .finance-stat-green .card-body { border-top-color:#38805d; } .finance-stat-danger .card-body { border-top-color:#c14855; } .finance-stat-orange .card-body { border-top-color:#ce792f; } .finance-stat-purple .card-body { border-top-color:#7b5aa2; } .finance-stat-blue .card-body { border-top-color:#397f98; }
.finance-category { display:grid; width:34px; height:34px; place-items:center; border-radius:9px; color:var(--mine-green); background:var(--mine-green-soft); } .finance-table td { padding:.8rem .65rem; } .purchase-amount { display:flex; min-height:130px; flex-direction:column; align-items:center; justify-content:center; border-radius:12px; color:#fff; background:linear-gradient(145deg,var(--mine-navy),#426575); } .purchase-amount small { opacity:.75; } .purchase-amount strong { margin:.3rem 0; font-size:1.75rem; } .purchase-amount span { max-width:90%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.78rem; opacity:.85; } .purchase-mini { padding:.8rem; border:1px solid var(--mine-border); border-radius:9px; background:#f8faf9; } .purchase-mini small,.purchase-mini strong { display:block; } .purchase-mini small { color:#7d8b91; font-size:.68rem; } .purchase-mini strong { margin-top:.2rem; color:var(--mine-navy); }
.finance-timeline > div { position:relative; padding:0 0 1rem 1.2rem; border-left:2px solid #d7e0dc; } .finance-timeline > div:last-child { padding-bottom:0; } .finance-timeline > div > span { position:absolute; top:.25rem; left:-5px; width:8px; height:8px; border-radius:50%; background:#426575; } .finance-timeline strong,.finance-timeline small { display:block; } .finance-timeline strong { font-size:.82rem; } .finance-timeline small { color:#819098; font-size:.72rem; } .finance-timeline p { margin:.3rem 0 0; font-size:.78rem; }
.gis-shell { max-width:1550px; margin:0 auto; } .gis-project-summary { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:0 .75rem; padding:.45rem .8rem; border-left:3px solid var(--mine-green); background:#f5f9f7; } .gis-project-summary small { grid-column:1/-1; color:#75858b; font-size:.65rem; font-weight:800; } .gis-project-summary strong { color:var(--mine-green); font-size:1.45rem; } .gis-project-summary span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--mine-navy); font-size:.78rem; font-weight:700; }
.gis-section-head,.gis-section-head > div { display:flex; align-items:center; justify-content:space-between; gap:.75rem; } .gis-section-head > div > i { display:grid; width:36px; height:36px; place-items:center; border-radius:9px; color:var(--mine-green); background:var(--mine-green-soft); } .gis-section-head small { color:#7d8b91; font-size:.73rem; }
.gis-layer-item { display:flex; align-items:center; gap:.8rem; padding:.9rem 1rem; border-bottom:1px solid var(--mine-border); } .gis-layer-item:last-child { border-bottom:0; } .gis-layer-icon { flex:0 0 40px; display:grid; width:40px; height:40px; place-items:center; border-radius:10px; color:#28775a; background:#e2f3eb; } .gis-layer-kml { color:#a05c1d; background:#fff0df; } .gis-layer-geojson { color:#6d55a4; background:#eee9f8; } .gis-layer-info { display:flex; min-width:0; flex:1; flex-direction:column; } .gis-layer-info strong,.gis-layer-info small,.gis-layer-info span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .gis-layer-info small { color:#7b898f; font-size:.72rem; } .gis-layer-info span { margin-top:.2rem; color:#56646b; font-size:.75rem; } .gis-layer-actions { display:flex; gap:.3rem; }
.gis-help { display:flex; gap:.8rem; margin-bottom:1rem; } .gis-help:last-child { margin-bottom:0; } .gis-help > i { flex:0 0 36px; display:grid; width:36px; height:36px; place-items:center; border-radius:9px; color:var(--mine-green); background:var(--mine-green-soft); } .gis-help strong { color:var(--mine-navy); font-size:.82rem; } .gis-help p { margin:.2rem 0 0; color:#68777f; font-size:.76rem; line-height:1.45; } .gis-bounds-field { padding:1rem; border:1px solid var(--mine-border); border-radius:10px; background:#f8faf9; } .gis-bounds-field strong,.gis-bounds-field small { display:block; } .gis-bounds-field small { color:#7c8b91; font-size:.72rem; }
.gis-comparison-legend { display:flex; flex-wrap:wrap; gap:1rem; padding:.75rem 1rem; border-radius:9px; background:#f6f8f7; font-size:.78rem; font-weight:700; } .gis-comparison-legend span { display:flex; align-items:center; gap:.4rem; } .gis-swatch { width:12px; height:12px; border-radius:3px; background:#83949b; opacity:.35; } .gis-swatch-after { background:var(--mine-green); opacity:.8; }

/* Offline synchronization */
.sync-stat .card-body { position:relative; padding:1.15rem; }
.sync-stat .section-icon { position:absolute; top:1rem; right:1rem; }
.sync-stat-value { margin:.25rem 3rem .25rem 0; font-size:2rem; font-weight:750; line-height:1; }
.sync-explanation .section-icon { flex:0 0 42px; }
.sync-table { margin-bottom:0; }
.sync-table tbody tr:last-child td { border-bottom:0; }
.sync-table .btn-group form, .modal-footer form { display:flex; }
.sync-detail-metric { height:100%; padding:.85rem 1rem; border:1px solid var(--mine-border); border-radius:10px; background:#f8faf9; }
.sync-detail-metric small { display:block; margin-bottom:.25rem; color:#7d8b93; font-size:.7rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.sync-detail-metric strong { color:var(--mine-navy); font-size:.9rem; }
.sync-detail-list { display:grid; gap:0; margin:0; border:1px solid var(--mine-border); border-radius:10px; overflow:hidden; }
.sync-detail-list > div { display:grid; grid-template-columns:minmax(125px, 38%) 1fr; gap:1rem; padding:.65rem .8rem; border-bottom:1px solid var(--mine-border); }
.sync-detail-list > div:last-child { border-bottom:0; }
.sync-detail-list dt { color:#7d8b93; font-size:.76rem; font-weight:650; }
.sync-detail-list dd { margin:0; color:var(--mine-navy); font-size:.82rem; overflow-wrap:anywhere; }

/* Global search */
.global-search-header { position:relative; width:min(42vw,560px); margin-inline:auto; align-items:center; }
.global-search-header > i { position:absolute; z-index:2; left:.85rem; color:#718087; pointer-events:none; }
.global-search-header input { width:100%; height:38px; padding:0 2.7rem 0 2.35rem; border:1px solid #d6dfdc; border-radius:10px; color:var(--mine-navy); background:#f6f9f8; font-size:.82rem; outline:0; transition:border-color .18s ease,box-shadow .18s ease,background .18s ease; }
.global-search-header input:focus { border-color:#83b9a2; background:#fff; box-shadow:0 0 0 .2rem rgba(42,142,105,.12); }
.global-search-header kbd { position:absolute; right:.65rem; padding:.12rem .38rem; border:1px solid #d4ddda; color:#75838a; background:#fff; box-shadow:none; font-size:.68rem; }
.global-search-shell { max-width:1320px; margin:0 auto; }
.global-search-panel { overflow:hidden; border-top:3px solid var(--mine-green); }
.global-search-panel .input-group-text { color:var(--mine-green); background:#f2f8f5; }
.global-search-group { overflow:hidden; }
.global-search-group .card-header { min-height:66px; padding:.85rem 1rem; background:#fbfcfc; }
.global-search-group .section-icon { display:grid; width:36px; height:36px; place-items:center; border-radius:10px; color:var(--mine-green); background:var(--mine-green-soft); }
.global-search-result { display:flex; min-height:74px; align-items:center; gap:.85rem; padding:.8rem 1rem; border-color:var(--mine-border); }
.global-search-result-icon { display:grid; flex:0 0 38px; width:38px; height:38px; place-items:center; border-radius:10px; color:#46616d; background:#edf2f1; }
.global-search-result-copy { display:flex; min-width:0; flex:1; flex-direction:column; }
.global-search-result-copy strong,.global-search-result-copy small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.global-search-result-copy strong { color:var(--mine-navy); font-size:.88rem; }
.global-search-result-copy small { margin-top:.15rem; color:#76858c; font-size:.73rem; }
.global-search-result-status { max-width:145px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.global-search-result-arrow { color:#9aa6aa; font-size:.75rem; }
.global-search-welcome .section-icon { display:grid; width:54px; height:54px; place-items:center; border-radius:15px; color:var(--mine-green); background:var(--mine-green-soft); font-size:1.35rem; }
.recent-record-card { color:inherit; border-top:3px solid transparent; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.recent-record-card:hover { transform:translateY(-2px); border-top-color:var(--mine-green); box-shadow:0 .7rem 1.5rem rgba(29,51,61,.1); }
.recent-record-icon { display:grid; width:40px; height:40px; place-items:center; border-radius:11px; color:var(--mine-green); background:var(--mine-green-soft); font-size:1.05rem; }
.recent-record-card strong,.recent-record-subtitle { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.recent-record-card strong { color:var(--mine-navy); font-size:.9rem; }
.recent-record-subtitle { margin-top:.25rem; color:#76858c; font-size:.73rem; }
.recent-record-meta { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin-top:1rem; padding-top:.7rem; border-top:1px solid var(--mine-border); color:#7b898f; font-size:.68rem; }
.recent-record-meta span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:700; }
.recent-record-meta time { flex:0 0 auto; }
.saved-filter-bar { display:flex; min-height:58px; align-items:center; justify-content:space-between; gap:1rem; padding:.65rem .8rem; border:1px solid var(--mine-border); border-radius:12px; background:#fff; box-shadow:0 .15rem .45rem rgba(29,51,61,.04); }
.saved-filter-copy { display:flex; min-width:0; align-items:center; gap:.7rem; }
.saved-filter-copy strong,.saved-filter-copy small { display:block; }
.saved-filter-copy strong { color:var(--mine-navy); font-size:.82rem; }
.saved-filter-copy small { color:#7b898f; font-size:.7rem; }
.saved-filter-icon { display:grid; flex:0 0 36px; width:36px; height:36px; place-items:center; border-radius:9px; color:var(--mine-green); background:var(--mine-green-soft); }
.saved-filter-menu { min-width:280px; padding:.4rem; }
.saved-filter-menu-item { display:flex; align-items:center; gap:.3rem; border-radius:7px; }
.saved-filter-menu-item:hover { background:#f3f7f5; }
.saved-filter-menu-item > a { display:flex; min-width:0; flex:1; align-items:center; padding:.55rem .65rem; color:var(--mine-navy); text-decoration:none; font-size:.8rem; }
.saved-filter-menu-item > a span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.saved-filter-menu-item form button { display:grid; width:30px; height:30px; place-items:center; border:0; border-radius:7px; color:#a4434e; background:transparent; }
.saved-filter-menu-item form button:hover { background:#fbe7e9; }
.list-preference-toolbar { display:flex; align-items:center; justify-content:flex-end; gap:.75rem; color:#76858c; font-size:.72rem; }
.list-preference-toolbar > span { white-space:nowrap; }
.list-preference-columns { display:grid; grid-template-columns:1fr 1fr; gap:.45rem .75rem; padding:.7rem; border:1px solid var(--mine-border); border-radius:10px; background:#f8faf9; }
.list-preference-columns .form-check { min-height:32px; margin:0; padding:.35rem .5rem .35rem 2rem; border-radius:7px; background:#fff; }
.list-preference-columns .form-check-label { display:flex; align-items:center; justify-content:space-between; gap:.5rem; width:100%; color:var(--mine-navy); font-size:.8rem; }
.list-preference-columns .form-check-label small { color:#8b989e; font-size:.62rem; font-weight:700; text-transform:uppercase; }
.table.list-density-compact > :not(caption) > * > * { padding-top:.38rem; padding-bottom:.38rem; }
.table.list-density-compact td { font-size:.82rem; }
.table.list-density-compact td small { font-size:.68rem; }
.bulk-action-toolbar { display:flex; min-height:58px; align-items:center; justify-content:space-between; gap:1rem; padding:.55rem .75rem; border-top:1px solid var(--mine-border); border-bottom:1px solid var(--mine-border); background:#f7faf8; }
.bulk-action-summary { display:flex; min-width:0; align-items:center; gap:.65rem; }
.bulk-action-summary strong,.bulk-action-summary small { display:block; }
.bulk-action-summary strong { color:var(--mine-navy); font-size:.8rem; }
.bulk-action-summary small { color:#7c8b91; font-size:.68rem; }
.bulk-action-icon { display:grid; flex:0 0 32px; width:32px; height:32px; place-items:center; border-radius:8px; color:var(--mine-green); background:var(--mine-green-soft); }
.bulk-action-form { display:flex; align-items:center; gap:.5rem; }
.bulk-action-form .form-select { width:190px; }
.bulk-select-cell { width:42px; text-align:center; }
.bulk-select-cell .form-check-input { float:none; margin:0; cursor:pointer; }
.table > tbody > tr.bulk-row-selected > * { background:#edf7f2; }

/* Task planning views */
.task-workspace { overflow:hidden; }
.task-workspace-header { display:block; padding:0; background:#fff; }
.task-view-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.85rem 1rem; border-bottom:1px solid var(--mine-border); }
.task-view-toolbar > div strong,.task-view-toolbar > div small { display:block; }
.task-view-toolbar > div strong { color:var(--mine-navy); font-size:.9rem; }
.task-view-toolbar > div small { margin-top:.15rem; color:#7a898f; font-size:.7rem; }
.task-view-switcher { display:inline-flex; gap:.25rem; padding:.25rem; border:1px solid var(--mine-border); border-radius:10px; background:#f5f8f7; }
.task-view-switcher a { display:flex; min-height:34px; align-items:center; gap:.4rem; padding:.4rem .7rem; border-radius:7px; color:#68777e; font-size:.76rem; font-weight:700; text-decoration:none; }
.task-view-switcher a:hover { color:var(--mine-green); background:#fff; }
.task-view-switcher a.active { color:#fff; background:var(--mine-green); box-shadow:0 .2rem .5rem rgba(42,101,77,.18); }
.task-filters { padding:.85rem 1rem 1rem; }
.task-kanban { display:grid; grid-template-columns:repeat(4,minmax(270px,1fr)); gap:.8rem; padding:1rem; overflow-x:auto; background:#f5f8f7; }
.task-kanban-column { min-height:430px; overflow:hidden; border:1px solid #dbe4e0; border-radius:12px; background:#edf2f0; }
.task-kanban-column > header { display:flex; align-items:center; justify-content:space-between; padding:.75rem .85rem; border-bottom:1px solid #d8e1dd; background:rgba(255,255,255,.65); }
.task-kanban-column > header > div { display:flex; align-items:center; gap:.5rem; }
.task-kanban-column h3 { margin:0; color:var(--mine-navy); font-size:.8rem; font-weight:800; }
.task-kanban-column > header .badge { color:#53646b; background:#fff; }
.task-kanban-dot { width:9px; height:9px; border-radius:50%; background:#d2a533; box-shadow:0 0 0 3px rgba(210,165,51,.15); }
.task-kanban-in_progress .task-kanban-dot { background:#36839b; box-shadow:0 0 0 3px rgba(54,131,155,.15); }
.task-kanban-completed .task-kanban-dot { background:#34805d; box-shadow:0 0 0 3px rgba(52,128,93,.15); }
.task-kanban-cancelled .task-kanban-dot { background:#849198; box-shadow:0 0 0 3px rgba(132,145,152,.15); }
.task-kanban-stack { display:grid; align-content:start; gap:.65rem; padding:.7rem; }
.task-kanban-card { padding:.8rem; border:1px solid #dce4e1; border-radius:10px; background:#fff; box-shadow:0 .2rem .55rem rgba(28,51,61,.05); }
.task-kanban-card h4 { margin:.65rem 0 .25rem; color:var(--mine-navy); font-size:.88rem; font-weight:750; line-height:1.35; }
.task-kanban-card p { display:-webkit-box; margin:0 0 .65rem; overflow:hidden; color:#718087; font-size:.72rem; line-height:1.45; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.task-kanban-edit { display:grid; width:28px; height:28px; place-items:center; border-radius:7px; color:#708087; background:#f3f6f5; text-decoration:none; }
.task-kanban-edit:hover { color:var(--mine-green); background:var(--mine-green-soft); }
.task-kanban-project { display:flex; min-width:0; align-items:center; gap:.4rem; padding:.42rem .5rem; border-radius:7px; color:#50646d; background:#f3f7f5; font-size:.7rem; font-weight:700; }
.task-kanban-project span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.task-kanban-meta { display:grid; grid-template-columns:1fr; gap:.25rem; margin-top:.6rem; color:#77868c; font-size:.68rem; }
.task-kanban-meta span { display:flex; min-width:0; align-items:center; gap:.35rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.task-kanban-dependency { display:block; margin-top:.45rem; color:#66777e; }
.task-kanban-card .progress { height:5px; background:#e6ece9; }
.task-kanban-card .progress-bar { background:var(--mine-green); }
.task-kanban-card .d-flex > small { color:#66777e; font-size:.66rem; font-weight:800; }
.task-kanban-empty { display:flex; min-height:110px; flex-direction:column; align-items:center; justify-content:center; gap:.45rem; border:1px dashed #cbd7d2; border-radius:9px; color:#8a989d; font-size:.7rem; }
.task-kanban-empty i { font-size:1.2rem; }
.task-calendar-toolbar { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.75rem; padding:.8rem 1rem; border-bottom:1px solid var(--mine-border); }
.task-calendar-toolbar > div { text-align:center; color:var(--mine-navy); }
.task-calendar-toolbar > div a { color:var(--mine-green); font-size:.7rem; font-weight:700; text-decoration:none; }
.task-calendar-scroll { overflow-x:auto; }
.task-calendar { width:100%; min-width:900px; table-layout:fixed; border-collapse:collapse; }
.task-calendar th { padding:.55rem .65rem; border-right:1px solid var(--mine-border); border-bottom:1px solid var(--mine-border); color:#718087; background:#f7f9f8; font-size:.68rem; font-weight:800; text-align:center; text-transform:uppercase; }
.task-calendar th:last-child,.task-calendar td:last-child { border-right:0; }
.task-calendar td { height:130px; padding:.45rem; vertical-align:top; border-right:1px solid var(--mine-border); border-bottom:1px solid var(--mine-border); background:#fff; }
.task-calendar td.is-outside { background:#f7f9f8; opacity:.65; }
.task-calendar td.is-today { box-shadow:inset 0 0 0 2px rgba(42,142,105,.42); }
.task-calendar-day { display:flex; min-height:24px; align-items:center; justify-content:space-between; margin-bottom:.3rem; }
.task-calendar-day time { display:grid; width:25px; height:25px; place-items:center; border-radius:50%; color:#5d6d74; font-size:.72rem; font-weight:800; }
.task-calendar-day span { color:var(--mine-green); font-size:.58rem; font-weight:800; text-transform:uppercase; }
.task-calendar td.is-today .task-calendar-day time { color:#fff; background:var(--mine-green); }
.task-calendar-events { display:grid; gap:.25rem; }
.task-calendar-event { display:block; min-width:0; padding:.3rem .4rem; overflow:hidden; border-left:3px solid #3e879d; border-radius:5px; color:#305160; background:#e7f4f7; text-decoration:none; }
.task-calendar-event:hover { color:#203f4b; filter:brightness(.98); }
.task-calendar-event small,.task-calendar-event strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.task-calendar-event small { font-size:.52rem; font-weight:800; text-transform:uppercase; opacity:.72; }
.task-calendar-event strong { margin-top:.08rem; font-size:.64rem; }
.task-calendar-event-due { border-left-color:#d29c2b; background:#fff4d8; }
.task-calendar-event-both { border-left-color:#37805e; background:#e5f3eb; }
.task-calendar-event.priority-critical { box-shadow:inset 0 0 0 1px rgba(176,48,61,.3); }
.task-calendar-event.priority-high { box-shadow:inset 0 0 0 1px rgba(205,144,34,.25); }
.task-calendar-legend { display:flex; flex-wrap:wrap; gap:1rem; padding:.65rem 1rem; border-bottom:1px solid var(--mine-border); color:#718087; font-size:.66rem; }
.task-calendar-legend span { display:flex; align-items:center; gap:.35rem; }
.task-calendar-legend i { width:9px; height:9px; border-radius:2px; background:#3e879d; }
.task-calendar-legend i.due { background:#d29c2b; }
.task-calendar-legend i.both { background:#37805e; }
.task-unplanned { display:grid; grid-template-columns:minmax(190px,260px) 1fr; gap:1rem; padding:1rem; background:#fafbfb; }
.task-unplanned > div:first-child { display:flex; align-items:center; gap:.65rem; }
.task-unplanned > div:first-child > i { display:grid; flex:0 0 38px; width:38px; height:38px; place-items:center; border-radius:9px; color:#8a651b; background:#fff0c9; }
.task-unplanned strong,.task-unplanned small { display:block; }
.task-unplanned strong { color:var(--mine-navy); font-size:.78rem; }
.task-unplanned small { color:#7b898f; font-size:.65rem; }
.task-unplanned-list { display:flex; flex-wrap:wrap; gap:.4rem; }
.task-unplanned-list > a,.task-unplanned-list > span { min-width:160px; padding:.4rem .55rem; border:1px solid var(--mine-border); border-radius:7px; color:var(--mine-navy); background:#fff; font-size:.7rem; font-weight:700; text-decoration:none; }
.task-unplanned-list > a:hover { border-color:#87b8a4; color:var(--mine-green); }
.task-related-heading { display:flex; align-items:center; gap:.7rem; margin-top:.25rem; padding:.8rem; border:1px solid #d8e6df; border-radius:10px; background:#f3f9f6; }
.task-related-heading > i { display:grid; flex:0 0 36px; width:36px; height:36px; place-items:center; border-radius:9px; color:var(--mine-green); background:#fff; font-size:1.05rem; }
.task-related-heading strong,.task-related-heading small { display:block; }
.task-related-heading strong { color:var(--mine-navy); font-size:.82rem; }
.task-related-heading small { margin-top:.12rem; color:#718087; font-size:.7rem; }
.task-related-select { min-height:104px; }

.notification-nav-link { position:relative; display:grid; width:42px; height:42px; margin:0 .2rem; place-items:center; border-radius:10px; color:#52646c; font-size:1.05rem; }
.notification-nav-link:hover,.notification-nav-link.active { color:var(--mine-green); background:#edf6f2; }
.notification-nav-badge { position:absolute; top:2px; right:0; min-width:18px; height:18px; padding:0 4px; border:2px solid #fff; border-radius:10px; color:#fff; background:#c44350; font-size:.56rem; font-weight:800; line-height:14px; text-align:center; }
.notification-summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.15rem; border:1px solid #d8e6df; border-radius:12px; background:linear-gradient(135deg,#f0f8f4,#fff); }
.notification-summary > div { display:flex; align-items:center; gap:.7rem; color:var(--mine-navy); font-size:.82rem; }
.notification-summary > div > i { display:grid; width:36px; height:36px; place-items:center; border-radius:9px; color:#fff; background:var(--mine-green); }
.notification-summary strong { font-size:1.1rem; }
.notification-summary small { color:#718087; font-size:.7rem; }
.notification-digest-settings { position:relative; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1rem; border:1px solid var(--mine-border); border-radius:11px; background:#fff; }
.notification-digest-copy { display:flex; align-items:center; gap:.65rem; }
.notification-digest-copy > i { display:grid; flex:0 0 34px; width:34px; height:34px; place-items:center; border-radius:9px; color:#356b7e; background:#e9f3f6; }
.notification-digest-copy strong,.notification-digest-copy small { display:block; }
.notification-digest-copy strong { color:var(--mine-navy); font-size:.76rem; }
.notification-digest-copy small { margin-top:.1rem; color:#75858b; font-size:.65rem; }
.notification-digest-settings form { display:flex; flex:0 0 auto; gap:.45rem; }
.notification-digest-settings .form-select { min-width:115px; }
.notification-digest-last { position:absolute; right:1rem; bottom:-1.15rem; color:#829096; font-size:.58rem; }
.notification-critical-settings { position:relative; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1rem 1.2rem; border:1px solid #ead9cc; border-radius:11px; background:linear-gradient(135deg,#fffaf6,#fff); }
.notification-critical-copy { display:flex; align-items:center; gap:.65rem; }
.notification-critical-copy > i { display:grid; flex:0 0 34px; width:34px; height:34px; place-items:center; border-radius:9px; color:#a35b2f; background:#fff0e4; }
.notification-critical-copy strong,.notification-critical-copy small { display:block; }
.notification-critical-copy strong { color:var(--mine-navy); font-size:.76rem; }
.notification-critical-copy small { margin-top:.1rem; color:#75858b; font-size:.65rem; }
.notification-critical-settings form { display:flex; flex:0 0 auto; align-items:center; gap:.65rem; }
.notification-critical-settings .form-switch { display:flex; align-items:center; gap:.35rem; padding-left:2.5rem; color:#66777e; font-size:.67rem; font-weight:700; }
.notification-critical-status { position:absolute; right:1rem; bottom:.35rem; display:flex; align-items:center; gap:.3rem; font-size:.56rem; }
.notification-critical-status.is-ready { color:#27815f; }
.notification-critical-status.is-warning { color:#a46234; }
.notification-mute-settings { overflow:hidden; border:1px solid var(--mine-border); border-radius:11px; background:#fff; }
.notification-mute-settings summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 1rem; color:var(--mine-navy); cursor:pointer; list-style:none; }
.notification-mute-settings summary::-webkit-details-marker { display:none; }
.notification-mute-settings summary > span { display:flex; align-items:center; gap:.55rem; font-size:.75rem; }
.notification-mute-settings summary > span i { color:#b46c37; }
.notification-mute-settings summary small { color:#7b8a90; font-size:.64rem; font-weight:600; }
.notification-mute-settings[open] summary { border-bottom:1px solid var(--mine-border); background:#fafbfb; }
.notification-mute-settings form { padding:1rem; }
.notification-mute-settings form > p { margin:0 0 .85rem; color:#718087; font-size:.68rem; }
.notification-mute-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; }
.notification-mute-grid label { display:flex; align-items:center; gap:.5rem; min-height:38px; padding:.45rem .6rem; border:1px solid #e0e8e4; border-radius:8px; color:#52666e; background:#fbfcfc; font-size:.68rem; font-weight:650; cursor:pointer; }
.notification-mute-grid label:has(input:checked) { border-color:#dfb38e; color:#8b542e; background:#fff7f0; }
.notification-mute-grid .form-check-input { flex:0 0 auto; margin:0; }
.notification-filter-bar { display:flex; gap:.45rem; padding:.25rem 0 .15rem; overflow-x:auto; scrollbar-width:thin; }
.notification-filter-bar a { display:flex; flex:0 0 auto; align-items:center; gap:.5rem; padding:.5rem .7rem; border:1px solid var(--mine-border); border-radius:9px; color:#5d7078; background:#fff; font-size:.68rem; font-weight:700; text-decoration:none; white-space:nowrap; }
.notification-filter-bar a:hover { border-color:#91bda9; color:var(--mine-green); }
.notification-filter-bar a.active { border-color:var(--mine-green); color:#fff; background:var(--mine-green); }
.notification-filter-bar strong { display:grid; min-width:20px; height:20px; padding:0 5px; place-items:center; border-radius:10px; color:#587069; background:#edf3f0; font-size:.58rem; }
.notification-filter-bar a.active strong { color:var(--mine-green); background:#fff; }
.notification-list { display:grid; gap:.65rem; }
.notification-item { position:relative; display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:.85rem; padding:1rem 1.1rem; border:1px solid var(--mine-border); border-radius:12px; background:#fff; box-shadow:0 2px 7px rgba(24,48,56,.035); }
.notification-item.is-unread { border-color:#a8d1c0; background:#f7fcf9; box-shadow:inset 3px 0 0 var(--mine-green),0 3px 10px rgba(24,48,56,.05); }
.notification-state-dot { position:absolute; top:12px; right:12px; width:7px; height:7px; border-radius:50%; background:transparent; }
.notification-item.is-unread .notification-state-dot { background:var(--mine-green); box-shadow:0 0 0 3px rgba(42,142,105,.12); }
.notification-icon { display:grid; width:38px; height:38px; place-items:center; border-radius:10px; color:#64767d; background:#eef2f2; }
.notification-item.is-unread .notification-icon { color:var(--mine-green); background:#e4f3ec; }
.notification-copy { min-width:0; }
.notification-meta { display:flex; align-items:center; gap:.55rem; margin-bottom:.35rem; }
.notification-meta time { color:#829096; font-size:.64rem; }
.notification-copy h2 { margin:0; color:var(--mine-navy); font-size:.86rem; font-weight:750; }
.notification-copy p { margin:.22rem 0 0; overflow:hidden; color:#66777e; font-size:.72rem; line-height:1.45; text-overflow:ellipsis; }
.notification-actions { display:flex; align-items:center; justify-content:flex-end; gap:.45rem; }
.notification-actions form { margin:0; }
.approval-overview { display:grid; grid-template-columns:minmax(0,2fr) repeat(2,minmax(150px,.55fr)); overflow:hidden; border:1px solid var(--mine-border); border-radius:14px; background:#fff; box-shadow:0 5px 18px rgba(24,48,56,.06); }
.approval-view-switcher { display:inline-flex; gap:.3rem; padding:.3rem; border:1px solid var(--mine-border); border-radius:11px; background:#fff; box-shadow:0 2px 8px rgba(24,48,56,.04); }
.approval-view-switcher a { display:flex; align-items:center; gap:.45rem; padding:.55rem .8rem; border-radius:8px; color:#687a80; font-size:.72rem; font-weight:750; text-decoration:none; }
.approval-view-switcher a.active { color:#fff; background:var(--mine-navy); box-shadow:0 3px 8px rgba(20,50,57,.18); }
.approval-view-switcher a.approval-overdue-tab.active { background:#a54141; box-shadow:0 3px 8px rgba(165,65,65,.2); }
.approval-overview-main { display:flex; align-items:center; gap:1rem; padding:1.15rem 1.3rem; background:linear-gradient(135deg,#12353b,#1b5551); color:#fff; }
.approval-overview-main.is-overdue { background:linear-gradient(135deg,#6e2d32,#a54141); }
.approval-overview-icon { display:grid; flex:0 0 46px; height:46px; place-items:center; border:1px solid rgba(255,255,255,.18); border-radius:12px; background:rgba(255,255,255,.1); font-size:1.25rem; }
.approval-overview-main small,.approval-overview-stat small { display:block; margin-bottom:.18rem; color:inherit; opacity:.68; font-size:.64rem; font-weight:800; letter-spacing:.08em; }
.approval-overview-main strong { display:block; font-family:"Space Grotesk",sans-serif; font-size:1.8rem; line-height:1; }
.approval-overview-main p { margin:.25rem 0 0; color:rgba(255,255,255,.72); font-size:.72rem; }
.approval-overview-stat { display:flex; flex-direction:column; justify-content:center; padding:1rem 1.15rem; border-left:1px solid var(--mine-border); }
.approval-overview-stat strong { color:var(--mine-navy); font-size:1.15rem; }
.approval-filter-bar { display:flex; overflow-x:auto; gap:.45rem; padding-bottom:.15rem; scrollbar-width:thin; }
.approval-filter-bar a { display:flex; flex:0 0 auto; align-items:center; gap:.55rem; padding:.55rem .75rem; border:1px solid var(--mine-border); border-radius:9px; color:#52666d; background:#fff; font-size:.72rem; font-weight:700; text-decoration:none; }
.approval-filter-bar a strong { display:grid; min-width:22px; height:22px; padding:0 .35rem; place-items:center; border-radius:7px; color:#45605d; background:#edf3f0; font-size:.66rem; }
.approval-filter-bar a.active { border-color:#87bda8; color:#176647; background:#f2faf6; box-shadow:inset 0 -2px 0 var(--mine-green); }
.approval-filter-bar a.is-empty:not(.active) { opacity:.58; }
.approval-list { display:grid; gap:.65rem; }
.approval-item { display:grid; grid-template-columns:42px minmax(0,1.35fr) minmax(270px,.75fr) auto; align-items:center; gap:1rem; padding:1rem 1.1rem; border:1px solid var(--mine-border); border-radius:12px; background:#fff; box-shadow:0 3px 11px rgba(24,48,56,.04); }
.approval-type-icon { display:grid; width:42px; height:42px; place-items:center; border-radius:11px; font-size:1rem; }
.approval-tone-info { color:#24758d; background:#e7f5f8; }.approval-tone-warning { color:#8b6414; background:#fff5d9; }.approval-tone-primary { color:#325d9a; background:#e9f0fb; }.approval-tone-danger { color:#a74444; background:#fdeaea; }.approval-tone-secondary { color:#596b72; background:#edf1f2; }
.approval-item-main { min-width:0; }.approval-item-meta { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; color:#77878d; font-size:.68rem; }.approval-item-main h2 { margin:.35rem 0 .16rem; overflow:hidden; color:var(--mine-navy); font-size:.88rem; font-weight:760; text-overflow:ellipsis; white-space:nowrap; }.approval-item-main p { margin:0; color:#75858b; font-size:.7rem; }
.approval-item-facts { display:flex; align-items:center; justify-content:flex-end; gap:1.15rem; }.approval-item-facts span { min-width:68px; }.approval-item-facts small { display:block; color:#94a0a4; font-size:.58rem; font-weight:800; letter-spacing:.06em; }.approval-item-facts strong { color:#344b53; font-size:.72rem; white-space:nowrap; }
.empty-state-panel { padding:3.5rem 1.5rem; border:1px dashed #cbd8d3; border-radius:12px; color:#6e7f86; background:#fff; text-align:center; }
.empty-state-panel > i { display:grid; width:52px; height:52px; margin:0 auto .8rem; place-items:center; border-radius:14px; color:var(--mine-green); background:#e9f5ef; font-size:1.35rem; }
.empty-state-panel h2 { margin:0; color:var(--mine-navy); font-size:1rem; }
.empty-state-panel p { margin:.4rem 0 0; font-size:.75rem; }
.approval-delegation-layout { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.6fr); gap:1rem; align-items:start; }
.approval-delegation-form { position:sticky; top:1rem; }
.approval-delegation-scopes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; }
.approval-delegation-scopes label { display:flex; align-items:center; gap:.5rem; padding:.55rem .65rem; border:1px solid var(--mine-border); border-radius:8px; color:#52666d; background:#f9fbfa; font-size:.7rem; font-weight:700; cursor:pointer; }
.approval-delegation-scopes label:has(input:checked) { border-color:#86bba6; color:#176647; background:#eff9f4; }

@media (max-width: 767.98px) {
    .approval-view-switcher { display:flex; overflow-x:auto; }.approval-view-switcher a { flex:1 0 auto; justify-content:center; }
    .approval-overview { grid-template-columns:1fr 1fr; }.approval-overview-main { grid-column:1/-1; }.approval-overview-stat { border-top:1px solid var(--mine-border); border-left:0; }.approval-overview-stat + .approval-overview-stat { border-left:1px solid var(--mine-border); }
    .approval-item { grid-template-columns:38px minmax(0,1fr); gap:.7rem; }.approval-type-icon { width:38px; height:38px; }.approval-item-facts,.approval-open { grid-column:2; }.approval-item-facts { justify-content:flex-start; flex-wrap:wrap; gap:.8rem; }.approval-open { justify-self:start; }
    .approval-delegation-layout { grid-template-columns:1fr; }.approval-delegation-form { position:static; }.approval-delegation-scopes { grid-template-columns:1fr; }
    .mobile-header-brand { display:flex; align-items:center; margin-left:.35rem; }
    .mobile-brand-link { display:flex; align-items:center; color:var(--mine-navy); text-decoration:none; }
    .mobile-brand-link .brand-mark { width:32px; height:32px; margin-right:.5rem; border-radius:9px; }
    .mobile-brand-link .brand-symbol { width:23px; height:23px; }
    .mobile-brand-link .brand-name { color:var(--mine-navy); font-family:"Space Grotesk",sans-serif; font-size:1.05rem; font-weight:500; letter-spacing:-.04em; line-height:1; }
    .mobile-brand-link .brand-name-main { color:var(--mine-navy); }
    .mobile-brand-link .brand-name-accent { color:#2a8e69; font-weight:700; }
    .sidebar-open .mobile-header-brand, .sidebar-expanded .mobile-header-brand { display:none; }
    .app-content-header { padding-top:1.2rem; }
    .dashboard-content { padding-top:1rem; }
    .dashboard-welcome { align-items:flex-start; flex-direction:column; }
    .dashboard-quick-actions { width:100%; justify-content:flex-start; }
    .dashboard-quick-actions .btn { flex:1 1 auto; }
    .dashboard-welcome-copy { align-items:flex-start; }
    .dashboard-attention-grid { grid-template-columns:1fr; }
    .dashboard-attention-copy small { white-space:normal; }
    .dashboard-field-map-shell { min-height:280px; }
    .dashboard-map-live { top:.65rem; left:.65rem; }
    .dashboard-map-legend { right:.65rem; bottom:.65rem; left:.65rem; justify-content:center; }
    .dashboard-project-distribution { gap:.45rem; padding:.7rem; }
    .dashboard-project-distribution > div { align-items:flex-start; flex-direction:column; gap:.35rem; }
    .dashboard-project-stage-track { margin-left:.2rem; }
    .dashboard-activity-time time { display:none; }
    .custody-timeline { grid-template-columns:1fr; text-align:left; }
    .custody-timeline::before { top:0; bottom:0; left:22px; right:auto; width:2px; height:auto; }
    .custody-step { text-align:left; display:flex; gap:1rem; align-items:center; }
    .custody-step .step-icon { margin:0; flex:0 0 46px; }
    .map-shell { min-height:480px; }
    .map-layer-panel { left:1rem; right:1rem; width:auto; }
    .interactive-map { min-height:520px; }
    .map-search-panel { left:3.2rem; top:.7rem; }
    .map-click-hint { display:block; left:auto; right:.75rem; bottom:.75rem; transform:none; max-width:calc(100% - 1.5rem); padding:.42rem .7rem; white-space:normal; text-align:center; }
    .desktop-map-hint { display:none; }
    .mobile-map-hint { display:inline; }
    .consulting-section-header { align-items:flex-start; }
    .consulting-section-header p { display:none; }
    .consulting-jumpbar { overflow-x:auto; flex-wrap:nowrap; }
    .consulting-jumpbar a { white-space:nowrap; }
    .current-file { align-items:flex-start; flex-direction:column; }
    .file-drop-field { justify-content:flex-start; min-height:96px; }
    .drilling-section-header { align-items:flex-start; }
    .drilling-section-header p { display:none; }
    .drilling-jumpbar { flex-wrap:nowrap; overflow-x:auto; }
    .drilling-jumpbar a { white-space:nowrap; }
    .drilling-entry-tabs { grid-template-columns:1fr 1fr; }
    .drilling-entry-tabs .nav-link { min-height:64px; }
    .drilling-entry-content { padding:.85rem; }
    .drilling-form-actions { margin:1rem -.85rem -.85rem; }
    .compliance-section-header { align-items:flex-start; }
    .compliance-section-header p { display:none; }
    .compliance-stat .card-body { padding:.9rem; }
    .compliance-stat .section-icon { top:.75rem; right:.75rem; width:32px; height:32px; }
    .compliance-stat-value { margin-right:2.2rem; font-size:1.45rem; }
    .compliance-stat small { display:block; line-height:1.2; }
    .sync-explanation { flex-direction:column; }
    .sync-detail-list > div { grid-template-columns:1fr; gap:.2rem; }
    .global-search-result-status { display:none; }
    .saved-filter-bar { align-items:flex-start; flex-direction:column; }
    .saved-filter-bar > .d-flex { width:100%; justify-content:flex-end; }
    .list-preference-toolbar { justify-content:space-between; }
    .list-preference-columns { grid-template-columns:1fr; }
    .bulk-action-toolbar { align-items:flex-start; flex-direction:column; }
    .bulk-action-form { width:100%; }
    .bulk-action-form .form-select { min-width:0; flex:1; width:auto; }
    .task-view-toolbar { align-items:flex-start; flex-direction:column; }
    .task-view-switcher { width:100%; }
    .task-view-switcher a { flex:1; justify-content:center; }
    .task-kanban { grid-template-columns:repeat(4,82vw); }
    .task-unplanned { grid-template-columns:1fr; }
    .notification-summary { align-items:flex-start; flex-direction:column; }
    .notification-item { grid-template-columns:36px minmax(0,1fr); }
    .notification-actions { grid-column:2; justify-content:flex-start; flex-wrap:wrap; }
    .notification-digest-settings { align-items:flex-start; flex-direction:column; }
    .notification-digest-settings form { width:100%; }
    .notification-digest-settings .form-select { flex:1; }
    .notification-digest-last { position:static; }
    .notification-critical-settings { align-items:flex-start; flex-direction:column; }
    .notification-critical-settings form { width:100%; justify-content:flex-end; }
    .notification-critical-status { position:static; }
    .notification-mute-grid { grid-template-columns:1fr; }
    .notification-mute-settings summary { align-items:flex-start; flex-direction:column; gap:.25rem; }
}

@media (max-width: 479.98px) {
    .drilling-entry-tabs { grid-template-columns:1fr; }
    .drilling-form-actions { flex-direction:column-reverse; }
    .drilling-form-actions .btn { width:100%; }
}
