:root{--canvas-outer:#1e293b;--chrome-deep:#0f172a;--chrome-mid:#1e293b;--text:#f1f5f9;--text-muted:#94a3b8;--accent:#38bdf8;--accent-soft:#7dd3fc;--glass-fill:linear-gradient(145deg, #fff3 0%, #ffffff0f 48%, #ffffff24 100%);--glass-rim:#ffffff47;--glass-inset:inset 0 1px 0 #ffffff52;--shadow-deep:0 12px 40px #0f172a8c;--primary:#0284c7;--primary-hover:#0369a1}*{box-sizing:border-box}body{min-height:100dvh;color:var(--text);background:linear-gradient(145deg,#0f172a 0%,#1a1510 38%,#1e293b 72%,#0f172a 100%);margin:0;font-family:Segoe UI,"Segoe UI Web (West European)",-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(90% 55% at 50% -8%,#38bdf824,#0000 58%);position:fixed;inset:0}.wrap{z-index:1;flex-direction:column;max-width:72rem;min-height:100dvh;margin:0 auto;padding:2.5rem 1.25rem 0;display:flex;position:relative}header{text-align:center;margin-bottom:2.75rem}header h1{letter-spacing:-.02em;color:var(--text);margin:0 0 .5rem;font-size:clamp(1.75rem,4vw,2.35rem);font-weight:600}header p{color:var(--text-muted);margin:0;max-width:40rem;margin-inline:auto;font-size:1.05rem;line-height:1.55}.apps{grid-template-columns:1fr;grid-auto-flow:row;align-items:stretch;gap:1.5rem;display:grid}@media (width>=640px){.apps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.apps{grid-template-columns:repeat(3,minmax(0,1fr))}}.apps>.app-card{min-width:0}.app-card{background:var(--glass-fill);border:1px solid var(--glass-rim);height:100%;box-shadow:var(--glass-inset), var(--shadow-deep);-webkit-backdrop-filter:blur(18px);cursor:default;border-radius:14px;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}@media (width>=640px){.app-card{padding:1.35rem}}.app-card:hover{border-color:var(--glass-rim);box-shadow:var(--glass-inset), var(--shadow-deep)}.app-card__media{background:linear-gradient(160deg,#1e293b 0%,#0f172a 100%);border:1px solid #94a3b859;border-radius:10px;justify-content:center;align-items:center;min-height:11rem;margin:0;padding:.5rem;display:flex;overflow:hidden;box-shadow:inset 0 1px #ffffff1f}.app-card__media img{-o-object-fit:contain;object-fit:contain;-o-object-position:center center;object-position:center center;border-radius:6px;width:100%;height:auto;max-height:220px;display:block}.app-card__body{flex-direction:column;flex:1;display:flex}.app-card__body h2{color:var(--accent-soft);margin:0 0 .65rem;font-size:1.35rem;font-weight:600}.app-card__body p{color:var(--text-muted);flex:1;margin:0 0 1.15rem;font-size:.92rem;line-height:1.55}.app-card__cta{letter-spacing:.02em;color:#fff;background:var(--primary);cursor:pointer;border:1px solid #7dd3fc59;border-radius:8px;justify-content:center;align-items:center;gap:.45rem;padding:.65rem 1.15rem;font-size:.88rem;font-weight:600;text-decoration:none;transition:background .15s,transform .15s,box-shadow .15s;display:inline-flex;box-shadow:0 2px 10px #0284c759}.app-card__cta:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 14px #0284c773}.app-card__cta:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app-card--soon{opacity:.78}.app-card--soon:hover{transform:none}.app-card--soon .app-card__cta{pointer-events:none;opacity:.5;cursor:default;box-shadow:none;background:#334155;border-color:#94a3b840}.app-card__placeholder{color:var(--text-muted);text-align:center;padding:2rem 1rem;font-size:1rem;font-weight:600}.badge-soon{text-transform:uppercase;letter-spacing:.06em;vertical-align:middle;color:var(--accent-soft);background:#38bdf81a;border:1px solid #7dd3fc59;border-radius:.25rem;margin-left:.5rem;padding:.15rem .45rem;font-size:.65rem;font-weight:600;display:inline-block}footer{text-align:center;color:var(--text-muted);margin-top:3rem;font-size:.8rem}.portal-disclaimer{text-align:center;color:#fff;width:100%;max-width:52rem;margin-top:auto;margin-left:auto;margin-right:auto;padding:2.5rem 0 2.25rem;font-size:.75rem;line-height:1.55}.portal-disclaimer p{margin:0 0 1rem}.portal-disclaimer p:last-child{margin-bottom:0}.portal-disclaimer-risk{text-underline-offset:.12em;text-decoration:underline}.portal-admin-lock{z-index:40;border:1px solid var(--glass-rim);background:var(--glass-fill);width:2.75rem;height:2.75rem;box-shadow:var(--glass-inset), var(--shadow-deep);-webkit-backdrop-filter:blur(14px);color:var(--accent-soft);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:0;transition:border-color .15s,color .15s,transform .15s;display:flex;position:fixed;top:1rem;right:1rem}.portal-admin-lock:hover{color:#fff;border-color:#7dd3fc8c;transform:translateY(-1px)}.portal-admin-lock svg{width:1.25rem;height:1.25rem}body.portal-modal-open{overflow:hidden}.portal-modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;background:#0f172ab8;justify-content:center;align-items:center;padding:1rem;display:none;position:fixed;inset:0}.portal-modal-overlay.is-open{pointer-events:auto;display:flex}.portal-modal{border:1px solid var(--glass-rim);width:min(100%,40rem);max-height:min(92dvh,52rem);box-shadow:var(--glass-inset), 0 24px 64px #0000008c;color:var(--text);background:linear-gradient(160deg,#1e293b 0%,#0f172a 100%);border-radius:14px;overflow:auto}.portal-modal__head{border-bottom:1px solid #94a3b840;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.1rem 1.25rem;display:flex}.portal-modal__head h2{color:var(--accent-soft);margin:0;font-size:1.15rem;font-weight:600}.portal-modal__head p{color:var(--text-muted);margin:.35rem 0 0;font-size:.82rem}.portal-modal__close{width:2rem;height:2rem;color:var(--text);cursor:pointer;background:#94a3b826;border:none;border-radius:6px;flex-shrink:0;font-size:1.25rem;line-height:1}.portal-modal__close:hover{background:#94a3b847}.portal-modal__body{padding:1.15rem 1.25rem 1.35rem}.portal-modal__section{margin-bottom:1.35rem}.portal-modal__section h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 .65rem;font-size:.78rem;font-weight:600}.portal-field{margin-bottom:.75rem;display:block}.portal-field span{color:var(--text-muted);margin-bottom:.3rem;font-size:.78rem;font-weight:600;display:block}.portal-field input,.portal-field textarea,.portal-field select{width:100%;color:var(--text);font:inherit;background:#0f172a;border:1px solid #94a3b866;border-radius:8px;padding:.5rem .65rem;font-size:.88rem}.portal-field textarea{resize:vertical;min-height:4.5rem}.portal-field input:focus,.portal-field textarea:focus,.portal-field select:focus{outline:2px solid var(--accent);outline-offset:1px}.portal-field--row{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.portal-field--row input[type=checkbox]{width:auto}.portal-btn{background:var(--primary);color:#fff;font:inherit;cursor:pointer;border:1px solid #7dd3fc59;border-radius:8px;justify-content:center;align-items:center;padding:.55rem 1rem;font-size:.85rem;font-weight:600;display:inline-flex}.portal-btn:hover{background:var(--primary-hover)}.portal-btn--ghost{color:var(--text-muted);background:0 0;border-color:#94a3b866}.portal-btn--ghost:hover{color:var(--text);background:#94a3b81f}.portal-forgot-title{margin:.75rem 0;font-size:1.05rem}.portal-section-subhead{margin:1.5rem 0 .5rem;font-size:1rem}.portal-security-questions{gap:.75rem;margin:.75rem 0;display:grid}.portal-security-questions select{width:100%;font:inherit;color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0f172a;border:1px solid #94a3b866;border-radius:8px;margin-top:.25rem;padding:.5rem .65rem;font-size:.88rem}.portal-security-questions select option{color:var(--text);background:#0f172a}#portal-login-form .portal-btn--ghost,#portal-forgot-panel .portal-btn--ghost{width:100%;margin-top:.5rem}.portal-btn--danger{background:#7f1d1d;border-color:#991b1b}.portal-btn-row{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.portal-app-editor{background:#0f172a8c;border:1px solid #94a3b847;border-radius:10px;margin-bottom:.75rem;padding:.85rem}.portal-app-editor__title{color:var(--accent-soft);margin:0 0 .65rem;font-size:.88rem;font-weight:600}.portal-msg{border-radius:8px;margin:0 0 .75rem;padding:.5rem .65rem;font-size:.82rem}.portal-msg--err{color:#fecaca;background:#7f1d1d59;border:1px solid #991b1b}.portal-msg--ok{color:#dcfce7;background:#14532d59;border:1px solid #166534}.portal-hidden{display:none!important}.apps-loading{text-align:center;color:var(--text-muted);grid-column:1/-1;padding:2rem}.portal-modal__hint{color:var(--text-muted);margin:0 0 .85rem;font-size:.82rem;line-height:1.5}.portal-app-image-upload{flex-wrap:wrap;align-items:flex-start;gap:.75rem;display:flex}.portal-app-image-preview{background:#0f172a;border:1px solid #94a3b859;border-radius:8px;flex:none;justify-content:center;align-items:center;width:8rem;min-height:5rem;display:flex;overflow:hidden}.portal-app-image-preview img{-o-object-fit:contain;object-fit:contain;width:100%;max-height:5.5rem;display:block}.portal-app-image-preview__empty{color:var(--text-muted);text-align:center;padding:.65rem;font-size:.72rem}.portal-app-image-upload__actions{flex:1;min-width:10rem}.portal-app-image-upload__actions input[type=file]{width:100%;color:var(--text-muted);font-size:.82rem}.portal-app-image-upload__hint{color:var(--text-muted);margin:0 0 .35rem;font-size:.75rem}.portal-app-image-upload__status{color:var(--text-muted);margin:.35rem 0 0;font-size:.75rem}.portal-app-image-upload__status.is-busy{color:var(--accent-soft)}.portal-app-loading{z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172ab8;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.portal-app-loading__panel{text-align:center;background:var(--glass-fill);border:1px solid var(--glass-rim);max-width:22rem;box-shadow:var(--shadow-deep), var(--glass-inset);border-radius:1rem;flex-direction:column;align-items:center;gap:1.25rem;padding:2rem 2.25rem;display:flex}.portal-app-loading__spinner{border:3px solid #94a3b859;border-top-color:var(--accent);border-radius:50%;width:2.75rem;height:2.75rem;animation:.75s linear infinite portal-app-loading-spin}@keyframes portal-app-loading-spin{to{transform:rotate(360deg)}}.portal-app-loading__msg{color:var(--text);margin:0;font-size:1.05rem;font-weight:600;line-height:1.4}.portal-phone-notice{z-index:220;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172ac7;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.portal-phone-notice.portal-hidden{display:none}.portal-phone-notice__panel{text-align:center;background:var(--glass-fill);border:1px solid var(--glass-rim);width:min(100%,26rem);box-shadow:var(--shadow-deep), var(--glass-inset);border-radius:1rem;padding:1.5rem 1.35rem 1.35rem}.portal-phone-notice__panel h2{color:var(--text);margin:0 0 .75rem;font-size:1.2rem;font-weight:700}.portal-phone-notice__panel p{color:var(--text-muted);text-align:left;margin:0 0 1.25rem;font-size:.95rem;line-height:1.5}.portal-phone-notice__panel .portal-btn{min-width:6rem}
