
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#0a1628;--navy2:#0f2040;--navy3:#162a55;
  --gold:#c9a84c;--gold2:#e8c97a;
  --teal:#1db8a0;--teal2:#26d4ba;
  --muted:#8fa3c0;
  --border:rgba(255,255,255,0.08);
  --surface:rgba(255,255,255,0.04);--surface2:rgba(255,255,255,0.07);
  --red:#e05252;--green:#3dbe8f;
}
html,body{height:100%;background:var(--navy);color:#e8edf5;font-family:'DM Sans',sans-serif}
#app{display:flex;height:100vh;height:100dvh;overflow:hidden}

/* SIDEBAR */
#sidebar{width:272px;min-width:272px;background:var(--navy2);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}
#logo{padding:22px 20px 16px;border-bottom:1px solid var(--border);text-align:center}
#logo h1{font-family:'Fraunces',serif;font-weight:300;font-size:26px;letter-spacing:-0.5px}
#logo h1 span{color:var(--gold)}
#logo p{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:2px;margin-top:3px;text-align:center}
#sidebar-icon{padding:20px 24px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center}
#trainee-badge{padding:12px 18px;border-bottom:1px solid var(--border);display:none}
#trainee-badge .tb-name{font-size:12px;color:#e8edf5;font-weight:500;margin-bottom:2px}
#trainee-badge .tb-meta{font-size:11px;color:var(--muted);line-height:1.5}
#trainee-badge .tb-purpose{display:inline-block;margin-top:6px;padding:3px 10px;border-radius:10px;font-size:10px;font-family:'DM Mono',monospace;background:var(--surface2);color:var(--gold);border:1px solid rgba(201,168,76,0.25)}
#sections-list{flex:1;overflow-y:auto;padding:12px 0}
.section-item{display:flex;align-items:center;gap:10px;padding:9px 18px;cursor:pointer;transition:background 0.15s;border-left:3px solid transparent;font-size:12.5px;color:var(--muted);line-height:1.3}
.section-item:hover{background:var(--surface);color:#e8edf5}
.section-item.active{background:var(--surface2);border-left-color:var(--gold);color:#e8edf5}
.section-item.done{color:var(--green)}
.section-item .s-num{font-family:'DM Mono',monospace;font-size:10px;min-width:18px;color:var(--muted);flex-shrink:0}
.section-item.active .s-num{color:var(--gold)}
.check-icon{font-size:13px;min-width:14px;text-align:center;color:var(--green);flex-shrink:0}
#session-timer{font-family:'DM Mono',monospace;font-size:11px;color:var(--muted)}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0.35}}
@keyframes badge-pulse{0%,100%{box-shadow:0 0 0 0 rgba(201,168,76,0.55)}60%{box-shadow:0 0 0 4px rgba(201,168,76,0)}}

/* MAIN */
#main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}
#topbar{padding:13px 32px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--navy);flex-shrink:0;gap:16px}
#topbar-left{font-size:13px;color:var(--muted);font-weight:500;white-space:nowrap}
#progress-bar-wrap{flex:1;max-width:360px}
#progress-label{font-size:10px;color:var(--muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:1px}
#progress-bar{height:3px;background:var(--surface2);border-radius:2px;overflow:hidden}
#progress-fill{height:100%;background:linear-gradient(90deg,var(--teal),var(--gold));transition:width 0.4s ease;width:0%}

/* WELCOME */
#welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 48px;overflow-y:auto}
#welcome h2{font-family:'Fraunces',serif;font-size:44px;font-weight:300;margin-bottom:8px;line-height:1.1}
#welcome h2 em{font-style:italic;color:var(--gold)}
#welcome .tagline{color:var(--muted);font-size:15px;max-width:440px;line-height:1.7;margin-bottom:32px}
#config-form{background:var(--navy3);border:1px solid var(--border);border-radius:12px;padding:28px 32px;max-width:560px;width:100%;text-align:left;margin-bottom:24px}
#config-form h3{font-family:'Fraunces',serif;font-size:19px;font-weight:300;margin-bottom:18px;color:#e8edf5}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.form-row.single{grid-template-columns:1fr}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group label{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold);font-family:'DM Mono',monospace}
.form-select{width:100%;background:var(--navy2);border:1px solid var(--border);border-radius:6px;color:#e8edf5;font-size:13px;padding:10px 12px;outline:none;transition:border-color 0.2s;cursor:pointer;font-family:'DM Sans',sans-serif;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238fa3c0' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.form-select:focus{border-color:rgba(201,168,76,0.5)}
.form-select option{background:var(--navy2)}
.combobox-wrap{position:relative}
.combobox-input{width:100%;background:var(--navy2);border:1px solid var(--border);border-radius:6px;color:#e8edf5;font-size:13px;padding:10px 12px;outline:none;transition:border-color 0.2s;font-family:'DM Sans',sans-serif}
.combobox-input:focus{border-color:rgba(201,168,76,0.5)}
.combobox-input::placeholder{color:var(--muted)}
.combobox-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--navy2);border:1px solid rgba(201,168,76,0.3);border-radius:8px;max-height:220px;overflow-y:auto;z-index:999;display:none;box-shadow:0 8px 32px rgba(0,0,0,0.4)}
.combobox-dropdown.open{display:block}
.combo-group-label{padding:7px 12px 3px;font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold);font-family:'DM Mono',monospace;border-top:1px solid var(--border)}
.combo-group-label:first-child{border-top:none}
.combo-option{padding:8px 14px;font-size:13px;color:#c8d8ed;cursor:pointer;transition:background 0.1s}
.combo-option:hover,.combo-option.highlighted{background:var(--surface2);color:#e8edf5}
.combo-empty{padding:14px;font-size:13px;color:var(--muted);text-align:center}
.form-divider{height:1px;background:var(--border);margin:18px 0}
#purpose-description{font-size:12px;color:var(--muted);margin-top:-8px;margin-bottom:4px;line-height:1.5;display:none}
#template-indicator{margin-top:10px;padding:8px 12px;border-radius:6px;background:rgba(29,184,160,0.08);border:1px solid rgba(29,184,160,0.2);font-size:12px;color:var(--teal2);display:none}
#btn-start{padding:13px 42px;background:linear-gradient(135deg,var(--gold),#a8842a);border:none;border-radius:8px;color:var(--navy);font-size:15px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s}
#btn-start:hover{transform:translateY(-2px);opacity:0.9}
#btn-start:disabled{opacity:0.4;cursor:not-allowed;transform:none}
.welcome-links{display:flex;gap:20px;margin-top:12px;justify-content:center}
.welcome-link{font-size:12px;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:3px;background:none;border:none;font-family:'DM Sans',sans-serif;transition:color 0.15s}
.welcome-link:hover{color:var(--teal2)}

/* PRE-REVIEW */
#pre-review-screen{flex:1;display:none;flex-direction:column;align-items:center;justify-content:center;padding:40px;overflow-y:auto}
#pre-review-screen h2{font-family:'Fraunces',serif;font-size:34px;font-weight:300;margin-bottom:4px;text-align:center}
#pre-review-screen h2 em{color:var(--gold);font-style:italic}
#pre-review-screen .sub{font-size:14px;color:var(--muted);margin-bottom:32px;text-align:center}
.checklist{display:flex;flex-direction:column;gap:12px;width:100%;max-width:580px}
.check-card{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;background:var(--navy3);border:1px solid var(--border);border-radius:10px;gap:16px;transition:all 0.2s}
.check-card.answered-yes{border-color:rgba(61,190,143,0.4);background:rgba(61,190,143,0.05)}
.check-card.answered-no{border-color:rgba(224,82,82,0.3);background:rgba(224,82,82,0.04)}
.check-card.answered-notyet{border-color:rgba(201,168,76,0.35);background:rgba(201,168,76,0.04)}
.check-card-text{font-size:14px;color:#e8edf5;line-height:1.4;flex:1}
.check-card-text small{display:block;font-size:11.5px;color:var(--muted);margin-top:3px}
.yn-btns{display:flex;gap:8px;flex-shrink:0}
.yn-btn{padding:6px 14px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;font-size:12px;font-family:'DM Sans',sans-serif;font-weight:500;transition:all 0.15s;white-space:nowrap}
.yn-btn:hover{color:#e8edf5;border-color:rgba(255,255,255,0.2)}
.yn-btn.yes-btn.selected{background:rgba(61,190,143,0.15);border-color:var(--green);color:var(--green)}
.yn-btn.no-btn.selected{background:rgba(224,82,82,0.12);border-color:var(--red);color:var(--red)}
.yn-btn.notyet-btn.selected{background:rgba(201,168,76,0.12);border-color:var(--gold);color:var(--gold2)}
#pre-ready-msg{display:block;margin-top:28px;text-align:center;max-width:520px;width:100%}
#ready-status-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:16px}
#ready-icon{font-size:22px;transition:all 0.3s}
#ready-text{font-size:16px;font-weight:500;color:var(--muted);transition:all 0.3s}
#ready-warning{font-size:13px;color:var(--gold2);margin-bottom:14px;display:none;line-height:1.5;padding:10px 16px;background:rgba(201,168,76,0.08);border:1px solid rgba(201,168,76,0.25);border-radius:8px}
#btn-begin-review{padding:13px 38px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.3s;color:var(--navy)}
#btn-begin-review.all-yes{background:linear-gradient(135deg,var(--green),#2a9a6e)}
#btn-begin-review.has-warning{background:linear-gradient(135deg,var(--gold),#a8842a)}
#btn-begin-review:hover:not(:disabled){transform:translateY(-1px);opacity:0.9}
#btn-begin-review:disabled{opacity:0.35;cursor:not-allowed;transform:none}

/* INTERVIEW */
#interview-ui{display:none;flex:1;flex-direction:column;overflow:hidden}
#content{flex:1;overflow-y:auto;padding:26px 44px 20px}
#section-tag{font-size:10px;color:var(--gold);text-transform:uppercase;letter-spacing:2.5px;font-family:'DM Mono',monospace;margin-bottom:5px}
#section-title{font-family:'Fraunces',serif;font-weight:600;font-size:34px;color:#e8edf5;line-height:1.1;margin-bottom:8px}
#section-desc{font-size:13.5px;color:var(--muted);line-height:1.55;margin-bottom:22px}

/* TELEPROMPTER */
#teleprompter{background:var(--navy3);border:1px solid rgba(201,168,76,0.3);border-radius:12px;padding:26px 30px 30px;margin-bottom:22px;position:relative}
#teleprompter::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold),var(--teal));border-radius:12px 12px 0 0}
#tp-label{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--gold);font-family:'DM Mono',monospace;margin-bottom:16px;display:flex;align-items:center;gap:8px}
.tp-blink{width:6px;height:6px;border-radius:50%;background:var(--gold);animation:blink 1s infinite;flex-shrink:0}
#tp-sentences{display:flex;flex-direction:column;gap:12px}

/* Inline editable sentence */
.tp-sent-row{display:flex;align-items:flex-start;gap:10px;group:true}
.tp-sent-text{flex:1;font-size:25px;font-weight:500;line-height:1.4;color:#e8edf5;letter-spacing:-0.3px;outline:none;border:none;background:transparent;font-family:'DM Sans',sans-serif;resize:none;overflow:hidden;cursor:text;width:100%}
.tp-sent-text.secondary{font-size:20px;color:rgba(232,237,245,0.75);font-weight:400}
.tp-sent-text.tertiary{font-size:17px;color:rgba(232,237,245,0.55);font-weight:400}
.tp-sent-text:focus{color:#e8edf5;outline:1px solid rgba(201,168,76,0.3);border-radius:4px;padding:2px 4px}
.tp-edit-btn{opacity:0;font-size:12px;color:var(--muted);cursor:pointer;padding:4px 6px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;flex-shrink:0;margin-top:4px;transition:opacity 0.15s;font-family:'DM Mono',monospace;white-space:nowrap}
.tp-sent-row:hover .tp-edit-btn{opacity:1}
.tp-edit-btn:hover{color:var(--gold);border-color:rgba(201,168,76,0.4)}

/* Follow-ups */
#followup-qs{display:flex;flex-direction:column;gap:7px;margin-bottom:20px}
.fq-header{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:7px;font-family:'DM Mono',monospace}
.fq-row{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;border:1px solid var(--border);border-radius:8px;background:var(--surface);transition:border-color 0.15s}
.fq-row:hover{border-color:rgba(255,255,255,0.12)}
.fq-bullet{color:var(--gold);font-family:'DM Mono',monospace;font-size:11px;margin-top:3px;flex-shrink:0}
.fq-text{flex:1;font-size:13.5px;color:var(--muted);line-height:1.5;outline:none;border:none;background:transparent;font-family:'DM Sans',sans-serif;resize:none;overflow:hidden;cursor:text;width:100%}
.fq-text:focus{color:#e8edf5}
.fq-del{opacity:0;font-size:13px;color:var(--muted);cursor:pointer;padding:2px 6px;background:none;border:none;flex-shrink:0;transition:opacity 0.15s;margin-top:1px}
.fq-row:hover .fq-del{opacity:1}
.fq-del:hover{color:var(--red)}
.fq-add-btn{padding:7px 14px;border:1px dashed var(--border);border-radius:6px;font-size:12px;color:var(--muted);cursor:pointer;background:transparent;font-family:'DM Sans',sans-serif;transition:all 0.15s;text-align:left;width:100%}
.fq-add-btn:hover{border-color:rgba(201,168,76,0.4);color:var(--gold2)}

.manual-note-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:5px}
.manual-note-area{width:100%;background:var(--navy3);border:1px solid var(--border);border-radius:8px;color:#e8edf5;font-family:'DM Mono',monospace;font-size:13px;padding:11px;resize:vertical;min-height:68px;line-height:1.6;margin-bottom:20px}
.manual-note-area:focus{outline:none;border-color:rgba(201,168,76,0.4)}

#bottom-nav{padding:16px 44px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--navy);flex-shrink:0}
#nav-info{font-size:13px;color:var(--muted)}
#nav-info strong{color:#e8edf5}
.btn-nav{padding:10px 24px;border-radius:8px;border:none;cursor:pointer;font-size:14px;font-family:'DM Sans',sans-serif;font-weight:500;transition:all 0.2s}
#btn-prev{background:var(--surface2);color:var(--muted);border:1px solid var(--border)}
#btn-prev:hover:not(:disabled){color:#e8edf5}
#btn-prev:disabled{opacity:0.3;cursor:not-allowed}
#btn-next{background:linear-gradient(135deg,var(--gold),#a8842a);color:var(--navy);padding:10px 30px}
#btn-next:hover{opacity:0.9;transform:translateY(-1px)}

/* === TEMPLATE BUILDER ======================================= */
#template-builder{display:none;flex:1;flex-direction:column;overflow:hidden;min-height:0}
#tb-topbar{padding:14px 32px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--navy);flex-shrink:0}
#tb-topbar h2{font-family:'Fraunces',serif;font-size:28px;font-weight:300;color:#e8edf5}
#tb-topbar h2 span{color:var(--gold)}
.tb-top-actions{display:flex;gap:10px;align-items:center}
.tb-btn{padding:10px 22px;border-radius:6px;font-size:16px;cursor:pointer;font-family:'DM Sans',sans-serif;font-weight:500;border:1px solid var(--border);background:var(--surface2);color:var(--muted);transition:all 0.15s}
.tb-btn:hover{color:#e8edf5;border-color:rgba(255,255,255,0.2)}
.tb-btn.primary{background:linear-gradient(135deg,var(--gold),#a8842a);color:var(--navy);border:none}
.tb-btn.primary:hover{opacity:0.9}
.tb-btn.danger{border-color:rgba(224,82,82,0.3);color:var(--red)}
.tb-btn.danger:hover{background:rgba(224,82,82,0.08)}
.tb-btn.teal{border-color:rgba(29,184,160,0.4);color:var(--teal2)}
.tb-btn.teal:hover{background:rgba(29,184,160,0.08)}

#tb-controls{padding:16px 32px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--navy2);flex-shrink:0}
#tb-purpose-sel{background:var(--navy3);border:1px solid var(--border);border-radius:6px;color:#e8edf5;font-size:18px;padding:10px 14px;outline:none;font-family:'DM Sans',sans-serif;cursor:pointer;min-width:240px}
#tb-template-name{background:var(--navy3);border:1px solid var(--border);border-radius:6px;color:#e8edf5;font-size:18px;padding:10px 14px;outline:none;font-family:'DM Sans',sans-serif;width:280px}
#tb-template-name:focus{border-color:rgba(201,168,76,0.5)}
#tb-template-name::placeholder{color:var(--muted)}
#tb-saved-list{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}
.tb-saved-chip{padding:7px 16px;border-radius:12px;border:1px solid var(--border);background:var(--surface);font-size:15px;color:var(--muted);cursor:pointer;transition:all 0.15s;display:flex;align-items:center;gap:8px}
.tb-saved-chip:hover{border-color:rgba(201,168,76,0.4);color:var(--gold2)}
.tb-saved-chip.active{border-color:var(--gold);color:var(--gold2);background:rgba(201,168,76,0.08)}
.tb-saved-chip .chip-del{font-size:11px;color:var(--muted);cursor:pointer;margin-left:2px}
.tb-saved-chip .chip-del:hover{color:var(--red)}

#tb-body{flex:1;overflow-y:auto;padding:28px 32px;display:block}

.tb-section-card{background:var(--navy3);border:1px solid var(--border);border-radius:10px;margin-bottom:20px}
.tb-section-head{padding:14px 20px;background:var(--surface);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);border-radius:10px 10px 0 0}
.tb-section-head-left{display:flex;align-items:center;gap:10px}
.tb-section-tag{font-size:13px;font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold)}
.tb-section-title-input{background:transparent;border:none;color:#e8edf5;font-size:22px;font-weight:500;outline:none;font-family:'DM Sans',sans-serif;min-width:200px}
.tb-section-title-input:focus{border-bottom:1px solid rgba(201,168,76,0.4)}
.tb-section-body{padding:18px 20px;display:flex;flex-direction:column;gap:16px;overflow:visible}

.tb-subsection-label{font-size:13px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);font-family:'DM Mono',monospace;margin-bottom:12px}
.tb-questions{display:flex;flex-direction:column;gap:8px;overflow:visible}
.tb-q-row{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:7px;transition:border-color 0.15s}
.tb-q-row:hover{border-color:rgba(255,255,255,0.12)}
.tb-q-drag{color:var(--muted);cursor:grab;font-size:16px;margin-top:5px;flex-shrink:0;user-select:none}
.tb-q-type{font-size:11px;font-family:'DM Mono',monospace;color:var(--gold);min-width:28px;margin-top:6px;flex-shrink:0}
.tb-q-input{flex:1;background:transparent;border:none;color:#e8edf5;font-size:22px;font-weight:400;outline:none;font-family:'DM Sans',sans-serif;resize:none;overflow:visible;line-height:1.4;min-height:28px;width:100%;letter-spacing:-0.2px}
.tb-q-input::placeholder{color:var(--muted)}
.tb-q-del{opacity:0;font-size:13px;color:var(--muted);cursor:pointer;padding:2px 6px;background:none;border:none;flex-shrink:0;transition:opacity 0.15s}
.tb-q-row:hover .tb-q-del{opacity:1}
.tb-q-del:hover{color:var(--red)}
.tb-add-q{padding:12px 16px;border:1px dashed var(--border);border-radius:6px;font-size:18px;color:var(--muted);cursor:pointer;background:transparent;font-family:'DM Sans',sans-serif;transition:all 0.15s;text-align:left}
.tb-add-q:hover{border-color:rgba(201,168,76,0.4);color:var(--gold2)}
.tb-desc-input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--muted);font-size:20px;padding:12px 14px;outline:none;font-family:'DM Sans',sans-serif;resize:none;line-height:1.5}
.tb-desc-input:focus{border-color:rgba(201,168,76,0.3);color:#e8edf5}

#tb-footer{padding:14px 32px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--navy);flex-shrink:0;flex-wrap:wrap;gap:10px}
.tb-footer-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tb-status{font-size:16px;color:var(--muted)}
.tb-status.saved{color:var(--green)}

/* REPORT */
#report-screen{padding:32px 44px;flex:1;overflow-y:auto;display:none;-webkit-overflow-scrolling:touch}
#report-screen h2{font-family:'Fraunces',serif;font-size:32px;font-weight:300;margin-bottom:4px}
.report-subtitle{font-size:13px;color:var(--muted);margin-bottom:24px}
.report-section{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:16px}
.report-section h3{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold);font-family:'DM Mono',monospace;margin-bottom:12px}
.report-field{margin-bottom:10px}
.report-field label{font-size:10px;color:var(--muted);display:block;margin-bottom:2px;text-transform:uppercase;letter-spacing:1px}
.report-field p{font-size:13.5px;color:#e8edf5;line-height:1.6}
.score-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.score-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}
.score-label{font-size:12.5px;color:#e8edf5}
.score-val{font-family:'DM Mono',monospace;font-size:12.5px;color:var(--gold)}
.report-note{padding:10px 13px;border-radius:6px;background:var(--surface);border-left:3px solid var(--gold);font-size:13px;color:#c8d8ed;line-height:1.6;margin-bottom:7px;white-space:pre-wrap}
.report-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.report-btn{padding:10px 20px;border-radius:8px;font-size:13.5px;cursor:pointer;font-family:'DM Sans',sans-serif;font-weight:500;transition:all 0.2s;border:1px solid var(--border)}
#btn-copy{background:var(--surface2);color:#e8edf5}
#btn-copy:hover{border-color:var(--teal);color:var(--teal)}
#btn-new{background:linear-gradient(135deg,var(--gold),#a8842a);color:var(--navy);border:none}

/* NOTIFY */
#notify{position:fixed;top:16px;right:16px;background:var(--navy3);border:1px solid var(--gold);border-radius:8px;padding:12px 16px;font-size:13px;color:var(--gold2);max-width:300px;z-index:9999;transition:opacity 0.3s;pointer-events:none;opacity:0;line-height:1.5}
#notify.show{opacity:1}
::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}

/* =======================================================
   MOBILE -- max-width 768px
======================================================= */

/* Mobile topbar -- hidden on desktop */
#mobile-topbar{display:none;position:relative;align-items:center;height:52px;padding:0 4px 0 8px;background:var(--navy2);border-bottom:1px solid var(--border);flex-shrink:0;gap:0;z-index:50}
#mob-hamburger{background:none;border:none;color:#e8edf5;font-size:22px;cursor:pointer;padding:10px 12px;flex-shrink:0;line-height:1}
#mob-topbar-center{flex:1;display:flex;flex-direction:column;align-items:center;overflow:hidden}
#mob-section-name{font-size:13px;font-weight:500;color:#e8edf5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;text-align:center}
#mob-section-counter{font-family:'DM Mono',monospace;font-size:10px;color:var(--gold);letter-spacing:1px}
#mob-mark-done{background:none;border:1px solid var(--border);border-radius:6px;color:var(--muted);font-size:16px;cursor:pointer;padding:6px 12px;flex-shrink:0;transition:all 0.15s}
#mob-mark-done:active{background:rgba(61,190,143,0.2);border-color:var(--green);color:var(--green)}
#mob-progress-bar{position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--surface2)}
#mob-progress-fill{height:100%;background:linear-gradient(90deg,var(--teal),var(--gold));transition:width 0.4s ease;width:0%}

/* Mobile drawer */
#mobile-drawer{display:none;position:fixed;inset:0;z-index:999}
#mobile-drawer.open{display:block}
#mob-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.65)}
#mob-panel{position:absolute;top:0;left:0;bottom:0;width:290px;background:var(--navy2);display:flex;flex-direction:column;overflow:hidden;transform:translateX(-100%);transition:transform 0.25s ease}
#mobile-drawer.open #mob-panel{transform:translateX(0)}
#mob-panel-header{padding:14px 18px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
#mob-close{background:none;border:none;color:var(--muted);font-size:20px;cursor:pointer;padding:4px 8px}
#mob-panel-badge{padding:10px 18px;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted);line-height:1.5;flex-shrink:0}
#mob-panel-sections{flex:1;overflow-y:auto;padding:10px 0}

/* Splash inner -- desktop shows form, hides splash */
#mob-splash-inner{display:none}
#mob-form-inner{display:flex;flex-direction:column;align-items:center;width:100%;text-align:center}
/* == Desktop note-half has no special layout == */
#question-half{flex:1;overflow-y:auto}
#notes-half{display:block}
/* Mobile splash hidden on desktop */

@media(max-width:768px){

  /* App layout */
  #app{flex-direction:column}
  #sidebar{display:none!important}
  #main{width:100%;min-height:0;overflow:hidden}
  /* mobile topbar: JS shows it only during interview */

  /* Hide desktop topbar during interview */
  #interview-ui #topbar{display:none!important}

  /* Hide keyboard hint on mobile */
  #hotkey-hint{display:none!important}

  /* Mobile splash */
  #mob-continue{padding:15px 48px;background:linear-gradient(135deg,var(--gold),#a8842a);border:none;border-radius:8px;color:var(--navy);font-size:17px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;width:100%;max-width:300px}

  /* Mobile splash -- shown on phones before config */

  /* Mobile splash inner */
  #mob-splash-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;flex:1}
  #mob-form-inner{display:none;flex-direction:column;align-items:center;width:100%}

  /* == WELCOME == */
  #welcome{padding:0!important;justify-content:flex-start;overflow-y:auto;flex:1}
  #welcome h2{font-size:30px;margin-bottom:6px}
  #welcome .tagline{font-size:13px;margin-bottom:20px}
  #config-form{padding:18px 16px;margin-bottom:18px;max-width:100%}
  #config-form h3{font-size:17px;margin-bottom:14px}
  .form-row{grid-template-columns:1fr!important;gap:10px;margin-bottom:10px}
  .form-select{font-size:16px!important;padding:12px 36px 12px 12px!important}
  .combobox-input{font-size:16px!important;padding:12px!important}
  .combobox-dropdown{max-height:200px;position:absolute;left:0;right:0;width:auto;z-index:9999}
  .combobox-wrap{position:relative}
  #btn-start{width:100%;padding:15px;font-size:16px;margin-top:4px}
  .welcome-links{flex-direction:column;gap:10px;align-items:center}
  .welcome-link{font-size:13px;padding:4px 0}

  /* == PRE-REVIEW == */
  #pre-review-screen{padding:20px 16px;overflow-y:auto}
  #pre-review-screen h2{font-size:26px}
  #pre-review-screen .sub{font-size:13px;margin-bottom:20px}
  .checklist{max-width:100%}
  .check-card{flex-wrap:wrap;padding:14px 16px;gap:10px}
  .check-card-text{font-size:13px;width:100%}
  .yn-btns{width:100%;gap:6px}
  .yn-btn{flex:1;padding:10px 4px;font-size:13px;text-align:center}
  #btn-begin-review{width:100%;padding:15px;font-size:15px}
  #pre-ready-msg{padding:0 8px;width:100%}
  #ready-warning{font-size:12px;padding:8px 12px}

  /* == INTERVIEW SPLIT SCREEN == */
  #interview-ui{overflow:hidden;flex:1;min-height:0}
  #content{
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    padding:0!important;
    flex:1;
    min-height:0;
  }
  #question-half{
    flex:1;
    min-height:0;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding:14px 16px 8px;
  }
  #notes-half{
    display:flex!important;
    flex-direction:column;
    flex-shrink:0;
    height:190px;
    border-top:1px solid var(--border);
    background:var(--navy2);
    padding:10px 16px 10px;
  }
  #notes-half .manual-note-label{font-size:9px;letter-spacing:1.5px;margin-bottom:5px;flex-shrink:0}
  #notes-half .manual-note-area{
    flex:1;resize:none;margin-bottom:0;min-height:unset;
    font-size:14px;padding:10px;line-height:1.5;
    border-radius:6px;
  }

  /* Scale teleprompter for mobile */
  #section-tag{font-size:9px;margin-bottom:3px}
  #section-title{font-size:22px;margin-bottom:6px}
  #section-desc{font-size:12px;margin-bottom:14px;line-height:1.4}
  #teleprompter{padding:14px 16px 18px;margin-bottom:14px}
  #tp-label{font-size:9px;margin-bottom:10px}
  .tp-sent-text{font-size:18px!important;line-height:1.35}
  .tp-sent-text.secondary{font-size:15px!important}
  .tp-sent-text.tertiary{font-size:13px!important}
  .tp-sent-row{padding:3px 4px;margin-left:-4px}

  /* Follow-ups scaled */
  .fq-header{font-size:9px;margin-bottom:5px}
  .fq-row{padding:8px 10px}
  .fq-text{font-size:12.5px}
  #followup-qs{gap:5px;margin-bottom:10px}

  /* Bottom nav */
  #bottom-nav{
    padding:10px 12px;
    padding-bottom:max(10px,env(safe-area-inset-bottom));
    gap:8px;
  }
  #btn-prev{padding:12px 16px!important;font-size:13px}
  #btn-next{padding:12px 16px!important;font-size:13px;flex:1}
  #nav-info{font-size:11px;white-space:nowrap}

  /* == TEMPLATE BUILDER == */
  #tb-topbar{flex-wrap:wrap;gap:8px;padding:10px 14px}
  #tb-topbar h2{font-size:17px;width:100%}
  .tb-top-actions{display:flex;flex-wrap:wrap;gap:6px;width:100%}
  .tb-btn{padding:8px 12px;font-size:12px}
  #tb-controls{flex-direction:column;gap:10px;padding:12px 14px}
  #tb-purpose-sel{font-size:15px!important;width:100%;min-width:unset}
  #tb-template-name{font-size:15px!important;width:100%}
  #tb-saved-list{margin-left:0;flex-wrap:wrap}
  #tb-body{padding:14px}
  .tb-section-body{padding:14px 14px}
  .tb-q-input{font-size:16px!important}
  .tb-desc-input{font-size:14px!important}
  .tb-subsection-label{font-size:10px}
  #tb-footer{flex-direction:column;gap:8px;padding:10px 14px}
  .tb-footer-left{flex-wrap:wrap}

  /* == REPORT == */
  /* == REPORT -- mobile == */
  #report-screen{
    padding:0!important;
    display:flex;
    flex-direction:column;
    overflow:hidden!important;
  }
  #report-scroll-area{
    flex:1;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding:16px 14px 24px;
  }
  #report-screen h2{font-size:22px;margin-bottom:2px}
  .report-subtitle{font-size:11px;margin-bottom:16px}
  .report-section{padding:14px;margin-bottom:12px;border-radius:8px}
  .report-section h3{font-size:10px;margin-bottom:10px;letter-spacing:1.2px}
  .report-field{margin-bottom:8px}
  .report-field label{font-size:9px}
  .report-field p{font-size:13px;line-height:1.5}
  .score-grid{grid-template-columns:1fr!important;gap:5px}
  .score-row{padding:7px 10px}
  .score-label{font-size:12px}
  .score-val{font-size:12px}
  .report-note{font-size:12px;padding:8px 10px;line-height:1.5}
  /* Sticky action bar at bottom */
  #report-actions-bar{
    flex-shrink:0;
    display:flex;
    gap:10px;
    padding:12px 14px;
    padding-bottom:max(12px,env(safe-area-inset-bottom));
    background:var(--navy2);
    border-top:1px solid var(--border);
  }
  #report-actions-bar .report-btn{
    flex:1;
    text-align:center;
    padding:13px 8px;
    font-size:14px;
    border-radius:8px;
  }
  /* Hide the inline report-actions on mobile (replaced by sticky bar) */
  .report-actions{display:none!important}
  /* == MOBILE TOPBAR -- all screens == */
  #mobile-topbar{flex-shrink:0}
  #mob-progress-bar{display:none}
  #mob-mark-done{display:none}
  #mobile-topbar.interview-mode #mob-progress-bar{display:block}
  #mobile-topbar.interview-mode #mob-mark-done{display:flex}

  /* == MOBILE ILP HUB == */
  #ilp-hub-screen{position:relative;padding-bottom:60px}
  #ilp-hub-nav{max-height:none;height:100%;overflow-y:auto;border-bottom:none}
  #ilp-hub-content{flex:1;min-height:300px}
  #mob-ilp-bar{display:none}
  #mob-ilp-bar.visible{display:flex!important}

  /* == MOBILE REPORT BAR == */
  #report-actions-bar .report-btn{font-size:12px;padding:12px 8px;min-width:0;flex:1}

  /* == MOBILE GENERAL PANEL in drawer == */
  #mob-panel-general .srp-item,
  #mob-panel-general .mob-sess-item{padding:10px 14px;border-radius:6px;cursor:pointer;margin-bottom:3px}
  #mob-panel-general .mob-sess-name{font-size:13px;color:#e8edf5;font-weight:500}
  #mob-panel-general .mob-sess-meta{font-size:10px;color:var(--muted);font-family:'DM Mono',monospace}

}

/* ===============================================
   ILP -- Individualized Learning Plan
=============================================== */
#ilp-screen,#ilp-progress-screen,#ilp-review-screen{display:none;flex-direction:row;flex:1;overflow:hidden}
.ilp-left-panel{width:240px;min-width:240px;background:var(--navy2);border-right:1px solid var(--border);padding:28px 20px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;flex-shrink:0}
.ilp-left-panel .ilp-header h2{font-family:'Fraunces',serif;font-size:22px;font-weight:300;color:#e8edf5;margin-bottom:4px}
.ilp-left-panel .ilp-sub{font-size:11px;color:var(--muted);line-height:1.5}
.ilp-left-panel .ilp-trainee{font-size:11px;font-family:'DM Mono',monospace;color:var(--gold);letter-spacing:1px;margin-top:2px}
.ilp-actions-left{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.ilp-main-content{flex:1;overflow-y:auto;padding:28px 32px;min-width:0}
.ilp-tabs{display:flex;border-bottom:2px solid var(--border);margin-bottom:24px}
.ilp-tab{padding:10px 24px;background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:14px;color:var(--muted);font-family:'DM Sans',sans-serif;font-weight:500;transition:all 0.15s;white-space:nowrap}
.ilp-tab:hover{color:#e8edf5}
.ilp-tab.active{color:var(--gold2);border-bottom-color:var(--gold)}
.ilp-tab-panel{display:none}
.ilp-tab-panel.active{display:block}

.ilp-header{margin-bottom:28px}
.ilp-header h2{font-family:'Fraunces',serif;font-size:30px;font-weight:300;margin-bottom:4px;color:#e8edf5}
.ilp-header .ilp-sub{font-size:13px;color:var(--muted);margin-bottom:6px}
.ilp-header .ilp-trainee{font-size:12px;font-family:'DM Mono',monospace;color:var(--gold);letter-spacing:1px}

/* Goal cards */
.ilp-goal-card{background:var(--navy3);border:1px solid var(--border);border-radius:12px;padding:22px;margin-bottom:18px;position:relative}
.ilp-goal-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:12px 0 0 12px;background:var(--gold)}
.ilp-goal-card.remedial::before{background:var(--red)}
.ilp-goal-card.aspirational::before{background:var(--teal)}
.ilp-goal-card.both::before{background:linear-gradient(180deg,var(--teal),var(--gold))}
/* == LEARNING MODULE RESPONSES HUB (v2.9.0) ============================ */
.th-module-card{display:flex;align-items:center;gap:14px;width:100%;margin-top:14px;padding:14px 18px;background:rgba(200,168,75,0.09);border:1.5px solid rgba(200,168,75,0.4);border-radius:12px;cursor:pointer;transition:border-color 0.15s;text-align:left}
.th-module-card:hover{border-color:var(--gold)}
.th-module-badge{min-width:32px;height:32px;background:var(--gold);color:var(--navy);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;font-family:'DM Mono',monospace;flex-shrink:0}
.th-module-title{font-size:13px;font-weight:700;color:#e8edf5}
.th-module-sub{font-size:11px;color:var(--muted);margin-top:2px}
#snav-mod-responses{margin-top:4px}
#snav-mod-responses-badge{display:none;background:var(--teal);color:var(--navy);border-radius:10px;padding:1px 7px;font-size:10px;font-weight:700;font-family:'DM Mono',monospace;flex-shrink:0}
#mod-responses-panel{display:none;flex-direction:column;flex:1;overflow:hidden;background:var(--navy2);border-right:1px solid var(--border);max-width:320px;flex-shrink:0}
.mod-resp-trainee-item{padding:14px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background 0.12s;position:relative}
.mod-resp-trainee-item:hover{background:rgba(255,255,255,0.04)}
.mod-resp-trainee-item.active{background:rgba(200,168,75,0.07);border-left:3px solid var(--gold)}
.mod-resp-trainee-name{font-size:13px;color:#e8edf5;font-weight:600;margin-bottom:3px}
.mod-resp-trainee-meta{font-size:11px;color:var(--muted);font-family:'DM Mono',monospace}
.mod-resp-unread-dot{position:absolute;top:50%;right:14px;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--teal)}
#mod-response-detail{display:none;overflow-y:auto;padding:28px 32px 60px;background:var(--navy);box-sizing:border-box;position:absolute;top:0;left:0;right:0;bottom:0}
.mod-resp-phase-block{background:rgba(255,255,255,0.03);border:1px solid var(--border);border-radius:10px;padding:18px 20px}
.mod-resp-phase-label{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--teal);font-family:'DM Mono',monospace;margin-bottom:10px}
.mod-resp-q{font-size:13px;color:var(--gold);font-weight:600;margin-bottom:10px;line-height:1.5}
.mod-resp-answer-label{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--teal);font-family:'DM Mono',monospace;margin-bottom:5px}
.mod-resp-answer{font-size:13px;color:#e8edf5;line-height:1.75;background:rgba(29,184,160,0.07);border:1px solid rgba(29,184,160,0.25);border-radius:8px;padding:12px 14px;white-space:pre-wrap}
.mod-resp-ideal-toggle{font-size:11px;color:var(--muted);cursor:pointer;font-family:'DM Mono',monospace;margin-top:8px;display:inline-flex;align-items:center;gap:5px;border:none;background:none;padding:0;transition:color 0.15s}
.mod-resp-ideal-toggle:hover{color:var(--gold)}
.mod-resp-ideal-box{display:none;margin-top:8px;font-size:12px;color:#c8d8ed;line-height:1.7;background:rgba(200,168,75,0.06);border-left:3px solid rgba(200,168,75,0.4);padding:10px 14px;border-radius:0 6px 6px 0;white-space:pre-wrap}
.mod-resp-ideal-box.open{display:block}
.mod-resp-copy-ideal{font-size:11px;color:var(--gold);cursor:pointer;font-family:'DM Mono',monospace;border:1px solid rgba(200,168,75,0.35);background:none;border-radius:5px;padding:3px 10px;margin-top:6px;transition:all 0.15s}
.mod-resp-copy-ideal:hover{background:rgba(200,168,75,0.1)}
.mod-resp-comment{background:rgba(255,255,255,0.04);border:1px solid var(--border);border-radius:8px;padding:10px 12px}
.mod-resp-comment.from-pd{border-left:3px solid var(--gold)}
.mod-resp-comment.acknowledged{opacity:0.6}
.mod-resp-comment-meta{font-size:10px;color:var(--muted);font-family:'DM Mono',monospace;margin-bottom:5px}
.mod-resp-comment-text{font-size:13px;color:#e8edf5;line-height:1.65;white-space:pre-wrap}
.mod-resp-ack-btn{font-size:11px;border:1px solid rgba(29,184,160,0.4);background:none;color:var(--teal);border-radius:5px;padding:3px 10px;cursor:pointer;font-family:'DM Mono',monospace;margin-top:6px;transition:all 0.15s}
.mod-resp-ack-btn:hover{background:rgba(29,184,160,0.1)}
.mod-resp-comment-input{width:100%;background:rgba(255,255,255,0.05);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:13px;color:#e8edf5;font-family:'DM Sans',sans-serif;resize:vertical;min-height:70px;box-sizing:border-box;margin-top:8px}
.mod-resp-comment-input:focus{outline:none;border-color:var(--gold)}
/* v2.9.4 per-phase reply panel */
.mod-phase-btn-row{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.mod-soc-btn{padding:7px 14px;background:none;border:1px solid rgba(200,168,75,0.4);border-radius:7px;color:var(--gold);font-size:12px;font-family:'DM Mono',monospace;cursor:pointer;transition:all 0.15s;display:inline-flex;align-items:center;gap:5px}
.mod-soc-btn:hover{background:rgba(200,168,75,0.1);border-color:var(--gold)}
.mod-reply-btn{padding:7px 14px;background:linear-gradient(135deg,var(--gold),#b8923b);border:none;border-radius:7px;color:var(--navy);font-size:12px;font-weight:700;font-family:'DM Mono',monospace;cursor:pointer;transition:opacity 0.15s;display:inline-flex;align-items:center;gap:5px}
.mod-reply-btn:hover{opacity:0.85}
.mod-phase-reply-panel{display:none;margin-top:12px;flex-direction:column;gap:8px;background:rgba(200,168,75,0.05);border:1px solid rgba(200,168,75,0.25);border-radius:8px;padding:14px}
.mod-phase-reply-panel.open{display:flex}
.mod-phase-reply-label{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--gold);font-family:'DM Mono',monospace;margin-bottom:2px}
.mod-phase-reply-ta{width:100%;background:rgba(255,255,255,0.06);border:1px solid rgba(200,168,75,0.3);border-radius:7px;padding:10px 12px;font-size:13px;color:#e8edf5;font-family:'DM Sans',sans-serif;resize:vertical;min-height:90px;box-sizing:border-box}
.mod-phase-reply-ta:focus{outline:none;border-color:var(--gold)}
.mod-phase-reply-actions{display:flex;gap:8px;align-items:center}
.mod-phase-reply-send{padding:9px 20px;background:var(--gold);border:none;border-radius:7px;color:var(--navy);font-size:13px;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif}
.mod-phase-reply-cancel{padding:9px 14px;background:none;border:1px solid var(--border);border-radius:7px;color:var(--muted);font-size:12px;cursor:pointer;font-family:'DM Sans',sans-serif}
/* Posted comment cards */
.mod-phase-comment-card{background:rgba(200,168,75,0.07);border:1px solid rgba(200,168,75,0.25);border-left:3px solid var(--gold);border-radius:8px;padding:10px 14px;margin-top:8px}
.mod-phase-comment-card.acknowledged{border-left-color:var(--teal);background:rgba(29,184,160,0.05);opacity:0.75}
.mod-phase-comment-meta{font-size:10px;color:var(--muted);font-family:'DM Mono',monospace;margin-bottom:5px}
.mod-phase-comment-text{font-size:13px;color:#e8edf5;line-height:1.65;white-space:pre-wrap}
/* == MODULE GENERATION AUDIT LOG (v2.8.3) =========================== */
/* == DIAGNOSTIC INFO BUTTON & OVERLAY (v2.9.13) ======================= */
.diag-info-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:rgba(143,163,192,0.15);border:1px solid rgba(143,163,192,0.4);color:var(--muted);font-size:11px;font-weight:700;cursor:pointer;font-family:'DM Mono',monospace;flex-shrink:0;vertical-align:middle;margin-left:8px;transition:all 0.15s}
.diag-info-btn:hover{background:rgba(200,168,75,0.2);border-color:var(--gold);color:var(--gold)}
/* When diagnostics are off, hide every ⓘ button globally -- covers static + dynamic */
body.sherpa-diag-hidden .diag-info-btn{display:none!important}
/* Program Status audit-log button: always visible (not a dev diagnostic) */
.ps-info-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:rgba(143,163,192,0.15);border:1px solid rgba(143,163,192,0.4);color:var(--muted);font-size:12px;font-weight:700;cursor:pointer;font-family:'DM Mono',monospace;flex-shrink:0;transition:all 0.15s}
.ps-info-btn:hover{background:rgba(200,168,75,0.2);border-color:var(--gold);color:var(--gold)}
/* Settings gear button */
#settings-gear-btn{background:none;border:none;color:rgba(143,163,192,0.5);font-size:14px;cursor:pointer;padding:2px 4px;line-height:1;transition:color 0.15s;flex-shrink:0}
#settings-gear-btn:hover{color:var(--gold)}
/* Settings overlay */
#settings-overlay{display:none;position:fixed;inset:0;z-index:2100;background:rgba(5,12,28,0.92);backdrop-filter:blur(4px);align-items:center;justify-content:center}
#settings-overlay.open{display:flex}
/* F-BH-WEB (owner-found on iPad, 2026-08-08): with several active sessions
   the box outgrew the viewport, the overlay centered it so BOTH ends
   clipped, nothing scrolled, and Close was unreachable — a force-quit.
   The box is now viewport-bounded and the BODY scrolls; the title and
   the footer with Close stay reachable at any content length. */
#settings-box{background:#0f2238;border:1px solid var(--border);border-radius:14px;width:100%;max-width:480px;max-height:min(92dvh,860px);display:flex;flex-direction:column;overflow:hidden}
#settings-title{padding:18px 22px 14px;border-bottom:1px solid var(--border);font-size:16px;font-weight:600;color:#e8edf5;font-family:'DM Sans',sans-serif;display:flex;align-items:center;gap:10px}
#settings-body{padding:20px 22px;display:flex;flex-direction:column;gap:20px;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;min-height:0}
.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.settings-label{font-size:13px;color:#e8edf5;font-family:'DM Sans',sans-serif;flex:1}
.settings-sublabel{font-size:11px;color:var(--muted);margin-top:2px;font-family:'DM Sans',sans-serif}
.settings-toggle{display:flex;border-radius:8px;overflow:hidden;border:1px solid var(--border)}
.settings-toggle button{padding:7px 18px;border:none;font-size:12px;font-weight:600;cursor:pointer;font-family:'DM Mono',monospace;letter-spacing:0.5px;transition:all 0.15s}
.settings-toggle .tog-on{background:var(--navy3);color:var(--muted)}
.settings-toggle .tog-off{background:var(--navy3);color:var(--muted)}
.settings-toggle .tog-on.active{background:var(--teal);color:#ffffff}
.settings-toggle .tog-off.active{background:rgba(224,82,82,0.25);color:#e05252;border-color:#e05252}
.settings-divider{height:1px;background:var(--border);margin:0 -22px}
.settings-actions{padding:14px 22px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:10px}
.settings-full-log-btn{padding:9px 18px;background:rgba(201,168,76,0.1);border:1px solid var(--gold);border-radius:8px;color:var(--gold);font-size:13px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background 0.15s}
.settings-full-log-btn:hover{background:rgba(201,168,76,0.2)}
.settings-close-btn{padding:9px 18px;background:var(--navy3);border:1px solid var(--border);border-radius:8px;color:#a0bcd8;font-size:13px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif}
#diag-overlay{display:none;position:fixed;inset:0;z-index:2000;background:rgba(5,12,28,0.92);backdrop-filter:blur(4px);align-items:center;justify-content:center}
#diag-overlay.open{display:flex}
.diag-box{background:var(--navy2);border:1px solid var(--border);border-radius:14px;padding:24px 28px;max-width:700px;width:92%;max-height:80vh;display:flex;flex-direction:column;gap:14px}
.diag-title{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--gold);font-family:'DM Mono',monospace}
.diag-log{flex:1;overflow-y:auto;background:rgba(0,0,0,0.3);border:1px solid var(--border);border-radius:8px;padding:14px;font-size:11px;color:#c8d8ed;font-family:'DM Mono',monospace;line-height:1.8;white-space:pre-wrap;min-height:200px;max-height:50vh}
.diag-actions{display:flex;gap:10px}
.diag-copy-btn{padding:9px 20px;background:var(--gold);border:none;border-radius:7px;color:var(--navy);font-size:13px;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif}
.diag-close-btn{padding:9px 18px;background:none;border:1px solid var(--border);border-radius:7px;color:var(--muted);font-size:13px;cursor:pointer;font-family:'DM Sans',sans-serif}
.mod-log-btn{position:absolute;top:12px;right:14px;width:22px;height:22px;border-radius:50%;background:rgba(143,163,192,0.15);border:1px solid var(--border);color:var(--muted);font-size:11px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.15s;font-family:'DM Mono',monospace;flex-shrink:0;z-index:2}
.mod-log-btn:hover{background:rgba(200,168,75,0.2);border-color:var(--gold);color:var(--gold)}
.mod-log-btn.active{background:rgba(200,168,75,0.2);border-color:var(--gold);color:var(--gold)}
.mod-log-drawer{display:none;margin-top:12px;background:rgba(5,12,28,0.6);border:1px solid var(--border);border-radius:8px;padding:12px 14px;font-family:'DM Mono',monospace;font-size:11px;line-height:1.8}
.mod-log-drawer.open{display:block}
.mod-log-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.mod-log-title{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--gold)}
.mod-log-copy{padding:3px 10px;background:none;border:1px solid var(--border);border-radius:4px;color:var(--muted);font-size:10px;cursor:pointer;font-family:'DM Mono',monospace;transition:all 0.15s}
.mod-log-copy:hover{border-color:var(--gold);color:var(--gold)}
.mod-log-step{display:flex;gap:10px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,0.03)}
.mod-log-step:last-child{border-bottom:none}
.mod-log-ts{color:rgba(143,163,192,0.5);flex-shrink:0;width:52px}
.mod-log-icon{flex-shrink:0;width:14px;text-align:center}
.mod-log-text{color:#c8d8ed;flex:1;word-break:break-word}
.mod-log-text.ok{color:rgba(29,184,160,0.9)}
.mod-log-text.err{color:#e07070}
.mod-log-text.info{color:rgba(200,168,75,0.85)}
.mod-log-detail{color:rgba(143,163,192,0.55);font-size:10px;margin-top:2px;word-break:break-all}
.module-gen-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:linear-gradient(135deg,var(--gold),#b8923b);border:none;border-radius:8px;color:var(--navy);font-size:12px;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;margin-top:10px;margin-bottom:14px;transition:opacity 0.15s}
.module-gen-btn:hover{opacity:0.85}
.module-gen-btn:disabled{opacity:0.4;cursor:not-allowed}
.module-status-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600;font-family:'DM Mono',monospace;margin-top:8px;letter-spacing:0.5px}
.module-status-badge.pending{background:rgba(200,168,75,0.15);color:var(--gold);border:1px solid rgba(200,168,75,0.35);animation:badge-pulse 2s infinite}
.module-status-badge.accepted{background:rgba(29,184,160,0.15);color:var(--teal);border:1px solid rgba(29,184,160,0.35)}
.module-status-badge.rejected{background:rgba(143,163,192,0.1);color:var(--muted);border:1px solid var(--border)}
.module-status-badge.failed{background:rgba(220,60,60,0.12);color:#e07070;border:1px solid rgba(220,60,60,0.35)}
.mod-error-card{background:rgba(220,60,60,0.08);border:1px solid rgba(220,60,60,0.3);border-radius:10px;padding:16px 18px;margin-bottom:12px}
.mod-error-title{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:#e07070;font-family:'DM Mono',monospace;margin-bottom:6px}
.mod-error-msg{font-size:13px;color:#e8edf5;line-height:1.6;margin-bottom:10px}
.module-status-badge.completed{background:rgba(29,184,160,0.2);color:var(--teal);border:1px solid var(--teal)}
/* PHI Confirm Dialog */
#module-phi-dialog{position:fixed;inset:0;z-index:800;display:none;align-items:center;justify-content:center;background:rgba(5,12,28,0.85);backdrop-filter:blur(4px)}
#module-phi-dialog.open{display:flex}
.mod-phi-box{background:var(--navy2);border:1px solid var(--border);border-radius:16px;padding:28px 32px;max-width:560px;width:90%;display:flex;flex-direction:column;gap:16px}
.mod-phi-title{font-size:13px;text-transform:uppercase;letter-spacing:2px;color:var(--gold);font-family:'DM Mono',monospace}
.mod-phi-scenario{background:rgba(255,255,255,0.04);border:1px solid var(--border);border-radius:8px;padding:14px 16px;font-size:13px;color:#e8edf5;line-height:1.7;font-family:'DM Sans',sans-serif;white-space:pre-wrap}
.mod-phi-warning{font-size:11px;color:var(--muted);line-height:1.6}
.mod-phi-actions{display:flex;gap:10px;margin-top:4px}
/* Module Preview Overlay */
#module-preview-overlay{position:fixed;inset:0;z-index:810;display:none;flex-direction:column;background:var(--navy);overflow:hidden}
#module-preview-overlay.open{display:flex}
.mod-preview-topbar{padding:16px 28px;border-bottom:1px solid var(--border);background:var(--navy2);display:flex;align-items:center;gap:12px;flex-shrink:0}
.mod-preview-title{font-size:13px;text-transform:uppercase;letter-spacing:2px;color:var(--gold);font-family:'DM Mono',monospace;flex:1}
.mod-preview-body{flex:1;overflow-y:auto;padding:28px 36px;display:flex;flex-direction:column;gap:24px}
.mod-section-head{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--gold);font-family:'DM Mono',monospace;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid rgba(200,168,75,0.25)}
.mod-editable{width:100%;background:rgba(255,255,255,0.04);border:1px solid var(--border);border-radius:8px;padding:14px 16px;font-size:13px;color:#e8edf5;line-height:1.75;font-family:'DM Sans',sans-serif;resize:vertical;min-height:90px;box-sizing:border-box}
.mod-editable:focus{outline:none;border-color:var(--gold)}
.mod-phase-block{background:rgba(255,255,255,0.03);border:1px solid var(--border);border-radius:10px;padding:18px 20px}
.mod-phase-label{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--teal);font-family:'DM Mono',monospace;margin-bottom:8px}
.mod-preview-footer{padding:16px 28px;border-top:1px solid var(--border);background:var(--navy2);display:flex;gap:10px;flex-shrink:0;align-items:center}
/* Module Viewer Overlay (trainee) */
#module-viewer-overlay{position:fixed;inset:0;z-index:810;display:none;flex-direction:column;background:var(--navy);overflow:hidden}
#module-viewer-overlay.open{display:flex}
.mod-viewer-topbar{padding:14px 24px;border-bottom:1px solid var(--border);background:var(--navy2);display:flex;align-items:center;gap:12px;flex-shrink:0}
.mod-viewer-body{flex:1;overflow-y:auto;padding:24px 32px;display:flex;flex-direction:column;gap:20px}
.mod-phase-answer{width:100%;background:rgba(255,255,255,0.05);border:1px solid var(--border);border-radius:8px;padding:12px 14px;font-size:13px;color:#e8edf5;line-height:1.7;font-family:'DM Sans',sans-serif;resize:vertical;min-height:80px;box-sizing:border-box;margin-top:10px}
.mod-phase-answer:focus{outline:none;border-color:var(--teal)}
.mod-phase-answer:disabled{opacity:0.45;cursor:not-allowed}
.mod-phase-locked{display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(255,255,255,0.02);border:1px dashed var(--border);border-radius:8px;color:var(--muted);font-size:12px;font-family:'DM Mono',monospace;letter-spacing:1px;gap:8px}
.mod-submit-phase-btn{padding:10px 22px;background:var(--teal);border:none;border-radius:8px;color:var(--navy);font-size:13px;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;margin-top:10px}
.mod-submit-phase-btn:disabled{opacity:0.4;cursor:not-allowed}
.mod-viewer-footer{padding:14px 24px;border-top:1px solid var(--border);background:var(--navy2);display:flex;gap:10px;flex-shrink:0}
/* Module list (trainee tab) */
.mod-list-card{background:var(--navy3);border:1px solid var(--border);border-radius:10px;padding:16px 18px;margin-bottom:12px;cursor:pointer;transition:border-color 0.15s;position:relative}
.mod-list-card:hover{border-color:var(--gold)}
.mod-list-card.completed-card{border-left:3px solid var(--teal)}
.mod-list-card.new-badge::after{content:'NEW';position:absolute;top:12px;right:14px;background:var(--gold);color:var(--navy);font-size:9px;font-weight:700;font-family:'DM Mono',monospace;padding:2px 7px;border-radius:10px;letter-spacing:1px}
.mod-list-domain{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--gold);font-family:'DM Mono',monospace;margin-bottom:5px}
.mod-list-goal{font-size:12px;color:#e8edf5;line-height:1.5;margin-bottom:8px}
.mod-list-meta{font-size:11px;color:var(--muted);font-family:'DM Mono',monospace}
/* Loading shimmer for module generation */
.mod-gen-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;gap:14px;color:var(--muted);font-size:13px;font-family:'DM Sans',sans-serif}
.mod-gen-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.ilp-goal-num{font-size:10px;font-family:'DM Mono',monospace;color:var(--muted);text-transform:uppercase;letter-spacing:2px;margin-bottom:8px}
.ilp-goal-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.ilp-goal-type{flex-shrink:0}
.ilp-type-select{background:var(--surface2);border:1px solid var(--border);border-radius:6px;color:#e8edf5;font-size:11px;padding:4px 8px;font-family:'DM Mono',monospace;cursor:pointer;outline:none;text-transform:uppercase;letter-spacing:1px}
.ilp-type-select option{background:var(--navy2)}
.ilp-domain-select{background:var(--surface2);border:1px solid var(--border);border-radius:6px;color:var(--gold2);font-size:11px;padding:4px 8px;font-family:'DM Mono',monospace;cursor:pointer;outline:none;letter-spacing:0.5px}
.ilp-domain-select option{background:var(--navy2)}

.ilp-field{margin-bottom:14px}
.ilp-field label{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);font-family:'DM Mono',monospace;display:block;margin-bottom:5px}
.ilp-field label span{color:var(--gold);margin-left:4px}
.ilp-textarea{width:100%;background:var(--navy2);border:1px solid var(--border);border-radius:7px;color:#e8edf5;font-size:13.5px;padding:11px 13px;resize:vertical;min-height:64px;line-height:1.6;font-family:'DM Sans',sans-serif;outline:none;transition:border-color 0.2s}
.ilp-textarea:focus{border-color:rgba(201,168,76,0.45)}
.ilp-textarea::placeholder{color:var(--muted)}
.ilp-input{width:100%;background:var(--navy2);border:1px solid var(--border);border-radius:7px;color:#e8edf5;font-size:13.5px;padding:9px 13px;line-height:1.5;font-family:'DM Sans',sans-serif;outline:none;transition:border-color 0.2s}
.ilp-input:focus{border-color:rgba(201,168,76,0.45)}

.ilp-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ilp-del-goal{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px;padding:4px 8px;transition:color 0.15s}
.ilp-del-goal:hover{color:var(--red)}

.ilp-add-goal{width:100%;padding:14px;border:2px dashed var(--border);border-radius:10px;background:transparent;color:var(--muted);font-size:14px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;margin-bottom:24px}
.ilp-add-goal:hover{border-color:rgba(201,168,76,0.4);color:var(--gold2)}

/* Reflection section */
.ilp-reflection{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:22px;margin-bottom:24px}
.ilp-reflection h3{font-size:13px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold);font-family:'DM Mono',monospace;margin-bottom:16px}

/* ILP action bar */
.ilp-actions{display:flex;gap:12px;margin-top:8px;flex-wrap:wrap}
.ilp-btn{padding:11px 24px;border-radius:8px;font-size:14px;cursor:pointer;font-family:'DM Sans',sans-serif;font-weight:500;transition:all 0.2s;border:1px solid var(--border)}
.ilp-btn.primary{background:linear-gradient(135deg,var(--gold),#a8842a);color:var(--navy);border:none}
.ilp-btn.primary:hover{opacity:0.9;transform:translateY(-1px)}
.ilp-btn.secondary{background:var(--surface2);color:#e8edf5}
.ilp-btn.secondary:hover{border-color:var(--teal);color:var(--teal)}
.ilp-btn.teal{background:rgba(29,184,160,0.12);border-color:var(--teal);color:var(--teal2)}

/* Progress entries */
.ilp-progress-entry{background:var(--navy3);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:12px}
.ilp-progress-entry .pe-goal-ref{font-size:10px;font-family:'DM Mono',monospace;color:var(--gold);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}
.ilp-progress-entry .pe-date{font-size:11px;color:var(--muted);margin-bottom:4px}
.ilp-progress-entry .pe-text{font-size:13.5px;color:#c8d8ed;line-height:1.6}
.ilp-progress-entry .pe-status{display:inline-block;padding:2px 10px;border-radius:10px;font-size:10px;font-family:'DM Mono',monospace;margin-top:8px}
.pe-status.on-track{background:rgba(61,190,143,0.15);color:var(--green);border:1px solid rgba(61,190,143,0.3)}
.pe-status.progressing{background:rgba(201,168,76,0.15);color:var(--gold2);border:1px solid rgba(201,168,76,0.3)}
.pe-status.struggling{background:rgba(224,82,82,0.12);color:var(--red);border:1px solid rgba(224,82,82,0.3)}
.pe-status.achieved{background:rgba(29,184,160,0.15);color:var(--teal2);border:1px solid rgba(29,184,160,0.3)}

/* PD Feedback */
.ilp-pd-feedback{background:rgba(201,168,76,0.06);border:1px solid rgba(201,168,76,0.2);border-radius:10px;padding:16px;margin-top:14px}
.ilp-pd-feedback h4{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold);font-family:'DM Mono',monospace;margin-bottom:10px}
.ilp-pd-feedback .pd-fb-text{font-size:13.5px;color:#e8edf5;line-height:1.6}
.ilp-pd-status{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.pd-status-btn{padding:5px 14px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;font-size:12px;font-family:'DM Mono',monospace;transition:all 0.15s}
.pd-status-btn.selected-approve{background:rgba(61,190,143,0.15);border-color:var(--green);color:var(--green)}
.pd-status-btn.selected-revise{background:rgba(201,168,76,0.15);border-color:var(--gold);color:var(--gold2)}
.pd-status-btn.selected-concern{background:rgba(224,82,82,0.12);border-color:var(--red);color:var(--red)}

/* Saved ILP list */
.ilp-list-item{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--navy3);border:1px solid var(--border);border-radius:10px;margin-bottom:10px;cursor:pointer;transition:border-color 0.15s}
.ilp-list-item:hover{border-color:rgba(201,168,76,0.4)}
.ilp-list-meta{flex:1}
.ilp-list-name{font-size:14px;color:#e8edf5;font-weight:500;margin-bottom:2px}
.ilp-list-detail{font-size:11px;color:var(--muted)}
.ilp-list-badge{font-size:10px;font-family:'DM Mono',monospace;padding:3px 10px;border-radius:10px;background:var(--surface2);color:var(--muted);border:1px solid var(--border);white-space:nowrap}

/* Smart goals breakdown */
.smart-legend{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.smart-tag{padding:3px 10px;border-radius:4px;font-size:10px;font-family:'DM Mono',monospace;background:var(--surface2);color:var(--muted);border:1px solid var(--border)}
.smart-tag span{color:var(--gold2)}

/* Mobile ILP overrides */
@media(max-width:768px){
  #ilp-screen,#ilp-progress-screen,#ilp-review-screen,#ilp-hub-screen{flex-direction:column!important}
  .ilp-left-panel,#ilp-hub-nav{width:100%!important;min-width:unset!important;border-right:none!important;border-bottom:1px solid var(--border);padding:16px!important}
  .ilp-main-content{padding:16px!important}
  .ilp-actions-left{flex-direction:row;flex-wrap:wrap}
  .ilp-row{grid-template-columns:1fr}
  .ilp-tab{padding:8px 16px;font-size:13px}
  .ilp-btn{text-align:center}
  .ilp-type-select,.ilp-domain-select{font-size:14px;padding:6px 10px}
}

/* ===============================================
   MANAGE REVIEW PURPOSES
=============================================== */
#purpose-manager{display:none;flex:1;flex-direction:column;overflow:hidden}
#pm-topbar{padding:14px 32px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--navy);flex-shrink:0;flex-wrap:wrap;gap:10px}
#pm-topbar h2{font-family:'Fraunces',serif;font-size:22px;font-weight:300;color:#e8edf5}
#pm-topbar h2 span{color:var(--gold)}
.pm-top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
#pm-body{flex:1;overflow-y:auto;padding:28px 32px;display:block}
#pm-footer{padding:14px 32px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--navy);flex-shrink:0;flex-wrap:wrap;gap:10px}
.pm-status{font-size:13px;color:var(--muted)}
.pm-status.saved{color:var(--green)}

/* Purpose card */
.pm-card{background:var(--navy3);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;transition:border-color 0.2s}
.pm-card.is-default{border-left:3px solid var(--gold)}
.pm-card.is-custom{border-left:3px solid var(--teal)}
.pm-card-head{padding:12px 18px;background:var(--surface);display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);border-radius:10px 10px 0 0}
.pm-card-key{font-family:'DM Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted)}
.pm-default-badge{font-size:9px;font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:1px;padding:2px 8px;border-radius:10px;background:rgba(201,168,76,0.12);color:var(--gold2);border:1px solid rgba(201,168,76,0.25)}
.pm-custom-badge{font-size:9px;font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:1px;padding:2px 8px;border-radius:10px;background:rgba(29,184,160,0.12);color:var(--teal2);border:1px solid rgba(29,184,160,0.25)}
.pm-card-body{padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.pm-row{display:grid;grid-template-columns:1fr 2fr;gap:14px;align-items:start}
.pm-field{display:flex;flex-direction:column;gap:5px}
.pm-field label{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);font-family:'DM Mono',monospace}
.pm-input{background:var(--navy2);border:1px solid var(--border);border-radius:6px;color:#e8edf5;font-size:13.5px;padding:9px 12px;outline:none;font-family:'DM Sans',sans-serif;transition:border-color 0.2s;width:100%}
.pm-input:focus{border-color:rgba(201,168,76,0.5)}
.pm-textarea{background:var(--navy2);border:1px solid var(--border);border-radius:6px;color:#e8edf5;font-size:13px;padding:9px 12px;outline:none;font-family:'DM Sans',sans-serif;transition:border-color 0.2s;width:100%;resize:vertical;min-height:60px;line-height:1.5}
.pm-textarea:focus{border-color:rgba(201,168,76,0.5)}
.pm-card-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pm-btn{padding:7px 16px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--muted);cursor:pointer;font-size:12px;font-family:'DM Sans',sans-serif;font-weight:500;transition:all 0.15s;white-space:nowrap}
.pm-btn:hover{color:#e8edf5;border-color:rgba(255,255,255,0.2)}
.pm-btn.edit-q{border-color:rgba(29,184,160,0.3);color:var(--teal2)}
.pm-btn.edit-q:hover{background:rgba(29,184,160,0.08)}
.pm-btn.danger{border-color:rgba(224,82,82,0.3);color:var(--red)}
.pm-btn.danger:hover{background:rgba(224,82,82,0.08)}
.pm-hidden-toggle{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);cursor:pointer;user-select:none;margin-left:auto}
.pm-hidden-toggle input{cursor:pointer;accent-color:var(--muted)}

/* Add purpose form */
#pm-add-form{background:var(--navy2);border:2px dashed rgba(29,184,160,0.35);border-radius:10px;padding:20px;display:none;flex-direction:column;gap:14px}
#pm-add-form.visible{display:flex}
#pm-add-form h3{font-size:13px;text-transform:uppercase;letter-spacing:1.5px;color:var(--teal2);font-family:'DM Mono',monospace}
.pm-add-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pm-base-select{background:var(--navy3);border:1px solid var(--border);border-radius:6px;color:#e8edf5;font-size:13px;padding:9px 12px;outline:none;font-family:'DM Sans',sans-serif;width:100%;cursor:pointer}

@media(max-width:768px){
  #pm-topbar{padding:10px 14px}
  #pm-body{padding:14px;display:block}
  .pm-row{grid-template-columns:1fr}
  .pm-add-row{grid-template-columns:1fr}
  .pm-top-actions{flex-wrap:wrap;gap:8px}
  .pm-card-actions{gap:8px}
  .pm-btn{font-size:11px;padding:6px 12px}
}

/* ===============================================
   AUTH -- Login screen + sidebar user panel
=============================================== */
#login-screen{
  position:fixed;inset:0;z-index:9999;
  background:var(--navy);
  display:flex;align-items:center;justify-content:center;
  padding:24px;
}
.login-box{
  width:100%;max-width:400px;
  display:flex;flex-direction:column;align-items:center;
  gap:0;
}
.login-logo-wrap{margin-bottom:20px}
.login-wordmark{
  font-family:'Fraunces',serif;font-weight:300;font-size:42px;
  letter-spacing:-1px;color:#e8edf5;margin-bottom:4px;text-align:center;
}
.login-wordmark span{color:var(--gold)}
.login-tagline{font-size:11px;text-transform:uppercase;letter-spacing:3px;color:var(--muted);margin-bottom:32px;text-align:center}
.login-card{
  width:100%;background:var(--navy2);border:1px solid var(--border);
  border-radius:14px;padding:28px 28px 24px;
}
.login-welcome{font-size:18px;color:#e8edf5;font-weight:500;margin-bottom:20px;text-align:center}
.login-field{margin-bottom:16px}
.login-field label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);font-family:'DM Mono',monospace;margin-bottom:6px}
.login-input{
  width:100%;background:var(--navy3);border:1px solid var(--border);
  border-radius:8px;color:#e8edf5;font-size:16px;padding:12px 14px;
  outline:none;font-family:'DM Sans',sans-serif;transition:border-color 0.2s;
}
.login-input:focus{border-color:rgba(201,168,76,0.5)}
#login-error{
  font-size:13px;color:var(--red);text-align:center;
  min-height:18px;margin-bottom:8px;display:none;
}
.login-btn{
  width:100%;padding:14px;
  background:linear-gradient(135deg,var(--gold),#a8842a);
  border:none;border-radius:8px;color:var(--navy);
  font-size:16px;font-weight:700;cursor:pointer;
  font-family:'DM Sans',sans-serif;transition:opacity 0.2s;margin-top:4px;
}
.login-btn:hover{opacity:0.9}
.login-hint{
  font-size:11px;color:var(--muted);text-align:center;
  margin-top:16px;line-height:1.6;
}
.login-hint code{
  font-family:'DM Mono',monospace;color:var(--gold2);
  background:rgba(201,168,76,0.08);padding:1px 6px;border-radius:3px;
}

/* Sidebar user panel */
#sidebar-user-panel{
  padding:14px 18px;border-bottom:1px solid var(--border);
  display:none;background:rgba(201,168,76,0.04);
}
.sup-role{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--gold);font-family:'DM Mono',monospace;margin-bottom:2px}
.sup-name{font-size:14px;color:#e8edf5;font-weight:500}
.sup-logout{
  display:inline-block;margin-top:8px;font-size:10px;color:var(--muted);
  cursor:pointer;text-decoration:underline;font-family:'DM Mono',monospace;
  transition:color 0.15s;
}
.sup-logout:hover{color:var(--red)}

/* Sidebar recent activity */
#sidebar-recent{display:none} /* legacy compat -- element removed */
.sr-empty{padding:8px 8px;font-size:12px;color:var(--muted);font-style:italic}

/* Trainee name fields */
#trainee-name-row{margin-bottom:0}

@media(max-width:768px){
  .login-card{padding:22px 20px 18px}
  .login-wordmark{font-size:34px}
}

/* =========================== MOCK AUTH =================================== */
#login-screen{position:fixed;inset:0;z-index:9999;background:#07111f;display:flex;align-items:center;justify-content:center;padding:24px}
.lx-box{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center}
.lx-logo{width:90px;height:auto;margin-bottom:16px}
.lx-title{font-family:'Fraunces',serif;font-weight:300;font-size:40px;color:#e8edf5;letter-spacing:-1px;margin-bottom:2px}
.lx-title span{color:var(--gold)}
.lx-sub{font-size:10px;text-transform:uppercase;letter-spacing:3px;color:var(--muted);margin-bottom:28px}
.lx-card{width:100%;background:var(--navy2);border:1px solid var(--border);border-radius:14px;padding:26px 26px 22px}
.lx-welcome{font-size:17px;color:#e8edf5;font-weight:500;text-align:center;margin-bottom:20px}
.lx-field{margin-bottom:14px}
.lx-field label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);font-family:'DM Mono',monospace;margin-bottom:5px}
.lx-inp{width:100%;background:var(--navy3);border:1px solid var(--border);border-radius:8px;color:#e8edf5;font-size:16px;padding:11px 13px;outline:none;font-family:'DM Sans',sans-serif;transition:border-color 0.2s}
.lx-inp:focus{border-color:rgba(201,168,76,0.5)}
#lx-error{font-size:12px;color:var(--red);text-align:center;margin-bottom:6px;min-height:16px}
.lx-btn{width:100%;padding:13px;background:linear-gradient(135deg,var(--gold),#a8842a);border:none;border-radius:8px;color:var(--navy);font-size:16px;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;margin-top:2px}
.lx-hint{font-size:11px;color:var(--muted);text-align:center;margin-top:14px;line-height:1.7}
.lx-hint code{font-family:'DM Mono',monospace;color:var(--gold2);background:rgba(201,168,76,0.08);padding:1px 5px;border-radius:3px}
.lx-users-grid{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin-top:6px}
.lx-user-chip{font-size:10px;font-family:'DM Mono',monospace;padding:2px 8px;border-radius:10px;background:var(--surface2);color:var(--muted);border:1px solid var(--border);cursor:pointer;transition:all 0.15s}
.lx-user-chip:hover{border-color:var(--gold);color:var(--gold2)}

/* Logout button */
#logout-btn{display:none;width:100%;margin-top:8px;padding:8px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;color:var(--muted);font-size:11px;font-family:'DM Mono',monospace;cursor:pointer;transition:all 0.15s;text-align:left}
#logout-btn:hover{border-color:var(--red);color:var(--red)}
/* == Sidebar nav buttons (replaces accordion) ======================== */
.snav-btn{display:flex;align-items:center;gap:12px;padding:12px 12px;border-radius:12px;cursor:pointer;border:1px solid var(--border);background:var(--surface2);transition:border-color 0.15s,background 0.15s;user-select:none}
.snav-btn:hover{background:var(--surface);border-color:rgba(201,168,76,0.4)}
.snav-btn.active{border-color:var(--gold);background:rgba(201,168,76,0.08)}
.snav-btn.snav-dead{opacity:.55;cursor:default;pointer-events:none}   /* MOB-90 d151: a door that does not open — "RMS Integration (TBD)" where the tenant's system is not MedHub */
.snav-group{display:flex;flex-direction:column;margin-bottom:2px}
.snav-group-hdr{display:flex;align-items:center;gap:9px;padding:11px 8px 7px;cursor:pointer;font-size:13px;letter-spacing:2px;text-transform:uppercase;color:#c9d3e3;font-family:'DM Mono',monospace;user-select:none} /* AMENDMENT-53 c: 10 -> 13px, brighter */
.snav-group-hdr:hover{color:var(--gold2,#d8bd6a)}
.snav-caret{font-size:11px;transition:transform 0.15s;display:inline-block}
.snav-group.collapsed .snav-caret{transform:rotate(-90deg)}
.snav-group-body{display:flex;flex-direction:column;gap:8px;overflow:hidden}
.snav-group.collapsed .snav-group-body{display:none}
/* MOB-51 AB-4 (the owner, 2026-09-09): the attention mark on a CLOSED drawer whose doors carry a count - a red circle with a warning triangle; gone when the drawer opens; never on the drawer the user is in */
.snav-mark{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#e05a4e;color:#fff;font-size:11px;line-height:1;margin-left:4px;flex:none;letter-spacing:0}
.snav-icon{font-size:24px;flex-shrink:0;width:32px;text-align:center}
.snav-text{flex:1;min-width:0}
.snav-title{font-size:15px;font-weight:600;color:#e8edf5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} /* AMENDMENT-53 c: 12 -> 15px */
.snav-sub{font-size:12.5px;color:#a9b8cf;margin-top:2px} /* AMENDMENT-53 c: 10 -> 12.5px, brighter */
/* ====================================================================== */
#sidebar-footer{padding:12px 18px;border-top:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}
/* AMENDMENT-53 d (MOB-35 S2): THE NAV FOLDS. The button: the two hikers on field C - deep navy, gold ring. */
.snav-fold-row{display:flex;align-items:center;justify-content:flex-end;margin-top:8px}
#snav-fold{width:30px;height:30px;border-radius:7px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--navy3);border:1px solid rgba(201,168,76,0.55);transition:transform .12s,box-shadow .12s}
#snav-fold svg{height:24px;width:auto;display:block}
#snav-fold:hover{box-shadow:0 0 0 2px rgba(201,168,76,0.45);transform:translateY(-1px)}
/* Folded: a 64px gutter in the main pane's own navy, no border, nothing on it but the mountain at the top left. Everything else is HIDDEN, never removed (rule 69: the specs still find every id); !important because the role pass sets inline display on the nav and the injected doors. */
#sidebar.collapsed{width:64px;min-width:64px;background:var(--navy);border-right-color:transparent}
#sidebar.collapsed > :not(#sidebar-icon){display:none!important}
#sidebar.collapsed #sidebar-icon{padding:12px 10px;margin:4px;border-bottom:none;border-radius:8px;cursor:pointer}
#sidebar.collapsed #sidebar-icon:hover{background:var(--surface2)}
#sidebar.collapsed #sidebar-icon svg{width:44px;max-width:44px}
#topbar{position:relative}

/* Sidebar user bar */
#sidebar-user-bar{padding:12px 18px;border-bottom:1px solid var(--border);display:none;flex-direction:column;gap:2px;background:rgba(201,168,76,0.04)}
.sub-role-tag{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--gold);font-family:'DM Mono',monospace}
.sub-fullname{font-size:13px;color:#e8edf5;font-weight:500}
.sub-detail{font-size:10px;color:var(--muted)}

/* Trainee search panel (PD only) */
#trainee-search-panel{display:none;flex-direction:column;border-bottom:1px solid var(--border);flex-shrink:0}
.tsp-header{padding:10px 18px 6px;font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);font-family:'DM Mono',monospace;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.tsp-add-btn{font-size:10px;color:var(--teal2);cursor:pointer;border:none;background:none;font-family:'DM Mono',monospace;padding:0;text-decoration:underline}
#tsp-search{margin:0 12px 8px;background:var(--navy3);border:1px solid var(--border);border-radius:6px;color:#e8edf5;font-size:12px;padding:7px 10px;outline:none;font-family:'DM Sans',sans-serif;width:calc(100% - 24px);flex-shrink:0}
#tsp-results{flex:1;overflow-y:auto;padding:0 8px 6px}
.tsp-item{padding:7px 10px;border-radius:6px;cursor:pointer;transition:background 0.12s}
.tsp-item:hover{background:var(--surface)}
.tsp-item.selected-trainee{background:rgba(29,184,160,0.12);border:1px solid rgba(29,184,160,0.3)}
.tsp-name{font-size:12px;color:#e8edf5;font-weight:500}
.tsp-meta{font-size:10px;color:var(--muted);font-family:'DM Mono',monospace}
.tsp-selected-bar{margin:0 12px 8px;padding:8px 10px;background:rgba(29,184,160,0.1);border:1px solid rgba(29,184,160,0.3);border-radius:6px;display:none}
.tsp-sel-name{font-size:12px;color:var(--teal2);font-weight:500}
.tsp-sel-clear{float:right;font-size:10px;color:var(--muted);cursor:pointer}
.tsp-sel-meta{font-size:10px;color:var(--muted)}

/* Add new trainee form */
#add-trainee-form{display:none;padding:10px 12px;border-top:1px solid var(--border);background:var(--navy2)}
.atf-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:6px}
.atf-inp{width:100%;background:var(--navy3);border:1px solid var(--border);border-radius:5px;color:#e8edf5;font-size:11px;padding:6px 8px;outline:none;font-family:'DM Sans',sans-serif}
.atf-sel{width:100%;background:var(--navy3);border:1px solid var(--border);border-radius:5px;color:#e8edf5;font-size:11px;padding:6px 8px;outline:none;font-family:'DM Sans',sans-serif;cursor:pointer}
.atf-actions{display:flex;gap:6px;margin-top:4px}
.atf-btn{flex:1;padding:6px;border-radius:5px;font-size:11px;cursor:pointer;font-family:'DM Sans',sans-serif;border:1px solid var(--border);background:var(--surface2);color:var(--muted)}
.atf-btn.primary{background:var(--teal);border-color:var(--teal);color:var(--navy)}

/* Sidebar recent sessions */
#srp-home-btn:hover{border-color:rgba(201,168,76,0.4);background:var(--surface)}
.srp-header{padding:10px 18px 4px;font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);font-family:'DM Mono',monospace;flex-shrink:0}
#srp-search{margin:0 12px 6px;background:var(--navy3);border:1px solid var(--border);border-radius:6px;color:#e8edf5;font-size:11px;padding:6px 10px;outline:none;font-family:'DM Sans',sans-serif;width:calc(100% - 24px);flex-shrink:0}
.srp-item{padding:7px 10px;border-radius:6px;cursor:pointer;transition:background 0.12s;margin-bottom:2px}
.srp-item:hover{background:var(--surface)}
.srp-name{font-size:12px;color:#e8edf5;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srp-meta{font-size:10px;color:var(--muted);font-family:'DM Mono',monospace}
.srp-badge{display:inline-block;font-size:9px;padding:1px 7px;border-radius:8px;font-family:'DM Mono',monospace;margin-left:4px}
.srp-badge.accepted{background:rgba(61,190,143,0.15);color:var(--green);border:1px solid rgba(61,190,143,0.3)}
.srp-badge.pending{background:rgba(201,168,76,0.12);color:var(--gold2);border:1px solid rgba(201,168,76,0.25)}

/* Accept review button on report screen */
#btn-accept-review{display:none;padding:11px 22px;background:linear-gradient(135deg,var(--teal),#17907c);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;box-shadow:0 2px 8px rgba(29,184,160,0.3)}
#btn-accept-review:hover{filter:brightness(1.1)}
#btn-accept-review.accepted-state{background:rgba(61,190,143,0.08);color:var(--muted);cursor:default;border:1px solid var(--border);box-shadow:none;font-weight:400}

/* ILP Hub list items */
.ilp-hub-item{padding:10px 12px;border-radius:7px;cursor:pointer;transition:background 0.12s;border:1px solid transparent;margin-bottom:4px}
.ilp-hub-item:hover{background:var(--surface);border-color:var(--border)}
.ilp-hub-item.active{background:rgba(201,168,76,0.08);border-color:rgba(201,168,76,0.3)}
.ilp-hub-item-title{font-size:13px;color:#e8edf5;font-weight:500}
.ilp-hub-item-meta{font-size:10px;color:var(--muted);font-family:'DM Mono',monospace;margin-top:2px}

/* Trainee home -- shown for Fellows/Residents instead of config form */
#trainee-home{display:none;flex-direction:column;align-items:center;justify-content:flex-start;flex:1;padding:40px 28px;text-align:center;min-height:300px;overflow-y:auto}
#trainee-home .th-icon{font-size:48px;margin-bottom:18px;opacity:0.25}
#trainee-home h2{font-family:'Fraunces',serif;font-weight:300;font-size:28px;color:#e8edf5;margin-bottom:10px;line-height:1.2}
#trainee-home .th-msg{font-size:14px;color:var(--muted);line-height:1.7;max-width:380px}
#trainee-home .th-msg strong{color:#c8d8ed}
#trainee-home .th-count{display:inline-block;margin-top:18px;padding:8px 20px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;font-size:13px;color:var(--muted);font-family:'DM Mono',monospace}

/* === LOR NEW ELEMENTS ================================================= */
.rec-block{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:10px}
.rec-block-hdr{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold);font-family:'DM Mono',monospace;margin-bottom:8px;font-weight:600}
.rec-inp{width:100%;background:var(--navy3);border:1px solid var(--border);border-radius:6px;color:#e8edf5;font-size:13px;padding:8px 10px;outline:none;font-family:'DM Sans',sans-serif;box-sizing:border-box}
.rec-inp:focus{border-color:rgba(201,168,76,0.5)}
.rec-textarea{width:100%;background:var(--navy3);border:1px solid var(--border);border-radius:6px;color:#e8edf5;font-size:12px;padding:8px 10px;outline:none;font-family:'DM Sans',sans-serif;box-sizing:border-box;resize:vertical;line-height:1.5}
.rec-textarea:focus{border-color:rgba(201,168,76,0.5)}
.rec-mini-btn{font-size:11px;padding:4px 10px;background:none;border:1px solid var(--border);border-radius:5px;color:var(--muted);cursor:pointer;font-family:'DM Mono',monospace;margin-top:5px}
.rec-mini-btn:hover{color:var(--teal2);border-color:var(--teal2)}
.lor-field-group{margin-bottom:18px}
.lor-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gold);font-family:'DM Mono',monospace;margin-bottom:6px;font-weight:600}
/* work item badge -- mobile only now, desktop uses accordion */

/* =================== RECOMMENDATION LETTER =========================== */
#rec-screen{display:none;flex:1;flex-direction:column;overflow:hidden}
#rec-topbar{padding:13px 28px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-shrink:0;background:var(--navy2);flex-wrap:wrap}
#rec-topbar h2{font-family:'Fraunces',serif;font-size:20px;font-weight:300;color:#e8edf5;margin-right:auto}
#rec-topbar h2 span{color:var(--gold)}
.rec-top-btn{padding:8px 18px;border-radius:7px;border:1px solid var(--border);background:var(--surface2);color:var(--muted);font-size:12px;font-family:'DM Mono',monospace;cursor:pointer;transition:all 0.15s;white-space:nowrap}
.rec-top-btn:hover{color:#e8edf5;border-color:rgba(255,255,255,0.2)}
.rec-top-btn.primary{background:linear-gradient(135deg,var(--gold),#a8842a);color:var(--navy);border:none;font-weight:700}
#rec-body{flex:1;display:flex;flex-direction:row;overflow:hidden}
#rec-words-panel{width:270px;min-width:270px;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;padding:18px 16px;gap:16px;flex-shrink:0;background:var(--navy2)}
.rec-section-label{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);font-family:'DM Mono',monospace;margin-bottom:8px}
.rec-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}
.rec-chip{padding:5px 12px;border-radius:20px;font-size:11px;cursor:pointer;font-family:'DM Sans',sans-serif;font-weight:500;border:1px solid;transition:all 0.15s;user-select:none}
.rec-chip.positive{border-color:rgba(29,184,160,0.35);color:var(--teal2);background:rgba(29,184,160,0.06)}
.rec-chip.positive.selected{background:rgba(29,184,160,0.22);border-color:var(--teal);color:#fff;box-shadow:0 0 0 1px rgba(29,184,160,0.4)}
.rec-chip.negative{border-color:rgba(224,82,82,0.3);color:#c07070;background:rgba(224,82,82,0.04)}
.rec-chip.negative.selected{background:rgba(224,82,82,0.18);border-color:var(--red);color:#f09090;box-shadow:0 0 0 1px rgba(224,82,82,0.4)}
#rec-generate-btn{width:100%;padding:11px;background:linear-gradient(135deg,var(--gold),#a8842a);border:none;border-radius:8px;color:var(--navy);font-size:14px;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;margin-top:4px;transition:all 0.2s}
#rec-generate-btn:hover:not(:disabled){opacity:0.88}
#rec-generate-btn:disabled{background:var(--surface2);color:var(--muted);cursor:not-allowed;border:1px solid var(--border);opacity:1}
#rec-readiness-check{font-size:14px;line-height:2.2;text-align:left;width:100%}
#rec-readiness-check .rc-item{display:flex;align-items:flex-start;gap:10px;padding:4px 0}
#rec-readiness-check .rc-icon{font-size:16px;flex-shrink:0;margin-top:2px}
#rec-readiness-check .rc-text{font-size:14px;line-height:1.4}
#rec-readiness-check .rc-done .rc-icon{color:#3dbe8f}
#rec-readiness-check .rc-done .rc-text{color:var(--muted)}
#rc-readiness-title{font-size:16px;font-weight:600;color:#c8d8ed;margin-bottom:14px}
#rec-selection-summary{font-size:11px;color:var(--muted);font-family:'DM Mono',monospace;text-align:center}
#rec-letter-panel{flex:1;overflow-y:auto;padding:32px 40px;display:flex;flex-direction:column;gap:0}
#rec-letter-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:var(--muted);text-align:center;padding:40px}
#rec-letter-empty .ri{font-size:40px;opacity:0.25;margin-bottom:12px}
#rec-letter-doc{display:none;background:#fff;color:#1a1a2e;border-radius:8px;padding:48px 52px;max-width:720px;width:100%;box-shadow:0 4px 24px rgba(0,0,0,0.35);font-family:Georgia,serif;line-height:1.75;font-size:14px;margin-bottom:20px}
#rec-letter-doc .letter-header-line{font-size:12px;line-height:1.4;color:#444;margin-bottom:2px;font-family:'Times New Roman',serif}
#rec-letter-doc .letter-re{font-size:13px;margin:16px 0 4px;color:#1a2033}
#rec-letter-doc .letter-salutation{margin:18px 0 18px;color:#1a1a2e;font-size:14px}
#rec-letter-doc .letter-spacer{height:10px}
#rec-letter-doc .letter-competency-hdr{font-size:13.5px;font-weight:700;text-decoration:underline;text-underline-offset:3px;color:#1a2033;margin:18px 0 6px}
#rec-letter-doc .letter-section-hdr{font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:3px;color:#1a2033;margin:20px 0 8px;letter-spacing:0.3px}
#rec-letter-doc .letter-bullet{display:flex;align-items:flex-start;gap:8px;margin:4px 0 4px 12px;color:#1a2033;font-size:13.5px;line-height:1.6}
#rec-letter-doc .letter-bullet-dot{flex-shrink:0;margin-top:2px;color:#555}
#rec-letter-doc p{margin:0 0 16px;color:#1a2033;text-align:justify;font-size:14px}
#rec-letter-doc .letter-closing{margin-top:36px}
#rec-letter-doc .letter-closing-word{margin-bottom:28px;color:#1a2033}
#rec-letter-doc .letter-sig-line{line-height:1.5;color:#1a2033;font-size:13px}
#rec-edit-area{display:none;background:#fff;border-radius:8px;padding:32px 52px 28px;max-width:720px;width:100%;box-shadow:0 4px 24px rgba(0,0,0,0.35);margin-bottom:20px}
#rec-letter-textarea{width:100%;min-height:520px;font-family:Georgia,serif;font-size:14px;line-height:1.75;color:#1a2033;border:none;resize:vertical;outline:none;background:transparent}
.rec-doc-actions{display:flex;gap:10px;max-width:720px;margin-bottom:32px}
.rec-doc-btn{padding:10px 22px;border-radius:7px;font-size:13px;cursor:pointer;font-family:'DM Sans',sans-serif;font-weight:600;border:1px solid var(--border);background:var(--surface2);color:#e8edf5;transition:all 0.15s}
.rec-doc-btn.primary{background:linear-gradient(135deg,var(--gold),#a8842a);color:var(--navy);border:none}
.rec-doc-btn.teal{background:linear-gradient(135deg,var(--teal),#17907c);color:var(--navy);border:none}

@media(max-width:768px){
  #rec-body{flex-direction:column;overflow-y:auto}
  #rec-words-panel{width:100%;min-width:unset;border-right:none;border-bottom:1px solid var(--border);padding:14px;overflow-y:visible;max-height:none;flex-shrink:0}
  #rec-list-panel{width:100%;min-width:unset;border-right:none;border-bottom:1px solid var(--border);max-height:160px}
  #rec-letter-panel{padding:16px}
  #rec-letter-doc,#rec-edit-area{padding:24px 18px}
  #rec-screen{overflow-y:auto}
  #rec-topbar{padding:10px 12px;gap:6px;flex-wrap:wrap}
  #rec-topbar h2{font-size:17px;width:100%;margin-bottom:2px}
  .rec-top-btn{padding:7px 10px;font-size:11px;white-space:nowrap;flex-shrink:1}
  #rec-back-btn{margin-left:0}
  /* == LOR request screen: full scroll on mobile == */
  #lor-request-screen{overflow-y:auto!important}
  #lor-request-screen>div:first-child{flex-shrink:0}
  #lor-request-screen>div:nth-child(2){overflow-y:visible!important;padding:20px 16px 40px!important}
  /* == LOR hub screen: stack list then detail == */
  #lor-hub-screen>div:last-child{flex-direction:column!important}
  #lor-hub-list{width:100%!important;min-width:unset!important;border-right:none!important;border-bottom:1px solid var(--border);max-height:220px}
  #lor-hub-detail{padding:16px!important}
  #lor-hub-letter-doc{padding:20px 14px!important}
  /* == LOR template screen == */
  #lor-template-screen>div:last-child{padding:20px 16px 40px!important}
  /* == General overflow lock == */
  #main{overflow-x:hidden}
  #welcome,#report-screen,#lor-request-screen,#lor-hub-screen,#lor-template-screen,#rec-screen{max-width:100vw;overflow-x:hidden}
}

@keyframes spin{to{transform:rotate(360deg)}}

@media(max-width:768px){
/* == PD Mobile Home Screen == */
#mob-pd-home{display:none;flex-direction:column;flex:1;overflow-y:auto;padding:20px 18px 32px;background:var(--navy)}
#mob-pd-home .mph-greeting{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--gold);font-family:'DM Mono',monospace;margin-bottom:6px}
#mob-pd-home .mph-name{font-family:'Fraunces',serif;font-weight:300;font-size:26px;color:#e8edf5;margin-bottom:20px;line-height:1.2}
.mph-card{background:var(--navy2);border:1px solid var(--border);border-radius:12px;padding:18px 18px;margin-bottom:12px;cursor:pointer;transition:border-color 0.18s,background 0.18s;display:flex;align-items:center;gap:16px}
.mph-card:active{background:var(--navy3);border-color:rgba(201,168,76,0.4)}
.mph-card-icon{font-size:26px;flex-shrink:0;width:42px;text-align:center}
.mph-card-title{font-size:15px;color:#e8edf5;font-weight:600;margin-bottom:3px}
.mph-card-sub{font-size:12px;color:var(--muted);line-height:1.4}
.mph-card.primary{border-color:rgba(201,168,76,0.3);background:rgba(201,168,76,0.04)}
.mph-card.primary:active{background:rgba(201,168,76,0.1)}
.mph-sessions-hdr{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);font-family:'DM Mono',monospace;margin:20px 0 10px;padding-top:8px;border-top:1px solid var(--border)}
.mph-sess-card{background:var(--navy2);border:1px solid var(--border);border-radius:10px;padding:13px 14px;margin-bottom:8px;cursor:pointer;transition:border-color 0.15s}
.mph-sess-card:active{border-color:rgba(201,168,76,0.4)}
.mph-sess-name{font-size:13px;color:#e8edf5;font-weight:500;margin-bottom:4px}
.mph-sess-meta{font-size:10px;color:var(--muted);font-family:'DM Mono',monospace}
#mob-pd-context{display:none;background:rgba(29,184,160,0.07);border:1px solid rgba(29,184,160,0.25);border-radius:10px;padding:12px 14px;margin-bottom:14px;position:relative}
#mob-pd-context .ctx-label{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--teal2);font-family:'DM Mono',monospace;margin-bottom:3px}
#mob-pd-context .ctx-name{font-size:14px;color:#e8edf5;font-weight:500}
#mob-pd-context .ctx-meta{font-size:10px;color:var(--muted);font-family:'DM Mono',monospace;margin-top:1px}
#mob-pd-context-clear{position:absolute;top:10px;right:12px;background:none;border:1px solid rgba(224,82,82,0.35);border-radius:5px;color:var(--red);font-size:10px;padding:3px 9px;cursor:pointer;font-family:'DM Mono',monospace}
}

/* =================== GOAL THREADS & ACCEPTANCE ========================= */
.goal-thread-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.thread-section-label{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);font-family:'DM Mono',monospace;margin-bottom:10px}
.goal-thread{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto;margin-bottom:10px}
.thread-empty{font-size:12px;color:var(--muted);font-style:italic;padding:4px 0}
.note-item{padding:10px 12px;border-radius:7px;background:var(--navy3);border-left:3px solid var(--border)}
.note-item.role-PD{border-left-color:var(--gold)}
.note-item.role-Fellow,.note-item.role-Resident{border-left-color:var(--teal)}
.note-author{display:flex;align-items:center;gap:7px;margin-bottom:5px;flex-wrap:wrap}
.note-role-badge{font-size:9px;font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:1px;padding:2px 7px;border-radius:8px;background:var(--surface2);color:var(--muted)}
.note-item.role-PD .note-role-badge{background:rgba(201,168,76,0.12);color:var(--gold2)}
.note-item.role-Fellow .note-role-badge,.note-item.role-Resident .note-role-badge{background:rgba(29,184,160,0.12);color:var(--teal2)}
.note-name{font-size:12px;color:#e8edf5;font-weight:500}
.note-date{font-size:10px;color:var(--muted);font-family:'DM Mono',monospace;margin-left:auto}
.note-text{font-size:13px;color:#c8d8ed;line-height:1.5}
.note-add{display:flex;flex-direction:column;gap:6px}
.note-input{width:100%;background:var(--navy2);border:1px solid var(--border);border-radius:6px;color:#e8edf5;font-size:13px;padding:8px 11px;outline:none;font-family:'DM Sans',sans-serif;resize:vertical;min-height:58px;transition:border-color 0.2s}
.note-input:focus{border-color:rgba(29,184,160,0.45)}
.note-post-btn{align-self:flex-end;padding:7px 18px;background:var(--teal);border:none;border-radius:6px;color:var(--navy);font-size:12px;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:opacity 0.15s}
.note-post-btn:hover{opacity:0.85}
.goal-accept-row{margin-bottom:12px}
.goal-accept-btn{padding:7px 18px;background:rgba(61,190,143,0.12);border:1px solid var(--green);border-radius:7px;color:var(--green);font-size:12px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s}
.goal-accept-btn:hover{background:rgba(61,190,143,0.22)}
.accepted-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;background:rgba(61,190,143,0.1);border:1px solid rgba(61,190,143,0.3);border-radius:7px;color:var(--green);font-size:11px;font-family:'DM Mono',monospace}
.pending-accept-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;background:rgba(201,168,76,0.08);border:1px solid rgba(201,168,76,0.2);border-radius:7px;color:var(--gold2);font-size:11px;font-family:'DM Mono',monospace}

#rec-list-panel{width:200px;min-width:180px;border-right:1px solid var(--border);display:none;flex-direction:column;overflow:hidden;flex-shrink:0;background:var(--navy3)}
.rec-list-hdr{padding:12px 14px 6px;font-size:9px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);font-family:'DM Mono',monospace;flex-shrink:0}
#rec-list-items{flex:1;overflow-y:auto;padding:0 8px 8px}
.rec-li{padding:8px 10px;border-radius:6px;cursor:pointer;transition:background 0.12s;margin-bottom:2px;border:1px solid transparent}
.rec-li:hover{background:var(--surface)}
.rec-li.active{background:rgba(201,168,76,0.08);border-color:rgba(201,168,76,0.2)}
.rec-li-name{font-size:12px;color:#e8edf5;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rec-li-meta{font-size:10px;color:var(--muted);font-family:'DM Mono',monospace;margin-top:2px}
.rec-list-empty{padding:12px 10px;font-size:11px;color:var(--muted);font-style:italic;line-height:1.5}

/* == ILP HUB LAYOUT -- full height chain (v2.6.1) =================== */
/* #main is flex:1 flex-direction:column -- ilp-hub-screen must fill it */
#ilp-hub-screen{height:100%;box-sizing:border-box}
#ilp-hub-nav{height:100%;box-sizing:border-box;overflow-y:auto}
#ilp-hub-content{height:100%;box-sizing:border-box}
#ilp-listen-screen{height:100%;box-sizing:border-box}

/* == ILP CHEAT-SHEET CARDS (v2.5.0) =============================== */
.ilp-cs-card{background:var(--navy3);border:1.5px solid var(--border);border-radius:10px;padding:12px 14px;transition:border-color 0.2s,background 0.2s}
.ilp-cs-card-lg{padding:16px 18px;display:flex;flex-direction:column}
.ilp-cs-card.cs-active{border-color:var(--teal);background:rgba(29,184,160,0.06)}
.ilp-cs-card.cs-done{border-color:var(--gold);background:rgba(201,168,76,0.07)}
.ilp-cs-label{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);font-family:'DM Mono',monospace;margin-bottom:10px}
.ilp-cs-card-lg .ilp-cs-label{font-size:11px;margin-bottom:12px}
.ilp-cs-card.cs-active .ilp-cs-label{color:var(--teal2)}
.ilp-cs-card.cs-done .ilp-cs-label{color:var(--gold)}
.ilp-cs-list{list-style:none;display:flex;flex-direction:column;gap:6px;flex:1}
.ilp-cs-card-lg .ilp-cs-list{gap:10px}
.ilp-cs-list li{font-size:12px;color:var(--muted);display:flex;align-items:flex-start;gap:6px;line-height:1.35;transition:color 0.2s,background 0.15s;border-radius:4px;padding:2px 4px;margin:0 -4px}
.ilp-cs-card-lg .ilp-cs-list li{font-size:15px;padding:4px 6px;margin:0 -6px;gap:8px}
.ilp-cs-list li::before{content:"·";font-size:16px;line-height:1;color:var(--border);flex-shrink:0}
.ilp-cs-card-lg .ilp-cs-list li::before{font-size:20px}
.ilp-cs-list li.cs-lit{color:#e8edf5}
.ilp-cs-list li.cs-lit::before{color:var(--teal)}
.ilp-cs-list li.cs-hot{color:var(--navy);background:rgba(201,168,76,0.85);border-radius:4px;font-weight:600}
.ilp-cs-list li.cs-hot::before{color:var(--navy)}
.ilp-cs-list li.cs-done-item{color:var(--gold);text-decoration:line-through;opacity:0.7}
/* Competency pills */
.ilp-comp-pill{font-size:13px;padding:7px 16px;border-radius:14px;border:1px solid var(--border);color:var(--muted);background:transparent;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;transition:all 0.15s}
.ilp-comp-pill:hover{border-color:rgba(201,168,76,0.4);color:var(--gold2)}
.ilp-comp-pill.active{border-color:var(--teal);color:var(--teal2);background:rgba(29,184,160,0.1);font-weight:600}
#ilp-listen-screen{
  flex:1;display:none;flex-direction:column;overflow:hidden;
  background:var(--navy);
}
#ilp-listen-screen.active{ display:flex; }
@media(max-width:768px){
  #ilp-listen-screen{
    position:fixed;inset:0;z-index:555;
    background:var(--navy);flex-direction:column;
  }
}
#ilp-listen-anim-wrap{
  width:340px;height:340px;flex-shrink:0;margin:0 auto;
}
#ilp-listen-anim-wrap svg{ width:100%;height:100%; }
#ilp-transcript-strip{
  width:100%;max-width:480px;margin:0 auto;
  min-height:54px;max-height:72px;overflow:hidden;
  font-size:12px;color:var(--muted);font-family:'DM Mono',monospace;
  line-height:1.7;padding:0 4px;text-align:center;
}

/* == ILP LISTEN ANIMATION keyframes ================================== */

/* Mountain outline: stroke-dashoffset 0→720 (path length ~720) -- draws in */
@keyframes ilp-mtn-draw{
  0%   { stroke-dashoffset:720; opacity:1; }
  20%  { stroke-dashoffset:0;   opacity:1; }
  85%  { stroke-dashoffset:0;   opacity:1; }
  100% { stroke-dashoffset:0;   opacity:0; }
}
/* Snow cap fill fade in */
@keyframes ilp-snow-in{
  0%,12% { opacity:0; }
  22%    { opacity:1; }
  85%    { opacity:1; }
  100%   { opacity:0; }
}
/* Summit marker */
@keyframes ilp-summit-in{
  0%,18% { opacity:0; }
  26%    { opacity:1; }
  85%    { opacity:1; }
  100%   { opacity:0; }
}
/* Chest piece circle draw (~113px circumference) */
@keyframes ilp-chest-draw{
  0%,17%  { stroke-dashoffset:113; opacity:1; }
  32%     { stroke-dashoffset:0;   opacity:1; }
  85%     { stroke-dashoffset:0;   opacity:1; }
  100%    { stroke-dashoffset:0;   opacity:0; }
}
/* Stem draw (~230px) */
@keyframes ilp-stem-draw{
  0%,30%  { stroke-dashoffset:230; opacity:1; }
  48%     { stroke-dashoffset:0;   opacity:1; }
  85%     { stroke-dashoffset:0;   opacity:1; }
  100%    { stroke-dashoffset:0;   opacity:0; }
}
/* Left branch draw (~230px) */
@keyframes ilp-left-draw{
  0%,46%  { stroke-dashoffset:230; opacity:1; }
  62%     { stroke-dashoffset:0;   opacity:1; }
  85%     { stroke-dashoffset:0;   opacity:1; }
  100%    { stroke-dashoffset:0;   opacity:0; }
}
/* Right branch draw (~230px) */
@keyframes ilp-right-draw{
  0%,60%  { stroke-dashoffset:230; opacity:1; }
  75%     { stroke-dashoffset:0;   opacity:1; }
  85%     { stroke-dashoffset:0;   opacity:1; }
  100%    { stroke-dashoffset:0;   opacity:0; }
}
/* Figures: fade in at chest, climb to mid, pause, climb to summit, fade out */
@keyframes ilp-hiker-move{
  0%,70%  { opacity:0;   transform:translateY(0);    }
  74%     { opacity:1;   transform:translateY(0);    }
  80%     { opacity:1;   transform:translateY(-110px); }
  83%     { opacity:1;   transform:translateY(-110px); }
  88%     { opacity:1;   transform:translateY(-220px); }
  93%     { opacity:1;   transform:translateY(-220px); }
  100%    { opacity:0;   transform:translateY(-220px); }
}
/* Trainee slightly behind -- same but delayed slightly */
@keyframes ilp-trainee-move{
  0%,72%  { opacity:0;   transform:translateY(0);    }
  76%     { opacity:1;   transform:translateY(0);    }
  82%     { opacity:1;   transform:translateY(-100px); }
  85%     { opacity:1;   transform:translateY(-100px); }
  90%     { opacity:1;   transform:translateY(-210px); }
  94%     { opacity:1;   transform:translateY(-210px); }
  100%    { opacity:0;   transform:translateY(-210px); }
}

/* Apply animations -- 9s cycle, infinite */
.ilp-anim-mtn    { animation: ilp-mtn-draw    9s linear infinite; stroke-dasharray:720; stroke-dashoffset:720; }
.ilp-anim-snow   { animation: ilp-snow-in     9s linear infinite; }
.ilp-anim-summit { animation: ilp-summit-in   9s linear infinite; }
.ilp-anim-chest  { animation: ilp-chest-draw  9s linear infinite; stroke-dasharray:113; stroke-dashoffset:113; }
.ilp-anim-stem   { animation: ilp-stem-draw   9s linear infinite; stroke-dasharray:230; stroke-dashoffset:230; }
.ilp-anim-left   { animation: ilp-left-draw   9s linear infinite; stroke-dasharray:230; stroke-dashoffset:230; }
.ilp-anim-right  { animation: ilp-right-draw  9s linear infinite; stroke-dasharray:230; stroke-dashoffset:230; }
.ilp-anim-sherpa { animation: ilp-hiker-move  9s linear infinite; }
.ilp-anim-trainee{ animation: ilp-trainee-move 9s linear infinite; }

/* Paused state -- freeze all animation */
#ilp-listen-screen.paused .ilp-anim-mtn,
#ilp-listen-screen.paused .ilp-anim-snow,
#ilp-listen-screen.paused .ilp-anim-summit,
#ilp-listen-screen.paused .ilp-anim-chest,
#ilp-listen-screen.paused .ilp-anim-stem,
#ilp-listen-screen.paused .ilp-anim-left,
#ilp-listen-screen.paused .ilp-anim-right,
#ilp-listen-screen.paused .ilp-anim-sherpa,
#ilp-listen-screen.paused .ilp-anim-trainee{
  animation-play-state: paused;
}

/* ===============================================================
   BEGIN GUEST GATE CSS -- v2.7.6
   Remove this block (and the HTML + JS blocks below) to revert.
   =============================================================== */
#guest-gate-screen{
  position:fixed;inset:0;z-index:10000;
  background:var(--navy);
  display:flex;align-items:center;justify-content:center;
  padding:24px;
  flex-direction:column;
}
#guest-gate-inner{
  width:100%;max-width:560px;
  display:flex;flex-direction:column;align-items:center;
  gap:0;
}
#guest-logo-wrap{
  width:100%;
  display:flex;flex-direction:column;align-items:center;
  padding:32px 0 0;
}
#guest-pw-form{
  width:100%;max-width:360px;
  background:var(--navy2);border:1px solid var(--border);
  border-radius:14px;padding:26px 26px 22px;
  display:flex;flex-direction:column;align-items:center;gap:0;
}
#guest-pw-form .gg-label{
  font-size:10px;text-transform:uppercase;letter-spacing:2px;
  color:var(--gold);font-family:'DM Mono',monospace;
  margin-bottom:16px;text-align:center;
}
#guest-pw-input{
  width:100%;background:var(--navy3);border:1px solid var(--border);
  border-radius:8px;color:#e8edf5;font-size:16px;
  padding:12px 14px;outline:none;font-family:'DM Sans',sans-serif;
  transition:border-color 0.2s;margin-bottom:10px;
  text-align:center;letter-spacing:2px;
}
#guest-pw-input:focus{border-color:rgba(201,168,76,0.5)}
#guest-pw-error{
  font-size:12px;color:var(--red);text-align:center;
  min-height:16px;margin-bottom:8px;
}
#guest-submit-btn{
  width:100%;padding:13px;
  background:linear-gradient(135deg,var(--gold),#a8842a);
  border:none;border-radius:8px;color:var(--navy);
  font-size:15px;font-weight:700;cursor:pointer;
  font-family:'DM Sans',sans-serif;transition:opacity 0.2s;
}
#guest-submit-btn:hover:not(:disabled){opacity:0.9}
#guest-submit-btn:disabled{opacity:0.35;cursor:not-allowed}
#guest-locked-msg{
  display:none;
  padding:18px 20px;
  background:rgba(224,82,82,0.07);
  border:1px solid rgba(224,82,82,0.3);
  border-radius:10px;
  font-size:13px;color:var(--red);
  text-align:center;line-height:1.6;
  width:100%;max-width:360px;
}
@media(max-width:768px){
  #guest-gate-inner{max-width:100%}
  #guest-pw-form{padding:20px 18px 18px}
}
/* ===============================================================
   END GUEST GATE CSS
   =============================================================== */

/* ===============================================================
   CCC MEETING MODULE -- v3.0.4
   Full-screen 3-column layout: nav (shared) | context-col | main
   =============================================================== */
#ccc-screen{display:none;position:fixed;top:0;left:0;right:0;bottom:0;flex-direction:row;overflow:hidden;background:var(--navy);z-index:100}
/* Context column -- second column, 240px, shows cohort/specialty/trainee lists */
#ccc-context-col{width:240px;min-width:240px;background:var(--navy2);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}
/* Main area -- third column, fills remaining width */
#ccc-main-col{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--navy)}
/* == Context column header == */
.ccc-ctx-header{padding:14px 16px 10px;border-bottom:1px solid var(--border);flex-shrink:0}
.ccc-ctx-crumb{font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:4px;margin-bottom:6px;transition:color 0.15s}
.ccc-ctx-crumb:hover{color:var(--teal2)}
.ccc-ctx-title{font-size:13px;font-weight:600;color:#e8edf5}
.ccc-ctx-sub{font-size:11px;color:var(--muted);margin-top:2px}
/* == Search in context col == */
.ccc-ctx-search{margin:8px 12px 4px;position:relative;flex-shrink:0}
.ccc-ctx-search input{width:100%;background:var(--navy3);border:1px solid var(--border);border-radius:6px;color:#e8edf5;font-size:12px;padding:6px 10px 6px 28px;outline:none;font-family:'DM Sans',sans-serif;transition:border-color 0.15s;box-sizing:border-box}
.ccc-ctx-search input:focus{border-color:rgba(201,168,76,0.4)}
.ccc-ctx-search input::placeholder{color:var(--muted)}
.ccc-ctx-search-icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted);pointer-events:none}
/* == Cohort list == */
#ccc-cohort-list{overflow-y:auto;flex:1;padding:6px 10px 12px}
.ccc-cohort-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--navy3);cursor:pointer;margin-bottom:6px;transition:border-color 0.15s,background 0.15s}
.ccc-cohort-item:hover{border-color:rgba(201,168,76,0.4);background:rgba(201,168,76,0.05)}
.ccc-cohort-item.selected{border-color:rgba(201,168,76,0.6);background:rgba(201,168,76,0.1)}
.ccc-cohort-icon{font-size:18px;flex-shrink:0}
.ccc-cohort-info{flex:1;min-width:0}
.ccc-cohort-label{font-size:13px;font-weight:500;color:#e8edf5}
.ccc-cohort-item.selected .ccc-cohort-label{color:var(--gold2)}
.ccc-cohort-count{font-size:11px;color:var(--muted);margin-top:1px}
.ccc-cohort-reviewed{font-size:10px;color:var(--teal2);font-family:'DM Mono',monospace;margin-top:1px}
.ccc-cohort-check{font-size:14px;color:var(--gold)}
/* == Specialty list == */
#ccc-specialty-list{overflow-y:auto;flex:1;padding:4px 10px 12px}
.ccc-spec-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;border:1px solid var(--border);background:var(--navy3);cursor:pointer;margin-bottom:4px;transition:border-color 0.15s}
.ccc-spec-item:hover{border-color:rgba(201,168,76,0.35)}
.ccc-spec-item.selected{border-color:rgba(29,184,160,0.5);background:rgba(29,184,160,0.07)}
.ccc-spec-label{font-size:12px;font-weight:500;color:#e8edf5;flex:1}
.ccc-spec-item.selected .ccc-spec-label{color:var(--teal2)}
.ccc-spec-count{font-size:11px;color:var(--muted)}
.ccc-spec-arrow{font-size:12px;color:var(--muted)}
/* == Trainee roster list == */
#ccc-trainee-list{overflow-y:auto;flex:1;padding:4px 10px 12px}
.ccc-trainee-item{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:7px;cursor:pointer;border:1px solid transparent;margin-bottom:3px;transition:background 0.12s,border-color 0.12s}
.ccc-trainee-item:hover{background:var(--navy3)}
.ccc-trainee-item.active{background:rgba(29,184,160,0.1);border-color:rgba(29,184,160,0.4)}
.ccc-trainee-item.done{opacity:0.55}
.ccc-trainee-av{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;font-family:'DM Mono',monospace}
.ccc-trainee-av.pending{background:rgba(201,168,76,0.15);color:var(--gold)}
.ccc-trainee-av.active{background:var(--teal);color:var(--navy)}
.ccc-trainee-av.done{background:rgba(29,184,160,0.2);color:var(--teal2)}
.ccc-trainee-name{font-size:12px;font-weight:500;color:#e8edf5;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ccc-trainee-item.done .ccc-trainee-name{color:var(--muted)}
.ccc-trainee-status{font-size:12px;flex-shrink:0}
/* == CCC nav context pills (in sidebar) == */
.ccc-nav-ctx-wrap{padding:8px 10px}
.ccc-nav-ctx-pill{display:flex;align-items:center;gap:6px;padding:5px 9px;border-radius:6px;font-size:13px;font-weight:500;margin-bottom:3px;overflow:hidden}
.ccc-nav-ctx-pill.cohort{background:rgba(201,168,76,0.12);color:var(--gold2);border:1px solid rgba(201,168,76,0.3)}
.ccc-nav-ctx-pill.specialty{background:rgba(29,184,160,0.1);color:var(--teal2);border:1px solid rgba(29,184,160,0.25)}
.ccc-nav-ctx-pill.trainee{background:rgba(74,111,165,0.2);color:#a0bcd8;border:1px solid rgba(74,111,165,0.35)}
.ccc-nav-ctx-pill.muted{background:var(--surface2);color:var(--muted);border:1px dashed var(--border)}
.ccc-nav-ctx-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ccc-nav-ctx-x{font-size:11px;cursor:pointer;opacity:0.6;padding:0 2px;border-radius:3px;flex-shrink:0;transition:opacity 0.15s}
.ccc-nav-ctx-x:hover{opacity:1}
.ccc-nav-ctx-sub{font-size:12px;color:var(--muted);margin:0 10px 6px;font-family:'DM Mono',monospace}
.ccc-nav-saved-note{margin:2px 10px 4px;background:rgba(29,184,160,0.1);border:1px solid rgba(29,184,160,0.25);border-radius:6px;padding:4px 8px;font-size:10px;color:var(--teal2);display:flex;align-items:center;gap:5px}
.ccc-nav-progress{margin:2px 10px 6px}
.ccc-nav-progress-label{font-size:10px;color:var(--muted);margin-bottom:3px;display:flex;justify-content:space-between}
.ccc-nav-progress-bar{height:3px;background:var(--surface2);border-radius:2px}
.ccc-nav-progress-fill{height:3px;background:var(--teal);border-radius:2px;transition:width 0.4s}
.ccc-nav-listen-pill{margin:4px 10px 6px;background:rgba(29,184,160,0.1);border:1px solid rgba(29,184,160,0.25);border-radius:8px;padding:7px 10px}
.ccc-nav-listen-dot{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--teal2);font-weight:500}
.ccc-listen-dot{width:6px;height:6px;border-radius:50%;background:var(--teal);flex-shrink:0}
.ccc-listen-dot.pulsing{animation:ccc-pulse 1.5s infinite}
@keyframes ccc-pulse{0%,100%{opacity:1}50%{opacity:0.35}}
.ccc-nav-listen-sub{font-size:10px;color:var(--muted);margin-top:2px}
/* == Main area: welcome / cohort selection state == */
#ccc-empty-main{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:40px 32px;text-align:center}
.ccc-empty-icon{font-size:44px;opacity:0.2;margin-bottom:14px}
.ccc-empty-title{font-size:15px;font-weight:500;color:var(--muted)}
.ccc-empty-sub{font-size:13px;color:var(--muted);margin-top:8px;line-height:1.6;max-width:320px}
.ccc-order-note{margin-top:20px;background:var(--navy3);border:1px solid var(--border);border-radius:8px;padding:12px 16px;font-size:11px;color:var(--muted);line-height:1.7;text-align:left;max-width:340px}
.ccc-order-note strong{display:block;color:#e8edf5;margin-bottom:3px;font-weight:500}
.ccc-voice-hint{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);background:var(--navy2);border:1px solid rgba(201,168,76,0.35);border-radius:10px;padding:7px 16px;font-size:12px;color:var(--gold2);white-space:nowrap;display:flex;align-items:center;gap:6px;pointer-events:none}
/* == Trainee active screen (3rd column content) == */
#ccc-trainee-screen{display:none;flex-direction:column;flex:1;overflow:hidden}
#ccc-trainee-head{padding:16px 24px 12px;border-bottom:1px solid var(--border);background:var(--navy2);flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between}
.ccc-trainee-name-big{font-size:28px;font-weight:300;font-family:'Fraunces',serif;color:#e8edf5;line-height:1.1}
.ccc-trainee-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}
.ccc-meta-pill{border-radius:20px;padding:4px 12px;font-size:12px;border:1px solid;font-family:'DM Mono',monospace}
.ccc-meta-pill.cohort{background:rgba(201,168,76,0.12);color:var(--gold2);border-color:rgba(201,168,76,0.35)}
.ccc-meta-pill.specialty{background:rgba(29,184,160,0.1);color:var(--teal2);border-color:rgba(29,184,160,0.3)}
.ccc-meta-pill.gray{background:var(--surface2);color:var(--muted);border-color:var(--border)}
.ccc-status-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:500;padding:4px 12px;border-radius:20px;margin-top:8px;font-family:'DM Mono',monospace}
.ccc-status-badge.active{background:rgba(29,184,160,0.15);color:var(--teal2);border:1px solid rgba(29,184,160,0.3)}
.ccc-status-badge.complete{background:rgba(61,190,143,0.15);color:var(--green);border:1px solid rgba(61,190,143,0.3)}
.ccc-head-aside{text-align:right;font-size:11px;color:var(--muted);line-height:1.6}
.ccc-head-aside strong{color:#a0bcd8;font-weight:500;display:block}
/* == Milestone zone grid == */
#ccc-zones-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;padding:16px 20px;flex:1;overflow-y:auto;align-content:start}
.ccc-zone-card{border-radius:10px;padding:14px 16px;border:1px solid var(--border);background:var(--navy2);display:flex;flex-direction:column;gap:6px;transition:border-color 0.2s,background 0.2s}
.ccc-zone-card.wide{grid-column:1 / -1}
.ccc-zone-card.zone-waiting{opacity:0.8}
.ccc-zone-card.zone-listening{background:rgba(74,111,165,0.12);border-color:rgba(74,111,165,0.5)}
.ccc-zone-card.zone-partial{background:rgba(201,168,76,0.08);border-color:rgba(201,168,76,0.4)}
.ccc-zone-card.zone-complete{background:rgba(61,190,143,0.08);border-color:rgba(61,190,143,0.4)}
.ccc-zone-tag{font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:0.07em;color:var(--muted);display:flex;align-items:center;gap:5px;font-family:'DM Mono',monospace}
.ccc-zone-card.zone-listening .ccc-zone-tag{color:#a0bcd8}
.ccc-zone-card.zone-partial .ccc-zone-tag{color:var(--gold2)}
.ccc-zone-card.zone-complete .ccc-zone-tag{color:var(--green)}
.ccc-zone-title{font-size:13px;font-weight:500;color:#e8edf5}
.ccc-zone-card.zone-listening .ccc-zone-title{color:#c8d8ed}
.ccc-zone-card.zone-partial .ccc-zone-title{color:var(--gold2)}
.ccc-zone-card.zone-complete .ccc-zone-title{color:var(--green)}
.ccc-zone-text{font-size:11px;color:var(--muted);line-height:1.6;flex:1}
.ccc-zone-card.zone-listening .ccc-zone-text{color:#8fa3c0;font-style:italic}
.ccc-zone-card.zone-partial .ccc-zone-text{color:rgba(232,201,122,0.8);font-style:italic}
.ccc-zone-card.zone-complete .ccc-zone-text{color:rgba(61,190,143,0.85)}
.ccc-zone-empty{font-size:11px;color:var(--muted);font-style:italic}
/* == Footer bar == */
#ccc-footer{padding:10px 20px;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px;flex-shrink:0;background:var(--navy2)}
.ccc-footer-btn{padding:7px 14px;border:1px solid var(--border);border-radius:7px;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:5px;color:var(--muted);background:var(--navy3);font-family:'DM Sans',sans-serif;transition:all 0.15s}
.ccc-footer-btn:hover{color:#e8edf5;border-color:rgba(255,255,255,0.15)}
.ccc-footer-btn.save{background:rgba(29,184,160,0.12);border-color:rgba(29,184,160,0.4);color:var(--teal2)}
.ccc-footer-btn.save:hover{background:rgba(29,184,160,0.2)}
.ccc-footer-btn.next{background:rgba(201,168,76,0.12);border-color:rgba(201,168,76,0.4);color:var(--gold2)}
.ccc-footer-btn.next:hover{background:rgba(201,168,76,0.2)}
#ccc-footer-spacer{flex:1}
.ccc-footer-hint{font-size:10px;color:var(--muted);text-align:center;max-width:140px;line-height:1.4;font-style:italic}
/* == Voice banner (shows after voice-jump) == */
#ccc-voice-banner{display:none;padding:9px 20px;border-bottom:1px solid var(--border);background:rgba(74,111,165,0.1);flex-shrink:0;align-items:center;gap:10px;flex-wrap:wrap}
#ccc-voice-banner.visible{display:flex}
.ccc-vb-icon{font-size:18px;flex-shrink:0}
.ccc-vb-text{font-size:12px;color:var(--muted);flex:1}
.ccc-vb-text strong{color:#e8edf5}
.ccc-vb-chips{display:flex;gap:6px;flex-wrap:wrap}
.ccc-vb-chip{font-size:10px;font-weight:500;padding:2px 9px;border-radius:20px;font-family:'DM Mono',monospace}
.ccc-vb-chip.saved{background:rgba(29,184,160,0.15);color:var(--teal2);border:1px solid rgba(29,184,160,0.3)}
.ccc-vb-chip.cohort{background:rgba(201,168,76,0.12);color:var(--gold2);border:1px solid rgba(201,168,76,0.3)}
.ccc-vb-chip.specialty{background:rgba(29,184,160,0.1);color:var(--teal2);border:1px solid rgba(29,184,160,0.25)}
.ccc-vb-chip.trainee{background:rgba(74,111,165,0.2);color:#a0bcd8;border:1px solid rgba(74,111,165,0.35)}
/* == Disambiguation overlay == */
#ccc-disambig-overlay{display:none;position:fixed;inset:0;z-index:900;background:rgba(5,12,28,0.88);backdrop-filter:blur(4px);align-items:center;justify-content:center;padding:24px}
#ccc-disambig-overlay.open{display:flex}
.ccc-disambig-box{background:#0f2238;border:1px solid var(--border);border-radius:14px;width:100%;max-width:560px;padding:24px 26px;display:flex;flex-direction:column;gap:14px}
.ccc-disambig-heard{background:rgba(255,255,255,0.04);border:1px solid var(--border);border-radius:8px;padding:10px 14px;display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted)}
.ccc-disambig-heard strong{color:#e8edf5}
.ccc-disambig-title{font-size:14px;font-weight:500;color:#e8edf5;display:flex;align-items:center;gap:7px}
.ccc-disambig-title-icon{font-size:15px;color:var(--gold)}
.ccc-disambig-sub{font-size:13px;color:var(--muted);line-height:1.6}
.ccc-match-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:9px;border:1px solid var(--border);background:var(--navy3);cursor:pointer;transition:border-color 0.15s,background 0.15s}
.ccc-match-row:hover{border-color:rgba(201,168,76,0.5);background:rgba(201,168,76,0.06)}
.ccc-match-av{width:36px;height:36px;border-radius:50%;background:rgba(74,111,165,0.25);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#a0bcd8;flex-shrink:0;font-family:'DM Mono',monospace}
.ccc-match-info{flex:1;min-width:0}
.ccc-match-name{font-size:16px;font-weight:500;color:#e8edf5}
.ccc-match-meta{font-size:12px;color:var(--muted);margin-top:3px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ccc-match-agenda-pill{background:rgba(29,184,160,0.12);color:var(--teal2);border:1px solid rgba(29,184,160,0.3);border-radius:20px;padding:1px 8px;font-size:10px;font-family:'DM Mono',monospace}
.ccc-match-select{font-size:13px;color:var(--gold2);white-space:nowrap;font-family:'DM Mono',monospace}
.ccc-disambig-cancel{text-align:center;font-size:12px;color:var(--muted);cursor:pointer;transition:color 0.15s}
.ccc-disambig-cancel:hover{color:#e8edf5}
/* == Roster full-width card grid (shown after trainee X) == */
#ccc-roster-screen{display:none;flex-direction:column;flex:1;overflow:hidden}
#ccc-roster-head{padding:16px 24px 12px;border-bottom:1px solid var(--border);background:var(--navy2);flex-shrink:0}
.ccc-roster-title{font-size:18px;font-weight:300;font-family:'Fraunces',serif;color:#e8edf5}
.ccc-roster-meta{font-size:12px;color:var(--muted);margin-top:4px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ccc-roster-search-wrap{margin:12px 24px 6px;position:relative;max-width:360px;flex-shrink:0}
.ccc-roster-search-wrap input{width:100%;background:var(--navy2);border:1px solid var(--border);border-radius:7px;color:#e8edf5;font-size:13px;padding:7px 12px 7px 30px;outline:none;font-family:'DM Sans',sans-serif;transition:border-color 0.15s;box-sizing:border-box}
.ccc-roster-search-wrap input:focus{border-color:rgba(201,168,76,0.4)}
.ccc-roster-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--muted);pointer-events:none}
#ccc-roster-grid{flex:1;overflow-y:auto;padding:8px 20px 20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;align-content:start}
.ccc-roster-section-label{grid-column:1 / -1;font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;padding:8px 2px 2px;font-family:'DM Mono',monospace}
.ccc-roster-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;border:1px solid var(--border);background:var(--navy3);cursor:pointer;transition:border-color 0.15s}
.ccc-roster-card:hover{border-color:rgba(201,168,76,0.4)}
.ccc-roster-card.done-card{opacity:0.55}
.ccc-roster-card.just-saved{border-color:rgba(29,184,160,0.5);background:rgba(29,184,160,0.08)}
.ccc-roster-av{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;font-family:'DM Mono',monospace}
.ccc-roster-av.pending{background:rgba(201,168,76,0.15);color:var(--gold)}
.ccc-roster-av.done{background:rgba(29,184,160,0.2);color:var(--teal2)}
.ccc-roster-av.saved{background:rgba(29,184,160,0.35);color:var(--navy)}
.ccc-roster-name{font-size:12px;font-weight:500;color:#e8edf5;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ccc-roster-card.just-saved .ccc-roster-name{color:var(--teal2)}
.ccc-roster-sub{font-size:10px;color:var(--muted);margin-top:1px}
/* == Transition screen (between trainees) == */
#ccc-transition-screen{display:none;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:28px;gap:16px;overflow:hidden}
.ccc-saved-banner{background:rgba(29,184,160,0.1);border:1px solid rgba(29,184,160,0.35);border-radius:10px;padding:12px 18px;display:flex;align-items:center;gap:10px;width:100%;max-width:540px}
.ccc-saved-banner-icon{font-size:20px}
.ccc-saved-banner-text{flex:1}
.ccc-saved-banner-name{font-size:14px;font-weight:500;color:var(--teal2)}
.ccc-saved-banner-sub{font-size:11px;color:var(--muted);margin-top:1px;font-family:'DM Mono',monospace}
.ccc-next-card{background:var(--navy2);border:2px solid rgba(201,168,76,0.4);border-radius:12px;padding:20px 22px;width:100%;max-width:540px}
.ccc-next-label{font-size:10px;font-weight:500;color:var(--gold);text-transform:uppercase;letter-spacing:0.07em;margin-bottom:10px;display:flex;align-items:center;gap:6px;font-family:'DM Mono',monospace}
.ccc-next-main{display:flex;align-items:center;gap:14px}
.ccc-next-av{width:50px;height:50px;border-radius:50%;background:rgba(201,168,76,0.15);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:var(--gold2);flex-shrink:0;font-family:'DM Mono',monospace}
.ccc-next-info{flex:1}
.ccc-next-name{font-size:22px;font-weight:300;font-family:'Fraunces',serif;color:#e8edf5}
.ccc-next-seq{text-align:right;font-size:11px;color:var(--muted)}
.ccc-next-seq strong{font-size:22px;font-weight:300;color:var(--gold2);display:block;font-family:'Fraunces',serif}
.ccc-next-actions{display:flex;gap:8px;margin-top:16px}
.ccc-next-btn{flex:1;padding:9px 14px;border-radius:7px;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;font-family:'DM Sans',sans-serif;transition:all 0.15s}
.ccc-next-btn.begin{background:linear-gradient(135deg,var(--teal),#17907c);border:none;color:var(--navy)}
.ccc-next-btn.skip{background:var(--navy3);border:1px solid var(--border);color:var(--muted)}
.ccc-next-btn.skip:hover{color:#e8edf5}
.ccc-next-btn.agenda{background:var(--navy3);border:1px solid var(--border);color:var(--muted)}
.ccc-next-btn.agenda:hover{color:#e8edf5}
.ccc-queue-strip{width:100%;max-width:540px}
.ccc-queue-label{font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:6px;font-family:'DM Mono',monospace}
.ccc-queue-items{display:flex;gap:6px;flex-wrap:wrap}
.ccc-queue-item{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;border:1px solid var(--border);background:var(--navy3);font-size:11px;color:var(--muted);font-family:'DM Mono',monospace}
.ccc-queue-item.skipped{border-color:rgba(201,168,76,0.4);background:rgba(201,168,76,0.08);color:var(--gold2)}
.ccc-queue-num{font-size:10px;color:var(--muted)}
.ccc-queue-item.skipped .ccc-queue-num{color:rgba(201,168,76,0.7)}
/* == Agenda setup screen == */
#ccc-agenda-screen{display:none;flex-direction:column;flex:1;overflow:hidden}
#ccc-agenda-head{padding:14px 22px 12px;border-bottom:1px solid var(--border);background:var(--navy2);flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.ccc-agenda-title{font-size:17px;font-weight:300;font-family:'Fraunces',serif;color:#e8edf5}
.ccc-agenda-sub{font-size:11px;color:var(--muted);margin-top:3px}
.ccc-agenda-head-btns{display:flex;gap:8px;flex-shrink:0}
.ccc-agenda-btn{padding:9px 16px;border-radius:7px;font-size:13px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;border:1px solid var(--border);background:var(--navy3);color:var(--muted)}
.ccc-agenda-btn:hover{color:#e8edf5;border-color:rgba(255,255,255,0.15)}
.ccc-agenda-btn.primary{background:linear-gradient(135deg,var(--gold),#a8842a);border:none;color:var(--navy);font-weight:600}
/* == Agenda search bar == */
#ccc-agenda-search-bar{padding:9px 22px;border-bottom:1px solid var(--border);background:var(--navy2);flex-shrink:0;display:flex;align-items:center;gap:10px}
.ccc-agenda-search-wrap{flex:1;position:relative;max-width:400px}
.ccc-agenda-search-wrap input{width:100%;background:var(--navy3);border:1px solid var(--border);border-radius:7px;color:#e8edf5;font-size:13px;padding:7px 34px 7px 32px;outline:none;font-family:'DM Sans',sans-serif;transition:border-color 0.15s;box-sizing:border-box}
.ccc-agenda-search-wrap input:focus{border-color:rgba(201,168,76,0.4)}
.ccc-agenda-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--muted);pointer-events:none}
.ccc-agenda-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--muted);cursor:pointer;background:none;border:none;padding:0;display:none}
.ccc-agenda-search-count{font-size:12px;color:var(--muted);white-space:nowrap}
/* == Agenda body (groups + aside) == */
#ccc-agenda-body{flex:1;overflow-y:auto;padding:14px 22px 22px;display:flex;gap:18px}
.ccc-agenda-col{flex:1;min-width:0}
.ccc-agenda-col-head{font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;font-family:'DM Mono',monospace}
.ccc-add-group-btn{font-size:11px;color:var(--teal2);cursor:pointer;background:none;border:none;font-family:'DM Sans',sans-serif;font-weight:500;text-transform:none;letter-spacing:0}
/* Agenda group */
.ccc-agenda-group{margin-bottom:12px}
.ccc-group-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--navy2);border:1px solid var(--border);border-radius:8px 8px 0 0;cursor:grab;user-select:none}
.ccc-group-header.has-match{background:rgba(201,168,76,0.08);border-color:rgba(201,168,76,0.35)}
.ccc-group-num{width:20px;height:20px;border-radius:50%;background:rgba(201,168,76,0.15);color:var(--gold2);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:'DM Mono',monospace}
.ccc-group-header.has-match .ccc-group-num{background:rgba(201,168,76,0.35);color:var(--navy)}
.ccc-group-label{font-size:13px;font-weight:500;color:#e8edf5;flex:1}
.ccc-group-header.has-match .ccc-group-label{color:var(--gold2)}
.ccc-group-pill{font-size:10px;font-weight:500;padding:2px 8px;border-radius:20px;font-family:'DM Mono',monospace}
.ccc-group-pill.cohort{background:rgba(201,168,76,0.12);color:var(--gold2)}
.ccc-group-pill.specialty{background:rgba(29,184,160,0.1);color:var(--teal2)}
.ccc-group-meta{font-size:11px;color:var(--muted)}
.ccc-group-match-badge{font-size:10px;font-weight:500;background:rgba(74,111,165,0.2);color:#a0bcd8;padding:2px 8px;border-radius:20px;font-family:'DM Mono',monospace}
.ccc-group-expand{font-size:13px;color:var(--muted)}
/* Trainee row inside group */
.ccc-agenda-tr{display:flex;align-items:center;gap:8px;padding:7px 12px 7px 18px;border:1px solid var(--border);border-top:none;background:var(--navy3);cursor:grab}
.ccc-agenda-tr:last-child{border-radius:0 0 8px 8px}
.ccc-agenda-tr-drag{color:var(--muted);font-size:13px;user-select:none}
.ccc-agenda-tr-num{font-size:10px;color:var(--muted);min-width:18px;font-family:'DM Mono',monospace}
.ccc-agenda-tr-av{width:24px;height:24px;border-radius:50%;background:rgba(201,168,76,0.15);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--gold2);flex-shrink:0;font-family:'DM Mono',monospace}
.ccc-agenda-tr-name{font-size:12px;font-weight:500;color:#e8edf5;flex:1}
.ccc-agenda-tr-remove{font-size:12px;color:var(--muted);cursor:pointer;background:none;border:none;opacity:0;transition:opacity 0.15s;padding:0}
.ccc-agenda-tr:hover .ccc-agenda-tr-remove{opacity:1}
.ccc-agenda-tr-remove:hover{color:var(--red)}
.ccc-agenda-expand-row{border:1px solid var(--border);border-top:none;border-radius:0 0 8px 8px;padding:7px 14px;font-size:11px;color:var(--muted);font-style:italic;cursor:pointer;background:var(--navy2);transition:color 0.15s}
.ccc-agenda-expand-row:hover{color:#e8edf5}
.ccc-add-group-row{border:1px dashed var(--border);border-radius:8px;padding:10px 14px;display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--muted);font-size:12px;font-family:'DM Sans',sans-serif;transition:all 0.15s}
.ccc-add-group-row:hover{border-color:rgba(29,184,160,0.4);color:var(--teal2)}
/* Agenda aside */
.ccc-agenda-aside{width:200px;flex-shrink:0}
.ccc-aside-card{background:var(--navy2);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:12px}
.ccc-aside-title{font-size:12px;font-weight:500;color:#e8edf5;margin-bottom:8px;font-family:'DM Sans',sans-serif}
.ccc-aside-stat{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--border);font-size:12px}
.ccc-aside-stat:last-child{border-bottom:none}
.ccc-aside-stat-label{color:var(--muted)}
.ccc-aside-stat-val{font-weight:500;color:#e8edf5}
.ccc-aside-tip{font-size:11px;color:var(--muted);line-height:1.7}
/* == CCC Agenda Picker Layout ===================================== */
.ccc-apick-col{display:flex;flex-direction:column;width:220px;min-width:180px;overflow:hidden;background:var(--navy);border-right:0}
.ccc-apick-col-head{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:0.07em;font-family:'DM Mono',monospace;padding:14px 14px 10px;flex-shrink:0}
.ccc-apick-divider{width:1px;background:var(--border);flex-shrink:0}
.ccc-apick-right{width:210px;min-width:180px;flex-shrink:0;padding:16px 14px;overflow-y:auto;background:var(--navy2);border-left:1px solid var(--border)}
.ccc-apick-search-wrap{position:relative;margin:0 10px 8px;flex-shrink:0}
.ccc-apick-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:15px;color:var(--muted);pointer-events:none}
.ccc-apick-search-inp{width:100%;box-sizing:border-box;background:var(--navy3);border:1px solid var(--border);border-radius:7px;color:#e8edf5;font-size:14px;padding:8px 10px 8px 30px;outline:none;font-family:'DM Sans',sans-serif;transition:border-color 0.15s}
.ccc-apick-search-inp:focus{border-color:rgba(201,168,76,0.4)}
.ccc-apick-list{overflow-y:auto;flex:1;padding:2px 10px 10px}
.ccc-apick-item{display:flex;align-items:center;gap:10px;padding:12px 12px;border-radius:9px;border:1px solid var(--border);background:var(--navy3);cursor:pointer;margin-bottom:5px;transition:border-color 0.15s,background 0.15s}
.ccc-apick-item:hover{border-color:rgba(201,168,76,0.4);background:rgba(201,168,76,0.05)}
.ccc-apick-item.selected{border-color:rgba(201,168,76,0.55);background:rgba(201,168,76,0.1)}
.ccc-apick-item-label{font-size:15px;font-weight:500;color:#e8edf5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ccc-apick-item-sub{font-size:12px;color:var(--muted);margin-top:2px}
.ccc-apick-section-label{font-size:11px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;font-family:'DM Mono',monospace;padding:8px 2px 5px}
.ccc-apick-av{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;font-family:'DM Mono',monospace}
.ccc-apick-av.selected{background:rgba(201,168,76,0.2);color:var(--gold2)}
.ccc-apick-av.pending{background:var(--navy2);color:var(--muted);border:1px solid var(--border)}
.ccc-apick-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:30px 14px;font-size:14px;color:var(--muted);text-align:center;line-height:1.6}
.ccc-apick-meeting-name-wrap{margin-bottom:0}
.ccc-apick-meeting-name-label{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:0.07em;font-family:'DM Mono',monospace;margin-bottom:6px}
.ccc-apick-meeting-name-inp{width:100%;box-sizing:border-box;background:var(--navy3);border:1px solid var(--border);border-radius:8px;color:#e8edf5;font-size:16px;font-weight:500;padding:10px 12px;outline:none;font-family:'Fraunces',serif;transition:border-color 0.15s}
.ccc-apick-meeting-name-inp:focus{border-color:rgba(201,168,76,0.5)}

/* == Live agenda screen == */
#ccc-live-agenda-screen{display:none;flex-direction:column;flex:1;overflow:hidden}
#ccc-live-agenda-head{padding:11px 22px;border-bottom:1px solid var(--border);background:var(--navy2);flex-shrink:0;display:flex;align-items:center;gap:10px}
.ccc-live-title{font-size:14px;font-weight:500;color:#e8edf5;flex:1}
.ccc-stat-chip{font-size:11px;padding:3px 10px;border-radius:20px;border:1px solid;font-weight:500;font-family:'DM Mono',monospace}
.ccc-stat-chip.done-chip{background:rgba(61,190,143,0.12);color:var(--green);border-color:rgba(61,190,143,0.35)}
.ccc-stat-chip.skip-chip{background:rgba(201,168,76,0.1);color:var(--gold2);border-color:rgba(201,168,76,0.3)}
.ccc-stat-chip.rem-chip{background:var(--surface2);color:var(--muted);border-color:var(--border)}
#ccc-live-search-bar{padding:9px 22px 7px;border-bottom:1px solid var(--border);background:var(--navy2);flex-shrink:0}
.ccc-live-sb-row1{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.ccc-live-sb-row2{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ccc-filter-label{font-size:11px;color:var(--muted)}
.ccc-fp{font-size:11px;padding:3px 10px;border-radius:20px;border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;gap:4px;white-space:nowrap;background:var(--navy3);color:var(--muted);font-family:'DM Sans',sans-serif;transition:all 0.15s}
.ccc-fp:hover{border-color:rgba(255,255,255,0.15);color:#e8edf5}
.ccc-fp.fp-active{background:rgba(201,168,76,0.12);border-color:rgba(201,168,76,0.4);color:var(--gold2);font-weight:500}
.ccc-fp-sep{color:var(--muted);font-size:11px}
#ccc-live-body{flex:1;overflow-y:auto;padding:12px 22px 20px}
/* Live agenda group block */
.ccc-live-group{margin-bottom:18px}
.ccc-live-group-head{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--navy2);border:1px solid var(--border);border-radius:8px 8px 0 0}
.ccc-live-group-head.active-group{background:rgba(29,184,160,0.08);border-color:rgba(29,184,160,0.35)}
.ccc-live-gh-num{width:22px;height:22px;border-radius:50%;background:rgba(201,168,76,0.15);color:var(--gold2);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:'DM Mono',monospace}
.ccc-live-gh-label{font-size:13px;font-weight:500;color:#e8edf5;flex:1}
.ccc-live-group-head.active-group .ccc-live-gh-label{color:var(--teal2)}
.ccc-live-gh-pill{font-size:10px;font-weight:500;padding:2px 7px;border-radius:20px;font-family:'DM Mono',monospace}
.ccc-live-gh-pill.c-pill{background:rgba(201,168,76,0.12);color:var(--gold2)}
.ccc-live-gh-pill.s-pill{background:rgba(29,184,160,0.1);color:var(--teal2)}
.ccc-live-gh-progress{font-size:11px;color:var(--muted)}
.ccc-live-group-head.active-group .ccc-live-gh-progress{color:var(--teal2)}
/* Live trainee rows */
.ccc-live-tr{display:flex;align-items:center;gap:10px;padding:7px 12px 7px 16px;border:1px solid var(--border);border-top:none;background:var(--navy3)}
.ccc-live-tr:last-child{border-radius:0 0 8px 8px}
.ccc-live-tr.done-r{opacity:0.6}
.ccc-live-tr.current-r{background:rgba(29,184,160,0.08);border-color:rgba(29,184,160,0.35)}
.ccc-live-tr.skipped-r{background:rgba(201,168,76,0.06);border-color:rgba(201,168,76,0.3)}
.ccc-live-expand-row{border:1px solid var(--border);border-top:none;border-radius:0 0 8px 8px;padding:7px 14px;font-size:11px;color:var(--muted);font-style:italic;cursor:pointer;background:var(--navy2);transition:color 0.15s}
.ccc-live-expand-row:hover{color:#e8edf5}
.ccc-live-seq{font-size:10px;color:var(--muted);min-width:16px;font-family:'DM Mono',monospace}
.ccc-live-av{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0;font-family:'DM Mono',monospace}
.ccc-live-av.av-done{background:rgba(29,184,160,0.2);color:var(--teal2)}
.ccc-live-av.av-current{background:var(--teal);color:var(--navy)}
.ccc-live-av.av-skip{background:rgba(201,168,76,0.2);color:var(--gold2)}
.ccc-live-av.av-pending{background:rgba(74,111,165,0.2);color:#a0bcd8}
.ccc-live-name{font-size:12px;font-weight:500;color:#e8edf5;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ccc-live-tr.done-r .ccc-live-name{color:var(--muted)}
.ccc-live-badge{font-size:10px;font-weight:500;padding:2px 9px;border-radius:20px;white-space:nowrap;font-family:'DM Mono',monospace}
.ccc-live-badge.b-done{background:rgba(29,184,160,0.15);color:var(--teal2)}
.ccc-live-badge.b-current{background:rgba(74,111,165,0.2);color:#a0bcd8}
.ccc-live-badge.b-skip{background:rgba(201,168,76,0.12);color:var(--gold2)}
.ccc-live-badge.b-pending{color:var(--muted)}
.ccc-live-actions{display:flex;gap:5px;flex-shrink:0}
.ccc-live-act-btn{font-size:10px;padding:2px 9px;border:1px solid var(--border);border-radius:20px;cursor:pointer;color:var(--muted);background:var(--navy2);font-family:'DM Mono',monospace;transition:all 0.15s}
.ccc-live-act-btn:hover{border-color:rgba(255,255,255,0.15);color:#e8edf5}
.ccc-live-act-btn.jump-btn{border-color:rgba(201,168,76,0.4);color:var(--gold2);background:rgba(201,168,76,0.06)}
.ccc-live-act-btn.resume-btn{border-color:rgba(29,184,160,0.4);color:var(--teal2);background:rgba(29,184,160,0.06)}
.ccc-no-results{text-align:center;padding:24px;font-size:12px;color:var(--muted);font-style:italic}
.ccc-clear-hint{text-align:center;padding:12px;font-size:12px;color:var(--muted)}
.ccc-clear-hint a{color:var(--teal2);cursor:pointer}
/* == CCC name-detection banner in main area == */
#ccc-detect-banner{display:none;padding:8px 22px;border-bottom:1px solid var(--border);background:rgba(74,111,165,0.1);flex-shrink:0;align-items:center;gap:10px}
#ccc-detect-banner.visible{display:flex}
.ccc-detect-text{font-size:12px;color:var(--muted);flex:1}
.ccc-detect-text strong{color:#e8edf5}
.ccc-detect-confirm-btn{padding:5px 14px;background:linear-gradient(135deg,var(--gold),#a8842a);border:none;border-radius:6px;color:var(--navy);font-size:11px;font-weight:700;cursor:pointer;font-family:'DM Mono',monospace;flex-shrink:0}
/* == begin-meeting mode select screen == */
#ccc-mode-screen{display:none;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:40px}
.ccc-mode-title{font-family:'Fraunces',serif;font-size:32px;font-weight:300;color:#e8edf5;margin-bottom:6px;text-align:center}
.ccc-mode-title em{font-style:italic;color:var(--gold)}
.ccc-mode-sub{font-size:16px;color:var(--muted);margin-bottom:32px;text-align:center;max-width:400px;line-height:1.6}
.ccc-mode-cards{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;max-width:620px}
.ccc-mode-card{background:var(--navy2);border:1px solid var(--border);border-radius:12px;padding:26px 22px;width:200px;cursor:pointer;transition:border-color 0.15s,background 0.15s;text-align:center}
.ccc-mode-card:hover{border-color:rgba(201,168,76,0.5);background:rgba(201,168,76,0.06)}
.ccc-mode-card-icon{font-size:30px;margin-bottom:10px}
.ccc-mode-card-title{font-size:16px;font-weight:500;color:#e8edf5;margin-bottom:5px}
.ccc-mode-card-sub{font-size:13px;color:var(--muted);line-height:1.5}
/* END CCC CSS */
