:root {
  --navy:#0A1E3C; --blue:#1554A0; --blue-mid:#2566C8; --blue-light:#4A90E2;
  --teal:#0B7A62; --teal-light:#0D9874; --amber:#C07200; --coral:#C0391E;
  --white:#FFFFFF; --off-white:#F4F7FC; --surface:#EDF1F9;
  --border:rgba(10,30,60,0.10); --border-mid:rgba(10,30,60,0.18);
  --text:#0A1E3C; --text-mid:#324E72; --text-muted:#637592; --text-faint:#95A8BE;
  --r:10px; --r-lg:16px; --r-xl:22px;
  --shadow:0 2px 14px rgba(10,30,60,0.09); --shadow-lg:0 10px 48px rgba(10,30,60,0.17);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'DM Sans',sans-serif;background:var(--off-white);color:var(--text);min-height:100vh;font-size:15px;line-height:1.6;}
/* NAV */
.nav{background:var(--navy);padding:0 28px;height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;}
.nav-logo{font-family:'Fraunces',serif;font-size:20px;color:var(--white);letter-spacing:-0.5px;display:flex;align-items:center;gap:7px;cursor:pointer;text-decoration:none;}
.nav-logo-dot{color:#5BA3F5;}
.nav-logo-sub{font-family:'DM Sans',sans-serif;font-size:11px;color:rgba(255,255,255,0.4);font-weight:400;letter-spacing:0.04em;}
.nav-right{display:flex;gap:8px;align-items:center;}
.nav-btn{background:none;border:1px solid rgba(255,255,255,0.22);color:rgba(255,255,255,0.82);padding:6px 14px;border-radius:7px;font-size:13px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;}
.nav-btn:hover{background:rgba(255,255,255,0.09);color:white;}
.nav-btn.primary{background:var(--blue-mid);border-color:var(--blue-mid);color:white;}
.nav-btn.primary:hover{background:#2D72DE;}
.nav-user-menu{position:relative;}
.nav-dropdown{display:none;position:absolute;top:calc(100% + 8px);right:0;background:#1a2742;border:1px solid rgba(255,255,255,0.14);border-radius:9px;min-width:210px;box-shadow:0 8px 28px rgba(0,0,0,0.35);z-index:200;overflow:hidden;}
.nav-dropdown.open{display:block;}
.nav-dropdown-item{display:block;width:100%;background:none;border:none;color:rgba(255,255,255,0.85);padding:12px 16px;font-size:13px;font-family:'DM Sans',sans-serif;text-align:left;cursor:pointer;transition:background 0.12s;}
.nav-dropdown-item:hover{background:rgba(255,255,255,0.08);color:white;}
.nav-dropdown-item+.nav-dropdown-item{border-top:1px solid rgba(255,255,255,0.07);}
.nav-user{display:flex;align-items:center;gap:8px;padding:4px 10px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.14);border-radius:8px;}
.nav-avatar{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:white;flex-shrink:0;}
.nav-user-name{font-size:12px;color:rgba(255,255,255,0.9);font-weight:500;line-height:1.2;}
.nav-user-role{font-size:10px;color:rgba(255,255,255,0.42);}
/* AUTH */
.auth-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--navy);position:relative;overflow:hidden;}
.auth-bg::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 70% at 20% 40%,rgba(37,102,200,0.25) 0%,transparent 60%),radial-gradient(ellipse 60% 60% at 85% 85%,rgba(11,122,98,0.18) 0%,transparent 60%);pointer-events:none;}
.auth-bg::after{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,0.04) 1px,transparent 1px);background-size:32px 32px;pointer-events:none;}
.auth-card{background:white;border-radius:var(--r-xl);width:100%;max-width:440px;padding:38px 34px;position:relative;z-index:1;box-shadow:0 30px 90px rgba(0,0,0,0.4);}
.auth-logo{font-family:'Fraunces',serif;font-size:24px;color:var(--navy);margin-bottom:4px;}
.auth-logo span{color:var(--blue-mid);}
.auth-tagline{font-size:13px;color:var(--text-muted);margin-bottom:28px;}
.auth-tabs{display:flex;background:var(--surface);border-radius:9px;padding:3px;margin-bottom:24px;gap:3px;}
.auth-tab{flex:1;padding:8px;border:none;background:none;border-radius:7px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;}
.auth-tab.active{background:white;color:var(--navy);box-shadow:0 1px 5px rgba(10,30,60,0.1);}
.auth-form-title{font-size:16px;font-weight:600;color:var(--navy);margin-bottom:4px;}
.auth-form-sub{font-size:13px;color:var(--text-muted);margin-bottom:20px;}
.auth-field{margin-bottom:14px;}
.auth-label{display:block;font-size:12px;font-weight:500;color:var(--text-mid);margin-bottom:5px;}
.auth-input,.auth-select{width:100%;border:1px solid var(--border-mid);border-radius:8px;padding:10px 13px;font-size:14px;font-family:'DM Sans',sans-serif;color:var(--text);background:var(--off-white);outline:none;transition:border-color 0.15s,background 0.15s;}
.auth-input:focus,.auth-select:focus{border-color:var(--blue-mid);background:white;box-shadow:0 0 0 3px rgba(37,102,200,0.10);}
.auth-btn{width:100%;background:var(--navy);color:white;border:none;border-radius:9px;padding:12px;font-size:14px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background 0.15s;margin-top:4px;}
.auth-btn:hover{background:var(--blue);}
.auth-btn.teal{background:var(--teal);}
.auth-btn.teal:hover{background:var(--teal-light);}
.auth-btn.purple{background:#7C3AED;}
.auth-btn.purple:hover{background:#6D28D9;}
.auth-divider{text-align:center;font-size:12px;color:var(--text-faint);margin:18px 0;position:relative;}
.auth-divider::before{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border);}
.auth-divider span{background:white;padding:0 12px;position:relative;}
.auth-error{background:#FEEEE8;border:1px solid #ECA08A;border-radius:7px;padding:9px 12px;font-size:13px;color:#8B2F1A;margin-bottom:14px;}
.auth-success-note{background:#E4F5EE;border:1px solid #9FE1CB;border-radius:7px;padding:9px 12px;font-size:13px;color:#0C7A5A;margin-bottom:14px;}
.quick-login-list{display:flex;flex-direction:column;gap:8px;}
.quick-login-btn{display:flex;align-items:center;gap:10px;padding:10px 13px;border:1px solid var(--border-mid);border-radius:9px;background:var(--off-white);cursor:pointer;transition:all 0.15s;font-family:'DM Sans',sans-serif;text-align:left;width:100%;}
.quick-login-btn:hover{border-color:var(--blue-mid);background:#EEF5FF;}
.ql-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;color:white;}
.ql-name{font-size:13px;font-weight:600;color:var(--navy);}
.ql-role{font-size:11px;color:var(--text-muted);margin-top:1px;}
/* HERO */
.hero{background:var(--navy);padding:80px 24px 88px;text-align:center;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 90% 70% at 50% 100%,rgba(37,102,200,0.28) 0%,transparent 65%);pointer-events:none;}
.hero::after{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,0.035) 1px,transparent 1px);background-size:28px 28px;pointer-events:none;}
.hero-inner{position:relative;z-index:1;}
.hero-eyebrow{display:inline-block;background:rgba(91,163,245,0.15);color:#5BA3F5;font-size:11px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;padding:5px 14px;border-radius:20px;border:1px solid rgba(91,163,245,0.25);margin-bottom:24px;}
.hero h1{font-family:'Fraunces',serif;font-size:clamp(34px,6vw,56px);color:var(--white);line-height:1.12;margin-bottom:20px;max-width:700px;margin-left:auto;margin-right:auto;font-weight:500;}
.hero h1 em{color:#5BA3F5;font-style:italic;}
.hero-sub{color:rgba(255,255,255,0.6);font-size:17px;max-width:500px;margin:0 auto 44px;font-weight:300;line-height:1.65;}
.pid-box{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);border-radius:18px;padding:30px;max-width:480px;margin:0 auto;backdrop-filter:blur(12px);}
.pid-label{font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:rgba(255,255,255,0.45);margin-bottom:12px;}
.pid-input-row{display:flex;gap:8px;}
.pid-input{flex:1;background:rgba(255,255,255,0.09);border:1px solid rgba(255,255,255,0.18);border-radius:9px;padding:13px 16px;font-size:16px;font-family:'DM Sans',sans-serif;color:white;letter-spacing:0.06em;outline:none;transition:border-color 0.15s,background 0.15s;}
.pid-input::placeholder{color:rgba(255,255,255,0.28);letter-spacing:0;font-size:14px;}
.pid-input:focus{border-color:#5BA3F5;background:rgba(255,255,255,0.13);}
.pid-btn{background:var(--teal-light);border:none;border-radius:9px;color:white;font-size:14px;font-weight:500;padding:13px 22px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background 0.15s;white-space:nowrap;}
.pid-btn:hover{background:#0FAD83;}
.pid-hint{font-size:12px;color:rgba(255,255,255,0.32);margin-top:11px;text-align:center;}
.pid-hint strong{color:rgba(255,255,255,0.6);cursor:pointer;text-decoration:underline;text-decoration-color:rgba(255,255,255,0.3);}
.pid-error{font-size:12px;color:#F08070;margin-top:8px;text-align:center;display:none;}
.stats-strip{background:var(--surface);border-bottom:1px solid var(--border);padding:22px 24px;display:flex;justify-content:center;gap:56px;flex-wrap:wrap;}
.stat{text-align:center;}
.stat-num{font-family:'Fraunces',serif;font-size:28px;color:var(--navy);font-weight:500;}
.stat-label{font-size:12px;color:var(--text-muted);margin-top:2px;}
.features{padding:64px 24px;max-width:1000px;margin:0 auto;}
.section-heading{text-align:center;margin-bottom:40px;}
.section-heading h2{font-family:'Fraunces',serif;font-size:32px;color:var(--navy);margin-bottom:10px;font-weight:500;}
.section-heading p{color:var(--text-muted);font-size:16px;max-width:480px;margin:0 auto;font-weight:300;}
.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;}
.feature-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:24px;transition:box-shadow 0.2s,transform 0.2s;}
.feature-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);}
.feature-icon{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;font-size:19px;}
.feature-card h3{font-size:14px;font-weight:600;margin-bottom:7px;color:var(--navy);}
.feature-card p{font-size:13px;color:var(--text-muted);line-height:1.58;}
/* PROJECT VIEW */
.project-page{max-width:900px;margin:0 auto;padding:32px 24px 64px;}
.back-btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);cursor:pointer;margin-bottom:18px;border:none;background:none;font-family:'DM Sans',sans-serif;transition:color 0.15s;padding:0;}
.back-btn:hover{color:var(--navy);}
.project-header{background:var(--navy);border-radius:var(--r-lg);padding:28px 30px 26px;margin-bottom:22px;color:white;position:relative;overflow:hidden;}
.project-header::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 100% 0%,rgba(37,102,200,0.3) 0%,transparent 60%);pointer-events:none;}
.proj-inner{position:relative;z-index:1;}
.proj-id-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.18);border-radius:6px;padding:3px 10px;font-size:12px;font-weight:500;letter-spacing:0.06em;color:rgba(255,255,255,0.65);margin-bottom:10px;}
.project-header h1{font-family:'Fraunces',serif;font-size:26px;margin-bottom:6px;line-height:1.22;font-weight:500;}
.proj-org{color:rgba(255,255,255,0.6);font-size:14px;font-weight:300;}
.status-bar{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,0.12);}
.status-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500;}
.status-pill.active{background:rgba(13,152,116,0.22);color:#4ECBA0;border:1px solid rgba(13,152,116,0.3);}
.status-pill.warning{background:rgba(192,114,0,0.22);color:#F5A623;border:1px solid rgba(192,114,0,0.3);}
.status-pill.info{background:rgba(74,144,226,0.2);color:#7BBFF5;border:1px solid rgba(74,144,226,0.28);}
.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor;}
.page-tabs{display:flex;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:4px;margin-bottom:22px;width:fit-content;}
.page-tab{padding:7px 18px;font-size:13px;font-weight:500;color:var(--text-muted);border:none;background:none;border-radius:7px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;}
.page-tab.active{background:white;color:var(--navy);box-shadow:0 1px 5px rgba(10,30,60,0.1);}
.disruption-flags{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:22px;}
.flag-card{background:var(--white);border:1.5px solid var(--border);border-radius:var(--r);padding:14px;text-align:center;transition:all 0.15s;}
.flag-card.active{border-color:var(--coral);background:#FEF0EE;}
.flag-card.inactive{opacity:0.4;}
.flag-emoji{font-size:22px;margin-bottom:5px;}
.flag-name{font-size:12px;font-weight:600;color:var(--text);}
.flag-status{font-size:11px;color:var(--text-muted);margin-top:2px;}
.flag-card.active .flag-status{color:var(--coral);font-weight:500;}
.two-col{display:grid;grid-template-columns:1fr 300px;gap:20px;align-items:start;}
@media(max-width:720px){.two-col{grid-template-columns:1fr;}}
.updates-feed{display:flex;flex-direction:column;gap:12px;}
.update-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;transition:box-shadow 0.2s;}
.update-card:hover{box-shadow:var(--shadow);}
.update-top{display:flex;align-items:flex-start;gap:12px;padding:18px 18px 14px;}
.update-cat{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;white-space:nowrap;flex-shrink:0;}
.cat-emergency{background:#FEEBE7;color:#B83418;}
.cat-disruption{background:#FEF4DC;color:#9A6000;}
.cat-milestone{background:#E0F7EE;color:#0A6B50;}
.cat-general{background:#E8F1FD;color:#1554A0;}
.update-meta{flex:1;}
.update-title{font-size:15px;font-weight:600;color:var(--navy);margin-bottom:3px;line-height:1.3;}
.update-date{font-size:12px;color:var(--text-muted);}
.update-body{padding:0 18px 16px;font-size:14px;color:var(--text-mid);line-height:1.65;}
.update-footer{padding:10px 18px;background:var(--surface);display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:space-between;}
.attach-link{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--blue-mid);padding:4px 10px;background:rgba(37,102,200,0.08);border-radius:6px;cursor:pointer;transition:background 0.15s;border:none;font-family:inherit;}
.attach-link:hover{background:rgba(37,102,200,0.15);}
.update-author{font-size:11px;color:var(--text-faint);}
.sidebar{display:flex;flex-direction:column;gap:14px;}
.sidebar-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px;}
.sidebar-card h3{font-size:14px;font-weight:600;color:var(--navy);margin-bottom:14px;}
.info-row{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-bottom:1px solid var(--border);}
.info-row:last-child{border-bottom:none;}
.info-label{font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:0.06em;font-weight:500;}
.info-val{font-size:13px;color:var(--text);font-weight:500;}
.notify-btn{width:100%;background:var(--navy);color:white;border:none;border-radius:8px;padding:10px;font-size:13px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background 0.15s;}
.notify-btn:hover{background:var(--blue);}
.notify-note{font-size:11px;color:var(--text-faint);line-height:1.55;}
.success-banner{background:#E0F7EE;border:1px solid #9FD9C4;border-radius:var(--r);padding:12px 16px;font-size:13px;color:#0A6B50;margin-bottom:18px;display:flex;align-items:center;gap:8px;}
.progress-timeline{display:flex;flex-direction:column;}
.timeline-item{display:flex;gap:12px;padding-bottom:18px;}
.timeline-item:last-child{padding-bottom:0;}
.tl-dot-col{display:flex;flex-direction:column;align-items:center;width:14px;flex-shrink:0;}
.tl-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;}
.tl-dot.done{background:var(--teal);}
.tl-dot.current{background:var(--blue-mid);box-shadow:0 0 0 3px rgba(37,102,200,0.2);}
.tl-dot.pending{background:var(--border-mid);}
.tl-line{flex:1;width:2px;background:var(--border);margin-top:3px;}
.timeline-item:last-child .tl-line{display:none;}
.tl-label{font-size:13px;font-weight:600;color:var(--text);}
.tl-label.pending{color:var(--text-faint);font-weight:400;}
.tl-date{font-size:11px;color:var(--text-faint);margin-top:2px;}
/* DASHBOARD */
.dash-page{max-width:1020px;margin:0 auto;padding:28px 24px 64px;}
.dash-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:26px;flex-wrap:wrap;gap:12px;}
.dash-header h1{font-family:'Fraunces',serif;font-size:24px;color:var(--navy);font-weight:500;}
.dash-header p{font-size:13px;color:var(--text-muted);margin-top:3px;}
.metrics-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:26px;}
@media(max-width:680px){.metrics-row{grid-template-columns:repeat(2,1fr);}}
.metric-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r);padding:18px;}
.metric-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:6px;}
.metric-val{font-family:'Fraunces',serif;font-size:30px;color:var(--navy);font-weight:500;line-height:1;}
.metric-sub{font-size:11px;color:var(--text-faint);margin-top:5px;}
.metric-trend{font-size:11px;font-weight:600;}
.metric-trend.up{color:var(--teal);}
.dash-grid{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start;}
@media(max-width:760px){.dash-grid{grid-template-columns:1fr;}}
.panel{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border);}
.panel-head h3{font-size:14px;font-weight:600;color:var(--navy);}
.panel-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--surface);}
.panel-tab{padding:11px 18px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:'DM Sans',sans-serif;transition:color 0.15s;}
.panel-tab.active{color:var(--navy);border-bottom-color:var(--blue-mid);}
.panel-body{padding:18px;}
.project-list{display:flex;flex-direction:column;gap:8px;}
.project-row{background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:box-shadow 0.15s,border-color 0.15s;}
.project-row:hover{box-shadow:var(--shadow);border-color:var(--blue-light);}
.project-row.selected{border-color:var(--blue-mid);background:#F0F5FF;}
.proj-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.proj-info{flex:1;min-width:0;}
.proj-name{font-size:14px;font-weight:600;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.proj-id{font-size:11px;color:var(--text-faint);margin-top:1px;letter-spacing:0.04em;}
.proj-meta{text-align:right;flex-shrink:0;}
.proj-count{font-size:13px;font-weight:600;color:var(--navy);}
.proj-count-lbl{font-size:11px;color:var(--text-faint);}
.form-field{margin-bottom:14px;}
.form-label{font-size:12px;font-weight:500;color:var(--text-mid);margin-bottom:5px;display:block;}
.form-input,.form-select,.form-textarea{width:100%;border:1px solid var(--border-mid);border-radius:8px;padding:9px 11px;font-size:13px;font-family:'DM Sans',sans-serif;color:var(--text);background:var(--off-white);outline:none;transition:border-color 0.15s,background 0.15s;}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--blue-mid);background:white;box-shadow:0 0 0 3px rgba(37,102,200,0.08);}
.form-textarea{resize:vertical;min-height:88px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.form-hint{font-size:11px;color:var(--text-faint);margin-top:4px;}
.flag-toggles{display:flex;gap:8px;flex-wrap:wrap;}
.flag-toggle{display:flex;align-items:center;gap:5px;padding:5px 11px;border:1px solid var(--border-mid);border-radius:20px;font-size:12px;cursor:pointer;transition:all 0.15s;background:var(--off-white);color:var(--text-mid);font-family:'DM Sans',sans-serif;}
.flag-toggle.on{background:#FEEBE7;border-color:#C0391E;color:#C0391E;font-weight:500;}
.publish-btn{width:100%;background:var(--teal);color:white;border:none;border-radius:9px;padding:12px;font-size:14px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background 0.15s;margin-top:6px;}
.publish-btn:hover{background:var(--teal-light);}
.audit-list{display:flex;flex-direction:column;}
.audit-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);font-size:12px;}
.audit-row:last-child{border-bottom:none;}
.audit-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.audit-action{flex:1;color:var(--text-mid);line-height:1.45;}
.audit-action strong{color:var(--text);font-weight:500;}
.audit-time{color:var(--text-faint);white-space:nowrap;font-size:11px;}
.perm-notice{background:#FEF5E0;border:1px solid #EDD880;border-radius:var(--r);padding:11px 14px;font-size:13px;color:#7A5C0A;margin-bottom:16px;display:flex;align-items:flex-start;gap:8px;}
.team-panel{background:white;border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px;}
.team-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.team-panel-head h3{font-size:13px;font-weight:600;color:var(--navy);}
.team-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);}
.team-row:last-child{border-bottom:none;}
.team-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:white;flex-shrink:0;}
.team-name{font-size:13px;font-weight:500;color:var(--navy);}
.team-proj{font-size:11px;color:var(--text-faint);margin-top:1px;}
.role-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:500;}
.role-owner{background:#F3E8FF;color:#7C3AED;}
.role-admin{background:#FEF4DC;color:#9A6000;}
.role-member{background:var(--surface);color:var(--text-muted);}
.role-manager{background:#E8F1FD;color:#1554A0;}
.role-clo{background:#E0F7EE;color:#0A6B50;}
.role-viewer{background:var(--surface);color:var(--text-faint);}
.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;}
.report-stat{background:var(--surface);border-radius:var(--r);padding:14px;text-align:center;}
.report-stat-val{font-family:'Fraunces',serif;font-size:24px;color:var(--navy);font-weight:500;}
.report-stat-lbl{font-size:11px;color:var(--text-muted);margin-top:3px;}
.bar-chart{display:flex;flex-direction:column;gap:8px;}
.bar-row{display:flex;align-items:center;gap:10px;}
.bar-label{font-size:12px;color:var(--text-mid);width:100px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bar-track{flex:1;background:var(--surface);border-radius:4px;height:8px;overflow:hidden;}
.bar-fill{height:100%;border-radius:4px;transition:width 0.8s cubic-bezier(0.4,0,0.2,1);}
.bar-val{font-size:11px;color:var(--text-muted);width:32px;}
.btn{padding:9px 18px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;border:none;font-family:'DM Sans',sans-serif;transition:all 0.15s;}
.btn-primary{background:var(--blue-mid);color:white;}
.btn-primary:hover{background:#2D72DE;}
.btn-outline{background:white;color:var(--navy);border:1px solid var(--border-mid);}
.btn-outline:hover{background:var(--surface);}
.btn-sm{padding:6px 13px;font-size:12px;}
.hidden{display:none!important;}
/* MODAL */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(10,30,60,0.55);z-index:200;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(4px);}
.modal-overlay.open{display:flex;}
.modal{background:white;border-radius:var(--r-xl);width:100%;max-width:500px;box-shadow:var(--shadow-lg);overflow:hidden;animation:modalIn 0.22s ease;}
@keyframes modalIn{from{opacity:0;transform:scale(0.95) translateY(8px);}to{opacity:1;transform:none;}}
.modal-head{padding:22px 24px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.modal-head h3{font-size:16px;font-weight:600;color:var(--navy);}
.modal-close{background:none;border:none;font-size:20px;color:var(--text-faint);cursor:pointer;line-height:1;padding:2px;}
.modal-body{padding:22px 24px;}
.modal-foot{padding:16px 24px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;}
.modal-lg{max-width:580px;}
/* PERMISSION SYSTEM */
.perm-role-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;font-size:10px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;}
.perm-owner{background:#FEF4DC;color:#9A6000;border:1px solid #EDD880;}
.perm-manager{background:#E8F1FD;color:#1554A0;border:1px solid #BEDAF5;}
.perm-clo{background:#E0F7EE;color:#0A6B50;border:1px solid #9FD9C4;}
.perm-viewer{background:var(--surface);color:var(--text-muted);border:1px solid var(--border-mid);}
.perm-org_oversight{background:#F3E8FF;color:#7C3AED;border:1px solid #D8B4FE;}
.access-member-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);}
.access-member-row:last-child{border-bottom:none;}
.access-member-info{flex:1;}
.access-member-name{font-size:13px;font-weight:500;color:var(--navy);}
.access-member-email{font-size:11px;color:var(--text-faint);}
.access-role-select{font-size:12px;border:1px solid var(--border-mid);border-radius:6px;padding:4px 8px;font-family:'DM Sans',sans-serif;color:var(--text);background:var(--off-white);cursor:pointer;}
.access-revoke-btn{background:none;border:1px solid var(--border-mid);border-radius:6px;padding:4px 8px;font-size:11px;color:var(--coral);cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;}
.access-revoke-btn:hover{background:#FEF0EE;border-color:var(--coral);}
.proj-owner-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;padding:2px 7px;border-radius:10px;background:#FEF4DC;color:#9A6000;border:1px solid #EDD880;margin-left:6px;}
.proj-access-btn{background:none;border:1px solid var(--border-mid);border-radius:6px;padding:3px 8px;font-size:11px;color:var(--text-mid);cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;flex-shrink:0;}
.proj-access-btn:hover{background:var(--surface);border-color:var(--blue-mid);color:var(--blue-mid);}
.section-divider{font-size:11px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-faint);margin:16px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--border);}
.add-access-row{display:flex;gap:8px;align-items:flex-end;}
.add-access-row .form-field{flex:1;margin-bottom:0;}
.pending-badge{background:#FEF4DC;color:#9A6000;border:1px solid #EDD880;font-size:10px;font-weight:600;padding:2px 7px;border-radius:10px;text-transform:uppercase;letter-spacing:0.04em;}
.transfer-confirm{background:#FEEEE8;border:1px solid #ECA08A;border-radius:var(--r);padding:12px;margin-top:12px;font-size:13px;color:#8B2F1A;}
/* CTA STRIP */
.cta-strip{background:var(--navy);padding:56px 24px;text-align:center;position:relative;overflow:hidden;}
.cta-strip::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 70% at 50% 50%,rgba(37,102,200,0.2) 0%,transparent 70%);pointer-events:none;}
.cta-strip-inner{position:relative;z-index:1;max-width:520px;margin:0 auto;}
.cta-strip h2{font-family:'Fraunces',serif;font-size:28px;color:white;font-weight:500;margin-bottom:10px;}
.cta-strip p{color:rgba(255,255,255,0.6);font-size:15px;margin-bottom:26px;font-weight:300;}
.cta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.cta-btn-primary{background:var(--blue-mid);color:white;border:none;border-radius:9px;padding:13px 28px;font-size:14px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background 0.15s;}
.cta-btn-primary:hover{background:#2D72DE;}
.cta-btn-outline{background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.85);border:1px solid rgba(255,255,255,0.22);border-radius:9px;padding:13px 28px;font-size:14px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;}
.cta-btn-outline:hover{background:rgba(255,255,255,0.12);}
/* ACCESSIBILITY BAR */
.a11y-bar{background:#0A1628;border-bottom:1px solid rgba(255,255,255,0.08);padding:5px 20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.a11y-btn{background:none;border:1px solid rgba(255,255,255,0.2);color:rgba(255,255,255,0.65);padding:3px 10px;border-radius:5px;font-size:11px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;}
.a11y-btn:hover,.a11y-btn.active{background:rgba(255,255,255,0.12);color:white;border-color:rgba(255,255,255,0.4);}
.a11y-sep{color:rgba(255,255,255,0.15);font-size:12px;}
.lang-sel{background:none;border:1px solid rgba(255,255,255,0.2);color:rgba(255,255,255,0.65);padding:3px 8px;border-radius:5px;font-size:11px;font-family:'DM Sans',sans-serif;cursor:pointer;outline:none;}
/* HIGH CONTRAST MODE */
body.high-contrast{--navy:#000;--blue:#00F;--teal:#008000;--off-white:#FFF;--surface:#EEE;--border:rgba(0,0,0,0.5);--border-mid:rgba(0,0,0,0.8);--text:#000;--text-mid:#000;--text-muted:#333;--text-faint:#555;}
/* FONT SIZES */
body.fs-sm{font-size:13px;}
body.fs-lg{font-size:17px;}
body.fs-xl{font-size:20px;}
/* SEARCH */
.search-wrap{position:relative;max-width:520px;margin:0 auto;}
.search-box{width:100%;background:rgba(255,255,255,0.09);border:1px solid rgba(255,255,255,0.2);border-radius:12px;padding:14px 50px 14px 18px;font-size:15px;font-family:'DM Sans',sans-serif;color:white;outline:none;transition:all 0.2s;}
.search-box::placeholder{color:rgba(255,255,255,0.35);}
.search-box:focus{background:rgba(255,255,255,0.14);border-color:#5BA3F5;box-shadow:0 0 0 3px rgba(91,163,245,0.2);}
.search-icon{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:18px;opacity:0.5;pointer-events:none;}
.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:white;border:1px solid var(--border-mid);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);z-index:50;overflow:hidden;display:none;}
.search-results.open{display:block;}
.search-result-item{padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;transition:background 0.1s;}
.search-result-item:last-child{border-bottom:none;}
.search-result-item:hover{background:var(--surface);}
.sr-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.sr-name{font-size:14px;font-weight:500;color:var(--navy);}
.sr-meta{font-size:12px;color:var(--text-faint);}
/* PROGRESS BAR */
.proj-progress-bar{height:6px;background:rgba(255,255,255,0.15);border-radius:3px;margin-top:14px;overflow:hidden;}
.proj-progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#4ECBA0,#0D9874);transition:width 1s ease;}
.proj-progress-label{font-size:11px;color:rgba(255,255,255,0.5);margin-top:5px;display:flex;justify-content:space-between;}
.countdown-chip{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);border-radius:6px;padding:3px 10px;font-size:12px;color:rgba(255,255,255,0.7);margin-top:8px;}
/* COMPLAINT / FEEDBACK */
.complaint-card{background:white;border:1px solid var(--border);border-radius:var(--r-lg);padding:18px;margin-bottom:12px;}
.complaint-status{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;}
.cs-submitted{background:#E8F1FD;color:#1554A0;}
.cs-review{background:#FEF4DC;color:#9A6000;}
.cs-resolved{background:#E0F7EE;color:#0A6B50;}
.star-rating{display:flex;gap:4px;font-size:22px;cursor:pointer;}
.star{color:#DDE3EE;transition:color 0.1s;}
.star.on,.star.hover{color:#F5A623;}
/* FAQ */
.faq-item{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:8px;}
.faq-q{padding:13px 16px;font-size:14px;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;align-items:center;background:white;transition:background 0.15s;}
.faq-q:hover{background:var(--surface);}
.faq-a{padding:0 16px;font-size:14px;color:var(--text-mid);line-height:1.7;max-height:0;overflow:hidden;transition:max-height 0.3s ease,padding 0.3s;}
.faq-item.open .faq-a{max-height:400px;padding:12px 16px;}
.faq-chevron{transition:transform 0.3s;}
.faq-item.open .faq-chevron{transform:rotate(180deg);}
/* APPROVAL WORKFLOW */
.approval-stages{display:flex;align-items:center;gap:0;margin-bottom:18px;overflow-x:auto;}
.appr-stage{display:flex;align-items:center;gap:0;}
.appr-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;}
.appr-dot.done{background:var(--teal);color:white;}
.appr-dot.current{background:var(--blue-mid);color:white;box-shadow:0 0 0 4px rgba(37,102,200,0.2);}
.appr-dot.pending{background:var(--surface);color:var(--text-faint);border:2px solid var(--border-mid);}
.appr-label{font-size:11px;color:var(--text-muted);margin-top:4px;text-align:center;width:28px;}
.appr-line{width:32px;height:2px;background:var(--border-mid);flex-shrink:0;}
.appr-line.done{background:var(--teal);}
.draft-card{background:var(--surface);border:1px solid var(--border-mid);border-radius:var(--r);padding:14px;margin-bottom:10px;}
.draft-title{font-size:13px;font-weight:600;color:var(--navy);}
.draft-meta{font-size:11px;color:var(--text-faint);margin-top:2px;}
/* TASKS / KANBAN */
.kanban-board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;overflow-x:auto;}
.kanban-col{background:var(--surface);border-radius:var(--r-lg);padding:12px;}
.kanban-col-head{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-muted);margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;}
.kanban-count{background:white;border:1px solid var(--border);border-radius:10px;padding:1px 7px;font-size:10px;color:var(--text-mid);}
.task-card{background:white;border:1px solid var(--border);border-radius:var(--r);padding:11px 12px;margin-bottom:8px;cursor:pointer;transition:box-shadow 0.15s;}
.task-card:hover{box-shadow:var(--shadow);}
.task-title{font-size:13px;font-weight:500;color:var(--navy);}
.task-meta{font-size:11px;color:var(--text-faint);margin-top:4px;}
.task-assignee{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-mid);margin-top:6px;}
/* FIELD OPERATIVE */
.field-status-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;}
.field-status-btn{padding:14px;border:2px solid var(--border-mid);border-radius:var(--r);text-align:center;cursor:pointer;transition:all 0.15s;background:white;font-family:'DM Sans',sans-serif;}
.field-status-btn:hover{border-color:var(--blue-mid);}
.field-status-btn.active{border-color:var(--teal);background:#E0F7EE;}
.field-status-btn .fsb-icon{font-size:22px;margin-bottom:5px;}
.field-status-btn .fsb-label{font-size:12px;font-weight:600;color:var(--navy);}
/* CHATBOT */
.chatbot-fab{position:fixed;bottom:24px;right:24px;width:52px;height:52px;background:var(--teal-light);border:none;border-radius:50%;font-size:22px;cursor:pointer;box-shadow:0 4px 20px rgba(11,120,100,0.4);z-index:90;transition:transform 0.2s,box-shadow 0.2s;display:flex;align-items:center;justify-content:center;}
.chatbot-fab:hover{transform:scale(1.08);box-shadow:0 6px 28px rgba(11,120,100,0.5);}
.chatbot-panel{position:fixed;bottom:88px;right:24px;width:320px;background:white;border:1px solid var(--border-mid);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);z-index:90;overflow:hidden;display:none;animation:modalIn 0.22s ease;}
.chatbot-panel.open{display:flex;flex-direction:column;}
.chatbot-head{background:var(--navy);padding:14px 16px;display:flex;align-items:center;gap:10px;}
.chatbot-head-name{font-size:14px;font-weight:600;color:white;}
.chatbot-head-status{font-size:11px;color:rgba(255,255,255,0.5);}
.chatbot-messages{flex:1;padding:14px;overflow-y:auto;max-height:260px;display:flex;flex-direction:column;gap:8px;}
.chat-msg{max-width:85%;padding:9px 12px;border-radius:12px;font-size:13px;line-height:1.5;}
.chat-msg.bot{background:var(--surface);color:var(--text);border-bottom-left-radius:3px;align-self:flex-start;}
.chat-msg.user{background:var(--blue-mid);color:white;border-bottom-right-radius:3px;align-self:flex-end;}
.chatbot-input-row{display:flex;gap:6px;padding:10px 12px;border-top:1px solid var(--border);}
.chatbot-input{flex:1;border:1px solid var(--border-mid);border-radius:8px;padding:8px 11px;font-size:13px;font-family:'DM Sans',sans-serif;outline:none;}
.chatbot-send{background:var(--teal-light);border:none;border-radius:8px;width:36px;height:36px;color:white;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;}
/* TEMPLATE LIBRARY */
.template-card{background:white;border:1px solid var(--border);border-radius:var(--r-lg);padding:16px;cursor:pointer;transition:all 0.15s;}
.template-card:hover{border-color:var(--blue-mid);box-shadow:var(--shadow);}
.template-icon{font-size:28px;margin-bottom:10px;}
.template-name{font-size:14px;font-weight:600;color:var(--navy);}
.template-desc{font-size:12px;color:var(--text-muted);margin-top:4px;line-height:1.5;}
/* DISCUSSION BOARD */
.thread-msg{display:flex;gap:10px;margin-bottom:14px;}
.thread-body{flex:1;background:white;border:1px solid var(--border);border-radius:var(--r);padding:11px 13px;}
.thread-author{font-size:12px;font-weight:600;color:var(--navy);}
.thread-time{font-size:11px;color:var(--text-faint);}
.thread-text{font-size:13px;color:var(--text-mid);margin-top:5px;line-height:1.55;}
/* GDPR */
.gdpr-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border);}
.gdpr-row:last-child{border-bottom:none;}
.toggle-switch{position:relative;width:40px;height:22px;flex-shrink:0;}
.toggle-switch input{opacity:0;width:0;height:0;position:absolute;}
.toggle-slider{position:absolute;inset:0;background:var(--border-mid);border-radius:11px;cursor:pointer;transition:background 0.2s;}
.toggle-slider::before{content:'';position:absolute;width:16px;height:16px;border-radius:50%;left:3px;bottom:3px;background:white;transition:transform 0.2s;}
.toggle-switch input:checked + .toggle-slider{background:var(--teal-light);}
.toggle-switch input:checked + .toggle-slider::before{transform:translateX(18px);}
/* AI DRAFT */
.ai-badge{display:inline-flex;align-items:center;gap:5px;background:#F3E8FF;color:#6D28D9;border:1px solid #D8B4FE;border-radius:6px;padding:2px 9px;font-size:11px;font-weight:600;}
/* HIERARCHY BREADCRUMB */
.hier-bar{background:#0A1628;border-bottom:1px solid rgba(255,255,255,0.07);padding:4px 28px;display:flex;align-items:center;gap:6px;font-size:11px;font-weight:500;letter-spacing:0.04em;color:rgba(255,255,255,0.38);overflow-x:auto;white-space:nowrap;}
.hier-crumb{color:rgba(255,255,255,0.38);}
.hier-crumb.active{color:rgba(255,255,255,0.82);}
.hier-crumb.tier-platform{color:#C4B5FD;}
.hier-crumb.tier-org{color:#FBD38D;}
.hier-crumb.tier-project{color:#68D391;}
.hier-crumb.tier-member{color:#90CDF4;}
.hier-sep{color:rgba(255,255,255,0.2);font-size:10px;}
.tier-badge{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;margin-left:4px;vertical-align:middle;}
.tier-badge.t1{background:rgba(196,181,253,0.15);color:#C4B5FD;border:1px solid rgba(196,181,253,0.25);}
.tier-badge.t2{background:rgba(251,211,141,0.12);color:#FBD38D;border:1px solid rgba(251,211,141,0.25);}
.tier-badge.t3{background:rgba(104,211,145,0.12);color:#68D391;border:1px solid rgba(104,211,145,0.25);}
/* TOAST */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--navy);color:white;padding:12px 22px;border-radius:9px;font-size:14px;font-weight:500;box-shadow:var(--shadow-lg);z-index:999;transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1);white-space:nowrap;max-width:90vw;text-align:center;}
.toast.show{transform:translateX(-50%) translateY(0);}
@media(max-width:540px){.metrics-row{grid-template-columns:1fr 1fr;}.nav-logo-sub{display:none;}.form-row{grid-template-columns:1fr;}}
