:root {
  color-scheme: dark;
  --bg: #080b0f;
  --surface: #0f1318;
  --surface2: #161c24;
  --border: #1e2730;
  --fg: #c5cdd8;
  --border2: #2a3540;
  --text: #c5cdd8;
  --muted: #5a6a7a;
  --accent: #a07840;
  --accent2: #a07840;
  --blue: #3a8fcc;
  --green: #2ecc71;
  --blue: #3498db;
  --orange: #e67e22;
  --red: #e74c3c;
  --red: #e74c3c;
  --orange: #e67e22;
  --ptr-safe-area-top: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));
  --ptr-safe-area-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));
}
html.theme-light{
  color-scheme: light;
  --bg:#f2f4f6;
  --surface:#ffffff;
  --surface2:#e8edf2;
  --border:#d8dde3;
  --fg:#101820;
  --border2:#c3ccd5;
  --text:#101820;
  --muted:#5f6871;
  --accent:#c99a49;
  --accent2:#b78637;
  --blue:#376b94;
  --green:#1f7a4f;
  --orange:#9a5a14;
  --red:#b43f36;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Barlow',sans-serif;
  font-weight:300;
  min-height:100vh;
  overflow-x:hidden;
  transition:background-color .2s,color .2s;
}
/* HEADER */
.header{
  background:#0f1318;
  border-bottom:1px solid #1e2530;
  position:sticky;top:0;z-index:100;
}
.header-inner{
  max-width:960px;margin:0 auto;
  display:flex;align-items:flex-start;
  padding:calc(10px + var(--ptr-safe-area-top)) 16px 10px 0;
}
.header-accent{
  width:3px;background:var(--accent);
  flex-shrink:0;align-self:stretch;margin-right:14px;
}
.logo{
  display:flex;flex-direction:column;justify-content:flex-start;gap:3px;flex:1;
}
.logo-main{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:900;font-size:22px;
  letter-spacing:3px;color:#fff;
  text-transform:uppercase;line-height:1;
}
.logo-sub{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:600;font-size:9px;
  letter-spacing:2px;color:var(--accent);
  text-transform:uppercase;line-height:1;
}
.header-right{
  display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;
}
.header-actions{
  display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;
  position:relative;
}
.app-menu-btn{width:38px;height:38px;display:flex;flex-direction:column;justify-content:center;gap:4px;border:1px solid var(--border2);border-radius:6px;background:rgba(255,255,255,.03);cursor:pointer;padding:0 9px;}
.app-menu-btn span{display:block;height:2px;background:var(--text);border-radius:2px;}
.app-menu{position:fixed;top:calc(var(--ptr-safe-area-top) + 56px);right:12px;z-index:9200;min-width:190px;padding:8px;border:1px solid var(--border2);border-radius:8px;background:var(--surface);box-shadow:0 12px 32px rgba(0,0,0,.42);}
.app-menu-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:0;border-radius:6px;background:transparent;color:var(--text);cursor:pointer;font-family:'Barlow Condensed',sans-serif;font-size:13px;font-weight:800;letter-spacing:1.2px;text-align:left;text-transform:uppercase;}
.app-menu-item:hover{background:rgba(160,120,64,.12);color:var(--accent);}
.app-menu-account #user-avatar-initial{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent);color:#000;}
.header-ver{
  font-family:'Barlow Condensed',sans-serif;
  font-size:9px;letter-spacing:1px;color:#445;line-height:1;
}
/* INSTALL BANNER */
#install-banner{
  background:linear-gradient(90deg,#1a2530,#151d28);
  border-bottom:1px solid #2a3540;
  padding:8px 16px;
  display:flex;align-items:center;gap:10px;
  font-family:'Barlow Condensed',sans-serif;
}
#install-banner .install-icon{ font-size:18px; flex-shrink:0; }
#install-banner .install-text{ flex:1; font-size:12px; letter-spacing:1px; color:#ccc; line-height:1.3; }
#install-banner .install-text strong{ color:#fff; }
#install-banner .install-btn{
  background:var(--accent);color:#0a0f14;
  border:none;border-radius:6px;
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:11px;letter-spacing:1.5px;text-transform:uppercase;
  padding:6px 12px;cursor:pointer;flex-shrink:0;white-space:nowrap;
}
#install-banner .install-dismiss{
  background:none;border:none;color:#556;font-size:18px;
  cursor:pointer;padding:0 0 0 4px;flex-shrink:0;line-height:1;
}
/* iOS instructions modal */
#ios-install-modal{
  display:none;position:fixed;inset:0;z-index:3000;
  background:rgba(0,0,0,0.75);align-items:flex-end;justify-content:center;
}
#ios-install-modal.open{ display:flex; }
#ios-install-inner{
  background:#151d28;border-radius:16px 16px 0 0;
  padding:24px 20px 36px;width:100%;max-width:480px;
  border-top:2px solid var(--accent);
}
#ios-install-inner h3{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:16px;letter-spacing:2px;text-transform:uppercase;
  color:var(--accent);margin:0 0 16px;
}
.ios-step{
  display:flex;align-items:flex-start;gap:12px;
  margin-bottom:14px;font-size:14px;color:#ccc;line-height:1.4;
}
.ios-step-num{
  background:var(--accent);color:#0a0f14;
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:13px;border-radius:50%;
  width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.ios-step-icon{ font-size:20px;flex-shrink:0; }
#ios-install-inner .close-ios-btn{
  width:100%;margin-top:8px;
  background:none;border:1px solid #2a3540;border-radius:8px;
  color:#ccc;font-family:'Barlow Condensed',sans-serif;font-weight:600;
  font-size:13px;letter-spacing:1px;text-transform:uppercase;
  padding:10px;cursor:pointer;
}
.calc-timer-btn{
  width:100%;padding:10px;background:rgba(232,160,32,0.08);
  border:1px solid rgba(232,160,32,0.3);border-radius:6px;
  color:var(--accent);font-family:'Barlow Condensed',sans-serif;
  font-weight:700;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;
  cursor:pointer;transition:background .15s;
}
.calc-timer-btn:hover{background:rgba(232,160,32,0.15);}
/* Stopwatch modal */
.sw-modal{
  display:none;position:fixed;inset:0;z-index:9999;
  background:#0f1318;flex-direction:column;
  align-items:center;justify-content:center;gap:12px;
}
.sw-label{
  font-family:'Barlow Condensed',sans-serif;font-weight:600;
  font-size:13px;letter-spacing:3px;text-transform:uppercase;color:var(--muted);
}
.sw-display{
  font-family:'Barlow Condensed',sans-serif;font-weight:900;
  font-size:88px;color:#fff;letter-spacing:4px;line-height:1;
  font-variant-numeric:tabular-nums;transition:color .3s;
}
.sw-btn-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:8px;}
.sw-btn{
  padding:14px 28px;border:none;border-radius:8px;
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:15px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;
}
.sw-btn-start{background:var(--accent);color:#000;min-width:120px;}
.sw-btn-sec{background:rgba(255,255,255,0.08);color:#ccc;}
.sw-record{
  padding:14px 32px;background:var(--green);color:#000;border:none;border-radius:8px;
  font-family:'Barlow Condensed',sans-serif;font-weight:900;
  font-size:15px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;
  display:none;
}
.about-btn{
  background:none;border:1px solid #2a3540;border-radius:4px;
  color:#667;font-family:'Barlow Condensed',sans-serif;
  font-size:9px;letter-spacing:1.5px;text-transform:uppercase;
  padding:3px 8px;cursor:pointer;transition:all .15s;line-height:1;
}
.about-btn:hover{border-color:var(--accent);color:var(--accent);}
.ufpm-mode-toggle{
  align-items:center;gap:6px;
  background:transparent;border:1px solid #2a3540;border-radius:999px;
  color:#667;font-family:'Barlow Condensed',sans-serif;
  font-size:9px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;
  padding:4px 8px;cursor:pointer;transition:all .15s;line-height:1;
}
.ufpm-mode-toggle:hover,
.ufpm-mode-toggle.active{border-color:var(--accent);color:var(--accent);}
.ufpm-mode-dot{
  width:7px;height:7px;border-radius:50%;background:#445;display:block;
  box-shadow:0 0 0 2px rgba(255,255,255,0.03);
}
.ufpm-mode-toggle.active .ufpm-mode-dot{background:var(--green);}
.about-head{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:16px;margin-bottom:20px;
}
.theme-toggle{
  display:flex;align-items:center;gap:7px;flex-shrink:0;
  background:#0f1318;border:1px solid #2a3540;border-radius:999px;
  color:var(--muted);font-family:'Barlow Condensed',sans-serif;
  font-weight:800;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;
  padding:5px 9px;cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;
}
.theme-toggle-header{
  padding:6px 10px;
  border-color:rgba(160,120,64,0.65);
  color:var(--accent);
  box-shadow:0 0 0 1px rgba(160,120,64,0.08);
}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent);}
.theme-toggle-track{
  width:30px;height:16px;border-radius:999px;background:#070a0e;
  border:1px solid #2a3540;position:relative;display:block;
}
.theme-toggle-thumb{
  position:absolute;width:12px;height:12px;border-radius:50%;
  top:1px;left:1px;background:var(--accent);transition:transform .2s,background .2s;
}
.theme-toggle.active .theme-toggle-thumb{transform:translateX(14px);}
.about-modal{
  display:none;position:fixed;inset:0;z-index:9998;
  background:rgba(0,0,0,0.7);align-items:flex-start;justify-content:center;
  padding-top:calc(60px + var(--ptr-safe-area-top));overflow-y:auto;
}
.about-modal.open{display:flex;}
.about-card{
  background:#131920;border:1px solid #2a3540;border-radius:10px;
  max-width:420px;width:calc(100% - 32px);padding:24px;
  margin-bottom:40px;
}
.about-card h2{
  font-family:'Barlow Condensed',sans-serif;font-weight:900;
  font-size:22px;letter-spacing:2px;text-transform:uppercase;color:#fff;
  margin-bottom:2px;
}
.about-card .about-ver{
  font-family:'Barlow Condensed',sans-serif;font-size:10px;
  letter-spacing:2px;color:var(--accent);text-transform:uppercase;margin-bottom:20px;
}
/* Static section (What is PT Ready) */
.about-section{margin-bottom:4px;}
.about-section-static h3{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:var(--accent);margin-bottom:8px;
  padding-bottom:4px;border-bottom:1px solid #1e2530;
}
/* Accordion sections */
.about-acc{border:1px solid #1e2530;border-radius:6px;margin-bottom:6px;overflow:hidden;}
.about-acc-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;cursor:pointer;background:#0f1318;
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);
  user-select:none;-webkit-user-select:none;
}
.about-acc-header:hover{background:#131920;}
.about-acc-chevron{font-size:10px;color:#556;transition:transform 0.2s;}
.acc-tap-hint{font-size:9px;letter-spacing:1px;color:#556;font-weight:400;text-transform:uppercase;font-family:sans-serif;margin-right:6px;}
.about-acc.open .about-acc-chevron{transform:rotate(180deg);}
.about-acc-body{
  display:none;padding:14px;border-top:1px solid #1e2530;
}
.about-acc.open .about-acc-body{display:block;}
.about-section p,.about-section li,
.about-acc-body p,.about-acc-body li{
  font-size:13px;color:#aab;line-height:1.6;margin-bottom:6px;
}
.about-section ul,.about-acc-body ul{padding-left:16px;}
.about-section li,.about-acc-body li{margin-bottom:4px;}
/* Install instructions inside about */
.install-platform{
  background:#0a0f14;border:1px solid #1e2530;border-radius:6px;
  padding:12px;margin-bottom:10px;
}
.install-platform-title{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:#fff;margin-bottom:10px;
}
.about-ios-step{
  display:flex;align-items:flex-start;gap:10px;
  margin-bottom:8px;font-size:13px;color:#aab;line-height:1.4;
}
.about-step-num{
  background:var(--accent);color:#0a0f14;
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:11px;border-radius:50%;min-width:20px;height:20px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;
}
.release-item{margin-bottom:12px;}
.release-ver{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:12px;letter-spacing:1px;color:#fff;
}
.release-date{font-size:11px;color:#556;margin-left:8px;}
.close-about{
  width:100%;padding:12px;margin-top:4px;
  background:rgba(232,160,32,0.1);border:1px solid var(--accent);
  border-radius:6px;color:var(--accent);
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:13px;letter-spacing:2px;text-transform:uppercase;cursor:pointer;
}
/* SCORE SAVE PROMPT */
.score-save-modal{
  display:none;position:fixed;inset:0;z-index:9997;
  background:rgba(0,0,0,0.72);align-items:center;justify-content:center;
  padding:20px;
}
.score-save-modal.open{display:flex;}
.score-save-card{
  width:100%;max-width:340px;background:var(--surface);
  border:1px solid var(--border2);border-radius:8px;padding:20px;
  box-shadow:0 18px 48px rgba(0,0,0,0.38);
}
.score-save-card p{
  color:var(--muted);font-size:13px;line-height:1.5;margin:10px 0 16px;
}
.score-save-actions{
  display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;
}
.score-save-actions .btn{
  width:auto;min-width:86px;padding-left:14px;padding-right:14px;
}
.tabs{
  display:flex;
  justify-content:space-around;
  position:fixed;
  bottom:0;left:0;right:0;
  background:var(--surface);
  border-top:2px solid var(--accent);
  padding-bottom:var(--ptr-safe-area-bottom);
  z-index:1000;
  box-shadow:0 -4px 20px rgba(0,0,0,0.4);
}
.tab{
  flex:1;
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700;font-size:10px;
  letter-spacing:1.5px;text-transform:uppercase;
  border:none;background:transparent;
  color:var(--muted);
  padding:10px 4px 12px;
  border-top:3px solid transparent;
  cursor:pointer;transition:all .15s;
  display:flex;flex-direction:column;align-items:center;gap:4px;
}
.tab.active{color:var(--accent);border-top-color:var(--accent);background:rgba(232,160,32,0.07);}
.tab:hover:not(.active){color:var(--text);}
.tab-icon{font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;height:24px;}
.tab-icon svg{display:block;filter:drop-shadow(0 0 0 transparent);transition:transform .18s ease,filter .18s ease;}
.tab.active .tab-icon svg{transform:translateY(-1px);filter:drop-shadow(0 0 8px rgba(160,120,64,.22));}

/* LAYOUT */
.content{max-width:960px;margin:0 auto;padding:12px 12px 120px;}
.panel{display:none;}
.panel.active{display:block;}

/* UFPM TOOLS */
.ufpm-calc-context{
  background:linear-gradient(135deg,rgba(160,120,64,0.14),rgba(52,143,204,0.08));
  border:1px solid rgba(160,120,64,0.34);
  border-radius:6px;padding:14px 16px;margin-bottom:14px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.ufpm-context-kicker,
.ufpm-count{
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);
}
.ufpm-context-name{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:22px;letter-spacing:1px;color:var(--fg);line-height:1.1;margin-top:3px;}
.ufpm-context-meta{font-size:12px;color:var(--muted);margin-top:3px;}
.ufpm-shell{display:block;}
.ufpm-workspace-active .header,
.ufpm-workspace-active .tabs{display:none;}
.ufpm-workspace-active .content{padding-top:calc(8px + var(--ptr-safe-area-top));padding-bottom:calc(16px + var(--ptr-safe-area-bottom));}
.ufpm-workspace-head{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;margin:-4px -2px 12px;padding:calc(10px + var(--ptr-safe-area-top)) 2px 10px;background:var(--bg);border-bottom:1px solid var(--border);}
.ufpm-plan-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;}
.ufpm-sidebar,
.ufpm-member-card{
  background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:16px;
}
.ufpm-sidebar{}
.ufpm-sidebar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;}
.ufpm-upload-box{
  background:var(--bg);border:1px solid var(--border);border-radius:6px;
  padding:12px;margin-bottom:14px;
}
.ufpm-filter-box{
  background:var(--bg);border:1px solid var(--border);border-radius:6px;
  padding:12px;margin-bottom:14px;display:flex;flex-direction:column;gap:10px;
}
.ufpm-filter-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:12px;
  letter-spacing:2px;text-transform:uppercase;color:var(--accent);
}
.ufpm-filter-head .btn{width:auto;padding:6px 10px;font-size:10px;}
.ufpm-upload-box input{margin-bottom:8px;font-size:12px;}
.ufpm-roster-actions{display:flex;gap:8px;flex-wrap:wrap;}
.ufpm-roster-actions .btn{flex:1;min-width:120px;padding-left:12px;padding-right:12px;}
.ufpm-upload-box p,
.ufpm-empty{font-size:12px;color:var(--muted);line-height:1.6;margin-top:8px;}
.ufpm-member-form{
  border-top:1px solid var(--border);border-bottom:1px solid var(--border);
  padding:14px 0;margin-bottom:12px;
}
.ufpm-form-actions{display:flex;gap:8px;flex-wrap:wrap;}
.ufpm-roster-list{display:flex;flex-direction:column;gap:8px;}
.ufpm-list-search{
  margin-bottom:8px;
}
.ufpm-list-search input{
  width:100%;background:var(--bg);border:1px solid var(--border);
  border-radius:6px;padding:8px 10px;font-size:14px;
}
.ufpm-roster-search-btn{
  width:100%;
  font-size:13px;
  padding:10px 12px;
  margin-bottom:8px;
  justify-content:center;
}
.ufpm-member-row{
  width:100%;background:var(--surface);border:1px solid var(--border);
  border-radius:5px;padding:0;transition:all .15s;
  display:flex;flex-direction:column;gap:0;color:var(--text);overflow:hidden;
  position:relative;
}
.ufpm-member-row-top{display:flex;align-items:flex-start;gap:0;}
.ufpm-view-profile-btn{
  font-size:11px;
  padding:6px 14px;
  border-radius:4px;
}
.ufpm-view-profile-btn:hover{
  filter:brightness(1.1);
}
.ufpm-profile-view{
  display:block;
  padding:0 4px 20px;
}
.ufpm-profile-back-bar{
  padding:4px 0 8px;
  border-bottom:1px solid var(--border);
  margin-bottom:8px;
}
.ufpm-profile-back-link{
  background:none;border:none;color:var(--accent);
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  font-size:16px;letter-spacing:1px;cursor:pointer;
  padding:10px 0;display:block;text-align:left;
}
.ufpm-metrics-strip{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;margin-bottom:16px;
  border-bottom:1px solid var(--border);padding-bottom:14px;
}
.ufpm-metric-item{display:flex;flex-direction:column;gap:3px;padding-right:12px;}
.ufpm-metric-item+.ufpm-metric-item{border-left:1px solid var(--border);padding-left:12px;padding-right:0;}
.ufpm-metric-label{font-size:9px;color:var(--muted);letter-spacing:0.5px;line-height:1.3;text-transform:uppercase;}
.ufpm-metric-value{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:15px;color:var(--fg);line-height:1.2;}
.ufpm-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px;}
.ufpm-action-grid .btn{font-size:11px;padding:11px 8px;letter-spacing:1px;}
.ufpm-action-grid .btn-danger{font-size:11px;padding:11px 8px;}
.ufpm-overview-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
.ufpm-overview-row{
  background:var(--surface);border:1px solid var(--border);
  border-radius:8px;padding:13px 16px;
  display:flex;align-items:center;gap:8px;font-size:14px;
}
.ufpm-overview-row-label{color:var(--muted);white-space:nowrap;}
.ufpm-overview-row-value{color:var(--fg);font-weight:600;}
.ufpm-profile-name{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:900;
  font-size:20px;
  letter-spacing:0.8px;
  color:var(--fg);
  line-height:1.05;
}
.ufpm-profile-meta{
  font-size:11px;
  color:var(--muted);
  margin-top:1px;
}
.ufpm-member-row:hover,
.ufpm-member-row.active{border-color:var(--accent);background:rgba(160,120,64,0.08);}
.ufpm-member-row.active .ufpm-member-select{padding-right:70px;}  /* space for small profile button */
.ufpm-member-select{
  flex:1;text-align:left;background:transparent;border:0;color:var(--text);
  -webkit-appearance:none;appearance:none;
  padding:10px 12px;cursor:pointer;display:flex;flex-direction:column;gap:3px;
}
.ufpm-member-delete{
  width:38px;border:0;border-left:1px solid var(--border);
  background:transparent;color:var(--red);cursor:pointer;
  font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:14px;
  transition:background .15s,color .15s;
}
.ufpm-member-delete:hover{background:var(--red);color:#fff;}
.ufpm-member-name{display:block;font-family:'Barlow Condensed',sans-serif;font-size:15px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--fg);}
.ufpm-member-meta,
.ufpm-member-status{display:block;font-size:11px;color:var(--muted);line-height:1.35;}
.ufpm-member-status{color:var(--accent);}
.ufpm-search-wrap{position:relative;}
.ufpm-search-wrap input{padding-right:28px;}
.ufpm-search-clear{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  background:transparent;border:none;color:var(--muted);font-size:13px;
  cursor:pointer;padding:0 2px;-webkit-appearance:none;appearance:none;
}
.search-highlight{border-color:var(--accent) !important;}
.ufpm-filter-chevron{display:inline-block;font-size:9px;transition:transform .2s;color:var(--muted);}
details[open] .ufpm-filter-chevron{transform:rotate(90deg);}
.ufpm-filter-hint{font-size:10px;color:var(--muted);font-weight:400;}
details[open] .ufpm-filter-hint{display:none;}
.ufpm-pagination{
  display:flex;align-items:center;justify-content:space-between;
  gap:8px;margin-top:8px;padding:4px 0;
}
.ufpm-page-btn{font-size:11px !important;padding:4px 8px !important;}
.ufpm-page-indicator{font-size:11px;color:var(--muted);flex:1;text-align:center;}
.ufpm-modal-backdrop{
  position:fixed;inset:0;background:rgba(0,0,0,0.72);z-index:9999;
  display:flex;align-items:center;justify-content:center;padding:16px;
}
.ufpm-modal-panel{
  background:var(--surface);border:1px solid var(--border);border-radius:8px;
  width:100%;max-width:480px;max-height:90vh;overflow-y:auto;padding:20px;
}
.ufpm-modal-head{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;
}
.ufpm-modal-close{
  background:transparent;border:none;color:var(--muted);font-size:16px;
  cursor:pointer;padding:4px 8px;-webkit-appearance:none;appearance:none;
}
.ufpm-form-error{color:var(--orange,#e07040);font-size:12px;margin:8px 0;}
.ufpm-picker-list{
  display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto;margin-top:8px;
}
.ufpm-picker-item{
  width:100%;text-align:left;background:var(--bg);border:1px solid var(--border);
  border-radius:4px;padding:8px 12px;cursor:pointer;display:flex;flex-direction:column;gap:2px;
  -webkit-appearance:none;appearance:none;color:var(--text);
}
.ufpm-picker-item:hover{border-color:var(--accent);background:rgba(160,120,64,0.08);}
.ufpm-main{min-width:0;}
.ufpm-member-card{
  margin-bottom:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
}
.ufpm-member-card h2{
  font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:30px;
  letter-spacing:1.5px;text-transform:uppercase;color:var(--fg);line-height:1;margin:5px 0 4px;
}
.ufpm-member-card p{font-size:13px;color:var(--muted);}
.ufpm-member-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.ufpm-dashboard-metrics,
.ufpm-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px;}
.ufpm-dashboard-metrics .score-box{padding:12px 10px;}
.ufpm-dashboard-metrics .score-num{font-size:24px;}
.ufpm-metrics .score-num{font-size:20px;word-break:break-word;font-weight:700;}
.ufpm-metrics .score-card{
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:6px;
  padding:8px 10px;
  text-align:left;
}
.ufpm-subtabs{
  display:flex;gap:0;border-bottom:1px solid var(--border);
  margin-bottom:16px;
}
.ufpm-subtab{
  flex:1;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;
  background:none;color:var(--muted);
  font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:700;
  letter-spacing:1px;text-transform:uppercase;padding:10px 4px;cursor:pointer;
  transition:color .15s,border-color .15s;
}
.ufpm-subtab.active{color:var(--accent);border-bottom-color:var(--accent);}
.ufpm-subtab:hover:not(.active){color:var(--fg);}
.ufpm-overview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.ufpm-subpanel .card{
  background:transparent;
  border:1px solid var(--border);
  border-radius:6px;
  padding:10px 12px;
  margin-bottom:8px;
}
.ufpm-kv,
.ufpm-plan-row{
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:4px;
  padding:8px 10px;
}
.ufpm-kv span,
.ufpm-plan-row span{display:block;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:2px;}
.ufpm-kv strong,
.ufpm-plan-row strong{font-size:14px;color:var(--fg);font-weight:500;}
.ufpm-plan-row{margin-bottom:8px;}
.ufpm-history-item{background:var(--bg);}

/* UFPM Profile redesign (2026-05-27) — compact topbar + identity + status + snapshot + history */
.ufpm-profile-topbar{
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:8px;padding:4px 0 10px;
  border-bottom:1px solid var(--border);margin-bottom:10px;
}
.ufpm-profile-actions{display:flex;gap:4px;flex-wrap:wrap;}
.ufpm-profile-action{font-size:10px !important;padding:5px 9px !important;}

/* Identity */
.ufpm-profile-identity{margin-bottom:10px;}
.ufpm-profile-id-row{display:flex;align-items:baseline;gap:10px;margin-bottom:4px;}
.ufpm-profile-score-chip{
  font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:28px;line-height:1;
}
.score-band--excellent  {color:var(--green);}
.score-band--satisfactory{color:var(--accent);}
.score-band--unsatisfactory{color:var(--red);}
.ufpm-profile-name{
  font-family:'Barlow Condensed',sans-serif;font-weight:900;
  font-size:20px;letter-spacing:1px;text-transform:uppercase;
  color:var(--fg);line-height:1.05;overflow-wrap:anywhere;
}
.ufpm-profile-meta{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.ufpm-cat-tag{margin:0;}
.ufpm-cat-tag--excellent    {border-color:var(--green);color:var(--green);}
.ufpm-cat-tag--satisfactory {border-color:var(--accent);color:var(--accent);}
.ufpm-cat-tag--unsatisfactory{border-color:var(--red);color:var(--red);}

/* Status strip (now 2-col: Next Due + Currency only) */
.ufpm-profile-status{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:0;border-bottom:1px solid var(--border);
  padding-bottom:12px;margin-bottom:14px;
}
.ufpm-status-item{display:flex;flex-direction:column;gap:2px;padding-right:10px;}
.ufpm-status-item+.ufpm-status-item{border-left:1px solid var(--border);padding-left:10px;padding-right:0;}
.ufpm-status-label{font-size:9.5px;color:var(--muted);letter-spacing:0.5px;text-transform:uppercase;}
.ufpm-status-value{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:13px;color:var(--fg);line-height:1.2;}

/* Small header for plans list in Overview */
.ufpm-plans-header{
  font-size:10px;color:var(--muted);letter-spacing:0.5px;text-transform:uppercase;
  margin:2px 0 6px;
}

/* Overview / Snapshot */
.ufpm-snapshot-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin-bottom:14px;}
.ufpm-snapshot-item{display:flex;justify-content:space-between;align-items:center;font-size:12px;}
.ufpm-snapshot-label{color:var(--muted);}
.ufpm-snapshot-value{color:var(--fg);font-weight:600;}

/* Workflow panels (Test/Plan) */
.ufpm-workflow-rows{display:flex;flex-direction:column;gap:6px;margin:8px 0 12px;}
.ufpm-workflow-row{display:flex;justify-content:space-between;font-size:12px;}
.ufpm-workflow-label{color:var(--muted);}
.ufpm-workflow-value{color:var(--fg);}
.ufpm-workflow-steps{margin:8px 0 12px;font-size:11px;color:var(--muted);line-height:1.8;}

/* History panel */
.ufpm-history-summary{
  display:flex;gap:16px;flex-wrap:wrap;
  font-size:11px;color:var(--muted);margin-bottom:10px;
}
.ufpm-history-summary strong{color:var(--fg);font-family:'Barlow Condensed',sans-serif;}
.ufpm-hist-chart-wrap{display:block;margin:0 0 10px;}
.ufpm-hcl-item{
  display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;
  padding:7px 0;border-bottom:1px solid var(--border);font-size:11px;
}
.ufpm-hcl-item:last-child{border-bottom:none;}
.ufpm-hcl-score{
  font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:20px;line-height:1;
}
.ufpm-hcl-date{color:var(--muted);flex-shrink:0;}
.ufpm-hcl-breakdown{color:var(--muted);flex:1;}



/* UFPM Member Picker Overlay */
.ufpm-picker-overlay{
  position:fixed;inset:0;z-index:9998;
  background:rgba(0,0,0,0.6);
  display:flex;align-items:flex-end;justify-content:center;
}
.ufpm-picker{
  background:var(--surface);border:1px solid var(--border);
  border-radius:12px 12px 0 0;width:100%;max-width:480px;
  max-height:85vh;display:flex;flex-direction:column;
}
.ufpm-picker-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px;border-bottom:1px solid var(--border);
}
.ufpm-picker-search{
  padding:12px 16px;border-bottom:1px solid var(--border);
}
.ufpm-picker-search input{
  width:100%;background:var(--bg);border:1px solid var(--border);
  border-radius:6px;padding:10px 12px;font-size:15px;
}
.ufpm-picker-list{
  overflow-y:auto;flex:1;padding:8px 8px 20px;
}
.ufpm-picker-row{
  width:100%;text-align:left;background:transparent;border:0;
  padding:14px 16px;border-radius:8px;margin:4px 0;
  display:flex;flex-direction:column;gap:3px;
  color:var(--text);border:1px solid transparent;
  min-height:56px; /* better touch target on phones */
}
.ufpm-picker-row.active{border-color:var(--accent);background:rgba(160,120,64,0.08);}
.ufpm-picker-row .ufpm-member-name{
  font-family:'Barlow Condensed',sans-serif;font-size:15px;font-weight:800;letter-spacing:1px;text-transform:uppercase;
}
.ufpm-picker-row .ufpm-member-meta{
  font-size:12px;color:var(--muted);
}
.ufpm-picker-row-main {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.ufpm-picker-row .ufpm-member-score {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--accent);
  background: rgba(160,120,64,0.12);
  padding: 1px 6px;
  border-radius: 3px;
  flex-shrink: 0;
}
.ufpm-picker-empty {
  padding: 40px 16px;
  text-align: center;
  color: var(--muted);
  font-size: 14px;
}

/* Styles for the Add/Edit Member modal form */
.ufpm-modal-form .field {
  margin-bottom: 12px;
}
.ufpm-modal-form label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 4px;
}
.ufpm-modal-form input {
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 10px 12px;
  font-size: 15px;
  color: var(--text);
}
.ufpm-modal-form input:focus {
  border-color: var(--accent);
  outline: none;
}

/* CARDS */
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:4px;
  padding:20px;
  margin-bottom:16px;
}
.card-title{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700;font-size:12px;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--accent);
  margin-bottom:16px;
  display:flex;align-items:center;gap:8px;
}
.card-title::before{
  content:'';display:block;width:3px;height:14px;
  background:var(--accent);border-radius:1px;
}
/* Exercise list */
.ex-item{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);}
.ex-item:last-child{border-bottom:none;}
.ex-check{width:22px;height:22px;min-width:22px;border:2px solid var(--border2);border-radius:5px;cursor:pointer;margin-top:1px;transition:background .15s,border-color .15s;}
.ex-check.done{background:var(--green);border-color:var(--green);}
.ex-body{flex:1;min-width:0;}
.ex-name{font-size:14px;color:var(--fg);font-weight:500;line-height:1.35;margin-bottom:2px;}
.ex-detail{font-size:12px;color:#8a9faf;line-height:1.5;}
.ex-actions{margin-top:6px;}
.timer-btn{font-size:11px;padding:4px 10px;background:rgba(160,120,64,0.1);border:1px solid rgba(160,120,64,0.3);border-radius:4px;color:var(--accent);cursor:pointer;font-family:'Barlow Condensed',sans-serif;font-weight:700;letter-spacing:1px;text-transform:uppercase;}
.timer-btn:active{background:rgba(160,120,64,0.2);}
.plan-phase-badge{font-size:10px;background:rgba(160,120,64,0.15);color:var(--accent);border-radius:3px;padding:2px 6px;letter-spacing:1px;text-transform:uppercase;vertical-align:middle;}
.day-done-badge{font-size:10px;color:var(--green);letter-spacing:1px;vertical-align:middle;}

/* Accordion */
.acc-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;margin-bottom:10px;overflow:hidden;}
.acc-header{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;cursor:pointer;user-select:none;transition:background .15s;}
.acc-header:hover{background:rgba(255,255,255,0.03);}
.acc-header-left{display:flex;align-items:baseline;gap:8px;flex:1;flex-wrap:wrap;}
.acc-title{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--accent2);}
.acc-pts{font-size:10px;color:var(--muted);letter-spacing:1px;white-space:nowrap;}
.acc-score-pill{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:11px;background:var(--bg);border:1px solid var(--border2);border-radius:20px;padding:2px 10px;color:var(--muted);margin-left:auto;margin-right:8px;transition:all .2s;white-space:nowrap;}
.acc-score-pill.has-score{color:var(--green);border-color:var(--green);}
.acc-chevron{
  flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  width:22px;height:22px;border:1px solid var(--border2);border-radius:999px;
  color:var(--accent);transition:transform .2s,border-color .2s,color .2s;
}
.acc-chevron svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
.acc-chevron.open{transform:rotate(90deg);border-color:rgba(160,120,64,.55);color:var(--text);}
.acc-body{padding:14px 16px;border-top:1px solid var(--border);}
.acc-exempt{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:10px;letter-spacing:1px;color:var(--muted);text-transform:uppercase;flex-shrink:0;margin-right:4px;}

/* FORM ELEMENTS */
.row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.field{flex:1;min-width:140px;}
.field.sm{min-width:90px;flex:0 1 100px;}
label{
  display:block;
  font-size:10px;letter-spacing:2px;text-transform:uppercase;
  color:var(--muted);margin-bottom:6px;
}
input,select{
  width:100%;
  background:var(--bg);
  border:1px solid var(--border2);
  border-radius:3px;
  color:var(--text);
  padding:9px 12px;
  font-family:'Barlow',sans-serif;
  font-size:14px;
  outline:none;
  transition:border-color .15s;
}
input:focus,select:focus{border-color:var(--accent);}
select option{background:#0f1318;}
textarea{
  width:100%;background:var(--bg);
  border:1px solid var(--border2);border-radius:3px;
  color:var(--text);padding:9px 12px;
  font-family:'Barlow',sans-serif;font-size:13px;
  outline:none;resize:vertical;
}

/* TOGGLE GROUP */
.toggle-group{display:flex;gap:0;border:1px solid var(--border2);border-radius:3px;overflow:hidden;}
.toggle-btn{
  flex:1;border:none;background:transparent;
  color:var(--muted);padding:9px 8px;
  font-family:'Barlow Condensed',sans-serif;
  font-weight:600;font-size:12px;letter-spacing:1px;
  text-transform:uppercase;cursor:pointer;transition:all .15s;
}
.toggle-btn.active{background:var(--accent);color:#000;}
.toggle-btn:not(:last-child){border-right:1px solid var(--border2);}

/* BUTTONS */
.btn{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700;font-size:13px;letter-spacing:2px;
  text-transform:uppercase;border:none;border-radius:3px;
  padding:11px 24px;cursor:pointer;transition:all .15s;
}
.btn-primary{background:var(--accent);color:#000;}
.btn-primary:hover{background:var(--accent2);}
.btn-secondary{background:transparent;border:1px solid var(--border2);color:var(--text);}
.btn-secondary:hover{border-color:var(--accent);color:var(--accent);}
.btn-green{background:#1a4a2e;border:1px solid var(--green);color:var(--green);}
.btn-green:hover{background:var(--green);color:#000;}
.btn-danger{background:transparent;border:1px solid var(--red);color:var(--red);padding:5px 12px;font-size:11px;}
.btn-danger:hover{background:var(--red);color:#fff;}
.btn:disabled{opacity:.5;cursor:not-allowed;}

/* SCORE DISPLAY */
.score-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px;margin-top:20px;}
.score-box{
  background:var(--surface2);border:1px solid var(--border);
  border-radius:4px;padding:16px 12px;text-align:center;
  position:relative;overflow:hidden;
}
.score-box::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--accent);
}
.score-box.cardio::before{background:var(--blue);}
.score-box.whtr::before{background:var(--green);}
.score-box.total::before{background:var(--accent2);}
.score-num{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:900;font-size:36px;line-height:1;
  color:#fff;
}
.score-label{font-size:10px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-top:4px;}
.score-sub{font-size:11px;color:var(--muted);margin-top:2px;}

.result-banner{
  border-radius:4px;padding:20px 24px;margin-bottom:16px;
  display:flex;align-items:center;justify-content:space-between;
  border:1px solid;
}
.result-banner.excellent{background:#1a2e1a;border-color:var(--green);color:var(--green);}
.result-banner.satisfactory{background:#2a2000;border-color:var(--accent);color:var(--accent);}
.result-banner.marginal{background:#2a1500;border-color:var(--orange);color:var(--orange);}
.result-banner.unsat{background:#2a0a0a;border-color:var(--red);color:var(--red);}
.result-banner .grade{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:900;font-size:40px;letter-spacing:2px;
}
.result-banner .grade-label{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700;font-size:14px;letter-spacing:3px;text-transform:uppercase;
}
.min-fail{
  background:#2a0a0a;border:1px solid var(--red);
  border-radius:3px;padding:10px 14px;
  color:var(--red);font-size:12px;margin-top:8px;
}

/* EXEMPTION */
.exempt-badge{
  display:inline-block;
  background:#1a1f2a;border:1px solid var(--blue);
  color:var(--blue);border-radius:3px;
  padding:3px 10px;font-size:10px;letter-spacing:2px;text-transform:uppercase;
}

/* TIMER MODAL */
.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.88);
  z-index:3000;display:none;align-items:center;justify-content:center;
  padding:20px;
}
.modal{
  background:var(--surface);border:1px solid var(--border2);
  border-radius:6px;padding:28px;width:100%;max-width:320px;
  text-align:center;
}
.timer-display{
  font-family:'Barlow Condensed',sans-serif;font-weight:900;
  font-size:68px;color:#fff;letter-spacing:4px;line-height:1;
}
.timer-label{
  font-family:'Barlow Condensed',sans-serif;font-weight:600;
  font-size:12px;letter-spacing:3px;text-transform:uppercase;
  color:var(--muted);margin-bottom:12px;
}
.timer-ring{
  width:160px;height:160px;margin:0 auto 8px;position:relative;
}
.timer-ring svg{transform:rotate(-90deg);}
.timer-ring-bg{fill:none;stroke:var(--border2);stroke-width:8;}
.timer-ring-prog{
  fill:none;stroke:var(--accent);stroke-width:8;stroke-linecap:round;
  transition:stroke-dashoffset 0.9s linear;
}
/* WORKOUT LOG */
.log-item{
  background:var(--surface2);border:1px solid var(--border);
  border-radius:4px;padding:12px 16px;margin-bottom:8px;
  display:flex;justify-content:space-between;align-items:flex-start;
}
.log-type{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700;font-size:16px;color:#fff;
}
.log-meta{font-size:12px;color:var(--muted);margin-top:2px;}
.tag{
  display:inline-block;
  background:var(--surface);border:1px solid var(--border2);
  border-radius:2px;padding:2px 8px;
  font-size:10px;letter-spacing:1px;text-transform:uppercase;
  color:var(--muted);margin-right:4px;
}

/* HISTORY CHART */
.history-card{padding-top:12px;}
.chart-wrap{position:relative;height:160px;margin:0 0 8px;}
.chart-canvas{width:100%;height:100%;}
.history-item{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 0;border-bottom:1px solid var(--border);
}
.history-item:last-child{border-bottom:none;}
.history-section-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:12px;padding-top:10px;border-top:1px solid var(--border);
}
.history-export{font-size:10px!important;padding:5px 12px!important;}
.history-delete-all{width:100%;margin-top:10px;min-height:40px;}
.history-pagination{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:12px;padding-top:10px;border-top:1px solid var(--border);
}
.history-page-btn{font-size:10px!important;padding:5px 12px!important;min-width:70px;}
.history-page-indicator{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;}

/* HISTORY BAR CHART CONTROLS */
.hist-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.hist-controls--below-chart{margin:0 0 8px;}
.hist-view-toggle{
  display:flex;border:1px solid var(--border2);border-radius:5px;overflow:hidden;
  background:var(--bg);
}
.hist-view-toggle button{
  min-height:30px;padding:5px 13px;border:0;border-right:1px solid var(--border2);
  background:transparent;color:var(--muted);font-family:'Barlow Condensed',sans-serif;
  font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase;cursor:pointer;
}
.hist-view-toggle button:last-child{border-right:0;}
.hist-view-toggle button.active{background:var(--accent);color:#000;}
.hist-view-select{
  font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:700;
  letter-spacing:1px;text-transform:uppercase;
  background:var(--bg);border:1px solid var(--border2);border-radius:4px;
  color:var(--text);padding:6px 10px;cursor:pointer;
}
.hist-period-strip{display:flex;gap:4px;flex-wrap:wrap;}
.hist-period-btn{
  font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:700;
  letter-spacing:1px;text-transform:uppercase;
  background:transparent;border:1px solid var(--border2);border-radius:3px;
  color:var(--muted);padding:5px 10px;cursor:pointer;transition:all .15s;
}
.hist-period-btn.active{background:var(--accent);border-color:var(--accent);color:#000;}
.hist-display-toggle{display:flex;gap:4px;}
.hist-display-toggle .btn{font-size:11px;padding:5px 12px;letter-spacing:1px;}
.hist-bar-wrap{display:block;margin:0 0 8px;}
.hist-bar-legend{
  display:flex;gap:10px;flex-wrap:wrap;margin-top:6px;
  font-family:'Barlow Condensed',sans-serif;font-size:10px;letter-spacing:.5px;color:var(--muted);
}
.hist-legend-item{display:flex;align-items:center;gap:4px;}
.hist-legend-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0;}
.hist-legend-vol-line{width:16px;height:0;border-top:2px dashed var(--muted);flex-shrink:0;}

/* AI OUTPUT */
.ai-output{
  background:var(--bg);border:1px solid var(--border);
  border-radius:4px;padding:20px;
  font-size:13px;line-height:1.8;color:var(--text);
  white-space:pre-wrap;word-break:break-word;
  max-height:600px;overflow-y:auto;
}

/* ALERTS */
.alert{border-radius:3px;padding:12px 16px;font-size:13px;margin-top:12px;}
.alert-warn{background:#2a1500;border:1px solid var(--orange);color:var(--orange);}
.alert-error{background:#2a0a0a;border:1px solid var(--red);color:var(--red);}
.alert-info{background:#0a1a2a;border:1px solid var(--blue);color:var(--blue);}

/* DIVIDER */
.divider{border:none;border-top:1px solid var(--border);margin:20px 0;}

/* LIGHT MODE */
html.theme-light body{
  background:linear-gradient(180deg,#f7f8fa 0%,#edf1f5 100%);
  color:var(--text);
}
html.theme-light .header{
  background:rgba(255,255,255,0.94);
  border-bottom-color:var(--border);
  box-shadow:0 1px 0 rgba(16,24,32,0.06);
  backdrop-filter:blur(10px);
}
html.theme-light .logo-main,
html.theme-light .about-card h2,
html.theme-light .install-platform-title,
html.theme-light .release-ver,
html.theme-light .log-type,
html.theme-light .score-num,
html.theme-light .timer-display,
html.theme-light .sw-display{color:var(--text);}
html.theme-light .logo-sub{color:#171d24;}
html.theme-light .header-ver{color:#333b44;}
html.theme-light .about-btn{
  background:rgba(255,255,255,0.7);
  border-color:var(--border2);
  color:#101820;
  box-shadow:0 1px 2px rgba(16,24,32,0.06);
}
html.theme-light .about-btn:hover{border-color:var(--accent);color:var(--accent2);}
html.theme-light .theme-toggle{
  background:#eef1f4;
  border-color:var(--border2);
  color:#2b333b;
}
html.theme-light .theme-toggle-header{
  background:#101820;
  border-color:#101820;
  color:var(--accent);
  box-shadow:0 6px 14px rgba(16,24,32,0.16);
}
html.theme-light .theme-toggle-track{background:#d7dde4;border-color:#c3ccd5;}
html.theme-light .theme-toggle-thumb{background:#101820;}
html.theme-light .theme-toggle-header .theme-toggle-track{background:#2b333b;border-color:#3a444e;}
html.theme-light .theme-toggle-header .theme-toggle-thumb{background:var(--accent);}
html.theme-light .ufpm-mode-toggle{
  background:#ffffff;border-color:var(--border2);color:#202a33;
}
html.theme-light .ufpm-mode-toggle.active{color:#8c6122;border-color:var(--accent);}
html.theme-light .ufpm-calc-context{
  background:#fff7e9;border-color:rgba(201,154,73,0.48);
}
html.theme-light .card,
html.theme-light .acc-card,
html.theme-light .about-card,
html.theme-light .modal,
html.theme-light .ufpm-sidebar,
html.theme-light .ufpm-member-card{
  background:rgba(255,255,255,0.88);
  border-color:var(--border);
  box-shadow:0 1px 2px rgba(16,24,32,0.04);
}
html.theme-light .card-title,
html.theme-light .acc-title{color:var(--text);}
html.theme-light .card-title::before{background:var(--accent);}
html.theme-light .acc-header,
html.theme-light .about-acc-header{
  background:rgba(255,255,255,0.72);
  color:var(--text);
}
html.theme-light .acc-header:hover,
html.theme-light .about-acc-header:hover{background:#e9eef3;}
html.theme-light .acc-body,
html.theme-light .about-acc-body{border-top-color:var(--border);}
html.theme-light .about-section-static h3{color:var(--text);border-bottom-color:var(--border);}
html.theme-light .about-section p,
html.theme-light .about-section li,
html.theme-light .about-acc-body p,
html.theme-light .about-acc-body li,
html.theme-light .about-ios-step{color:#33404a;}
html.theme-light .about-modal{background:rgba(16,24,32,0.28);}
html.theme-light .about-acc,
html.theme-light .install-platform{
  border-color:var(--border);
  background:rgba(255,255,255,0.58);
}
html.theme-light input,
html.theme-light select,
html.theme-light textarea{
  background:rgba(255,255,255,0.82);
  border-color:var(--border2);
  color:var(--text);
  box-shadow:inset 0 1px 1px rgba(16,24,32,0.04);
}
html.theme-light input:focus,
html.theme-light select:focus,
html.theme-light textarea:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(201,154,73,0.18);
}
html.theme-light select option{background:#ffffff;color:var(--text);}
html.theme-light label{color:#2f3942;}
html.theme-light .toggle-group{
  background:rgba(255,255,255,0.72);
  border-color:var(--border2);
}
html.theme-light .toggle-btn{color:#202a33;}
html.theme-light .toggle-btn.active{
  background:linear-gradient(180deg,#d7ac5a,#c69744);
  color:#111820;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.32);
}
html.theme-light .btn-primary{
  background:linear-gradient(180deg,#d7ac5a,#c69744);
  color:#111820;
  box-shadow:0 6px 14px rgba(155,111,40,0.18);
}
html.theme-light .btn-secondary{
  background:linear-gradient(180deg,#f1f2f3,#e2e5e8);
  border-color:#d1d5d8;
  color:#101820;
}
html.theme-light #genBtn{
  background:#101820!important;
  color:var(--accent)!important;
  border:1px solid #0b1118!important;
  box-shadow:none!important;
}
html.theme-light .btn-green{background:#e7f4ed;color:var(--green);border-color:rgba(31,122,79,0.5);}
html.theme-light .btn-danger:hover{color:#fff;}
html.theme-light .score-box,
html.theme-light .log-item,
html.theme-light .ex-item,
html.theme-light .ufpm-upload-box,
html.theme-light .ufpm-member-row,
html.theme-light .ufpm-kv,
html.theme-light .ufpm-plan-row,
html.theme-light .ufpm-history-item{
  background:rgba(255,255,255,0.62);
  border-color:var(--border);
}
html.theme-light .ufpm-member-row:hover,
html.theme-light .ufpm-member-row.active{background:#fff7e9;border-color:var(--accent);}
html.theme-light .ufpm-subtabs{border-color:var(--border);}
html.theme-light .ufpm-subtab{color:var(--muted);}
html.theme-light .ufpm-subtab.active{color:var(--accent);border-bottom-color:var(--accent);background:none;}
html.theme-light .ex-detail{color:#55616b;}
html.theme-light .tag,
html.theme-light .exempt-badge{
  background:#eef1f4;
  border-color:var(--border);
  color:#4f5962;
}
html.theme-light .acc-score-pill{
  background:#fff;
  border-color:var(--border2);
  color:var(--muted);
}
html.theme-light .ex-check{background:#fff;border-color:#252e37;}
html.theme-light .ex-check.done{background:var(--green);border-color:var(--green);}
html.theme-light .calc-timer-btn,
html.theme-light .timer-btn{
  background:rgba(201,154,73,0.12);
  border-color:rgba(201,154,73,0.38);
  color:#8c6122;
}
html.theme-light .tabs{
  background:#edf0f2;
  border-top-color:var(--accent);
  box-shadow:0 -6px 22px rgba(16,24,32,0.12);
}
html.theme-light .tab{color:#606b75;}
html.theme-light .tab.active{
  color:var(--accent2);
  background:rgba(255,255,255,0.96);
  border-top-color:var(--accent);
}
html.theme-light .tab:hover:not(.active){color:var(--text);}
html.theme-light .alert-warn{background:rgba(201,154,73,0.13);border-color:#805729;color:#5d351a;}
html.theme-light .alert-info{background:#e9f2f7;border-color:#9cb9cc;color:#24506c;}
html.theme-light .alert-error,
html.theme-light .min-fail{background:#f9ecea;border-color:#d7a19b;color:#96352f;}
html.theme-light .result-banner.excellent{background:#e8f5ee;color:var(--green);border-color:rgba(31,122,79,0.5);}
html.theme-light .result-banner.satisfactory{background:#f7efdf;color:#8c6122;border-color:rgba(201,154,73,0.62);}
html.theme-light .result-banner.marginal{background:#f8eadb;color:var(--orange);border-color:rgba(154,90,20,0.45);}
html.theme-light .result-banner.unsat{background:#f8e8e6;color:var(--red);border-color:rgba(180,63,54,0.45);}
html.theme-light .score-save-modal{background:rgba(16,24,32,0.34);}
html.theme-light .score-save-card{
  background:#ffffff;border-color:var(--border);
  box-shadow:0 18px 48px rgba(16,24,32,0.18);
}
html.theme-light .score-save-card p{color:#33404a;}
html.theme-light .ai-output{background:rgba(255,255,255,0.62);}
html.theme-light #ai-key-box .card{
  background:#fff7e9!important;
  border-color:rgba(154,90,20,0.42)!important;
}
html.theme-light .modal-overlay{background:rgba(16,24,32,0.42);}
html.theme-light #timer-modal,
html.theme-light .sw-modal{background:#f2f4f6!important;}
html.theme-light #timer-modal button:not(#timer-pause-btn),
html.theme-light .sw-btn-sec{
  background:#e8ebee!important;
  color:#101820!important;
}
html.theme-light #timer-display,
html.theme-light .sw-display{color:var(--text)!important;}
html.theme-light #timer-ring-prog{stroke:var(--accent);}
html.theme-light .app-footer{
  background:rgba(255,255,255,0.92)!important;
  border-top-color:var(--border)!important;
}
html.theme-light .app-footer p:first-child{color:#3d4650!important;}
html.theme-light .app-footer p:last-child{color:#202a33!important;}
html.theme-light #install-banner,
html.theme-light #pwa-banner{
  background:#ffffff!important;
  border-color:var(--accent)!important;
  box-shadow:0 -4px 20px rgba(16,24,32,0.12);
}
html.theme-light #ios-install-inner{
  background:#ffffff;
  border-color:var(--accent);
  color:var(--text);
}
html.theme-light #fb-fab{
  height:48px!important;
  min-width:188px!important;
  border-radius:999px!important;
  bottom:calc(82px + var(--ptr-safe-area-bottom))!important;
  right:24px!important;
  box-shadow:0 12px 24px rgba(154,111,40,0.34)!important;
}
html.theme-light #fb-modal{background:rgba(16,24,32,0.34)!important;}
html.theme-light #fb-modal > div{
  background:#ffffff!important;
  border-color:var(--border)!important;
  color:var(--text)!important;
}
html.theme-light #fb-modal select,
html.theme-light #fb-modal input,
html.theme-light #fb-modal textarea,
html.theme-light #fb-discrepancy-row,
html.theme-light #fb-discrepancy-fields{
  background:#eef1f4!important;
  border-color:var(--border2)!important;
  color:var(--text)!important;
}
html.theme-light #fb-modal [style*="color:#fff"],
html.theme-light #fb-modal [style*="color:#ccc"],
html.theme-light #fb-modal [style*="color:#aaa"]{color:var(--text)!important;}

/* AUTH */
.auth-method-btn {
  width:100%;padding:13px 16px;background:#1a2530;border:1px solid #2a3540;
  border-radius:8px;display:flex;align-items:center;gap:12px;cursor:pointer;
  margin-bottom:10px;transition:border-color .15s;text-align:left;
}
.auth-method-btn:hover { border-color:var(--accent); }
.auth-error-msg {
  padding:10px 12px;background:#2a0a0a;border:1px solid var(--red);
  border-radius:6px;font-size:12px;color:var(--red);
}
html.theme-light #auth-modal > div {
  background: #ffffff !important; border-color: var(--border) !important;
}
html.theme-light #auth-modal [style*="color:#fff"],
html.theme-light #auth-modal [style*="color:#ccc"],
html.theme-light #auth-modal [style*="color:#aab"] { color: var(--text) !important; }
html.theme-light #auth-modal [style*="color:#556"],
html.theme-light #auth-modal [style*="color:#445"] { color: var(--muted) !important; }
html.theme-light .auth-method-btn {
  background: rgba(255,255,255,0.72) !important; border-color: var(--border2) !important;
}
html.theme-light .auth-method-btn:hover { border-color: var(--accent) !important; }
html.theme-light .auth-error-msg {
  background: #f9ecea !important; border-color: #d7a19b !important; color: #96352f !important;
}
html.theme-light #user-dropdown {
  background: #ffffff !important; border-color: var(--border) !important; color: var(--text) !important;
}
html.theme-light #user-dropdown [style*="color:#fff"] { color: var(--text) !important; }
html.theme-light #user-dropdown [style*="color:#556"] { color: var(--muted) !important; }
html.theme-light #auth-modal [style*="background:#2a3540"] { background: var(--border2) !important; }

/* PRINT */
@media print{
  .header,.tabs,.btn,.no-print{display:none!important;}
  .panel{display:block!important;}
  body{background:#fff;color:#000;}
  .card{border:1px solid #ccc;break-inside:avoid;}
  .score-box{border:1px solid #ccc;}
}

/* RESPONSIVE */
@media(max-width:600px){
  .score-grid{grid-template-columns:1fr 1fr;}
  .header-inner{padding-right:10px;}
  .header-actions{gap:5px;}
  .theme-toggle-header{padding:5px 8px;}
  .theme-toggle-header .theme-toggle-label{display:none;}
  .ufpm-calc-context{align-items:stretch;flex-direction:column;}
  .ufpm-dashboard-metrics{grid-template-columns:1fr 1fr;}
  .ufpm-mode-toggle{padding:4px 7px;}
}

  @page { size: landscape; margin: 0.5in; }
  body { font-family: Arial, sans-serif; font-size: 8px; color: #111; margin: 0; }
  h1 { font-size: 14px; margin: 0 0 2px; }
  .subtitle { font-size: 9px; color: #555; margin-bottom: 10px; }
  .meta { display:flex; gap:20px; margin-bottom:12px; font-size:8px; color:#444; }
  .meta span { background:#f0f0f0; padding:3px 8px; border-radius:3px; }
  .weeks-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; page-break-inside:avoid; }
  .week-block { border:1px solid #ccc; border-radius:4px; overflow:hidden; }
  .week-label { background:#1a1a2e; color:#a07840; font-size:8px; font-weight:bold; letter-spacing:1px; text-transform:uppercase; padding:4px 8px; }
  .days-grid { display:grid; grid-template-columns:repeat(7,1fr); }
  .day-col { border-right:1px solid #e0e0e0; min-height:80px; }
  .day-col:last-child { border-right:none; }
  .day-header { background:#f5f5f5; font-weight:bold; font-size:7px; text-align:center; padding:3px 2px; border-bottom:1px solid #e0e0e0; text-transform:uppercase; letter-spacing:.5px; }
  .day-body { padding:3px 4px; }
  .day-type { font-size:6px; color:#888; margin-bottom:2px; font-style:italic; }
  .rest-label { font-size:7px; color:#aaa; text-align:center; padding:10px 2px; }
  .ex-line { font-size:6.5px; margin-bottom:1px; line-height:1.3; }
  .ex-name { font-weight:bold; }
  .ex-detail { color:#555; }
  .phase-bar { background:#e8f0e8; border-left:3px solid #4a9e4a; font-size:7px; padding:2px 6px; margin-bottom:4px; color:#2a6e2a; font-weight:bold; }
  .footer { margin-top:8px; font-size:7px; color:#aaa; text-align:center; border-top:1px solid #eee; padding-top:6px; }
