:root{--p4-gold:#f2c300;--p4-black:#111114;--p4-white:#fff;--p4-ink:#202126;--p4-muted:#73767b;--p4-line:#e8e8e9;--p4-bg:#f5f5f3;--p4-display:'Archivo Black',Arial,sans-serif;--p4-serif:'DM Serif Display',Georgia,serif;--p4-ui:'Montserrat',Arial,sans-serif}
body.p4tkd-body{margin:0;background:var(--p4-bg);font-family:var(--p4-ui);color:var(--p4-ink);-webkit-font-smoothing:antialiased}
body.p4tkd-body *{box-sizing:border-box}
body.p4tkd-body a{color:inherit;text-decoration:none}
body.p4tkd-body button,body.p4tkd-body input,body.p4tkd-body select{font:inherit}
body.p4tkd-body a:focus-visible,body.p4tkd-body button:focus-visible,body.p4tkd-body input:focus-visible,body.p4tkd-body select:focus-visible{outline:3px solid #866c00;outline-offset:3px}
.p4-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.p4-eyebrow{font-size:10px;font-weight:800;letter-spacing:2.6px;line-height:1.5;color:#827200;text-transform:uppercase}
.p4-eyebrow-gold{color:var(--p4-gold)}
.p4-app{min-height:100vh}
.p4-topbar{height:88px;display:flex;justify-content:space-between;align-items:center;background:var(--p4-gold);padding:0 42px;position:relative;z-index:40;gap:24px;color:var(--p4-black)}
.p4-topbar-start,.p4-topbar-end{display:flex;align-items:center;gap:20px;min-width:0}
.p4-header-logo{display:block;width:120px;height:70px;object-fit:contain}
.p4-topbar-divider{height:37px;width:1px;background:rgba(17,17,20,.35)}
.p4-topbar-title{font-size:11px;font-weight:600;line-height:1.4;letter-spacing:2.1px;white-space:nowrap}
.p4-topbar-title strong{display:block;font-size:12px;letter-spacing:1.85px}
.p4-topbar-role{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:1.3px}
.p4-avatar{width:39px;height:39px;background:var(--p4-black);color:var(--p4-gold);display:flex;align-items:center;justify-content:center;border-radius:50%;font:800 14px var(--p4-ui)}
.p4-signout{font-size:11px;font-weight:800;border-bottom:2px solid var(--p4-black);padding-bottom:5px;white-space:nowrap}
.p4-signout:hover{opacity:.65}
.p4-layout{display:flex;min-height:calc(100vh - 88px)}
.p4-sidebar{width:266px;flex:0 0 266px;background:var(--p4-black);color:#fff;padding:24px 16px 24px;display:flex;flex-direction:column;gap:25px;min-height:calc(100vh - 88px)}
.p4-sidebar-intro{padding:8px 16px 24px;border-bottom:1px solid #343437}
.p4-sidebar-intro img{width:106px;height:69px;object-fit:contain;display:block;object-position:left}
.p4-sidebar-intro div{font-size:8px;color:#a2a2a4;font-weight:700;letter-spacing:1.6px;margin-top:5px}
.p4-nav{display:flex;flex-direction:column;gap:5px;flex:1}
.p4-nav-label{font-size:9px;font-weight:800;color:#77777e;letter-spacing:2px;padding:0 16px 12px}
.p4-nav-secondary{margin-top:31px}
.p4-nav-item{padding:13px 15px;display:flex;align-items:center;gap:14px;font-size:12px;font-weight:700;color:#e7e7e8!important;border-radius:5px;min-height:45px;transition:background .15s,color .15s}
.p4-nav-item:not(.is-disabled):hover{background:#28282b;color:#fff!important}
.p4-nav-item.is-active{background:#343124;color:var(--p4-gold)!important;box-shadow:inset 3px 0 var(--p4-gold)}
.p4-nav-icon{display:inline-flex;align-items:center;justify-content:center;width:21px;font-size:19px;font-weight:400;line-height:1}
.p4-nav-item.is-disabled{color:#77777e!important;cursor:default}
.p4-nav-item small{margin-left:auto;font-size:7px;font-weight:800;color:#818187;letter-spacing:1px}
.p4-sidebar-bottom{margin:0 15px;padding:21px 0 2px;border-top:1px solid #343437;font-size:9px;font-weight:800;letter-spacing:1.4px;line-height:1.5}
.p4-sidebar-bottom small{display:block;padding-left:16px;color:#88888d;font-size:8px;font-weight:600}
.p4-sidebar-dot{width:7px;height:7px;display:inline-block;border-radius:50%;background:var(--p4-gold);margin-right:7px}
.p4-sidebar-scrim{display:none}
.p4-main{flex:1;min-width:0;max-width:100%;padding:54px clamp(22px,4vw,76px) 90px}
.p4-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:33px}
.p4-heading h1{font:400 clamp(26px,2.8vw,39px)/1.12 var(--p4-display);letter-spacing:-.8px;margin:12px 0 8px;text-transform:uppercase;overflow-wrap:anywhere}
.p4-heading p{font-size:14px;line-height:1.6;color:#71747a;margin:0;max-width:660px}
.p4-button{display:inline-flex;align-items:center;justify-content:center;gap:17px;border:1px solid var(--p4-black);background:var(--p4-black);color:#fff!important;min-height:45px;padding:13px 21px;border-radius:4px;font-size:12px!important;font-weight:800!important;letter-spacing:.45px;white-space:nowrap;cursor:pointer;transition:background .15s,transform .15s,color .15s}
.p4-button:hover{background:#333337;transform:translateY(-1px)}
.p4-button span{font-size:16px;line-height:1}
.p4-button-small{min-height:41px;padding:10px 17px}
.p4-button-ghost{background:#fff;color:var(--p4-black)!important;border-color:#d8d8db}
.p4-button-ghost:hover{background:#f7f7f7}
.p4-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}
.p4-metric{min-width:0;background:#fff;border:1px solid var(--p4-line);border-radius:7px;padding:23px 23px 20px;box-shadow:0 6px 20px rgba(0,0,0,.018)}
.p4-metric-top{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:800;letter-spacing:1.05px;font-size:9px;color:#70737b;min-height:29px}
.p4-metric-icon{display:flex;align-items:center;justify-content:center;width:29px;height:29px;font-size:19px;background:#fff7cc;color:#393313;border-radius:4px;flex:0 0 29px}
.p4-metric-value{margin:17px 0 7px;font:400 clamp(23px,2.3vw,36px)/1.1 var(--p4-display);letter-spacing:-1px;overflow-wrap:anywhere}
.p4-metric-note{font-size:11px;color:#84878b;line-height:1.5}
.p4-grid-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-bottom:22px;align-items:start}
.p4-card{background:#fff;border:1px solid var(--p4-line);border-radius:7px;padding:28px;min-width:0;box-shadow:0 6px 20px rgba(0,0,0,.015)}
.p4-card-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}
.p4-card h2,.p4-welcome-card h2{font:400 18px/1.3 var(--p4-display);text-transform:uppercase;margin:7px 0 0;letter-spacing:-.15px}
.p4-card-head .p4-text-link{flex-shrink:0}
.p4-steps{display:flex;flex-direction:column}
.p4-steps a{display:flex;align-items:center;gap:17px;border-top:1px solid var(--p4-line);padding:18px 0}
.p4-steps a:last-child{padding-bottom:0}
.p4-steps a:hover strong,.p4-text-link:hover{color:#987800}
.p4-step-number{font:400 20px var(--p4-display);color:#b19a35}
.p4-steps a>span:nth-child(2){flex:1;min-width:0}
.p4-steps strong,.p4-club-row strong{display:block;font-size:12px;line-height:1.5}
.p4-steps small,.p4-club-row small{display:block;color:#85888d;font-size:10px;line-height:1.6;margin-top:3px}
.p4-steps a>span:last-child{font-size:19px}
.p4-club-row{display:flex;align-items:center;gap:15px;border-top:1px solid var(--p4-line);padding:19px 0}
.p4-club-emblem{height:42px;width:42px;flex:0 0 42px;background:#121215;color:var(--p4-gold);display:flex;align-items:center;justify-content:center;font:400 14px var(--p4-display);border-radius:4px}
.p4-club-row>span:nth-child(2){flex:1}
.p4-club-total{font:400 23px var(--p4-display)!important}
.p4-callout{margin-top:22px;background:#f7f7f3;border-left:3px solid var(--p4-gold);padding:15px 18px}
.p4-callout strong{font-size:9px;letter-spacing:1.8px}
.p4-callout p{font-size:11px;line-height:1.65;color:#666a70;margin:7px 0 0}
.p4-card-table{padding:0;overflow:hidden}
.p4-card-table>.p4-card-head{padding:27px 28px 22px;margin:0}
.p4-table-wrap{overflow-x:auto}
.p4-table{border-collapse:collapse;width:100%;text-align:left;font-size:12px;white-space:nowrap}
.p4-table th{font-size:9px;font-weight:800;color:#898c91;text-transform:uppercase;letter-spacing:1px;background:#f9f9f9;padding:16px 26px;border-top:1px solid var(--p4-line);border-bottom:1px solid var(--p4-line)}
.p4-table td{padding:17px 26px;border-bottom:1px solid #f0f0f0;color:#62666c;line-height:1.5}
.p4-table tbody tr:last-child td{border-bottom:0}
.p4-table td strong{font-size:11px;color:#27292e}
.p4-table-sub{display:block;font-size:10px;color:#8b8e92;margin-top:3px;white-space:normal;max-width:220px}
.p4-text-link{color:#333!important;font-size:10px;font-weight:800;white-space:nowrap}
.p4-empty{padding:45px 28px;color:#81848a;text-align:center;font:400 14px/1.6 var(--p4-serif)}
.p4-status{display:inline-flex;padding:7px 10px;border-radius:3px;font-size:9px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;background:#f1f1f1;color:#555}
.p4-status-active{background:#e6f4eb;color:#247647}
.p4-status-pending{background:#fff4d4;color:#85640a}
.p4-status-inactive{background:#e9e9ec;color:#5f6066}
.p4-status-archived{background:#f6e8e8;color:#994e4e}
/* Student directory search + filters: deliberate, labelled desktop/tablet/mobile layout. */
.p4-student-list{overflow:hidden}
.p4-student-list .p4-filters{display:block;padding:25px 28px 22px;background:#fbfbf9;border-bottom:1px solid #ededeb}
.p4-filter-intro{display:flex;align-items:baseline;gap:13px;flex-wrap:wrap;margin-bottom:18px}
.p4-filter-kicker{font-size:9px;letter-spacing:1.55px;font-weight:800;color:#8a7600}
.p4-filter-title{font-size:12px;font-weight:700;color:#33343a}
.p4-filter-grid{display:grid;grid-template-columns:minmax(240px,2.1fr) minmax(145px,1fr) minmax(145px,1fr) auto;align-items:end;gap:14px}
.p4-filter-field{display:flex;flex-direction:column;min-width:0;gap:8px}
.p4-filter-field>label{font:800 9px/1.3 var(--p4-ui);letter-spacing:1.1px;color:#62656b}
.p4-student-list .p4-filter-field input,.p4-student-list .p4-filter-field select{display:block;width:100%;height:45px;border-radius:5px;border:1px solid #dcdedc;background:#fff;font-family:var(--p4-ui);font-size:12px;font-weight:600;color:#26272d;padding:0 12px;min-width:0;box-shadow:0 1px 1px rgba(0,0,0,.01)}
.p4-student-list .p4-filter-field input::placeholder{color:#93969b;font-weight:500;opacity:1}
.p4-student-list .p4-filter-field input:hover,.p4-student-list .p4-filter-field select:hover{border-color:#bdbfbf}
.p4-student-list .p4-filter-field input:focus,.p4-student-list .p4-filter-field select:focus{border-color:#8c7700;outline:2px solid rgba(242,195,0,.22);outline-offset:1px}
.p4-search-input{position:relative}
.p4-search-input svg{position:absolute;top:13px;left:14px;pointer-events:none;color:#85888b}
.p4-student-list .p4-filter-field .p4-search-input input{padding-left:43px}
.p4-student-list .p4-filter-field select{cursor:pointer;padding-right:29px}
.p4-filter-actions{display:flex;align-items:center;gap:12px;min-height:45px;white-space:nowrap}
.p4-student-list .p4-filter-submit{height:45px;min-height:45px;padding:0 22px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;gap:20px;font-size:11px;font-weight:800;letter-spacing:.15px}
.p4-filter-submit span{font-size:16px;line-height:1}
.p4-student-list .p4-clear{font-size:11px;font-weight:800;color:#6e7176!important;text-decoration:none;border-bottom:1px solid #c7c7c7;line-height:24px}
.p4-student-list .p4-clear:hover{color:#111114!important;border-color:#111114}
.p4-student-list .p4-results{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 28px;background:#fff;color:#696c70;font-size:11px;border-bottom:0}
.p4-results-count{display:inline-flex;align-items:center;gap:10px;font-weight:800;color:#383a3f}
.p4-results-dot{width:7px;height:7px;border-radius:50%;background:#dfb500;display:inline-block}
.p4-results-hint{font-size:10px;color:#93969b}
@media(max-width:1140px){.p4-filter-grid{grid-template-columns:minmax(200px,1.5fr) minmax(125px,1fr) minmax(125px,1fr)}.p4-filter-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:820px){.p4-filter-grid{grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr))}.p4-filter-actions{grid-column:1/-1}}
@media(max-width:620px){.p4-student-list .p4-filters{padding:22px 19px}.p4-filter-intro{gap:6px;flex-direction:column}.p4-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.p4-filter-field-search{grid-column:1/-1}.p4-filter-actions{grid-column:1/-1}.p4-student-list .p4-filter-submit{flex:1;max-width:260px}.p4-student-list .p4-results{padding:13px 19px}}
@media(max-width:380px){.p4-filter-grid{grid-template-columns:1fr}.p4-filter-field-search,.p4-filter-actions{grid-column:auto}.p4-student-list .p4-filter-submit{max-width:none}}
.p4-form-card{padding:27px 28px}
.p4-form{display:flex;flex-direction:column;gap:19px}
.p4-form label:not(.p4-check){display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:800;color:#43464d;line-height:1.45}
.p4-form input:not([type=checkbox]),.p4-form select{width:100%;min-width:0;height:46px;border-radius:4px;border:1px solid #dfe0e2;background:#fff;padding:0 13px;color:#25262a;font-size:14px;font-weight:500;letter-spacing:0}
.p4-form input:focus,.p4-form select:focus{border-color:#a58b00}
.p4-form input[readonly]{background:#f8f8f8}
.p4-form label em{font-style:normal;color:#a96a08}
/* Keep label copy and required (*) marker on the same baseline. Inputs remain below. */
.p4-form .p4-field-label{display:inline;line-height:1.5;min-width:0}
.p4-form .p4-field-label em{display:inline!important;white-space:nowrap;font-style:normal;color:#ad6200;margin-left:2px;vertical-align:baseline}
.p4-form .p4-field-label .p4-optional{display:inline;white-space:nowrap}

.p4-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.p4-field-note{display:flex;align-items:center;color:#878a8e;font-size:11px;line-height:1.7}
.p4-form-section{font-size:10px;letter-spacing:1.4px;font-weight:800;margin-top:9px;padding-top:22px;border-top:1px solid #ececed}
.p4-form-actions{display:flex;gap:10px;flex-wrap:wrap;padding-top:8px}
.p4-help{color:#83868b;font-size:12px;line-height:1.75;margin:0 0 20px}
.p4-form .p4-help{margin:0}
.p4-optional{font-size:10px;color:#8f9296;font-weight:600}
.p4-id-chip{display:inline-flex;align-items:center;background:#f6f4e8;border:1px solid #eee2a2;padding:9px 12px;font-size:10px;font-weight:800;white-space:nowrap}
.p4-summary-row{display:flex;align-items:center;flex-wrap:wrap;gap:15px 24px;padding:0 0 25px;color:#5d6167;font-size:11px}
.p4-summary-row strong{color:#202126}
.p4-grid-form{grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr)}
.p4-grid-form>div>.p4-card{margin-bottom:20px}
.p4-linked-row{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--p4-line);padding:15px 0}
.p4-linked-row strong{font-size:11px}
.p4-linked-row small{display:block;margin-top:5px;font-size:10px;color:#777b7f;overflow-wrap:anywhere}
.p4-mini-button{background:none;border:none;padding:6px 0;color:#645417;font-size:10px;font-weight:800;cursor:pointer;text-decoration:underline}
.p4-mini-button:hover{color:#000}
.p4-link-form{border-top:1px solid var(--p4-line);padding-top:21px}
.p4-link-form .p4-button{align-self:flex-start}
.p4-detail-row{display:flex;justify-content:space-between;gap:15px;padding:15px 0;border-bottom:1px solid #ececee;font-size:11px}
.p4-detail-row:last-child{border-bottom:0}
.p4-detail-row>span{color:#7c7e83}
.p4-detail-row>strong{text-align:right;overflow-wrap:anywhere}
.p4-check{display:inline-flex;align-items:center;gap:8px;font-size:10px;font-weight:600;color:#65676b;cursor:pointer}
.p4-check input{width:15px;height:15px;accent-color:#d2a900}
.p4-check-spaced{margin-top:3px}
.p4-notice{padding:16px 21px;margin:0 0 22px;border:1px solid #d6e9da;border-left:4px solid #2c8c52;background:#f1f8f2;color:#235e39;font-size:12px;line-height:1.6}
.p4-notice.is-error{background:#fff4f2;border-color:#f0d4d0;border-left-color:#b54c41;color:#85443b}
.p4-member-hero{min-height:162px;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:30px 34px;background:var(--p4-black);color:#fff;border-radius:6px;margin-bottom:22px}
.p4-member-hero h2{font:400 clamp(23px,2.4vw,34px) var(--p4-display);text-transform:uppercase;margin:10px 0}
.p4-member-hero p{font-size:12px;color:#d1d1d3;margin:0}
.p4-member-code{font-size:12px;letter-spacing:1px;font-weight:800;border:1px solid #89898a;padding:13px;white-space:nowrap}
.p4-member-metrics .p4-metric{min-height:175px}
.p4-member-metrics .p4-metric-value{font-size:clamp(17px,1.6vw,25px);letter-spacing:-.4px}
.p4-welcome-card{padding:32px 34px}
.p4-welcome-card p{font-size:14px;color:#767980;line-height:1.85;max-width:720px;margin:15px 0 0}
.p4-child-switch{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 22px}
.p4-child-switch>span{font-size:9px;font-weight:800;letter-spacing:1.4px;margin-right:8px}
.p4-child-switch a{padding:9px 13px;border:1px solid #dedede;background:#fff;border-radius:3px;font-size:10px;font-weight:800}
.p4-child-switch a.is-current{background:#111114;color:#f2c300;border-color:#111114}
.p4-redirect{margin:15vh auto;padding:30px;max-width:560px;text-align:center;font-family:var(--p4-ui)}
.p4-redirect a{font-weight:800;text-decoration:underline!important}
/* SIGN-IN */
.p4-auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:#fff}
.p4-auth-brand{background:#111114;color:#fff;padding:clamp(45px,6vw,105px) clamp(34px,6.4vw,115px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-height:100vh}
.p4-auth-logo{width:clamp(180px,21vw,300px);height:clamp(135px,18vw,240px);object-fit:contain;object-position:left;margin-bottom:35px}
.p4-auth-brand h1{font:400 clamp(34px,3.9vw,60px)/1.12 var(--p4-display);letter-spacing:-1.4px;margin:18px 0 25px}
.p4-auth-brand p{font:400 clamp(16px,1.7vw,21px)/1.55 var(--p4-serif);color:#c8c8cc;max-width:480px;margin:0 0 55px}
.p4-auth-bullet{display:flex;gap:19px;align-items:center;font-size:11px;font-weight:700;color:#d8d8da;border-top:1px solid #343437;padding:15px 0;width:100%;max-width:420px}
.p4-auth-bullet span{font:400 14px var(--p4-display);color:var(--p4-gold)}
.p4-auth-panel{display:flex;align-items:center;justify-content:center;padding:55px clamp(24px,5vw,90px);min-width:0}
.p4-auth-card{width:100%;max-width:440px}
.p4-auth-card h2{font:400 clamp(29px,3.2vw,43px)/1.1 var(--p4-display);margin:15px 0 13px;letter-spacing:-.8px}
.p4-subtitle{color:#7d8084;font-size:13px;line-height:1.7;margin:0 0 32px}
.p4-auth-card .p4-form{gap:19px}
.p4-auth-card .p4-form label:not(.p4-check){font-size:11px}
.p4-auth-card .p4-form input:not([type=checkbox]){height:51px}
.p4-auth-card .p4-button-fill{width:100%;margin-top:6px;min-height:52px}
.p4-form-between{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}
.p4-form-between a{font-size:10px;font-weight:800;border-bottom:1px solid #b4a24a;padding-bottom:4px}
.p4-auth-footer{font-size:11px;line-height:1.8;color:#89898e;margin-top:35px;padding-top:25px;border-top:1px solid #ebebed}
.p4-auth-footer strong{color:#35363a}
.p4-auth-logged{max-width:400px;margin:20vh auto;font-size:13px;display:flex;flex-direction:column;gap:22px}
.p4-backlink{display:inline-block;margin-top:25px;font-size:11px;font-weight:800}
.p4-menu-toggle{display:none;width:40px;height:40px;align-items:center;justify-content:center;flex-direction:column;gap:5px;background:transparent;border:0;cursor:pointer;padding:8px;flex:0 0 40px}
.p4-menu-toggle span{height:2px;width:21px;background:var(--p4-black);display:block}
@media(max-width:1350px){.p4-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.p4-main{padding-left:35px;padding-right:35px}.p4-sidebar{flex-basis:238px;width:238px}}
@media(max-width:1080px){.p4-grid-two,.p4-grid-form{grid-template-columns:1fr}.p4-grid-form>div>.p4-card{margin-bottom:20px}.p4-topbar{padding:0 26px}.p4-main{padding:42px 25px 75px}}
@media(max-width:820px){.p4-topbar{height:76px;padding:0 18px}.p4-layout{min-height:calc(100vh - 76px)}.p4-menu-toggle{display:flex}.p4-topbar-start{gap:10px}.p4-header-logo{width:85px;height:60px}.p4-topbar-title{font-size:9px;letter-spacing:1px}.p4-topbar-title strong{font-size:10px}.p4-topbar-divider{height:28px}.p4-topbar-role{display:none}.p4-sidebar{position:fixed;left:0;top:76px;bottom:0;z-index:60;transform:translateX(-110%);transition:transform .2s ease;overflow-y:auto;min-height:0;box-shadow:8px 0 22px rgba(0,0,0,.14)}.p4-app.is-menu-open .p4-sidebar{transform:translateX(0)}.p4-app.is-menu-open .p4-sidebar-scrim{display:block;position:fixed;inset:76px 0 0;background:rgba(0,0,0,.45);z-index:50}.p4-main{padding:34px 20px 65px}.p4-auth-page{grid-template-columns:1fr}.p4-auth-brand{min-height:0;padding:42px 35px}.p4-auth-logo{height:95px;width:150px;margin-bottom:15px}.p4-auth-brand h1{font-size:32px;margin:12px 0}.p4-auth-brand p{margin:0;font-size:16px}.p4-auth-bullet{display:none}.p4-auth-panel{padding:50px 25px;min-height:490px}}
@media(max-width:580px){.p4-heading{align-items:flex-start;flex-direction:column;gap:16px}.p4-heading h1{font-size:27px}.p4-metrics{gap:10px}.p4-metric{padding:16px}.p4-metric-value{font-size:22px}.p4-metric-top{font-size:8px}.p4-metric-note{font-size:10px}.p4-card{padding:20px}.p4-card-table{padding:0}.p4-card-table>.p4-card-head{padding:21px}.p4-table td,.p4-table th{padding:14px 19px}.p4-field-grid{grid-template-columns:1fr;gap:18px}.p4-card h2{font-size:16px}.p4-topbar-end{gap:10px}.p4-signout{font-size:10px}.p4-topbar-title{display:none}.p4-topbar-divider{display:none}.p4-member-hero{padding:24px;align-items:flex-start;flex-direction:column}.p4-welcome-card{padding:24px}.p4-detail-row{font-size:10px}.p4-auth-brand{padding:32px 24px}.p4-auth-brand h1{font-size:28px}.p4-auth-panel{padding:40px 23px}.p4-auth-card h2{font-size:31px}}
@media(prefers-reduced-motion:reduce){.p4-button,.p4-nav-item,.p4-sidebar{transition:none}}
.p4-audit-details{margin-top:8px;font-size:10px;color:#696b71;white-space:normal;min-width:220px;max-width:420px}
.p4-audit-details summary{cursor:pointer;font-weight:800;color:#755d00;padding:4px 0}
.p4-audit-details>div{padding:5px 0;border-top:1px solid #ececec;overflow-wrap:anywhere}
.p4-audit-details strong{font-size:10px}

/* V0.1.2 WEEKLY CLASS TIMETABLE */
.p4-timetable-import{background:#161619;color:#fff;border-left:5px solid var(--p4-gold);padding:22px 27px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap}
.p4-timetable-import .p4-eyebrow{color:var(--p4-gold);margin-bottom:7px}
.p4-timetable-import strong{font-size:17px;font-weight:800}
.p4-timetable-import p{max-width:700px;font-size:12px;color:#cecfd1;line-height:1.6;margin:6px 0 0}
.p4-timetable-import .p4-button{background:var(--p4-gold);color:#111114!important;white-space:nowrap}
.p4-timetable-clubs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start;margin-bottom:24px}
.p4-timetable-club{padding:0;overflow:hidden}
.p4-timetable-club-head{padding:27px 28px 24px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #ececed}
.p4-timetable-club-head h2{font-size:22px;margin:7px 0 0}
.p4-session-total{font-size:10px;font-weight:800;background:#f7f1ce;color:#68530d;padding:8px 12px;border-radius:2px;white-space:nowrap}
.p4-timetable-empty{padding:28px;color:#75787d;font-size:12px}
.p4-timetable-day{padding:0 28px 10px}
.p4-timetable-day-head{color:#111114;font-size:11px;letter-spacing:1.5px;font-weight:800;text-transform:uppercase;border-bottom:2px solid var(--p4-gold);padding:22px 0 11px;display:flex;justify-content:space-between;align-items:center;gap:15px}
.p4-timetable-day-head span{color:#898b90;font-size:9px;font-weight:700;letter-spacing:0;text-transform:none}
.p4-timetable-session{display:grid;grid-template-columns:104px minmax(0,1fr) auto;gap:14px;align-items:center;padding:18px 0;border-bottom:1px solid #eeeeef}
.p4-timetable-session:last-child{border-bottom:0}
.p4-timetable-time{color:#111114;font-weight:800;font-size:11px;white-space:nowrap;letter-spacing:-.2px}
.p4-timetable-session-main{min-width:0;overflow-wrap:anywhere}
.p4-timetable-session-main strong{font-size:12px;line-height:1.5;display:block;color:#191a1c}
.p4-timetable-session-main small{font-size:10px;line-height:1.5;display:block;color:#6b6d72;margin-top:4px}
.p4-timetable-session-main .p4-timetable-note{font-style:italic;color:#888b90}
.p4-timetable-edit{font-size:10px;font-weight:800;color:#6d580a!important;white-space:nowrap;text-decoration:none!important}
.p4-timetable-edit:hover{text-decoration:underline!important}
.p4-class-editor{scroll-margin-top:28px}
.p4-class-editor>.p4-card-head{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.p4-timetable-time-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}
@media(max-width:1290px){.p4-timetable-clubs{grid-template-columns:1fr}.p4-timetable-session{grid-template-columns:120px minmax(0,1fr) auto}}
@media(max-width:700px){.p4-timetable-import{padding:21px 20px}.p4-timetable-club-head{padding:22px 19px}.p4-timetable-day{padding:0 19px 7px}.p4-timetable-session{grid-template-columns:87px minmax(0,1fr) auto;gap:9px}.p4-timetable-time{font-size:10px}.p4-timetable-time-fields{grid-template-columns:1fr;gap:16px}}
@media(max-width:390px){.p4-timetable-session{grid-template-columns:1fr auto}.p4-timetable-time{grid-column:1/-1;padding-bottom:0}.p4-timetable-session-main{grid-column:1}.p4-timetable-edit{grid-column:2}}

/* V0.2.0 / PUBLIC REGISTRATION, APPLICATION REVIEW & PARENT ACCOUNTS */
.p4-reg-page{grid-template-columns:minmax(320px,.75fr) minmax(0,1.25fr)}
.p4-reg-page .p4-auth-brand{position:sticky;top:0;height:auto;min-height:100vh;align-self:start;overflow:visible;padding-left:clamp(32px,4vw,80px);padding-right:clamp(32px,4vw,80px)}
.p4-reg-page .p4-auth-panel{align-items:flex-start;padding:clamp(40px,4.5vw,75px) clamp(25px,4.5vw,80px)}
.p4-reg-card{max-width:720px;width:100%}
.p4-reg-card h2{font-size:clamp(28px,3vw,42px);line-height:1.1}
.p4-reg-card .p4-auth-footer a{color:#111114!important;text-decoration:underline!important;text-underline-offset:3px}
.p4-reg-back-dark{color:#f2c300!important;font-size:12px;font-weight:800;margin-top:30px;border-bottom:1px solid #f2c300;padding-bottom:7px}
.p4-choice-stack{display:grid;gap:14px;margin:28px 0 8px}
.p4-choice{display:flex;align-items:flex-start;gap:18px;padding:25px 23px;background:#fff;border:1px solid #dfe0e2;border-radius:6px;transition:border-color .15s,box-shadow .15s}
.p4-choice:hover{border-color:#ab9000;box-shadow:0 6px 24px rgba(0,0,0,.06)}
.p4-choice-index{font:24px/1 var(--p4-display);color:#bea41e;padding-top:2px}
.p4-choice>span:nth-child(2){flex:1;min-width:0}
.p4-choice strong{display:block;font:17px/1.35 var(--p4-display);text-transform:uppercase;margin-bottom:7px}
.p4-choice small{display:block;color:#777a7e;font:500 12px/1.75 var(--p4-ui)}
.p4-choice>span:last-child{font-size:22px}
.p4-registration-form{padding-top:3px}
.p4-registration-form .p4-form-section-title,.p4-reg-review .p4-form-section-title{margin:16px 0 2px;padding-top:25px;border-top:1px solid #e6e6e6;color:#161619;font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;line-height:1.5}
.p4-registration-form .p4-field-grid{gap:17px;align-items:start}
.p4-registration-form label{min-width:0}
.p4-registration-form textarea{font:500 14px/1.5 var(--p4-ui);width:100%;min-width:0;border:1px solid #dfe0e2;border-radius:4px;padding:12px 13px;resize:vertical;color:#25262a;background:#fff}
.p4-registration-form select,.p4-registration-form input,.p4-registration-form textarea{max-width:100%}
.p4-registration-form .p4-help{font-size:12px;line-height:1.65}
.p4-reg-agreement{display:flex!important;align-items:flex-start!important;gap:11px!important;line-height:1.7!important;font-size:12px!important;font-weight:600!important;color:#50535a!important}
.p4-reg-agreement input{margin-top:4px!important;flex:0 0 17px;width:17px;height:17px;accent-color:#a28a00}
.p4-registration-form .p4-button-fill{width:100%;white-space:normal;min-height:55px}
.p4-sensitive-label{display:inline-flex;margin-left:10px;font:800 9px var(--p4-ui);letter-spacing:1px;background:#f4eecf;color:#675500;padding:5px 7px;border-radius:3px}
.p4-reg-fieldset{border:1px solid #e7e7e9;border-radius:5px;margin:0;padding:18px}
.p4-reg-fieldset legend{font-size:11px;font-weight:800;padding:0 7px;color:#4b4d54}
.p4-medical-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.p4-medical-grid .p4-check{display:flex!important;font-size:12px!important;align-items:center!important;gap:10px!important}
.p4-medical-grid input{width:17px;height:17px;flex:0 0 17px}
.p4-inline-info{background:#f8f6eb;border-left:4px solid var(--p4-gold);padding:18px 20px;font-size:12px;line-height:1.7;color:#504c35}
.p4-reg-admin-intro{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;background:#18181b;color:#fff;padding:22px 27px;margin-bottom:22px;border-left:4px solid var(--p4-gold);border-radius:4px}
.p4-reg-admin-intro strong{font:18px var(--p4-display)}
.p4-reg-admin-intro span{font-size:12px;color:#cccdd0;max-width:590px;line-height:1.6}
.p4-reg-settings{margin-top:22px}
.p4-reg-settings .p4-form{max-width:680px}
.p4-reg-settings .p4-help{font-size:12px;line-height:1.8;margin:0 0 18px}
.p4-reg-review{margin-top:20px;grid-template-columns:minmax(0,1fr) minmax(300px,.75fr)}
.p4-reg-review .p4-detail-row{align-items:flex-start}
.p4-reg-review .p4-detail-row strong{max-width:65%;text-align:right;white-space:pre-wrap;word-break:break-word}
.p4-reg-review .p4-detail-row span{max-width:35%}
.p4-reg-review .p4-form-card{position:sticky;top:20px}
.p4-reg-review .p4-form-card .p4-form{margin:15px 0 23px}
.p4-reg-matches{background:#f8f8f7;padding:17px 20px;border-radius:4px;font-size:12px;line-height:1.5;margin:15px 0}
.p4-reg-matches p{margin:9px 0 0;color:#6b6e72}
.p4-reg-reject{padding-top:22px;border-top:1px solid #e6e6e6}
.p4-reg-reject .p4-button{width:100%}
.p4-reg-member-status{margin-bottom:22px}
.p4-reg-member-status .p4-detail-row{gap:20px}
.p4-reg-member-status .p4-help{margin-top:17px}
.p4-verification-resend{margin-top:16px}
.p4-member-add{margin:0 0 24px}
.p4-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.p4-auth-card .p4-notice ul{margin:10px 0;padding-left:25px}
.p4-auth-card .p4-notice li{margin:5px 0}
@media(max-width:1100px){.p4-reg-page{grid-template-columns:minmax(250px,.65fr) minmax(0,1.35fr)}.p4-reg-page .p4-auth-brand{padding:36px 30px}.p4-reg-page .p4-auth-panel{padding:40px 27px}.p4-reg-review{grid-template-columns:1fr}.p4-reg-review .p4-form-card{position:static}}
@media(max-width:820px){.p4-reg-page{grid-template-columns:1fr}.p4-reg-page .p4-auth-brand{position:static;height:auto;min-height:auto;max-height:none;padding:32px 26px}.p4-reg-page .p4-auth-brand p{max-width:620px}.p4-reg-page .p4-auth-panel{padding:40px 24px;min-height:0}.p4-reg-page .p4-auth-logo{height:90px;width:150px}.p4-reg-card{max-width:780px}.p4-reg-back-dark{margin-top:25px}}
@media(max-width:580px){.p4-reg-page .p4-auth-panel{padding:35px 20px}.p4-reg-page .p4-auth-brand{padding:27px 21px}.p4-reg-card h2{font-size:29px}.p4-medical-grid,.p4-registration-form .p4-field-grid{grid-template-columns:1fr}.p4-choice{padding:20px 16px;gap:12px}.p4-choice-index{font-size:21px}.p4-choice strong{font-size:15px}.p4-reg-admin-intro{padding:18px}.p4-reg-review .p4-detail-row{flex-direction:column;gap:7px}.p4-reg-review .p4-detail-row span,.p4-reg-review .p4-detail-row strong{max-width:none;text-align:left}}
.p4-reg-legal-link{display:inline-flex;align-items:center;font-size:12px;font-weight:800!important;color:#735e00!important;text-decoration:underline!important;text-underline-offset:3px}

/* V0.2.1: UK date labels, no nested registration scroll, clear owner matching paths. */
.p4-date-hint{display:block;color:#7a7d83;font-size:10px;font-weight:600;line-height:1.55;margin-top:2px}
.p4-reg-match-choices{border:1px solid #e4e4e5;border-radius:6px;padding:14px;margin:2px 0 0;display:grid;gap:8px}
.p4-reg-match-choices legend{font-size:11px;font-weight:800;padding:0 7px;color:#383a3f}
.p4-reg-match-choice{display:flex!important;flex-direction:row!important;align-items:flex-start!important;gap:12px!important;padding:14px!important;background:#fbfbfa;border:1px solid #e8e8e7;border-radius:5px;cursor:pointer}
.p4-reg-match-choice:has(input:checked){background:#fffbea;border-color:#e3c340}
.p4-reg-match-choice input[type=radio]{flex:0 0 18px;width:18px;height:18px;min-width:18px;margin:1px 0 0;padding:0;accent-color:#a88800}
.p4-reg-match-choice span{display:block;flex:1;min-width:0}
.p4-reg-match-choice strong{font-size:12px;font-weight:800;display:block;margin-bottom:5px}
.p4-reg-match-choice small{font-size:10px;color:#75777d;font-weight:600;line-height:1.55;display:block}
.p4-reg-record-panel{display:grid;gap:18px;padding:15px 0}
.p4-reg-record-panel[hidden]{display:none!important}
.p4-reg-review .p4-button:disabled{background:#e9e9e9;border-color:#e9e9e9;color:#606369!important;cursor:not-allowed;transform:none;opacity:1}
@media(min-width:821px) and (max-height:750px){.p4-reg-page .p4-auth-brand{padding-top:30px;padding-bottom:26px}.p4-reg-page .p4-auth-logo{height:110px;margin-bottom:15px}.p4-reg-page .p4-auth-brand h1{font-size:clamp(34px,3.1vw,49px);margin:13px 0 15px}.p4-reg-page .p4-auth-brand p{margin-bottom:24px}.p4-reg-page .p4-auth-bullet{padding:11px 0}}

/* V0.2.2: Testing-only owner email verification exception. */
.p4-testing-controls{padding:26px 28px;margin-bottom:23px;border-left:4px solid var(--p4-gold)}
.p4-testing-controls .p4-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.p4-testing-controls .p4-help{margin:12px 0 18px;font-size:12px;line-height:1.75;color:#50535a;max-width:830px}
.p4-testing-controls-form{gap:14px!important;max-width:700px}
.p4-testing-controls-form .p4-button{align-self:flex-start}
.p4-testing-status{display:inline-block;font-size:10px;font-weight:800;text-transform:uppercase;border-radius:4px;padding:8px 11px;letter-spacing:.7px}
.p4-testing-status.is-on{background:#fff0ce;color:#775500}
.p4-testing-status.is-off{background:#eef0f2;color:#666b73}
.p4-testing-warning{font-size:11px;font-weight:700;line-height:1.65;color:#874634;margin-top:17px;background:#fff7f2;border-left:3px solid #cc6f3f;padding:11px 14px}
.p4-manual-verify{margin:20px 0 24px;padding:19px 18px 20px;background:#fffdf6;border:1px solid #efdf9d;border-radius:5px;display:grid;gap:12px}
.p4-manual-verify h3{font-size:16px;line-height:1.25;margin:0;font-family:var(--p4-display)}
.p4-manual-verify .p4-help{font-size:12px;line-height:1.7;margin:0}
.p4-manual-verify .p4-inline-info{margin:0}
.p4-manual-verify .p4-inline-info a{color:#3f351a;text-decoration:underline}
.p4-manual-verify-form{gap:16px!important}
.p4-manual-verify-form .p4-button{width:100%;white-space:normal}
@media(max-width:600px){.p4-testing-controls{padding:18px 17px}.p4-testing-controls .p4-card-head{align-items:flex-start}.p4-manual-verify{padding:15px 13px}}

/* ========================================================
   V0.3.0 | LICENCE MANAGEMENT, RENEWAL QUEUE AND FILES
======================================================== */
.p4-licence-metrics{margin-bottom:24px}
.p4-licence-list{margin-bottom:22px}
.p4-licence-filters{display:grid;grid-template-columns:minmax(200px,2fr) minmax(145px,1fr) minmax(190px,1.2fr) auto;align-items:end;gap:15px;padding:25px 28px;background:#fbfbf9;border-bottom:1px solid var(--p4-line)}
.p4-licence-filters label{display:flex;flex-direction:column;gap:9px;min-width:0}
.p4-licence-filters label>span{font:800 9px/1.3 var(--p4-ui);letter-spacing:1.1px;color:#62656b}
.p4-licence-filters input,.p4-licence-filters select{height:45px;width:100%;min-width:0;border:1px solid #dcdedc;border-radius:5px;background:#fff;color:#25262a;font-size:12px;font-weight:600;padding:0 12px}
.p4-licence-filters input:focus,.p4-licence-filters select:focus{outline:2px solid rgba(242,195,0,.25);border-color:#8c7700}
.p4-licence-filter-actions{display:flex;align-items:center;gap:15px;white-space:nowrap}
.p4-licence-filter-actions .p4-button{height:45px;min-height:45px}
.p4-licence-results{font-size:11px;color:#71757a;padding:14px 28px;border-bottom:1px solid #f1f1f1}
.p4-licence-pagination{padding:20px 28px;display:flex;gap:9px;flex-wrap:wrap;border-top:1px solid var(--p4-line)}
.p4-licence-pagination a{min-width:33px;height:33px;border-radius:4px;border:1px solid #d7d7da;display:grid;place-items:center;font-size:11px;font-weight:800}
.p4-licence-pagination a.is-current{background:var(--p4-black);color:#fff;border-color:var(--p4-black)}
.p4-licence-settings{max-width:1050px}
.p4-licence-settings .p4-form textarea{width:100%;font-family:var(--p4-ui);font-size:12px;line-height:1.7;padding:12px 14px;border:1px solid #dfe0e2;border-radius:4px;resize:vertical;min-height:185px}
.p4-licence-settings .p4-form code{font-size:11px;overflow-wrap:anywhere}
.p4-licence-person{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin:13px 0 25px;border-left:4px solid var(--p4-gold);background:#fff;padding:20px 24px;border-radius:0 6px 6px 0}
.p4-licence-person h2{font:400 clamp(19px,2vw,26px)/1.3 var(--p4-display);margin:6px 0}
.p4-licence-person p{font-size:11px;color:#777b80;margin:0}
.p4-licence-person .p4-status{flex-shrink:0}
.p4-licence-preview{background:#faf8ed;border-left:3px solid #d6b300;padding:14px 17px;font-size:12px;line-height:2;margin:0;color:#4b4b49}
.p4-licence-preview strong{font-weight:800;color:#171719}
.p4-licence-settings .p4-card-head,.p4-licence-member-card .p4-card-head{flex-wrap:wrap}
.p4-licence-link{margin-top:18px;overflow-wrap:anywhere}
.p4-licence-link a{color:#655100!important;text-decoration:underline!important}
.p4-licence-history{display:flex;flex-direction:column;gap:8px;padding:15px 0;border-bottom:1px solid var(--p4-line);font-size:11px}
.p4-licence-history:last-child{border-bottom:0}
.p4-licence-history>strong{font-size:12px}
.p4-licence-history>span{align-self:flex-start;background:#fdf4d6;padding:6px 8px;border-radius:3px;font-size:9px;font-weight:800;text-transform:uppercase}
.p4-licence-history>small{font-size:10px;color:#72757b;line-height:1.6;overflow-wrap:anywhere}
.p4-licence-document{display:grid;gap:4px;border-bottom:1px solid var(--p4-line);padding:11px 0 16px;margin-bottom:13px}
.p4-licence-document a{color:#735800!important;font-size:11px;font-weight:800;text-decoration:underline!important;overflow-wrap:anywhere}
.p4-licence-document small{font-size:10px;color:#80838a}
.p4-licence-member-card{margin:0 0 22px}
.p4-licence-member-card .p4-card-head{margin-bottom:10px}
.p4-licence-alert{margin-top:20px;background:#fff5df;border-left:3px solid #b5901a;padding:13px 16px;font-size:11px;line-height:1.7}
.p4-licence-settings .p4-field-grid{grid-template-columns:minmax(0,1fr)}
.p4-licence-settings .p4-form .p4-button,.p4-licence-member-card .p4-button{align-self:flex-start}
.p4-licence-filters .p4-button{white-space:nowrap}
@media(max-width:1150px){.p4-licence-filters{grid-template-columns:minmax(200px,1.6fr) minmax(140px,1fr) minmax(150px,1fr)}.p4-licence-filter-actions{grid-column:1/-1}}
@media(max-width:700px){.p4-licence-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:20px}.p4-licence-filters label:first-child{grid-column:1/-1}.p4-licence-results{padding:12px 20px}.p4-licence-filter-actions{grid-column:1/-1}.p4-licence-person{padding:18px}.p4-licence-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.p4-licence-filters{grid-template-columns:1fr}.p4-licence-filters label:first-child,.p4-licence-filter-actions{grid-column:auto}.p4-licence-metrics{grid-template-columns:1fr}}


/* V0.3.1: easier-to-read licence filters, owner actions and file picker. */
.p4-licence-list .p4-licence-filters{display:block;padding:25px 28px 23px;background:#fbfbf9}
.p4-licence-filter-heading{display:flex;align-items:baseline;gap:13px;flex-wrap:wrap;margin-bottom:17px}
.p4-licence-filter-eyebrow{font-size:9px;letter-spacing:1.55px;font-weight:800;color:#8a7600}
.p4-licence-filter-subtitle{font-size:12px;font-weight:700;color:#33343a}
.p4-licence-filter-grid{display:grid;grid-template-columns:minmax(220px,2fr) minmax(140px,1fr) minmax(180px,1.2fr) auto;align-items:end;gap:14px}
.p4-licence-filters .p4-licence-filter-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.p4-licence-filters .p4-licence-filter-field>span:first-child{font:800 9px/1.3 var(--p4-ui);letter-spacing:1.1px;color:#62656b}
.p4-licence-search-box{display:block;position:relative}
.p4-licence-search-box svg{position:absolute;top:13px;left:13px;color:#85888b;pointer-events:none}
.p4-licence-filters .p4-licence-search-box input{padding-left:42px}
.p4-licence-filters .p4-licence-filter-field input,.p4-licence-filters .p4-licence-filter-field select{height:46px;font:600 12px var(--p4-ui);border:1px solid #dcdedc;border-radius:5px;background:#fff;width:100%;min-width:0;padding:0 12px;box-shadow:0 1px 1px rgba(0,0,0,.01)}
.p4-licence-filters .p4-licence-filter-field select{cursor:pointer;padding-right:28px}
.p4-licence-filters .p4-licence-filter-field input::placeholder{color:#93969b;font-weight:500;opacity:1}
.p4-licence-filters .p4-licence-filter-field input:hover,.p4-licence-filters .p4-licence-filter-field select:hover{border-color:#bcbfc1}
.p4-licence-filter-actions{display:flex;align-items:center;gap:13px;min-height:46px;white-space:nowrap}
.p4-licence-filter-actions .p4-button{min-height:46px;height:46px;padding:0 18px;gap:13px;white-space:nowrap}
.p4-licence-filter-actions .p4-button span{font-size:18px}
.p4-licence-clear{color:#666b70!important;font-size:11px;font-weight:800;text-decoration:none!important;border-bottom:1px solid #bdbfc1;line-height:23px}
.p4-licence-clear:hover{color:#111114!important;border-color:#111114}
.p4-licence-results{background:#fff;font-weight:700}
.p4-renewal-choice-group{border:0;padding:0;min-width:0;margin:0;display:flex;flex-direction:column;gap:9px}
.p4-renewal-choice-group legend{font-size:12px;font-weight:800;color:#35363c;padding:0 0 8px}
.p4-renewal-choice-group>p{margin:0 0 7px}
.p4-form .p4-renewal-choice{display:flex!important;flex-direction:row!important;align-items:flex-start!important;gap:12px!important;padding:15px!important;border:1px solid #e4e4e4;border-radius:5px;background:#fbfbfa;cursor:pointer;font-weight:600!important}
.p4-renewal-choice:has(input:checked){background:#fffbee;border-color:#e3c340}
.p4-form .p4-renewal-choice input[type=radio]{width:18px!important;height:18px!important;min-width:18px;margin:2px 0 0;padding:0;flex:0 0 18px;accent-color:#ad8b00}
.p4-renewal-choice>span{display:block;flex:1;min-width:0}
.p4-renewal-choice strong{display:block;font-size:12px;font-weight:800;color:#22232a;margin-bottom:5px}
.p4-renewal-choice small{display:block;color:#777a80;font-size:11px;font-weight:500;line-height:1.55}
.p4-renewal-manual-confirm{padding:14px 16px;background:#f7f7f4;border-left:3px solid var(--p4-gold);border-radius:0 4px 4px 0}
.p4-renewal-manual-confirm .p4-check{display:flex!important;align-items:flex-start!important;line-height:1.55;font-size:11px}
.p4-renewal-manual-confirm .p4-check input{margin-top:2px;flex:0 0 16px;width:16px;height:16px}
.p4-renewal-email-info{padding:14px 16px;background:#f7f7f4;border-left:3px solid var(--p4-gold);border-radius:0 4px 4px 0}
.p4-renewal-email-info[hidden],.p4-renewal-manual-confirm[hidden]{display:none!important}
.p4-renewal-email-info .p4-help{margin:0}
.p4-licence-inline-alert{font-size:11px;line-height:1.65;color:#6b5316;margin:0}
.p4-licence-inline-alert a{font-weight:800;text-decoration:underline!important}
.p4-renewal-contact-footnote{border-top:1px solid #e8e8e8;padding-top:14px}
.p4-form.p4-licence-upload{gap:16px}
.p4-licence-upload-box{border:1px dashed #c1c3c5;border-radius:8px;background:#fafaf8;text-align:center;padding:23px 18px 20px;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}
.p4-licence-upload-icon{background:#fff2bb;color:#7d6500;border-radius:12px;width:48px;height:48px;display:grid;place-items:center;margin-bottom:1px}
.p4-licence-upload-title{font-size:13px;font-weight:800;color:#22232a}
.p4-licence-upload-subtitle,.p4-licence-upload-help{font-size:11px;line-height:1.5;color:#7a7d84;font-weight:500}
.p4-form .p4-licence-upload-box input[type=file]{height:auto;min-height:51px;display:block;max-width:100%;width:100%;padding:7px;background:#fff;border:1px solid #d9dbdc;border-radius:5px;font:600 11px/1.7 var(--p4-ui);color:#60636b;cursor:pointer;overflow-wrap:anywhere}
.p4-licence-upload-box input[type=file]::file-selector-button{border:1px solid #17171a;background:#17171a;color:#fff;font:800 11px var(--p4-ui);border-radius:4px;padding:11px 15px;cursor:pointer;margin-right:14px;transition:background .15s}
.p4-licence-upload-box input[type=file]::file-selector-button:hover{background:#37373b}
.p4-licence-upload-box input[type=file]:focus-visible{outline:3px solid #897100;outline-offset:3px}
.p4-licence-upload-box:focus-within{border-color:#b59600;background:#fffefa}
.p4-licence-upload-box input[type=file]::file-selector-button:active{background:#594900}
.p4-licence-file-label{margin-bottom:-9px}
@media(max-width:1220px){.p4-licence-filter-grid{grid-template-columns:minmax(215px,1.65fr) minmax(130px,1fr) minmax(150px,1fr)}.p4-licence-filter-actions{grid-column:1/-1}}
@media(max-width:700px){.p4-licence-list .p4-licence-filters{padding:21px 19px}.p4-licence-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.p4-licence-filter-search,.p4-licence-filter-actions{grid-column:1/-1}.p4-licence-filter-heading{flex-direction:column;gap:5px}.p4-licence-filter-actions .p4-button{flex:0 0 auto}}
@media(max-width:450px){.p4-licence-filter-grid{grid-template-columns:1fr}.p4-licence-filter-search,.p4-licence-filter-actions{grid-column:auto}.p4-licence-filter-actions{flex-wrap:wrap}.p4-licence-filter-actions .p4-button{flex:1}.p4-licence-upload-box{padding:20px 12px}}

/* =========================================================
   V0.4.0 SQUARESPACE RECONCILIATION
========================================================= */
.p4-payment-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:23px}
.p4-payment-summary>div{background:#fff;border:1px solid #e5e5e5;border-radius:7px;padding:23px 24px;min-width:0;display:flex;flex-direction:column;gap:8px}
.p4-payment-summary strong{font:400 27px/1.1 var(--p4-display);color:#111114;overflow-wrap:anywhere}
.p4-payment-summary span{font:700 10px/1.4 var(--p4-ui);color:#888b8e;letter-spacing:.5px;text-transform:uppercase}
.p4-payment-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-bottom:22px;align-items:start}
.p4-payment-columns>.p4-card{height:100%}
.p4-payment-columns .p4-form{gap:15px}
.p4-payment-columns .p4-form button{align-self:flex-start}
.p4-payment-columns .p4-form+.p4-form{border-top:1px solid #ededed;margin-top:24px;padding-top:22px}
.p4-payment-review .p4-table{white-space:normal;min-width:1000px}
.p4-payment-review .p4-table td{vertical-align:top;line-height:1.7}
.p4-payment-review .p4-table th{vertical-align:bottom}
.p4-payment-review .p4-table td small{font-size:10px;color:#777c80}
.p4-payment-review .p4-table td a{font-size:10px;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.p4-payment-review .p4-form label,.p4-payment-row-form label{display:flex;gap:7px;align-items:center;font-size:10px;color:#65676b}
.p4-payment-row-form{display:flex;flex-direction:column;gap:8px;min-width:155px;margin-bottom:12px}
.p4-payment-row-form input[type=text]{display:block;width:100%;min-height:38px;padding:8px;border:1px solid #dddfe1;border-radius:4px;font-family:var(--p4-ui);font-size:12px}
.p4-payment-row-form .p4-check{display:flex;align-items:flex-start;line-height:1.45}
.p4-payment-row-form .p4-check input{flex:0 0 16px;margin-top:2px;accent-color:#c7a200}
.p4-payment-row-form .p4-button{align-self:flex-start}
.p4-payment-review .p4-text-button{border:0;background:transparent;color:#686a70;text-decoration:underline;font:700 10px/1.5 var(--p4-ui);cursor:pointer;padding:0}
.p4-payment-review .p4-text-button:hover{color:#111114}
.p4-payment-review .p4-help{margin-top:18px}
.p4-payment-student{margin-bottom:20px}
@media(max-width:930px){.p4-payment-columns{grid-template-columns:1fr}}
@media(max-width:600px){.p4-payment-summary{grid-template-columns:1fr;gap:10px}.p4-payment-summary>div{padding:17px 20px}.p4-payment-summary strong{font-size:22px}}

/* =========================================================
   V0.4.1 CSV-FIRST PAYMENT RECONCILIATION
========================================================= */
.p4-payment-columns-csv>.p4-card{display:flex;flex-direction:column;align-items:stretch}
.p4-payment-steps{margin:3px 0 20px;padding:0;list-style:none;counter-reset:p4-payment-step;display:flex;flex-direction:column;gap:16px}
.p4-payment-steps li{counter-increment:p4-payment-step;display:flex;gap:13px;align-items:flex-start;color:#53565d;font:500 12px/1.65 var(--p4-ui)}
.p4-payment-steps li::before{content:counter(p4-payment-step,decimal-leading-zero);display:flex;align-items:center;justify-content:center;flex:0 0 35px;height:35px;border-radius:5px;background:#fff5cb;color:#8a6c00;font:800 12px/1 var(--p4-ui)}
.p4-payment-steps li strong{font-weight:800;color:#27272c}
.p4-payment-csv-form{gap:16px!important}
.p4-payment-csv-picker{padding:13px;border:1px dashed #bfc1c3;background:#fbfbf8;border-radius:6px}
.p4-form .p4-payment-csv-picker input[type=file]{width:100%;min-width:0;height:auto;min-height:54px;background:#fff;border:1px solid #e0e0dd;padding:8px;border-radius:4px;font:600 12px/1.8 var(--p4-ui);color:#65676e;cursor:pointer}
.p4-payment-csv-picker input[type=file]::file-selector-button{border:0;border-radius:4px;background:#111114;color:#fff;font:800 10px/1.4 var(--p4-ui);padding:13px 18px;margin-right:14px;cursor:pointer;transition:background .16s ease}
.p4-payment-csv-picker input[type=file]::file-selector-button:hover{background:#49432d}
.p4-payment-csv-picker:focus-within{border-color:#a58500;box-shadow:0 0 0 3px rgba(242,195,0,.2)}
.p4-payment-csv-picker>span{display:block;font:600 10px/1.5 var(--p4-ui);color:#96999d;margin:9px 1px 1px}
.p4-payment-future{background:#fff;border:1px solid #e3e3df;border-radius:7px;margin-bottom:22px;overflow:hidden}
.p4-payment-future>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:15px;cursor:pointer;padding:19px 25px;font:800 11px/1.4 var(--p4-ui);color:#303038}
.p4-payment-future>summary::-webkit-details-marker{display:none}
.p4-payment-future>summary:before{content:'+';font-size:20px;line-height:1;color:#9a7b00;margin-right:8px}
.p4-payment-future[open]>summary:before{content:'−'}
.p4-payment-future>summary span{font-size:9px;font-weight:800;color:#7c7f83;background:#f2f2f0;padding:8px 11px;border-radius:4px;white-space:nowrap}
.p4-payment-future-body{padding:5px 23px 23px;border-top:1px solid #e9e9e7}
.p4-payment-future-body>p{font:500 12px/1.7 var(--p4-ui);color:#676b70;margin:17px 2px 18px}
.p4-payment-future-body .p4-payment-columns{margin-bottom:0}
.p4-payment-future-body .p4-card{background:#fafaf9;box-shadow:none}
@media(max-width:620px){.p4-payment-csv-picker input[type=file]::file-selector-button{margin:0 8px 0 0;padding:12px 13px}.p4-payment-future>summary{padding:17px 16px}.p4-payment-future-body{padding:5px 14px 15px}}

/* V0.4.3: A linked paid order can be confirmed without recording a redundant request. */
.p4-linked-renewal{border-top:4px solid var(--p4-gold);margin-bottom:20px}
.p4-linked-renewal .p4-card-head{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.p4-linked-paid-chip{display:inline-flex;background:#e5f4e9;color:#126733;border-radius:4px;padding:7px 9px;font:800 9px var(--p4-ui);letter-spacing:.7px}
.p4-linked-renewal .p4-licence-preview{margin:0;border-radius:2px}
.p4-linked-renewal .p4-check{display:flex!important;flex-direction:row!important;gap:10px;align-items:flex-start;font-weight:600!important;font-size:12px!important;line-height:1.6!important}
.p4-linked-renewal .p4-check input{width:18px;height:18px;flex:0 0 18px;margin-top:1px}
.p4-linked-renewal-warning{font-size:11px;line-height:1.6;color:#7b6619;background:#fff9e8;border-left:3px solid var(--p4-gold);padding:12px;margin:13px 0 0}

/* V0.4.4: Direct, owner-confirmed licence renewal (no CSV needed). */
.p4-quick-renewal{border-top:4px solid var(--p4-gold);margin:0 0 20px}
.p4-quick-renewal .p4-card-head{margin-bottom:12px}
.p4-quick-renewal-dates{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:#f7f7f5;border:1px solid #e9e9e5;border-radius:4px;padding:15px 17px;margin:15px 0}
.p4-quick-renewal-dates>div{display:flex;flex-direction:column;gap:5px}
.p4-quick-renewal-dates small{font-size:10px;letter-spacing:.5px;color:#707079;font-weight:600}
.p4-quick-renewal-dates strong{font-family:var(--p4-ui);font-size:16px;color:var(--p4-black)}
.p4-quick-renewal-dates>span{font-size:22px;color:#c19e00;font-weight:700}
.p4-quick-renewal-form .p4-button{width:100%;white-space:normal;min-height:54px;text-align:center}
.p4-quick-renewal-note{font-size:11px!important;margin:11px 0 0!important}
.p4-quick-renewal-muted{background:#f5f5f3;border-left:3px solid #d6d6d0;padding:13px 15px}
@media(max-width:450px){.p4-quick-renewal-dates{gap:10px;padding:12px}.p4-quick-renewal-dates strong{font-size:14px}}

/* V0.5.0 — Family + student dashboard, same branding as the public site */
.p4-family-actions{display:flex;justify-content:flex-end;margin:-6px 0 20px}
.p4-family-switcher{background:#fff;border:1px solid var(--p4-line);border-radius:7px;margin-bottom:22px;padding:25px 27px}
.p4-family-switcher-heading{margin-bottom:19px}
.p4-family-switcher-heading h2{font:400 clamp(17px,1.7vw,23px)/1.2 var(--p4-display);margin:8px 0 0;color:var(--p4-black)}
.p4-family-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:11px}
.p4-family-profile{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid #dfdfe1;border-radius:5px;background:#fbfbfb;min-width:0;transition:background .16s,border .16s,box-shadow .16s}
.p4-family-profile:hover{background:#fff9dd;border-color:#b79700}
.p4-family-profile.is-current{background:#fff8d5;border-color:#b99708;box-shadow:inset 3px 0 #f2c300}
.p4-family-profile-icon{flex:0 0 38px;width:38px;height:38px;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#111114;background:#f2c300}
.p4-family-profile-info{min-width:0;display:flex;flex-direction:column;gap:4px;flex:1}
.p4-family-profile-info small{font-size:8px;letter-spacing:1.1px;font-weight:800;color:#857000}
.p4-family-profile-info strong{font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.p4-family-profile-info>span{font-size:10px;color:#71747a;line-height:1.45}
.p4-family-profile-arrow{font-size:18px;font-weight:800;align-self:flex-start}
.p4-profile-menu{position:relative;min-width:145px;z-index:65}
.p4-profile-menu>summary{cursor:pointer;display:flex;flex-direction:column;gap:4px;position:relative;padding:7px 19px 7px 9px;border:1px solid rgba(17,17,20,.25);border-radius:4px;list-style:none;max-width:215px}
.p4-profile-menu>summary::-webkit-details-marker{display:none}
.p4-profile-menu>summary>strong{font-size:10px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.p4-profile-menu>summary>span:last-child{position:absolute;right:6px;top:12px;font-weight:800}
.p4-profile-menu-label{font-size:8px;letter-spacing:1px;font-weight:800}
.p4-profile-menu-panel{position:absolute;top:calc(100% + 8px);right:0;min-width:230px;max-height:65vh;overflow-y:auto;background:white;border:1px solid #d5d5d7;box-shadow:0 10px 30px rgba(0,0,0,.12);border-radius:5px;padding:6px;color:#111114}
.p4-profile-menu-panel a{display:flex;flex-direction:column;gap:4px;padding:11px 12px;border-radius:3px}
.p4-profile-menu-panel a:hover,.p4-profile-menu-panel a[aria-current=page]{background:#fff7cb}
.p4-profile-menu-panel a strong{font-size:11px}
.p4-profile-menu-panel a small{font-size:9px;color:#73767b}
@media(max-width:680px){.p4-family-actions{justify-content:stretch}.p4-family-actions .p4-button{white-space:normal;width:100%}.p4-family-switcher{padding:19px}.p4-profile-menu{min-width:0}.p4-profile-menu>summary{max-width:145px}.p4-profile-menu>summary>strong{max-width:118px}.p4-topbar-end{gap:8px}.p4-avatar{display:none}.p4-profile-menu-panel{right:-28px;min-width:225px}}

/* V0.6.1 | P4TKD attendance: premium, practical, phone-first visual system. */
.p4-page-heading{margin:0 0 28px}
.p4-page-heading h1{font:400 clamp(25px,2.7vw,38px)/1.1 var(--p4-display);letter-spacing:-.7px;margin:9px 0 12px;overflow-wrap:anywhere}
.p4-page-heading p{font-size:13px;line-height:1.65;color:#6b6d73;max-width:700px;margin:0}
.p4-attendance-card,.p4-attendance-roster{margin-bottom:24px}
.p4-attendance-all{margin-top:22px}
.p4-attendance-cards,.p4-attendance-class-list{display:grid;gap:13px}
.p4-attendance-card>.p4-card-head{margin-bottom:24px}
.p4-attendance-session{position:relative;display:grid;grid-template-columns:86px minmax(0,1fr) auto;align-items:center;gap:22px;padding:17px 21px 17px 17px;border:1px solid #e6e5e0;border-radius:12px;background:#fff;box-shadow:0 4px 14px rgba(22,22,22,.025);transition:border-color .18s,box-shadow .18s,transform .18s}
.p4-attendance-session:hover{border-color:#d8c358;box-shadow:0 10px 26px rgba(22,22,22,.065);transform:translateY(-1px)}
.p4-attendance-time{display:flex;flex-direction:column;gap:1px;align-items:center;justify-content:center;min-height:93px;border-radius:9px;background:#111114;color:#fff;padding:10px 7px}
.p4-attendance-time strong{font:800 17px/1.2 var(--p4-ui);font-variant-numeric:tabular-nums;letter-spacing:-.5px;color:#fff}
.p4-attendance-time span{font:800 8px/1.4 var(--p4-ui);letter-spacing:1.7px;color:#f2c300}
.p4-attendance-session-main{min-width:0}
.p4-attendance-class-day{display:inline-block;font:800 10px/1.4 var(--p4-ui);letter-spacing:1.5px;color:#8a7116;text-transform:uppercase}
.p4-attendance-session h3{font:400 clamp(16px,1.7vw,20px)/1.3 var(--p4-display);margin:5px 0 8px;color:#18191c;overflow-wrap:anywhere}
.p4-attendance-session p{font:700 12px/1.5 var(--p4-ui);color:#52555b;margin:0}
.p4-attendance-session small{display:block;font:600 11px/1.5 var(--p4-ui);color:#777b7f;margin-top:3px}
.p4-attendance-session-side{display:flex;align-items:flex-end;flex-direction:column;gap:10px;min-width:145px}
.p4-attendance-session-side .p4-button{border-radius:7px;font-size:11px!important}
.p4-attendance-headcount{font:700 10px/1.4 var(--p4-ui);color:#797b80}
.p4-attendance-pill{display:inline-flex;align-items:center;gap:7px;background:#fff8db;color:#795d0e;border:1px solid #eddda6;padding:7px 10px;border-radius:30px;font:800 10px/1.2 var(--p4-ui);white-space:nowrap}
.p4-attendance-pill::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#b28c22}
.p4-attendance-pill.is-complete{background:#ebf7ef;color:#1b6a3d;border-color:#d2e8d8}
.p4-attendance-pill.is-complete::before{background:#218650}
.p4-attendance-pill.is-absent{background:#fff0ef;color:#9e3139;border-color:#f0d6d6}
.p4-attendance-pill.is-absent::before{background:#bb3b42}
.p4-attendance-schedule>.p4-help{padding:14px 17px;background:#fbfaf4;border:1px solid #eee9d7;border-radius:7px;margin:-6px 0 23px;line-height:1.6}
.p4-attendance-group-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid #e6e4dd;padding:14px 2px 12px;margin:13px 0 1px}
.p4-attendance-group-heading:first-child{margin-top:0}
.p4-attendance-group-heading span{font:800 11px/1.4 var(--p4-ui);letter-spacing:1.5px;text-transform:uppercase;color:#8b7011}
.p4-attendance-group-heading strong{font:400 19px/1.2 var(--p4-display);text-transform:uppercase;color:#17171b}
.p4-attendance-pick{display:grid;grid-template-columns:minmax(0,1fr) minmax(165px,205px) auto;align-items:center;gap:17px;border:1px solid #e7e6e1;background:#fff;border-radius:11px;padding:17px 19px;min-width:0;box-shadow:0 3px 12px rgba(0,0,0,.015);transition:border-color .2s}
.p4-attendance-pick:hover{border-color:#d7c66d}
.p4-attendance-pick-main{display:flex;align-items:center;gap:15px;min-width:0}
.p4-attendance-pick-main>div{min-width:0}
.p4-attendance-pick-time{display:flex!important;align-items:center;justify-content:center;background:#17171a;color:#fff!important;padding:9px 7px;border-radius:7px;width:95px;min-width:95px;min-height:46px;font:800 12px/1.3 var(--p4-ui)!important;font-variant-numeric:tabular-nums;text-align:center;margin:0!important}
.p4-attendance-pick strong{display:block;font:800 12px/1.5 var(--p4-ui);color:#292a2c;overflow-wrap:anywhere}
.p4-attendance-pick-main span:not(.p4-attendance-pick-time){display:block;font:600 10px/1.5 var(--p4-ui);color:#777a7f;margin-top:4px}
.p4-attendance-pick label{display:flex;flex-direction:column;gap:7px;font:800 10px/1.3 var(--p4-ui);letter-spacing:.2px;color:#62646a}
.p4-attendance-pick label>span{display:block}
.p4-attendance-pick input[type=date]{height:45px;min-width:0;width:100%;background:white;border:1px solid #dbd9d0;border-radius:6px;color:#292b2e;padding:0 11px;font:600 12px var(--p4-ui);color-scheme:light}
.p4-attendance-pick .p4-button{width:100%;border-radius:6px}
.p4-attendance-pick input[type=date]:focus-visible,.p4-attendance-choice:focus-visible,.p4-attendance-hero-back:focus-visible,.p4-attendance-pick button:focus-visible{outline:3px solid #a78800;outline-offset:3px}
/* Register heading: use the same black/gold identity as the members portal */
.p4-attendance-register-hero{position:relative;isolation:isolate;background:#111114;border-radius:12px;padding:22px clamp(20px,3vw,35px) clamp(25px,3vw,34px);overflow:hidden;margin-bottom:18px;color:#fff}
.p4-attendance-register-hero::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:#f2c300}
.p4-attendance-register-hero::after{content:"";position:absolute;width:245px;height:245px;border:1px solid rgba(242,195,0,.11);border-radius:50%;right:-95px;bottom:-170px;pointer-events:none;z-index:-1}
.p4-attendance-hero-back{display:inline-flex;color:#f2c300!important;text-decoration:none!important;font:800 10px/1.5 var(--p4-ui);letter-spacing:.5px;padding:5px 0;margin-bottom:18px}
.p4-attendance-hero-back:hover{text-decoration:underline!important}
.p4-attendance-hero-layout{display:flex;justify-content:space-between;align-items:end;gap:25px}
.p4-attendance-hero-main{min-width:0}
.p4-attendance-hero-eyebrow{display:block;color:#f2c300;font:800 10px/1.5 var(--p4-ui);letter-spacing:1.75px;text-transform:uppercase}
.p4-attendance-register-hero h1{color:#fff!important;font:400 clamp(25px,3vw,37px)/1.12 var(--p4-display);letter-spacing:-.5px;overflow-wrap:anywhere;margin:10px 0}
.p4-attendance-register-hero p{margin:0;color:#d0d0d2;font:600 13px/1.6 var(--p4-ui)}
.p4-attendance-hero-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:0 0 auto;min-width:135px;text-align:right}
.p4-attendance-hero-side>span:first-child{font:800 9px/1.3 var(--p4-ui);letter-spacing:1.5px;color:#b3b3b8}
.p4-attendance-hero-side strong{color:#fff;font:800 22px/1.2 var(--p4-ui);font-variant-numeric:tabular-nums}
.p4-attendance-hero-state{display:inline-flex;color:#f2c300;font:800 11px/1.3 var(--p4-ui);margin-top:4px}
.p4-attendance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:13px}
.p4-attendance-summary>div{position:relative;overflow:hidden;background:#fff;padding:19px 20px 17px;border:1px solid #e6e5e1;border-radius:9px;min-width:0;box-shadow:0 4px 16px rgba(0,0,0,.018)}
.p4-attendance-summary>div::before{content:"";display:block;width:24px;height:4px;border-radius:4px;background:#f2c300;margin-bottom:13px}
.p4-attendance-summary>.is-present::before{background:#278b54}
.p4-attendance-summary>.is-absent::before{background:#bd484d}
.p4-attendance-summary>.is-unmarked::before{background:#d29b1e}
.p4-attendance-summary span{display:block;font:800 10px/1.4 var(--p4-ui);letter-spacing:1px;color:#6b6e72;margin-bottom:5px}
.p4-attendance-summary strong{display:block;font:400 clamp(25px,2.5vw,34px)/1.2 var(--p4-display);letter-spacing:-.5px;color:#18191b}
.p4-attendance-summary>.is-present strong{color:#1b7545}
.p4-attendance-summary>.is-absent strong{color:#a23c44}
.p4-attendance-progress{background:#fff;border:1px solid #e7e5de;border-radius:10px;padding:18px 22px 20px;margin-bottom:23px}
.p4-attendance-progress-copy{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:12px}
.p4-attendance-progress-copy>div{display:flex;flex-direction:column;gap:5px}
.p4-attendance-progress-label{font:800 9px/1.3 var(--p4-ui);letter-spacing:1.4px;color:#8c761d}
.p4-attendance-progress-copy strong{font:800 13px/1.35 var(--p4-ui);color:#222328}
.p4-attendance-progress-percentage{font:400 23px/1.1 var(--p4-display);color:#111114;white-space:nowrap}
.p4-attendance-progress-track{height:10px;width:100%;background:#f0efea;overflow:hidden;border-radius:20px}
.p4-attendance-progress-fill{display:block;height:100%;width:0;background:#f2c300;border-radius:20px;transition:width .28s ease}
.p4-attendance-roster{border-radius:11px;overflow:hidden}
.p4-attendance-roster>.p4-card-head{padding-bottom:22px;border-bottom:1px solid #eeeee9}
.p4-attendance-rows{display:grid;gap:10px}
.p4-attendance-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:83px;padding:15px 18px;border:1px solid #e8e7e2;background:#fff;border-radius:9px;min-width:0;transition:background .17s,border-color .17s,box-shadow .17s}
.p4-attendance-row.p4-attendance-present{border-color:#cfe7d6;background:#f4fbf6;box-shadow:inset 4px 0 #288a50}
.p4-attendance-row.p4-attendance-absent{border-color:#f0d8d8;background:#fff7f7;box-shadow:inset 4px 0 #b84c52}
.p4-attendance-student{display:flex;align-items:center;gap:14px;min-width:0}
.p4-attendance-initial{background:#17171a;color:#f2c300;display:flex;align-items:center;justify-content:center;flex:0 0 45px;width:45px;height:45px;border-radius:11px;font:800 16px var(--p4-ui)}
.p4-attendance-student>div{min-width:0}
.p4-attendance-student strong{display:block;font:800 13px/1.5 var(--p4-ui);color:#222328;overflow-wrap:anywhere}
.p4-attendance-student small{display:block;margin-top:3px;font:600 11px/1.5 var(--p4-ui);color:#777b80}
.p4-attendance-choices{display:flex;gap:9px;flex:0 0 auto}
.p4-attendance-choice{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid #dcdedb;background:#fff;border-radius:7px;color:#42464b;padding:11px 14px;min-width:112px;min-height:48px;cursor:pointer;font:800 12px/1.3 var(--p4-ui);transition:background .16s,border-color .16s,color .16s,transform .16s}
.p4-attendance-choice-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;background:#f4f3ef;color:#5d6367;border-radius:50%;font:800 14px/1 var(--p4-ui)}
.p4-attendance-choice:hover:not(:disabled){border-color:#afaa93;transform:translateY(-1px)}
.p4-attendance-choice.is-present[aria-pressed=true]{background:#1f7948;color:#fff;border-color:#1f7948}
.p4-attendance-choice.is-absent[aria-pressed=true]{background:#a93c46;color:#fff;border-color:#a93c46}
.p4-attendance-choice[aria-pressed=true] .p4-attendance-choice-icon{background:rgba(255,255,255,.2);color:#fff}
.p4-attendance-choice:disabled{opacity:.75;cursor:default;transform:none}
.p4-attendance-row.is-saving{opacity:.65;pointer-events:none}
.p4-attendance-feedback{font:700 12px/1.5 var(--p4-ui);min-height:16px;color:#257749;margin:12px 0}
.p4-attendance-feedback.is-error{color:#ac3842}
.p4-attendance-visitor{border:1px dashed #d9ca8c;border-radius:9px;margin-top:20px;padding:0 19px;background:#fdfcf7}
.p4-attendance-visitor>summary{font:800 12px/1.5 var(--p4-ui);cursor:pointer;color:#4c420f;padding:18px 0;list-style-position:inside}
.p4-attendance-visitor .p4-form{margin:0 0 18px;max-width:490px}
.p4-attendance-visitor select{height:46px;max-width:100%}
.p4-attendance-complete-form{border-top:1px solid #e9e9e5;margin-top:24px;padding-top:22px;display:flex;gap:20px;align-items:center;justify-content:space-between}
.p4-attendance-complete-copy{max-width:570px}
.p4-attendance-complete-copy>strong{display:block;font:800 11px/1.4 var(--p4-ui);letter-spacing:.7px;margin-bottom:6px}
.p4-attendance-complete-form .p4-help{margin:0;max-width:560px;line-height:1.6}
.p4-attendance-complete-form .p4-button{flex:0 0 auto;border-radius:7px;min-height:50px}
.p4-attendance-completed{background:#eff8f0;border:1px solid #cce4d0;border-left:4px solid #2d844e;border-radius:9px;padding:22px;margin-top:23px}
.p4-attendance-completed strong{font:800 13px var(--p4-ui)}
.p4-attendance-completed p{font-size:12px;line-height:1.6;color:#536757}
.p4-attendance-attended{font:800 10px/1.3 var(--p4-ui);color:#44733c;background:#ecf5e9;padding:9px 12px;border-radius:20px}
.p4-attendance-summary-mini{padding:15px 27px;border-top:1px solid var(--p4-line);font:600 11px var(--p4-ui);color:#666}
.p4-attendance-summary-mini strong{color:#222}
.p4-attendance-summary-mini span{margin:0 8px;color:#ccc}
.p4-student-attendance{margin:20px 0}
.p4-student-attendance .p4-table td small{font-size:9px;color:#8a8a8a}
@media(max-width:1120px){.p4-attendance-pick{grid-template-columns:minmax(0,1fr) minmax(150px,195px)}.p4-attendance-pick .p4-button{grid-column:2;justify-self:stretch}.p4-attendance-pick label{grid-column:2;grid-row:1}.p4-attendance-pick-main{grid-row:1/3;grid-column:1}}
@media(max-width:830px){.p4-attendance-session{grid-template-columns:74px minmax(0,1fr);gap:15px}.p4-attendance-session-side{grid-column:2;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;min-width:0;width:100%}.p4-attendance-time{min-height:90px}.p4-attendance-hero-layout{align-items:flex-start}.p4-attendance-row{align-items:stretch;flex-direction:column;gap:13px}.p4-attendance-choices{display:grid;grid-template-columns:1fr 1fr;width:100%}.p4-attendance-choice{width:100%}.p4-attendance-complete-form{flex-direction:column;align-items:stretch}.p4-attendance-complete-form .p4-button{width:100%}}
@media(max-width:620px){.p4-attendance-schedule,.p4-attendance-card,.p4-attendance-roster{padding:20px 16px}.p4-attendance-group-heading strong{font-size:16px}.p4-attendance-pick{grid-template-columns:1fr;gap:12px;padding:14px}.p4-attendance-pick-main{grid-column:1;grid-row:auto}.p4-attendance-pick label{grid-column:1;grid-row:auto;width:100%}.p4-attendance-pick .p4-button{grid-column:1;width:100%}.p4-attendance-session{grid-template-columns:64px minmax(0,1fr);gap:13px;padding:13px}.p4-attendance-time{min-height:79px}.p4-attendance-time strong{font-size:13px}.p4-attendance-session-side{grid-column:1/-1;align-items:center}.p4-attendance-session-side .p4-button{width:100%}.p4-attendance-register-hero{padding:19px 18px 25px}.p4-attendance-hero-layout{flex-direction:column;gap:16px}.p4-attendance-hero-side{min-width:0;align-items:flex-start;text-align:left;flex-direction:row;flex-wrap:wrap;gap:6px 12px;align-items:center;border-top:1px solid rgba(255,255,255,.15);padding-top:12px;width:100%}.p4-attendance-hero-side strong{font-size:16px}.p4-attendance-hero-side>span:first-child{font-size:9px}.p4-attendance-hero-state{margin:0 0 0 auto}.p4-attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.p4-attendance-summary>div{padding:13px 16px}.p4-attendance-summary>div::before{margin-bottom:10px}.p4-attendance-summary strong{font-size:26px}.p4-attendance-progress{padding:16px 17px}.p4-attendance-roster>.p4-card-head{flex-wrap:wrap}.p4-attendance-row{padding:13px}.p4-attendance-student strong{font-size:13px}.p4-attendance-choices{gap:8px}.p4-attendance-choice{min-width:0}.p4-page-heading h1{font-size:25px}}
@media(prefers-reduced-motion:reduce){.p4-attendance-progress-fill,.p4-attendance-session,.p4-attendance-choice{transition:none}.p4-attendance-session:hover,.p4-attendance-choice:hover:not(:disabled){transform:none}}

/* =========================================================
   V0.7.0 • Instructor lesson learning and personal recaps
   ========================================================= */
.p4-learning-panel{margin:22px 0 30px!important;padding:30px!important}
.p4-learning-panel>.p4-card-head{border-bottom:1px solid #e9e9e6;padding-bottom:20px;margin-bottom:20px;flex-wrap:wrap}
.p4-learning-label{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:5px;color:#171717;background:#f2c300;font:800 10px/1.3 var(--p4-ui);letter-spacing:.75px}
.p4-learning-intro{font:500 13px/1.7 var(--p4-ui);color:#5f6268;max-width:760px;margin:0 0 16px}
.p4-learning-attendee-count{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;background:#f8f6ee;border:1px solid #f0e5b9;border-radius:8px;padding:13px 17px;margin:0 0 20px}
.p4-learning-attendee-count strong{font:800 12px var(--p4-ui);color:#27241b}
.p4-learning-attendee-count span{font:500 11px var(--p4-ui);color:#746b4d}
.p4-learning-wait{border:1px dashed #dbcb86;border-radius:8px;padding:22px 24px;background:#fefcf3}
.p4-learning-wait strong{display:block;font:800 14px/1.4 var(--p4-ui);color:#18191c}
.p4-learning-wait p{font:500 12px/1.65 var(--p4-ui);color:#5f605c;margin:7px 0 0}
.p4-learning-form{max-width:none!important;margin:0!important}
.p4-learning-topic-rows{display:grid;gap:17px;width:100%}
.p4-learning-topic-editor{border:1px solid #e8e6df;background:#fcfcfb;border-radius:10px;padding:19px 20px;min-width:0}
.p4-learning-topic-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:17px}
.p4-learning-topic-number{font:800 10px/1.4 var(--p4-ui);color:#8e7418;letter-spacing:1.1px}
.p4-learning-remove{padding:7px 9px;font:700 11px/1.3 var(--p4-ui);color:#8b4a4a;background:transparent;border:0;border-radius:5px;cursor:pointer}
.p4-learning-remove:hover{color:#772929;background:#fbebeb}
.p4-learning-fields{display:grid;grid-template-columns:minmax(160px,.65fr) minmax(0,1.35fr);gap:14px}
.p4-learning-fields>label{display:flex!important;flex-direction:column;gap:8px;min-width:0}
.p4-learning-fields select,.p4-learning-fields input{width:100%;min-width:0;min-height:48px;border:1px solid #dcdedb;border-radius:6px;background:#fff;font:600 12px/1.4 var(--p4-ui);padding:12px;color:#202125}
.p4-learning-fields .p4-field-label{display:inline-flex;gap:4px;align-items:baseline;white-space:normal}
.p4-learning-fields .p4-field-label em{color:#b12729;font-style:normal}
.p4-learning-audience{border:0;padding:0;margin:19px 0 0;min-width:0}
.p4-learning-audience>legend{font:800 12px/1.4 var(--p4-ui);color:#27292b;padding:0 0 9px}
.p4-learning-scopes{display:flex;flex-wrap:wrap;gap:9px}
.p4-learning-scopes label{display:inline-flex!important;align-items:center;gap:8px;padding:11px 13px;border:1px solid #dddeda;background:#fff;border-radius:7px;cursor:pointer;font:700 11px/1.4 var(--p4-ui);color:#34383a}
.p4-learning-scopes label:has(input:checked){background:#fff7d4;border-color:#c5a62f;color:#222}
.p4-learning-scopes input,.p4-learning-check input{width:16px;height:16px;accent-color:#c6a000;flex:0 0 auto;margin:0}
.p4-learning-scope-detail{margin-top:13px;padding:15px;background:#f5f4ef;border:1px solid #e6e3d6;border-radius:7px}
.p4-learning-scope-detail[hidden]{display:none!important}
.p4-learning-guidance{display:block;font:600 11px/1.55 var(--p4-ui);color:#65655d;margin-bottom:10px}
.p4-learning-checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.p4-learning-check{display:flex!important;flex-direction:row!important;align-items:center!important;gap:9px!important;padding:9px 10px;border:1px solid #e5e4de;background:#fff;border-radius:5px;font:600 11px/1.4 var(--p4-ui);cursor:pointer;min-width:0}
.p4-learning-check span{min-width:0;overflow-wrap:anywhere}
.p4-learning-topic-rows+[data-p4-learning-add]{margin:15px 0 23px;min-height:44px;width:fit-content}
.p4-learning-notes{display:flex!important;flex-direction:column;gap:9px;margin-top:7px}
.p4-learning-notes .p4-field-label{display:inline-flex;gap:4px}
.p4-learning-notes textarea{width:100%;max-width:none!important;min-height:100px;padding:13px;border-radius:7px;border:1px solid #dadbd8;background:#fff;font:500 13px/1.6 var(--p4-ui);resize:vertical}
.p4-learning-privacy{margin:10px 0 18px;font:600 11px/1.65 var(--p4-ui);color:#776a50}
.p4-learning-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:22px;border-top:1px solid #ebebe7}
.p4-learning-actions>div{display:flex;flex-direction:column;gap:6px}
.p4-learning-actions>div strong{font:800 13px/1.4 var(--p4-ui);color:#222}
.p4-learning-actions>div span{font:500 11px/1.6 var(--p4-ui);color:#7b7b7b}
.p4-learning-actions button{min-width:210px;min-height:50px;border-radius:7px}
.p4-learning-session-list{display:grid;gap:11px}
.p4-learning-session{display:flex;justify-content:space-between;align-items:center;gap:20px;border:1px solid #e8e7e2;border-radius:8px;padding:17px;background:#fff}
.p4-learning-session>div{display:flex;flex-direction:column;gap:5px}
.p4-learning-session>div:first-child{min-width:0}
.p4-learning-session>div:last-child{display:flex;flex-direction:row;align-items:center;gap:12px;flex-wrap:wrap}
.p4-learning-session span,.p4-learning-session small{font:600 11px/1.5 var(--p4-ui);color:#808080}
.p4-learning-session strong{font:800 13px/1.4 var(--p4-ui);color:#292a2a}
.p4-learning-state{display:inline-flex!important;border-radius:5px;padding:8px 10px;background:#fff4df;color:#8a661e!important;font-weight:800!important;font-size:10px!important}
.p4-learning-state.is-done{background:#e7f4ea;color:#286e42!important}
.p4-student-learning{margin:23px 0}
.p4-learning-history{display:grid;gap:12px}
.p4-learning-history-entry{border:1px solid #e7e6e2;border-radius:8px;padding:17px;background:#fdfdfc}
.p4-learning-history-title{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.p4-learning-history-title span{font:800 10px/1.5 var(--p4-ui);letter-spacing:.4px;color:#80691c}
.p4-learning-history-title strong{font:800 14px/1.4 var(--p4-ui);color:#222}
.p4-learning-history-topics{display:grid;gap:7px}
.p4-learning-history-topics>div{display:grid;grid-template-columns:minmax(125px,.4fr) minmax(0,1fr);gap:12px;align-items:start;border-radius:6px;background:#f5f4ef;padding:10px 12px}
.p4-learning-history-topics small{font:800 10px/1.45 var(--p4-ui);color:#6e5a11}
.p4-learning-history-topics span{font:600 12px/1.55 var(--p4-ui);color:#333}
.p4-learning-history-notes{font:500 12px/1.6 var(--p4-ui);color:#5d6062;border-left:3px solid #f2c300;padding:7px 0 7px 13px;margin:13px 0 0}
@media(max-width:940px){.p4-learning-checkbox-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:660px){.p4-learning-panel{padding:19px 15px!important}.p4-learning-fields{grid-template-columns:1fr}.p4-learning-topic-editor{padding:15px 13px}.p4-learning-checkbox-grid{grid-template-columns:1fr}.p4-learning-scopes{display:grid;grid-template-columns:1fr}.p4-learning-actions{flex-direction:column;align-items:stretch}.p4-learning-actions button{width:100%}.p4-learning-session,.p4-learning-session>div:last-child{align-items:stretch;flex-direction:column}.p4-learning-session>div:last-child .p4-button{width:100%}.p4-learning-history-topics>div{grid-template-columns:1fr;gap:3px}}
.p4-learning-draft-note{background:#fff8e4;border-left:4px solid #e8bc2b;color:#72581a;border-radius:5px;padding:12px 15px;margin:0 0 15px;font:700 12px/1.6 var(--p4-ui)}
.p4-learning-quick-picks{margin-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.p4-learning-quick-picks[hidden]{display:none!important}
.p4-learning-quick-picks>span{font:800 9px/1.4 var(--p4-ui);letter-spacing:.7px;color:#8d8d82}
.p4-learning-quick-picks>div{display:flex;gap:7px;flex-wrap:wrap}
.p4-learning-pick{border:1px solid #e2d9a6;background:#fffdf3;color:#6e5a16;font:700 10px/1.4 var(--p4-ui);border-radius:25px;padding:7px 11px;cursor:pointer}
.p4-learning-pick:hover{background:#f2c300;border-color:#f2c300;color:#111114}
.p4-learning-pick:focus-visible{outline:2px solid #111114;outline-offset:2px}

/* ===========================================================
   V0.7.1 • Visual learning cards and attendance insights
   Read-only analytics, built from completed registers only.
   =========================================================== */
.p4-insights-panel{margin:22px 0;border-radius:12px;padding:clamp(18px,2.4vw,30px)}
.p4-insights-panel>.p4-card-head{margin-bottom:15px}
.p4-insights-count{display:inline-flex;align-items:center;padding:8px 12px;border-radius:20px;background:#fff6cf;color:#574a1d;font:800 10px/1.5 var(--p4-ui);white-space:nowrap}
.p4-insight-intro{font:500 12px/1.65 var(--p4-ui);color:#73777b;margin:0 0 20px}
.p4-insight-filters,.p4-insight-search{display:flex;align-items:end;flex-wrap:wrap;gap:12px;background:#f8f8f6;border:1px solid #eae9e4;border-radius:9px;padding:16px;margin:16px 0 20px}
.p4-insight-filters>label,.p4-insight-search>label,.p4-insight-custom>label{display:flex!important;flex-direction:column!important;gap:6px!important;flex:1 1 185px;min-width:160px;margin:0!important;font:700 11px/1.4 var(--p4-ui)}
.p4-insight-filters .p4-field-label,.p4-insight-search .p4-field-label{font:800 10px/1.4 var(--p4-ui);color:#4e5054;letter-spacing:.25px}
.p4-insight-filters input,.p4-insight-search input,.p4-insight-filters select,.p4-insight-search select{width:100%;height:43px;border:1px solid #dcddd9;border-radius:6px;background:white;color:#26282b;padding:9px 12px;font:600 12px/1.3 var(--p4-ui)}
.p4-insight-filters>.p4-button,.p4-insight-search>.p4-button{height:43px;min-height:43px;flex:0 0 auto}
.p4-insight-custom{display:flex;flex:2 1 330px;gap:10px;flex-wrap:wrap;align-items:end}
.p4-insight-custom[hidden]{display:none!important}
.p4-insight-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0 24px}
.p4-insight-metric{display:flex;flex-direction:column;align-items:flex-start;gap:6px;border:1px solid #e7e7e4;background:#fcfcfa;border-radius:9px;padding:20px 17px;min-width:0}
.p4-insight-metric:first-child{background:#111114;border-color:#111114;color:#fff}
.p4-insight-metric strong{font:400 clamp(20px,2.3vw,30px)/1.15 var(--p4-display);overflow-wrap:anywhere;color:inherit}
.p4-insight-metric>span{font:800 10px/1.4 var(--p4-ui);color:inherit}
.p4-insight-metric small{font:500 10px/1.55 var(--p4-ui);color:#85868b}
.p4-insight-metric:first-child small{color:#d8d2b0}
.p4-insight-legend{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin:8px 0 10px}
.p4-insight-legend>span{display:inline-flex;align-items:center;gap:7px;font:700 10px/1.5 var(--p4-ui);color:#646970}
.p4-insight-legend i{display:inline-block;width:10px;height:10px;border-radius:2px}
.p4-insight-legend i.is-present{background:#eac037}
.p4-insight-legend i.is-absent{background:#aeb2b9}
.p4-insight-chart-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;padding:0 2px 6px}
.p4-insight-chart{display:flex;align-items:stretch;gap:13px;width:100%;min-width:max-content;min-height:240px;border-bottom:1px solid #e4e4e1;padding:13px 4px 6px;background:linear-gradient(to top,rgba(0,0,0,.032) 1px,transparent 1px) left top/100% 25%}
.p4-insight-chart-col{display:flex;flex-direction:column;justify-content:end;align-items:center;gap:10px;flex:1 0 54px;min-width:54px;max-width:110px;color:#404247!important;text-align:center;border-radius:6px;transition:background .2s}
.p4-insight-chart-col:hover,.p4-insight-chart-col:focus-visible{background:rgba(242,195,0,.1)}
.p4-insight-chart-total{font:800 10px/1 var(--p4-ui);color:#333}
.p4-insight-chart-plot{display:flex;align-items:end;justify-content:center;height:172px;width:100%;min-width:0}
.p4-insight-bar-stack{width:min(38px,75%);display:flex;flex-direction:column-reverse;border-radius:4px 4px 0 0;overflow:hidden;min-height:0;transition:filter .15s}
.p4-insight-chart-col:hover .p4-insight-bar-stack{filter:brightness(.89)}
.p4-insight-bar-present{background:linear-gradient(180deg,#f2c300,#d7a900);min-height:0}
.p4-insight-bar-absent{background:#aeb2b9;min-height:0}
.p4-insight-chart-col>small{font:800 9px/1.3 var(--p4-ui);color:#777b7e;min-height:25px}
.p4-insight-tip{font:500 11px/1.65 var(--p4-ui);color:#85878d;margin:12px 0}
.p4-insights-list-head{margin-top:27px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-bottom:12px;border-bottom:1px solid #e8e9e6}
.p4-insights-list-head strong{font:800 10px/1.4 var(--p4-ui);letter-spacing:1px;color:#4b4c4d}
.p4-insights-list-head a{font:800 10px/1.4 var(--p4-ui);color:#856700!important}
.p4-insights-attendance-list{display:grid;gap:0}
.p4-insight-history-row{display:grid;grid-template-columns:minmax(90px,.75fr) minmax(100px,1.5fr) auto 20px;gap:12px;align-items:center;padding:15px 9px;min-width:0;border-bottom:1px solid #eeeeeb;color:#4b4d51!important;font:600 11px/1.5 var(--p4-ui)}
.p4-insight-history-row:is(a):hover{background:#fffbeb}
.p4-insight-history-row>strong{font-size:12px;min-width:0;overflow-wrap:anywhere;color:#292a2d}
.p4-insight-history-row>.p4-attendance-pill{justify-self:start}
.p4-insight-history-row>span:last-child{font-size:17px}
.p4-lesson-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.p4-lesson-card{display:flex;flex-direction:column;min-width:0;gap:15px;padding:20px;border:1px solid #e7e7e3;border-radius:10px;background:#fff;color:#28292b!important;box-shadow:0 4px 12px rgba(0,0,0,.018);transition:transform .2s,border-color .2s,box-shadow .2s}
.p4-lesson-card:hover{transform:translateY(-2px);border-color:#c9ab3d;box-shadow:0 9px 22px rgba(0,0,0,.06)}
.p4-lesson-card-top,.p4-lesson-card-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.p4-lesson-card-top>span:first-child{font:800 10px/1.4 var(--p4-ui);color:#72777e;letter-spacing:.3px}
.p4-lesson-attended{font:800 9px/1.4 var(--p4-ui);background:#e4f4e8;color:#286b43;padding:8px 10px;border-radius:22px;white-space:nowrap}
.p4-lesson-card-heading{display:flex;align-items:center;gap:13px}
.p4-lesson-icon{width:42px;height:42px;background:#111114;color:#f2c300;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.p4-lesson-card-heading>span:last-child{display:flex;flex-direction:column;gap:4px;min-width:0}
.p4-lesson-card-heading strong{font:400 17px/1.3 var(--p4-display);text-transform:uppercase;overflow-wrap:anywhere}
.p4-lesson-card-heading small{font:600 11px/1.3 var(--p4-ui);color:#777a7f}
.p4-lesson-card-footer{border-top:1px solid #eeefec;padding-top:14px;margin-top:auto;font:600 10px/1.4 var(--p4-ui);color:#797b7e}
.p4-lesson-card-footer b{font-size:10px;color:#775e00}
.p4-insight-back{margin-bottom:20px}.p4-insight-back a{font:800 11px/1.4 var(--p4-ui);color:#826a0d!important}
.p4-insight-detail-hero{background:#111114;color:#fff;border-top:5px solid #f2c300;border-radius:10px;padding:clamp(24px,4vw,42px);margin-bottom:23px}
.p4-insight-detail-hero h1{font:400 clamp(24px,3.1vw,38px)/1.25 var(--p4-display);text-transform:uppercase;margin:10px 0 8px}
.p4-insight-detail-hero p{font:600 12px/1.7 var(--p4-ui);color:#dedee0;margin:0 0 23px}
.p4-insight-topic-list{display:grid;gap:10px}
.p4-insight-topic-list>div{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,2fr);gap:15px;align-items:center;padding:14px;background:#f8f7f2;border:1px solid #eeede7;border-radius:7px}
.p4-insight-topic-list span{font:800 10px/1.6 var(--p4-ui);color:#846b13}
.p4-insight-topic-list strong{font:700 12px/1.65 var(--p4-ui);color:#292b2d}
.p4-insight-notes{margin-top:20px;border-left:4px solid #f2c300;background:#fffdf5;padding:17px 20px;border-radius:5px}
.p4-insight-notes strong{font:800 10px/1.5 var(--p4-ui);letter-spacing:.7px}
.p4-insight-notes p{font:500 12px/1.75 var(--p4-ui);margin:6px 0 0}
.p4-insights-class-grid,.p4-insights-student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.p4-insights-class-card{display:flex;flex-direction:column;gap:8px;padding:18px;border:1px solid #e6e6e4;border-radius:8px;background:#fcfcfb;transition:background .15s,border-color .15s}
.p4-insights-class-card:hover{border-color:#bba142;background:#fff9df}
.p4-insights-class-card>span{font:700 10px/1.6 var(--p4-ui);color:#86888a}
.p4-insights-class-card>strong{font:400 16px/1.4 var(--p4-display);text-transform:uppercase;overflow-wrap:anywhere}
.p4-insights-class-card>small{font:800 10px/1.5 var(--p4-ui);color:#947714}
.p4-insights-student-link{display:flex;align-items:center;gap:13px;padding:14px;border:1px solid #eee;border-radius:8px;min-width:0;transition:background .15s}
.p4-insights-student-link:hover{background:#fff8da}
.p4-insight-person-icon{display:flex;align-items:center;justify-content:center;border-radius:50%;background:#111114;color:#f2c300;font-size:12px;width:34px;height:34px;flex:0 0 34px}
.p4-insights-student-link>span:nth-child(2){display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.p4-insights-student-link strong{font:800 12px/1.45 var(--p4-ui);overflow-wrap:anywhere}
.p4-insights-student-link small{font:600 10px/1.6 var(--p4-ui);color:#777}
.p4-insights-student-link>b{font-size:18px;color:#8f7314}
.p4-insights-class-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.p4-insights-class-actions>.p4-timetable-edit:first-child{color:#806800!important}
@media(max-width:1020px){.p4-insight-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.p4-insights-class-grid,.p4-insights-student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.p4-insights-panel{padding:18px 15px}.p4-insight-metrics,.p4-insights-class-grid,.p4-insights-student-grid,.p4-lesson-card-grid{grid-template-columns:1fr}.p4-insight-filters,.p4-insight-search{flex-direction:column;align-items:stretch;padding:13px}.p4-insight-filters>label,.p4-insight-search>label,.p4-insight-custom>label{flex:1 1 auto;width:100%;min-width:0}.p4-insight-custom{width:100%;flex:1 1 auto}.p4-insight-filters>.p4-button,.p4-insight-search>.p4-button{width:100%}.p4-insight-history-row{grid-template-columns:minmax(80px,1fr) minmax(0,1.3fr) auto;gap:8px;font-size:10px}.p4-insight-history-row>span:last-child{display:none}.p4-insight-topic-list>div{grid-template-columns:1fr;gap:5px}.p4-insight-chart{gap:8px}.p4-insights-count{white-space:normal}}

/* V0.7.1 / Main & optional bonus class enrolment */
.p4-bonus-class-fieldset{border:1px solid #e7e4d8;border-radius:10px;padding:21px;margin:16px 0 23px;background:#fffdf6;min-width:0}
.p4-bonus-class-fieldset legend{font:800 10px/1.5 var(--p4-ui);letter-spacing:1.1px;color:#625315;padding:0 7px}
.p4-bonus-class-fieldset .p4-help{margin:0 0 15px}
.p4-bonus-class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.p4-bonus-class-option{display:flex!important;flex-direction:row!important;align-items:flex-start!important;gap:11px;padding:13px!important;background:#fff;border:1px solid #e7e7e5;border-radius:8px;cursor:pointer;min-width:0}
.p4-bonus-class-option:hover,.p4-bonus-class-option:has(input:checked){border-color:#c6a72d;background:#fff8dc}
.p4-bonus-class-option[hidden]{display:none!important}
.p4-bonus-class-option input[type=checkbox]{margin:3px 0 0;width:17px;height:17px;accent-color:#ae8e00;flex:0 0 17px}
.p4-bonus-class-option>span{display:flex;flex-direction:column;gap:3px;min-width:0}
.p4-bonus-class-option strong{font:800 11px/1.4 var(--p4-ui);color:#19191a}
.p4-bonus-class-option small{font:600 10px/1.55 var(--p4-ui);color:#696968}
.p4-member-bonus-summary{display:flex;flex-direction:column;gap:7px;margin:0 0 18px;padding:18px 22px;background:#fff8da;border:1px solid #e6d88e;border-left:5px solid #f2c300;border-radius:8px}
.p4-member-bonus-summary strong{font:800 10px/1.5 var(--p4-ui);color:#111114;letter-spacing:1px}
.p4-member-bonus-summary span{font:700 12px/1.6 var(--p4-ui);color:#1b1b1b}
.p4-member-bonus-summary small{font:600 10px/1.5 var(--p4-ui);color:#6e6447}
.p4-bonus-attendance-picker{border-color:#d5bc48!important;background:#fffbee!important}
@media(max-width:750px){.p4-bonus-class-grid{grid-template-columns:1fr}.p4-bonus-class-fieldset{padding:16px}}

/* V0.7.2 | Owner-only attendance follow-ups and manual WhatsApp check-ins */
.p4-followup-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 22px}
.p4-followup-metrics>div{display:flex;flex-direction:column;gap:9px;min-width:0;padding:24px;background:#111114;border-radius:10px;color:#fff;border-top:4px solid #f2c300}
.p4-followup-metrics strong{font:400 clamp(20px,2.1vw,29px)/1.2 var(--p4-display);overflow-wrap:anywhere;color:#f2c300}
.p4-followup-metrics span{font:700 10px/1.6 var(--p4-ui);color:#e4e3df;letter-spacing:.15px}
.p4-followup-panel{margin-bottom:20px}
.p4-followup-panel>.p4-help{margin-top:0;line-height:1.7}
.p4-followup-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:20px 0 24px;padding:18px;background:#f8f8f6;border:1px solid #eeefea;border-radius:9px}
.p4-followup-filters>label{flex:1 1 205px;min-width:160px;display:flex;flex-direction:column;gap:7px}
.p4-followup-filters input,.p4-followup-filters select{width:100%;height:46px;border:1px solid #dadbd6;border-radius:5px;background:#fff;padding:10px 12px;min-width:0;color:#222}
.p4-followup-filters .p4-button{height:46px}
.p4-followup-clear{font:800 11px/1.5 var(--p4-ui);color:#6c5a16!important;padding:11px;text-decoration:underline!important;text-underline-offset:4px}
.p4-followup-list{display:flex;flex-direction:column;gap:10px}
.p4-followup-list-card{display:flex;align-items:center;gap:17px;min-width:0;border:1px solid #e8e8e6;border-radius:9px;padding:18px 20px;background:#fff;transition:background .2s,transform .2s,border-color .2s}
.p4-followup-list-card:hover{background:#fffae8;border-color:#ceb341;transform:translateY(-1px)}
.p4-followup-icon{width:46px;height:46px;flex:0 0 46px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#111114;color:#f2c300;font:400 21px var(--p4-display)}
.p4-followup-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.p4-followup-card-body strong{font:800 13px/1.4 var(--p4-ui);color:#222}
.p4-followup-card-body small{font:600 10px/1.5 var(--p4-ui);color:#75777b}
.p4-followup-card-note{font:600 10px/1.5 var(--p4-ui);color:#5c6064}
.p4-followup-chip{font:800 9px/1.3 var(--p4-ui);white-space:nowrap;padding:9px 12px;border-radius:30px}
.p4-followup-chip.is-ready{background:#e7f4eb;color:#236c43}
.p4-followup-chip.is-setup{background:#fff1ce;color:#8d690c}
.p4-followup-arrow{font-size:20px;color:#76600c}
.p4-followup-back{margin-bottom:20px}.p4-followup-back a{color:#715b0d!important;font:800 11px/1.5 var(--p4-ui)}
.p4-followup-banner{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:#111114;border-radius:9px;padding:20px 24px;color:#fff;margin:0 0 22px}
.p4-followup-banner>div{display:flex;flex-direction:column;gap:4px}.p4-followup-banner span{font:800 9px/1.4 var(--p4-ui);color:#a6a5a2;letter-spacing:1.3px}
.p4-followup-banner strong{font:400 20px/1.3 var(--p4-display);color:#f2c300}
.p4-followup-banner>a{color:#f2c300!important;font:800 11px/1.4 var(--p4-ui)}
.p4-followup-panel .p4-form{display:flex;flex-direction:column;gap:17px}
.p4-followup-panel .p4-form .p4-field-grid{margin-top:2px}
.p4-followup-panel .p4-form-actions{margin-top:1px}
.p4-followup-panel .p4-followup-consent{background:#fff9e4;border:1px solid #e9d789;border-radius:7px;padding:15px;display:flex!important;align-items:start!important;gap:12px}
.p4-followup-panel .p4-check{display:flex!important;align-items:start!important;flex-direction:row!important;gap:10px}
.p4-followup-panel .p4-check input[type=checkbox]{flex:0 0 18px;margin:2px 0 0;width:18px;height:18px;accent-color:#947300}
.p4-followup-panel .p4-check span{font:600 11px/1.65 var(--p4-ui)}
.p4-followup-message{background:#f6f7f4;padding:22px 24px;border:1px solid #eceee8;border-left:4px solid #f2c300;border-radius:7px;color:#31343a;font:500 13px/1.8 var(--p4-ui);margin-bottom:18px;overflow-wrap:anywhere}
.p4-followup-whatsapp{background:#19794f!important;border-color:#19794f!important;font-size:12px!important;white-space:normal;text-align:center}
.p4-followup-whatsapp:hover{background:#116340!important}
.p4-followup-confirm{padding:22px;margin:22px 0 0;background:#fffdf4;border:1px solid #e9da9e;border-radius:8px}
.p4-followup-confirm h3{font:400 17px/1.4 var(--p4-display);margin:0 0 8px}.p4-followup-confirm>p{font:600 11px/1.7 var(--p4-ui);color:#6f6f70;margin:0 0 16px}
.p4-followup-confirm .p4-form{margin-top:13px}
.p4-followup-history{display:grid;gap:10px}
.p4-followup-history-row{border:1px solid #e8e8e5;padding:16px 18px;border-radius:7px}
.p4-followup-history-row>div{display:flex;flex-direction:column;gap:5px}.p4-followup-history-row strong{font:800 12px/1.4 var(--p4-ui)}
.p4-followup-history-row small{font:600 10px/1.5 var(--p4-ui);color:#777}
.p4-followup-history-row p{margin:12px 0 0;border-top:1px solid #eee;padding-top:10px;font:500 12px/1.7 var(--p4-ui);color:#505057}
.p4-followup-panel code{background:#eee8ca;padding:2px 5px;border-radius:3px;color:#554500}
@media(max-width:820px){.p4-followup-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:590px){.p4-followup-metrics{grid-template-columns:1fr}.p4-followup-list-card{align-items:flex-start;gap:11px;flex-wrap:wrap;padding:15px}.p4-followup-icon{width:36px;height:36px;flex-basis:36px;font-size:16px}.p4-followup-chip{margin-left:47px}.p4-followup-arrow{margin-left:auto}.p4-followup-filters{flex-direction:column;align-items:stretch}.p4-followup-filters>label{min-width:0;width:100%;flex:0 0 auto}.p4-followup-filters .p4-button{width:100%}.p4-followup-banner{padding:17px}.p4-followup-panel{padding:20px 16px}.p4-followup-message{padding:17px}.p4-followup-confirm{padding:16px}}

/* V0.7.3: clearly segregated owner-only follow-up test tools */
.p4-followup-demo{margin:18px 0 24px;border:1px dashed rgba(190,139,0,.55)!important;background:linear-gradient(135deg,#fffef8,#fff 70%)}
.p4-followup-demo-badge{font-family:var(--p4-ui,Montserrat,sans-serif);font-size:10px;letter-spacing:.08em;font-weight:800;color:#2d2600;background:#ffed9b;border-radius:5px;padding:7px 9px;white-space:nowrap}
.p4-followup-demo-info{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:16px 0;padding:12px 15px;background:#f7f5ed;border-left:4px solid var(--p4-gold,#f2c300)}
.p4-followup-demo-info strong{color:#111114}.p4-followup-demo-info span{font-size:13px;color:#555}
.p4-followup-demo .p4-button-secondary{background:#fff!important;color:#111114!important;border:1px solid #111114!important}
.p4-followup-demo form{margin:15px 0 0}.p4-followup-demo .p4-help{line-height:1.65}

/* V0.8.0 | QR lesson recap, accessible feedback and instructor insights */
.p4-qr-public{max-width:560px;margin:clamp(32px,8vh,110px) auto;padding:clamp(26px,5vw,54px);background:#fff;border-radius:16px;text-align:center;box-shadow:0 18px 70px rgba(0,0,0,.10);font-family:var(--p4-ui,Montserrat,Arial,sans-serif)}
.p4-qr-public-symbol{display:grid;place-items:center;width:70px;height:70px;border-radius:18px;margin:0 auto 24px;background:#111114;color:#f2c300;font-size:40px}
.p4-qr-public h1{font-family:var(--p4-display,'Archivo Black',sans-serif);font-size:clamp(27px,4vw,38px);line-height:1.12;margin:12px 0 16px;color:#111114}
.p4-qr-public>p{font-size:15px;line-height:1.7;color:#57575e;margin:0 0 24px}
.p4-qr-public .p4-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center}
.p4-qr-public .p4-qr-privacy{font-size:12px;margin:20px 0 0;color:#666}
.p4-qr-admin-grid{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:26px;align-items:start;margin-top:20px}
.p4-qr-code-card{display:flex;flex-direction:column;align-items:center;gap:10px;background:#111114;color:#fff;border-radius:14px;padding:24px 18px;text-align:center}
.p4-qr-square{width:min(100%,245px);aspect-ratio:1/1;display:grid;place-items:center;background:#fff;color:#333;border:8px solid #fff;border-radius:9px;overflow:hidden}
.p4-qr-square svg{display:block;width:100%;height:100%}
.p4-qr-code-card>strong{color:#f2c300;font-size:13px;font-weight:800;letter-spacing:.9px}
.p4-qr-code-card>small{color:#ddd;font-size:11px;line-height:1.6}
.p4-qr-code-card .p4-button{margin-top:8px;background:#fff;color:#111114!important;border-color:#fff}
.p4-feedback-admin-side{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.p4-feedback-status{display:flex;flex-direction:column;gap:5px;padding:15px 20px;background:#f8f7f3;border:1px solid #eae6d8;border-radius:10px;width:100%}
.p4-feedback-status span,.p4-feedback-mini-stats span{font-size:10px;letter-spacing:.8px;color:#727277;text-transform:uppercase;font-weight:800}
.p4-feedback-status strong{font-size:16px;color:#111114}
.p4-feedback-copy-label{display:flex;flex-direction:column;gap:6px;min-width:0;width:100%}
.p4-feedback-copy-label input{width:100%;font-size:12px;min-width:0;max-width:100%;border:1px solid #ddd;border-radius:8px;padding:12px;background:#fff;color:#555}
.p4-feedback-mini-stats{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:10px}
.p4-feedback-mini-stats>div{display:flex;flex-direction:column;gap:5px;padding:14px;background:#f7f7f7;border-radius:9px}
.p4-feedback-mini-stats strong{font-size:24px;font-weight:800;color:#111114}
.p4-feedback-toggle-form{max-width:100%}
.p4-feedback-breakdown{border-top:1px solid #ededed;margin-top:27px;padding-top:22px}
.p4-feedback-meter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}
.p4-feedback-meter-grid>div>span{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#333;font-weight:700}
.p4-feedback-meter{height:9px;background:#eaeaea;border-radius:100px;overflow:hidden;margin-top:9px}
.p4-feedback-meter i{display:block;height:100%;background:#f2c300;border-radius:100px}
.p4-feedback-responses{border-top:1px solid #e9e9e9;margin-top:22px;padding-top:18px}
.p4-feedback-responses summary{cursor:pointer;font-weight:800;color:#111114;font-size:13px}
.p4-feedback-response-list{display:grid;gap:10px;margin-top:17px}
.p4-feedback-response-list article{background:#f8f8f6;border:1px solid #ececea;border-radius:10px;padding:15px}
.p4-feedback-response-list article>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.p4-feedback-response-list article strong{font-size:13px}
.p4-feedback-response-list article span{font-size:12px;color:#5a5a60}
.p4-feedback-response-list article p{font-size:13px;color:#444;line-height:1.6;overflow-wrap:anywhere;margin:10px 0 0}
.p4-feedback-small-label{padding:7px 9px;border-radius:5px;background:#f2c300;color:#111114;font-weight:800;font-size:10px;letter-spacing:.6px}
.p4-feedback-fieldset{border:0;padding:0;margin:22px 0 0;min-width:0}
.p4-feedback-fieldset legend{font-weight:800;font-size:14px;margin:0 0 12px;color:#111114}
.p4-feedback-fieldset legend em{color:#bf2d26;font-style:normal;display:inline}
.p4-feedback-rating,.p4-feedback-difficulty{display:grid;gap:9px}
.p4-feedback-rating{grid-template-columns:repeat(5,minmax(0,1fr))}
.p4-feedback-difficulty{grid-template-columns:repeat(3,minmax(0,1fr))}
.p4-feedback-rating label,.p4-feedback-difficulty label{position:relative;display:block;min-width:0;cursor:pointer}
.p4-feedback-rating input,.p4-feedback-difficulty input{position:absolute;left:14px;top:15px;opacity:0;width:1px;height:1px}
.p4-feedback-rating label>span,.p4-feedback-difficulty label>span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:76px;border:2px solid #e4e4e4;border-radius:10px;background:#fafafa;text-align:center;gap:4px;transition:background .15s,border-color .15s,color .15s}
.p4-feedback-rating b{font-family:var(--p4-display,'Archivo Black',Arial,sans-serif);font-size:22px;color:#111114}
.p4-feedback-rating small{font-size:10px;color:#666;line-height:1.2}
.p4-feedback-difficulty label>span{min-height:56px;padding:9px;font-size:12px;font-weight:700}
.p4-feedback-rating input:checked+span,.p4-feedback-difficulty input:checked+span{background:#fff5c8;border-color:#d8ad00}
.p4-feedback-rating input:focus-visible+span,.p4-feedback-difficulty input:focus-visible+span{outline:3px solid #111114;outline-offset:2px}
.p4-feedback-form>label{display:flex;flex-direction:column;margin:22px 0;gap:8px}
.p4-feedback-form>label textarea{width:100%;min-height:95px;border:1px solid #ccc;border-radius:8px;padding:14px;resize:vertical}
.p4-feedback-form>.p4-button{margin-top:5px}
.p4-feedback-closed{padding:18px;border-radius:9px;background:#f5f5f3;color:#555}
.p4-qr-profile-grid,.p4-feedback-index-list{display:grid;gap:10px}
.p4-qr-profile{display:flex;align-items:center;gap:14px;border:1px solid #e5e5e5;border-radius:12px;padding:16px 20px;text-decoration:none!important;color:#111114!important}
.p4-qr-profile:hover{border-color:#c9a100;background:#fff9e7}
.p4-qr-profile-avatar{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:50%;background:#111114;color:#f2c300;font-weight:800}
.p4-qr-profile>span:nth-child(2){display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}
.p4-qr-profile strong{font-size:14px}
.p4-qr-profile small{font-size:11px;color:#777}
.p4-qr-profile>b{margin-left:auto}
.p4-feedback-index-row{display:grid;grid-template-columns:minmax(0,1fr) 75px 85px auto;gap:16px;align-items:center;padding:17px 18px;border:1px solid #e8e8e6;border-radius:12px;color:#111114!important;text-decoration:none!important}
.p4-feedback-index-row:hover{border-color:#c49d00;background:#fffaf0}
.p4-feedback-index-row>div:first-child{display:flex;flex-direction:column;gap:5px;min-width:0}
.p4-feedback-index-row small{display:block;color:#747474;font-size:11px}
.p4-feedback-index-row strong{font-size:15px}
.p4-feedback-index-row>div:first-child span{font-size:11px;color:#777}
.p4-feedback-index-row>div:not(:first-child) b{font-size:20px}
.p4-feedback-index-open{font-size:13px;font-weight:800}
.p4-qr-overlay{position:fixed;z-index:1000000;inset:0;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;padding:18px;overflow-y:auto}
.p4-qr-modal{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:520px;width:100%;color:#fff;text-align:center}
.p4-qr-modal h2{font:800 clamp(20px,3vw,35px) var(--p4-display,'Archivo Black',Arial,sans-serif);color:#f2c300;margin:0}
.p4-qr-modal svg{display:block;width:min(72vh,90vw,420px);height:auto;aspect-ratio:1;border-radius:14px}
.p4-qr-modal p{font-size:14px;color:#e5e5e5;line-height:1.6}
.p4-qr-modal-close{align-self:flex-end;border:1px solid #fff;background:transparent;color:#fff;border-radius:7px;cursor:pointer;padding:10px 18px;font-weight:800}
@media(max-width:800px){.p4-qr-admin-grid{grid-template-columns:1fr}.p4-qr-code-card{max-width:350px;width:100%;margin:auto}.p4-feedback-meter-grid{grid-template-columns:1fr}}
@media(max-width:550px){.p4-feedback-rating{gap:5px}.p4-feedback-rating label>span{min-height:70px}.p4-feedback-rating b{font-size:17px}.p4-feedback-rating small{font-size:9px}.p4-feedback-difficulty{grid-template-columns:1fr}.p4-feedback-difficulty label>span{min-height:45px}.p4-feedback-index-row{grid-template-columns:minmax(0,1fr) 50px 60px;gap:9px;padding:12px}.p4-feedback-index-open{display:none}.p4-feedback-index-row strong{font-size:12px}.p4-feedback-index-row>div:not(:first-child) b{font-size:16px}}

/* V0.9.0 — Owner-focused Admin Centre. Existing member and instructor views retain their components. */
.p4-app .p4-topbar{height:76px;padding:0 clamp(16px,3vw,40px);position:sticky;top:0;z-index:70}
.p4-app .p4-menu-toggle{display:flex!important;border:1px solid rgba(17,17,20,.15);border-radius:9px}
.p4-app .p4-menu-toggle:hover{background:rgba(17,17,20,.08)}
.p4-app .p4-sidebar{position:fixed!important;left:0!important;top:76px!important;bottom:0!important;width:min(290px,84vw)!important;flex-basis:auto!important;z-index:80!important;min-height:0!important;overflow-y:auto!important;box-shadow:8px 0 30px rgba(0,0,0,.18);transform:translateX(-110%);transition:transform .18s ease}
.p4-app.is-menu-open .p4-sidebar{transform:translateX(0)!important}
.p4-app.is-menu-open .p4-sidebar-scrim{display:block!important;position:fixed;inset:76px 0 0;background:rgba(0,0,0,.47);z-index:75!important}
.p4-app .p4-main{width:100%;padding:clamp(22px,3vw,45px) clamp(16px,4vw,64px) 80px;min-width:0}
.p4-app .p4-layout{min-height:calc(100vh - 76px);display:block}
.p4-app .p4-sidebar-intro{padding:4px 13px 15px}
.p4-app .p4-sidebar-intro img{height:56px}
.p4-app .p4-sidebar{gap:14px}
.p4-app .p4-nav-item{font-size:12px;line-height:1.45;min-height:48px}
.p4ux-header-find{display:inline-flex;align-items:center;gap:7px;color:#171717;font-weight:800;border:1px solid rgba(17,17,20,.26);padding:8px 13px;border-radius:9px;background:rgba(255,255,255,.17);cursor:pointer;font-size:13px}
.p4ux-header-find:first-letter{font-size:23px}
.p4ux-header-panel{position:fixed;z-index:90;top:76px;right:clamp(12px,3vw,42px);width:min(540px,calc(100vw - 24px));background:#fff;border:1px solid #e8e8e8;border-radius:0 0 14px 14px;box-shadow:0 15px 45px rgba(0,0,0,.16);padding:14px 18px 20px}
.p4ux-header-panel[hidden]{display:none!important}
.p4ux-header-panel .p4ux-search{margin:0;box-shadow:none}
.p4ux-hero{margin-bottom:23px}
.p4ux-hero h1{font:400 clamp(27px,3vw,40px)/1.12 var(--p4-display);letter-spacing:-1px;margin:7px 0 9px}
.p4ux-hero p{font-size:13px;color:#696d75;margin:0;line-height:1.6}
.p4ux-search{background:#fff;border:1px solid #dadadd;border-radius:12px;padding:17px;position:relative;max-width:920px;margin-bottom:33px;box-shadow:0 5px 20px rgba(0,0,0,.035)}
.p4ux-search label{display:block;font-size:12px;font-weight:800;letter-spacing:.1px;margin-bottom:9px}
.p4ux-search-field{height:53px;display:flex;align-items:center;gap:12px;border-radius:9px;background:#f5f5f6;padding:0 13px;border:1px solid #e4e4e7}
.p4ux-search-field>span{font-size:26px;color:#747474}
.p4ux-search-field input{border:0!important;background:transparent!important;outline:0!important;box-shadow:none!important;min-width:0;flex:1;font-size:13px!important;color:#222;padding:8px 0;width:100%}
.p4ux-search-results{background:#fff;border:1px solid #e4e4e7;box-shadow:0 15px 24px rgba(0,0,0,.09);border-radius:0 0 11px 11px;position:absolute;top:calc(100% - 5px);left:16px;right:16px;z-index:45;max-height:390px;overflow-y:auto;padding:8px 0}
.p4ux-search-results[hidden]{display:none!important}
.p4ux-result-category{padding:10px 16px 6px;text-transform:uppercase;letter-spacing:1px;color:#898989;font-size:9px;font-weight:800}
.p4ux-result{display:flex;flex-direction:column;gap:4px;padding:12px 16px;border-top:1px solid #f3f3f3}
.p4ux-result:hover,.p4ux-result:focus-visible{background:#fff9da}
.p4ux-result strong{font-size:12px}.p4ux-result small{font-size:11px;color:#74777a}
.p4ux-result-empty{font-size:12px;color:#74777a;padding:17px}
.p4ux-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:27px 0 14px}
.p4ux-section-title h2,.p4ux-surface-head h2,.p4ux-attention h2{font:400 18px var(--p4-display);margin:0;letter-spacing:-.2px;text-transform:none}
.p4ux-subtle{font-size:11px;color:#8b8b90}
.p4ux-action-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.p4ux-action-card{background:#fff;border:1px solid #e5e5e5;border-radius:11px;min-height:105px;padding:18px 20px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-content:center;gap:6px 8px;transition:transform .12s,box-shadow .12s}
.p4ux-action-card:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(0,0,0,.06)}
.p4ux-action-card>strong{font:400 30px var(--p4-display);grid-column:1}.p4ux-action-card>span:nth-child(2){font-size:11px;color:#60646b;grid-column:1}
.p4ux-action-card .p4ux-arrow{grid-column:2;grid-row:1/3;font-size:19px;color:#756118}
.p4ux-surface{background:#fff;border:1px solid #e7e7e9;border-radius:12px;padding:clamp(16px,2vw,25px);margin-bottom:17px;min-width:0}
.p4ux-surface-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;flex-wrap:wrap}
.p4ux-textlink{color:#826a00!important;font-weight:800;font-size:11px;text-decoration:none}
.p4ux-task{border-top:1px solid #ededed;padding:15px 0;display:flex;gap:16px;align-items:center;font-size:12px}
.p4ux-task:hover strong{color:#8e7700}
.p4ux-task-label{padding:7px 10px;background:#f6f3e1;border-radius:5px;font-size:10px;min-width:83px;text-align:center;font-weight:700}
.p4ux-task>span:nth-child(2){flex:1;min-width:0}.p4ux-task strong,.p4ux-task small{display:block}.p4ux-task small{margin-top:5px;color:#7d7d84;font-size:11px}
.p4ux-task-footer{border-top:1px solid #ededed;padding-top:15px;color:#888;font-size:12px}
.p4ux-no-tasks{background:#f0f8f1;border:1px solid #cfe6d2;color:#275b38;padding:15px 20px;border-radius:11px;font-size:12px}
.p4ux-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.p4ux-shortcuts a{background:#fff;border:1px solid #e6e6e6;border-radius:11px;padding:18px 15px;display:flex;flex-direction:column;gap:9px;font-size:12px}
.p4ux-shortcuts a:hover,.p4ux-hub-grid a:hover{background:#fff9d9;border-color:#e4c858}
.p4ux-shortcuts a span{font-size:21px;color:#917800}.p4ux-shortcuts a strong{font-size:11px}
.p4ux-club-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.p4ux-club-grid>a{display:flex;align-items:center;gap:15px;padding:19px 20px;background:#171719;color:#fff!important;border-radius:12px}
.p4ux-club-mark{background:#37332a;border-radius:8px;color:#f2c300;font-family:var(--p4-display);padding:10px}
.p4ux-club-grid>a>span:nth-child(2){flex:1}.p4ux-club-grid strong{display:block;font-size:15px}.p4ux-club-grid small{display:block;color:#d4d3d1;font-size:10px;margin-top:5px;line-height:1.4}
.p4ux-dashboard-more{margin-top:22px;border:1px solid #e6e6e6;border-radius:10px;padding:18px;background:#fff}.p4ux-dashboard-more summary,.p4ux-class-edit>summary{font-size:12px;font-weight:800;cursor:pointer}
.p4ux-mini-stats{display:flex;gap:14px;margin:14px 0}.p4ux-mini-stats>div{background:#f7f7f6;padding:14px 18px;border-radius:8px;display:grid;gap:5px}.p4ux-mini-stats strong{font:400 24px var(--p4-display)}.p4ux-mini-stats span{font-size:10px;color:#777}
.p4ux-hint{font-size:11px;line-height:1.7;color:#767980}
.p4ux-hub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.p4ux-hub-grid a{display:flex;flex-direction:column;gap:11px;padding:25px;background:#fff;border:1px solid #e3e3e5;border-radius:12px;min-height:145px}
.p4ux-hub-grid strong{font-size:15px}.p4ux-hub-grid span{font-size:12px;color:#74777a;line-height:1.6;flex:1}.p4ux-hub-grid b{color:#876b00;font-size:11px}
.p4ux-back{margin-bottom:22px}.p4ux-profile-heading{display:flex;gap:16px;align-items:center;margin-bottom:22px;flex-wrap:wrap}
.p4ux-profile-heading>div:nth-child(2){flex:1;min-width:180px}.p4ux-profile-heading h1{font:400 clamp(24px,2.7vw,35px)/1.2 var(--p4-display);margin:5px 0 6px;overflow-wrap:anywhere}
.p4ux-profile-heading p{font-size:12px;color:#74777a;margin:0}.p4ux-profile-avatar{width:56px;height:56px;flex:0 0 56px;display:grid;place-items:center;background:#19191b;color:#f2c300;border-radius:12px;font:400 25px var(--p4-display)}
.p4ux-tabs{display:flex;overflow-x:auto;gap:4px;padding:6px 5px;background:#fff;border:1px solid #eaeaea;border-radius:11px;margin-bottom:21px;scrollbar-width:thin}
.p4ux-tabs a{display:block;flex:0 0 auto;padding:12px 14px;border-bottom:3px solid transparent;color:#676b6f!important;font-weight:700;font-size:11px;white-space:nowrap}
.p4ux-tabs a.is-current{color:#171719!important;border-bottom-color:#e6b900;background:#fffae3}
.p4ux-profile-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:19px}
.p4ux-profile-stats>div{background:#fff;border:1px solid #e9e9e9;border-radius:10px;padding:16px;min-width:0}.p4ux-profile-stats small{display:block;color:#85858b;font-size:10px;margin-bottom:9px}.p4ux-profile-stats strong{font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.p4ux-attention{background:#fff9e8;border:1px solid #ebd79d;border-radius:10px;padding:19px 22px;margin-bottom:19px}.p4ux-attention h2{font-size:16px;margin-bottom:10px}.p4ux-attention>div{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:12px;border-top:1px solid #f1e4bc;padding:11px 0}
.p4ux-detail{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid #efeff0;font-size:12px}.p4ux-detail:last-child{border-bottom:0}.p4ux-detail span{color:#777b80;flex:0 0 32%}.p4ux-detail strong{flex:1;text-align:right;font-size:12px;overflow-wrap:anywhere;line-height:1.55}
.p4ux-next-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.p4ux-next-links a{padding:17px;background:#181819;border-radius:9px;color:#fff!important;font-size:11px;font-weight:800;display:flex;justify-content:space-between;gap:12px}.p4ux-next-links span{color:#f2c300}
.p4ux-edit-form{max-width:850px}.p4ux-edit-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:23px}
.p4ux-bonus-heading{font-weight:800;font-size:13px;margin-top:20px}
.p4ux-bonus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.p4ux-bonus-grid label{padding:12px;border:1px solid #e7e7e7;border-radius:8px;display:flex;gap:9px;align-items:flex-start;font-size:11px;line-height:1.5}.p4ux-bonus-grid input{margin-top:1px}
.p4ux-person-link{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 0;border-top:1px solid #ececec}.p4ux-person-link strong,.p4ux-person-link small{display:block}.p4ux-person-link strong{font-size:12px}.p4ux-person-link small{font-size:10px;color:#85878a;margin-top:6px}
.p4ux-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.p4ux-club-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:19px}.p4ux-club-filter a{font-weight:700;font-size:11px;border:1px solid #dfe0e0;border-radius:8px;padding:11px 15px;background:#fff}.p4ux-club-filter a.is-on{background:#171719;color:#f2c300!important;border-color:#171719}
.p4ux-class-edit{margin-top:20px}.p4ux-class-edit>summary{list-style:none;background:#fff;border:1px solid #e5e5e5;border-radius:9px;padding:18px 21px}.p4ux-class-edit[open]>summary{border-radius:9px 9px 0 0}.p4ux-class-edit>.p4-card{border-radius:0 0 9px 9px}
@media(max-width:950px){.p4ux-profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.p4ux-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.p4-app .p4-topbar{gap:8px}.p4ux-header-find span{display:none}.p4ux-header-find{font-size:20px;padding:5px 10px}.p4ux-action-cards{gap:8px}.p4ux-action-card{padding:13px 12px;min-height:90px}.p4ux-action-card>strong{font-size:25px}.p4ux-action-card>span:nth-child(2){font-size:9px;overflow-wrap:anywhere}.p4ux-club-grid,.p4ux-two-col,.p4ux-hub-grid{grid-template-columns:1fr}.p4ux-task-label{min-width:63px;font-size:9px}.p4ux-next-links{grid-template-columns:1fr}.p4ux-bonus-grid{grid-template-columns:1fr}.p4ux-profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.p4ux-surface-head h2{font-size:16px}.p4ux-detail{font-size:11px}.p4ux-detail strong{font-size:11px}.p4ux-hero h1{font-size:26px}}
@media(prefers-reduced-motion:reduce){.p4-app .p4-sidebar,.p4ux-action-card{transition:none!important}}
.p4ux-directory-note{margin:-16px 0 20px;color:#727272;font-size:11px}.p4ux-directory-note a{color:#846b00!important;font-weight:800}
.p4ux-launch-warning{border:1px solid #d9a43a;background:#fff2d0;color:#624806;border-radius:9px;padding:14px 17px;font-size:12px;margin:0 0 20px;line-height:1.6}
.p4ux-link-more{margin-top:17px;border-top:1px solid #ededed;padding-top:16px}.p4ux-link-more summary{font-size:11px;font-weight:800;cursor:pointer;color:#816700;margin-bottom:13px}.p4ux-link-more form{max-width:580px}.p4ux-person-link>a{flex:1;min-width:0}.p4ux-person-link>form{flex-shrink:0}

/* ============================================================================
   P4TKD v0.9.1 • premium Admin Centre visual system
   Scope: visual presentation and navigation only. No attendance/payment changes.
   Inspired by the owner-approved black / gold dashboard mock-up.
   ============================================================================ */
body.p4tkd-body{background:#f4f5f7;color:#16181c}
.p4-app{--p4-elevation:0 8px 30px rgba(21,25,35,.045);--p4-softline:#e9ebf0;--p4-gold:#ffd116}
.p4-app .p4-topbar{height:70px;background:linear-gradient(105deg,#ffd214 0%,#f9c800 55%,#ffdc3b 100%);padding:0 clamp(19px,2.6vw,42px);box-shadow:0 2px 12px rgba(0,0,0,.045);gap:24px}
.p4-app .p4-topbar-start{gap:17px;flex:0 0 auto}
.p4-app .p4-header-logo{width:95px;height:60px;object-fit:contain}
.p4-app .p4-topbar-title{font-size:9px;letter-spacing:2px;font-weight:700}
.p4-app .p4-topbar-title strong{font-size:10px;letter-spacing:1.65px}
.p4-app .p4-topbar-divider{height:33px;background:rgba(0,0,0,.14)}
.p4-app .p4-topbar-end{gap:16px;flex:0 0 auto}
.p4-app .p4-topbar-role{font-size:10px;letter-spacing:.7px}
.p4-app .p4-avatar{width:41px;height:41px;background:#101114;color:#ffd214}
.p4-app .p4-signout{font-size:11px;border-bottom:0;display:flex;align-items:center;gap:7px;padding:8px;border-radius:6px}
.p4-app .p4-signout:hover{background:rgba(0,0,0,.08)}
.p4-app .p4-menu-toggle{width:38px;height:38px;flex:0 0 38px;border:1px solid rgba(0,0,0,.15)!important;background:rgba(255,255,255,.11);border-radius:10px;display:flex!important}
.p4-app .p4-menu-toggle:hover{background:rgba(255,255,255,.45)}
.p4-app .p4-menu-toggle span{height:2px;border-radius:2px}
/* Expose the persistent search at the centre of the desktop header. */
.p4ux-topbar-search{min-width:170px;max-width:580px;flex:1;position:relative;z-index:91}
.p4ux-topbar-search .p4ux-search{max-width:none!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important}
.p4ux-topbar-search .p4ux-search>label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.p4ux-topbar-search .p4ux-search-field{height:44px;background:rgba(255,255,255,.86);border:1px solid rgba(0,0,0,.12);border-radius:11px;box-shadow:0 3px 12px rgba(0,0,0,.025)}
.p4ux-topbar-search .p4ux-search-field input{font-size:12px!important;font-weight:500}
.p4ux-topbar-search .p4ux-search-results{top:calc(100% + 8px);left:0;right:0;border-radius:12px}
.p4ux-header-find{display:none}
/* Premium persistent navigation on desktop, with a proper slide-out drawer on mobile. */
.p4-app .p4-layout{display:flex;align-items:stretch;min-height:calc(100vh - 70px)}
.p4-app .p4-sidebar{position:sticky!important;top:70px!important;bottom:auto!important;left:auto!important;z-index:20!important;transform:none!important;min-height:calc(100vh - 70px)!important;height:calc(100vh - 70px);overflow-y:hidden!important;overflow-x:hidden;align-self:flex-start;flex:0 0 252px!important;width:252px!important;padding:23px 13px 15px;background:linear-gradient(160deg,#17181a,#101113 78%);box-shadow:none!important;gap:9px;transition:margin-left .22s ease!important;scrollbar-width:thin;scrollbar-color:#373839 transparent}
.p4-app.is-nav-collapsed .p4-sidebar{margin-left:-252px!important}
.p4-app .p4-sidebar-intro{border:0;padding:10px 18px 20px;display:flex;flex-direction:column;gap:4px}
.p4-app .p4-sidebar-intro span,.p4-app .p4-sidebar-intro strong{font-size:10px;letter-spacing:2.25px;line-height:1.25;color:#ffce0b;font-weight:800}
.p4-app .p4-sidebar-intro span{font-size:9px;color:#dec252}
.p4-app .p4-nav{gap:5px;flex:0 0 auto}
.p4-app .p4-nav-label{display:none}
.p4-app .p4-nav-item{min-height:47px;padding:11px 16px;font-size:12px;font-weight:650;gap:14px;color:#e8e9ec!important;border-radius:10px;border:1px solid transparent}
.p4-app .p4-nav-item:hover:not(.is-active){background:#26272c!important;color:#fff!important}
.p4-app .p4-nav-item.is-active{background:linear-gradient(115deg,#ffde44 0%,#f5c300 100%)!important;color:#141414!important;box-shadow:0 4px 15px rgba(242,195,0,.22);border-color:#edc000}
.p4-app .p4-nav-icon{width:23px;height:23px;flex:0 0 23px}
.p4-app .p4-nav-icon svg{width:21px;height:21px;stroke-width:2}
.p4-app .p4-sidebar-art{margin:auto -13px 0;flex:1 1 180px;min-height:0;max-height:255px;background:linear-gradient(0deg,rgba(14,15,18,.12),rgba(14,15,18,.08)),url('../images/sidebar-martial-arts.png') center / cover no-repeat;position:relative}
.p4-app .p4-sidebar-art span{position:absolute;bottom:27px;left:25px;font-size:10px;line-height:1.6;letter-spacing:3px;color:white;font-weight:800;text-shadow:0 2px 8px #000}
.p4-app .p4-sidebar-art span b{color:#f2c300}
.p4-app .p4-sidebar-bottom{display:none}
.p4-app .p4-sidebar-scrim{display:none!important}
/* Main content has the same disciplined width and spacing at every screen size. */
.p4-app .p4-main{flex:1;width:auto;min-width:0;padding:27px clamp(23px,2.6vw,44px) 72px;max-width:none}
.p4ux-dashboard{max-width:1660px;margin:0 auto}
.p4ux-dashboard-hero{position:relative;isolation:isolate;min-height:113px;margin:0 0 7px!important;display:flex;align-items:center}
.p4ux-dashboard-hero::before{content:"";position:absolute;z-index:-1;right:-12px;top:-26px;bottom:-16px;width:min(50%,610px);background:url('../images/dashboard-hero-art.webp') center right / contain no-repeat;pointer-events:none}
.p4ux-dashboard-hero .p4ux-hero-copy{position:relative;z-index:1;max-width:800px;padding:7px 0}
.p4ux-dashboard-hero h1{font-size:clamp(27px,3.1vw,43px)!important;letter-spacing:-1.6px!important;text-transform:none!important;margin:5px 0 7px!important;line-height:1.1!important;color:#101115}
.p4ux-wave{font-family:system-ui,sans-serif;font-size:.65em;vertical-align:10%}
.p4ux-dashboard-hero p{font-size:13px!important;font-weight:500;color:#5f6774!important;margin:0}
.p4ux-dashboard-hero .p4-eyebrow{color:#8b7100;font-size:9px;letter-spacing:2.3px}
.p4ux-dashboard>.p4ux-search{width:min(920px,76%);max-width:920px;margin:0 0 13px;padding:13px 16px 15px 74px;min-height:83px;display:flex;flex-direction:column;justify-content:center;box-shadow:var(--p4-elevation);border:1px solid var(--p4-softline);border-radius:13px;background:#fff;position:relative}
.p4ux-dashboard>.p4ux-search::before{content:"";position:absolute;left:16px;top:50%;transform:translateY(-50%);background:#ffdf68;width:45px;height:45px;border-radius:12px}
.p4ux-dashboard>.p4ux-search::after{content:"";position:absolute;left:31px;top:calc(50% - 8px);height:14px;width:14px;border:3px solid #121319;border-radius:50%;box-sizing:border-box;box-shadow:7px 8px 0 -5px #121319;transform:rotate(-10deg);pointer-events:none}
.p4ux-dashboard>.p4ux-search label{font-size:12px;font-weight:800;margin:0 0 5px;color:#141619}
.p4ux-dashboard>.p4ux-search .p4ux-search-field{height:37px;padding:0 11px;border:1px solid #e5e8ed;background:#f5f6f8;border-radius:8px}
.p4ux-dashboard>.p4ux-search .p4ux-search-field input{font-size:12px!important}
.p4ux-dashboard>.p4ux-search .p4ux-search-field>span{display:none}
.p4ux-dashboard>.p4ux-search .p4ux-search-results{top:calc(100% - 1px);left:74px;right:16px}
.p4ux-search-results{border:1px solid #e1e3e7;box-shadow:0 13px 35px rgba(0,0,0,.12);border-radius:11px!important}
.p4ux-result{padding:12px 16px;transition:background .12s}
.p4ux-result strong{font-size:13px}
.p4ux-result small{font-size:11px}
.p4ux-launch-warning{margin:9px 0 14px!important;font-size:11px;border:1px solid #ebcd6f;border-left:4px solid #d5a300;border-radius:8px;background:#fff3d2;color:#6b510d;padding:10px 17px;line-height:1.45}
.p4ux-section-title{margin:18px 0 11px!important;gap:12px}
.p4ux-section-title h2,.p4ux-surface-head h2{font-family:var(--p4-display);font-weight:400;font-size:16px;line-height:1.2;color:#151619;letter-spacing:-.35px}
.p4ux-section-glyph{display:inline-flex;align-items:center;justify-content:center;color:#d0a100;vertical-align:baseline;font-family:var(--p4-ui);font-weight:800;margin-right:6px}
.p4ux-subtle{font-size:10px;color:#91949a;font-weight:600}
.p4ux-action-cards{gap:13px}
.p4ux-action-card{min-height:94px;display:flex;align-items:center;gap:17px;border:1px solid #eceef1;border-radius:12px;padding:17px 19px;box-shadow:var(--p4-elevation);transition:transform .17s,box-shadow .17s}
.p4ux-action-card--registration{background:linear-gradient(155deg,#fff,#fffae9)}
.p4ux-action-card--licence{background:linear-gradient(155deg,#fff,#f5f6f9)}
.p4ux-action-card--attendance{background:linear-gradient(155deg,#fff,#fff0f0)}
.p4ux-action-card:hover{transform:translateY(-3px);box-shadow:0 11px 22px rgba(0,0,0,.075)}
.p4ux-metric-icon{display:grid;place-items:center;border-radius:13px;width:51px;height:51px;flex:0 0 51px;background:#ffe78e;color:#16181b}
.p4ux-action-card--licence .p4ux-metric-icon{background:#e9eaed}
.p4ux-action-card--attendance .p4ux-metric-icon{background:#fadbdc;color:#981d29}
.p4ux-icon{width:25px;height:25px;display:block}
.p4ux-metric-copy{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.p4ux-metric-copy>strong{font:400 clamp(25px,2.4vw,32px)/1 var(--p4-display);color:#171819}
.p4ux-metric-copy>span{font-size:12px;font-weight:650;color:#292d35;line-height:1.35}
.p4ux-action-card .p4ux-arrow{width:31px;height:31px;flex:0 0 31px;display:grid;place-items:center;background:rgba(0,0,0,.045);border-radius:50%;font-size:25px;font-weight:650;line-height:1;color:#202329}
.p4ux-action-card--registration .p4ux-arrow{background:#fff0c6}
.p4ux-action-card--attendance .p4ux-arrow{background:#fbe0e1}
.p4ux-surface,.p4ux-hub-grid a{box-shadow:var(--p4-elevation);border-color:var(--p4-softline);border-radius:12px}
.p4ux-next-actions{padding:0 22px 10px!important;margin:13px 0!important}
.p4ux-next-actions>.p4ux-surface-head{margin:0;min-height:50px;border-bottom:1px solid #e9ebee}
.p4ux-next-actions .p4ux-task{display:grid;grid-template-columns:105px minmax(0,1fr) 20px;gap:16px;min-height:49px;padding:9px 0;border-top:0;border-bottom:1px solid #eceef1;transition:background .15s}
.p4ux-task:hover{background:#fffdf5}
.p4ux-task>span:last-child{font-size:19px;text-align:right;color:#17191e}
.p4ux-task-label{min-width:0;padding:8px 9px;border-radius:6px;font-size:9px!important;font-weight:800;text-transform:uppercase;color:#604e18;background:#fff2c8}
.p4ux-task-label--attendance{color:#9b2d37;background:#ffe6e8}
.p4ux-task-label--licence{color:#52606c;background:#edf0f4}
.p4ux-task strong{font-size:12px;line-height:1.45;font-weight:800}
.p4ux-task small{font-size:10px!important;margin-top:2px}
.p4ux-task-footer{padding:9px 0 0;font-size:10px;border-top:0}
.p4ux-textlink{font-size:10px;font-weight:800;color:#987300!important}
.p4ux-shortcuts{gap:12px}
.p4ux-shortcuts>a{flex-direction:row;align-items:center;min-height:71px;padding:12px 14px;gap:12px;box-shadow:var(--p4-elevation);border:1px solid #eaecf0;border-radius:12px}
.p4ux-shortcut-icon{display:grid;place-items:center;background:#ffda53;width:44px;height:44px;flex:0 0 44px;border-radius:50%;color:#17191d}
.p4ux-shortcuts>a span.p4ux-shortcut-icon .p4ux-icon{width:21px;height:21px}
.p4ux-shortcut-copy{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.p4ux-shortcuts>a .p4ux-shortcut-copy strong{font-size:12px;line-height:1.15;color:#1a1b1e}
.p4ux-shortcuts>a .p4ux-shortcut-copy small{font-size:10px;color:#858992;line-height:1.3}
.p4ux-shortcut-arrow{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:50%;background:#f0f2f4;color:#191b1f!important;font-size:25px!important;line-height:1}
.p4ux-club-grid{gap:13px}
.p4ux-club-grid>a{min-height:87px;padding:18px 20px;position:relative;isolation:isolate;overflow:hidden;box-shadow:var(--p4-elevation);border:1px solid #252629;transition:transform .18s}
.p4ux-club-grid>a::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.24;background:radial-gradient(circle at 78% 15%,#9b873d 0,transparent 22%),linear-gradient(145deg,transparent 45%,#606063 100%)}
.p4ux-club-grid>a:hover{transform:translateY(-3px)}
.p4ux-club-grid>a .p4ux-club-mark{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;padding:0;background:#2c2d30;border-radius:9px;color:#ffd214;font-size:18px}
.p4ux-club-grid>a strong{font-size:15px}
.p4ux-club-grid>a small{font-size:10px}
.p4ux-club-grid>a>span:last-child{font-size:19px;color:#fff;background:rgba(255,255,255,.12);border-radius:50%;width:34px;height:34px;display:grid;place-items:center}
.p4ux-dashboard-more{margin-top:13px!important;border:1px solid #eceef0;border-radius:11px;padding:0;background:#fff;box-shadow:var(--p4-elevation)}
.p4ux-dashboard-more>summary{padding:12px 18px;display:flex;gap:13px;align-items:center;list-style:none;cursor:pointer;min-height:56px}
.p4ux-dashboard-more>summary::-webkit-details-marker{display:none}
.p4ux-dashboard-more>summary::after{content:'›';margin-left:auto;font-size:25px;font-weight:700;color:#393a3b}
.p4ux-dashboard-more[open]>summary::after{transform:rotate(90deg)}
.p4ux-dashboard-more>summary .p4ux-more-icon{font-size:25px}
.p4ux-dashboard-more>summary strong{font-size:11px;display:block}
.p4ux-dashboard-more>summary small{font-size:10px;color:#84888f;display:block;margin-top:4px}
.p4ux-dashboard-more .p4ux-mini-stats,.p4ux-dashboard-more>.p4ux-hint{margin-left:18px;margin-right:18px}
/* Consistent premium treatment for student, guardian, forms and existing modules. */
.p4-app .p4-heading h1,.p4ux-profile-heading h1{letter-spacing:-.9px}
.p4ux-profile-heading{background:linear-gradient(120deg,#fff,#fafaf8);border:1px solid #e9ebed;border-radius:16px;padding:20px;box-shadow:var(--p4-elevation)}
.p4ux-profile-avatar{width:60px;height:60px;flex-basis:60px;background:linear-gradient(155deg,#17181c,#303134);border-radius:15px;color:#fbd22c}
.p4ux-tabs{padding:5px 7px;border-radius:12px;box-shadow:var(--p4-elevation);gap:3px}
.p4ux-tabs a{font-size:12px;padding:13px 15px;border-radius:8px;border-bottom:0}
.p4ux-tabs a.is-current{background:#17181b;color:#f2c300!important;border-bottom:0}
.p4ux-profile-stats>div{padding:19px;border-radius:12px;box-shadow:var(--p4-elevation)}
.p4ux-profile-stats small{font-size:11px}
.p4ux-profile-stats strong{font-size:13px}
.p4ux-attention,.p4ux-surface{border-radius:12px}
.p4ux-detail{font-size:13px}.p4ux-detail strong{font-size:13px}
.p4ux-next-links a{border-radius:10px;padding:18px;font-size:12px}
.p4ux-hub-grid a{padding:24px;transition:box-shadow .15s,transform .15s}
.p4ux-hub-grid a:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.06)}
.p4-app .p4-card{border-radius:13px;border-color:#e7e9ec;box-shadow:var(--p4-elevation)}
.p4-app .p4-button{border-radius:8px}
.p4-app .p4-status{border-radius:7px}
/* Tablet and mobile: avoid a cramped permanent sidebar and oversized hero artwork. */
@media(max-width:1250px){
 .p4ux-topbar-search{max-width:440px}
 .p4-app .p4-topbar-end{gap:10px}
 .p4-app .p4-sidebar{width:232px!important;flex-basis:232px!important}
 .p4-app.is-nav-collapsed .p4-sidebar{margin-left:-232px!important}
 .p4ux-dashboard>.p4ux-search{width:min(880px,83%)}
 .p4ux-shortcuts>a{gap:8px;padding:11px}
 .p4ux-shortcut-icon{width:36px;height:36px;flex-basis:36px}
 .p4ux-shortcuts>a .p4ux-shortcut-copy small{font-size:9px}
}
@media(max-width:980px){
 .p4-app .p4-topbar{height:68px}
 .p4-app .p4-layout{display:block;min-height:calc(100vh - 68px)}
 .p4-app .p4-sidebar{position:fixed!important;left:0!important;top:68px!important;bottom:0!important;width:min(290px,85vw)!important;flex-basis:auto!important;height:calc(100vh - 68px);min-height:0!important;z-index:81!important;transform:translateX(-110%)!important;margin-left:0!important;box-shadow:8px 0 20px rgba(0,0,0,.2)!important;transition:transform .18s ease!important}
 .p4-app.is-menu-open .p4-sidebar{transform:translateX(0)!important}
 .p4-app.is-menu-open .p4-sidebar-scrim{display:block!important;position:fixed;inset:68px 0 0;background:rgba(0,0,0,.5);z-index:80!important}
 .p4-app .p4-main{padding:23px clamp(16px,3.5vw,34px) 60px}
 .p4ux-topbar-search{display:none}
 .p4ux-header-find{display:inline-flex}
 .p4-app .p4-sidebar-art{margin-top:36px}
 .p4ux-dashboard-hero::before{right:-30px;width:44%;opacity:.75}
}
@media(max-width:720px){
 .p4ux-dashboard-hero{min-height:110px}
 .p4ux-dashboard-hero::before{display:none}
 .p4ux-dashboard>.p4ux-search{width:100%;max-width:none}
 .p4ux-action-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .p4ux-action-card{padding:13px 10px;min-height:92px;gap:8px;flex-wrap:wrap}
 .p4ux-metric-icon{width:35px;height:35px;flex-basis:35px;border-radius:10px}
 .p4ux-metric-icon svg{width:19px;height:19px}
 .p4ux-metric-copy{flex:1 1 60%;gap:2px}
 .p4ux-metric-copy>strong{font-size:25px}
 .p4ux-metric-copy>span{font-size:10px;overflow-wrap:anywhere}
 .p4ux-action-card .p4ux-arrow{display:none}
 .p4ux-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 .p4ux-shortcuts>a{min-height:72px}
 .p4ux-club-grid{grid-template-columns:1fr}
 .p4ux-next-actions{padding:0 15px 10px!important}
 .p4ux-next-actions .p4ux-task{grid-template-columns:80px minmax(0,1fr) 15px;gap:9px}
 .p4ux-task-label{font-size:8px!important;padding:6px 4px}
 .p4ux-task strong{font-size:11px}
 .p4ux-profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .p4ux-tabs{gap:2px}
 .p4ux-tabs a{font-size:11px;padding:11px}
}
@media(max-width:455px){
 .p4-app .p4-topbar{padding:0 12px;gap:6px}
 .p4-app .p4-topbar-start{gap:7px}
 .p4-app .p4-header-logo{width:73px;height:53px}
 .p4-app .p4-topbar-end{gap:4px}
 .p4-app .p4-signout{font-size:10px}
 .p4-app .p4-avatar{height:32px;width:32px}
 .p4ux-dashboard-hero h1{font-size:29px!important}
 .p4ux-dashboard-hero p{font-size:12px!important}
 .p4ux-subtle{font-size:9px;text-align:right}
 .p4ux-action-card{min-height:102px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
 .p4ux-metric-copy>strong{font-size:23px}
 .p4ux-metric-copy>span{font-size:9px}
 .p4ux-shortcuts>a .p4ux-shortcut-copy small{display:none}
 .p4ux-shortcuts>a .p4ux-shortcut-copy strong{font-size:11px}
 .p4ux-shortcut-arrow{width:22px;height:22px;flex-basis:22px;font-size:20px!important}
 .p4ux-profile-heading{padding:15px}
}
@media(prefers-reduced-motion:reduce){.p4-app .p4-sidebar,.p4ux-action-card,.p4ux-shortcuts>a,.p4ux-club-grid>a{transition:none!important}}
/* The approved artwork already contains its own caption. Do not print it twice. */
.p4-app .p4-sidebar-art>span{display:none!important}

/* v0.9.5: sidebar must fit a desktop viewport without its own scrollbar. */
@media (min-width:981px) and (max-height:800px){
 .p4-app .p4-sidebar{padding-top:12px;padding-bottom:0;gap:4px}
 .p4-app .p4-sidebar-intro{padding-top:5px;padding-bottom:9px}
 .p4-app .p4-nav{gap:2px}
 .p4-app .p4-nav-item{min-height:40px;padding-top:7px;padding-bottom:7px}
 .p4-app .p4-sidebar-art{max-height:180px}
}
@media (min-width:981px) and (max-height:570px){
 .p4-app .p4-sidebar-art{display:none!important}
 .p4-app .p4-sidebar-intro{padding-bottom:4px}
 .p4-app .p4-nav-item{min-height:36px;padding-top:5px;padding-bottom:5px}
}
/* On mobile, remove only the decorative photo from the drawer; retain scroll access to links on tiny screens. */
@media (max-width:980px){
 .p4-app .p4-sidebar-art{display:none!important}
 .p4-app .p4-sidebar{overflow-y:auto!important}
}

/* v0.10 Phase 2: focused registrations and payment review. Preserve v0.9.5 dashboard/sidebar. */
.p4-app .p4p2-tabs{display:flex;gap:9px;flex-wrap:wrap;margin:15px 0 14px;border-bottom:1px solid #e4e5e6;padding-bottom:10px}
.p4-app .p4p2-tabs a{display:inline-flex;align-items:center;gap:9px;text-decoration:none;padding:12px 18px;background:#fff;border:1px solid #ececed;border-radius:10px;color:#4e5157;font:800 12px/1.3 var(--p4-ui);transition:.2s}
.p4-app .p4p2-tabs a span{background:#f4f4f3;padding:3px 8px;border-radius:20px;color:#5c5e64}
.p4-app .p4p2-tabs a.is-active{background:#111114;color:#fff;border-color:#111114;box-shadow:0 7px 14px rgba(0,0,0,.12)}
.p4-app .p4p2-tabs a.is-active span{background:#f2c300;color:#111114}
.p4-app .p4p2-filter-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}
.p4-app .p4p2-filter-row a{display:inline-block;border:1px solid #e3e3e5;padding:9px 14px;border-radius:30px;background:#fff;color:#505158;font:700 11px var(--p4-ui);text-decoration:none}
.p4-app .p4p2-filter-row a.is-active{background:#f2c300;border-color:#f2c300;color:#151515}
.p4-app .p4p2-queue{border-radius:15px!important;overflow:hidden}
.p4-app .p4p2-kind{display:inline-block;padding:8px 10px;border-radius:7px;font:800 10px var(--p4-ui);white-space:nowrap;background:#fff4cf;color:#806000}
.p4-app .p4p2-kind.is-existing{background:#ebedf0;color:#454a53}
.p4-app .p4p2-card-caption{font-size:11px;color:#777}
.p4-app details.p4p2-settings{border:1px solid #e5e6e8;background:#fff;border-radius:12px;margin:16px 0;overflow:hidden}
.p4-app details.p4p2-settings>summary{list-style:none;cursor:pointer;font:800 12px var(--p4-ui);padding:16px 20px;display:flex;justify-content:space-between;align-items:center;color:#27272b}
.p4-app details.p4p2-settings>summary::-webkit-details-marker{display:none}
.p4-app details.p4p2-settings>summary:after{content:'+';font-size:20px;font-weight:500;color:#b39000}
.p4-app details.p4p2-settings[open]>summary:after{content:'−'}
.p4-app details.p4p2-settings>section,.p4-app details.p4p2-settings>.p4-payment-columns,.p4-app details.p4p2-settings>.p4-payment-future{margin:0 15px 15px}
.p4-app details.p4p2-settings .p4-card{box-shadow:none!important}
.p4-app .p4p2-review-page{min-width:0}
.p4-app .p4p2-review-header{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin:12px 0 16px}
.p4-app .p4p2-review-header h1{font:800 clamp(26px,2.5vw,38px)/1.12 var(--p4-ui);letter-spacing:-.8px;margin:6px 0 7px;color:#18191d}
.p4-app .p4p2-review-header p{margin:0;color:#6d7076;font-size:12px}
.p4-app .p4p2-pdf-button{white-space:normal;text-align:center;background:#111114;color:#fff!important;border-radius:8px;padding:12px 18px}
.p4-app .p4p2-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px}
.p4-app .p4p2-summary-strip>div{padding:16px 18px;border-radius:11px;border:1px solid #ededee;background:#fff;display:flex;flex-direction:column;gap:8px}
.p4-app .p4p2-summary-strip small{font:700 10px var(--p4-ui);color:#7b7b84}
.p4-app .p4p2-summary-strip strong{font:800 12px/1.45 var(--p4-ui);color:#202027}
.p4-app .p4p2-review-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:17px;align-items:start}
.p4-app .p4p2-review-body,.p4-app .p4p2-review-aside{min-width:0}
.p4-app .p4p2-review-aside{position:sticky;top:90px}
.p4-app .p4p2-review-aside>.p4-card{margin:0}
.p4-app .p4p2-review-switch{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 13px;padding:5px;background:#fff;border:1px solid #e8e8e9;border-radius:11px}
.p4-app .p4p2-review-switch button{flex:1 1 auto;border:0;border-radius:7px;background:transparent;color:#5e6166;padding:12px 11px;cursor:pointer;font:800 11px var(--p4-ui)}
.p4-app .p4p2-review-switch button.is-active{background:#111114;color:#fff}
.p4-app .p4p2-view-panel[hidden]{display:none!important}
.p4-app .p4p2-view-panel>.p4-card{margin-bottom:12px}
.p4-app .p4p2-form-group{margin:0 0 13px;border-radius:11px!important}
.p4-app .p4p2-form-group>h2{font:800 13px var(--p4-ui);margin:0 0 18px;padding:0 0 11px;border-bottom:2px solid #f2c300;color:#191a20}
.p4-app .p4p2-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 22px}
.p4-app .p4p2-field{min-width:0;display:flex;flex-direction:column;gap:7px;overflow-wrap:anywhere}
.p4-app .p4p2-field small{font:600 10px/1.35 var(--p4-ui);color:#7c8086}
.p4-app .p4p2-field strong{font:750 12px/1.5 var(--p4-ui);color:#202126;white-space:pre-wrap;overflow-wrap:anywhere}
.p4-app .p4p2-bulk-select{display:inline-flex;gap:6px;align-items:center;margin-bottom:6px;color:#806000;font-size:10px;font-weight:750;cursor:pointer}
.p4-app #p4p2-bulk-form{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding-top:15px;border-top:1px solid #ececf0}
.p4-app #p4p2-bulk-form .p4-help{flex:1 1 230px}
.p4-app .p4p2-license-dialog{border:1px solid #e6e6e8;border-radius:16px;background:#fff;padding:25px;max-width:min(470px,calc(100vw - 30px));width:100%;box-shadow:0 22px 70px rgba(0,0,0,.22);color:#111114}
.p4-app .p4p2-license-dialog::backdrop{background:rgba(11,11,16,.64)}
.p4-app .p4p2-license-dialog h2{font:800 21px/1.15 var(--p4-ui);margin:0 0 8px}
.p4-app .p4p2-license-dialog p{font-size:12px;line-height:1.6;color:#60646a}
.p4-app .p4p2-license-choices{display:grid;gap:9px;margin:18px 0}
.p4-app .p4p2-license-choices a{display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:9px;padding:14px;border:1px solid #dedfe1;color:#202126;text-decoration:none;font:800 12px var(--p4-ui)}
.p4-app .p4p2-license-choices a:hover{border-color:#f2c300;background:#fff9df}
@media(max-width:1050px){.p4-app .p4p2-review-layout{grid-template-columns:1fr}.p4-app .p4p2-review-aside{position:static}.p4-app .p4p2-review-aside>.p4-card{margin-bottom:16px}}
@media(max-width:620px){.p4-app .p4p2-summary-strip{grid-template-columns:1fr}.p4-app .p4p2-form-grid{grid-template-columns:1fr}.p4-app .p4p2-tabs a{flex:1 1 140px;justify-content:center}.p4-app .p4p2-review-header{align-items:stretch}.p4-app .p4p2-pdf-button{width:100%}.p4-app .p4p2-review-switch button{padding:10px 8px;font-size:10px}}
.p4-app .p4p2-profile-document{margin:15px 0 0;padding:17px;border-radius:10px;background:#f9f8f3;border:1px solid #ebe1bf}
.p4-app .p4p2-profile-document>strong{display:block;font:800 12px var(--p4-ui);margin-bottom:5px}
.p4-app .p4p2-profile-document .p4-button{margin-top:8px}
.p4-app #p4p2-bulk-form .p4p2-bulk-confirm{display:flex;align-items:flex-start;gap:9px;width:100%;font:700 11px/1.5 var(--p4-ui);color:#24262b}
.p4-app #p4p2-bulk-form .p4p2-bulk-confirm input{width:17px;height:17px;flex:0 0 17px;margin:0}
.p4-app .p4p2-correction-form{padding:16px 20px 22px}
.p4-app .p4p2-correction-form textarea{width:100%;min-height:95px}

/* P4TKD v0.11.0 — owner club and class hubs, purposeful black/gold UI. */
.p4-app .p4ph-head{background:linear-gradient(125deg,#18191c,#272523);border-radius:15px;padding:27px 31px 28px;color:#fff;margin:0 0 16px;position:relative;overflow:hidden}
.p4-app .p4ph-head:after{content:"P4";position:absolute;right:24px;bottom:-40px;font-weight:950;font-size:150px;color:rgba(242,195,0,.055);pointer-events:none;line-height:1}
.p4-app .p4ph-back{display:inline-block;color:#f2c300!important;font-size:12px;font-weight:800;margin-bottom:21px}
.p4-app .p4ph-head .p4-eyebrow{color:#f2c300;font-size:10px;letter-spacing:2px}
.p4-app .p4ph-head h1{color:#fff;font-size:clamp(26px,3vw,39px);font-weight:850;letter-spacing:-.9px;line-height:1.13;margin:8px 0 9px;position:relative;z-index:1}
.p4-app .p4ph-head p{color:#dedee1;font-size:13px;line-height:1.6;margin:0;position:relative;z-index:1}
.p4-app .p4ph-tabs{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;margin:0 0 22px;padding:6px;background:#fff;border:1px solid #e5e5e8;border-radius:12px;scrollbar-width:thin}
.p4-app .p4ph-tabs a{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:12px 19px;color:#61646b!important;border-radius:9px;font-size:12px;font-weight:850;white-space:nowrap}
.p4-app .p4ph-tabs a.is-on{background:#17181a;color:#f2c300!important}
.p4-app .p4ph-tabs a:hover:not(.is-on){background:#f4f4f3;color:#111!important}
.p4-app .p4ph-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:0 0 22px}
.p4-app .p4ph-metric{background:#fff;padding:22px 23px;border-radius:12px;border:1px solid #e8e8ea;box-shadow:0 5px 23px rgba(20,20,20,.025);display:flex;flex-direction:column;gap:6px}
.p4-app .p4ph-metric strong{font-size:27px;line-height:1.1;font-weight:850;color:#171719}
.p4-app .p4ph-metric span{font-size:11px;font-weight:650;color:#777980}
.p4-app .p4ph-split{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(250px,.75fr);gap:18px;align-items:start}
.p4-app .p4ph-split .p4-card,.p4-app .p4ph-sessions,.p4-app .p4ph-add{border-radius:13px}
.p4-app .p4ph-class-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.p4-app .p4ph-class-row{display:flex;align-items:center;gap:13px;border:1px solid #ededee;border-radius:10px;padding:13px 16px;background:#fafaf9;min-width:0;transition:background .15s,border-color .15s}
.p4-app .p4ph-class-row:hover{background:#fff9dc;border-color:#e7c243}
.p4-app .p4ph-time{background:#19191b;color:#f2c300;padding:12px 9px;border-radius:8px;font-weight:850;font-size:13px;min-width:65px;text-align:center}
.p4-app .p4ph-class-name{display:flex;flex:1;flex-direction:column;gap:5px;min-width:0}
.p4-app .p4ph-class-name strong,.p4-app .p4ph-class-row>strong{font-size:13px;line-height:1.4;color:#19191b}
.p4-app .p4ph-class-name small,.p4-app .p4ph-class-row>small{color:#777980;font-size:11px}
.p4-app .p4ph-arrow{margin-left:auto;color:#987900;font-weight:900;font-size:20px}
.p4-app .p4ph-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:15px}
.p4-app .p4ph-section-head h2,.p4-app .p4-card>.p4ph-section-head h2{margin:0;font-size:18px;font-weight:850;color:#141417}
.p4-app .p4ph-section-head a{font-size:12px;font-weight:800;color:#927300!important}
.p4-app .p4ph-section-head>span{font-weight:700;color:#80838b;font-size:12px}
.p4-app .p4ph-actions{display:flex;flex-direction:column;gap:11px;margin-top:20px}
.p4-app .p4ph-actions .p4-button{display:block;width:100%;text-align:center;font-size:12px}
.p4-app .p4ph-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:14px}
.p4-app .p4ph-action{border:1px solid #e5e5e7;border-radius:12px;padding:20px;background:#fff;display:flex;flex-direction:column;gap:10px;transition:border-color .14s,transform .14s}
.p4-app .p4ph-action:hover{border-color:#eac339;transform:translateY(-2px)}
.p4-app .p4ph-action b{display:flex;align-items:center;justify-content:center;width:45px;height:45px;border-radius:12px;background:#f2c300;color:#141414;font-size:22px}
.p4-app .p4ph-action strong{font-weight:850;font-size:13px;color:#1b1b1d}
.p4-app .p4ph-action small{color:#787b80;font-size:11px}
.p4-app .p4ph-filter{display:flex;flex-wrap:wrap;gap:8px;padding:6px;border-radius:11px;background:#f4f4f4;margin-bottom:18px}
.p4-app .p4ph-filter a{padding:11px 19px;color:#62666b;font-weight:850;font-size:12px;border-radius:8px}
.p4-app .p4ph-filter a.is-on{background:#161619;color:#f2c300}
.p4-app .p4ph-roster{display:flex;flex-direction:column;gap:0;min-width:0}
.p4-app .p4ph-roster>a,.p4-app .p4ph-roster-row{display:flex;align-items:center;gap:15px;border-top:1px solid #ededed;padding:16px 8px;min-width:0;font-size:12px}
.p4-app .p4ph-roster>a:first-child,.p4-app .p4ph-roster-row:first-child{border-top:0}
.p4-app .p4ph-roster>a>strong,.p4-app .p4ph-roster-row>a>strong,.p4-app .p4ph-roster-row>span>strong{font-size:13px;color:#1a1b1d;font-weight:850;display:block}
.p4-app .p4ph-roster>a>span,.p4-app .p4ph-roster-row a>span,.p4-app .p4ph-roster-row>span small{color:#85878d;font-size:11px;line-height:1.6;display:block}
.p4-app .p4ph-roster>a>b{margin-left:auto;color:#ad8600}
.p4-app .p4ph-roster-row>a{min-width:0;flex:1}
.p4-app .p4ph-role{font-size:10px!important;font-weight:850!important;border-radius:25px;background:#ebebee;color:#4e5056!important;padding:7px 11px;white-space:nowrap}
.p4-app .p4ph-role.is-main{background:#fff1bb;color:#785e00!important}
.p4-app .p4ph-role.is-bonus{background:#e7eefb;color:#435577!important}
.p4-app .p4ph-remove{background:transparent;border:0;color:#9b4747!important;font-size:11px;cursor:pointer;text-decoration:underline;font-weight:800}
.p4-app .p4ph-add{margin-top:16px}
.p4-app .p4ph-add summary{cursor:pointer;font-weight:850;font-size:14px;list-style:none}
.p4-app .p4ph-add summary:before{content:"＋";color:#a07c00;margin-right:9px}
.p4-app .p4ph-add>p{margin:20px 0}
.p4-app .p4ph-session-row{display:flex;gap:13px;align-items:center;padding:14px 12px;border-top:1px solid #ececec;color:#1b1b1d!important;min-width:0}
.p4-app .p4ph-session-row>strong{flex:1;font-size:13px}
.p4-app .p4ph-session-row>span:not(.p4ph-role){font-size:11px;color:#777980}
.p4-app .p4ph-session-row>b{font-size:17px;color:#917400}
.p4-app .p4ph-club-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:21px}
.p4-app .p4ph-club-shortcuts a{display:flex;align-items:center;gap:15px;background:linear-gradient(115deg,#171717,#31302c);color:#fff!important;border-radius:12px;padding:19px 22px;min-width:0}
.p4-app .p4ph-club-monogram{display:flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;color:#f2c300;font-weight:900;background:#313131;border-radius:9px}
.p4-app .p4ph-club-shortcuts strong{font-size:15px}
.p4-app .p4ph-club-shortcuts a>span:last-child{margin-left:auto;font-size:11px;color:#f2c300}
.p4-app .p4ph-session-detail{background:#fff;border:1px solid #e3e3e3;border-radius:12px;margin:14px 0 22px;overflow:hidden}
.p4-app .p4ph-session-detail>summary{cursor:pointer;padding:20px 24px;display:flex;justify-content:space-between;gap:20px;font-size:15px;font-weight:850;list-style:none}
.p4-app .p4ph-session-detail>summary::-webkit-details-marker{display:none}
.p4-app .p4ph-session-detail>summary span{color:#8a8a8a;font-size:11px;font-weight:500}
.p4-app .p4ph-session-detail>summary:before{content:"▸";color:#9c7800;margin-right:8px}
.p4-app .p4ph-session-detail[open]>summary:before{content:"▾"}
.p4-app .p4ph-session-detail>.p4-card{border:0;box-shadow:none;margin-bottom:0;border-top:1px solid #ebebeb}
.p4-app .p4-attendance-choices .is-excused{border:1px solid #d8c893;background:#fff8da;color:#775d00}
.p4-app .p4-attendance-row.p4-attendance-excused{background:#fffaf0}
.p4-app .p4-attendance-choices .is-clear{font-size:10px;color:#555;background:transparent;border:1px solid #dedede}
.p4-app .p4ph-select-student{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.p4-app .p4ph-select-student label{flex:1;min-width:200px}
.p4-app .p4ph-select-student .p4-button{margin-bottom:0}
@media(max-width:960px){.p4-app .p4ph-split{grid-template-columns:1fr}.p4-app .p4ph-action-grid{grid-template-columns:1fr 1fr}.p4-app .p4ph-club-shortcuts{grid-template-columns:1fr}}
@media(max-width:640px){.p4-app .p4ph-head{padding:23px}.p4-app .p4ph-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.p4-app .p4ph-metric{padding:16px}.p4-app .p4ph-metric strong{font-size:24px}.p4-app .p4ph-tabs a{padding:10px 13px}.p4-app .p4ph-action-grid{grid-template-columns:1fr}.p4-app .p4ph-roster-row{flex-wrap:wrap}.p4-app .p4ph-session-row{flex-wrap:wrap}.p4-app .p4ph-session-row>span:not(.p4ph-role){width:100%;order:3}.p4-app .p4ph-club-shortcuts a{padding:15px}}

.p4-app .p4-attendance-summary{grid-template-columns:repeat(5,minmax(0,1fr))}
.p4-app .p4-attendance-summary>.is-excused::before{background:#bb9632}
.p4-app .p4-attendance-summary>.is-excused strong{color:#876b11}
@media(max-width:680px){.p4-app .p4-attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.p4-app .p4-attendance-choices{grid-template-columns:repeat(2,minmax(0,1fr));flex-wrap:wrap}}

.p4-app .p4ph-roster-search{display:block;font-size:12px;font-weight:800;color:#343434;margin-bottom:14px}.p4-app .p4ph-roster-search input{display:block;width:100%;margin-top:7px;padding:12px 15px;border:1px solid #dedede;border-radius:8px;background:#fbfbfb;font-size:13px}.p4-app [data-p4ph-student-row][hidden]{display:none!important}.p4-app .p4ph-closure-preview{padding:17px 20px;background:#fff9e5;border:1px solid #e9d57e;border-radius:10px;font-size:12px;line-height:1.6;color:#68571e}.p4-app .p4ph-closure-preview strong{display:block;font-size:14px;margin-bottom:8px;color:#40360e}.p4-app .p4ph-closure-preview ul{padding-left:18px;margin:7px 0}.p4-app .p4ph-closure-preview li{margin:2px 0}

/* v0.11.1: next session date sits beside the weekly day, without changing timetable layout. */
.p4-app .p4-timetable-day-name{display:flex;align-items:center;gap:11px;flex-wrap:wrap;min-width:0}
.p4-app .p4-timetable-day-head .p4-next-class-date{display:inline-flex;align-items:center;border-radius:6px;padding:5px 9px;background:#fff5d0;color:#69540a;font-size:10px;font-weight:800;line-height:1.3;letter-spacing:0;text-transform:none;white-space:nowrap}
@media(max-width:410px){.p4-app .p4-timetable-day-head{align-items:flex-start}.p4-app .p4-timetable-day-head .p4-next-class-date{white-space:normal}}


/* v0.11.2: date-specific class timetable and family cancellation clarity. */
.p4-app .p4sch-adjustment{margin:18px 0 24px;padding:0;overflow:hidden}
.p4-app .p4sch-adjustment summary{display:block;cursor:pointer;padding:19px 22px;font-weight:850;font-size:14px;list-style:none}
.p4-app .p4sch-adjustment summary:before{content:'✦';color:#ba9000;margin-right:10px}
.p4-app .p4sch-adjustment summary::-webkit-details-marker{display:none}
.p4-app .p4sch-adjustment>.p4-help,.p4-app .p4sch-adjustment>form{margin:0;padding:16px 22px 20px}
.p4-app .p4sch-adjustment>.p4-help{padding-bottom:0;border-top:1px solid #eee}
.p4-app .p4sch-upcoming{margin:0 0 22px}
.p4-app .p4sch-updated{display:inline-flex;color:#7c6100!important;font-weight:750!important;background:#fff6cc;padding:5px 9px;border-radius:6px}
.p4-app .p4sch-member-timetable{margin-top:18px}
.p4-app .p4sch-timetable{display:flex;flex-direction:column;gap:0}
.p4-app .p4sch-timetable h3{margin:17px 0 5px;padding:10px 0;font-size:14px;font-weight:850;border-bottom:1px solid #e8e8e8}
.p4-app .p4sch-timetable-row{display:flex;align-items:center;gap:16px;padding:13px 11px;border-bottom:1px solid #eee;min-width:0}
.p4-app .p4sch-timetable-time{font-weight:850;font-size:12px;min-width:96px;color:#252525}
.p4-app .p4sch-timetable-name{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.p4-app .p4sch-timetable-name strong{font-size:13px;color:#171717}
.p4-app .p4sch-timetable-name small{font-size:11px;color:#737373}
.p4-app .p4sch-timetable-state{font-size:10px;font-weight:850;white-space:normal;text-align:right;color:#665100}
.p4-app .p4sch-timetable-row.is-cancelled{background:#fff1f0;border-radius:8px;margin:4px 0}
.p4-app .p4sch-timetable-row.is-cancelled .p4sch-timetable-state{color:#a12525}
.p4-app .p4sch-attendance-row{display:flex;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid #eee}
.p4-app .p4sch-attendance-row span{min-width:85px;font-size:12px;font-weight:750}
.p4-app .p4sch-attendance-row progress{flex:1;max-width:440px;min-width:40px;height:10px;accent-color:#d7ac00}
.p4-app .p4sch-attendance-row strong{min-width:42px;font-size:12px}
.p4-app .p4sch-attendance-row small{color:#777;font-size:11px;min-width:66px}
@media(max-width:600px){.p4-app .p4sch-timetable-row{align-items:flex-start;flex-wrap:wrap;gap:8px}.p4-app .p4sch-timetable-name{flex:1 1 calc(100% - 120px)}.p4-app .p4sch-timetable-state{flex:1 0 100%;text-align:left;padding-left:6px}.p4-app .p4-family-actions{flex-wrap:wrap}}

.p4-app .p4sch-family-alert{margin:0 0 20px;background:#fff9ea;border:1px solid #edd686}
.p4-app .p4sch-family-alert h2{margin:0 0 8px;font-weight:850;color:#221c12;font-size:17px}
.p4-app .p4sch-family-alert-row{display:flex;gap:14px;align-items:center;padding:11px 0;border-top:1px solid #eedfb5;font-size:12px}
.p4-app .p4sch-family-alert-row strong{min-width:110px;color:#8d5100}
.p4-app .p4sch-family-alert-row span{flex:1}
.p4-app .p4sch-family-alert>a{display:inline-block;margin-top:13px;font-size:12px;font-weight:850}
@media(max-width:600px){.p4-app .p4sch-family-alert-row{flex-direction:column;align-items:flex-start;gap:2px}}

.p4-app .p4sch-admin-links{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 22px}.p4-app .p4sch-admin-links .p4-button{margin:0}

/* ===========================================================
   V0.12.0 - Family dashboard: compact, premium, accessible tabs
   =========================================================== */
.p4-app .p4m-page{max-width:1360px;margin:0 auto;padding-bottom:45px;font-family:var(--p4-ui)}
.p4-app .p4m-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:5px 0 20px}
.p4-app .p4m-heading h1{font:400 clamp(28px,3.3vw,47px)/1.14 var(--p4-display);letter-spacing:-.75px;color:#151618;margin:7px 0 9px}
.p4-app .p4m-heading p{color:#71747b;font-size:13px;line-height:1.7;margin:0}
.p4-app .p4m-top-actions{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 23px}
.p4-app .p4m-top-actions .p4-button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;padding:9px 16px;font-size:11px;margin:0}
.p4-app .p4m-section-title{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin:0 0 18px}
.p4-app .p4m-section-title .p4-eyebrow{font-size:9px;letter-spacing:2px;font-weight:850}
.p4-app .p4m-section-title h2,.p4-app .p4m-section-title h3{color:#1b1c20;font:400 clamp(20px,2vw,27px)/1.2 var(--p4-display);margin:5px 0 0}
.p4-app .p4m-text-link{color:#6e5200;font-size:11px;font-weight:850;text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.p4-app .p4m-text-link:hover,.p4-app .p4m-text-link:focus-visible{color:#121212;text-decoration:underline;text-underline-offset:4px}
.p4-app .p4m-profiles{margin:0 0 24px}
.p4-app .p4m-profiles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,245px),1fr));gap:12px}
.p4-app .p4m-profile-card{display:flex;align-items:center;gap:12px;min-width:0;min-height:95px;padding:17px 16px;border:1px solid #e9e8e4;border-radius:12px;background:#fff;box-shadow:0 8px 22px rgba(12,13,16,.035);text-decoration:none!important;transition:border-color .16s,transform .16s,box-shadow .16s}
.p4-app .p4m-profile-card:hover{transform:translateY(-2px);border-color:#d4bb45;box-shadow:0 13px 24px rgba(12,13,16,.085)}
.p4-app .p4m-profile-card.is-active{border-color:#c8a118;background:linear-gradient(105deg,#fffdf4,#fff 74%);box-shadow:inset 3px 0 #f2c300,0 7px 19px rgba(20,20,20,.04)}
.p4-app .p4m-profile-avatar{height:47px;width:47px;flex:0 0 47px;background:#18191b;color:#f2c300;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:900}
.p4-app .p4m-profile-copy{display:flex;flex-direction:column;min-width:0;gap:3px;flex:1}
.p4-app .p4m-profile-copy>small{font-size:9px;letter-spacing:1.2px;font-weight:850;color:#a08209}
.p4-app .p4m-profile-copy>strong{font-size:14px;color:#17181a;line-height:1.3;overflow-wrap:anywhere}
.p4-app .p4m-profile-copy>span{font-size:11px;color:#707279;line-height:1.4}
.p4-app .p4m-chevron{font-size:19px;color:#977600;margin-left:auto;flex:0 0 auto}
.p4-app .p4m-updates{margin:0 0 24px;padding:17px 20px 6px;border:1px solid #e9d9a9;background:#fffbf1;border-radius:12px}
.p4-app .p4m-updates .p4m-section-title{margin-bottom:8px}
.p4-app .p4m-updates .p4m-section-title h2{font-size:21px}
.p4-app .p4m-update-item{display:flex;align-items:center;gap:13px;padding:13px 0;border-top:1px solid #f0e3bf;text-decoration:none!important}
.p4-app .p4m-update-item>span:first-child{display:flex;align-items:center;justify-content:center;flex:0 0 34px;height:34px;border-radius:8px;background:#f2c300;color:#1c1c1c;font-size:21px;font-weight:900}
.p4-app .p4m-update-item>span:nth-child(2){display:flex;flex-direction:column;gap:2px;flex:1}
.p4-app .p4m-update-item strong{color:#23201b;font-size:12px}
.p4-app .p4m-update-item small{font-size:11px;color:#655e4c}
.p4-app .p4m-update-item b{color:#82660d;font-size:17px}
.p4-app .p4m-student{border:1px solid #e6e6e4;border-radius:15px;background:#fff;overflow:hidden;box-shadow:0 11px 30px rgba(19,19,19,.04)}
.p4-app .p4m-student-header{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:25px 28px;background:linear-gradient(110deg,#1a1a1c,#29292b);color:#fff}
.p4-app .p4m-student-header h2{font:400 clamp(25px,2.8vw,37px)/1.2 var(--p4-display);color:#fff;margin:7px 0}
.p4-app .p4m-student-header p{font-size:12px;color:#dadadd;line-height:1.6;margin:0}
.p4-app .p4m-student-grade{white-space:nowrap;color:#f2c300;border:1px solid rgba(242,195,0,.46);border-radius:100px;font-weight:850;font-size:12px;padding:11px 18px;background:rgba(242,195,0,.075)}
.p4-app .p4m-tabs{display:flex;gap:5px;overflow-x:auto;padding:0 22px;background:#fff;border-bottom:1px solid #ebebeb;scrollbar-width:thin}
.p4-app .p4m-tabs a{display:inline-block;white-space:nowrap;padding:16px 15px 13px;text-decoration:none!important;font-weight:800;font-size:12px;color:#72747c;border-bottom:3px solid transparent;transition:color .15s,background .15s}
.p4-app .p4m-tabs a:hover{color:#181818;background:#fffdf3}
.p4-app .p4m-tabs a.is-active{color:#171717;border-bottom-color:#f2c300}
.p4-app .p4m-stat-grid{padding:23px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.p4-app .p4m-stat{background:#f8f8f7;border:1px solid #eeeeeb;border-radius:10px;padding:18px 17px;min-width:0;display:flex;flex-direction:column;gap:9px}
.p4-app .p4m-stat>span{font-weight:850;font-size:9px;letter-spacing:1.1px;color:#777980}
.p4-app .p4m-stat>strong{font:800 clamp(17px,1.65vw,25px)/1.2 var(--p4-ui);color:#16171a;overflow-wrap:anywhere}
.p4-app .p4m-stat>small{font-size:11px;color:#75777c;line-height:1.5}
.p4-app .p4m-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0 23px 14px}
.p4-app .p4m-next-card,.p4-app .p4m-recent{margin:0!important;border:1px solid #eee!important;border-radius:11px!important;background:#fff!important;box-shadow:none!important;padding:22px!important}
.p4-app .p4m-next-card>.p4m-section-title{margin:0 0 14px}
.p4-app .p4m-next-card>strong{display:block;color:#1b1c1e;font-size:16px;font-weight:850;margin:0 0 8px}
.p4-app .p4m-next-card>p{font-size:12px;line-height:1.7;color:#686b72;margin:0 0 7px}
.p4-app .p4m-next-card>.p4m-text-link{margin-top:12px}
.p4-app .p4m-recent{margin:0 23px 23px!important}
.p4-app .p4m-recent .p4m-section-title{margin-bottom:12px}
.p4-app .p4m-lesson-list{display:flex;flex-direction:column;gap:0}
.p4-app .p4m-lesson-row{display:flex;align-items:center;gap:14px;min-width:0;padding:14px 0;border-top:1px solid #eeeeed;text-decoration:none!important}
.p4-app .p4m-lesson-row:hover .p4m-lesson-copy strong{color:#9c7b02}
.p4-app .p4m-date-tile{width:49px;height:51px;flex:0 0 49px;border-radius:9px;background:#f5f0dc;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#1a1b1d}
.p4-app .p4m-date-tile strong{font-size:19px;line-height:1.1;font-weight:850}
.p4-app .p4m-date-tile small{font-size:10px;font-weight:800;text-transform:uppercase;color:#907618}
.p4-app .p4m-lesson-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}
.p4-app .p4m-lesson-copy strong{font-size:13px;line-height:1.4;color:#222327}
.p4-app .p4m-lesson-copy small{font-size:11px;color:#73767d;line-height:1.45}
.p4-app .p4m-tab-content{padding:23px}
.p4-app .p4m-tab-content>.p4-card{margin:0!important}
.p4-app .p4m-hint{font-size:12px;line-height:1.7;color:#74767c;margin:4px 0 15px}
.p4-app .p4m-await{border-left:4px solid #f2c300;margin-top:15px;padding:28px!important}
.p4-app .p4m-await h2{font:400 26px/1.2 var(--p4-display);margin:9px 0}
.p4-app .p4m-await p{font-size:13px;line-height:1.7;color:#707278}
@media (max-width:1100px){.p4-app .p4m-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:690px){
 .p4-app .p4m-heading h1{font-size:31px}.p4-app .p4m-top-actions .p4-button{flex:1 1 100%;width:100%}
 .p4-app .p4m-section-title{align-items:flex-start;flex-direction:column;gap:9px}
 .p4-app .p4m-student-header{padding:21px;flex-wrap:wrap;gap:12px}.p4-app .p4m-student-header h2{font-size:29px}
 .p4-app .p4m-tabs{padding:0 8px}.p4-app .p4m-tabs a{padding:15px 12px 12px}
 .p4-app .p4m-stat-grid{gap:9px;padding:15px}.p4-app .p4m-stat{padding:14px 12px}.p4-app .p4m-stat>strong{font-size:17px}
 .p4-app .p4m-overview-grid{grid-template-columns:1fr;gap:10px;padding:0 15px 12px}
 .p4-app .p4m-next-card,.p4-app .p4m-recent{padding:17px!important}
 .p4-app .p4m-recent{margin:0 15px 15px!important}
 .p4-app .p4m-tab-content{padding:15px}
 .p4-app .p4m-updates{padding:17px 14px 4px}
}
.p4-app .p4m-renew-cta{margin:15px 0 0;border:1px solid #eaddac;border-radius:11px;padding:18px 20px;background:#fff9e7}
.p4-app .p4m-renew-cta>strong{display:block;color:#26231a;font-size:14px;font-weight:850}
.p4-app .p4m-renew-cta>p{font-size:12px;line-height:1.65;color:#6d6554;margin:8px 0 15px}
.p4-app .p4m-renew-cta .p4-button{display:inline-flex;align-items:center;justify-content:center;margin:0}

/* P4TKD v0.12.1: learning library, missed lessons and public QR feedback */
.p4lib-page,.p4lib-catch{max-width:1120px}
.p4lib-admin{padding:0!important;overflow:hidden}
.p4lib-admin summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:23px 26px;cursor:pointer;list-style:none;background:#fffdf5}
.p4lib-admin summary::-webkit-details-marker{display:none}
.p4lib-admin summary strong{font-size:17px;color:#141416}
.p4lib-admin summary span{font-size:12px;color:#73747a}
.p4lib-resource-form{display:grid;gap:17px;padding:24px 26px;border-top:1px solid #e9e8e3}
.p4lib-resource-form>label{display:flex;flex-direction:column;gap:7px}
.p4lib-resource-form input,.p4lib-resource-form textarea,.p4lib-resource-form select,.p4lib-filter select{width:100%;min-height:44px;border:1px solid #d9dadb;border-radius:8px;padding:10px 12px;color:#222;background:#fff;font-size:13px}
.p4lib-resource-form textarea{min-height:77px}
.p4lib-resource-form input[type=file]{font-size:12px}
.p4lib-input-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.p4lib-input-row>label,.p4lib-filter>label{display:flex;flex-direction:column;gap:7px}
.p4lib-resource-form .p4-button{justify-self:start}
.p4lib-filter{margin:18px 0;display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:14px;padding:18px 20px!important}
.p4lib-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:17px;margin-top:19px}
.p4lib-card{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin:0!important;padding:21px!important}
.p4lib-card h3{font:800 18px/1.25 var(--p4-ui);margin:2px 0;color:#19191b}
.p4lib-card p{font-size:12px;line-height:1.6;color:#595c63;margin:0}
.p4lib-card>small{color:#777;font-size:11px}
.p4lib-meta{display:flex;gap:7px;flex-wrap:wrap}
.p4lib-meta span{background:#fff4bc;border-radius:20px;padding:6px 10px;font-size:10px;font-weight:800;color:#554700}
.p4lib-meta span+span{background:#efeff0;color:#53545a}
.p4lib-resources{display:grid;gap:9px}
.p4lib-resource{display:flex;gap:12px;align-items:center;padding:11px 13px;background:#fafaf9;border:1px solid #e7e6e2;border-radius:9px;text-decoration:none!important;color:#1b1b1e!important}
.p4lib-resource:hover{background:#fff9df;border-color:#d5bc3b}
.p4lib-file{min-width:53px;text-align:center;border-radius:6px;background:#171719;color:#f2c300;padding:10px 7px;font-size:10px;font-weight:900;letter-spacing:.4px}
.p4lib-copy{min-width:0;display:grid;flex:1;gap:4px}
.p4lib-copy strong{font-size:12px;overflow-wrap:anywhere}
.p4lib-copy small{font-size:11px;color:#676a70;line-height:1.45}
.p4lib-deactivate{margin-top:auto}
.p4lib-inactive{margin-top:22px;padding:20px!important}
.p4lib-inactive>summary{cursor:pointer;font-weight:750}
.p4lib-inactive form{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eee;padding:13px 0;gap:15px;font-size:12px}
.p4lib-hint{font-size:12px;color:#72716b;margin:5px 0}
.p4lib-catch{padding:24px!important}
.p4lib-missed{border:1px solid #e4e4e1;border-radius:11px;background:#fff;margin:11px 0;overflow:hidden}
.p4lib-missed summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px;cursor:pointer;list-style:none}
.p4lib-missed summary::-webkit-details-marker{display:none}
.p4lib-missed summary span{display:grid;gap:5px}
.p4lib-missed summary strong{font-size:14px;color:#17171a}
.p4lib-missed summary small{font-size:12px;color:#686a70}
.p4lib-missed summary b{font-size:11px;color:#947600;white-space:nowrap}
.p4lib-missed-content{padding:17px;border-top:1px solid #ededeb;background:#fafaf9}
.p4lib-missed-content>h4{margin:16px 0 10px;font-size:13px}
.p4lib-topic{display:flex;flex-direction:column;gap:4px;margin:0 0 12px}
.p4lib-topic small{font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:1px;color:#a18108}
.p4lib-topic strong{font-size:13px}
.p4lib-matched{margin-top:18px}
.p4lib-public-response-list{margin:19px 0;padding:19px;border:1px solid #ededeb;border-radius:10px;background:#fffdf5}
.p4lib-public-response-list h3{font-size:14px;margin:0 0 6px}
.p4lib-public-response-list p{font-size:12px;color:#62636a}
.p4lib-public-response-list summary{cursor:pointer;font-weight:750;font-size:12px}
.p4lib-public-response{padding:13px 0;border-top:1px solid #e9e5d9;display:flex;flex-wrap:wrap;justify-content:space-between;gap:7px}
.p4lib-public-response span{font-size:11px;color:#7e7e84}
.p4lib-public-response p{flex-basis:100%;margin:0}
.p4-public-feedback{max-width:530px!important;margin:28px auto!important;background:#fff!important;border:1px solid #e9e9e5;border-radius:17px;padding:clamp(23px,4vw,42px)!important;box-shadow:0 18px 50px rgba(0,0,0,.06)}
.p4-public-feedback h1{font-size:clamp(25px,4vw,36px)!important;line-height:1.13;margin:9px 0 9px!important;color:#16161a}
.p4-public-feedback>p{color:#6e7077;line-height:1.6;font-size:13px;margin:0 0 22px}
.p4-public-feedback-logo{display:inline-flex;background:#171719;color:#f2c300;font-size:18px;font-weight:950;letter-spacing:1px;border-radius:9px;padding:11px 14px;margin-bottom:20px}
.p4-public-feedback-form{display:grid;gap:12px}
.p4-public-feedback-label{font-size:13px;font-weight:800;display:block;color:#19191d;margin-top:9px}
.p4-public-feedback-label small{font-size:11px;font-weight:500;color:#7a7a7a}
.p4-public-feedback-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.p4-public-feedback-choices label{position:relative;cursor:pointer;min-width:0}
.p4-public-feedback-choices input{position:absolute;opacity:0;width:1px;height:1px}
.p4-public-feedback-choices label>span{display:flex;min-height:105px;flex-direction:column;gap:10px;align-items:center;justify-content:center;padding:11px 6px;background:#fafafa;border:1px solid #dadade;border-radius:11px}
.p4-public-feedback-choices b{font-size:28px;font-weight:400}
.p4-public-feedback-choices small{font-size:11px;font-weight:800;text-align:center;color:#38383d}
.p4-public-feedback-choices input:checked+span{border:2px solid #c5a000;background:#fff9df;padding:10px 5px}
.p4-public-feedback-choices input:focus-visible+span{outline:3px solid #6a80ff;outline-offset:3px}
.p4-public-feedback-form>input,.p4-public-feedback-form>textarea{width:100%;border:1px solid #d6d8db;border-radius:9px;padding:12px;font-size:13px;background:#fff;color:#19191b}
.p4-public-feedback-form>input{min-height:47px}
.p4-public-feedback-form textarea{min-height:87px}
.p4-public-feedback-form .p4-button{width:100%;margin:9px 0 0;min-height:50px}
.p4-public-feedback-trap{position:absolute;left:-9999px;height:0;width:0;overflow:hidden}
.p4-public-feedback-thanks{background:#f0f8f0;padding:19px;border-radius:10px;border:1px solid #c9e6ce;margin-top:20px}
.p4-public-feedback-closed{background:#f6f6f4;border-radius:10px;padding:18px;color:#626267}
@media(max-width:650px){.p4lib-input-row,.p4lib-filter{grid-template-columns:1fr}.p4lib-admin summary{align-items:flex-start;flex-direction:column}.p4lib-admin summary,.p4lib-resource-form{padding:19px}.p4lib-catch{padding:17px!important}}


/* v0.12.2 — Display the real session QR on the member lesson detail, alongside the direct link. */
.p4-app .p4-feedback-member-grid{display:grid;grid-template-columns:minmax(190px,235px) minmax(0,1fr);align-items:center;gap:clamp(18px,3vw,36px)}
.p4-app .p4-feedback-member-qr{padding:20px 14px;gap:12px;max-width:235px;width:100%;box-sizing:border-box}
.p4-app .p4-feedback-member-qr .p4-qr-square{width:min(100%,190px)}
.p4-app .p4-feedback-member-qr .p4-button{font-size:11px;min-height:38px;padding:8px 12px}
.p4-app .p4-feedback-member-details{display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-width:0}
.p4-app .p4-feedback-member-details h3{font:800 clamp(18px,2vw,24px)/1.25 var(--p4-ui);margin:0;color:#111114}
.p4-app .p4-feedback-member-details p{font:500 14px/1.65 var(--p4-ui);color:#616269;margin:0;max-width:54ch}
.p4-app .p4-feedback-member-details .p4-button{display:inline-flex;justify-content:center;align-items:center;margin:0}
@media(max-width:620px){
  .p4-app .p4-feedback-member-grid{grid-template-columns:1fr;gap:20px}
  .p4-app .p4-feedback-member-qr{max-width:100%;padding:19px 14px}
  .p4-app .p4-feedback-member-details{align-items:stretch}
  .p4-app .p4-feedback-member-details .p4-button{width:100%}
}


/* v0.13.0 • Announcements & recent feedback. Matches approved P4TKD gold/black UI. */
.p4-app .p4an-page{max-width:1500px;margin:0 auto}.p4-app .p4an-grid{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr);gap:20px;align-items:start}
.p4-app .p4an-grid>.p4-card{margin:0;padding:27px;border:1px solid #e8e9eb;border-radius:14px;background:#fff;box-shadow:0 8px 28px rgba(20,20,20,.03)}
.p4-app .p4an-grid h2{font:400 22px/1.2 var(--p4-display);margin:9px 0 22px;color:#19191c}
.p4-app .p4an-form{display:grid;gap:16px}.p4-app .p4an-form>label{display:flex;flex-direction:column;gap:7px;color:#2d2e32;font-size:12px;font-weight:800}
.p4-app .p4an-form input:not([type=checkbox]),.p4-app .p4an-form textarea{display:block;width:100%;box-sizing:border-box;background:#fafafa;color:#17181a;border:1px solid #d9dce2;padding:13px 14px;border-radius:9px;font:500 13px/1.6 var(--p4-ui)}
.p4-app .p4an-form textarea{resize:vertical;min-height:145px}.p4-app .p4an-form input:focus,.p4-app .p4an-form textarea:focus{outline:2px solid #e6b900;outline-offset:1px}
.p4-app .p4an-hint{font:500 11px/1.65 var(--p4-ui);color:#65676c;margin:0}
.p4-app .p4an-form .p4an-email-check{display:flex;flex-direction:row;align-items:start;gap:11px;padding:14px;background:#fff8db;border:1px solid #f0dfa9;border-radius:10px}
.p4-app .p4an-email-check input{width:18px;height:18px;flex:0 0 18px;accent-color:#111114;margin-top:3px}
.p4-app .p4an-email-check span{display:flex;flex-direction:column;gap:4px}.p4-app .p4an-email-check strong{font-size:12px}.p4-app .p4an-email-check small{font-size:11px;font-weight:500;color:#5d573d;line-height:1.55}
.p4-app .p4an-form-actions{display:flex;gap:11px;flex-wrap:wrap}.p4-app .p4an-form-actions .p4-button{width:auto;flex:1 1 170px;min-width:0;text-align:center}
.p4-app .p4an-notice{padding:14px 17px;margin-bottom:18px;background:#fff9e2;border-left:4px solid #f2c300;border-radius:8px;font-size:12px;color:#433917;line-height:1.55}
.p4-app .p4an-panel-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.p4-app .p4an-panel-top h2{margin-bottom:20px}
.p4-app .p4an-tabs{display:flex;gap:6px}.p4-app .p4an-tabs a{text-decoration:none!important;padding:9px 12px;border-radius:8px;background:#f4f4f5;font-weight:800;font-size:11px;color:#5b5c61}.p4-app .p4an-tabs a.is-active{color:#171719;background:#f2c300}
.p4-app .p4an-item{padding:17px 0;border-top:1px solid #eeeff0}.p4-app .p4an-item-heading{display:flex;justify-content:space-between;align-items:start;gap:12px}.p4-app .p4an-item-heading>div{display:flex;flex-direction:column;gap:6px}.p4-app .p4an-item-heading strong{font-size:14px;color:#202126}.p4-app .p4an-item-heading small{font-size:10px;color:#77797d}.p4-app .p4an-item p{font-size:12px;line-height:1.7;color:#4b4d53;white-space:normal;overflow-wrap:anywhere;margin:10px 0}
.p4-app .p4an-status{background:#fff3c3;border-radius:30px;color:#604d0d;font-size:9px;font-weight:900;padding:7px 10px;text-transform:uppercase}.p4-app .p4an-email-summary{display:block;color:#77797d;font-size:10px;margin-bottom:8px}
.p4-app .p4an-item-actions{display:flex;align-items:center;gap:14px}.p4-app .p4an-item-actions a,.p4-app .p4an-item-actions button{background:none;border:0;padding:5px 0;color:#947100;font-size:11px;font-weight:800;text-decoration:none;cursor:pointer}
.p4-app .p4ux-surface.p4an-feedback{margin:14px 0;padding:0 22px 10px}.p4-app .p4an-feedback .p4ux-surface-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid #eaebec}
.p4-app .p4an-feedback-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid #ededf0;text-decoration:none!important;color:inherit}.p4-app .p4an-feedback-row:last-child{border:0}
.p4-app .p4an-feedback-rating{display:flex;align-items:baseline;justify-content:center;flex:0 0 48px;border-radius:9px;padding:11px 4px;background:#fff3bf;font-size:21px;color:#1a1a1d;font-weight:900}.p4-app .p4an-feedback-rating small{font-size:10px;margin-left:2px;color:#7d692c}
.p4-app .p4an-feedback-copy{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.p4-app .p4an-feedback-copy strong{font-size:12px;color:#1a1b1f}.p4-app .p4an-feedback-copy small{font-size:10px;color:#7b7d82}.p4-app .p4an-feedback-comment{font-size:11px;line-height:1.45;color:#51545a;overflow-wrap:anywhere}.p4-app .p4an-feedback-open{font-size:18px;color:#957600}
.p4-app .p4m-announcement{border-top:1px solid #f0e3bf}.p4-app .p4m-announcement>summary{display:flex;align-items:center;gap:13px;cursor:pointer;padding:13px 0;list-style:none}.p4-app .p4m-announcement>summary::-webkit-details-marker{display:none}
.p4-app .p4m-news-icon{display:flex;align-items:center;justify-content:center;flex:0 0 34px;height:34px;background:#f2c300;border-radius:8px;font-size:18px;color:#151515}.p4-app .p4m-announcement>summary>span:nth-child(2){display:flex;flex-direction:column;gap:3px;flex:1}.p4-app .p4m-announcement strong{font-size:12px;color:#25221a}.p4-app .p4m-announcement small{font-size:10px;color:#655e4b}.p4-app .p4m-announcement b{font-size:17px;color:#8b7011}.p4-app .p4m-announcement[open] b{transform:rotate(180deg)}
.p4-app .p4m-announcement-body{padding:0 12px 16px 47px;font:500 12px/1.7 var(--p4-ui);overflow-wrap:anywhere;color:#4b4639}
@media(max-width:980px){.p4-app .p4an-grid{grid-template-columns:1fr}}
@media(max-width:640px){.p4-app .p4an-grid>.p4-card{padding:18px}.p4-app .p4an-feedback .p4ux-surface-head{align-items:start}.p4-app .p4ux-surface.p4an-feedback{padding:0 15px 7px}.p4-app .p4an-feedback-row{gap:9px}.p4-app .p4an-feedback-rating{flex-basis:40px;padding:9px 4px;font-size:17px}}

.p4-app .p4sch-announce-next{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:12px 0 20px;padding:17px 20px;border-radius:11px;background:#fff5d6;border:1px solid #e9d48f}.p4-app .p4sch-announce-next>span{display:flex;flex-direction:column;gap:4px;flex:1}.p4-app .p4sch-announce-next strong{font-size:13px;color:#332800}.p4-app .p4sch-announce-next small{font-size:11px;color:#786626}.p4-app .p4sch-announce-next .p4-button{width:auto} @media(max-width:640px){.p4-app .p4sch-announce-next .p4-button{width:100%}}

.p4-app .p4an-form .p4an-field-label{display:inline-flex;align-items:baseline;gap:5px}.p4-app .p4an-field-label b{font-size:13px;color:#bd8500}.p4-app .p4an-field-label small{font-size:10px;color:#82858c;font-weight:500;margin-left:4px}

/* v0.13.0.1 — quick club-specific closure dates (five per weekly training day). */
.p4-app .p4ph-cancel-mode{display:flex;flex-wrap:wrap;gap:12px 22px;padding:15px 18px;margin:0;border:1px solid #e5e2d5;border-radius:10px;background:#fbfaf6}
.p4-app .p4ph-cancel-mode legend{font-weight:800;font-size:12px;color:#313136;padding:0 6px}
.p4-app .p4ph-cancel-mode label{display:inline-flex;flex-direction:row!important;align-items:center;gap:8px;font-size:12px;font-weight:700;cursor:pointer;margin:0}
.p4-app .p4ph-cancel-mode input{width:17px;height:17px;accent-color:#c8a400;margin:0}
.p4-app .p4ph-cancel-intro{display:flex;flex-direction:column;gap:4px;margin:3px 0 14px}
.p4-app .p4ph-cancel-intro strong{font-size:14px;color:#242428}
.p4-app .p4ph-cancel-intro span{font-size:12px;color:#696a6f;line-height:1.5}
.p4-app .p4ph-cancel-dates{border:0;margin:0;padding:0;min-width:0}
.p4-app .p4ph-cancel-dates legend{font-size:12px;font-weight:800;color:#69601f;padding:0 0 12px}
.p4-app .p4ph-cancel-date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.p4-app .p4ph-cancel-date{display:flex;flex-direction:row!important;justify-content:flex-start;gap:13px;align-items:center;text-align:left;padding:15px;background:#fff;border:1px solid #e3e3e5;border-radius:11px;cursor:pointer;transition:background .16s,border-color .16s,box-shadow .16s;min-width:0;margin:0}
.p4-app .p4ph-cancel-date:hover{border-color:#b79d3a;background:#fffbee}
.p4-app .p4ph-cancel-date:has(input:checked){border-color:#d1ab03;background:#fff7d5;box-shadow:inset 3px 0 #f2c300}
.p4-app .p4ph-cancel-date input{width:20px;height:20px;flex:0 0 20px;margin:0;accent-color:#c6a000}
.p4-app .p4ph-cancel-date span{display:flex;flex-direction:column;gap:4px;min-width:0}
.p4-app .p4ph-cancel-date strong{font-size:13px;color:#25252a;line-height:1.3}
.p4-app .p4ph-cancel-date small{font-size:11px;color:#777b82}
.p4-app .p4ph-cancel-date.is-closed{opacity:.65;cursor:not-allowed;background:#f5f5f5}
.p4-app [data-p4ph-upcoming][hidden],.p4-app [data-p4ph-range][hidden],.p4-app [data-p4ph-mode-switch][hidden],.p4-app [data-p4ph-club-date-list][hidden]{display:none!important}
@media(max-width:690px){.p4-app .p4ph-cancel-date-grid{grid-template-columns:1fr}.p4-app .p4ph-cancel-mode{flex-direction:column;align-items:flex-start;gap:12px}}

/* v0.13.0.3: restore an upcoming training date without crowding the existing layout. */
.p4-app .p4sch-restore-row{justify-content:space-between;flex-wrap:wrap}
.p4-app .p4sch-restore-row>span{flex:1;min-width:180px}
.p4-app .p4sch-restore-row form{margin:0;flex:0 0 auto}
.p4-app .p4sch-restore-row button{white-space:nowrap}
.p4-app .p4sch-past-closure{font-size:11px;color:#96989f}
.p4-app .p4sch-restore-hint{font-size:12px;line-height:1.6;color:#65666b;margin:8px 0 18px}
@media(max-width:560px){.p4-app .p4sch-restore-row form{width:100%}.p4-app .p4sch-restore-row form button{width:100%}}

/* P4TKD v0.14.0 | Owner Reports & Statistics. Matches the existing black/gold admin centre. */
.p4-app .p4r-filter{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;background:#fff;border:1px solid #e5e6e7;box-shadow:var(--p4-elevation);border-radius:13px;padding:18px 20px;margin:0 0 15px}
.p4-app .p4r-filter label{display:flex;flex:1 1 140px;flex-direction:column;gap:7px;color:#5c616b;font-size:11px;font-weight:750;letter-spacing:.25px;min-width:0}
.p4-app .p4r-filter select,.p4-app .p4r-filter input{width:100%;min-width:0;height:43px;border:1px solid #dcdee2;border-radius:8px;padding:0 11px;background:#fff;color:#1c1e23;font:600 12px var(--p4-ui)}
.p4-app .p4r-filter .p4-button{min-height:43px;padding:11px 18px;white-space:nowrap;margin:0}
.p4-app .p4r-context{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:5px 0 22px;color:#747984;font-size:11px;line-height:1.5}
.p4-app .p4r-context span:first-child{color:#27282c;font-weight:750}
.p4-app .p4r-tabs{margin-bottom:17px;overflow-x:auto;scrollbar-width:thin}
.p4-app .p4r-export{display:flex;justify-content:flex-end;gap:9px;margin:0 0 22px;flex-wrap:wrap}
.p4-app .p4r-export-button{margin:0;background:#151619;color:white!important;border:1px solid #151619;border-radius:8px;padding:12px 16px;text-decoration:none;font-size:11px}
.p4-app .p4r-export-button:hover{background:#f2c300;color:#101114!important;border-color:#f2c300}
.p4-app .p4r-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:20px}
.p4-app .p4r-stat{display:flex;flex-direction:column;gap:6px;padding:22px 19px;min-width:0;background:#fff;border:1px solid #e5e6e7;border-radius:13px;box-shadow:var(--p4-elevation);border-top:4px solid #f2c300}
.p4-app .p4r-stat:nth-child(2){border-top-color:#1c1d20}.p4-app .p4r-stat:nth-child(3){border-top-color:#aeb7c2}.p4-app .p4r-stat:nth-child(4){border-top-color:#d3a740}
.p4-app .p4r-stat>span{font:700 11px/1.4 var(--p4-ui);color:#5e636c}.p4-app .p4r-stat>strong{font:400 clamp(24px,2.65vw,34px)/1.14 var(--p4-display);color:#18191b}.p4-app .p4r-stat>small{font:500 10px/1.45 var(--p4-ui);color:#80838c}
.p4-app .p4r-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-bottom:17px;align-items:start}
.p4-app .p4r-panel{margin:0 0 17px;padding:22px 24px;background:#fff;min-width:0}
.p4-app .p4r-grid .p4r-panel{margin:0}
.p4-app .p4r-head{margin-bottom:18px}.p4-app .p4r-head h2{margin:0;font:400 clamp(16px,1.75vw,20px)/1.2 var(--p4-display);color:#1b1d20}.p4-app .p4r-head p{margin:7px 0 0;color:#777b83;font-size:11px;line-height:1.55}
.p4-app .p4r-bars{display:flex;align-items:flex-end;gap:11px;overflow-x:auto;min-height:218px;max-width:100%;padding:3px 2px 12px;margin:0 0 8px}
.p4-app .p4r-bar{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:44px;flex:1 0 44px;max-width:100px;font-size:10px;font-weight:700;color:#5c6167}
.p4-app .p4r-bar-space{height:160px;width:100%;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #dee0e3;background:repeating-linear-gradient(0deg,transparent,transparent 39px,#f5f5f5 40px)}
.p4-app .p4r-bar-space>div{background:linear-gradient(180deg,#f2c300,#b89400);width:73%;min-height:2px;border-radius:5px 5px 0 0}
.p4-app .p4r-bar small{white-space:nowrap;color:#737780;font:700 10px var(--p4-ui)}
.p4-app .p4r-muted{font-size:11px;line-height:1.6;color:#777c82;margin:8px 0 13px}
.p4-app .p4r-panel>a{font-size:12px;font-weight:750;color:#846700;text-decoration:none}
.p4-app .p4r-tablewrap{max-width:100%;overflow-x:auto;border:1px solid #ebebed;border-radius:10px}
.p4-app .p4r-table{width:100%;border-collapse:collapse;min-width:530px;background:white;text-align:left}
.p4-app .p4r-table th{padding:13px 15px;background:#f4f3ef;font:800 10px/1.4 var(--p4-ui);letter-spacing:.25px;color:#52555c;white-space:nowrap}
.p4-app .p4r-table td{padding:13px 15px;border-top:1px solid #f0f0f0;font:600 11px/1.5 var(--p4-ui);color:#30333a;vertical-align:middle}
.p4-app .p4r-table td a{color:#574400;font-weight:750;text-decoration:none}.p4-app .p4r-table td a:hover{text-decoration:underline}
.p4-app .p4r-table td strong{font-weight:800}.p4-app .p4r-table .p4r-minor{display:block;font-size:9px;color:#898c92;font-weight:500;margin-top:2px}
.p4-app .p4r-checklist{display:flex;flex-direction:column}.p4-app .p4r-checklist>a{display:flex;gap:13px;align-items:center;padding:12px 2px;border-bottom:1px solid #eff0f2;text-decoration:none;color:#24262a}.p4-app .p4r-checklist>a:last-child{border:0}
.p4-app .p4r-checklist>a>span:first-child{flex:1;min-width:0}.p4-app .p4r-checklist strong{display:block;font-size:12px;font-weight:800}.p4-app .p4r-checklist small{display:block;color:#7a7f87;font-size:10px;margin-top:4px}.p4-app .p4r-checklist b{color:#a17b00;font-size:12px}
.p4-app .p4r-grade{margin:10px 0}.p4-app .p4r-grade>div:first-child{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#34373d;gap:10px}.p4-app .p4r-grade>div:first-child strong{font-weight:750}.p4-app .p4r-grade>div:last-child{height:7px;margin-top:6px;border-radius:9px;background:#f0f1f2;overflow:hidden}.p4-app .p4r-grade i{display:block;height:100%;border-radius:9px;background:#f2c300}
.p4-app .p4r-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.p4-app .p4r-duo>div{display:flex;flex-direction:column;gap:6px;border-radius:11px;background:#f7f7f6;padding:20px}.p4-app .p4r-duo strong{font:400 32px var(--p4-display);color:#1c1d20}.p4-app .p4r-duo span{font-size:12px;font-weight:800}.p4-app .p4r-duo small{font-size:10px;line-height:1.5;color:#7d8188}
.p4-app .p4r-licence-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #e9eaed;font-size:12px}.p4-app .p4r-licence-row:last-child{border:0}.p4-app .p4r-licence-row strong{font-size:19px;color:#161718}
.p4-app .p4r-direct{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.p4-app .p4r-direct a{display:inline-flex;align-items:center;padding:11px 14px;color:#342e14;background:#fff8de;border:1px solid #eddda4;border-radius:8px;font-size:11px;font-weight:800;text-decoration:none}
@media(max-width:1050px){.p4-app .p4r-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.p4-app .p4r-grid{grid-template-columns:1fr}}
@media(max-width:640px){.p4-app .p4r-filter{padding:15px;gap:11px}.p4-app .p4r-filter label{flex-basis:calc(50% - 9px)}.p4-app .p4r-filter .p4-button{width:100%}.p4-app .p4r-stats{gap:9px}.p4-app .p4r-stat{padding:15px 12px}.p4-app .p4r-stat>strong{font-size:24px}.p4-app .p4r-stat>span{font-size:10px}.p4-app .p4r-stat>small{font-size:9px}.p4-app .p4r-panel{padding:18px 14px}.p4-app .p4r-export{justify-content:stretch}.p4-app .p4r-export>a{flex:1;text-align:center}.p4-app .p4r-duo{grid-template-columns:1fr}.p4-app .p4r-context{font-size:10px}}

.p4-app a.p4r-bar{text-decoration:none;color:#5c6167}.p4-app a.p4r-bar:hover .p4r-bar-space>div{background:linear-gradient(180deg,#19191d,#62551f)}.p4-app a.p4r-bar:focus-visible{outline:2px solid #b89400;outline-offset:3px;border-radius:6px}

/* v0.14.1: in-place tabs keep the existing shell steady while loading a new pane. */
.p4-app #p4-main.p4-nav-loading{position:relative;min-height:240px;}
.p4-app #p4-main.p4-nav-loading::after{content:"";position:fixed;right:24px;bottom:24px;width:26px;height:26px;border:3px solid rgba(242,195,0,.3);border-top-color:#b59400;border-radius:50%;animation:p4-tab-wait .65s linear infinite;pointer-events:none;z-index:90;background:transparent}
@keyframes p4-tab-wait{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.p4-app #p4-main.p4-nav-loading::after{animation:none;border-top-color:#b59400}}

/* V0.14.2 • Family self-service and test student clean-up */
.p4fm-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.p4fm-panel{padding:27px!important}
.p4fm-panel h2,.p4fm-review h2{font-size:clamp(20px,1.8vw,27px);font-weight:800;letter-spacing:-.4px;margin:0 0 16px;color:#171717}
.p4fm-panel>p{color:#686970;font-size:13px;line-height:1.7;margin-bottom:20px}
.p4fm-panel .p4-form{display:grid;gap:15px}
.p4fm-panel .p4-form label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700}
.p4fm-panel .p4-form label input,.p4fm-panel .p4-form label textarea,.p4fm-panel .p4-form label select{width:100%;max-width:100%;box-sizing:border-box}
.p4fm-danger{margin-top:22px;background:#fff;border:1px solid #ead0d0;border-radius:14px;padding:20px 24px}
.p4fm-danger summary{cursor:pointer;color:#94392f;font-size:14px;font-weight:800}
.p4fm-danger p{font-size:12px;line-height:1.8;color:#64585a;max-width:850px;margin:16px 0}
.p4fm-danger form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:15px}
.p4fm-danger form label{font-size:12px;font-weight:600;display:grid;gap:8px;flex:1;min-width:230px}
.p4fm-danger input{padding:12px!important;border-radius:7px!important;border:1px solid #e3ccca!important}
.p4fm-delete-button{background:#a32d26!important;border-color:#a32d26!important;color:white!important}
.p4fm-delete-button:hover{background:#83231e!important}
.p4fm-review{margin-bottom:18px;padding:24px!important}
.p4fm-review .p4-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.p4fm-review .p4-form{margin-top:18px;display:grid;gap:12px;max-width:760px}
.p4fm-private-request{background:#f9f8f4;border-left:3px solid #f2c300;padding:16px 18px;margin:10px 0 12px;white-space:normal;font-size:13px;line-height:1.75;overflow-wrap:anywhere}
@media(max-width:880px){.p4fm-columns{grid-template-columns:1fr}.p4fm-review .p4-field-grid{grid-template-columns:1fr}.p4fm-panel{padding:20px!important}}


/* v0.14.3: lesson-specific learning attachments */
.p4-app .p4lr-panel{padding:27px!important;margin:0!important;box-shadow:none}
.p4lr-panel>.p4-card-head{padding-bottom:16px;border-bottom:1px solid #e9e9e6;margin-bottom:14px}
.p4lr-panel h3{font-size:15px;line-height:1.4;margin:0 0 15px;font-weight:850}
.p4lr-current{margin:20px 0 26px}
.p4lr-current-row{display:flex;align-items:center;flex-wrap:wrap;gap:9px;padding:13px 0;border-bottom:1px solid #e8e8e8}
.p4lr-current-info{min-width:180px;flex:1 1 270px}
.p4lr-current-info strong{display:block;font-size:13px;overflow-wrap:anywhere}
.p4lr-current-info small{display:block;color:#777;font-size:11px;line-height:1.5;margin-top:4px}
.p4lr-current-row>a{font-size:12px;font-weight:800;text-decoration:underline!important;white-space:nowrap}
.p4lr-current-row form{margin:0}
.p4lr-current-row .p4-button{padding:7px 11px;min-height:32px;font-size:10px!important;white-space:normal}
.p4lr-two-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px;align-items:start;margin-top:24px}
.p4lr-add{border:1px solid #e9e9e5;background:#fbfbfa;border-radius:10px;padding:19px 17px;min-width:0}
.p4lr-add .p4-form{display:flex;flex-direction:column;gap:12px}
.p4lr-choices{height:243px;overflow:auto;background:#fff;border:1px solid #ddd;border-radius:7px;padding:7px;overscroll-behavior:contain}
.p4lr-choice{display:flex!important;align-items:flex-start!important;flex-direction:row!important;gap:10px!important;padding:10px 8px!important;margin:0!important;cursor:pointer;border-radius:5px}
.p4lr-choice:hover{background:#fff7d0}
.p4lr-choice+ .p4lr-choice{border-top:1px solid #f2f2f2}
.p4lr-choice>input{flex:0 0 auto;margin:3px 0 0!important;width:17px;height:17px;accent-color:#b38c00}
.p4lr-choice span{min-width:0;line-height:1.4}
.p4lr-choice strong{display:block;font-size:12px;overflow-wrap:anywhere}
.p4lr-choice small{display:block;font-size:10px;color:#797979;margin-top:3px}
.p4lr-choice[hidden]{display:none!important}
.p4lr-catchup{display:flex!important;align-items:flex-start!important;flex-direction:row!important;gap:9px!important;font-size:12px;font-weight:650;line-height:1.5;cursor:pointer}
.p4lr-catchup input{margin:2px 0 0!important;flex:0 0 17px;width:17px;height:17px;accent-color:#b38c00}
.p4lr-add input[type=file]{font-size:11px;width:100%;max-width:100%}
.p4lr-add button[type=submit]{white-space:normal;text-align:center;width:100%}
@media(max-width:890px){.p4lr-two-cols{grid-template-columns:1fr}.p4-app .p4lr-panel{padding:19px!important}.p4lr-current-row{align-items:flex-start}}
@media(max-width:480px){.p4lr-current-row form{flex:1 1 auto}.p4lr-current-row form button{width:100%}.p4lr-add{padding:15px 13px}}

/* P4TKD V0.15.0: owner-only Phase 6 launch readiness */
.p4launch-status,.p4launch-section{margin-bottom:22px}
.p4launch-status .p4-card-head,.p4launch-section .p4-card-head{gap:12px}
.p4launch-pill{display:inline-flex;align-items:center;border-radius:999px;padding:8px 13px;font:700 11px/1.3 Montserrat,sans-serif;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.p4launch-pass{background:#e6f6ed;color:#166537}
.p4launch-warn{background:#fff1c8;color:#6c5000}
.p4launch-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.p4launch-check{display:flex;align-items:flex-start;gap:12px;border:1px solid #e5e5e8;border-radius:13px;padding:15px;background:#fff;min-width:0}
.p4launch-check>div{flex:1;min-width:0}
.p4launch-check strong{font-size:13px;display:block;margin-bottom:5px}
.p4launch-check p{font-size:12px;line-height:1.55;color:#5d5d62;margin:0}
.p4launch-check small{font-size:10px;font-weight:800;letter-spacing:.035em;color:#62636a;margin-left:auto}
.p4launch-dot{flex:0 0 12px;width:12px;height:12px;margin-top:4px;border-radius:50%;background:#c27c26}
.p4launch-dot.yes{background:#328854}
.p4launch-manual{display:grid;gap:11px}
.p4launch-manual-row{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid #e5e5e8;border-radius:11px;background:#fff;font-size:13px;line-height:1.65;cursor:pointer}
.p4launch-manual-row input{width:18px;height:18px;flex:0 0 18px;margin:3px 0 0;accent-color:#111114}
.p4launch-section form:not(.p4launch-manual){margin:12px 0}
@media(max-width:900px){.p4launch-checks{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.p4launch-pill{white-space:normal}.p4launch-status .p4-card-head{align-items:flex-start;flex-wrap:wrap}.p4launch-check{padding:12px}.p4launch-manual-row{padding:11px}.p4launch-check strong{font-size:12px}}

/* V0.16.0 / MEMBER SHOP (Squarespace catalogue, P4TKD styling) */
.p4shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:18px 0 24px}
.p4shop-product{background:#fff;border:1px solid #e5e5e7;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;min-width:0}
.p4shop-product-image{aspect-ratio:4/3;background:#f5f5f7;display:flex;align-items:center;justify-content:center;overflow:hidden}
.p4shop-product-image img{width:100%;height:100%;object-fit:contain}
.p4shop-placeholder{font:900 24px Montserrat,sans-serif;letter-spacing:.06em;color:#999}
.p4shop-product-body{display:flex;flex-direction:column;gap:9px;padding:18px;flex:1}
.p4shop-product-body h2{font:800 17px/1.35 Montserrat,sans-serif;margin:0;color:#151515}
.p4shop-product-body p{color:#555b63;margin:0;line-height:1.5;font-size:13px;flex:1}
.p4shop-product-body small{color:#777;font-size:11px}
.p4shop-price{font:800 19px Montserrat,sans-serif;color:#181818}
.p4shop-product-body form{margin-top:auto;display:flex;flex-direction:column;gap:9px}
.p4shop-student-label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700}
.p4shop-student-label select{width:100%;min-width:0}
.p4shop-filter-form{display:flex;align-items:end;flex-wrap:wrap;gap:12px}
.p4shop-filter-form label{display:flex;flex-direction:column;flex:1 1 200px;min-width:0;gap:6px;font-weight:700;font-size:12px}
.p4shop-filter-form input,.p4shop-filter-form select{width:100%}
.p4shop-filters{margin-bottom:18px}
.p4shop-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}
.p4shop-admin-action{margin:8px 0}
.p4shop-copy{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0}
.p4shop-copy input{flex:1 1 240px;font-weight:800;letter-spacing:.045em}
.p4shop-purchase{max-width:800px}
.p4shop-review{display:flex;gap:12px;align-items:center;flex-wrap:wrap;border-top:1px solid #ededed;padding:14px 0}
.p4shop-review>div{flex:1;display:flex;flex-direction:column;gap:4px}
.p4shop-review small{color:#777}
.p4shop-history{margin-top:22px}
@media(max-width:1150px){.p4shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.p4shop-grid,.p4shop-admin-grid{grid-template-columns:1fr}.p4shop-product-image{aspect-ratio:5/3}.p4shop-copy .p4-button{width:100%}}

/* V0.16.1 / SHOP PRODUCT DETAILS AND READ-ONLY STOCK SNAPSHOT */
.p4shop-product-body>a.p4-button{margin-top:auto;display:flex;justify-content:center;align-items:center;text-align:center;text-decoration:none;min-height:40px}
.p4shop-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;padding:24px;margin-top:18px;align-items:start}
.p4shop-detail-gallery,.p4shop-detail-info{min-width:0}
.p4shop-detail-hero{min-height:350px;aspect-ratio:4/3;background:#f4f4f5;border:1px solid #ededee;border-radius:13px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.p4shop-detail-hero img{width:100%;height:100%;object-fit:contain}
.p4shop-gallery-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.p4shop-gallery-thumb{border:2px solid #e1e1e1;background:#fff;border-radius:8px;cursor:pointer;width:72px;height:72px;display:flex;align-items:center;justify-content:center;padding:3px;overflow:hidden}
.p4shop-gallery-thumb.is-active,.p4shop-gallery-thumb:focus-visible{border-color:#121212;outline:2px solid #f2c300;outline-offset:1px}
.p4shop-gallery-thumb img{width:100%;height:100%;object-fit:contain}
.p4shop-detail-info{display:flex;flex-direction:column;gap:15px}
.p4shop-detail-info h2{font:900 clamp(21px,2.2vw,32px)/1.2 Montserrat,sans-serif;letter-spacing:-.025em;color:#161616;margin:0}
.p4shop-detail-price{font:900 24px/1.25 Montserrat,sans-serif;color:#141414}
.p4shop-full-description{color:#42464c;line-height:1.65;overflow-wrap:anywhere;font-size:13px;max-height:330px;overflow:auto}
.p4shop-full-description p,.p4shop-full-description ul{margin:.5em 0}
.p4shop-full-description img{max-width:100%;height:auto}
.p4shop-variant-picker{padding:16px;border:1px solid #e6e6e7;background:#fcfcfc;border-radius:12px;display:flex;flex-direction:column;gap:8px}
.p4shop-variant-picker>label{font-size:12px;font-weight:800;color:#242424}
.p4shop-variant-select{width:100%;min-width:0}
.p4shop-selected-stock{font-size:12px;font-weight:700;margin:0;color:#30343a}
.p4shop-detail .p4-help{font-size:12px;color:#62666b;line-height:1.55;margin:0}
.p4shop-detail-form{display:flex;flex-direction:column;gap:12px}
.p4shop-detail-form .p4-button{width:100%}
.p4shop-detail-trust{padding-left:25px;position:relative;font-size:12px;color:#53575d;line-height:1.5;margin:0}
.p4shop-detail-trust:before{content:'✓';position:absolute;left:0;top:0;width:18px;height:18px;background:#e5f2e9;border-radius:50%;color:#1d6339;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center}
.p4shop-sync-note{margin:10px 0 22px;font-size:12px;color:#686c73}
.p4shop-stock-summary{margin-bottom:18px}
.p4shop-stock-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0 16px}
.p4shop-stock-stats>div{padding:15px;border-radius:11px;background:#f6f6f7;display:flex;flex-direction:column;gap:5px}
.p4shop-stock-stats strong{font:900 22px Montserrat,sans-serif;color:#161616}
.p4shop-stock-stats span{font-size:11px;color:#62666b}
@media(max-width:950px){.p4shop-detail{grid-template-columns:1fr;gap:20px}.p4shop-detail-hero{min-height:240px}}
@media(max-width:580px){.p4shop-detail{padding:14px}.p4shop-stock-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.p4shop-detail-hero{min-height:200px}.p4shop-gallery-thumb{width:58px;height:58px}}
