:root{--bg:#f4f7f6;--surface:#fff;--text:#16211f;--muted:#6e7d78;--line:#e1e8e5;--brand:#174f43;--brand2:#0e6b58;--soft:#eaf2ef;--shadow:0 12px 35px rgba(20,50,42,.08);--radius:18px}
*{box-sizing:border-box}html{background:var(--bg)}body.p360-theme{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}.p360-app{min-height:100vh;display:grid;grid-template-columns:236px 1fr}.p360-sidebar{position:sticky;top:0;height:100vh;background:#153f36;color:#fff;padding:24px 16px;display:flex;flex-direction:column}.p360-brand{display:flex;align-items:center;gap:12px;padding:0 6px 22px}.p360-mark{width:42px;height:42px;border-radius:13px;background:#fff;color:var(--brand);display:grid;place-items:center;font-weight:900;letter-spacing:-1px}.p360-brand strong{display:block;font-size:18px}.p360-brand span{font-size:12px;opacity:.7}.p360-nav{display:grid;gap:6px}.p360-nav button,.p360-mobile-nav button{border:0;background:transparent;color:#d6e5e1;display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:12px;text-align:left;font-weight:650}.p360-nav button.is-active,.p360-nav button:hover{background:rgba(255,255,255,.11);color:#fff}.p360-user{margin-top:auto;display:flex;align-items:center;gap:10px;padding:14px 6px 0;border-top:1px solid rgba(255,255,255,.12)}.p360-avatar{width:36px;height:36px;background:#fff;color:var(--brand);border-radius:50%;display:grid;place-items:center;font-weight:800}.p360-user strong{display:block;font-size:13px}.p360-user a{font-size:11px;color:#c8dad5;text-decoration:none}.p360-main{padding:26px 30px 90px;max-width:1280px;width:100%;margin:auto}.p360-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.p360-eyebrow{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.p360-topbar h1{margin:4px 0 0;font-size:28px;letter-spacing:-.03em}.p360-icon-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:26px;color:var(--brand)}.p360-view{display:none}.p360-view.is-active{display:block}.p360-next-card{background:linear-gradient(135deg,#174f43,#0e6b58);color:#fff;border-radius:24px;padding:24px;box-shadow:var(--shadow);max-width:760px}.p360-card-top{display:flex;justify-content:space-between;align-items:center;font-size:12px}.p360-card-top span{font-weight:800;letter-spacing:.08em}.p360-next-card h2{font-size:32px;margin:28px 0 4px;letter-spacing:-.04em}.p360-next-meta{opacity:.82}.p360-next-topic{margin:24px 0 18px;padding:14px 16px;background:rgba(255,255,255,.09);border-radius:14px}.p360-next-topic small,.p360-next-topic strong{display:block}.p360-next-topic small{opacity:.72;margin-bottom:4px}.p360-primary,.p360-secondary{border:0;border-radius:12px;padding:12px 16px;font-weight:800}.p360-primary{background:#fff;color:var(--brand)}.p360-form-sheet .p360-primary{background:var(--brand);color:#fff;width:100%;margin-top:10px}.p360-secondary{background:var(--soft);color:var(--brand);margin-top:16px}.p360-section-head{display:flex;justify-content:space-between;align-items:center;margin:28px 0 12px}.p360-section-head h2{margin:0;font-size:20px}.p360-section-head button,.p360-section-head span{border:0;background:transparent;color:var(--brand);font-weight:700;font-size:13px}.p360-day-list,.p360-schedule{display:grid;gap:10px}.p360-class-row{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:14px}.p360-class-row time{font-weight:850;color:var(--brand)}.p360-class-row strong,.p360-class-row span{display:block}.p360-class-row span{font-size:12px;color:var(--muted);margin-top:3px}.p360-row-action{border:0;background:var(--soft);color:var(--brand);padding:8px 12px;border-radius:10px;font-weight:750}.p360-filter{display:flex;gap:8px;overflow:auto;padding-bottom:4px;scrollbar-width:none}.p360-filter button{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;color:var(--muted);font-weight:700}.p360-filter button.is-active{background:var(--brand);color:#fff;border-color:var(--brand)}.p360-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.p360-class-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.p360-class-card h3{margin:14px 0 4px;font-size:20px}.p360-class-card p{margin:0 0 4px}.p360-class-card small{color:var(--muted)}.p360-level{font-size:11px;color:var(--brand);font-weight:850;text-transform:uppercase;letter-spacing:.06em}.p360-day{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px}.p360-day h3{margin:0 0 8px}.p360-day article{display:grid;grid-template-columns:72px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.p360-day article:first-of-type{border-top:0}.p360-day time{font-weight:800;color:var(--brand)}.p360-day span{display:block;font-size:12px;color:var(--muted);margin-top:2px}.p360-select{width:min(100%,440px);padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}.p360-data-panel{margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.p360-empty{padding:28px;text-align:center;color:var(--muted)}.p360-att-row,.p360-grade-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:14px 16px;border-top:1px solid var(--line)}.p360-att-row:first-child,.p360-grade-row:first-child{border-top:0}.p360-att-actions{display:flex;gap:6px}.p360-att-actions button{border:1px solid var(--line);background:#fff;padding:7px 9px;border-radius:9px;font-size:12px}.p360-att-actions button.is-active{background:var(--brand);border-color:var(--brand);color:#fff}.p360-data-footer{display:flex;justify-content:flex-end;padding:14px;border-top:1px solid var(--line)}.p360-data-footer button{background:var(--brand);color:#fff;border:0;border-radius:11px;padding:10px 14px;font-weight:800}.p360-grade-row{grid-template-columns:1fr repeat(4,70px) 70px}.p360-grade-row input{width:100%;padding:8px;border:1px solid var(--line);border-radius:9px}.p360-grade-row b{text-align:center}.p360-material-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.p360-material-grid article{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px}.p360-material-grid span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.p360-file-icon{width:44px;height:52px;background:var(--soft);color:var(--brand);border-radius:9px;display:grid;place-items:center;font-size:11px;font-weight:900}.p360-mobile-nav{display:none}.p360-modal{position:fixed;inset:0;background:rgba(7,20,17,.48);display:none;place-items:center;padding:18px;z-index:1000}.p360-modal.is-open{display:grid}.p360-modal-sheet{position:relative;width:min(620px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:22px;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.22)}.p360-close{position:absolute;right:14px;top:14px;width:38px;height:38px;border:0;background:#f1f4f3;border-radius:50%;font-size:24px}.p360-class-mode h2{font-size:30px;margin:28px 0 4px}.p360-class-mode .meta{color:var(--muted)}.p360-mode-topic{margin:22px 0;background:var(--soft);padding:16px;border-radius:14px}.p360-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.p360-mode-grid button{min-height:82px;border:1px solid var(--line);background:#fff;border-radius:14px;font-weight:800;color:var(--text)}.p360-mode-grid button.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.p360-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.p360-form-grid label{font-size:12px;color:var(--muted);font-weight:700}.p360-form-grid input,.p360-form-grid select,.p360-form-grid textarea{display:block;width:100%;margin-top:6px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}.p360-toast{position:fixed;right:18px;bottom:18px;background:#16211f;color:#fff;border-radius:12px;padding:12px 16px;display:none;z-index:1200}.p360-login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.p360-login-card{width:min(390px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow)}.p360-login-card .p360-mark{background:var(--brand);color:#fff}.p360-login-card h1{margin:18px 0 4px}.p360-login-card p{color:var(--muted);margin-top:0}.p360-login-card label{font-size:12px;font-weight:700;color:var(--muted)}.p360-login-card input[type=text],.p360-login-card input[type=password]{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px}.p360-login-card input[type=submit]{width:100%;padding:12px;border:0;border-radius:11px;background:var(--brand);color:#fff;font-weight:800}.p360-login-card .login-remember{font-size:12px}.p360-login-card .login-submit{margin-bottom:0}
.i-home,.i-classes,.i-calendar,.i-check,.i-grade,.i-folder{width:18px;height:18px;display:inline-block;position:relative;flex:0 0 18px}.i-home:before{content:"";position:absolute;inset:5px 2px 1px;border:2px solid currentColor;border-top:0;border-radius:2px}.i-home:after{content:"";position:absolute;width:10px;height:10px;border-left:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);left:4px;top:1px}.i-calendar:before{content:"";position:absolute;inset:3px 1px 1px;border:2px solid currentColor;border-radius:3px}.i-calendar:after{content:"";position:absolute;left:4px;right:4px;top:7px;border-top:2px solid currentColor}.i-check:before{content:"";position:absolute;inset:1px;border:2px solid currentColor;border-radius:50%}.i-check:after{content:"";position:absolute;width:8px;height:4px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);left:5px;top:6px}.i-grade:before{content:"";position:absolute;inset:1px 3px;border:2px solid currentColor;border-radius:2px}.i-grade:after{content:"";position:absolute;left:6px;right:6px;top:6px;box-shadow:0 4px 0 currentColor,0 8px 0 currentColor;border-top:1px solid currentColor}.i-folder:before{content:"";position:absolute;left:1px;right:1px;bottom:2px;top:5px;border:2px solid currentColor;border-radius:3px}.i-folder:after{content:"";position:absolute;left:2px;top:3px;width:7px;height:4px;border:2px solid currentColor;border-bottom:0;border-radius:2px 2px 0 0}.i-classes:before{content:"";position:absolute;left:2px;top:2px;width:5px;height:5px;border:2px solid currentColor;border-radius:50%;box-shadow:9px 0 0 -1px transparent}.i-classes:after{content:"";position:absolute;left:0;bottom:1px;width:9px;height:7px;border:2px solid currentColor;border-radius:8px 8px 3px 3px}
@media(max-width:900px){.p360-app{display:block}.p360-sidebar{display:none}.p360-main{padding:18px 14px 92px}.p360-topbar{margin-bottom:18px}.p360-topbar h1{font-size:22px}.p360-next-card{padding:20px;border-radius:20px}.p360-next-card h2{font-size:27px;margin-top:22px}.p360-card-grid,.p360-material-grid{grid-template-columns:1fr}.p360-mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:0;right:0;bottom:0;padding:7px 6px max(7px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);z-index:900}.p360-mobile-nav button{color:#7a8884;display:grid;justify-items:center;gap:3px;padding:5px 2px;font-size:10px;border-radius:8px}.p360-mobile-nav button.is-active{color:var(--brand)}.p360-mobile-nav i{width:18px;height:18px}.p360-class-row{grid-template-columns:58px 1fr auto;padding:13px}.p360-grade-row{grid-template-columns:1fr repeat(4,50px) 48px;font-size:12px;padding:10px}.p360-form-grid{grid-template-columns:1fr}.p360-modal{align-items:end;padding:0}.p360-modal-sheet{width:100%;border-radius:22px 22px 0 0;max-height:88vh;padding:22px 16px max(22px,env(safe-area-inset-bottom))}.p360-mode-grid{grid-template-columns:1fr 1fr}.p360-toast{left:14px;right:14px;bottom:82px;text-align:center}}
@media(max-width:520px){.p360-class-row{grid-template-columns:52px 1fr}.p360-row-action{grid-column:1/-1;width:100%}.p360-att-row{grid-template-columns:1fr}.p360-att-actions{overflow:auto}.p360-grade-row{grid-template-columns:1fr repeat(4,44px) 42px;padding:9px 8px;gap:5px}.p360-grade-row input{padding:7px 4px}.p360-mode-grid{grid-template-columns:1fr}.p360-topbar .p360-icon-btn{width:40px;height:40px}.p360-next-card .p360-primary{width:100%}}

/* Acceso móvil y registro */
.p360-login-card{width:min(410px,100%);padding:30px}.p360-login-subtitle{margin-bottom:22px!important}.p360-auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#f0f4f2;padding:4px;border-radius:12px;margin-bottom:18px}.p360-auth-tabs button{border:0;background:transparent;color:var(--muted);padding:10px 8px;border-radius:9px;font-weight:800}.p360-auth-tabs button.is-active{background:#fff;color:var(--brand);box-shadow:0 2px 8px rgba(20,50,43,.08)}.p360-auth-form{display:none;gap:14px}.p360-auth-form.is-active{display:grid}.p360-auth-form label{display:grid;gap:6px;font-size:12px;font-weight:750;color:var(--muted)}.p360-auth-form input{width:100%;min-height:48px;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--text);outline:none}.p360-auth-form input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(21,93,76,.10)}.p360-auth-submit{width:100%;min-height:49px;margin-top:3px;border:0;border-radius:11px;background:var(--brand);color:#fff;font-weight:850}.p360-auth-error{margin:0 0 14px;padding:10px 12px;border-radius:10px;background:#fff1ef;color:#9b3026;font-size:13px;font-weight:650}.p360-login-card input[type=tel]{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px}@media(max-width:520px){.p360-login-shell{padding:0;background:#fff;align-items:stretch}.p360-login-card{width:100%;min-height:100vh;border:0;border-radius:0;box-shadow:none;padding:34px 22px max(28px,env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:center}.p360-login-card .p360-mark{width:46px;height:46px}.p360-login-card h1{font-size:28px}.p360-auth-form input,.p360-auth-submit{min-height:52px}}

/* =========================================================
   ACCESO PROFE360 · MODELO 2
   ========================================================= */
body.p360-theme:not(.logged-in){background:#eef5fb}
.p360-auth-page{min-height:100svh;display:grid;grid-template-columns:minmax(420px,1.03fr) minmax(430px,.97fr);background:#f7fbff;color:#102b4e;overflow:hidden}
.p360-auth-visual{position:relative;min-height:100svh;padding:54px 58px 46px;background:linear-gradient(145deg,#f7fbff 0%,#eaf4fc 100%);overflow:hidden;border-right:1px solid #dbe8f3}
.p360-auth-visual:after{content:"";position:absolute;left:-8%;right:-8%;bottom:-120px;height:235px;background:#103f6b;border-radius:50% 50% 0 0/28% 28% 0 0;z-index:1}
.p360-auth-brand{position:relative;z-index:4}.p360-auth-logo{font-size:44px;line-height:1;font-weight:900;letter-spacing:-2.6px;color:#0c3159}.p360-auth-logo span{color:#1385ed}.p360-auth-tagline{margin-top:8px;font-size:15px;color:#49647e;font-weight:600}
.p360-auth-message{position:relative;z-index:4;margin-top:68px}.p360-auth-message strong{display:block;font-size:32px;line-height:1.18;letter-spacing:-1.1px;font-weight:720;color:#153c67}.p360-auth-message strong:after{content:"";display:block;width:58px;height:4px;border-radius:10px;background:#1689ee;margin-top:18px}
.p360-auth-image{position:absolute;z-index:2;right:-2%;bottom:45px;width:72%;height:63%;background:linear-gradient(90deg,rgba(239,247,253,.94) 0%,rgba(239,247,253,.18) 34%,rgba(239,247,253,0) 60%),url('../images/login-study.jpg') center/cover no-repeat;border-radius:42% 0 0 0/22% 0 0 0;filter:saturate(.88) contrast(.96)}
.p360-auth-visual-footer{position:absolute;z-index:3;left:58px;bottom:44px;display:flex;gap:20px;color:#eaf5ff;font-size:11px;font-weight:800;letter-spacing:.12em}
.p360-auth-side{min-height:100svh;padding:36px clamp(28px,6vw,86px);display:flex;flex-direction:column;justify-content:center;background:rgba(255,255,255,.95)}
.p360-auth-mobile-brand{display:none}.p360-auth-card{width:min(470px,100%);margin:auto}.p360-auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:transparent;padding:0;border-radius:0;border-bottom:1px solid #d8e3ee;margin:0 0 30px}.p360-auth-tabs button{position:relative;border:0;background:transparent;padding:14px 8px 15px;color:#6e8298;border-radius:0;font-size:15px;font-weight:750}.p360-auth-tabs button.is-active{background:transparent;color:#0c73d6;box-shadow:none}.p360-auth-tabs button.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:#1689ee;border-radius:4px 4px 0 0}
.p360-auth-form{display:none;gap:15px}.p360-auth-form.is-active{display:grid}.p360-auth-heading{margin:0 0 4px}.p360-auth-heading h1{margin:0;color:#102f55;font-size:28px;letter-spacing:-.7px}.p360-auth-heading p{margin:6px 0 0;color:#6d8095;font-size:14px}
.p360-auth-field{position:relative;display:flex;align-items:center;min-height:58px;border:1px solid #ccdbe9;border-radius:14px;background:#fff;transition:.18s ease;box-shadow:0 1px 0 rgba(16,50,86,.02)}.p360-auth-field:focus-within{border-color:#1689ee;box-shadow:0 0 0 3px rgba(22,137,238,.10)}.p360-field-icon{width:49px;display:grid;place-items:center;flex:0 0 49px;color:#123f70}.p360-field-icon svg{width:21px;height:21px;fill:currentColor}.p360-auth-field input{width:100%!important;min-width:0;min-height:56px!important;border:0!important;border-radius:14px!important;padding:0 12px 0 0!important;background:transparent!important;color:#162d45!important;outline:0!important;box-shadow:none!important;font-size:15px}.p360-auth-field input::placeholder{color:#71879e;opacity:1}.p360-password-toggle{flex:0 0 auto;margin-right:9px;border:0;background:transparent;color:#1675ca;font-size:12px;font-weight:750;padding:9px 7px}
.p360-auth-options{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:12px;color:#5f7489}.p360-auth-options a{color:#0877df;text-decoration:none;font-weight:650}.p360-remember{display:flex!important;align-items:center;gap:8px!important;color:#5f7489!important;font-size:12px!important;cursor:pointer}.p360-remember input{width:17px!important;height:17px!important;accent-color:#1689ee}
.p360-auth-submit{width:100%;min-height:58px;margin-top:4px;border:0;border-radius:14px;background:linear-gradient(90deg,#0758b3,#168df5);color:#fff;font-weight:850;font-size:16px;box-shadow:0 10px 24px rgba(9,106,201,.18);transition:.18s ease}.p360-auth-submit:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(9,106,201,.23)}.p360-auth-submit:active{transform:translateY(0)}
.p360-auth-switch{text-align:center;color:#728497;font-size:13px;margin-top:2px}.p360-auth-switch button{border:0;background:transparent;padding:4px;color:#0675de;font-weight:800}.p360-auth-error{margin:0 0 15px;padding:12px 14px;border-radius:12px;background:#fff2ef;border:1px solid #ffd9d1;color:#9b3026;font-size:13px;font-weight:650}.p360-auth-bottom{width:min(470px,100%);margin:34px auto 0;padding-top:18px;border-top:1px solid #e1e9f1;display:flex;justify-content:space-between;color:#8a9aab;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:900px){.p360-auth-page{grid-template-columns:1fr}.p360-auth-visual{display:none}.p360-auth-side{position:relative;min-height:100svh;padding:0 18px max(26px,env(safe-area-inset-bottom));justify-content:flex-start;background:linear-gradient(180deg,#eef7ff 0,#f8fbfe 34%,#fff 34%)}.p360-auth-mobile-brand{display:block;text-align:center;padding:42px 10px 30px}.p360-auth-mobile-brand .p360-auth-logo{font-size:38px}.p360-auth-mobile-brand .p360-auth-tagline{font-size:13px}.p360-auth-card{position:relative;width:100%;max-width:500px;margin:0 auto;background:#fff;border:1px solid #e0e9f2;border-radius:24px;padding:22px 18px 20px;box-shadow:0 18px 45px rgba(31,74,111,.12)}.p360-auth-tabs{margin-bottom:24px}.p360-auth-bottom{margin:22px auto 0;border:0;padding:0 4px}.p360-auth-field{min-height:56px}.p360-auth-submit{min-height:56px}}
@media(max-width:520px){body.p360-theme:not(.logged-in){background:#fff}.p360-auth-side{padding-left:14px;padding-right:14px}.p360-auth-mobile-brand{padding-top:max(32px,env(safe-area-inset-top));padding-bottom:24px}.p360-auth-mobile-brand .p360-auth-logo{font-size:34px}.p360-auth-card{border-radius:22px;padding:19px 15px 18px}.p360-auth-tabs button{font-size:14px;padding:12px 6px 14px}.p360-auth-options{align-items:flex-start}.p360-auth-options a{text-align:right;max-width:150px}.p360-auth-bottom{font-size:9px}.p360-auth-heading h1{font-size:24px}}
/* v5: configuración inicial y datos reales del profesor */
.p360-onboarding{min-height:100svh;background:#f5f8fb;color:#102b4e;padding:22px}
.p360-onboarding-shell{max-width:980px;margin:auto}
.p360-onboard-head{display:flex;align-items:center;justify-content:space-between;padding:8px 0 28px}
.p360-onboard-head a{color:#667b91;text-decoration:none;font-weight:700;font-size:14px}
.p360-onboard-progress{display:flex;align-items:center;justify-content:center;max-width:520px;margin:0 auto 20px}
.p360-onboard-progress span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e7edf4;color:#708399;font-weight:800;font-size:13px}
.p360-onboard-progress span.is-active{background:#0b73d2;color:#fff}
.p360-onboard-progress i{height:2px;flex:1;background:#dce5ee}
.p360-onboard-card{max-width:760px;margin:auto;background:#fff;border:1px solid #e0e8f0;border-radius:24px;padding:clamp(24px,5vw,48px);box-shadow:0 16px 50px rgba(19,52,82,.08)}
.p360-step{display:none}.p360-step.is-active{display:block}
.p360-step h1{font-size:clamp(28px,5vw,42px);letter-spacing:-1.2px;margin:8px 0 28px;color:#12385e}
.p360-kicker{font-size:12px;letter-spacing:.12em;font-weight:900;color:#0b73d2}
.p360-step-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px}
.p360-step-actions .p360-primary,.p360-step-actions .p360-secondary{min-width:140px}
.p360-session-editor{display:grid;gap:10px;margin-top:12px}
.p360-session-line{display:grid;grid-template-columns:1.4fr 1fr 1fr 44px;gap:10px;align-items:center}
.p360-session-line select,.p360-session-line input{width:100%;height:48px;border:1px solid #d6e0e9;border-radius:12px;padding:0 12px;background:#fff;color:#173955}
.p360-remove-session{height:44px;width:44px;border:0;border-radius:12px;background:#f1f4f7;color:#6c7e8f;font-size:22px}
.p360-text-btn{border:0;background:transparent;color:#0b73d2;font-weight:800;padding:12px 0}
.p360-student-box{display:grid;gap:8px;font-weight:800;color:#304a63;margin-top:14px}
.p360-student-box textarea{width:100%;border:1px solid #d6e0e9;border-radius:14px;padding:14px;resize:vertical;background:#fff;color:#173955;line-height:1.55}
.p360-mini-note{color:#73869a;font-size:13px;margin:8px 0 0}
.p360-generated-list{display:grid;gap:12px}
.p360-generated-list>div{border:1px solid #e0e7ef;border-radius:14px;padding:16px 18px;display:flex;justify-content:space-between;gap:18px;align-items:center}
.p360-generated-list strong{color:#143b63}.p360-generated-list span{font-size:13px;color:#718399;text-align:right}
.p360-form-subtitle{font-size:14px;margin:20px 0 8px;color:#405c75}
.p360-card-actions{display:flex;gap:8px;margin-top:14px}.p360-card-actions button{flex:1}
.p360-doc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.p360-doc-grid button{border:1px solid #dce5ee;background:#fff;border-radius:18px;padding:22px;text-align:left;color:#153b60}.p360-doc-grid strong,.p360-doc-grid span{display:block}.p360-doc-grid strong{font-size:17px}.p360-doc-grid span{font-size:12px;color:#778a9d;margin-top:5px}
.p360-empty button{margin-top:14px}
@media(max-width:700px){
 .p360-onboarding{padding:14px}.p360-onboard-head{padding-bottom:18px}.p360-onboard-card{border-radius:20px;padding:24px 18px}.p360-onboard-progress{margin-bottom:14px}.p360-step h1{margin-bottom:22px}
 .p360-session-line{grid-template-columns:1fr 1fr 44px}.p360-session-line .s-day{grid-column:1/-1}.p360-generated-list>div{display:block}.p360-generated-list span{text-align:left;margin-top:5px}.p360-step-actions{justify-content:stretch}.p360-step-actions button{flex:1;min-width:0!important}.p360-doc-grid{grid-template-columns:1fr}.p360-card-actions{display:grid;grid-template-columns:1fr 1fr}
}
@media print{.p360-sidebar,.p360-mobile-nav,.p360-topbar button,.p360-section-head button{display:none!important}.p360-main{margin:0!important;padding:20px!important}.p360-view{display:none!important}.p360-view.is-active{display:block!important}}


/* v6: acciones principales y campos FP/Universidad */
.p360-add-class-cta{border:0;background:var(--brand);color:#fff;border-radius:12px;padding:11px 16px;font-weight:850;box-shadow:0 7px 18px rgba(21,63,54,.16);white-space:nowrap}
.p360-add-class-cta:hover{filter:brightness(.96)}
.p360-section-head .p360-section-add{background:var(--brand);color:#fff;border-radius:10px;padding:9px 13px;font-weight:800}
.p360-specialty-field[hidden]{display:none!important}
.p360-specialty-label{display:block!important;color:var(--brand)!important;font-weight:750;margin:4px 0 2px}
@media(max-width:520px){.p360-add-class-cta{padding:10px 12px;font-size:13px}.p360-topbar{gap:12px}.p360-topbar>div{min-width:0}.p360-topbar h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p360-section-head .p360-section-add{padding:8px 11px;font-size:12px}}


/* Selector profesional de clase para Asistencia */
.p360-att-selector{position:relative;margin:0 0 16px;max-width:760px}
.p360-att-selector-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;background:#fff;border:1px solid #dfe6ee;border-radius:16px;box-shadow:0 5px 16px rgba(18,40,70,.05);text-align:left;color:#14213d}
.p360-att-selector-toggle:hover{border-color:#c8d3df}
.p360-att-selector-copy{min-width:0;display:grid;gap:2px}
.p360-att-selector-copy small{font-size:10px;letter-spacing:.12em;font-weight:800;color:#7a8797}
.p360-att-selector-copy strong{font-size:16px;line-height:1.25;color:#13213b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p360-att-selector-copy em{font-style:normal;font-size:13px;font-weight:700;color:#b42318;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p360-att-selector-chevron{font-size:24px;line-height:1;color:#526173;transition:transform .18s ease}
.p360-att-selector.is-open .p360-att-selector-chevron{transform:rotate(180deg)}
.p360-att-selector-menu{position:absolute;z-index:80;top:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid #dfe6ee;border-radius:16px;box-shadow:0 18px 40px rgba(18,40,70,.16);padding:7px;max-height:340px;overflow:auto}
.p360-att-selector-option{width:100%;display:grid;gap:3px;text-align:left;padding:12px 13px;background:transparent;border:0;border-radius:11px}
.p360-att-selector-option:hover,.p360-att-selector-option.is-selected{background:#f5f8fb}
.p360-att-selector-option strong{font-size:15px;color:#13213b}
.p360-att-selector-option span{font-size:12px;font-weight:700;color:#b42318;line-height:1.35}
.p360-att-selector-option.is-selected{box-shadow:inset 3px 0 0 #b42318}
.p360-att-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
@media(max-width:640px){
  .p360-att-selector{max-width:none}
  .p360-att-selector-toggle{padding:13px 14px;border-radius:14px}
  .p360-att-selector-copy strong{font-size:15px}
  .p360-att-selector-copy em{font-size:12px;white-space:normal}
  .p360-att-selector-menu{position:fixed;left:12px;right:12px;top:auto;bottom:82px;max-height:52vh;border-radius:18px}
  .p360-att-selector-option{padding:13px}
}

/* v1.2 · Selectores enriquecidos y consulta histórica */
.i-records{width:18px;height:18px;display:inline-block;position:relative;flex:0 0 18px}
.i-records:before{content:"";position:absolute;inset:1px 2px;border:2px solid currentColor;border-radius:3px}
.i-records:after{content:"";position:absolute;left:5px;right:5px;top:6px;border-top:2px solid currentColor;box-shadow:0 4px 0 currentColor,0 8px 0 currentColor}
.p360-rich-selector{margin-bottom:16px}
.p360-save-state{margin-right:auto;color:var(--muted);font-size:12px;font-weight:700;align-self:center}
.p360-data-footer{align-items:center;gap:12px}
.p360-record-toolbar{display:grid;grid-template-columns:auto minmax(280px,1fr) minmax(210px,.55fr);gap:12px;align-items:start;margin-bottom:14px}
.p360-record-tabs{display:flex;background:#fff;border:1px solid var(--line);border-radius:14px;padding:4px}
.p360-record-tabs button{border:0;background:transparent;border-radius:10px;padding:10px 14px;font-weight:800;color:var(--muted)}
.p360-record-tabs button.is-active{background:var(--brand);color:#fff}
.p360-record-toolbar .p360-att-selector{margin:0;max-width:none}
.p360-record-student{display:grid;gap:5px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px 11px}
.p360-record-student span{font-size:10px;letter-spacing:.11em;font-weight:850;color:#7a8797}
.p360-record-student select{border:0;outline:0;background:transparent;color:var(--text);font-weight:750;min-width:0}
.p360-record-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}
.p360-record-summary article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px}
.p360-record-summary strong{font-size:24px;display:block;letter-spacing:-.03em}
.p360-record-summary span{color:var(--muted);font-size:12px;font-weight:700}
.p360-record-row{display:grid;grid-template-columns:110px minmax(150px,.8fr) minmax(220px,1.5fr) 110px;gap:12px;align-items:center;padding:13px 16px;border-top:1px solid var(--line)}
.p360-record-row:first-child,.p360-record-grade:first-child{border-top:0}
.p360-record-row small,.p360-record-grade small{display:block;color:#b42318;font-weight:700;font-size:11px;margin-top:2px}
.p360-record-grade{display:grid;grid-template-columns:minmax(150px,1fr) minmax(220px,1.4fr) repeat(5,64px);gap:10px;align-items:center;padding:13px 16px;border-top:1px solid var(--line)}
.p360-record-grade>span:not(:nth-child(2)),.p360-record-grade>b:last-child{text-align:center}
.p360-record-head{background:#f7f9fb;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.p360-status{display:inline-flex;justify-content:center;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:850;background:#eef3f2;color:var(--brand)}
.p360-status-ausente{background:#fff0ef;color:#b42318}.p360-status-retraso{background:#fff7e7;color:#9a6700}.p360-status-justificado{background:#eef4ff;color:#315ca8}
@media(max-width:900px){
 .p360-record-toolbar{grid-template-columns:1fr}.p360-record-tabs{width:max-content}
 .p360-record-summary{grid-template-columns:repeat(2,1fr)}
 .p360-record-row{grid-template-columns:82px 1fr 90px}.p360-record-row>span:nth-child(3){grid-column:1/-1;grid-row:2}.p360-record-head>b:nth-child(3){display:none}
 .p360-record-grade{min-width:760px}.p360-data-panel:has(.p360-record-grade){overflow:auto}
}
@media(max-width:520px){
 .p360-record-summary article{padding:12px}.p360-record-summary strong{font-size:21px}
 .p360-record-row{grid-template-columns:74px 1fr 86px;padding:12px 10px;gap:8px;font-size:12px}
 .p360-data-footer{flex-wrap:wrap}.p360-save-state{width:100%}.p360-data-footer button{width:100%}
}
@media print{
 body.p360-theme .p360-sidebar,body.p360-theme .p360-mobile-nav,body.p360-theme .p360-topbar,body.p360-theme .p360-record-toolbar,body.p360-theme .p360-section-head button{display:none!important}
 body.p360-theme .p360-app{display:block!important}body.p360-theme .p360-main{padding:0!important;max-width:none!important}
 body.p360-theme .p360-view{display:none!important}body.p360-theme .p360-view.is-active{display:block!important}
 .p360-data-panel{border:0!important}.p360-record-summary article{box-shadow:none!important}
}

/* V9: flujos simples y separados */
.p360-simple-select-wrap{max-width:760px;margin:0 0 14px}
.p360-simple-select-wrap .p360-select{width:100%;min-height:52px;padding:0 42px 0 14px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);font-weight:750;font-size:14px;outline:none}
.p360-simple-select-wrap .p360-select:focus{border-color:#aab8c7;box-shadow:0 0 0 3px rgba(31,49,69,.06)}
.p360-selected-meta{margin:7px 2px 0;color:#b42318;font-size:12px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p360-simple-tabs{display:inline-flex;gap:4px;padding:4px;margin:0 0 14px;background:#edf1f5;border-radius:12px}
.p360-simple-tabs button{border:0;background:transparent;color:var(--muted);padding:9px 14px;border-radius:9px;font-weight:800}
.p360-simple-tabs button.is-active{background:#fff;color:var(--text);box-shadow:0 1px 5px rgba(20,35,55,.08)}
.p360-day-filter{display:flex;gap:7px;overflow-x:auto;padding:0 0 12px;scrollbar-width:none}
.p360-day-filter::-webkit-scrollbar{display:none}
.p360-day-filter button{flex:0 0 auto;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:8px 13px;font-weight:750}
.p360-day-filter button.is-active{background:var(--text);border-color:var(--text);color:#fff}
.p360-history-tools{display:flex;justify-content:flex-end;margin:0 0 10px}
.p360-history-tools select{min-height:42px;max-width:300px;width:100%;border:1px solid var(--line);border-radius:11px;background:#fff;padding:0 12px;color:var(--text);font-weight:700}
.p360-history-row{display:grid;grid-template-columns:100px minmax(130px,.8fr) minmax(220px,1.4fr) 110px;gap:12px;align-items:center;padding:12px 14px;border-top:1px solid var(--line)}
.p360-history-row:first-child,.p360-report-row:first-child{border-top:0}
.p360-history-row small,.p360-report-row small{display:block;color:#b42318;font-weight:700;font-size:11px;margin-top:2px}
.p360-report-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(210px,1.35fr) repeat(5,60px);gap:10px;align-items:center;padding:12px 14px;border-top:1px solid var(--line)}
.p360-report-row>span:not(:nth-child(2)),.p360-report-row>b:last-child{text-align:center}
.p360-history-head{background:#f7f9fb;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:700px){
 .p360-selected-meta{white-space:normal;line-height:1.35}
 .p360-simple-tabs{width:100%}.p360-simple-tabs button{flex:1}
 .p360-history-tools{justify-content:stretch}.p360-history-tools select{max-width:none}
 .p360-history-row{grid-template-columns:76px 1fr 86px;padding:11px 9px;gap:8px;font-size:12px}.p360-history-row>span:nth-child(3){grid-column:1/-1;grid-row:2}.p360-history-head>b:nth-child(3){display:none}
 .p360-report-row{min-width:740px}.p360-data-panel:has(.p360-report-row){overflow:auto}
}
@media print{
 .p360-simple-tabs,.p360-day-filter,.p360-simple-select-wrap,.p360-history-tools{display:none!important}
}

/* V10: lectura rápida, estados semánticos y guardado en el propio botón */
.p360-day article .p360-schedule-meta{color:#b42318;font-weight:750;line-height:1.35}

/* Estados de asistencia: el color comunica el significado sin añadir texto extra */
.p360-att-actions button.p360-state-presente.is-active{background:#e9f7ef;border-color:#8bc9a3;color:#176b3a}
.p360-att-actions button.p360-state-ausente.is-active{background:#fff0ef;border-color:#e5a59f;color:#b42318}
.p360-att-actions button.p360-state-retraso.is-active{background:#fff7e7;border-color:#e3c576;color:#8a5d00}
.p360-att-actions button.p360-state-justificado.is-active{background:#eef4ff;border-color:#a9bee8;color:#315ca8}
.p360-status-presente{background:#e9f7ef;color:#176b3a}
.p360-status-ausente{background:#fff0ef;color:#b42318}
.p360-status-retraso{background:#fff7e7;color:#8a5d00}
.p360-status-justificado{background:#eef4ff;color:#315ca8}

/* El propio botón informa del estado del guardado */
.p360-save-button{min-width:150px;transition:background .18s ease,color .18s ease,opacity .18s ease}
.p360-save-button.is-saving{opacity:.72;cursor:wait}
.p360-save-button.is-saved{background:#176b3a!important;color:#fff!important}
.p360-save-button.is-error{background:#b42318!important;color:#fff!important}

.p360-history-tools{gap:8px;align-items:center}
.p360-history-tools input[type=date]{min-height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:0 12px;color:var(--text);font-weight:700}
@media(max-width:700px){
  .p360-history-tools{display:grid;grid-template-columns:1fr 1fr}
  .p360-history-tools select,.p360-history-tools input[type=date]{width:100%;max-width:none;min-width:0}
}
@media(max-width:430px){.p360-history-tools{grid-template-columns:1fr}}

/* V11: actas compactas tipo hoja de cálculo, decimales y recuperación */
.p360-grade-row{grid-template-columns:minmax(140px,1fr) repeat(4,64px) 64px 72px;gap:8px}
.p360-grade-head{background:#f7f9fb;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.035em}
.p360-grade-row .final{font-variant-numeric:tabular-nums}
.p360-recovery-input{font-weight:750}

/* Acta: una tabla visual única, perfectamente alineada y sin desplazamiento lateral. */
#p360GradeReportArea{overflow:hidden}
.p360-report-row{
  width:100%;
  display:grid;
  grid-template-columns:minmax(110px,1.25fr) minmax(150px,1.7fr) repeat(4,minmax(38px,.48fr)) minmax(42px,.54fr) minmax(48px,.62fr);
  gap:0;
  align-items:stretch;
  padding:0;
  border-top:1px solid #dfe5eb;
  font-size:clamp(9px,1vw,12px);
}
.p360-report-row>*{
  min-width:0;
  padding:10px 6px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-right:1px solid #dfe5eb;
  font-variant-numeric:tabular-nums;
}
.p360-report-row>*:first-child{justify-content:flex-start;padding-left:10px}
.p360-report-row>*:nth-child(2){justify-content:flex-start}
.p360-report-row>*:last-child{border-right:0}
.p360-report-row strong,.p360-report-class{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p360-report-row.p360-history-head>*{padding-top:9px;padding-bottom:9px;justify-content:center}
.p360-report-row.p360-history-head>*:first-child,.p360-report-row.p360-history-head>*:nth-child(2){justify-content:flex-start}
.p360-report-class{color:var(--text);font-weight:650}
.p360-grade-cell{font-weight:800;border-radius:0}
.p360-grade-pass{color:#176b3a;background:#eef9f2}
.p360-grade-fail{color:#b42318;background:#fff2f0}

@media(max-width:700px){
  .p360-grade-row{grid-template-columns:minmax(82px,1fr) repeat(4,42px) 44px 48px;gap:4px;padding:9px 6px;font-size:11px}
  .p360-grade-row input{padding:7px 2px;text-align:center}
  .p360-grade-head{font-size:9px}
  .p360-report-row{grid-template-columns:minmax(74px,1.08fr) minmax(92px,1.35fr) repeat(4,minmax(29px,.43fr)) minmax(34px,.48fr) minmax(37px,.54fr);font-size:8.5px}
  .p360-report-row>*{padding:9px 2px}
  .p360-report-row>*:first-child{padding-left:5px}
}
@media(max-width:430px){
  .p360-report-row{grid-template-columns:minmax(66px,1.05fr) minmax(78px,1.25fr) repeat(4,minmax(26px,.42fr)) minmax(31px,.48fr) minmax(34px,.52fr);font-size:7.6px}
  .p360-report-row>*{padding:8px 1px}
  .p360-report-row>*:first-child{padding-left:4px}
}

@media print{
  #p360GradeReportArea{overflow:visible!important}
  .p360-report-row{font-size:9pt;grid-template-columns:1.25fr 1.75fr repeat(4,.5fr) .55fr .65fr;break-inside:avoid}
  .p360-grade-pass{background:#eef9f2!important;color:#176b3a!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .p360-grade-fail{background:#fff2f0!important;color:#b42318!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
@media(max-width:700px){.p360-report-row{min-width:0!important}.p360-data-panel:has(.p360-report-row){overflow:hidden!important}}

/* v12 · Material didáctico y preparación de clase */
.p360-card-actions-three{display:grid;grid-template-columns:1fr 1.35fr 1.35fr;gap:8px;margin-top:16px}
.p360-card-actions-three button{min-height:42px;padding:9px 10px;font-size:12px;white-space:normal;line-height:1.15}
.p360-wide-sheet{width:min(760px,calc(100vw - 28px))}
.p360-modal-title{margin:0 44px 18px 0}.p360-modal-title h2{margin:0 0 5px}.p360-modal-title span{display:block;color:#a53a36;font-size:13px;font-weight:750}
.p360-full-field{grid-column:1/-1}
.p360-material-list{margin-top:22px;padding-top:18px;border-top:1px solid var(--p360-border,#e2e8ed)}.p360-material-list>h3{margin:0 0 10px;font-size:14px;color:#5b6772}
.p360-material-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid #edf0f2}.p360-material-item:last-child{border-bottom:0}.p360-material-item strong{display:block;font-size:14px}.p360-material-item span{display:block;margin-top:3px;color:#75808a;font-size:11px;max-width:430px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p360-material-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}.p360-material-actions a,.p360-material-actions button{border:0;background:#f1f4f6;color:#24323c;border-radius:9px;padding:8px 10px;text-decoration:none;font-weight:750;font-size:11px}.p360-material-actions .p360-delete-material{color:#a93e38;background:#fff2f0}
.p360-offline-ready{margin:12px 0 14px;padding:10px 12px;border-radius:10px;background:#eef5f1;color:#345b4d;font-size:12px;font-weight:700}
.p360-lesson-result{margin-top:4px}.p360-lesson-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid #e7ebee}.p360-lesson-head span{display:block;color:#6f7b85;font-size:10px;font-weight:850;letter-spacing:.1em}.p360-lesson-head h3{margin:4px 0 0;font-size:21px}.p360-lesson-head>strong{padding:7px 10px;border-radius:9px;background:#f0f4f7;color:#2a3a46;font-size:12px;white-space:nowrap}
.p360-lesson-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.p360-lesson-grid section{border:1px solid #e4e9ed;border-radius:12px;padding:12px;background:#fff}.p360-lesson-grid small{display:block;margin-bottom:6px;color:#a53a36;font-weight:850;text-transform:uppercase;letter-spacing:.06em;font-size:10px}.p360-lesson-grid p{margin:0;min-height:52px;outline:0;font-size:13px;line-height:1.45;color:#283944}.p360-lesson-grid p:focus{background:#f8fbfd;border-radius:6px}
.p360-lesson-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.p360-lesson-actions button{min-width:110px}
@media(max-width:760px){.p360-card-actions-three{grid-template-columns:1fr 1fr}.p360-card-actions-three .p360-prepare{grid-column:1/-1}.p360-wide-sheet{width:100%;max-width:none}.p360-lesson-grid{grid-template-columns:1fr}.p360-material-item{align-items:flex-start}.p360-material-actions{flex-direction:column;align-items:stretch}.p360-material-actions a,.p360-material-actions button{text-align:center}}
@media(max-width:430px){.p360-card-actions-three{grid-template-columns:1fr}.p360-card-actions-three .p360-prepare{grid-column:auto}.p360-card-actions-three button{min-height:40px}.p360-lesson-actions{display:grid;grid-template-columns:1fr 1fr}.p360-lesson-actions .p360-primary{grid-column:1/-1}.p360-material-item{display:grid;grid-template-columns:1fr}.p360-material-actions{display:grid;grid-template-columns:1fr 1fr;flex-direction:initial}}
@media print{#p360PrepareModal.is-open{position:static!important;background:#fff!important;padding:0!important}.p360-app,#p360PrepareModal .p360-close,#p360PrepareStart,.p360-lesson-actions{display:none!important}#p360PrepareModal .p360-modal-sheet{box-shadow:none!important;border:0!important;width:100%!important;max-width:none!important;padding:0!important}.p360-lesson-grid{grid-template-columns:1fr 1fr!important}}

/* v13 · Cuaderno móvil, acta limpia y asistente por pasos */
/* En pantalla el acta no repite la clase; al imprimir sí aparece. */
.p360-print-class{display:none!important}
#p360GradeReportArea .p360-report-row{grid-template-columns:minmax(130px,1.45fr) repeat(4,minmax(46px,.55fr)) minmax(52px,.62fr) minmax(58px,.70fr)}
#p360GradeReportArea .p360-report-row>*:nth-child(2){justify-content:center}

/* El cuaderno siempre cabe en el ancho útil del móvil, incluida Recuperación. */
.p360-grade-row>*{min-width:0}
.p360-grade-row input{min-width:0;max-width:100%}
@media(max-width:700px){
  .p360-grade-row{grid-template-columns:minmax(74px,1fr) repeat(4,minmax(0,36px)) minmax(0,39px) minmax(0,44px);gap:3px;padding:9px 5px;font-size:10px}
  .p360-grade-row input{padding:7px 1px;font-size:11px}
  .p360-grade-head{font-size:8.5px;letter-spacing:0;text-transform:none}
  #p360GradeReportArea .p360-report-row{grid-template-columns:minmax(76px,1.25fr) repeat(4,minmax(0,.55fr)) minmax(0,.62fr) minmax(0,.68fr);font-size:8.5px}
}
@media(max-width:390px){
  .p360-grade-row{grid-template-columns:minmax(66px,1fr) repeat(4,minmax(0,31px)) minmax(0,35px) minmax(0,39px);gap:2px;padding:8px 4px;font-size:9.5px}
  .p360-grade-head{font-size:7.8px}
  .p360-grade-row input{font-size:10px;padding:6px 0}
  #p360GradeReportArea .p360-report-row{font-size:7.7px}
}
@media print{
  .p360-print-class{display:flex!important}
  #p360GradeReportArea .p360-report-row{grid-template-columns:1.25fr 1.75fr repeat(4,.5fr) .55fr .65fr}
  #p360GradeReportArea .p360-report-row>*:nth-child(2){justify-content:flex-start}
}

/* Asistente de preparación: conversación guiada, no formulario largo. */
.p360-assistant-sheet{max-width:720px}
.p360-assistant-progress{display:flex;align-items:center;justify-content:center;gap:8px;margin:4px 0 24px}
.p360-assistant-progress span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#edf1f3;color:#7a8790;font-size:11px;font-weight:850;transition:.2s}
.p360-assistant-progress span.is-active{background:var(--brand);color:#fff}
.p360-assistant-progress i{width:42px;height:2px;background:#e1e6e9;border-radius:2px}
.p360-assistant-question{text-align:center;margin-bottom:18px}
.p360-assistant-question small{font-size:10px;letter-spacing:.1em;font-weight:850;color:#a53a36}
.p360-assistant-question h3{margin:5px 0 0;font-size:22px;letter-spacing:-.02em}
.p360-source-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.p360-source-choices button{appearance:none;border:1px solid #dde4e8;background:#fff;border-radius:15px;padding:17px 14px;text-align:left;color:#24323c;transition:.18s;min-height:110px}
.p360-source-choices button:hover,.p360-source-choices button.is-selected{border-color:var(--brand);box-shadow:0 0 0 2px rgba(21,80,66,.08);background:#f7fbf9}
.p360-source-choices strong{display:block;font-size:14px;margin-bottom:6px}
.p360-source-choices span{display:block;font-size:11px;line-height:1.35;color:#75818a}
.p360-source-detail{margin-top:14px;padding:14px;border-radius:13px;background:#f7f9fa;border:1px solid #e7ecef}
.p360-source-detail label,.p360-assistant-fields label{display:grid;gap:7px;font-size:12px;font-weight:800;color:#4e5b65}
.p360-source-detail select,.p360-source-detail input,.p360-assistant-fields select,.p360-assistant-fields input{width:100%;border:1px solid #dce3e7;border-radius:11px;background:#fff;padding:12px 13px;color:#1f303a}
.p360-assistant-next{width:100%;margin-top:2px!important}
.p360-assistant-fields{display:grid;grid-template-columns:1fr 160px;gap:12px;max-width:590px;margin:0 auto 18px}
.p360-assistant-nav{display:flex;gap:9px;justify-content:center;max-width:590px;margin:auto}
.p360-assistant-nav .p360-secondary{margin:0;min-width:110px}
.p360-assistant-nav .p360-primary{margin:0;flex:1}
@media(max-width:620px){
  .p360-source-choices{grid-template-columns:1fr}
  .p360-source-choices button{min-height:0;padding:14px}
  .p360-assistant-fields{grid-template-columns:1fr}
  .p360-assistant-question h3{font-size:19px}
}


/* v15 · Cuaderno con decimales/estado y cabecera de impresión fuera de la tabla */
.p360-grade-row input.p360-grade-pass{color:#176b3a;background:#eef9f2;border-color:#b9dfc7;font-weight:800}
.p360-grade-row input.p360-grade-fail{color:#b42318;background:#fff2f0;border-color:#f0c3be;font-weight:800}
.p360-grade-row .final.p360-grade-pass,.p360-grade-row .final.p360-grade-fail{display:flex;align-items:center;justify-content:center;min-height:34px}
.p360-grade-print-header{display:none}
#p360GradeReportArea .p360-report-row{grid-template-columns:minmax(150px,1.7fr) repeat(4,minmax(46px,.55fr)) minmax(52px,.62fr) minmax(58px,.70fr)}
#p360GradeReportArea .p360-report-row>*:nth-child(2){justify-content:center}
@media(max-width:700px){
  #p360GradeReportArea .p360-report-row{grid-template-columns:minmax(90px,1.5fr) repeat(4,minmax(0,.55fr)) minmax(0,.62fr) minmax(0,.68fr)}
}
@media print{
  .p360-grade-print-header{display:block!important;margin:0 0 12px;padding:0 0 10px;border-bottom:2px solid #26323a}
  .p360-grade-print-header strong{display:block;font-size:15pt;line-height:1.2;color:#111}
  .p360-grade-print-header span{display:block;margin-top:4px;font-size:9.5pt;font-weight:700;color:#b42318}
  #p360GradeReportArea .p360-report-row{grid-template-columns:minmax(180px,1.8fr) repeat(4,.55fr) .62fr .70fr!important}
  #p360GradeReportArea .p360-report-row>*:nth-child(2){justify-content:center!important}
  .p360-grade-row input.p360-grade-pass,.p360-grade-row .final.p360-grade-pass{background:#eef9f2!important;color:#176b3a!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .p360-grade-row input.p360-grade-fail,.p360-grade-row .final.p360-grade-fail{background:#fff2f0!important;color:#b42318!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

@media print{.p360-print-class{display:none!important}}
/* v18: accesos completos al abrir una clase desde Inicio */
.p360-mode-grid-six{grid-template-columns:repeat(2,minmax(0,1fr))}
.p360-mode-grid-six button{min-height:54px}
@media(max-width:520px){.p360-mode-grid-six{grid-template-columns:1fr 1fr}.p360-mode-grid-six button{padding:12px 8px;font-size:13px}}

/* v19 · navegación interna */
.p360-topbar-left{display:flex;align-items:center;gap:12px;min-width:0}
.p360-app-back{width:40px;height:40px;min-width:40px;border:1px solid var(--p360-border,#e2e8f0);border-radius:12px;background:#fff;color:#172033;font-size:31px;line-height:1;display:grid;place-items:center;padding:0 0 4px;box-shadow:0 2px 8px rgba(15,23,42,.05)}
.p360-app-back[hidden]{display:none!important}
.p360-app-back:active{transform:translateY(1px)}
@media(max-width:720px){.p360-topbar-left{gap:8px}.p360-app-back{width:36px;height:36px;min-width:36px;border-radius:10px;font-size:28px}.p360-mobile-nav{grid-template-columns:repeat(4,1fr)!important}}

/* v22 - Asistente de contenido: presentación resumida */
.p360-source-choices-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.p360-summary-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0 18px}
.p360-summary-options button{border:1px solid var(--p360-border,#dfe6ee);background:#fff;border-radius:14px;padding:14px 12px;text-align:left;color:inherit}
.p360-summary-options button strong,.p360-summary-options button span{display:block}
.p360-summary-options button span{margin-top:3px;font-size:12px;color:#6c7886}
.p360-summary-options button.is-selected{border-color:#2d6ca8;background:#f2f7fc;box-shadow:0 0 0 2px rgba(45,108,168,.08)}
.p360-assistant-title{display:block;margin:8px 0 18px;font-weight:700;font-size:13px;color:#334252}
.p360-assistant-title small{font-weight:500;color:#778493}
.p360-assistant-title input{display:block;width:100%;margin-top:7px}
.p360-presentation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.p360-presentation-head span{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;color:#2d6ca8}
.p360-presentation-head h3{margin:4px 0 3px;font-size:22px;line-height:1.15}
.p360-presentation-head small{color:#6e7b89}
.p360-presentation-head>strong{white-space:nowrap;font-size:12px;color:#536270;background:#eef3f8;padding:8px 10px;border-radius:999px}
.p360-slide-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.p360-slide-card{position:relative;aspect-ratio:16/9;background:#fff;border:1px solid #dfe6ee;border-radius:14px;overflow:hidden;box-shadow:0 5px 16px rgba(20,45,70,.06)}
.p360-slide-card.is-cover{background:linear-gradient(145deg,#f5f9fd,#edf4fb)}
.p360-slide-number{position:absolute;top:10px;right:12px;font-size:11px;color:#8995a1;font-weight:700}
.p360-slide-inner{height:100%;padding:24px 26px;display:flex;flex-direction:column;justify-content:center}
.p360-slide-inner h4{margin:0 0 13px;font-size:18px;line-height:1.15;color:#173f68;outline:none}
.p360-slide-card.is-cover .p360-slide-inner h4{font-size:24px;max-width:90%}
.p360-slide-inner p{margin:0;color:#667786;font-size:13px;line-height:1.45;outline:none}
.p360-slide-inner ul{margin:0;padding-left:18px;display:grid;gap:7px}
.p360-slide-inner li{font-size:12px;line-height:1.35;color:#2d3742;outline:none}
.p360-slide-inner [contenteditable="true"]:focus{background:#f5f8fb;border-radius:5px;box-shadow:0 0 0 3px #f5f8fb}
.p360-presentation-actions{position:sticky;bottom:-1px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);padding-top:14px;margin-top:16px;z-index:2}
@media(max-width:680px){
 .p360-source-choices-two,.p360-summary-options{grid-template-columns:1fr}
 .p360-summary-options{gap:8px}.p360-summary-options button{padding:12px 13px}
 .p360-slide-preview{grid-template-columns:1fr;gap:11px}
 .p360-slide-card{aspect-ratio:16/9}
 .p360-slide-inner{padding:20px 21px}
 .p360-slide-inner h4{font-size:16px}.p360-slide-card.is-cover .p360-slide-inner h4{font-size:21px}
 .p360-slide-inner li{font-size:11.5px}
 .p360-presentation-head{display:block}.p360-presentation-head>strong{display:inline-block;margin-top:8px}
 .p360-presentation-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
 .p360-presentation-actions button{width:100%;margin:0}
}


/* v23 - estado visible del generador de presentaciones */
.p360-prepare-status{min-height:24px;margin-top:12px;font-size:14px;line-height:1.4;color:#51606f;text-align:right}
.p360-prepare-status[data-state=working]{color:#1f5f99;font-weight:600}
.p360-prepare-status[data-state=error]{color:#b3261e;font-weight:650;background:#fff2f0;border:1px solid #ffd5d0;border-radius:10px;padding:10px 12px;text-align:left}
@media(max-width:640px){.p360-prepare-status{text-align:left;font-size:13px}.p360-assistant-nav{align-items:stretch}.p360-assistant-nav button{min-height:48px}}

/* v25: cierre de sesión global, visible y sin duplicar acciones */
.p360-topbar-actions{display:flex;align-items:center;gap:9px;flex-shrink:0}
.p360-logout-cta{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border:1px solid #d8e0de;border-radius:12px;background:#fff;color:#8f2d2d;text-decoration:none;font-size:13px;font-weight:800;white-space:nowrap;transition:background .15s ease,border-color .15s ease}
.p360-logout-cta:hover{background:#fff5f5;border-color:#e8c7c7;color:#7e2424}
@media(max-width:620px){
  .p360-topbar{align-items:flex-start}
  .p360-topbar-actions{gap:6px}
  .p360-logout-cta{min-height:38px;padding:9px 10px;font-size:11px;border-radius:10px}
  .p360-add-class-cta{min-height:38px;padding:9px 10px;font-size:11px}
}
@media(max-width:390px){
  .p360-topbar{gap:8px}
  .p360-topbar-actions{flex-direction:column;align-items:stretch}
  .p360-logout-cta,.p360-add-class-cta{min-height:34px;padding:7px 9px}
}

/* V26 · Agenda360 y avisos del día */
.p360-section-subtitle{display:block;margin-top:3px;color:var(--muted)!important;font-size:12px!important;font-weight:600!important}
.p360-section-actions{display:flex;align-items:center;gap:8px}
.p360-section-actions button{margin:0}
.p360-section-actions .p360-agenda-add{background:var(--brand);color:#fff;border-radius:11px;padding:10px 15px}
.p360-notice-permission{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 16px;padding:12px 14px;background:#f4f8fb;border:1px solid #dce7ef;border-radius:14px;color:var(--text);font-size:13px}
.p360-notice-permission button{border:0;border-radius:10px;background:var(--brand);color:#fff;padding:9px 12px;font-weight:800;white-space:nowrap}
.p360-agenda-toolbar{display:grid;grid-template-columns:42px 1fr 42px auto;gap:7px;align-items:center;margin:0 0 10px}
.p360-agenda-toolbar>button{height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--text);font-size:21px;font-weight:700}
.p360-agenda-toolbar strong{text-align:center;text-transform:capitalize;font-size:15px}
.p360-agenda-toolbar .p360-agenda-today{padding:0 14px;font-size:12px;color:var(--brand)}
.p360-agenda-calendar{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px}
.p360-calendar-week,.p360-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.p360-calendar-week{margin-bottom:6px}.p360-calendar-week b{text-align:center;color:var(--muted);font-size:10px;font-weight:800}
.p360-calendar-grid button,.p360-calendar-empty{aspect-ratio:1/1;min-width:0}
.p360-calendar-grid button{position:relative;border:0;background:transparent;border-radius:11px;color:var(--text);display:grid;place-items:center;font-size:12px;font-weight:750}
.p360-calendar-grid button:hover{background:#f4f7f8}.p360-calendar-grid button.is-today{box-shadow:inset 0 0 0 1px var(--brand);color:var(--brand)}
.p360-calendar-grid button.is-selected{background:var(--brand);color:#fff;box-shadow:none}.p360-calendar-grid button i{position:absolute;bottom:5px;width:4px;height:4px;border-radius:50%;background:#c43f35}.p360-calendar-grid button.is-selected i{background:#fff}
.p360-agenda-list-head{display:flex;align-items:center;justify-content:space-between;margin:20px 0 9px}.p360-agenda-list-head h3{margin:0;font-size:16px}.p360-agenda-list-head button{border:0;background:transparent;color:var(--brand);font-weight:750;font-size:12px}
.p360-agenda-list{display:grid;gap:8px}.p360-agenda-item{display:grid;grid-template-columns:32px 1fr 32px;gap:10px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px}
.p360-agenda-check,.p360-agenda-more{border:0;background:transparent;padding:0;display:grid;place-items:center}.p360-agenda-check{width:30px;height:30px}.p360-agenda-check span{width:18px;height:18px;border:1.5px solid #9cabaa;border-radius:50%}.p360-agenda-item.is-done{opacity:.58}.p360-agenda-item.is-done .p360-agenda-check span{background:var(--brand);border-color:var(--brand);box-shadow:inset 0 0 0 4px #fff}.p360-agenda-item.is-done .p360-agenda-copy>strong{text-decoration:line-through}
.p360-agenda-more{width:30px;height:30px;color:#9b5a55;font-size:20px}.p360-agenda-item-top{display:flex;align-items:center;gap:8px;margin-bottom:5px}.p360-agenda-item-top time{color:var(--muted);font-size:11px;font-weight:700}.p360-agenda-copy>strong{font-size:14px}.p360-agenda-copy p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.4}
.p360-agenda-type{display:inline-flex;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.035em;background:#eef3f4;color:#45605a}.p360-agenda-type.exam{background:#fff0ef;color:#a52a22}.p360-agenda-type.meeting{background:#eef4ff;color:#315ca8}.p360-agenda-type.school{background:#edf7ef;color:#26663b}.p360-agenda-type.reminder{background:#fff7e7;color:#8a5d00}
.p360-agenda-title-field{display:block;font-size:12px;color:var(--muted);font-weight:700;margin:18px 0 0}.p360-agenda-title-field input{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:16px}
.p360-live-notice{position:fixed;z-index:1400;right:20px;top:20px;width:min(390px,calc(100vw - 40px));display:grid;grid-template-columns:1fr 30px;gap:10px;align-items:start;background:#153f36;color:#fff;border-radius:16px;padding:14px 12px 14px 16px;box-shadow:0 18px 50px rgba(12,35,30,.24);opacity:0;transform:translateY(-12px);pointer-events:none;transition:.2s ease}.p360-live-notice.is-visible{opacity:1;transform:none;pointer-events:auto}.p360-live-notice strong,.p360-live-notice span{display:block}.p360-live-notice strong{font-size:14px}.p360-live-notice span{margin-top:3px;color:#dbeae6;font-size:12px;line-height:1.4}.p360-live-notice button{border:0;background:transparent;color:#fff;font-size:22px;padding:0}
@media(max-width:720px){
 .p360-mobile-nav{grid-template-columns:repeat(5,1fr)!important}
 .p360-agenda-head{align-items:flex-end}.p360-section-actions{gap:4px}.p360-section-actions button{font-size:11px!important;padding:8px 10px!important}
 .p360-agenda-calendar{padding:10px}.p360-calendar-grid,.p360-calendar-week{gap:2px}.p360-calendar-grid button{font-size:11px;border-radius:9px}.p360-calendar-grid button i{bottom:3px}
 .p360-notice-permission{align-items:flex-start}.p360-notice-permission span{line-height:1.35}.p360-live-notice{top:max(12px,env(safe-area-inset-top));left:12px;right:12px;width:auto}
}
@media(max-width:390px){.p360-agenda-toolbar{grid-template-columns:38px 1fr 38px}.p360-agenda-toolbar .p360-agenda-today{grid-column:1/-1;height:36px}.p360-agenda-item{grid-template-columns:28px 1fr 28px;padding:10px;gap:8px}.p360-agenda-item-top{align-items:flex-start;flex-direction:column;gap:3px}}
@media print{#view-agenda .p360-agenda-toolbar,#view-agenda .p360-notice-permission,#view-agenda .p360-agenda-calendar,#view-agenda .p360-agenda-list-head button,#view-agenda .p360-agenda-more,#view-agenda .p360-agenda-check{display:none!important}.p360-agenda-item{grid-template-columns:1fr!important;break-inside:avoid}.p360-agenda-item.is-done{display:none!important}}

/* v27 — apariencia social móvil Profe360 */
:root{--p360-navy:#082c52;--p360-green:#12a568;--p360-teal:#10a7b5;--p360-bg:#f4f8f6;--p360-line:#e5ece9}
.p360-main{background:linear-gradient(180deg,#f4faf7 0,#f7f9fb 360px,#f7f9fb 100%)}
.p360-topbar{background:rgba(255,255,255,.94);border-bottom:1px solid var(--p360-line);backdrop-filter:blur(16px)}
.p360-topbar h1{color:var(--p360-navy);font-weight:850;letter-spacing:-.03em}
.p360-eyebrow{color:#668077;font-weight:750}
.p360-add-class-cta{background:linear-gradient(135deg,#0b8457,#13aa70)!important;box-shadow:0 8px 20px rgba(18,165,104,.18)!important;border-radius:14px!important}
.p360-logout-cta{border-radius:14px!important;background:#fff!important;border:1px solid #e1e8e5!important;color:#6f7d78!important}
.p360-social-welcome{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 24px;margin-bottom:18px;border-radius:24px;background:linear-gradient(125deg,#073d35 0%,#0b7651 56%,#18a66e 100%);color:#fff;box-shadow:0 14px 30px rgba(8,82,62,.15)}
.p360-social-welcome:after{content:"";position:absolute;right:-35px;bottom:-60px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.09)}
.p360-social-welcome h2{margin:3px 0 3px;font-size:24px;letter-spacing:-.035em;color:#fff}.p360-social-welcome p{margin:0;color:#d8f3e7;font-weight:650}.p360-welcome-kicker{font-size:10px;letter-spacing:.15em;font-weight:900;color:#bdebd7}.p360-welcome-badge{position:relative;z-index:1;width:62px;height:62px;display:grid;place-items:center;border-radius:20px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);font-size:21px;font-weight:950}
.p360-quick-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0 0 22px}.p360-quick{appearance:none;border:0;min-height:88px;border-radius:20px;padding:13px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;font:inherit;font-size:12px;font-weight:800;color:#173a35;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 5px 16px rgba(20,58,49,.06)}.p360-quick:active{transform:scale(.97)}.p360-quick i,.p360-quick b{width:34px;height:34px;display:grid;place-items:center;border-radius:11px}.p360-quick-classes{background:#e6f7ed}.p360-quick-schedule{background:#e8f2ff}.p360-quick-att{background:#fff0e5}.p360-quick-grades{background:#f2eaff}.p360-quick-agenda{background:#ffe9ed}.p360-quick-add{background:#e8f8f7}.p360-quick-add b{font-size:25px;color:#0b8f82;font-weight:500}
.p360-next-card{border:1px solid #dcebe5!important;border-radius:24px!important;background:#fff!important;box-shadow:0 10px 28px rgba(17,65,51,.07)!important;position:relative;overflow:hidden}.p360-next-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#12a568}.p360-next-card .p360-card-top span{color:#0b9862!important}.p360-next-card h2{color:var(--p360-navy)!important}.p360-next-meta,.p360-schedule-meta{color:#d54b4b!important;font-weight:750!important}
.p360-section-head{margin-top:22px}.p360-section-head h2{color:var(--p360-navy);letter-spacing:-.025em}.p360-day-list,.p360-card-grid{gap:12px}.p360-class-row,.p360-class-card,.p360-data-panel,.p360-day{border-color:#e2eae7!important;border-radius:20px!important;box-shadow:0 5px 18px rgba(16,55,45,.045)!important;background:#fff!important}.p360-class-row time{background:#edf8f2;color:#08794f;border-radius:12px;padding:7px 8px;font-weight:850}.p360-row-action{border-radius:12px!important;color:#087b54!important;background:#eaf8f1!important}
.p360-mobile-nav{background:rgba(255,255,255,.97)!important;border-top:1px solid #e2eae7!important;box-shadow:0 -8px 28px rgba(18,50,42,.08)!important}.p360-mobile-nav button{color:#7d8d88!important}.p360-mobile-nav button.is-active{color:#0a8e5e!important}.p360-mobile-nav button.is-active i{background:#e6f7ed!important}
.p360-sidebar{background:linear-gradient(180deg,#062e4d,#073f48 60%,#07543e)!important}.p360-brand .p360-mark{background:linear-gradient(135deg,#17b575,#10a7b5)!important}.p360-nav button.is-active{background:rgba(255,255,255,.13)!important;border-color:rgba(255,255,255,.08)!important}
@media(max-width:1050px){.p360-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){body{background:#f4f8f6}.p360-main{padding-bottom:92px!important}.p360-topbar{padding-top:max(12px,env(safe-area-inset-top))!important}.p360-topbar-left h1{font-size:21px!important}.p360-topbar-actions{gap:6px!important}.p360-add-class-cta{font-size:12px!important;padding:10px 11px!important}.p360-logout-cta{font-size:11px!important;padding:9px 10px!important}.p360-social-welcome{border-radius:20px;padding:18px;margin-bottom:14px}.p360-social-welcome h2{font-size:21px}.p360-social-welcome p{font-size:13px}.p360-welcome-badge{width:52px;height:52px;border-radius:16px}.p360-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:18px}.p360-quick{min-height:78px;border-radius:17px;font-size:11px;padding:10px 4px}.p360-next-card{border-radius:20px!important}.p360-class-row{border-radius:17px!important}.p360-view{padding-top:14px!important}}
@media(max-width:380px){.p360-social-welcome{padding:16px 14px}.p360-welcome-badge{display:none}.p360-quick{min-height:72px}.p360-topbar-actions .p360-logout-cta{font-size:0;width:38px;padding:9px 5px!important}.p360-topbar-actions .p360-logout-cta:after{content:"Salir";font-size:10px}}

/* v28 header social */
.p360-social-header{position:sticky;top:0;z-index:80;min-height:76px;padding:10px 18px!important;background:rgba(255,255,255,.97)!important;border-bottom:1px solid #e5edf3;box-shadow:0 5px 18px rgba(16,47,85,.06);backdrop-filter:blur(14px);display:flex!important;align-items:center;justify-content:space-between;gap:14px}
.p360-social-brand,.p360-social-actions{display:flex;align-items:center;gap:10px}.p360-brand-home{border:0;background:transparent;padding:0;display:flex;align-items:center;gap:9px;cursor:pointer;text-align:left}.p360-social-logo{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#0d365e,#0a8e79);display:grid;place-items:center;color:#fff;box-shadow:0 5px 12px rgba(13,54,94,.15)}.p360-social-logo b{font-size:11px}.p360-social-wordmark{display:grid;line-height:1}.p360-social-wordmark strong{font-size:23px;letter-spacing:-1px;color:#0d3155}.p360-social-wordmark strong span{color:#15966c}.p360-social-wordmark small{font-size:7px;letter-spacing:1.1px;font-weight:800;color:#60758a;margin-top:5px}
.p360-header-add{border:0;background:#edf8f4;color:#0c7658;border-radius:14px;min-height:44px;padding:0 13px;display:flex;align-items:center;gap:7px;font-weight:800;cursor:pointer}.p360-header-add span{font-size:24px;font-weight:400}.p360-header-add b{font-size:13px}.p360-notification-button,.p360-account-button{width:44px;height:44px;border:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;position:relative}.p360-notification-button{background:#f2f6fa;color:#153b60}.p360-notification-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.p360-notification-count{position:absolute;right:-1px;top:-2px;min-width:19px;height:19px;padding:0 4px;border-radius:10px;background:#e84141;color:#fff;font-size:10px;font-weight:900;display:grid;place-items:center;border:2px solid #fff}.p360-account-button{background:#d8f6e7;border:2px solid #fff;box-shadow:0 0 0 1px #dce7ef}.p360-account-button span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#0e6e62;color:#fff;font-size:14px;font-weight:900}
.p360-header-popover{position:fixed;z-index:120;right:18px;top:72px;width:min(340px,calc(100vw - 28px));background:#fff;border:1px solid #e0e9f0;border-radius:18px;box-shadow:0 18px 50px rgba(10,37,62,.18);padding:10px}.p360-header-popover[hidden]{display:none!important}.p360-popover-title{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 10px}.p360-popover-title button{border:0;background:#f2f5f8;width:30px;height:30px;border-radius:50%;font-size:20px}.p360-popover-body{max-height:310px;overflow:auto}.p360-popover-empty{padding:20px 10px;text-align:center;color:#73869a;font-size:13px}.p360-popover-link,.p360-popover-logout{width:100%;box-sizing:border-box;border:0;border-top:1px solid #edf1f4;background:#fff;display:block;padding:13px 10px;text-align:left;font-weight:750;color:#17466f;text-decoration:none;cursor:pointer}.p360-popover-logout{color:#b4232c}.p360-account-summary{display:flex;align-items:center;gap:10px;padding:8px 8px 12px}.p360-account-summary>span{width:42px;height:42px;border-radius:50%;background:#0e6e62;color:#fff;display:grid;place-items:center;font-weight:900}.p360-account-summary div{display:grid}.p360-account-summary small{color:#788b9e;margin-top:2px}
@media(max-width:640px){.p360-social-header{min-height:66px;padding:8px 12px!important}.p360-social-logo{width:38px;height:38px}.p360-social-wordmark strong{font-size:20px}.p360-social-wordmark small{font-size:6px;letter-spacing:.7px}.p360-header-add{width:40px;height:40px;min-height:40px;padding:0;border-radius:50%;justify-content:center}.p360-header-add b{display:none}.p360-notification-button,.p360-account-button{width:40px;height:40px}.p360-header-popover{top:62px;right:10px;width:calc(100vw - 20px)}}@media(max-width:380px){.p360-social-wordmark small{display:none}.p360-social-wordmark strong{font-size:18px}.p360-social-actions,.p360-social-brand{gap:6px}}

/* v29 — portada tipo red social */
.p360-home-social{max-width:1180px;margin:0 auto}
.p360-home-hero{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;background:linear-gradient(135deg,#087a63 0%,#20a77f 52%,#6dd6b4 100%);border-radius:28px;padding:30px;min-height:270px;color:#fff;overflow:hidden;position:relative;box-shadow:0 18px 45px rgba(7,91,72,.18)}
.p360-home-hero:before,.p360-home-hero:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.08)}.p360-home-hero:before{width:260px;height:260px;right:-80px;top:-120px}.p360-home-hero:after{width:180px;height:180px;left:-80px;bottom:-90px}
.p360-home-hero-copy{position:relative;z-index:2;align-self:center}.p360-home-kicker{font-size:11px;letter-spacing:1.5px;font-weight:900;opacity:.85}.p360-home-hero h1{font-size:34px;line-height:1.05;margin:10px 0 6px;color:#fff}.p360-home-hero p{font-size:18px;margin:0 0 24px}.p360-home-hero blockquote{margin:0;padding:14px 16px;background:rgba(5,68,58,.28);border-radius:18px;font-size:15px;max-width:430px}
.p360-home-hero-art{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:16px}.p360-mini-phone{width:185px;background:#fff;border:8px solid #12314f;border-radius:30px;padding:14px;transform:rotate(5deg);box-shadow:0 18px 32px rgba(0,0,0,.22)}.p360-mini-head{color:#12314f;font-size:16px;margin-bottom:10px}.p360-mini-head b span{color:#13a774}.p360-mini-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.p360-mini-grid span{font-size:9px;font-weight:800;padding:12px 5px;border-radius:10px;background:#eef8f5;color:#175848;text-align:center}.p360-mini-grid span:nth-child(2){background:#eef5ff;color:#1d5ca8}.p360-mini-grid span:nth-child(3){background:#fff0e7;color:#bd5c18}.p360-mini-grid span:nth-child(4){background:#f3ecff;color:#7140b6}.p360-mini-grid span:nth-child(5){background:#e7fbfb;color:#087e83}.p360-mini-grid span:nth-child(6){background:#ffecef;color:#b71f43}.p360-hero-note{display:grid;gap:4px;transform:rotate(-4deg);font-size:21px;font-style:italic;text-align:center}.p360-hero-note strong{display:block}
.p360-home-actions{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin:18px 0}.p360-home-action{border:0;border-radius:22px;min-height:108px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#fff;font-weight:850;font-size:14px;box-shadow:0 10px 24px rgba(24,48,76,.10);cursor:pointer}.p360-home-action i,.p360-home-action .p360-doc-icon{width:30px;height:30px}.p360-home-action-classes{background:linear-gradient(145deg,#1eb25d,#0d8f49)}.p360-home-action-schedule{background:linear-gradient(145deg,#2e9cff,#176de0)}.p360-home-action-attendance{background:linear-gradient(145deg,#ff9e43,#f06d24)}.p360-home-action-grades{background:linear-gradient(145deg,#9854ee,#6f39d4)}.p360-home-action-materials{background:linear-gradient(145deg,#2cc3ce,#0896a1)}.p360-home-action-agenda{background:linear-gradient(145deg,#f85b77,#db234c)}
.p360-doc-icon{position:relative;border:3px solid currentColor;border-radius:4px}.p360-doc-icon:after{content:"";position:absolute;left:5px;right:5px;top:8px;height:3px;background:currentColor;box-shadow:0 6px 0 currentColor}
.p360-home-next{background:#fff;border:1px solid #e7eef4;border-radius:22px;padding:18px 20px;margin-bottom:18px;box-shadow:0 8px 24px rgba(18,54,86,.06)}.p360-home-next-label{font-size:10px;font-weight:900;color:#7a8ea3;letter-spacing:1.2px}.p360-home-next-main{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:8px}.p360-home-next time{font-size:13px;color:#0d7b5e;font-weight:900}.p360-home-next h2{margin:4px 0;font-size:20px}.p360-home-next p{margin:0;color:#d04747;font-size:13px}.p360-home-open{border:0;background:#0d7b5e;color:#fff;border-radius:14px;padding:12px 18px;font-weight:850}
.p360-home-feed{background:#fff;border:1px solid #e8eef3;border-radius:24px;padding:18px;margin-bottom:18px;box-shadow:0 8px 24px rgba(18,54,86,.05)}.p360-home-feed-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.p360-home-feed-head>div{display:flex;align-items:center;gap:8px}.p360-home-feed-head h2{margin:0;font-size:20px}.p360-home-feed-head button{border:0;background:transparent;color:#1470dc;font-weight:850}.p360-home-feed-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#eaf3ff;color:#1470dc}
.p360-home-day-row{width:100%;border:0;border-top:1px solid #edf1f4;background:#fff;display:grid;grid-template-columns:64px 12px 1fr 20px;align-items:center;gap:10px;padding:14px 4px;text-align:left}.p360-home-day-row time{font-weight:900;color:#193b60}.p360-home-day-row time small{display:block;font-weight:600;color:#8a9bac;margin-top:2px}.p360-home-day-dot{width:9px;height:9px;border-radius:50%;background:#1ab05c}.p360-home-day-row:nth-child(2) .p360-home-day-dot{background:#f4a425}.p360-home-day-row:nth-child(3) .p360-home-day-dot{background:#1f8ef1}.p360-home-day-info{display:grid}.p360-home-day-info strong{font-size:14px;color:#142f4e}.p360-home-day-info small{font-size:12px;color:#7a8ea3;margin-top:3px}.p360-home-day-arrow{font-size:26px;color:#8da0b3}
.p360-home-secondary{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}.p360-home-secondary-card{border:1px solid #e8eef3;background:#fff;border-radius:20px;padding:16px;display:grid;grid-template-columns:48px 1fr 18px;align-items:center;gap:12px;text-align:left}.p360-home-secondary-card span:nth-child(2){display:grid}.p360-home-secondary-card strong{font-size:15px;color:#163a5c}.p360-home-secondary-card small{font-size:12px;color:#7d90a2;margin-top:3px}.p360-secondary-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#eaf8f2;color:#087a63;font-weight:900}.p360-secondary-material:before{content:"";width:22px;height:16px;border-radius:4px;background:#fff;border:3px solid currentColor}
.p360-home-motivation{background:linear-gradient(90deg,#e8faef,#f5fff8);border-radius:20px;padding:18px;display:grid;grid-template-columns:42px 1fr 18px;align-items:center;gap:12px;color:#174c3d}.p360-leaf-mark{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#c9f1d8;color:#16864f;font-weight:900}
.p360-social-bottom-nav{grid-template-columns:repeat(5,1fr)!important}.p360-bottom-add{position:relative;transform:translateY(-12px)}.p360-bottom-add b{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#0da568;color:#fff;font-size:30px;font-weight:400;box-shadow:0 8px 22px rgba(13,165,104,.28)}.p360-bottom-add span{margin-top:4px}.i-home:before{content:"";display:block;width:18px;height:15px;background:currentColor;clip-path:polygon(50% 0,100% 40%,88% 40%,88% 100%,60% 100%,60% 62%,40% 62%,40% 100%,12% 100%,12% 40%,0 40%)}.i-menu:before{content:"";display:block;width:22px;height:16px;background:linear-gradient(currentColor 0 0) 0 0/22px 2px no-repeat,linear-gradient(currentColor 0 0) 0 7px/22px 2px no-repeat,linear-gradient(currentColor 0 0) 0 14px/22px 2px no-repeat}
@media(max-width:900px){.p360-home-hero{grid-template-columns:1fr .8fr;padding:24px}.p360-home-actions{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){
 .p360-home-social{padding-bottom:76px}.p360-home-hero{grid-template-columns:1fr;min-height:0;padding:22px 18px 20px;border-radius:0;margin-left:-14px;margin-right:-14px}.p360-home-hero-copy{max-width:64%}.p360-home-hero h1{font-size:28px}.p360-home-hero p{font-size:16px}.p360-home-hero blockquote{font-size:13px;padding:10px 12px}.p360-home-hero-art{position:absolute;right:-12px;bottom:-12px}.p360-mini-phone{width:125px;border-width:6px;border-radius:22px;padding:9px}.p360-mini-grid{gap:4px}.p360-mini-grid span{font-size:6px;padding:8px 3px}.p360-hero-note{display:none}
 .p360-home-actions{grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.p360-home-action{min-height:88px;border-radius:18px;font-size:12px}.p360-home-action i,.p360-home-action .p360-doc-icon{width:25px;height:25px}
 .p360-home-secondary{grid-template-columns:1fr}.p360-home-next-main{align-items:flex-end}.p360-home-feed{padding:14px;border-radius:20px}.p360-home-day-row{grid-template-columns:52px 9px 1fr 14px;gap:8px}.p360-home-day-info strong{font-size:13px}.p360-home-day-info small{font-size:11px}
}
@media(max-width:380px){.p360-home-hero-copy{max-width:69%}.p360-home-actions{gap:8px}.p360-home-action{min-height:82px}.p360-home-next h2{font-size:17px}}

/* v30 — clases unificadas, horario configurable y biblioteca digital */
.p360-class-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.p360-class-card-unified{display:flex;flex-direction:column;justify-content:space-between;min-height:210px;padding:20px;border:1px solid #e4ebf1;border-radius:22px;background:#fff;box-shadow:0 8px 24px rgba(18,54,86,.06)}
.p360-class-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.p360-class-badge{font-size:10px;font-weight:900;letter-spacing:.7px;padding:6px 9px;border-radius:999px;background:#edf7f3;color:#0d7b5e}.p360-class-center{font-size:11px;color:#c34545;text-align:right}
.p360-class-card-unified h3{font-size:22px;margin:0 0 6px;color:#153958}.p360-class-meta{margin:0;color:#c34545;font-size:13px}.p360-class-open-main{width:100%;margin-top:18px;min-height:46px}
.p360-schedule-head{align-items:flex-end}.p360-schedule-row{display:grid;grid-template-columns:78px 1fr auto;gap:14px;align-items:center;padding:14px 0;border-top:1px solid #edf1f4}.p360-schedule-time{display:grid}.p360-schedule-time strong{font-size:16px;color:#173c60}.p360-schedule-time span{font-size:12px;color:#8193a5}.p360-schedule-info{display:grid}.p360-schedule-info>strong{font-size:14px}.p360-schedule-info .p360-schedule-meta{margin-top:3px}
.p360-library-toolbar{margin:10px 0 18px}.p360-library-toolbar select{width:min(520px,100%);min-height:48px;border:1px solid #dbe5ec;border-radius:14px;padding:0 14px;background:#fff;color:#183b5d;font-weight:700}
.p360-library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.p360-library-card{background:#fff;border:1px solid #e4ebf1;border-radius:20px;padding:16px;display:grid;gap:10px;box-shadow:0 7px 20px rgba(18,54,86,.05)}.p360-library-file-icon{width:44px;height:44px;border-radius:14px;background:#e7f8f6;color:#078993;display:grid;place-items:center;font-weight:900}.p360-library-card h3{margin:0;font-size:15px;color:#173b5d;overflow-wrap:anywhere}.p360-library-card p{margin:0;color:#bd4242;font-size:11px}.p360-library-card small{color:#8193a5}.p360-library-card-actions{display:flex;gap:8px;flex-wrap:wrap}.p360-library-card-actions button,.p360-library-card-actions a{border:0;background:#eef4f8;color:#17466f;text-decoration:none;border-radius:10px;padding:8px 10px;font-size:12px;font-weight:800}
@media(max-width:640px){.p360-schedule-row{grid-template-columns:62px 1fr auto;gap:8px}.p360-schedule-head{align-items:flex-start}.p360-section-actions{flex-wrap:wrap}.p360-library-grid{grid-template-columns:1fr}.p360-class-grid{grid-template-columns:1fr}}

/* v31 — notas por períodos académicos */
.p360-grade-period-tools{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.p360-grade-period-tools label{display:grid;gap:6px;font-size:11px;font-weight:850;color:#6f8295}
.p360-grade-period-tools select{width:100%;min-height:46px;border:1px solid #dbe5ec;border-radius:13px;background:#fff;padding:0 12px;color:#183b5d;font-weight:750}
.p360-grade-system-required{padding:28px 18px;display:grid;gap:5px;text-align:center;color:#6f8295}
.p360-grade-system-required strong{font-size:16px;color:#173b5d}
.p360-period-title{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#f5f8fb;border-bottom:1px solid #e5edf3}
.p360-period-title strong{font-size:14px;color:#173b5d}.p360-period-title span{font-size:11px;color:#74889b;font-weight:800}
.p360-period-grade-row{display:grid;grid-template-columns:minmax(150px,1fr) 92px 108px;gap:10px;align-items:center;padding:11px 14px;border-top:1px solid #edf1f4}
.p360-period-grade-head{border-top:0;background:#fbfcfd;font-size:11px;color:#667b90}
.p360-period-grade-head b:not(:first-child){text-align:center}
.p360-period-grade-row>strong{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p360-period-grade-row input{width:100%;min-width:0;padding:9px 5px;text-align:center;border:1px solid #dce5ec;border-radius:9px;font-variant-numeric:tabular-nums}
.p360-period-grade-row input.p360-grade-pass{border-color:#83c99e;background:#edf9f1;color:#14753a;font-weight:850}
.p360-period-grade-row input.p360-grade-fail{border-color:#e7a09b;background:#fff0ef;color:#b42318;font-weight:850}

/* Acta anual: clase fuera de tabla, solo períodos + media anual */
#p360GradeReportArea{overflow:hidden!important}
.p360-annual-report-row{display:grid;grid-template-columns:minmax(150px,1.7fr) repeat(var(--p360-period-count),minmax(64px,.72fr)) minmax(76px,.82fr);align-items:stretch;border-top:1px solid #dfe7ed;background:#fff;font-variant-numeric:tabular-nums}
.p360-annual-report-row:first-child{border-top:0}
.p360-annual-report-row>*{min-width:0;padding:10px 6px;border-right:1px solid #e4ebf0;display:flex;align-items:center;justify-content:center}
.p360-annual-report-row>*:first-child{justify-content:flex-start;padding-left:10px}
.p360-annual-report-row>*:last-child{border-right:0}
.p360-annual-report-row>strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.p360-annual-report-row.p360-history-head{background:#f3f6f9;color:#415a70;font-size:10px}
.p360-annual-report-row .p360-grade-cell{width:100%;height:100%;min-height:30px;display:flex;align-items:center;justify-content:center}
.p360-annual-report-row .p360-grade-pass{color:#14753a;background:#edf9f1;font-weight:850}
.p360-annual-report-row .p360-grade-fail{color:#b42318;background:#fff0ef;font-weight:850}

@media(max-width:640px){
  .p360-grade-period-tools{grid-template-columns:1fr}
  .p360-period-grade-row{grid-template-columns:minmax(88px,1fr) 62px 72px;gap:5px;padding:9px 6px;font-size:11px}
  .p360-period-grade-row input{padding:7px 2px;font-size:11px}
  .p360-annual-report-row{grid-template-columns:minmax(82px,1.45fr) repeat(var(--p360-period-count),minmax(42px,.65fr)) minmax(52px,.76fr);font-size:9px}
  .p360-annual-report-row>*{padding:8px 2px}
  .p360-annual-report-row>*:first-child{padding-left:5px}
  .p360-annual-report-row>strong{font-size:9px}
  .p360-annual-report-row.p360-history-head{font-size:8px}
}
@media(max-width:380px){
  .p360-annual-report-row{grid-template-columns:minmax(72px,1.42fr) repeat(var(--p360-period-count),minmax(36px,.62fr)) minmax(46px,.72fr);font-size:8px}
  .p360-annual-report-row>strong{font-size:8px}
}
@media print{
  #p360GradeReportArea .p360-annual-report-row{grid-template-columns:1.8fr repeat(var(--p360-period-count),.72fr) .82fr!important;font-size:9pt!important;break-inside:avoid}
  #p360GradeReportArea .p360-annual-report-row>*{padding:7px 4px!important}
  .p360-grade-period-tools{display:none!important}
}

/* v32 — subida de material en modal propio */
.p360-library-upload-modal{width:min(560px,calc(100vw - 28px));padding:20px}
.p360-library-upload-modal form{display:grid;gap:14px}
.p360-library-upload-field{display:grid;gap:6px}.p360-library-upload-field>span{font-size:11px;font-weight:850;color:#6e8295}
.p360-library-upload-field input,.p360-library-upload-field select{width:100%;min-height:48px;border:1px solid #dbe5ec;border-radius:13px;background:#fff;padding:0 12px;color:#183b5d}
.p360-library-file-drop{min-height:150px;border:2px dashed #b8d9cf;border-radius:18px;background:#f4fbf8;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;cursor:pointer;color:#0d7359}
.p360-library-file-drop:hover{background:#ecf8f3}.p360-library-drop-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#dff3ea;font-size:26px;margin-bottom:8px}
.p360-library-file-drop strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p360-library-file-drop small{color:#7b8f9f;margin-top:4px}
.p360-library-upload-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
@media(max-width:640px){.p360-library-upload-modal{padding:16px;border-radius:22px}.p360-library-upload-actions{display:grid;grid-template-columns:1fr 1fr}.p360-library-upload-actions button{width:100%}}

/* v33 — Cuaderno: ordinarias + nota del período + recuperación */
.p360-period-title>div{display:grid;gap:2px}.p360-period-title>div span{font-size:11px;color:#74889b;font-weight:800}
.p360-add-ordinary{min-height:36px;padding:0 11px;font-size:11px}
.p360-period-grade-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.p360-period-grade-table{min-width:max(720px,calc(330px + var(--ordinary-count) * 92px))}
.p360-period-grade-row{grid-template-columns:minmax(160px,1.5fr) repeat(var(--ordinary-count),82px) 105px 105px}
.p360-period-grade-head b{text-align:center}
.p360-period-grade-head b:first-child{text-align:left}
.p360-period-grade-row .p360-ordinary-input,.p360-period-grade-row .p360-period-grade,.p360-period-grade-row .p360-period-recovery{font-variant-numeric:tabular-nums}
@media(max-width:640px){
  .p360-period-title{align-items:flex-start;gap:10px}
  .p360-period-grade-table{min-width:max(660px,calc(300px + var(--ordinary-count) * 76px))}
  .p360-period-grade-row{grid-template-columns:minmax(120px,1.35fr) repeat(var(--ordinary-count),68px) 88px 88px}
  .p360-period-grade-row{font-size:10px}
  .p360-period-grade-head b{font-size:9px}
}
@media print{
  .p360-add-ordinary{display:none!important}
  .p360-period-grade-scroll{overflow:visible!important}
}

/* v35 — nota del período calculada automáticamente */
.p360-period-grade-row .p360-calculated-grade{background:#f0f5f8!important;border-color:#d4e0e8!important;color:#173b5d;font-weight:900;cursor:default}
.p360-period-grade-head b:nth-last-child(2){color:#0d7359}

/* v36 — Acta adaptativa por sistema de evaluación */
.p360-acta-system-label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#f7fafc;border:1px solid #e4ebf0;border-bottom:0;border-radius:12px 12px 0 0}
.p360-acta-system-label strong{font-size:12px;color:#173b5d}
.p360-acta-system-label span{font-size:10px;color:#72879a;font-weight:800}
#p360GradeReportArea .p360-annual-report-row.p360-history-head b:not(:first-child){font-weight:900;letter-spacing:.02em}
@media(max-width:640px){
  .p360-acta-system-label{padding:8px 9px}
  .p360-acta-system-label strong{font-size:10px}
  .p360-acta-system-label span{font-size:8px}
}
@media print{
  .p360-acta-system-label{border:1px solid #cfd8df!important;border-bottom:0!important;background:#fff!important}
}

/* v37 — corrección definitiva de columnas del Acta en móvil */
#p360GradeReportArea .p360-annual-report-row{
  display:grid!important;
  grid-template-columns:minmax(0,2.15fr) repeat(var(--p360-period-count),minmax(0,.95fr)) minmax(0,1.12fr)!important;
  width:100%!important;
}
#p360GradeReportArea .p360-acta-head{
  display:grid!important;
  grid-template-columns:minmax(0,2.15fr) repeat(var(--p360-period-count),minmax(0,.95fr)) minmax(0,1.12fr)!important;
  width:100%!important;
  background:#f3f6f9!important;
  color:#415a70!important;
}
#p360GradeReportArea .p360-acta-head>b{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  position:static!important;
  width:auto!important;
  min-width:0!important;
  align-items:center!important;
  justify-content:center!important;
  padding:9px 3px!important;
  border-right:1px solid #dfe7ed!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-size:10px!important;
  line-height:1.1!important;
}
#p360GradeReportArea .p360-acta-head>.p360-acta-student-head{
  justify-content:flex-start!important;
  padding-left:10px!important;
}
#p360GradeReportArea .p360-acta-head>.p360-acta-average-head{
  border-right:0!important;
}
@media(max-width:640px){
  #p360GradeReportArea .p360-annual-report-row,
  #p360GradeReportArea .p360-acta-head{
    grid-template-columns:minmax(0,2.05fr) repeat(var(--p360-period-count),minmax(0,.82fr)) minmax(0,1.08fr)!important;
  }
  #p360GradeReportArea .p360-acta-head>b{font-size:9px!important;padding:8px 2px!important}
  #p360GradeReportArea .p360-acta-head>.p360-acta-student-head{padding-left:6px!important}
}
@media(max-width:380px){
  #p360GradeReportArea .p360-acta-head>b{font-size:8px!important}
}

/* v38 — Biblioteca digital y modal de subida móvil */
html.p360-library-modal-open,
body.p360-library-modal-open{overflow:hidden!important}

.p360-library-modal{
  position:fixed!important;inset:0!important;z-index:99999!important;
  display:none!important;align-items:flex-end!important;justify-content:center!important;
  padding:0!important;background:rgba(8,29,43,.54)!important;
  backdrop-filter:blur(2px);
}
.p360-library-modal.is-open{display:flex!important}
.p360-library-sheet{
  position:relative!important;width:100%!important;max-width:620px!important;
  max-height:min(88dvh,760px)!important;overflow-y:auto!important;overflow-x:hidden!important;
  margin:0!important;padding:0 18px calc(18px + env(safe-area-inset-bottom))!important;
  border-radius:24px 24px 0 0!important;background:#fff!important;
  box-shadow:0 -16px 50px rgba(11,39,57,.18)!important;
  box-sizing:border-box!important;
}
.p360-library-sheet *{box-sizing:border-box!important;max-width:100%!important}
.p360-library-sheet-head{
  position:sticky!important;top:0!important;z-index:3!important;
  display:flex!important;align-items:flex-start!important;justify-content:space-between!important;
  gap:14px!important;margin:0 -18px 12px!important;padding:18px 18px 13px!important;
  background:#fff!important;border-bottom:1px solid #edf2f4!important;
}
.p360-library-sheet-head>div{min-width:0!important}
.p360-library-sheet-head span{
  display:block!important;margin:0 0 2px!important;color:#0d8b67!important;
  font-size:11px!important;font-weight:900!important;text-transform:uppercase!important;
  letter-spacing:.08em!important;
}
.p360-library-sheet-head h2{
  margin:0!important;color:#102f4e!important;font-size:24px!important;line-height:1.1!important;
}
.p360-library-close{
  flex:0 0 40px!important;width:40px!important;height:40px!important;min-width:40px!important;
  border:1px solid #e1e8ed!important;border-radius:12px!important;background:#f7f9fa!important;
  color:#173851!important;font-size:27px!important;line-height:1!important;padding:0!important;
}
#p360LibraryUploadForm{display:grid!important;gap:13px!important;width:100%!important;min-width:0!important}
.p360-library-field{display:grid!important;gap:6px!important;width:100%!important;min-width:0!important;margin:0!important}
.p360-library-field>span{font-size:12px!important;font-weight:850!important;color:#526b7d!important}
.p360-library-field>span small{font-weight:650!important;color:#8b9aa5!important}
.p360-library-field input,
.p360-library-field select,
.p360-library-field textarea{
  display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;
  margin:0!important;border:1px solid #d9e3e8!important;border-radius:13px!important;background:#fff!important;
  color:#173851!important;font-size:15px!important;line-height:1.25!important;box-shadow:none!important;
}
.p360-library-field input,.p360-library-field select{height:48px!important;padding:0 12px!important}
.p360-library-field textarea{min-height:72px!important;padding:11px 12px!important;resize:vertical!important}
.p360-library-field select{
  overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
}
.p360-library-file-box{
  position:relative!important;display:flex!important;flex-direction:column!important;
  align-items:center!important;justify-content:center!important;width:100%!important;min-width:0!important;
  min-height:150px!important;padding:18px!important;margin:0!important;text-align:center!important;
  border:2px dashed #a9d5c8!important;border-radius:18px!important;background:#f3fbf8!important;
  color:#0b795c!important;overflow:hidden!important;cursor:pointer!important;
}
.p360-library-file-box input[type=file]{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  opacity:0!important;cursor:pointer!important;z-index:2!important;
}
.p360-library-file-plus{
  display:grid!important;place-items:center!important;width:48px!important;height:48px!important;
  margin-bottom:8px!important;border-radius:50%!important;background:#dff5ed!important;
  color:#0b795c!important;font-size:30px!important;font-weight:500!important;
}
.p360-library-file-box strong{
  display:block!important;width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;
  white-space:nowrap!important;font-size:16px!important;line-height:1.25!important;color:#0a7659!important;
}
.p360-library-file-box small{
  display:block!important;margin-top:5px!important;width:100%!important;overflow:hidden!important;
  text-overflow:ellipsis!important;white-space:nowrap!important;font-size:12px!important;color:#71899a!important;
}
.p360-library-upload-status{
  min-height:0!important;margin:0!important;padding:0!important;font-size:12px!important;
  font-weight:750!important;text-align:center!important;
}
.p360-library-upload-status.is-working{color:#536b7d!important}
.p360-library-upload-status.is-success{color:#0c7a4f!important}
.p360-library-upload-status.is-error{
  padding:9px 10px!important;border-radius:10px!important;background:#fff1f0!important;color:#b42318!important;
}
.p360-library-sheet-actions{
  position:sticky!important;bottom:0!important;z-index:3!important;
  display:grid!important;grid-template-columns:1fr 1.2fr!important;gap:10px!important;
  margin:0 -18px -18px!important;padding:12px 18px calc(14px + env(safe-area-inset-bottom))!important;
  background:#fff!important;border-top:1px solid #edf2f4!important;
}
.p360-library-sheet-actions button{
  width:100%!important;min-width:0!important;height:48px!important;margin:0!important;padding:0 10px!important;
  border-radius:13px!important;font-size:14px!important;font-weight:850!important;white-space:nowrap!important;
}
.p360-library-cancel{border:1px solid #dce5e9!important;background:#f5f8f9!important;color:#23485f!important}
.p360-library-submit{border:0!important;background:#0aa66e!important;color:#fff!important}
.p360-library-submit:disabled{opacity:.65!important}

/* Biblioteca: lista limpia y adaptable */
#view-materiales .p360-library-toolbar{min-width:0!important}
#view-materiales #p360LibraryClassFilter{
  width:100%!important;max-width:100%!important;min-width:0!important;
  overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
}
.p360-library-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))!important;gap:12px!important}
.p360-library-card{
  display:grid!important;grid-template-columns:48px minmax(0,1fr) auto!important;gap:12px!important;
  align-items:center!important;width:100%!important;min-width:0!important;padding:13px!important;
  border:1px solid #e0e8ec!important;border-radius:16px!important;background:#fff!important;
}
.p360-library-card-icon{
  display:grid!important;place-items:center!important;width:48px!important;height:48px!important;border-radius:13px!important;
  background:#edf7f4!important;color:#08745a!important;font-size:11px!important;font-weight:900!important;
}
.p360-library-card-copy{min-width:0!important}
.p360-library-card h3{
  margin:0 0 3px!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;
  white-space:nowrap!important;font-size:14px!important;color:#18384f!important;
}
.p360-library-card p,.p360-library-card small{
  display:block!important;margin:0!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;
  white-space:nowrap!important;color:#718696!important;font-size:10px!important;
}
.p360-library-card small{margin-top:3px!important}
.p360-library-open{
  flex:0 0 auto!important;padding:8px 10px!important;border-radius:10px!important;background:#edf8f4!important;
  color:#08765a!important;text-decoration:none!important;font-size:11px!important;font-weight:850!important;
}
.p360-library-empty{
  display:grid!important;gap:4px!important;place-items:center!important;min-height:140px!important;
  padding:24px!important;text-align:center!important;color:#748998!important;
  border:1px dashed #d9e3e8!important;border-radius:16px!important;background:#fafcfd!important;
}
.p360-library-empty strong{color:#28485e!important;font-size:14px!important}
.p360-library-empty span{font-size:12px!important}

@media(max-width:640px){
  #view-materiales .p360-section-head.p360-library-head{
    display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:10px!important;
  }
  #view-materiales .p360-section-head.p360-library-head h2{font-size:25px!important}
  #p360LibraryUpload{
    flex:0 0 auto!important;min-height:40px!important;padding:0 12px!important;font-size:12px!important;
  }
  .p360-library-grid{grid-template-columns:1fr!important}
  .p360-library-sheet{max-height:92dvh!important;padding-left:14px!important;padding-right:14px!important}
  .p360-library-sheet-head{margin-left:-14px!important;margin-right:-14px!important;padding-left:14px!important;padding-right:14px!important}
  .p360-library-sheet-actions{margin-left:-14px!important;margin-right:-14px!important;padding-left:14px!important;padding-right:14px!important}
}
@media(min-width:641px){
  .p360-library-modal{align-items:center!important;padding:24px!important}
  .p360-library-sheet{border-radius:24px!important;max-height:min(86vh,760px)!important}
}

/* v39 — navegación social profesional */
.i-network-user,.i-briefcase,.i-profile{position:relative;display:block;width:22px;height:22px;margin:auto}
.i-network-user:before{content:"";position:absolute;left:7px;top:2px;width:7px;height:7px;border:2px solid currentColor;border-radius:50%}
.i-network-user:after{content:"";position:absolute;left:3px;bottom:2px;width:14px;height:7px;border:2px solid currentColor;border-radius:9px 9px 4px 4px}
.i-briefcase:before{content:"";position:absolute;left:2px;top:7px;width:18px;height:12px;border:2px solid currentColor;border-radius:4px}
.i-briefcase:after{content:"";position:absolute;left:7px;top:3px;width:8px;height:5px;border:2px solid currentColor;border-bottom:0;border-radius:3px 3px 0 0}
.i-profile:before{content:"";position:absolute;left:7px;top:1px;width:8px;height:8px;border:2px solid currentColor;border-radius:50%}
.i-profile:after{content:"";position:absolute;left:3px;bottom:1px;width:16px;height:8px;border:2px solid currentColor;border-radius:10px 10px 4px 4px}

.p360-career-bottom-nav{
  background:rgba(255,255,255,.86)!important;
  border-top:1px solid rgba(17,47,70,.08)!important;
  box-shadow:0 -6px 24px rgba(17,47,70,.06)!important;
  backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px)!important;
  grid-template-columns:repeat(4,1fr)!important;
  padding:7px 10px calc(7px + env(safe-area-inset-bottom))!important;
  min-height:68px!important;
}
.p360-career-bottom-nav button{
  position:relative!important;background:transparent!important;border:0!important;border-radius:14px!important;
  min-width:0!important;min-height:52px!important;color:#83928e!important;padding:6px 3px!important;
}
.p360-career-bottom-nav button.is-active{color:#08785d!important;background:rgba(10,166,110,.07)!important}
.p360-career-bottom-nav button.is-active:after{
  content:"";position:absolute;top:3px;left:50%;width:18px;height:3px;transform:translateX(-50%);
  border-radius:3px;background:#0aa66e;
}
.p360-career-bottom-nav button span{font-size:10px!important;font-weight:800!important;margin-top:4px!important}
.p360-career-bottom-nav i{color:currentColor!important}

/* Red profesional */
.p360-professional-view{max-width:1040px;margin:0 auto;padding-bottom:96px}
.p360-professional-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}
.p360-professional-head>div{min-width:0}
.p360-professional-eyebrow{display:block;margin-bottom:4px;color:#0b8b67;font-size:10px;font-weight:900;letter-spacing:.12em}
.p360-professional-head h2{margin:0;color:#0e3154;font-size:32px;line-height:1.05}
.p360-professional-head p{margin:6px 0 0;color:#748697;font-size:13px}
.p360-professional-cta,.p360-professional-save{
  border:0;border-radius:12px;background:#0aa66e;color:#fff;font-weight:850;min-height:42px;padding:0 14px;
}
.p360-professional-filterbar{margin-bottom:14px}
.p360-professional-filterbar input{
  width:100%;height:48px;border:1px solid #dce6eb;border-radius:14px;background:#fff;padding:0 15px;
  color:#173851;font-size:14px;box-shadow:0 4px 14px rgba(17,47,70,.03)
}
.p360-professional-list{display:grid;gap:11px}
.p360-prof-card,.p360-vacancy-card{
  border:1px solid #e1e9ed;border-radius:17px;background:#fff;box-shadow:0 7px 22px rgba(17,47,70,.035)
}
.p360-prof-card{display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px}
.p360-prof-avatar{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#e7f6f1;color:#08785d;font-weight:900;font-size:18px}
.p360-prof-card-main{min-width:0}
.p360-prof-card-top{display:flex;align-items:center;gap:8px}
.p360-prof-card-top h3{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#173851;font-size:15px}
.p360-prof-card-top span{flex:0 0 auto;padding:4px 7px;border-radius:999px;background:#eaf8f2;color:#08785d;font-size:9px;font-weight:900}
.p360-prof-role{margin:3px 0 6px;color:#536d7f;font-size:12px;font-weight:750}
.p360-prof-meta{display:flex;flex-wrap:wrap;gap:5px}
.p360-prof-meta span,.p360-vacancy-tags span{padding:4px 7px;border-radius:999px;background:#f2f6f8;color:#617889;font-size:9px;font-weight:750}
.p360-prof-card small{display:block;margin-top:6px;color:#8a9aa6;font-size:9px}
.p360-prof-contact{padding:9px 10px;border-radius:10px;background:#eef8f4;color:#08785d;text-decoration:none;font-size:11px;font-weight:850}

.p360-vacancy-card{padding:16px}
.p360-vacancy-card-top{display:flex;justify-content:space-between;align-items:center}
.p360-vacancy-card-top span{color:#08785d;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.p360-vacancy-card-top small{color:#9aa8b1;font-size:9px}
.p360-vacancy-card h3{margin:8px 0 3px;color:#173851;font-size:17px}
.p360-vacancy-card>strong{display:block;color:#4e6678;font-size:12px}
.p360-vacancy-tags{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}
.p360-vacancy-card p{margin:8px 0;color:#6e8291;font-size:12px;line-height:1.45}
.p360-vacancy-card>a{display:inline-flex;margin-top:6px;padding:9px 11px;border-radius:10px;background:#0aa66e;color:#fff;text-decoration:none;font-size:11px;font-weight:850}

.p360-professional-empty{min-height:150px;border:1px dashed #d9e4e9;border-radius:16px;background:#fafcfd;display:grid;place-items:center;align-content:center;gap:4px;padding:24px;text-align:center;color:#8596a2}
.p360-professional-empty strong{color:#345066;font-size:14px}.p360-professional-empty span{font-size:11px}

.p360-professional-profile{border:1px solid #e1e9ed;border-radius:18px;background:#fff;padding:16px}
.p360-availability-switch{display:flex;gap:12px;align-items:center;padding:13px;border-radius:14px;background:#f3faf7;margin-bottom:15px}
.p360-availability-switch input{width:20px;height:20px;accent-color:#0aa66e}
.p360-availability-switch span{display:grid;gap:2px}.p360-availability-switch strong{color:#173851;font-size:13px}.p360-availability-switch small{color:#748999;font-size:10px}
.p360-professional-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.p360-professional-form-grid label,.p360-vacancy-grid label{display:grid;gap:5px}
.p360-professional-form-grid label>span,.p360-vacancy-grid label>span{color:#617889;font-size:10px;font-weight:850}
.p360-professional-form-grid input,.p360-professional-form-grid textarea,.p360-vacancy-grid input,.p360-vacancy-grid textarea{
  width:100%;min-width:0;border:1px solid #dce5ea;border-radius:12px;background:#fff;padding:11px 12px;color:#173851;font-size:13px
}
.p360-professional-wide,.p360-vacancy-wide{grid-column:1/-1}
.p360-professional-save{margin-top:14px}

/* Modal vacante */
.p360-vacancy-modal{position:fixed!important;inset:0!important;z-index:99999!important;display:none!important;align-items:flex-end!important;justify-content:center!important;background:rgba(8,29,43,.48)!important;backdrop-filter:blur(2px)}
.p360-vacancy-modal.is-open{display:flex!important}
.p360-vacancy-sheet{width:100%;max-width:620px;max-height:90dvh;overflow:auto;border-radius:24px 24px 0 0;background:#fff;padding:18px}
.p360-vacancy-sheet-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:15px}
.p360-vacancy-sheet-head span{color:#0b8b67;font-size:10px;font-weight:900;letter-spacing:.1em}.p360-vacancy-sheet-head h2{margin:2px 0 0;color:#123655;font-size:23px}
.p360-vacancy-sheet-head button{width:38px;height:38px;border:1px solid #e2e9ed;border-radius:11px;background:#f7f9fa;font-size:24px}
.p360-vacancy-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.p360-vacancy-actions{display:grid;grid-template-columns:1fr 1.2fr;gap:10px;margin-top:14px}
.p360-vacancy-actions button{min-height:46px;border-radius:12px;border:1px solid #dce5e9;background:#f6f8f9;color:#28475d;font-weight:850}
.p360-vacancy-actions .p360-professional-save{margin:0;border:0;background:#0aa66e;color:#fff}

@media(max-width:640px){
  .p360-professional-view{padding:8px 14px 92px!important}
  .p360-professional-head{align-items:flex-start;margin-bottom:14px}
  .p360-professional-head h2{font-size:26px}
  .p360-professional-head p{font-size:11px}
  .p360-professional-cta{min-height:38px;padding:0 10px;font-size:10px}
  .p360-prof-card{grid-template-columns:46px minmax(0,1fr);padding:12px;gap:10px}
  .p360-prof-avatar{width:46px;height:46px;font-size:15px}
  .p360-prof-contact{grid-column:1/-1;text-align:center}
  .p360-professional-form-grid,.p360-vacancy-grid{grid-template-columns:1fr}
  .p360-professional-wide,.p360-vacancy-wide{grid-column:auto}
  .p360-vacancy-sheet{padding:15px}
}
@media(min-width:641px){
  .p360-vacancy-modal{align-items:center!important;padding:22px!important}
  .p360-vacancy-sheet{border-radius:24px}
}

/* v40 — iconografía Profe360 propia (estilo D) */
.p360-dicon{display:block;width:25px;height:25px;color:currentColor;margin:auto}
.p360-dicon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.p360-dicon-home svg text{fill:currentColor;stroke:none;font-size:4.2px;font-weight:900;font-family:Arial,sans-serif;text-anchor:middle}
.p360-career-bottom-nav .p360-dicon{width:25px!important;height:25px!important}
.p360-professional-nav .p360-dicon{width:23px;height:23px;margin:0}
.p360-career-bottom-nav button.is-active .p360-dicon svg{stroke-width:2.1}
.p360-career-bottom-nav button.is-active .p360-dicon-home svg text{fill:currentColor}

/* v40 — foto + CV obligatorios para publicar */
.p360-prof-media-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.p360-prof-photo-card,.p360-prof-cv-card{
  position:relative;display:flex;align-items:center;gap:12px;min-width:0;padding:12px;
  border:1px solid #dfe8ec;border-radius:15px;background:#fbfcfd;cursor:pointer
}
.p360-prof-photo-card>input,.p360-prof-cv-card>input{
  position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2
}
.p360-prof-photo-preview{
  flex:0 0 60px;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;
  background:#e7f6f1 center/cover no-repeat;color:#08785d;font-size:20px;font-weight:900;
  border:2px solid #d6eee6
}
.p360-prof-cv-icon{
  flex:0 0 58px;width:58px;height:58px;border-radius:14px;display:grid;place-items:center;
  background:#eef5f8;color:#174c68;font-size:12px;font-weight:950;letter-spacing:.06em
}
.p360-prof-media-copy{display:grid;gap:2px;min-width:0}
.p360-prof-media-copy strong{font-size:12px;color:#183a52}
.p360-prof-media-copy small{font-size:9px;color:#7d8f9c;line-height:1.3}
.p360-prof-media-copy em{font-style:normal;font-size:10px;font-weight:850;color:#0a7f60;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p360-prof-current-file{
  position:relative;z-index:3;margin-left:auto;padding:7px 8px;border-radius:9px;background:#eef8f4;
  color:#08785d;text-decoration:none;font-size:9px;font-weight:850;white-space:nowrap
}
.p360-prof-profile-status{min-height:0;margin-top:10px;font-size:11px;font-weight:750}
.p360-prof-profile-status.is-error{padding:9px 10px;border-radius:10px;background:#fff1f0;color:#b42318}
.p360-prof-profile-status.is-success{padding:9px 10px;border-radius:10px;background:#eef9f4;color:#08785d}
.p360-prof-avatar-photo{background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important;color:transparent!important}
.p360-prof-card-links{display:grid;gap:6px;justify-items:stretch}
.p360-prof-cv-link,.p360-prof-contact{display:block;text-align:center;white-space:nowrap}
.p360-prof-cv-link{padding:8px 10px;border-radius:10px;background:#f1f5f7;color:#31576e;text-decoration:none;font-size:10px;font-weight:850}

@media(max-width:640px){
  .p360-prof-media-row{grid-template-columns:1fr}
  .p360-prof-photo-card,.p360-prof-cv-card{padding:11px}
  .p360-prof-photo-preview,.p360-prof-cv-icon{width:54px;height:54px;flex-basis:54px}
  .p360-prof-card-links{grid-column:1/-1;grid-template-columns:1fr 1fr}
}

/* v41 — el botón técnico de añadir clase no forma parte del header */
.p360-hidden-add-trigger{position:fixed!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;opacity:0!important;pointer-events:none!important}

/* v42 — Header 7: elegante con acento local */
.p360-local-header{
  position:sticky!important;top:0!important;z-index:900!important;
  min-height:86px!important;padding:12px 20px!important;
  display:grid!important;grid-template-columns:auto minmax(230px,1fr) auto auto!important;
  align-items:center!important;gap:16px!important;
  overflow:visible!important;border:1px solid rgba(16,74,76,.10)!important;
  border-radius:0 0 20px 20px!important;background:rgba(245,252,250,.94)!important;
  box-shadow:0 8px 28px rgba(18,62,75,.08)!important;
  backdrop-filter:blur(18px)!important;-webkit-backdrop-filter:blur(18px)!important;
}
.p360-local-header-bg{
  position:absolute;inset:0;z-index:-1;overflow:hidden;border-radius:inherit;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(239,251,247,.98) 0%,rgba(241,250,249,.91) 48%,rgba(229,246,241,.88) 100%),
    url('../images/login-study.jpg') center 42%/cover no-repeat;
}
.p360-local-header-bg:after{
  content:"";position:absolute;right:-40px;bottom:-52px;width:250px;height:130px;
  background:radial-gradient(ellipse at center,rgba(11,137,102,.12),transparent 68%);
}
.p360-local-header .p360-social-brand{min-width:0}
.p360-local-header .p360-brand-home{gap:10px!important}
.p360-local-mark{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.p360-local-mark>span{
  display:grid;place-items:center;width:46px;height:46px;border-radius:14px;
  background:linear-gradient(145deg,#073d58,#08795f);color:#fff;font-size:13px;font-weight:950;
  box-shadow:0 6px 16px rgba(8,92,82,.15)
}
.p360-local-flag{position:relative;display:grid;width:17px;height:26px;overflow:hidden;border-radius:3px;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.p360-local-flag b:nth-child(1){background:#3c9b52}.p360-local-flag b:nth-child(2){background:#fff}.p360-local-flag b:nth-child(3){background:#d84b4b}
.p360-local-flag em{position:absolute;left:0;top:0;width:7px;height:100%;background:#4a92c9;clip-path:polygon(0 0,100% 50%,0 100%)}
.p360-local-header .p360-social-wordmark strong{font-size:27px!important;line-height:1!important}
.p360-local-header .p360-social-wordmark small{margin-top:3px!important;font-size:7px!important;letter-spacing:.11em!important}
.p360-local-search{
  justify-self:center;width:min(100%,560px);height:46px;display:flex;align-items:center;gap:9px;
  padding:0 14px;border:1px solid rgba(31,91,104,.12);border-radius:999px;background:rgba(255,255,255,.82);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 5px 16px rgba(20,62,74,.04)
}
.p360-local-search svg{width:19px;height:19px;fill:none;stroke:#0a5960;stroke-width:2;flex:0 0 auto}
.p360-local-search input{width:100%;min-width:0;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;color:#173851;font-size:13px;padding:0!important}
.p360-local-search input::placeholder{color:#78909c}
.p360-local-motto{padding-left:14px;border-left:1px solid rgba(10,116,91,.16);color:#19705b;font-size:10px;line-height:1.25;font-weight:700;font-style:italic;white-space:nowrap}
.p360-local-motto strong{color:#08775a;font-size:11px}
.p360-local-header .p360-social-actions{gap:8px!important}
.p360-local-header .p360-notification-button,.p360-local-header .p360-account-button{background:rgba(255,255,255,.72)!important;box-shadow:0 4px 12px rgba(18,62,75,.05)!important}
.p360-local-header .p360-account-button{border:2px solid rgba(10,147,108,.16)!important}

/* búsqueda del header: lleva al usuario a la sección profesional correspondiente */
@media(max-width:980px){
  .p360-local-header{grid-template-columns:auto minmax(120px,1fr) auto!important;gap:10px!important;padding:10px 13px!important;min-height:72px!important}
  .p360-local-motto{display:none!important}
  .p360-local-header .p360-social-wordmark strong{font-size:23px!important}
}
@media(max-width:640px){
  .p360-local-header{
    grid-template-columns:auto minmax(0,1fr) auto!important;gap:8px!important;
    min-height:68px!important;padding:8px 10px!important;border-radius:0 0 16px 16px!important
  }
  .p360-local-mark>span{width:39px;height:39px;border-radius:12px;font-size:11px}
  .p360-local-flag{display:none}
  .p360-local-header .p360-social-wordmark strong{font-size:21px!important}
  .p360-local-header .p360-social-wordmark small{font-size:6px!important;letter-spacing:.07em!important}
  .p360-local-search{height:38px;padding:0 10px}
  .p360-local-search input{font-size:11px}
  .p360-local-search input::placeholder{font-size:0}
  .p360-local-search input::placeholder{color:transparent}
  .p360-local-search svg{width:18px;height:18px}
  .p360-local-header .p360-notification-button,.p360-local-header .p360-account-button{width:39px!important;height:39px!important;min-width:39px!important}
  .p360-local-header .p360-app-back:not([hidden]){position:absolute!important;left:8px!important;bottom:-48px!important;z-index:4!important;background:#fff!important}
}
@media(max-width:420px){
  .p360-local-header{grid-template-columns:minmax(0,1fr) auto!important}
  .p360-local-search{display:none!important}
  .p360-local-header .p360-social-wordmark strong{font-size:23px!important}
}

/* v44 — mensajes reales al publicar vacantes */
.p360-vacancy-status{min-height:0;margin-top:10px;font-size:11px;font-weight:750;text-align:center}
.p360-vacancy-status.is-success{padding:9px 10px;border-radius:10px;background:#eef9f4;color:#08785d}
.p360-vacancy-status.is-error{padding:9px 10px;border-radius:10px;background:#fff1f0;color:#b42318}

/* v45 — eliminación propia y contacto por WhatsApp */
.p360-profile-bottom-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px}
.p360-profile-bottom-actions .p360-professional-save{margin-top:0}
.p360-professional-delete{
  min-height:42px;padding:0 14px;border:1px solid #efc3bf;border-radius:12px;background:#fff;color:#b42318;
  font-weight:850
}
.p360-professional-delete:disabled,.p360-delete-vacancy:disabled{opacity:.6}

.p360-prof-whatsapp,.p360-vacancy-whatsapp{
  display:block;text-align:center;padding:9px 11px;border-radius:10px;background:#eaf8f0;
  color:#08764f;text-decoration:none;font-size:10px;font-weight:900;white-space:nowrap
}
.p360-vacancy-card-actions{display:flex;align-items:center;gap:8px;margin-top:8px}
.p360-delete-vacancy{
  min-height:34px;padding:0 10px;border:1px solid #efd0cc;border-radius:10px;background:#fff;
  color:#b42318;font-size:10px;font-weight:850
}
@media(max-width:640px){
  .p360-profile-bottom-actions{display:grid;grid-template-columns:1fr 1.15fr}
  .p360-profile-bottom-actions button{width:100%}
  .p360-vacancy-card-actions{display:grid;grid-template-columns:1fr 1fr}
}

/* v46 — chat interno */
.p360-prof-chat,.p360-vacancy-chat{
  display:block;width:100%;min-height:36px;padding:0 10px;border:0;border-radius:10px;
  background:#0aa66e;color:#fff;font-size:10px;font-weight:900;white-space:nowrap
}
.p360-chat-modal{
  position:fixed!important;inset:0!important;z-index:100000!important;display:none!important;
  align-items:flex-end!important;justify-content:center!important;background:rgba(7,27,40,.48)!important;
  backdrop-filter:blur(2px)
}
.p360-chat-modal.is-open{display:flex!important}
.p360-chat-sheet{
  width:100%;max-width:640px;height:min(82dvh,720px);display:grid;grid-template-rows:auto 1fr auto;
  border-radius:24px 24px 0 0;background:#f5f8f9;overflow:hidden;box-shadow:0 -18px 50px rgba(7,31,47,.18)
}
.p360-chat-head{
  display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fff;border-bottom:1px solid #e4ebef
}
.p360-chat-avatar{
  flex:0 0 42px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
  background:#e3f5ee;color:#08785d;font-weight:900
}
.p360-chat-head-copy{display:grid;gap:2px;min-width:0;flex:1}
.p360-chat-head-copy strong{font-size:14px;color:#173851;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p360-chat-head-copy small{font-size:9px;color:#7b8f9d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p360-chat-close{width:38px;height:38px;border:0;border-radius:11px;background:#f2f5f7;color:#24465d;font-size:24px}
.p360-chat-messages{overflow-y:auto;padding:15px 12px;display:flex;flex-direction:column;gap:8px}
.p360-chat-row{display:flex;width:100%}.p360-chat-row.is-mine{justify-content:flex-end}.p360-chat-row.is-theirs{justify-content:flex-start}
.p360-chat-bubble{max-width:min(82%,480px);padding:9px 11px;border-radius:15px;background:#fff;box-shadow:0 2px 8px rgba(20,55,75,.05)}
.p360-chat-row.is-mine .p360-chat-bubble{background:#dff5ec;border-bottom-right-radius:5px}
.p360-chat-row.is-theirs .p360-chat-bubble{border-bottom-left-radius:5px}
.p360-chat-bubble p{margin:0;color:#19394f;font-size:13px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}
.p360-chat-bubble small{display:block;margin-top:3px;text-align:right;color:#8497a4;font-size:8px}
.p360-chat-empty{margin:auto;display:grid;gap:3px;text-align:center;color:#81929e;font-size:11px}
.p360-chat-empty strong{color:#36536a;font-size:13px}
.p360-chat-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e4ebef}
.p360-chat-compose textarea{width:100%;min-width:0;max-height:110px;resize:none;border:1px solid #dce5e9;border-radius:14px;padding:10px 12px;background:#f8fafb;color:#173851;font-size:13px}
.p360-chat-compose button{min-width:70px;border:0;border-radius:13px;background:#0aa66e;color:#fff;font-weight:900;padding:0 12px}
.p360-message-notification{
  width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;
  padding:9px 10px;border:0;border-bottom:1px solid #edf1f3;background:#fff;text-align:left
}
.p360-message-notification:hover{background:#f7fbf9}
.p360-message-notif-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e6f6f0;color:#08785d;font-size:11px;font-weight:900}
.p360-message-notification>span:nth-child(2){display:grid;gap:1px;min-width:0}
.p360-message-notification strong{font-size:10px;color:#173851}
.p360-message-notification small{font-size:8px;color:#0a7d60;font-weight:800}
.p360-message-notification em{font-style:normal;font-size:9px;color:#718593;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p360-message-notification time{font-size:8px;color:#9aa8b1}
@media(max-width:640px){
  .p360-chat-sheet{height:86dvh;border-radius:20px 20px 0 0}
  .p360-prof-card-links{grid-template-columns:1fr 1fr}
  .p360-prof-card-links .p360-prof-chat{grid-column:1/-1}
  .p360-vacancy-card-actions{grid-template-columns:1fr 1fr}
  .p360-vacancy-card-actions .p360-vacancy-chat{grid-column:1/-1}
}
@media(min-width:641px){
  .p360-chat-modal{align-items:center!important;padding:22px!important}
  .p360-chat-sheet{border-radius:24px}
}

/* v47 — botón Chat 360 claramente visible */
.p360-prof-chat,.p360-vacancy-chat{
  display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;
  min-height:40px!important;background:#08785d!important;color:#fff!important;
  box-shadow:0 5px 14px rgba(8,120,93,.14)!important;
}
.p360-chat360-mark{
  display:grid!important;place-items:center!important;width:25px!important;height:25px!important;
  border-radius:8px!important;background:rgba(255,255,255,.16)!important;color:#fff!important;
  font-size:9px!important;font-weight:950!important;letter-spacing:.02em!important;
}
.p360-prof-chat>span:last-child,.p360-vacancy-chat>span:last-child{
  font-size:11px!important;font-weight:900!important
}
.p360-prof-card-links,.p360-vacancy-card-actions{align-items:stretch!important}
@media(max-width:640px){
  .p360-prof-chat,.p360-vacancy-chat{min-height:42px!important}
}

/* v48 — Chat 360 visible también en publicaciones propias */
.p360-open-chat-inbox{background:#08785d!important}
@media(max-width:640px){
  .p360-vacancy-card-actions:has(.p360-open-chat-inbox){
    grid-template-columns:1fr 1fr!important
  }
  .p360-vacancy-card-actions:has(.p360-open-chat-inbox) .p360-open-chat-inbox{
    grid-column:1/-1!important
  }
}

/* v49 — botón de chat interno discreto, igual de importante que WhatsApp */
.p360-prof-chat,.p360-vacancy-chat{
  display:block!important;
  width:100%!important;
  min-height:38px!important;
  padding:8px 10px!important;
  border:1px solid #cfe7df!important;
  border-radius:12px!important;
  background:#eef8f4!important;
  color:#08785d!important;
  box-shadow:none!important;
  font-size:10px!important;
  font-weight:900!important;
  line-height:1.1!important;
}
.p360-chat360-mark{display:none!important}
.p360-chat-compose.is-hidden{display:none!important}

.p360-chat-conversation{
  width:100%;
  display:grid;
  grid-template-columns:40px minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
  padding:11px 10px;
  border:0;
  border-bottom:1px solid #e7edef;
  background:#fff;
  text-align:left;
}
.p360-chat-conversation-avatar{
  width:40px;height:40px;border-radius:50%;
  display:grid;place-items:center;
  background:#e5f5ef;color:#08785d;
  font-weight:900;
}
.p360-chat-conversation-copy{display:grid;gap:2px;min-width:0}
.p360-chat-conversation-copy strong{font-size:11px;color:#173851}
.p360-chat-conversation-copy small{font-size:8px;color:#0a7d60;font-weight:800}
.p360-chat-conversation-copy em{
  font-style:normal;font-size:9px;color:#728795;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.p360-chat-conversation-meta{display:grid;justify-items:end;gap:5px}
.p360-chat-conversation-meta b{width:7px;height:7px;border-radius:50%;background:#0aaa72}
.p360-chat-conversation-meta time{font-size:8px;color:#99a7b0}

/* En las tarjetas, Chat interno comparte fila con WhatsApp */
.p360-prof-card-links{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
}
.p360-prof-card-links .p360-prof-chat{grid-column:auto!important}
.p360-vacancy-card-actions{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
}
.p360-vacancy-card-actions .p360-vacancy-chat{grid-column:auto!important}
.p360-vacancy-card-actions .p360-delete-vacancy:last-child:nth-child(3){
  grid-column:1/-1;
}
@media(max-width:640px){
  .p360-prof-chat,.p360-vacancy-chat{min-height:38px!important}
}


/* v52 — modelo una cuenta, varias posibilidades */
.p360-public{min-height:100vh;background:#f7faf9;color:#173851;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
.p360-public *{box-sizing:border-box}
.p360-public button,.p360-public input{font:inherit}
.p360-public-header{
  position:sticky;top:0;z-index:100;min-height:68px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;
  gap:24px;padding:10px clamp(18px,4vw,56px);background:rgba(255,255,255,.94);border-bottom:1px solid #e3ece8;
  backdrop-filter:blur(14px)
}
.p360-public-brand{display:grid;gap:1px;border:0;background:transparent;text-align:left;cursor:pointer}
.p360-public-brand strong{font-size:22px;line-height:1;color:#113d5d;letter-spacing:-.7px}.p360-public-brand strong span{color:#0b9a70}
.p360-public-brand small{font-size:7px;font-weight:900;letter-spacing:.15em;color:#7a8d98}
.p360-public-nav{justify-self:center;display:flex;gap:8px}.p360-public-nav button{border:0;background:transparent;color:#526c7d;font-weight:800;font-size:12px;padding:10px 13px;border-radius:10px}
.p360-public-nav button:hover{background:#edf7f3;color:#08785d}
.p360-public-auth-actions{display:flex;gap:8px}
.p360-public-login,.p360-public-register{min-height:38px;padding:0 14px;border-radius:11px;font-size:11px;font-weight:900}
.p360-public-login{border:1px solid #d9e5e1;background:#fff;color:#315266}
.p360-public-register{border:0;background:#08785d;color:#fff}
.p360-public-hero{
  width:min(1180px,calc(100% - 32px));margin:0 auto;min-height:540px;display:grid;grid-template-columns:1.12fr .88fr;
  gap:44px;align-items:center;padding:72px 0 60px
}
.p360-public-hero-copy>span,.p360-public-section-head small,.p360-public-final>small{
  display:block;color:#08785d;font-size:9px;font-weight:950;letter-spacing:.14em
}
.p360-public-hero h1{max-width:760px;margin:12px 0 16px;font-size:clamp(34px,5vw,62px);line-height:1.02;letter-spacing:-2.4px;color:#12364f}
.p360-public-hero p{max-width:680px;margin:0;color:#617886;font-size:15px;line-height:1.6}
.p360-public-hero-actions{display:flex;gap:10px;margin-top:26px}.p360-public-hero-actions button{min-height:44px;padding:0 18px;border-radius:12px;font-weight:900;font-size:11px}
.p360-public-primary{border:0;background:#08785d;color:#fff}.p360-public-secondary{border:1px solid #d9e5e1;background:#fff;color:#214a60}
.p360-public-uses{display:flex;flex-wrap:wrap;gap:7px;margin-top:24px}.p360-public-uses span{padding:7px 10px;border:1px solid #dfeae6;border-radius:999px;background:#fff;color:#607783;font-size:9px;font-weight:800}
.p360-public-hero-panel{padding:18px;border:1px solid #dbe8e3;border-radius:24px;background:linear-gradient(145deg,#ffffff,#eef7f3);box-shadow:0 24px 60px rgba(31,73,83,.10)}
.p360-public-panel-head{display:flex;align-items:end;justify-content:space-between;padding:4px 5px 14px}.p360-public-panel-head strong{font-size:15px;color:#183e55}.p360-public-panel-head small{font-size:8px;color:#718793}
.p360-public-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.p360-public-panel-grid button{min-height:128px;display:flex;flex-direction:column;justify-content:end;align-items:flex-start;text-align:left;padding:15px;border:1px solid #e1ebe7;border-radius:17px;background:#fff;color:#173851}
.p360-public-panel-grid button:nth-child(1),.p360-public-panel-grid button:nth-child(4){background:#eaf7f2}
.p360-public-panel-grid b{font-size:13px}.p360-public-panel-grid span{margin-top:4px;color:#758994;font-size:9px;line-height:1.4}
.p360-public-section{scroll-margin-top:74px;padding:64px max(16px,calc((100vw - 1180px)/2))}
.p360-public-section-alt{background:#eef5f2}
.p360-public-section-head{display:grid;grid-template-columns:1fr minmax(250px,380px);gap:20px;align-items:end;margin-bottom:24px}
.p360-public-section-head h2{margin:6px 0 3px;font-size:28px;color:#173851;letter-spacing:-.7px}.p360-public-section-head p{margin:0;color:#718692;font-size:11px}
.p360-public-section-head input{min-height:44px;border:1px solid #d6e3df;border-radius:13px;padding:0 14px;background:#fff;color:#173851;outline:none}
.p360-public-section-head input:focus{border-color:#0a8b68;box-shadow:0 0 0 3px rgba(10,139,104,.08)}
.p360-public-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.p360-public-card{min-width:0;padding:16px;border:1px solid #dfe9e5;border-radius:18px;background:#fff;box-shadow:0 5px 18px rgba(34,69,80,.04)}
.p360-public-professor{display:grid;grid-template-columns:50px 1fr;gap:12px;align-items:start}.p360-public-professor .p360-public-contact{grid-column:1/-1}
.p360-public-avatar{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:#e5f5ef center/cover no-repeat;color:#08785d;font-size:15px;font-weight:950}
.p360-public-card-copy{min-width:0}.p360-public-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.p360-public-card-top h3,.p360-public-vacancy h3{margin:0;color:#173851;font-size:13px}.p360-public-card-top span{padding:4px 7px;border-radius:999px;background:#e9f7f1;color:#08785d;font-size:7px;font-weight:900}
.p360-public-card-copy>strong,.p360-public-vacancy>strong{display:block;margin-top:3px;color:#537080;font-size:10px}
.p360-public-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.p360-public-tags span{padding:4px 6px;border-radius:7px;background:#f0f5f4;color:#637983;font-size:7px;font-weight:800}
.p360-public-card-copy>small{display:block;margin-top:8px;color:#80919a;font-size:8px}.p360-public-vacancy p{color:#70828e;font-size:9px;line-height:1.5}
.p360-public-contact{width:100%;min-height:36px;margin-top:12px;border:1px solid #cfe4dc;border-radius:10px;background:#eff8f5;color:#08785d;font-size:9px;font-weight:900}
.p360-public-empty{grid-column:1/-1;padding:28px;border:1px dashed #d2e0db;border-radius:16px;text-align:center;color:#7a8d96;background:rgba(255,255,255,.7);font-size:11px}
.p360-public-final{padding:70px 20px 90px;text-align:center;background:#153e54;color:#fff}.p360-public-final>small{color:#83dbc2}.p360-public-final h2{margin:9px 0;font-size:32px}.p360-public-final p{max-width:680px;margin:0 auto;color:#c8d7de;font-size:12px;line-height:1.6}.p360-public-final button{min-height:43px;margin-top:22px;padding:0 18px;border:0;border-radius:12px;background:#0db07c;color:#fff;font-size:10px;font-weight:900}
.p360-public-auth-modal{position:fixed;inset:0;z-index:10000;display:none;place-items:center;padding:18px;background:rgba(9,31,42,.48);backdrop-filter:blur(4px)}
.p360-public-auth-modal.is-open{display:grid}.p360-public-modal-open{overflow:hidden!important}
.p360-public-auth-sheet{position:relative;width:min(430px,100%);max-height:min(90vh,720px);overflow:auto;padding:25px;border-radius:22px;background:#fff;box-shadow:0 24px 80px rgba(5,24,33,.24)}
.p360-public-auth-close{position:absolute;right:13px;top:13px;width:34px;height:34px;border:0;border-radius:10px;background:#f0f4f3;color:#496270;font-size:21px}
.p360-public-auth-brand{display:grid;gap:2px;margin-bottom:18px}.p360-public-auth-brand strong{font-size:22px;color:#173f59}.p360-public-auth-brand strong span{color:#0a9d72}.p360-public-auth-brand small{font-size:8px;color:#7a8d98}
.p360-public-auth-sheet .p360-auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:18px;border-bottom:1px solid #e0e8e5}.p360-public-auth-sheet .p360-auth-tabs button{padding:10px;border:0;background:transparent;color:#80909a;font-size:11px;font-weight:900}.p360-public-auth-sheet .p360-auth-tabs button.is-active{color:#08785d;border-bottom:2px solid #08785d}
.p360-public-auth-form{display:none;gap:12px}.p360-public-auth-form.is-active{display:grid}.p360-public-auth-heading h2{margin:0;color:#173851;font-size:20px}.p360-public-auth-heading p{margin:4px 0 2px;color:#718692;font-size:10px}
.p360-public-auth-form label{display:grid;gap:5px;color:#486474;font-size:9px;font-weight:850}.p360-public-auth-form input{min-height:44px;border:1px solid #d7e3df;border-radius:11px;padding:0 12px;background:#fff;outline:none;color:#173851}
.p360-public-auth-form input:focus{border-color:#0a8b68;box-shadow:0 0 0 3px rgba(10,139,104,.08)}
.p360-public-auth-submit{min-height:43px;border:0;border-radius:11px;background:#08785d;color:#fff;font-size:10px;font-weight:900}.p360-public-auth-note{color:#7a8e99;font-size:8px;line-height:1.4;text-align:center}
.p360-public-auth-sheet .p360-auth-error{margin-bottom:12px;padding:10px;border-radius:10px;background:#fff0ef;color:#a92c22;font-size:9px;font-weight:800}

.p360-start-hub{margin:18px 0 24px;padding:20px;border:1px solid #dce8e4;border-radius:20px;background:linear-gradient(145deg,#fff,#f1f8f5)}
.p360-start-hub-head small{color:#08785d;font-size:8px;font-weight:950;letter-spacing:.12em}.p360-start-hub-head h2{margin:6px 0 5px;color:#173851;font-size:22px;letter-spacing:-.5px}.p360-start-hub-head p{max-width:720px;margin:0;color:#70848f;font-size:10px;line-height:1.5}
.p360-start-hub-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}
.p360-start-card{min-height:126px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:13px;border:1px solid #dce8e4;border-radius:15px;background:#fff;color:#173851}
.p360-start-card:hover{border-color:#a9d8c8;background:#f8fcfa}.p360-start-card>span{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#e7f5f0;color:#08785d;font-size:8px;font-weight:950}.p360-start-card strong{margin-top:auto;font-size:11px}.p360-start-card small{margin-top:4px;color:#778a94;font-size:8px;line-height:1.35}.p360-start-card-wide{grid-column:span 2;background:#eaf7f2}

@media(max-width:900px){
  .p360-public-header{grid-template-columns:1fr auto}.p360-public-nav{display:none}.p360-public-hero{grid-template-columns:1fr;min-height:auto;padding-top:48px}.p360-public-hero-panel{max-width:620px}.p360-public-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .p360-start-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .p360-public-header{padding:9px 12px;gap:8px}.p360-public-brand strong{font-size:19px}.p360-public-auth-actions{gap:5px}.p360-public-login,.p360-public-register{min-height:34px;padding:0 9px;font-size:9px}
  .p360-public-hero{width:calc(100% - 24px);padding:38px 0 42px;gap:24px}.p360-public-hero h1{font-size:38px;letter-spacing:-1.5px}.p360-public-hero p{font-size:12px}.p360-public-hero-actions{display:grid;grid-template-columns:1fr 1fr}.p360-public-uses{gap:5px}.p360-public-panel-grid button{min-height:105px;padding:12px}
  .p360-public-section{padding:44px 12px}.p360-public-section-head{grid-template-columns:1fr}.p360-public-section-head h2{font-size:24px}.p360-public-grid{grid-template-columns:1fr}
  .p360-public-final{padding:54px 18px 70px}.p360-public-final h2{font-size:27px}
  .p360-public-auth-sheet{padding:22px 16px;border-radius:18px}
  .p360-start-hub{padding:15px}.p360-start-hub-grid{grid-template-columns:1fr 1fr}.p360-start-card{min-height:116px}.p360-start-card-wide{grid-column:1/-1}
}
