:root{--portal-bg:#07100e;--portal-panel:#0e1b17d1;--portal-panel-solid:#0e1b17;--portal-line:#d1eadd1f;--portal-text:#eff8f3;--portal-muted:#94a9a0;--portal-green:#6ee7a8;--portal-green-dark:#123d2d;--portal-amber:#f4c56b;--portal-blue:#65b9ff;--portal-red:#ff806d}*{box-sizing:border-box}body{background:var(--portal-bg);margin:0;font-family:Inter,Pretendard,Noto Sans KR,Segoe UI,sans-serif}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.portal-shell{min-height:100vh;color:var(--portal-text);background:radial-gradient(circle at 86% 8%,#2d7d5733,#0000 32rem),linear-gradient(135deg,#07100e 0%,#0a1512 55%,#07100e 100%);font-family:Inter,Noto Sans KR,sans-serif}.portal-atmosphere{pointer-events:none;opacity:.16;background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:42px 42px;position:fixed;inset:0;mask-image:linear-gradient(#000,#0000 88%)}.portal-sidebar{z-index:30;border-right:1px solid var(--portal-line);backdrop-filter:blur(20px);background:#060e0cf0;flex-direction:column;width:250px;display:flex;position:fixed;inset:0 auto 0 0}.portal-brand{border-bottom:1px solid var(--portal-line);align-items:center;gap:12px;min-height:76px;padding:16px 20px;display:flex}.portal-brand-mark{color:#07100e;background:var(--portal-green);border-radius:13px;flex:none;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 0 28px #6ee7a82e}.portal-brand div:nth-child(2){gap:2px;min-width:0;display:grid}.portal-brand strong{letter-spacing:.07em;font-size:16px}.portal-brand span{color:var(--portal-muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.portal-nav{gap:5px;padding:22px 12px;display:grid}.portal-nav-label{color:#5f766c;letter-spacing:.16em;margin:0 10px 8px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600}.portal-nav button{min-height:43px;color:var(--portal-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:11px;align-items:center;gap:11px;padding:0 13px;transition:all .16s;display:flex}.portal-nav button.portal-nav-active{color:var(--portal-text);background:linear-gradient(90deg,#6ee7a824,#6ee7a808);border-color:#6ee7a833}.portal-account-card{border:1px solid var(--portal-line);background:#ffffff06;border-radius:14px;grid-template-columns:38px minmax(0,1fr) 34px;align-items:center;gap:10px;min-width:0;margin:auto 12px 14px;padding:11px;display:grid}.portal-account-card>div:nth-child(2){gap:2px;min-width:0;display:grid}.portal-account-card strong,.portal-account-card span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.portal-account-card strong{font-size:12px}.portal-account-card span{color:var(--portal-muted);font-size:10px}.portal-avatar{width:38px;height:38px;color:var(--portal-green);background:#6ee7a81a;border:1px solid #6ee7a847;border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.portal-icon-button{width:34px;height:34px;color:var(--portal-muted);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;display:grid}.portal-main{min-height:100vh;margin-left:250px}.portal-topbar{border-bottom:1px solid var(--portal-line);backdrop-filter:blur(16px);background:#07100eb3;align-items:center;gap:14px;min-height:76px;padding:13px clamp(20px,4vw,48px);display:flex}.portal-topbar>div:nth-child(2){gap:4px;display:grid}.portal-topbar h1{margin:0;font-size:20px}.portal-kicker{color:var(--portal-green);letter-spacing:.15em;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600}.portal-live{color:var(--portal-muted);letter-spacing:.08em;align-items:center;gap:7px;margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:10px;display:flex}.portal-live>span{background:var(--portal-green);width:7px;height:7px;box-shadow:0 0 10px var(--portal-green);border-radius:50%}.portal-content{width:min(1380px,100%);margin:0 auto;padding:34px clamp(20px,4vw,48px) 64px}.portal-stack{gap:32px;min-width:0;display:grid}.portal-hero{background:radial-gradient(circle at 86% 28%,#6ee7a838,#0000 20rem),linear-gradient(120deg,#103929f0,#081410eb);border:1px solid #6ee7a829;border-radius:24px;justify-content:space-between;align-items:end;gap:28px;min-height:230px;padding:clamp(28px,5vw,56px);display:flex;position:relative;overflow:hidden;box-shadow:0 24px 80px #00000038}.portal-hero:after{content:"";border:1px solid #6ee7a81f;border-radius:50%;width:430px;height:430px;position:absolute;top:-170px;right:-80px;box-shadow:0 0 0 55px #6ee7a808,0 0 0 112px #6ee7a805}.portal-hero>*{z-index:1;position:relative}.portal-hero h2{letter-spacing:-.045em;margin:10px 0 7px;font-size:clamp(32px,5vw,58px);line-height:1}.portal-hero p{color:#b9ccc3;margin:0;font-size:14px}.portal-hero-badge{backdrop-filter:blur(12px);background:#040b0961;border:1px solid #ffffff1f;border-radius:14px;grid-template-columns:28px 1fr;align-items:center;gap:2px 8px;min-width:190px;padding:14px 16px;display:grid}.portal-hero-badge svg{color:var(--portal-green);grid-row:span 2}.portal-hero-badge span{color:var(--portal-muted);text-transform:uppercase;font-size:10px}.portal-hero-badge strong{text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:13px}.portal-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.portal-metric{border:1px solid var(--portal-line);background:var(--portal-panel);border-radius:16px;grid-template-rows:1fr 1fr;grid-template-columns:32px 1fr;align-items:center;gap:0 8px;min-height:112px;padding:18px;display:grid}.portal-metric svg{color:var(--portal-green);grid-row:span 2}.portal-metric span{color:var(--portal-muted);align-self:end;font-size:11px}.portal-metric strong{align-self:start;font-size:28px}.portal-section-title{gap:5px;display:grid}.portal-section-title span{color:var(--portal-green);letter-spacing:.15em;font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:600}.portal-section-title h2{margin:0;font-size:22px}.portal-section-actions{justify-content:space-between;align-items:center;gap:16px;display:flex}.portal-services{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.portal-service-card{width:100%;min-height:104px;color:inherit;text-align:left;border:1px solid var(--portal-line);background:var(--portal-panel);cursor:pointer;border-radius:16px;grid-template-columns:48px minmax(0,1fr) 24px;align-items:center;gap:14px;padding:18px;text-decoration:none;transition:all .17s;display:grid}.portal-service-card:hover{background:#122821e6;border-color:#6ee7a845;transform:translateY(-2px)}.portal-service-card>svg{color:#61776d}.portal-service-card h3{margin:0 0 5px;font-size:14px}.portal-service-card p{color:var(--portal-muted);margin:0;font-size:11px;line-height:1.5}.portal-service-icon{border-radius:13px;place-items:center;width:46px;height:46px;display:grid}.portal-accent-green{color:var(--portal-green);background:#6ee7a81a}.portal-accent-blue{color:var(--portal-blue);background:#65b9ff1a}.portal-accent-amber{color:var(--portal-amber);background:#f4c56b1a}.portal-accent-purple{color:#c69cff;background:#c69cff1a}.portal-feed,.portal-board{border:1px solid var(--portal-line);background:var(--portal-panel);border-radius:16px;margin-top:16px;display:grid;overflow:hidden}.portal-post-row{min-height:82px;color:inherit;text-align:left;border:0;border-bottom:1px solid var(--portal-line);cursor:pointer;background:0 0;grid-template-columns:42px minmax(0,1fr) 24px 22px;align-items:center;gap:13px;padding:14px 18px;display:grid}.portal-post-row:last-child{border-bottom:0}.portal-post-row:hover{background:#ffffff06}.portal-post-kind-icon{width:40px;height:40px;color:var(--portal-green);background:#6ee7a817;border-radius:12px;place-items:center;display:grid}.portal-post-row>div:nth-child(2){gap:3px;min-width:0;display:grid}.portal-post-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.portal-post-row div>span:last-child{color:var(--portal-muted);font-size:10px}.portal-kind,.portal-pin,.portal-status,.portal-role,.portal-quota{letter-spacing:.08em;border-radius:999px;align-items:center;width:fit-content;padding:3px 7px;font-family:IBM Plex Mono,monospace;font-size:8px;font-weight:700;display:inline-flex}.portal-kind-post{color:var(--portal-blue);background:#65b9ff1a}.portal-kind-notice{color:var(--portal-amber);background:#f4c56b1a}.portal-kind-season_guide{color:var(--portal-green);background:#6ee7a81a}.portal-pin{color:#c69cff;background:#c69cff1a;margin-left:4px}.portal-sync-warning{color:#ffd27a;background:#f4c56b29}.portal-ops-status{gap:12px;display:grid}.portal-ops-release-id{color:var(--portal-muted);font-family:IBM Plex Mono,monospace;font-size:10px}.portal-primary-button,.portal-secondary-button,.portal-member-actions button,.portal-back-button{cursor:pointer;border-radius:11px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 16px;display:inline-flex}.portal-primary-button{color:#06110d;border:1px solid var(--portal-green);background:var(--portal-green);font-weight:800;box-shadow:0 8px 26px #6ee7a81c}.portal-primary-button:disabled,.portal-secondary-button:disabled{opacity:.48;cursor:not-allowed}.portal-secondary-button,.portal-back-button{color:var(--portal-text);border:1px solid var(--portal-line);background:#ffffff09}.portal-button-inline{width:fit-content}.portal-form,.portal-composer,.portal-studio-form{gap:15px;display:grid}.portal-form label,.portal-composer label,.portal-studio-form label,.portal-language-fields label{color:#b7c8c0;gap:7px;font-size:11px;font-weight:600;display:grid}.portal-form input,.portal-form textarea,.portal-form select,.portal-composer input,.portal-composer textarea,.portal-composer select,.portal-studio-form input,.portal-studio-form textarea,.portal-studio-form select,.portal-upload-card input,.portal-upload-card select,.portal-comments textarea{width:100%;color:var(--portal-text);border:1px solid var(--portal-line);background:#ffffff09;border-radius:10px;outline:none}.portal-asset-search{color:#111827;background:#f8fafcb8;border:1px solid #94a3b847;border-radius:7px;outline:none;width:min(520px,100%);min-height:43px;padding:0 12px}.portal-asset-search:focus{border-color:#0f766e80;box-shadow:0 0 0 3px #0f766e12}.portal-form input,.portal-form select,.portal-composer input,.portal-composer select,.portal-studio-form input,.portal-studio-form select,.portal-upload-card input,.portal-upload-card select{min-height:43px;padding:0 12px}.portal-form textarea,.portal-composer textarea,.portal-studio-form textarea,.portal-comments textarea{resize:vertical;padding:11px 12px}.portal-form input:focus,.portal-composer input:focus,.portal-composer textarea:focus,.portal-studio-form input:focus,.portal-studio-form textarea:focus,.portal-studio-form select:focus,.portal-comments textarea:focus{border-color:#6ee7a880;box-shadow:0 0 0 3px #6ee7a812}.portal-composer{background:var(--portal-panel);border:1px solid #6ee7a82e;border-radius:16px;padding:20px}.portal-composer .portal-section-actions>strong{font-size:15px}.portal-form-actions{justify-content:flex-end;gap:9px;display:flex}.portal-message{color:#ffe5af;background:#f4c56b12;border:1px solid #f4c56b33;border-radius:10px;padding:12px 14px;font-size:11px;line-height:1.5}.portal-notice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.portal-notice-card{min-height:230px;color:inherit;text-align:left;border:1px solid var(--portal-line);background:radial-gradient(circle at 94% 0, #6ee7a81f, transparent 13rem), var(--portal-panel);cursor:pointer;border-radius:17px;flex-direction:column;align-items:stretch;padding:22px;display:flex}.portal-notice-meta{align-items:center;display:flex}.portal-notice-card h3{margin:22px 0 10px;font-size:19px}.portal-notice-card p{color:var(--portal-muted);margin:0;font-size:12px;line-height:1.7}.portal-notice-card>div:last-child{color:#668076;justify-content:space-between;margin-top:auto;padding-top:18px;font-family:IBM Plex Mono,monospace;font-size:9px;display:flex}.portal-post-detail{max-width:940px;margin:0 auto}.portal-back-button{background:0 0;border:0;margin-bottom:20px;padding-left:0}.portal-post-header{border:1px solid var(--portal-line);background:var(--portal-panel);border-radius:20px 20px 0 0;padding:clamp(24px,5vw,44px)}.portal-post-header h2{margin:18px 0 12px;font-size:clamp(26px,4vw,42px);line-height:1.12}.portal-post-header>div{color:var(--portal-muted);gap:12px;font-size:11px;display:flex}.portal-language-switch{border-inline:1px solid var(--portal-line);background:#091512f0;gap:6px;padding:14px clamp(24px,5vw,44px);display:flex}.portal-language-switch button{min-width:48px;color:var(--portal-muted);border:1px solid var(--portal-line);cursor:pointer;background:0 0;border-radius:8px;padding:7px 10px;font-family:IBM Plex Mono,monospace;font-size:10px}.portal-language-switch button.active{color:#07100e;border-color:var(--portal-green);background:var(--portal-green)}.portal-post-body{white-space:pre-wrap;color:#d9e5df;border:1px solid var(--portal-line);background:#091512d6;border-radius:0 0 20px 20px;min-height:300px;padding:clamp(28px,5vw,52px);font-size:14px;line-height:1.9}.portal-post-body a{color:var(--portal-green);overflow-wrap:anywhere}.portal-post-assets{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.portal-post-assets img{border-radius:14px;width:100%}.portal-post-assets video{border:1px solid var(--portal-line);background:#030706;border-radius:14px;grid-column:1/-1;width:100%;max-height:720px}.portal-comments{gap:12px;margin-top:26px;display:grid}.portal-comments h3{font-size:15px}.portal-comment{border:1px solid var(--portal-line);background:var(--portal-panel);border-radius:13px;gap:12px;padding:15px;display:flex}.portal-comment>div:last-child{gap:3px;display:grid}.portal-comment strong{font-size:11px}.portal-comment span{color:var(--portal-muted);font-size:9px}.portal-comment p{color:#cedbd5;margin:6px 0 0;font-size:12px;line-height:1.6}.portal-comments form{justify-items:end;gap:9px;display:grid}.portal-segmented{flex-wrap:wrap;gap:5px;display:flex}.portal-segmented button{color:var(--portal-muted);border:1px solid var(--portal-line);cursor:pointer;text-transform:uppercase;background:0 0;border-radius:9px;padding:7px 10px;font-family:IBM Plex Mono,monospace;font-size:9px}.portal-segmented button.active{color:#07100e;border-color:var(--portal-green);background:var(--portal-green)}.portal-upload-card{background:#6ee7a809;border:1px dashed #6ee7a840;border-radius:14px;grid-template-columns:32px minmax(160px,1fr) minmax(150px,1fr) 130px auto auto;align-items:center;gap:12px;padding:15px;display:grid}.portal-upload-card>svg{color:var(--portal-green)}.portal-upload-card>div{gap:3px;display:grid}.portal-upload-card strong{font-size:12px}.portal-upload-card span{color:var(--portal-muted);font-size:9px}.portal-file-button{border:1px solid var(--portal-line);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:0 12px;font-size:11px;display:inline-flex}.portal-file-button input{display:none}.portal-assets-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;display:grid}.portal-asset-card{border:1px solid var(--portal-line);background:var(--portal-panel);border-radius:15px;position:relative;overflow:hidden}.portal-asset-card>img{aspect-ratio:1;object-fit:contain;background:#0a1512;width:100%;display:block}.portal-asset-card>div{gap:4px;min-width:0;padding:13px 42px 14px 13px;display:grid}.portal-asset-card>div>span{color:var(--portal-green);text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:8px}.portal-asset-card h3{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;overflow:hidden}.portal-asset-card small{color:var(--portal-muted);font-size:9px}.portal-asset-card>a{width:31px;height:31px;color:var(--portal-text);border:1px solid var(--portal-line);background:#11201b;border-radius:9px;place-items:center;display:grid;position:absolute;bottom:10px;right:9px}.portal-pagination{color:var(--portal-muted);justify-content:center;align-items:center;gap:14px;font-size:11px;display:flex}.portal-pagination-top{justify-content:space-between}.portal-pagination label,.portal-pagination button{align-items:center;gap:7px;display:inline-flex}.portal-pagination select,.portal-pagination button{min-height:34px;color:var(--portal-text);border:1px solid var(--portal-line);background:var(--portal-panel);border-radius:9px;padding:0 10px}.portal-pagination button{cursor:pointer}.portal-pagination button:disabled{cursor:not-allowed;opacity:.38}.portal-video-badge{z-index:2;color:#fff;pointer-events:none;background:#040908b8;border-radius:999px;padding:6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-120%)}.portal-studio-layout{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);align-items:start;gap:18px;display:grid}.portal-studio-form,.portal-studio-preview{border:1px solid var(--portal-line);background:var(--portal-panel);border-radius:18px;padding:clamp(20px,3vw,30px)}.portal-studio-preview{position:sticky;top:20px}.portal-studio-preview h3{margin:8px 0 18px}.portal-studio-note,.portal-studio-policy{color:#d5e2dc;background:#6ee7a80e;border:1px solid #6ee7a829;border-radius:12px;align-items:center;gap:11px;padding:13px;display:flex}.portal-studio-note svg,.portal-studio-policy svg{color:var(--portal-green);flex:none}.portal-studio-note>div{gap:3px;display:grid}.portal-studio-note strong{font-size:11px}.portal-studio-note span,.portal-studio-policy span{color:var(--portal-muted);font-size:9px;line-height:1.5}.portal-language-fields{border:1px solid var(--portal-line);border-radius:13px;gap:11px;margin:0;padding:15px;display:grid}.portal-language-fields legend{color:var(--portal-green);padding:0 8px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:700}.portal-form-grid{grid-template-columns:1fr 1fr;gap:11px;display:grid}.portal-check{grid-template-columns:18px 1fr;align-items:center;gap:9px!important;display:flex!important}.portal-check input{accent-color:var(--portal-green);width:16px!important;min-height:16px!important}.portal-quota{color:var(--portal-green);background:#6ee7a812;border:1px solid #6ee7a829}.portal-generated-list{gap:12px;display:grid}.portal-studio-policy{margin-top:18px}.portal-member-list{border:1px solid var(--portal-line);background:var(--portal-panel);border-radius:16px;display:grid;overflow:hidden}.portal-member-row{border-bottom:1px solid var(--portal-line);grid-template-columns:40px minmax(150px,1fr) 88px 105px minmax(0,auto);align-items:center;gap:12px;min-height:78px;padding:13px 16px;display:grid}.portal-member-row:last-child{border-bottom:0}.portal-member-main{gap:3px;min-width:0;display:grid}.portal-member-main strong,.portal-member-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.portal-member-main strong{font-size:12px}.portal-member-main span{color:var(--portal-muted);font-size:9px}.portal-status{justify-self:start}.portal-status-approved{color:var(--portal-green);background:#6ee7a814}.portal-status-pending{color:var(--portal-amber);background:#f4c56b14}.portal-status-denied{color:var(--portal-red);background:#ff806d14}.portal-role{color:var(--portal-blue);background:#65b9ff14}.portal-member-actions{justify-content:flex-end;gap:5px;display:flex}.portal-member-actions button{min-height:34px;color:var(--portal-text);border:1px solid var(--portal-line);background:#ffffff09;padding:0 9px;font-size:9px}.portal-member-actions button.danger{color:#ffb2a7;border-color:#ff806d2e}.portal-empty,.portal-inline-loading{color:#657a71;justify-content:center;align-items:center;gap:10px;min-height:170px;font-size:11px;display:flex}.portal-empty{border:1px dashed var(--portal-line);border-radius:14px;flex-direction:column}.portal-loading{min-height:100vh;color:var(--portal-muted);background:var(--portal-bg);justify-content:center;align-items:center;gap:13px;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex}.portal-spin{animation:.9s linear infinite portal-spin}.portal-auth{min-height:100vh;color:var(--portal-text);background:#06100d;grid-template-columns:minmax(0,1.3fr) minmax(380px,.7fr);font-family:Inter,Noto Sans KR,sans-serif;display:grid}.portal-auth-visual{background:linear-gradient(#040b0938,#040b09fa),radial-gradient(circle at 68% 18%,#6ee7a84d,#0000 24rem),linear-gradient(135deg,#0b2d20,#07100e 72%);align-items:end;min-height:100vh;padding:clamp(40px,7vw,100px);display:flex;position:relative;overflow:hidden}.portal-auth-visual:after{content:"";aspect-ratio:1;border:1px solid #6ee7a82e;border-radius:50%;width:min(44vw,570px);position:absolute;top:12%;right:7%;box-shadow:0 0 0 50px #6ee7a806,0 0 0 108px #6ee7a805}.portal-auth-grid{opacity:.13;background-image:linear-gradient(#ffffff14 1px,#0000 1px),linear-gradient(90deg,#ffffff14 1px,#0000 1px);background-size:58px 58px;position:absolute;inset:0}.portal-auth-copy{z-index:1;max-width:740px;position:relative}.portal-auth-copy h1{letter-spacing:-.06em;margin:18px 0;font-size:clamp(48px,7vw,92px);line-height:.92}.portal-auth-copy>p{color:#acc1b7;max-width:570px;font-size:15px;line-height:1.7}.portal-auth-status{flex-wrap:wrap;gap:9px;margin-top:28px;display:flex}.portal-auth-status span{color:#cde1d7;background:#07100e7a;border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:7px;padding:8px 11px;font-size:10px;display:flex}.portal-auth-status svg{color:var(--portal-green)}.portal-auth-panel{border-left:1px solid var(--portal-line);place-items:center;padding:32px;display:grid}.portal-auth-card{width:min(420px,100%)}.portal-brand-auth{border:0;padding-inline:0}.portal-tabs{border:1px solid var(--portal-line);background:#ffffff06;border-radius:12px;grid-template-columns:1fr 1fr;gap:5px;margin:24px 0;padding:5px;display:grid}.portal-tabs button{min-height:39px;color:var(--portal-muted);cursor:pointer;background:0 0;border:0;border-radius:9px;font-size:11px;font-weight:700}.portal-tabs button.active{color:var(--portal-text);background:#6ee7a81a;box-shadow:inset 0 0 0 1px #6ee7a82e}.portal-form small{color:#60766c;line-height:1.5}.portal-scrim,.portal-mobile-only{display:none}@keyframes portal-spin{to{transform:rotate(360deg)}}@media (width<=1100px){.portal-assets-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-upload-card{grid-template-columns:32px 1fr 1fr}.portal-upload-card>input,.portal-upload-card>select,.portal-upload-card>label,.portal-upload-card>button{grid-column:span 1}.portal-member-row{grid-template-columns:40px 1fr auto auto}.portal-member-actions{grid-column:2/-1}}@media (width<=860px){.portal-mobile-only{display:grid}.portal-sidebar{transition:transform .18s;transform:translate(-100%)}.portal-sidebar-open{transform:translate(0)}.portal-main{margin-left:0}.portal-scrim{z-index:20;background:#0000008f;border:0;display:block;position:fixed;inset:0}.portal-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-studio-layout{grid-template-columns:1fr}.portal-studio-preview{position:static}.portal-auth{grid-template-columns:1fr}.portal-auth-visual{min-height:430px}.portal-auth-panel{border-top:1px solid var(--portal-line);border-left:0;min-height:620px}}@media (width<=640px){.portal-content,.portal-topbar{padding-inline:14px}.portal-live{display:none}.portal-hero{flex-direction:column;align-items:start;min-height:280px}.portal-hero-badge{min-width:100%}.portal-services,.portal-notice-grid,.portal-form-grid{grid-template-columns:1fr}.portal-assets-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-section-actions{flex-direction:column;align-items:flex-start}.portal-upload-card{grid-template-columns:32px 1fr}.portal-upload-card>input,.portal-upload-card>select,.portal-upload-card>label,.portal-upload-card>button{grid-column:1/-1}.portal-member-row{grid-template-columns:38px 1fr auto}.portal-member-row .portal-role{grid-column:2}.portal-member-row .portal-status{grid-area:1/3}.portal-member-actions{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-start}.portal-auth-visual{min-height:380px;padding:34px 24px}.portal-auth-copy h1{font-size:52px}.portal-auth-panel{padding:28px 20px 52px}}.portal-shell,.portal-auth,.portal-loading{color:var(--ink);background:radial-gradient(circle at 82% 4%,#0f766e14,#0000 28rem),#f1f4f4}.portal-atmosphere,.portal-auth-grid{opacity:.32;background-image:linear-gradient(#64748b12 1px,#0000 1px),linear-gradient(90deg,#64748b12 1px,#0000 1px)}.portal-sidebar{background:#f9fbfbdb;border-color:#94a3b82e;box-shadow:10px 0 30px #0f172a09}.portal-brand,.portal-topbar{border-color:#94a3b82e}.portal-brand-mark{color:#fff;background:#17202b;border-radius:8px;box-shadow:0 6px 16px #0f172a21}.portal-brand span,.portal-account-card span,.portal-live,.portal-metric span,.portal-service-card p,.portal-post-row div>span:last-child,.portal-notice-card p,.portal-post-header>div,.portal-comment span,.portal-asset-card small,.portal-studio-note span,.portal-studio-policy span,.portal-member-main span,.portal-loading,.portal-tabs button{color:#64748b}.portal-nav-label{color:#94a3b8}.portal-nav button{color:#526174;border-radius:7px}.portal-nav button:hover{color:#111827;background:#0f172a0b}.portal-nav button.portal-nav-active{color:#fff;background:#17202b;border-color:#17202b;box-shadow:0 6px 16px #0f172a21}.portal-nav button.portal-nav-active svg{color:#fff}.portal-account-card,.portal-metric,.portal-service-card,.portal-feed,.portal-board,.portal-composer,.portal-notice-card,.portal-post-header,.portal-comment,.portal-asset-card,.portal-studio-form,.portal-studio-preview,.portal-member-list{backdrop-filter:blur(18px);background:#ffffffb8;border-color:#94a3b838;box-shadow:0 4px 14px #0f172a0a}.portal-avatar{color:#0f766e;background:#0f766e14;border-color:#0f766e3d}.portal-icon-button{color:#64748b}.portal-icon-button:hover{color:#111827;background:#0f172a0d}.portal-topbar{background:#f9fbfbcc}.portal-kicker,.portal-section-title span,.portal-asset-card>div>span,.portal-language-fields legend{color:#0f766e}.portal-live>span{background:#0f766e;box-shadow:0 0 9px #0f766e80}.portal-hero{background:radial-gradient(circle at 86% 28%,#0f766e1f,#0000 20rem),#ffffffc7;border-color:#94a3b833;box-shadow:0 8px 22px #0f172a0b}.portal-hero:after{border-color:#0f766e1f;box-shadow:0 0 0 55px #0f766e06,0 0 0 112px #0f766e05}.portal-hero p{color:#64748b}.portal-hero-badge{background:#f8fafcb8;border-color:#94a3b833}.portal-hero-badge svg,.portal-metric svg,.portal-post-kind-icon{color:#0f766e}.portal-service-card:hover,.portal-post-row:hover{background:#ffffffe6;border-color:#0f766e38}.portal-primary-button{color:#fff;background:#17202b;border-color:#17202b;border-radius:7px;box-shadow:0 6px 16px #0f172a21}.portal-secondary-button,.portal-back-button,.portal-member-actions button{color:#334155;background:#ffffffa8;border-color:#94a3b83d;border-radius:7px}.portal-form label,.portal-composer label,.portal-studio-form label,.portal-language-fields label{color:#475569}.portal-form input,.portal-form textarea,.portal-form select,.portal-composer input,.portal-composer textarea,.portal-composer select,.portal-studio-form input,.portal-studio-form textarea,.portal-studio-form select,.portal-comments textarea{color:#111827;background:#f8fafcb8;border-color:#94a3b847;border-radius:7px}.portal-message{color:#115e59;background:#0f766e0e;border-color:#0f766e2e}.portal-notice-card{background:radial-gradient(circle at 94% 0,#0f766e12,#0000 13rem),#ffffffb8}.portal-notice-card:hover{border-color:#0f766e40}.portal-language-switch,.portal-post-body{color:#334155;background:#ffffffb8;border-color:#94a3b838}.portal-language-switch button,.portal-segmented button,.portal-file-button{color:#64748b;border-color:#94a3b847}.portal-language-switch button.active,.portal-segmented button.active{color:#fff;background:#17202b;border-color:#17202b}.portal-comment p{color:#334155}.portal-asset-card>img{background:#e8edee}.portal-asset-card>a{color:#334155;background:#ffffffe6;border-color:#94a3b842}.portal-studio-note,.portal-studio-policy{color:#334155;background:#0f766e0d;border-color:#0f766e29}.portal-auth-visual{background:linear-gradient(#f1f4f447,#f1f4f4fa),radial-gradient(circle at 68% 18%,#0f766e26,#0000 24rem),#e9eeee;min-height:100vh}.portal-auth-visual:after{border-color:#0f766e21;box-shadow:0 0 0 50px #0f766e06,0 0 0 108px #0f766e05}.portal-auth-copy>p{color:#526174}.portal-auth-status span{color:#334155;background:#fff9;border-color:#94a3b83d}.portal-auth-panel{border-color:#94a3b82e}.portal-tabs{background:#fff9;border-color:#94a3b838}.portal-tabs button.active{color:#fff;box-shadow:none;background:#17202b}.portal-auth-heading,.portal-post-title-line,.portal-source-language{align-items:center;gap:10px;display:flex}.portal-auth-heading{justify-content:space-between}.portal-topbar>.portal-language-switch{margin-left:auto}.portal-source-language{color:#0f766e;background:#0f766e0d;border:1px solid #0f766e29;border-radius:8px;width:fit-content;padding:9px 12px;font-size:12px}.portal-metrics-five{grid-template-columns:repeat(5,minmax(0,1fr))}.portal-markdown-editor{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.portal-markdown-editor>label{min-width:0}.portal-markdown-editor small{color:#64748b;line-height:1.55}.portal-markdown-preview{color:#334155;background:#f8fafcb8;border:1px solid #94a3b847;border-radius:8px;min-width:0;min-height:360px;padding:18px;overflow:auto}.portal-markdown-preview>strong{color:#0f766e;letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;font-size:11px;display:block}.portal-post-body{line-height:1.78;display:block}.portal-post-body h1,.portal-post-body h2,.portal-post-body h3,.portal-markdown-preview h1,.portal-markdown-preview h2,.portal-markdown-preview h3{color:#111827;margin:1.55em 0 .55em;line-height:1.25}.portal-post-body h1,.portal-markdown-preview h1{border-bottom:1px solid #94a3b83d;padding-bottom:.35em;font-size:1.8rem}.portal-post-body h2,.portal-markdown-preview h2{font-size:1.38rem}.portal-post-body h3,.portal-markdown-preview h3{font-size:1.1rem}.portal-post-body p,.portal-markdown-preview p{margin:.7em 0}.portal-post-body ul,.portal-post-body ol,.portal-markdown-preview ul,.portal-markdown-preview ol{margin:.75em 0;padding-left:1.6em}.portal-post-body li,.portal-markdown-preview li{margin:.34em 0}.portal-post-body blockquote,.portal-markdown-preview blockquote{color:#475569;background:#0f766e0b;border-left:4px solid #0f766e;margin:1em 0;padding:.65em 1em}.portal-post-body table,.portal-markdown-preview table{border-collapse:collapse;width:100%;margin:1em 0;font-size:.92em}.portal-post-body th,.portal-post-body td,.portal-markdown-preview th,.portal-markdown-preview td{text-align:left;border:1px solid #94a3b84d;padding:9px 11px}.portal-post-body th,.portal-markdown-preview th{color:#0f172a;background:#0f766e0f}.portal-post-body code,.portal-markdown-preview code{color:#115e59;background:#0f766e14;border-radius:5px;padding:.16em .38em}.portal-post-body pre,.portal-markdown-preview pre{background:#17202b;border-radius:8px;padding:14px;overflow-x:auto}.portal-post-body pre code,.portal-markdown-preview pre code{color:#e2e8f0;background:0 0;padding:0}.portal-post-body hr,.portal-markdown-preview hr{border:0;border-top:1px solid #94a3b847;margin:1.8em 0}.portal-media-picker{border:1px solid #94a3b83d;border-radius:8px;padding:14px}.portal-media-picker legend{color:#0f766e;letter-spacing:.08em;text-transform:uppercase;padding:0 6px;font-size:11px;font-weight:800}.portal-media-picker>p{color:#64748b;margin:0 0 12px;font-size:12px}.portal-media-picker>.portal-composer-media-upload{grid-template-columns:none;align-items:center;gap:10px;margin-bottom:12px;display:flex}.portal-composer-media-upload .portal-file-button{width:fit-content}.portal-media-picker>div{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;display:grid}.portal-media-picker button{aspect-ratio:1;background:#e8edee;border:2px solid #0000;border-radius:8px;padding:0;position:relative;overflow:hidden}.portal-media-picker button.active{border-color:#0f766e}.portal-media-picker button img{object-fit:cover;width:100%;height:100%}.portal-media-picker button svg{color:#fff;background:#0f766e;border-radius:50%;padding:3px;position:absolute;bottom:4px;right:4px}.portal-media-upload{background:#ffffffb8;border:1px solid #94a3b838;border-radius:10px;grid-template-columns:minmax(180px,1fr) auto auto;align-items:end;gap:12px;padding:16px;display:grid}.portal-media-upload label{color:#475569;gap:7px;font-size:12px;font-weight:700;display:grid}.portal-media-upload input:not([type=file]){color:#111827;background:#f8fafcb8;border:1px solid #94a3b847;border-radius:7px;min-height:40px;padding:0 12px}.portal-file-button{cursor:pointer;background:#fffc;border:1px solid #94a3b847;border-radius:7px;justify-content:center;align-items:center;min-height:40px;padding:0 14px;display:inline-flex!important}.portal-file-button input{opacity:0;width:1px;height:1px;position:absolute}.portal-message-error{color:#991b1b;background:#dc26260e;border-color:#dc262633}.portal-back-button{align-items:center;gap:7px;display:inline-flex}.portal-detail-actions,.portal-job-status,.portal-history-list button,.portal-mail-list>div{align-items:center;gap:10px;display:flex}.portal-detail-actions{justify-content:space-between}.portal-detail-actions>div{align-items:center;gap:8px;display:flex}@media (width<=560px){.portal-detail-actions{flex-direction:column;align-items:stretch}.portal-detail-actions>div{grid-template-columns:1fr 1fr;display:grid}.portal-detail-actions>div button{justify-content:center}}.portal-locale-grid,.portal-candidate-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.portal-locale-panel,.portal-candidate-card,.portal-reference-section,.portal-member-card,.portal-permission-editor,.portal-smtp-card{background:#ffffffb3;border:1px solid #94a3b83d;border-radius:10px;padding:15px}.portal-locale-panel,.portal-candidate-card,.portal-permission-editor,.portal-smtp-card{gap:12px;display:grid}.portal-locale-panel>strong,.portal-candidate-card>span{color:#0f766e;letter-spacing:.1em;font-size:12px;font-weight:900}.portal-reference-section>p,.portal-smtp-card>p{color:#64748b;margin:4px 0 12px;font-size:12px}.portal-reference-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;max-height:360px;display:grid;overflow:auto}.portal-reference-item{color:#475569;text-align:left;background:#eef2f3;border:1px solid #0f766e4d;border-radius:8px;gap:5px;padding:4px;font-size:9px;display:grid;overflow:hidden;box-shadow:0 0 0 2px #0f766e1f}.portal-reference-selected{border-bottom:1px solid #94a3b833;margin-bottom:12px;padding-bottom:12px}.portal-reference-grid img{aspect-ratio:1;object-fit:cover;border-radius:5px;width:100%}.portal-job-status{color:#0f766e;background:#14b8a614;border:1px solid #0f766e33;border-radius:8px;padding:10px 12px;font-size:12px;font-weight:800}.portal-job-failed{color:#991b1b;background:#dc26260f;border-color:#dc262633}.portal-history-list{gap:7px;display:grid}.portal-history-list button{background:#ffffffb8;border:1px solid #94a3b833;border-radius:7px;justify-content:space-between;width:100%;padding:9px}.portal-history-list button strong,.portal-history-list button small{font-size:10px}.portal-member-card{padding:0;overflow:hidden}.portal-member-card .portal-member-row{border-bottom:0}.portal-permission-editor{background:#f8fafcc2;border-width:1px 0 0;border-radius:0}.portal-permission-editor>label,.portal-smtp-grid>label{color:#475569;gap:6px;font-size:11px;font-weight:800;display:grid}.portal-permission-editor select,.portal-smtp-grid input,.portal-form-actions>input{color:#111827;background:#fff;border:1px solid #94a3b84d;border-radius:7px;min-height:38px;padding:0 10px}.portal-permission-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.portal-permission-grid .portal-check{background:#fff;border:1px solid #94a3b82e;border-radius:7px;padding:8px}.portal-smtp-card{margin-top:10px}.portal-smtp-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.portal-mail-list{gap:6px;max-height:280px;display:grid;overflow:auto}.portal-mail-list>div{border-top:1px solid #94a3b82e;grid-template-columns:auto minmax(180px,1fr) minmax(150px,1fr);padding:8px;font-size:10px;display:grid}.portal-mail-list small{color:#991b1b;grid-column:2/-1}@media (width<=1180px){.portal-metrics-five{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-media-picker>div{grid-template-columns:repeat(6,minmax(0,1fr))}.portal-locale-grid,.portal-candidate-grid,.portal-permission-grid,.portal-smtp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.portal-topbar>.portal-language-switch{margin-left:auto}.portal-markdown-editor{grid-template-columns:1fr}.portal-markdown-preview{min-height:220px}.portal-media-picker>div{grid-template-columns:repeat(4,minmax(0,1fr))}.portal-media-upload{grid-template-columns:1fr}.portal-metrics-five{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-locale-grid,.portal-candidate-grid,.portal-permission-grid,.portal-smtp-grid{grid-template-columns:1fr}.portal-reference-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=520px){.portal-topbar .portal-language-switch button{min-width:29px;padding:5px 6px}.portal-media-picker>div{grid-template-columns:repeat(3,minmax(0,1fr))}}.portal-admin-app{max-width:1320px;margin:0 auto}.portal-admin-heading,.portal-codex-console-head,.portal-codex-console-actions,.portal-codex-message>div,.portal-codex-running,.portal-codex-policy{align-items:center;display:flex}.portal-admin-heading,.portal-codex-console-head{justify-content:space-between;gap:18px}.portal-admin-heading .portal-status{border:1px solid #0f766e2e;border-radius:999px;justify-content:center;min-width:74px;padding:8px 12px;font-size:11px;font-weight:800}.portal-admin-heading .portal-status-idle{color:#0f766e;background:#0d948814}.portal-admin-heading .portal-status-running{color:#0369a1;background:#0ea5e917}.portal-admin-heading .portal-status-error,.portal-admin-heading .portal-status-interrupted{color:#b45309;background:#f59e0b1a}.portal-admin-statuses{align-items:center;gap:8px;display:flex}.portal-codex-yolo{color:#fff7ed;letter-spacing:.07em;background:linear-gradient(135deg,#c2410c,#9a3412);border:1px solid #f973167a;border-radius:999px;padding:8px 11px;font:800 10px/1 SFMono-Regular,Consolas,monospace;box-shadow:0 7px 20px #9a341233}.portal-codex-console{background:#08101bf5;border:1px solid #5eead433;border-radius:22px;overflow:hidden;box-shadow:0 24px 70px #0206174d}.portal-codex-console-head{border-bottom:1px solid #94a3b829;padding:18px 20px}.portal-codex-console-head>div:first-child{gap:4px;min-width:0;display:grid}.portal-codex-console-head span,.portal-codex-scope span{color:#94a3b8;letter-spacing:.09em;text-transform:uppercase;font-size:11px;font-weight:800}.portal-codex-console-head strong{color:#e2e8f0;text-overflow:ellipsis;white-space:nowrap;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;overflow:hidden}.portal-codex-console-actions{flex:none;gap:8px}.portal-codex-console .portal-secondary-button{color:#cbd5e1;background:#1e293bb3;border-color:#94a3b840}.portal-codex-scope{background:#0f172ab3;border-bottom:1px solid #94a3b81f;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px 20px;display:grid}.portal-codex-scope>div{gap:5px;min-width:0;display:grid}.portal-codex-scope code{color:#cbd5e1;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.portal-codex-terminal{overscroll-behavior:contain;background-color:#050b14;background-image:linear-gradient(#5eead406 1px,#0000 1px),linear-gradient(90deg,#5eead406 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-height:360px;max-height:min(60vh,680px);padding:18px 20px;overflow:auto}.portal-codex-message{background:#0f172ad6;border:1px solid #94a3b824;border-radius:12px;margin-bottom:14px;padding:12px 14px}.portal-codex-message-user{background:#0d383a85;border-color:#2dd4bf47}.portal-codex-message-assistant{border-color:#60a5fa3d}.portal-codex-message-command,.portal-codex-message-output{background:#020617c2;border-color:#94a3b81a;margin-left:22px}.portal-codex-message-system{background:#452d0757;border-color:#fbbf2440}.portal-codex-message>div{justify-content:space-between;gap:12px;margin-bottom:8px}.portal-codex-message strong{color:#5eead4;letter-spacing:.08em;text-transform:uppercase;font-size:11px}.portal-codex-message time{color:#64748b;font:11px SFMono-Regular,Consolas,monospace}.portal-codex-message pre{overflow-wrap:anywhere;color:#dbeafe;white-space:pre-wrap;margin:0;font:12px/1.7 SFMono-Regular,Consolas,Liberation Mono,monospace}.portal-codex-empty{color:#64748b;text-align:center;align-content:center;place-items:center;gap:12px;min-height:300px;display:grid}.portal-codex-running{color:#5eead4;gap:8px;font:12px SFMono-Regular,Consolas,monospace}.portal-codex-composer{background:#0f172ad6;border-top:1px solid #94a3b829;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px 20px;display:grid}.portal-codex-composer textarea{resize:vertical;color:#e2e8f0;background:#020617c7;border-color:#94a3b838;min-width:0}.portal-codex-composer textarea::placeholder{color:#64748b}.portal-codex-composer .portal-primary-button{align-self:stretch;min-width:168px}.portal-codex-policy{color:#94a3b8;gap:8px;margin:0;padding:0 20px 16px;font-size:12px}.portal-codex-policy svg{color:#5eead4;flex:none}.portal-codex-policy-yolo,.portal-codex-policy-yolo svg{color:#fdba74}@media (width<=760px){.portal-admin-heading,.portal-codex-console-head{flex-direction:column;align-items:stretch}.portal-admin-statuses{justify-content:space-between}.portal-codex-console-actions{grid-template-columns:1fr 1fr;display:grid}.portal-codex-console-actions>button{width:100%}.portal-codex-scope,.portal-codex-composer{grid-template-columns:1fr}.portal-codex-terminal{min-height:320px;max-height:52vh;padding:14px}.portal-codex-message-command,.portal-codex-message-output{margin-left:0}.portal-codex-composer{padding:14px}.portal-codex-composer .portal-primary-button{width:100%;min-height:46px}.portal-codex-policy{align-items:flex-start;padding:0 14px 14px}}.portal-thp-shell{gap:18px;display:grid}.portal-thp-hero,.portal-thp-import,.portal-thp-main,.portal-thp-history,.portal-thp-empty{border:1px solid var(--portal-border);box-shadow:var(--portal-shadow-sm);background:#ffffffd1;border-radius:22px}.portal-thp-hero{background:linear-gradient(130deg,#fffffff0,#e0f8f4e0);justify-content:space-between;align-items:flex-end;gap:24px;padding:28px;display:flex}.portal-thp-hero h2,.portal-thp-toolbar h3,.portal-thp-player-head h3{color:var(--portal-ink);margin:5px 0 7px}.portal-thp-hero h2{font-size:clamp(1.8rem,3vw,2.65rem)}.portal-thp-hero p,.portal-thp-toolbar p,.portal-thp-form-head span,.portal-thp-empty span{color:var(--portal-muted);margin:0}.portal-thp-import{gap:16px;padding:22px;display:grid}.portal-thp-form-head,.portal-thp-form-actions,.portal-thp-toolbar,.portal-thp-actions,.portal-thp-history>div:first-child,.portal-thp-player-head{justify-content:space-between;align-items:center;gap:14px;display:flex}.portal-thp-form-head>div{gap:4px;display:grid}.portal-thp-form-grid{grid-template-columns:minmax(0,1fr) minmax(180px,.35fr);gap:14px;display:grid}.portal-thp-import label{color:var(--portal-muted);gap:7px;font-size:.78rem;font-weight:800;display:grid}.portal-thp-import input,.portal-thp-import textarea,.portal-thp-search input,.portal-thp-draft-row input,.portal-thp-draft-row select,.portal-thp-aliases input{border:1px solid var(--portal-border);width:100%;color:var(--portal-ink);font:inherit;background:#fff;border-radius:12px}.portal-thp-import input,.portal-thp-search input,.portal-thp-draft-row input,.portal-thp-draft-row select,.portal-thp-aliases input{min-height:42px;padding:0 12px}.portal-thp-import textarea{resize:vertical;min-height:220px;padding:14px;line-height:1.65}.portal-thp-metrics,.portal-thp-player-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.portal-thp-metric{border:1px solid var(--portal-border);background:#ffffffdb;border-radius:16px;grid-template-columns:auto 1fr;align-items:center;gap:5px 9px;min-width:0;padding:16px 18px;display:grid}.portal-thp-metric svg{color:#008879;grid-row:1/span 2}.portal-thp-metric span{color:var(--portal-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:800}.portal-thp-metric strong{text-overflow:ellipsis;font-size:1.22rem;overflow:hidden}.portal-thp-layout{grid-template-columns:minmax(0,1fr) 270px;align-items:start;gap:16px;display:grid}.portal-thp-main{min-width:0;overflow:hidden}.portal-thp-toolbar{border-bottom:1px solid var(--portal-border);align-items:flex-end;padding:20px}.portal-thp-toolbar>div:first-child{min-width:0}.portal-thp-state{color:#5f7077;background:#edf3f5;border-radius:999px;padding:5px 9px;font-size:.68rem;font-weight:900;display:inline-flex}.portal-thp-state.state-confirmed{color:#057965;background:#dbf5ec}.portal-thp-state.state-draft{color:#9c6200;background:#fff1d6}.portal-thp-actions{flex-wrap:wrap;justify-content:flex-end}.portal-thp-search{border:1px solid var(--portal-border);width:min(230px,100%);color:var(--portal-muted);background:#fff;border-radius:12px;align-items:center;gap:7px;padding-left:11px;display:flex}.portal-thp-search input{border:0;outline:0;min-width:0;padding-left:0}.portal-thp-table-head,.portal-thp-row{grid-template-columns:68px minmax(170px,1fr) 120px 120px 105px;align-items:center;gap:12px;display:grid}.portal-thp-table-head{color:var(--portal-muted);letter-spacing:.04em;text-transform:uppercase;background:#f7faf9;padding:7px 14px;font-size:.67rem;font-weight:900}.portal-thp-rows{display:grid}.portal-thp-row{width:100%;min-height:48px;color:var(--portal-ink);text-align:left;cursor:pointer;background:0 0;border:0;border-top:1px solid #edf1f1;padding:6px 14px;transition:background .15s}.portal-thp-row:hover{background:#f4fbf9}.portal-thp-rank{color:#087e70;font-size:1rem}.portal-thp-name{gap:1px;min-width:0;display:grid}.portal-thp-name strong,.portal-thp-name small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.portal-thp-name small{color:var(--portal-muted);font-size:.68rem}.portal-thp-delta{align-items:center;gap:3px;font-size:.78rem;font-style:normal;font-weight:900;display:inline-flex}.portal-thp-delta.positive{color:#078067}.portal-thp-delta.negative{color:#c44d5b}.portal-thp-delta.neutral{color:var(--portal-muted)}.portal-thp-draft-row{border-top:1px solid #edf1f1;grid-template-columns:74px minmax(240px,1fr) 150px 90px;align-items:start;gap:7px;padding:7px 14px;display:grid}.portal-thp-validation{color:#7c5200;background:#fffbeb;border:1px solid #f1cf83;border-radius:12px;gap:10px;margin:12px 14px;padding:13px 14px;display:grid}.portal-thp-validation>div:first-child,.portal-thp-validation>div:first-child>span,.portal-thp-validation>div:last-child,.portal-thp-validation>div:last-child>span{gap:7px;display:flex}.portal-thp-validation>div:first-child{align-items:flex-start}.portal-thp-validation>div:first-child>span,.portal-thp-validation>div:last-child>span{flex-direction:column;align-items:flex-start}.portal-thp-validation>div:first-child>span{gap:2px}.portal-thp-validation>div:last-child{flex-wrap:wrap}.portal-thp-validation>div:last-child>span{background:#ffffffb3;border-radius:8px;flex:220px;gap:3px;min-width:180px;padding:9px 10px;font-size:12px;line-height:1.5}.portal-thp-validation small{color:#8a6a29;line-height:1.45}.portal-thp-draft-row.requires-resolution{background:#fffdf6;border-left:3px solid #e0a323;grid-template-columns:74px minmax(260px,1fr) 150px minmax(190px,auto)}.portal-thp-draft-row>div{gap:6px;display:grid}.portal-thp-roster-added{color:#936000;background:#fff1cf;border-radius:999px;width:max-content;max-width:100%;padding:4px 7px;font-size:10px;font-weight:900}.portal-thp-draft-row>.portal-thp-resolution-actions{grid-template-columns:1fr;align-self:stretch;gap:6px;display:grid}.portal-thp-resolution-actions button{justify-content:center;align-items:center;gap:6px;min-height:38px;padding:0 10px;font-size:11px;font-weight:850;display:inline-flex}.portal-thp-draft-row>label{grid-template-columns:1fr auto;align-items:center;gap:5px;display:grid}.portal-thp-draft-row>small{grid-column:1/-1}.portal-thp-history{gap:5px;padding:9px;display:grid}.portal-thp-history>div:first-child{justify-content:flex-start;padding:5px 4px 9px}.portal-thp-history>button{width:100%;color:var(--portal-ink);text-align:left;cursor:pointer;background:#f6f9f8;border:1px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.portal-thp-history>button.active{background:#e7f8f3;border-color:#9bd7cd}.portal-thp-history button span{gap:3px;min-width:0;display:grid}.portal-thp-history button small{color:var(--portal-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.portal-thp-history button em{color:#087e70;font-style:normal;font-weight:900}.portal-thp-empty{text-align:center;justify-items:center;gap:8px;padding:56px 20px;display:grid}.portal-thp-player-layer{z-index:90;justify-content:flex-end;display:flex;position:fixed;inset:0}.portal-thp-player-scrim{backdrop-filter:blur(3px);background:#0e1b2070;border:0;position:absolute;inset:0}.portal-thp-player-panel{z-index:1;background:#f6f9f8;width:min(760px,94vw);height:100%;padding:24px;position:relative;overflow:auto;box-shadow:-20px 0 60px #11262b33}.portal-thp-player-metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.portal-thp-chart,.portal-thp-aliases,.portal-thp-point-list{border:1px solid var(--portal-border);background:#fff;border-radius:16px;margin-top:16px;padding:16px}.portal-thp-chart svg{width:100%;min-height:180px;display:block}.portal-thp-chart line{stroke:#e6efed;stroke-width:1px}.portal-thp-chart polyline{fill:none;stroke:#008879;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.portal-thp-chart circle{fill:#008879;stroke:#fff;stroke-width:3px}.portal-thp-chart text{fill:#75858a;font-size:12px}.portal-thp-aliases{gap:12px;display:grid}.portal-thp-aliases>div{flex-wrap:wrap;gap:6px;display:flex}.portal-thp-aliases>div span{color:#42615c;background:#eef5f3;border-radius:999px;padding:5px 8px;font-size:.74rem}.portal-thp-aliases form{grid-template-columns:1fr auto;gap:8px;display:grid}.portal-thp-point-list{padding:0 16px;display:grid}.portal-thp-point-list>div{border-top:1px solid #edf1f1;grid-template-columns:minmax(140px,1fr) 60px 100px 100px;align-items:center;gap:10px;padding:13px 0;display:grid}.portal-thp-point-list>div:first-child{border-top:0}.portal-thp-point-list span{gap:2px;display:grid}.portal-thp-point-list small{color:var(--portal-muted)}.portal-thp-point-list em{font-style:normal;font-weight:900}@media (width<=1100px){.portal-thp-layout{grid-template-columns:1fr}.portal-thp-history{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-thp-history>div:first-child{grid-column:1/-1}}@media (width<=760px){.portal-thp-hero,.portal-thp-toolbar,.portal-thp-form-actions{flex-direction:column;align-items:stretch}.portal-thp-form-grid,.portal-thp-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-thp-actions{justify-content:stretch}.portal-thp-actions>*,.portal-thp-search{width:100%}.portal-thp-table-head{display:none}.portal-thp-row{grid-template-columns:48px minmax(0,1fr) auto;gap:7px 10px;padding:12px 14px}.portal-thp-row>:nth-child(4){grid-column:2}.portal-thp-row>:nth-child(5){grid-area:2/3}.portal-thp-draft-row,.portal-thp-draft-row.requires-resolution{grid-template-columns:64px 1fr}.portal-thp-draft-row>label,.portal-thp-draft-row>button,.portal-thp-draft-row>.portal-thp-resolution-actions{grid-column:2}.portal-thp-history{grid-template-columns:1fr 1fr}}@media (width<=520px){.portal-thp-hero,.portal-thp-import,.portal-thp-player-panel{padding:17px}.portal-thp-metrics,.portal-thp-player-metrics,.portal-thp-history{grid-template-columns:1fr}.portal-thp-history>div:first-child{grid-column:auto}.portal-thp-aliases form{grid-template-columns:1fr}.portal-thp-point-list>div{grid-template-columns:minmax(0,1fr) auto}.portal-thp-point-list>div>:nth-child(3),.portal-thp-point-list>div>:nth-child(4){grid-column:2}}.portal-roster-hub,.portal-roster-workspace,.portal-roster-section-stack{gap:18px;display:grid}.portal-roster-toolbar,.portal-roster-workspace-head,.portal-roster-panel-head,.portal-roster-actions,.portal-roster-head-actions,.portal-roster-form-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.portal-roster-toolbar>div:first-child,.portal-roster-workspace-head>div,.portal-roster-panel-head>div:first-child{min-width:0}.portal-roster-toolbar h2,.portal-roster-workspace-head h2,.portal-roster-panel h3{margin:5px 0}.portal-roster-toolbar h2,.portal-roster-workspace-head h2{letter-spacing:-.04em;font-size:clamp(24px,3vw,38px)}.portal-roster-toolbar p,.portal-roster-workspace-head p,.portal-roster-panel p{color:var(--portal-muted);margin:4px 0 0;line-height:1.6}.portal-roster-cycle-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.portal-roster-cycle-card,.portal-roster-panel,.portal-roster-cycle-form,.portal-roster-empty{border:1px solid var(--portal-line);background:#0e1b17c7;border-radius:16px;box-shadow:0 14px 40px #00000021}.portal-roster-panel,.portal-roster-cycle-form,.portal-roster-empty{color:var(--portal-text)}.portal-roster-panel-head>div:first-child>span,.portal-roster-panel>span:first-child{color:var(--portal-green);letter-spacing:.09em;font-size:10px;font-weight:800}.portal-roster-cycle-card{min-width:0;color:var(--portal-text);text-align:left;cursor:pointer;gap:13px;padding:18px;display:grid}.portal-roster-cycle-card:hover{border-color:#6ee7a861;transform:translateY(-1px)}.portal-roster-cycle-card>div:first-child,.portal-roster-cycle-counts,.portal-roster-policy{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.portal-roster-cycle-card strong{text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.portal-roster-cycle-card time,.portal-roster-cycle-counts{color:var(--portal-muted);font-size:12px}.portal-roster-cycle-counts span{align-items:center;gap:5px;display:inline-flex}.portal-roster-status,.portal-roster-kind,.portal-roster-source-state{width:max-content;color:var(--portal-blue);letter-spacing:.04em;background:#65b9ff12;border:1px solid #65b9ff2e;border-radius:999px;align-items:center;padding:5px 8px;font-size:10px;font-weight:700;display:inline-flex}.portal-roster-kind{color:var(--portal-amber);background:#f4c56b12;border-color:#f4c56b2e}.portal-roster-status-confirmed,.portal-roster-status-completed,.portal-roster-source-state.state-completed{color:var(--portal-green);background:#6ee7a814;border-color:#6ee7a833}.portal-roster-cycle-form{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;padding:18px;display:grid}.portal-roster-cycle-form label,.portal-roster-paste label{color:var(--portal-muted);gap:7px;font-size:12px;display:grid}.portal-roster-cycle-form input,.portal-roster-cycle-form select,.portal-roster-paste textarea,.portal-roster-quick-add input,.portal-roster-participant input,.portal-roster-participant select,.portal-roster-slot select,.portal-roster-attendance select,.portal-roster-panel-head select{width:100%;min-height:40px;color:var(--portal-text);border:1px solid var(--portal-line);background:#030b09ad;border-radius:10px;outline:none}.portal-roster-panel-head>select{flex:0 280px;width:min(100%,280px)}.portal-roster-participant>.portal-roster-participant-main>input,.portal-roster-participant>.portal-roster-participant-main>select{border-radius:8px;min-height:34px}.portal-roster-cycle-form input,.portal-roster-cycle-form select,.portal-roster-quick-add input,.portal-roster-participant input,.portal-roster-participant select,.portal-roster-slot select,.portal-roster-attendance select,.portal-roster-panel-head select{padding:0 10px}.portal-roster-cycle-form input:focus,.portal-roster-cycle-form select:focus,.portal-roster-paste textarea:focus,.portal-roster-participant input:focus,.portal-roster-participant select:focus,.portal-roster-slot select:focus{border-color:#6ee7a885}.portal-roster-form-wide{grid-column:span 2}.portal-roster-grade-policy-form{border:1px solid var(--portal-line);background:#6ee7a806;border-radius:12px;grid-column:1/-1;grid-template-columns:minmax(220px,1.2fr) minmax(220px,1fr) minmax(360px,2fr);align-items:end;gap:12px;min-width:0;margin:0;padding:13px;display:grid}.portal-roster-grade-policy-form legend{color:var(--portal-green);letter-spacing:.05em;padding:0 6px;font-size:11px;font-weight:900}.portal-roster-cycle-form .portal-roster-grade-toggle,.portal-roster-grade-guarantees label,.portal-roster-grade-guarantees>span{align-items:center;gap:8px;display:flex}.portal-roster-grade-toggle span{gap:2px;display:grid}.portal-roster-grade-toggle strong{color:var(--portal-text)}.portal-roster-grade-toggle small{line-height:1.35}.portal-roster-grade-guarantees,.portal-roster-grade-percentages{align-items:end;gap:8px;display:flex}.portal-roster-grade-guarantees>span{min-height:40px;color:var(--portal-green);white-space:nowrap;background:#6ee7a812;border:1px solid #6ee7a847;border-radius:10px;padding:0 11px;font-size:10px;font-weight:850}.portal-roster-grade-percentages label{min-width:58px}.portal-roster-grade-percentages output{border:1px solid var(--portal-line);white-space:nowrap;border-radius:10px;align-items:center;min-height:40px;padding:0 10px;font-size:11px;display:inline-flex}.portal-roster-grade-percentages output.valid{color:var(--portal-green)}.portal-roster-grade-percentages output.invalid{color:var(--portal-red);border-color:#ff6f7d59}.portal-roster-cycle-form .portal-roster-grade-policy-form input[type=checkbox]{width:17px;min-height:17px;accent-color:var(--portal-green);margin:0;padding:0}.portal-roster-form-actions{grid-column:1/-1;justify-content:flex-end}.portal-roster-workspace-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;display:grid}.portal-roster-head-actions{justify-content:flex-end}.portal-roster-summary{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;display:grid}.portal-roster-summary>div{border:1px solid var(--portal-line);background:#ffffff06;border-radius:12px;gap:6px;padding:13px 15px;display:grid}.portal-roster-summary span{color:var(--portal-muted);font-size:11px}.portal-roster-summary-warning{border-color:#f4c56b47!important}.portal-roster-summary-warning strong{color:var(--portal-amber)}.portal-roster-tabs{border:1px solid var(--portal-line);background:#00000029;border-radius:13px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:5px;display:grid}.portal-roster-tabs button{min-height:42px;color:var(--portal-muted);cursor:pointer;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:8px;display:flex}.portal-roster-tabs button.active{color:#06110d;background:var(--portal-green);font-weight:800}.portal-roster-tabs button[data-complete=true]:not(.active){color:var(--portal-green)}.portal-roster-tab-step{border:1px solid;border-radius:999px;flex:none;place-items:center;width:22px;height:22px;font-size:10px;font-weight:900;display:inline-grid}.portal-roster-panel{min-width:0;padding:17px}.portal-roster-source-grid,.portal-roster-teams,.portal-roster-lineup-grid,.portal-roster-output-grid,.portal-roster-attendance{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.portal-roster-upload,.portal-roster-paste{background:#6ee7a809;border:1px dashed #6ee7a84d;border-radius:13px;align-content:center;gap:8px;min-height:180px;padding:18px;display:grid}.portal-roster-upload{color:var(--portal-muted);text-align:center;cursor:pointer;place-items:center}.portal-roster-upload strong,.portal-roster-upload svg{color:var(--portal-green)}.portal-roster-upload input{opacity:0;width:1px;height:1px;position:absolute}.portal-roster-paste textarea{resize:vertical;min-height:100px;padding:10px}.portal-roster-source-list{gap:7px;margin-top:12px;display:grid}.portal-roster-source-list a{color:var(--portal-text);border:1px solid var(--portal-line);border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px;text-decoration:none;display:grid}.portal-roster-source-list small,.portal-roster-source-list em{color:var(--portal-muted)}.portal-roster-source-list em{color:var(--portal-red);grid-column:2/-1;font-size:11px}.portal-roster-quick-add{grid-template-columns:minmax(180px,1fr) 40px;gap:6px;display:grid}.portal-roster-review-board{gap:16px;margin-top:16px;display:grid}.portal-roster-review-scope{color:var(--portal-muted);border:1px solid var(--portal-line);background:#ffffff05;border-radius:10px;align-items:center;gap:7px;margin:14px 0 0;padding:9px 11px;font-size:11px;display:flex}.portal-roster-input-confirm{z-index:6;backdrop-filter:blur(12px);background:#07121ff5;border:1px solid #6ee7a84d;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-top:10px;padding:11px 13px;display:flex;position:sticky;top:10px;box-shadow:0 12px 28px #0000004d}.portal-roster-input-confirm>div{gap:2px;min-width:0;display:grid}.portal-roster-input-confirm span,.portal-roster-input-confirm small{color:var(--portal-muted);font-size:10px}.portal-roster-input-confirm strong{color:var(--portal-text);font-size:14px}.portal-roster-input-confirm>button{flex:none}.portal-roster-review-teams{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.portal-roster-team-review{border:1px solid var(--portal-line);background:#050d1a52;border-radius:17px;min-width:0;overflow:hidden}.portal-roster-team-review.team-a{border-color:#59c7ff4d;box-shadow:inset 3px 0 #59c7ffa6}.portal-roster-team-review.team-b{border-color:#b388ff4d;box-shadow:inset 3px 0 #b388ffa6}.portal-roster-team-review.team-flex{border-color:#f4c56b4d;box-shadow:inset 3px 0 #f4c56ba6}.portal-roster-team-review-head{border-bottom:1px solid var(--portal-line);background:#ffffff06;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;display:flex}.portal-roster-team-review-head>div{gap:2px;display:grid}.portal-roster-team-review-head span{color:var(--portal-muted);letter-spacing:.12em;font-size:9px;font-weight:800}.portal-roster-team-review-head h4{color:var(--portal-text);margin:0;font-size:16px}.portal-roster-team-review-head>strong{min-width:38px;color:var(--portal-text);border:1px solid var(--portal-line);text-align:center;background:#ffffff09;border-radius:999px;padding:4px 8px;font-size:13px}.portal-roster-team-review-groups{gap:6px;padding:6px;display:grid}.portal-roster-team-review.team-flex>.portal-roster-review-group{margin:6px}.portal-roster-team-review.team-flex .portal-roster-table-list{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-roster-review-group{border:1px solid var(--portal-line);background:#ffffff05;border-radius:12px;min-width:0;overflow:hidden}.portal-roster-review-group>header{border-bottom:1px solid var(--portal-line);background:#6ee7a809;justify-content:space-between;align-items:center;gap:12px;padding:6px 8px;display:flex}.portal-roster-review-group>header>div{align-items:center;gap:9px;display:flex}.portal-roster-review-group>header span{font-size:13px;font-weight:800}.portal-roster-review-group>header strong{min-width:28px;color:var(--portal-green);text-align:center;border:1px solid #6ee7a833;border-radius:999px;padding:3px 8px;font-size:11px}.portal-roster-review-group.type-flex>header{background:#f4c56b0f}.portal-roster-review-group.type-flex>header strong{color:var(--portal-amber);border-color:#f4c56b3d}.portal-roster-review-group .portal-roster-table-list{margin:0;padding:4px}.portal-roster-review-group .portal-roster-list-empty{margin:8px}.portal-roster-table-list{gap:3px;margin-top:14px;display:grid}.portal-roster-participant{border:1px solid var(--portal-line);background:#ffffff05;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;padding:4px;display:grid}.portal-roster-participant.needs-review{border-color:#f4c56b66}.portal-roster-participant-main,.portal-roster-row-actions{grid-template-columns:minmax(145px,1fr) 92px 72px minmax(112px,.72fr);gap:4px;display:grid}.portal-roster-grade-select.has-grade{color:var(--portal-green);border-color:#6ee7a84d;font-weight:900}.portal-roster-grade-select.missing-grade{color:var(--portal-amber);border-color:#f4c56b59}.portal-roster-grade-badge{background:var(--portal-green);letter-spacing:0;text-align:center;white-space:nowrap;border:1px solid #07120e80;border-radius:5px;flex:none;justify-content:center;align-items:center;min-width:24px;height:18px;padding:0 5px;font-size:10px;font-style:normal;font-weight:950;line-height:1.2;display:inline-flex;box-shadow:0 0 0 1px #ffffff14;color:#07120e!important}.portal-roster-grade-badge.grade-r5,.portal-roster-grade-badge.grade-r4{background:var(--portal-amber)}.portal-roster-grade-badge.grade-r3{background:#67e8f9;color:#07152a!important}.portal-roster-grade-badge.grade-r2{background:#c084fc;color:#210b35!important}.portal-roster-grade-badge.grade-r1{background:#475569;color:#fff!important}.portal-roster-grade-badge.grade-missing{color:#2b1600;background:#fbbf24}.portal-roster-thp-readonly{min-height:34px;color:var(--portal-muted);border:1px solid var(--portal-line);background:#00000029;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:0 8px;display:flex}.portal-roster-thp-readonly span{letter-spacing:.08em;font-size:9px;font-weight:800}.portal-roster-thp-readonly strong{color:var(--portal-text);font-size:12px}.portal-roster-thp-readonly.missing{border-color:#f4c56b59}.portal-roster-thp-readonly.missing strong{color:var(--portal-amber)}.portal-roster-participant-review{color:var(--portal-muted);flex-wrap:wrap;grid-column:1;align-items:center;gap:3px 7px;font-size:10px;display:flex}.portal-roster-participant-review label{color:var(--portal-text)}.portal-roster-row-actions{grid-area:1/2;grid-template-columns:repeat(2,34px)}.portal-roster-row-actions>button,.portal-roster-verify-button{border-radius:8px;place-items:center;width:34px;min-height:34px;padding:0;display:grid}.portal-roster-verify-button{color:var(--portal-muted);border:1px solid var(--portal-line);cursor:pointer;background:#ffffff06}.portal-roster-verify-button.active{color:#06110d;background:var(--portal-green);border-color:#6ee7a88c}.portal-roster-thp-input{min-width:0;min-height:34px;color:var(--portal-amber);background:#f4c56b09;border:1px solid #f4c56b59;border-radius:8px;align-items:center;gap:4px;padding-left:7px;display:flex}.portal-roster-thp-input>span{font-size:8px;font-weight:850}.portal-roster-thp-input>input{min-width:0;font-size:11px;background:0 0!important;border:0!important;min-height:30px!important;padding:0 4px!important}.portal-roster-thp-match{border:1px solid var(--portal-line);background:#0000001f;border-radius:9px;grid-column:1/-1;gap:7px;min-width:0;padding:7px 9px;display:grid}.portal-roster-thp-match.is-linked{background:#6ee7a809;border-color:#6ee7a833}.portal-roster-thp-match.has-candidates{background:#f4c56b0a;border-color:#f4c56b59}.portal-roster-thp-match-state{min-width:0;color:var(--portal-amber);align-items:center;gap:7px;display:flex}.portal-roster-thp-match.is-linked .portal-roster-thp-match-state{color:var(--portal-green)}.portal-roster-thp-match-state>span{gap:1px;min-width:0;display:grid}.portal-roster-thp-match-state strong{color:var(--portal-text);font-size:11px}.portal-roster-thp-match-state small{color:var(--portal-muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.portal-roster-thp-match details summary{width:max-content;color:var(--portal-muted);cursor:pointer;font-size:9px}.portal-roster-thp-match-action{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;gap:4px;min-width:0;padding-top:2px;display:grid}.portal-roster-thp-match-action select{min-width:0}.portal-roster-thp-match-action button{white-space:nowrap;min-height:34px;padding-inline:8px;font-size:10px}.portal-lock-button,.portal-roster-slot button{min-width:38px;min-height:38px;color:var(--portal-muted);border:1px solid var(--portal-line);cursor:pointer;background:0 0;border-radius:9px;place-items:center;display:grid}.portal-lock-button.active,.portal-roster-slot button.active{color:var(--portal-green);background:#6ee7a814;border-color:#6ee7a859}.portal-roster-policy{margin:14px 0}.portal-roster-grade-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:0 0 14px;display:grid}.portal-roster-grade-summary>div{border:1px solid var(--portal-line);background:#ffffff05;border-radius:9px;justify-content:center;align-items:baseline;gap:5px;padding:8px;display:flex}.portal-roster-grade-summary span,.portal-roster-grade-summary strong{color:var(--portal-green)}.portal-roster-grade-summary span{font-size:10px;font-weight:900}.portal-roster-grade-summary strong{font-size:15px}.portal-roster-grade-summary small{color:var(--portal-muted);font-size:10px}.portal-roster-selection-reason{width:max-content;color:var(--portal-green);margin-top:3px;font-size:9px;font-style:normal}.portal-roster-recommendation-head{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.portal-roster-recommendation-head>div:first-child{min-width:0}.portal-roster-readiness{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px;display:grid}.portal-roster-readiness>div{min-width:0;color:var(--portal-muted);border:1px solid var(--portal-line);background:#ffffff05;border-radius:11px;grid-template-columns:30px minmax(0,1fr);gap:1px 9px;padding:11px;display:grid}.portal-roster-readiness>div>span{border:1px solid var(--portal-line);border-radius:999px;grid-row:1/3;place-items:center;width:28px;height:28px;font-size:11px;font-weight:900;display:grid}.portal-roster-readiness strong{color:var(--portal-text);font-size:12px}.portal-roster-readiness small{text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.portal-roster-readiness>div.complete{color:var(--portal-green);background:#6ee7a80b;border-color:#6ee7a847}.portal-roster-readiness>div.current{color:var(--portal-blue);border-color:#65b9ff47}.portal-roster-readiness>div.warning{color:var(--portal-amber);border-color:#f4c56b4d}.portal-roster-policy span{color:var(--portal-muted);border:1px solid var(--portal-line);border-radius:9px;align-items:center;gap:6px;padding:8px 10px;font-size:11px;display:inline-flex}.portal-roster-warning-list{color:var(--portal-amber);gap:5px;margin-top:12px;font-size:12px;display:grid}.portal-roster-balance-panel .portal-roster-panel-head{align-items:flex-start}.portal-roster-balance-delta{justify-items:end;gap:2px;min-width:154px;display:grid}.portal-roster-balance-delta span,.portal-roster-balance-delta small{color:var(--portal-muted);font-size:10px}.portal-roster-balance-delta strong{color:var(--portal-amber);font-size:20px}.portal-roster-balance-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px;display:grid}.portal-roster-balance-grid button{min-width:0;color:var(--portal-text);border:1px solid var(--portal-line);text-align:left;cursor:pointer;background:#ffffff05;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:13px;display:grid}.portal-roster-balance-grid button.active{background:#6ee7a812;border-color:#6ee7a87a;box-shadow:inset 0 0 0 1px #6ee7a814}.portal-roster-balance-grid span,.portal-roster-balance-grid strong{font-weight:850}.portal-roster-balance-grid strong,.portal-roster-balance-grid em{text-align:right}.portal-roster-balance-grid small,.portal-roster-balance-grid em{color:var(--portal-muted);font-size:10px;font-style:normal}.portal-roster-desert-guide{grid-template-columns:9fr 4fr 7fr;gap:8px;display:grid}.portal-roster-desert-guide>div{border:1px solid var(--portal-line);background:#ffffff05;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;min-width:0;padding:12px 14px;display:grid}.portal-roster-desert-guide strong{color:var(--portal-green);font-size:12px}.portal-roster-desert-guide span{color:var(--portal-amber);font-size:11px;font-weight:800}.portal-roster-desert-guide small{color:var(--portal-muted);grid-column:1/-1;font-size:10px;line-height:1.5}.portal-roster-team-count{gap:8px;display:flex}.portal-roster-team-count strong{min-width:68px;color:var(--portal-green);text-align:center;border:1px solid #6ee7a833;border-radius:10px;padding:9px 11px;font-size:18px}.portal-roster-team-count small{color:var(--portal-muted);font-size:10px}.portal-roster-role-groups{grid-template-columns:1fr;align-items:start;gap:9px;margin-top:15px;display:grid}.portal-roster-role-switch{border:1px solid var(--portal-line);background:#00000024;border-radius:11px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:15px;padding:4px;display:grid}.portal-roster-role-switch button{min-width:0;min-height:39px;color:var(--portal-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 10px;display:flex}.portal-roster-role-switch button.active{color:#06110d;background:var(--portal-green);font-weight:850}.portal-roster-role-switch small{opacity:.72;font-size:9px}.portal-roster-role-group{border:1px solid var(--portal-line);background:#ffffff04;border-radius:12px;min-width:0;overflow:hidden}.portal-roster-role-group>header{border-bottom:1px solid var(--portal-line);background:#6ee7a809;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:7px 9px;display:grid}.portal-roster-role-group>header span{color:var(--portal-green);font-size:12px;font-weight:850}.portal-roster-role-group>header small,.portal-roster-role-group>header strong{color:var(--portal-muted);font-size:10px}.portal-roster-role-group>div{gap:3px;padding:4px;display:grid}.portal-roster-role-group.role-substitute{margin-top:10px}.portal-roster-role-group.role-substitute>header{background:#65b9ff0b}.portal-roster-role-group.role-substitute>header span{color:var(--portal-blue)}.portal-roster-selection-player{background:#0000001a;border:1px solid #0000;border-radius:9px;grid-template-columns:minmax(240px,.8fr) minmax(530px,1.2fr);align-items:center;gap:6px;min-width:0;padding:4px;display:grid}.portal-roster-selection-player.dirty{background:#f4c56b09;border-color:#f4c56b52}.portal-roster-selection-identity{grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;display:grid}.portal-roster-selection-identity>b{width:27px;height:27px;color:var(--portal-muted);border:1px solid var(--portal-line);border-radius:8px;place-items:center;font-size:10px;display:grid}.portal-roster-selection-identity>span{gap:2px;min-width:0;display:grid}.portal-roster-selection-identity>span strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.portal-roster-selection-identity small{color:var(--portal-muted);font-size:9px}.portal-roster-selection-identity em{color:var(--portal-green);white-space:nowrap;border:1px solid #6ee7a833;border-radius:999px;padding:4px 6px;font-size:8px;font-style:normal}.portal-roster-selection-controls{grid-template-columns:minmax(105px,1fr) minmax(80px,.7fr) 74px 38px minmax(78px,auto);align-items:end;gap:5px;min-width:0;display:grid}.portal-roster-selection-controls select,.portal-roster-selection-controls input{width:100%;min-height:33px;color:var(--portal-text);border:1px solid var(--portal-line);background:#030b09ad;border-radius:9px;padding:0 8px}.portal-roster-selection-controls label{gap:2px;display:grid}.portal-roster-selection-controls label span{color:var(--portal-muted);font-size:8px}.portal-roster-selection-save{justify-content:center;min-height:33px}.portal-roster-eligibility-search{min-width:min(100%,250px);min-height:38px;color:var(--portal-muted);border:1px solid var(--portal-line);background:#030b09ad;border-radius:10px;align-items:center;gap:7px;padding:0 10px;display:flex}.portal-roster-eligibility-search input{width:100%;min-width:0;color:var(--portal-text);background:0 0;border:0;outline:0}.portal-roster-eligibility-panel>.portal-roster-exclusion-add{margin-top:14px}.portal-roster-eligibility-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.portal-roster-eligibility-grid>details,.portal-roster-previous-exclusions{border:1px solid var(--portal-line);background:#0000001a;border-radius:11px;min-width:0;overflow:hidden}.portal-roster-eligibility-grid summary,.portal-roster-previous-exclusions summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:10px 11px;list-style:none;display:flex}.portal-roster-eligibility-grid summary::-webkit-details-marker{display:none}.portal-roster-previous-exclusions summary::-webkit-details-marker{display:none}.portal-roster-eligibility-grid summary>span,.portal-roster-previous-exclusions summary>span{gap:2px;min-width:0;display:grid}.portal-roster-eligibility-grid summary small,.portal-roster-previous-exclusions summary small{color:var(--portal-muted);font-size:10px}.portal-roster-eligibility-grid summary em,.portal-roster-previous-exclusions summary em{min-width:32px;color:var(--portal-green);text-align:center;border:1px solid #6ee7a833;border-radius:999px;padding:4px 8px;font-size:10px;font-style:normal}.portal-roster-eligibility-list{border-top:1px solid var(--portal-line);gap:3px;max-height:480px;padding:4px;display:grid;overflow:auto}.portal-roster-eligibility-list>div:not(.portal-roster-list-empty){background:#ffffff05;border:1px solid #0000;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;min-width:0;padding:6px;display:grid}.portal-roster-eligibility-list>div.excluded{background:#ff806d09;border-color:#ff806d40}.portal-roster-eligibility-identity{gap:2px;min-width:0;display:grid}.portal-roster-eligibility-identity strong,.portal-roster-eligibility-identity>small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.portal-roster-eligibility-identity strong{font-size:12px}.portal-roster-eligibility-identity>small{color:var(--portal-muted);font-size:9px}.portal-roster-player-name{flex-wrap:wrap;align-items:center;gap:5px;min-width:0;display:flex}.portal-roster-player-name>strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.portal-roster-history-badge,.portal-roster-selection-identity .portal-roster-history-badge{width:max-content;color:var(--portal-blue);white-space:nowrap;background:#65b9ff0d;border:1px solid #65b9ff40;border-radius:999px;flex:none;padding:2px 5px;font-size:8px;font-style:normal}.portal-roster-reason-list{flex-wrap:wrap;gap:3px;display:flex}.portal-roster-reason-list em,.portal-roster-eligibility-state{width:max-content;color:var(--portal-amber);border:1px solid #f4c56b33;border-radius:999px;padding:2px 5px;font-size:8px;font-style:normal}.portal-roster-eligibility-state.state-starter,.portal-roster-eligibility-state.state-substitute{color:var(--portal-green);border-color:#6ee7a838}.portal-roster-eligibility-state.state-excluded{color:var(--portal-red);border-color:#ff806d42}.portal-roster-eligibility-list button{white-space:nowrap;min-height:30px;padding:0 8px;font-size:9px}.portal-roster-eligibility-actions{justify-content:flex-end;gap:5px;display:flex}.portal-roster-eligibility-list>div.promoting{background:#6ee7a809;border-color:#6ee7a847}.portal-roster-promotion-form{border-top:1px solid var(--portal-line);grid-column:1/-1;grid-template-columns:minmax(150px,.65fr) minmax(220px,1.35fr) auto;align-items:end;gap:8px;padding:9px;display:grid}.portal-roster-promotion-form>label{gap:4px;min-width:0;display:grid}.portal-roster-promotion-form>label>span{color:var(--portal-muted);font-size:9px}.portal-roster-promotion-form select,.portal-roster-promotion-form input:not([type=checkbox]){width:100%;min-width:0;min-height:34px;color:var(--portal-text);border:1px solid var(--portal-line);background:#030b09b8;border-radius:8px;outline:0;padding:0 9px}.portal-roster-promotion-form .portal-roster-promotion-release{grid-column:1/-1;align-items:center;gap:7px;display:flex}.portal-roster-promotion-form .portal-roster-promotion-release input{width:15px;height:15px}.portal-roster-promotion-form>p{color:var(--portal-amber);grid-column:1/-1;align-items:center;gap:6px;margin:0;font-size:10px;display:flex}.portal-roster-promotion-form>div{justify-content:flex-end;gap:6px;display:flex}.portal-roster-previous-exclusions{margin-top:10px}.portal-roster-previous-exclusions .portal-roster-exclusions{border-top:1px solid var(--portal-line);margin:0;padding:4px}.portal-roster-exclusions>div>span>span{gap:2px;min-width:0;display:grid}.portal-roster-exclusions>div>span small{color:var(--portal-muted);font-size:9px}.portal-roster-candidate-pool>summary,.portal-roster-exclusion-panel>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;list-style:none;display:flex}.portal-roster-candidate-pool>summary::-webkit-details-marker{display:none}.portal-roster-exclusion-panel>summary::-webkit-details-marker{display:none}.portal-roster-candidate-pool>summary>span,.portal-roster-exclusion-panel>summary>span{gap:3px;display:grid}.portal-roster-candidate-pool>summary small,.portal-roster-exclusion-panel>summary small{color:var(--portal-muted);font-size:11px}.portal-roster-candidate-pool>summary em,.portal-roster-exclusion-panel>summary em{min-width:32px;color:var(--portal-green);text-align:center;border:1px solid #6ee7a833;border-radius:999px;padding:5px 9px;font-size:11px;font-style:normal}.portal-roster-candidate-pool[open]>summary,.portal-roster-exclusion-panel[open]>summary{border-bottom:1px solid var(--portal-line);padding-bottom:13px}.portal-roster-candidate-pool>div,.portal-roster-exclusion-content{gap:6px;padding-top:10px;display:grid}.portal-roster-teams ol{gap:2px;margin:8px 0 14px;padding-left:28px;display:grid}.portal-roster-teams li{border-bottom:1px solid #ffffff0b;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:5px 2px;display:grid}.portal-roster-teams li small{color:var(--portal-muted)}.portal-roster-exclusions{gap:7px;margin-top:12px;display:grid}.portal-roster-exclusion-add{grid-template-columns:minmax(150px,220px) auto;gap:7px;display:grid}.portal-roster-exclusion-add input{min-height:40px;color:var(--portal-text);border:1px solid var(--portal-line);background:#030b09ad;border-radius:10px;padding:0 10px}.portal-roster-list-empty{color:var(--portal-muted);border:1px dashed var(--portal-line);border-radius:10px;margin-top:12px;padding:12px;font-size:12px}.portal-roster-exclusions>div,.portal-roster-exclusions>div>span{align-items:center;gap:8px;display:flex}.portal-roster-exclusions>div{border:1px solid #ff806d38;border-radius:9px;justify-content:space-between;padding:9px}.portal-roster-exclusions svg{color:var(--portal-red)}.portal-roster-lineup-group{border:1px solid var(--portal-line);background:#ffffff04;border-radius:12px;gap:6px;min-width:0;margin-top:0;padding:11px;display:grid}.portal-roster-lineup-group header{grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:8px;margin-bottom:3px;display:grid}.portal-roster-lineup-group h4{color:var(--portal-amber);margin:3px 0;font-size:12px;line-height:1.5}.portal-roster-lineup-group header span,.portal-roster-lineup-group header strong{color:var(--portal-muted);white-space:nowrap;font-size:9px}.portal-roster-lineup-group>div{gap:6px;display:grid}.portal-roster-slot{border:1px solid #0000;border-radius:9px;grid-template-columns:76px minmax(0,1fr) 54px 82px;align-items:center;gap:7px;padding:4px 5px;transition:border-color .14s,background .14s,transform .14s;display:grid}.portal-roster-slot[tabindex="0"]{cursor:pointer}.portal-roster-slot[tabindex="0"]:hover{background:#6ee7a80e;border-color:#6ee7a847}.portal-roster-slot[tabindex="0"]:focus-visible{outline:2px solid var(--portal-green);outline-offset:2px}.portal-roster-slot.swap-selected{border-color:var(--portal-green);background:#6ee7a81f;box-shadow:0 0 0 2px #6ee7a81a}.portal-roster-slot>span{color:var(--portal-muted);font-size:11px}.portal-roster-slot>small{color:var(--portal-muted);text-align:right;font-size:9px}.portal-roster-slot-actions{justify-content:flex-end;gap:4px;display:flex}.portal-roster-slot-actions button{min-width:36px;min-height:34px}.portal-roster-lineup-overview .portal-roster-panel-head{align-items:flex-start}.portal-roster-lineup-quick-help{color:var(--portal-muted);margin-top:4px;font-size:10px;line-height:1.45;display:block}.portal-roster-team-switch{border:1px solid var(--portal-line);background:#00000029;border-radius:11px;grid-template-columns:repeat(2,minmax(90px,1fr));gap:5px;padding:4px;display:grid}.portal-roster-team-switch button{min-height:36px;color:var(--portal-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 14px}.portal-roster-team-switch button.active{color:#06110d;background:var(--portal-green);font-weight:850}.portal-roster-lineup-toolbar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;display:flex}.portal-roster-lineup-role-strip{grid-template-columns:9fr 4fr 7fr;gap:7px;margin-top:14px;display:grid}.portal-roster-lineup-overview .portal-roster-desert-guide{margin-top:14px}.portal-roster-lineup-role-strip span{color:var(--portal-green);background:#6ee7a809;border:1px solid #6ee7a82e;border-radius:9px;justify-content:space-between;gap:8px;padding:9px 11px;font-size:10px;display:flex}.portal-roster-lineup-role-strip small{color:var(--portal-muted)}.portal-roster-layout-editor{background:#6ee7a809;border:1px dashed #6ee7a852;border-radius:11px;gap:10px;margin-top:15px;padding:12px;display:grid}.portal-roster-layout-invalid{color:var(--portal-red);align-items:center;gap:8px;display:flex}.portal-roster-layout-preview{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.portal-roster-layout-preview-group{border:1px solid var(--portal-line);background:#0000001f;border-radius:9px;gap:5px;padding:9px;display:grid}.portal-roster-layout-preview-group>div{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.portal-roster-layout-preview-group strong{color:var(--portal-text);font-size:11px}.portal-roster-layout-preview-group span,.portal-roster-layout-preview-group p{color:var(--portal-muted);font-size:10px}.portal-roster-layout-preview-group p{margin:0;line-height:1.45}.portal-roster-layout-editor-head,.portal-roster-layout-group-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.portal-roster-layout-editor-head>div,.portal-roster-layout-group-head label{gap:3px;display:grid}.portal-roster-layout-editor-head strong{color:var(--portal-green);font-size:12px}.portal-roster-layout-editor-head small{color:var(--portal-muted);font-size:10px}.portal-roster-layout-editor-head>span{color:var(--portal-green);font-size:12px;font-weight:850}.portal-roster-layout-editor-head>span.invalid{color:var(--portal-red)}.portal-roster-layout-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.portal-roster-layout-group{border:1px solid var(--portal-line);background:#0000001f;border-radius:9px;gap:8px;padding:9px;display:grid}.portal-roster-layout-group-head>input,.portal-roster-layout-group-head label input,.portal-roster-layout-role-grid select{min-width:0;min-height:32px;color:var(--portal-text);border:1px solid var(--portal-line);background:#0003;border-radius:7px;padding:0 8px}.portal-roster-layout-group-head>input{flex:1}.portal-roster-layout-group-head label{color:var(--portal-muted);grid-template-columns:auto 50px;align-items:center;font-size:10px}.portal-roster-layout-group-head label input{width:50px}.portal-roster-layout-role-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;display:grid}.portal-roster-layout-rank-hint{min-height:32px;color:var(--portal-muted);align-items:center;font-size:10px;line-height:1.45;display:flex}.portal-roster-layout-rank-editor{color:var(--portal-muted);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:5px 8px;font-size:10px;display:grid}.portal-roster-layout-rank-editor input{min-width:0;min-height:32px;color:var(--portal-text);border:1px solid var(--portal-line);background:#0003;border-radius:7px;padding:0 8px}.portal-roster-layout-rank-editor small{grid-column:1/-1;line-height:1.45}.portal-roster-layout-role-grid select{width:100%;font-size:10px}.portal-roster-lineup-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px;display:grid}.portal-roster-lineup-actions{z-index:4;color:var(--portal-muted);border:1px solid var(--portal-line);backdrop-filter:blur(12px);background:#07100ef5;border-radius:13px;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px;display:flex;position:sticky;bottom:12px;box-shadow:0 12px 32px #0000004d}.portal-roster-lineup-actions.dirty{color:var(--portal-amber);border-color:#f4c56b52}.portal-roster-lineup-actions>div{gap:7px;display:flex}.portal-roster-output pre{color:#dfece6;border:1px solid var(--portal-line);white-space:pre-wrap;background:#07100e;border-radius:11px;max-height:560px;margin:13px 0 0;padding:14px;font-family:IBM Plex Mono,Noto Sans KR,monospace;font-size:12px;line-height:1.65;overflow:auto}.portal-roster-output .portal-roster-panel-head>div:last-child,.portal-roster-tsv .portal-roster-panel-head>div:last-child{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.portal-roster-attendance>div{align-content:start;gap:5px;display:grid}.portal-roster-attendance label{border-bottom:1px solid var(--portal-line);grid-template-columns:minmax(0,1fr) 160px;align-items:center;gap:8px;padding:8px;display:grid}.portal-roster-attendance label>span{gap:2px;min-width:0;display:grid}.portal-roster-attendance small{color:var(--portal-muted)}.portal-roster-attendance-status{border:1px solid var(--portal-line);color:var(--portal-muted);white-space:nowrap;background:#ffffff0a;border-radius:999px;justify-self:end;padding:7px 10px;font-size:11px}.portal-roster-attendance-status.state-attended,.portal-roster-attendance-status.state-substitute_attended{color:var(--portal-green);border-color:#2dd4bf47}.portal-roster-attendance-status.state-no_show{color:var(--portal-red);border-color:#ff6f7d4d}.portal-roster-attendance-status.state-excused,.portal-roster-attendance-status.state-substitute_waited{color:var(--portal-amber);border-color:#f0a63a4d}.portal-roster-empty{min-height:150px;color:var(--portal-muted);text-align:center;justify-content:center;align-items:center;gap:10px;padding:20px;display:flex}@media (width<=1280px){.portal-roster-cycle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-roster-participant{grid-template-columns:1fr auto}.portal-roster-participant-main,.portal-roster-participant-selection{grid-column:1}.portal-roster-participant-review{grid-area:auto/1/auto/2}.portal-roster-row-actions{grid-area:1/2}}@media (width<=1100px){.portal-roster-review-teams,.portal-roster-team-review.team-flex .portal-roster-table-list,.portal-roster-eligibility-grid{grid-template-columns:1fr}}@media (width<=860px){.portal-roster-grade-policy-form{grid-template-columns:1fr;align-items:stretch}.portal-roster-grade-guarantees,.portal-roster-grade-percentages{flex-wrap:wrap}.portal-roster-input-confirm{flex-direction:column;align-items:stretch}.portal-roster-input-confirm>button{width:100%}.portal-roster-toolbar,.portal-roster-panel-head{flex-direction:column;align-items:stretch}.portal-roster-panel-head>select{flex-basis:auto;width:100%}.portal-roster-recommendation-head{flex-direction:column;align-items:stretch}.portal-roster-readiness,.portal-roster-desert-guide,.portal-roster-lineup-role-strip,.portal-roster-selection-player,.portal-roster-lineup-groups,.portal-roster-layout-groups,.portal-roster-layout-preview{grid-template-columns:1fr}.portal-roster-layout-role-grid,.portal-roster-promotion-form{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-roster-promotion-form>div{grid-column:1/-1}.portal-roster-workspace-head{grid-template-columns:1fr}.portal-roster-workspace-head>button{width:max-content}.portal-roster-head-actions{justify-content:flex-start}.portal-roster-cycle-form,.portal-roster-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-roster-source-grid,.portal-roster-teams,.portal-roster-lineup-grid,.portal-roster-output-grid,.portal-roster-attendance,.portal-roster-participant{grid-template-columns:1fr}.portal-roster-participant-review{grid-area:auto}.portal-roster-row-actions{grid-area:auto;justify-content:end}.portal-roster-thp-match{grid-column:auto}}@media (width<=560px){.portal-roster-grade-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.portal-roster-grade-summary>div{justify-items:center;gap:1px;padding:6px 3px;display:grid}.portal-roster-eligibility-search{width:100%}.portal-roster-eligibility-list>div:not(.portal-roster-list-empty){grid-template-columns:minmax(0,1fr) auto}.portal-roster-eligibility-identity{grid-column:1/-1}.portal-roster-eligibility-actions{flex-wrap:wrap}.portal-roster-promotion-form{grid-template-columns:1fr}.portal-roster-promotion-form>div{width:100%}.portal-roster-promotion-form>div>button{flex:1 1 0}.portal-roster-cycle-grid,.portal-roster-cycle-form{grid-template-columns:1fr}.portal-roster-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-roster-summary>div{padding:10px 12px}.portal-roster-form-wide{grid-column:auto}.portal-roster-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-roster-tabs button{padding:7px;font-size:11px}.portal-roster-tab-step{width:19px;height:19px}.portal-roster-readiness,.portal-roster-balance-grid{grid-template-columns:1fr}.portal-roster-balance-delta{justify-items:start}.portal-roster-team-count{width:100%}.portal-roster-team-count strong{flex:1}.portal-roster-selection-controls{grid-template-columns:1fr 1fr}.portal-roster-role-switch{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-roster-selection-controls label,.portal-roster-selection-save{grid-column:span 1}.portal-roster-selection-controls .portal-lock-button{width:100%}.portal-roster-selection-save span{display:inline}.portal-roster-lineup-actions{flex-direction:column;align-items:stretch}.portal-roster-lineup-actions>div{grid-template-columns:1fr 1fr;display:grid}.portal-roster-team-switch{width:100%}.portal-roster-panel,.portal-roster-cycle-form,.portal-roster-cycle-card{padding:13px}.portal-roster-participant-main{grid-template-columns:minmax(100px,1fr) 68px 62px minmax(88px,.8fr)}.portal-roster-participant-main input:first-child,.portal-roster-participant-main select{grid-column:auto}.portal-roster-thp-match-action{grid-template-columns:1fr}.portal-roster-thp-match-action button{width:100%}.portal-roster-quick-add{grid-template-columns:1fr 40px}.portal-roster-review-group>header{flex-direction:column;align-items:stretch}.portal-roster-source-list a{grid-template-columns:auto minmax(0,1fr)}.portal-roster-source-list small{grid-column:2}.portal-roster-attendance label{grid-template-columns:minmax(0,1fr) 138px}.portal-roster-exclusion-add{grid-template-columns:1fr}}.portal-schedule-dashboard,.portal-schedule-week,.portal-schedule-manager,.portal-schedule-detail,.portal-schedule-comparison-section{background:#ffffffbd;border:1px solid #94a3b838;border-radius:14px;width:100%;min-width:0;max-width:100%;padding:22px;box-shadow:0 4px 14px #0f172a0a}.portal-upcoming-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px;display:grid}.portal-upcoming-card{color:#17202b;text-align:left;cursor:pointer;background:#f8fafccc;border:1px solid #94a3b838;border-radius:10px;align-content:start;gap:7px;min-height:108px;padding:15px;transition:all .16s;display:grid}.portal-upcoming-card:hover,.portal-schedule-event:hover,.portal-schedule-list>button:hover{background:#fff;border-color:#0f766e57;transform:translateY(-1px)}.portal-upcoming-card>span,.portal-schedule-event>span,.portal-schedule-list>button>div>span{color:#0f766e;letter-spacing:.08em;text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:800}.portal-upcoming-card>strong{font-size:14px}.portal-upcoming-card>small{color:#64748b;align-items:center;gap:6px;font-size:10px;display:flex}.portal-schedule-hero{background:radial-gradient(circle at 92% 18%,#2dd4bf21,#0000 22rem),#ffffffc7;border:1px solid #0f766e2e;border-radius:14px;grid-template-columns:minmax(0,1fr) minmax(390px,440px);align-items:center;gap:clamp(28px,5vw,72px);width:100%;min-width:0;max-width:100%;min-height:0;padding:24px 26px;display:grid;position:relative;overflow:hidden}.portal-schedule-hero h2{letter-spacing:-.035em;margin:6px 0;font-size:clamp(27px,3vw,36px)}.portal-schedule-hero p{color:#64748b;max-width:620px;margin:0;font-size:12px;line-height:1.65}.portal-schedule-tools,.portal-week-controls,.portal-schedule-meta,.portal-inline-link{align-items:center;gap:8px;display:flex}.portal-schedule-tools{background:#ffffff8f;border:1px solid #94a3b833;border-radius:11px;grid-template-columns:minmax(180px,1fr) auto;align-items:end;gap:10px;padding:12px;display:grid;box-shadow:0 8px 24px #0f172a0a}.portal-schedule-tool-actions{align-items:center;gap:8px;display:flex}.portal-schedule-tool-actions>button{white-space:nowrap;min-height:40px}.portal-schedule-tools label,.portal-schedule-source-grid label,.portal-schedule-fields label,.portal-schedule-scope label,.portal-schedule-editor .portal-locale-panel label{color:#475569;gap:6px;font-size:10px;font-weight:800;display:grid}.portal-schedule-tools select,.portal-schedule-source-grid input,.portal-schedule-source-grid textarea,.portal-schedule-source-grid select,.portal-schedule-fields input,.portal-schedule-fields select,.portal-schedule-scope input,.portal-schedule-scope select,.portal-schedule-editor .portal-locale-panel input,.portal-schedule-editor .portal-locale-panel textarea,.portal-schedule-filters input,.portal-schedule-filters select{color:#111827;background:#f8fafcdb;border:1px solid #94a3b84d;border-radius:7px;outline:none;width:100%;min-height:40px;padding:0 10px}.portal-schedule-source-grid textarea,.portal-schedule-editor .portal-locale-panel textarea{resize:vertical;min-height:92px;padding:10px}.portal-schedule-tools select:focus,.portal-schedule-source-grid input:focus,.portal-schedule-source-grid textarea:focus,.portal-schedule-fields input:focus,.portal-schedule-fields select:focus,.portal-schedule-scope input:focus,.portal-schedule-scope select:focus,.portal-schedule-editor .portal-locale-panel input:focus,.portal-schedule-editor .portal-locale-panel textarea:focus,.portal-schedule-filters input:focus,.portal-schedule-filters select:focus{border-color:#0f766e80;box-shadow:0 0 0 3px #0f766e12}.portal-schedule-tools label{min-width:0}.portal-week-controls{flex-wrap:wrap;justify-content:flex-end}.portal-week-controls button{color:#475569;cursor:pointer;background:#f8fafcc2;border:1px solid #94a3b83d;border-radius:7px;align-items:center;gap:5px;min-height:34px;padding:0 10px;display:inline-flex}.portal-week-grid{scrollbar-width:thin;grid-template-columns:repeat(7,minmax(116px,1fr));gap:7px;width:100%;min-width:0;max-width:100%;margin-top:17px;display:grid;overflow-x:auto}.portal-day-column{background:#f8fafca8;border:1px solid #94a3b833;border-radius:9px;min-height:250px}.portal-day-column>header{color:#64748b;border-bottom:1px solid #94a3b82e;justify-content:space-between;align-items:center;gap:6px;padding:10px;font-size:9px;display:flex}.portal-day-column>header strong{color:#334155;font-family:IBM Plex Mono,monospace;font-size:10px}.portal-day-column>div{align-content:start;gap:6px;padding:7px;display:grid}.portal-day-today{background:#ccfbf140;border-color:#0f766e6b}.portal-day-today>header{color:#0f766e;background:#0f766e0e}.portal-schedule-event{color:#17202b;text-align:left;cursor:pointer;background:#ffffffdb;border:1px solid #0f766e29;border-radius:7px;gap:4px;padding:9px;transition:all .16s;display:grid}.portal-schedule-event>strong{font-size:10px;line-height:1.35}.portal-schedule-event>small{color:#64748b;font-size:8px;line-height:1.35}.portal-day-empty{color:#cbd5e1;text-align:center;padding:22px 0;display:block}.portal-schedule-list{gap:8px;margin-top:15px;display:grid}.portal-schedule-list>button,.portal-schedule-detail-occurrence{color:#17202b;text-align:left;background:#ffffffbd;border:1px solid #94a3b838;border-radius:9px;grid-template-columns:minmax(180px,1fr) minmax(440px,2fr);align-items:center;gap:15px;width:100%;padding:13px 15px;transition:all .16s;display:grid}.portal-schedule-list>button>div:first-child{gap:4px;min-width:0;display:grid}.portal-schedule-list>button strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.portal-time-comparison{grid-template-columns:repeat(4,minmax(90px,1fr));gap:6px;display:grid}.portal-time-comparison>span{color:#475569;gap:2px;font-size:9px;line-height:1.35;display:grid}.portal-time-comparison b{color:#0f766e;font-family:IBM Plex Mono,monospace;font-size:8px}.portal-schedule-detail{grid-template-columns:minmax(0,260px) minmax(0,1fr);align-items:center;gap:24px;display:grid}.portal-schedule-detail>img{aspect-ratio:16/10;object-fit:cover;border-radius:10px;width:100%}.portal-schedule-detail h2{margin:7px 0 9px;font-size:clamp(25px,4vw,38px)}.portal-schedule-detail p{color:#475569;white-space:pre-line;margin:0 0 15px;line-height:1.75}.portal-schedule-meta{color:#64748b;flex-wrap:wrap;font-size:10px}.portal-schedule-meta>span{background:#f8fafcc7;border:1px solid #94a3b833;border-radius:999px;align-items:center;gap:5px;padding:6px 8px;display:inline-flex}.portal-inline-link{color:#0f766e;width:fit-content;margin-top:12px;font-size:11px;font-weight:800;text-decoration:none}.portal-schedule-manager{border-color:#0f766e40;gap:17px;display:grid}.portal-schedule-admin-layout{grid-template-columns:minmax(270px,.76fr) minmax(0,2fr);align-items:start;gap:16px;display:grid}.portal-schedule-admin-list,.portal-schedule-editor{background:#f8fafca6;border:1px solid #94a3b838;border-radius:10px;min-width:0}.portal-schedule-admin-list{position:sticky;top:18px;overflow:hidden}.portal-schedule-list-label{color:#334155;background:#ffffff94;border-bottom:1px solid #94a3b833;justify-content:space-between;align-items:center;gap:10px;min-height:44px;padding:0 12px;font-size:11px;display:flex}.portal-schedule-list-label>span{color:#0f766e;text-align:center;background:#0f766e14;border-radius:999px;min-width:24px;padding:3px 7px;font-family:IBM Plex Mono,monospace;font-size:9px}.portal-schedule-filters{border-bottom:1px solid #94a3b833;gap:7px;padding:10px;display:grid}.portal-schedule-admin-items{align-content:start;max-height:850px;display:grid;overflow:auto}.portal-schedule-admin-items>button{color:#334155;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #94a3b829;justify-items:start;gap:5px;min-height:78px;padding:11px;display:grid}.portal-schedule-admin-items>button:hover,.portal-schedule-admin-items>button.active{background:#0f766e13}.portal-schedule-admin-items>button.active{box-shadow:inset 3px 0 #0f766e}.portal-schedule-admin-items strong{font-size:11px}.portal-schedule-admin-items small{color:#64748b;font-size:9px}.portal-schedule-editor{align-content:start;gap:18px;min-height:480px;padding:18px;display:grid}.portal-schedule-editor>.portal-section-actions{border-bottom:1px solid #94a3b829;padding-bottom:4px}.portal-schedule-editor>.portal-section-actions h3{margin:5px 0 10px;font-size:20px}.portal-schedule-editor-section-title{justify-content:space-between;align-items:end;gap:12px;padding-top:4px;display:flex}.portal-schedule-editor-section-title>div{align-items:center;gap:8px;display:flex}.portal-schedule-editor-section-title>div>span{color:#0f766e;background:#0f766e14;border-radius:7px;place-items:center;min-width:25px;height:25px;font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:800;display:grid}.portal-schedule-editor-section-title strong{color:#334155;font-size:12px}.portal-schedule-editor-section-title small{color:#64748b;text-align:right;font-size:9px;line-height:1.45}.portal-schedule-language-tabs{background:#e2e8f06b;border:1px solid #94a3b833;border-radius:9px;align-items:center;gap:7px;padding:5px;display:flex}.portal-schedule-language-tabs button{color:#64748b;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:7px;min-width:84px;min-height:35px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:800;display:inline-flex}.portal-schedule-language-tabs button>i{background:#cbd5e1;border-radius:50%;width:6px;height:6px}.portal-schedule-language-tabs button.complete svg{color:#0f766e}.portal-schedule-language-tabs button.active{color:#0f766e;background:#fff;border-color:#0f766e33;box-shadow:0 2px 7px #0f172a0f}.portal-schedule-language-panel{padding:14px}.portal-schedule-source-grid,.portal-schedule-fields,.portal-schedule-scope{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.portal-span-full{grid-column:1/-1}.portal-schedule-media,.portal-weekday-picker{background:#ffffffa3;border:1px solid #94a3b833;border-radius:8px;gap:9px;padding:12px;display:grid}.portal-schedule-media>strong,.portal-weekday-picker>strong{color:#475569;font-size:10px}.portal-schedule-media-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.portal-schedule-media-search{color:#111827;background:#f8fafcdb;border:1px solid #94a3b84d;border-radius:7px;outline:none;width:100%;min-height:40px;padding:0 10px}.portal-schedule-media-search:focus{border-color:#0f766e80;box-shadow:0 0 0 3px #0f766e12}.portal-schedule-media-count{color:#64748b;font-size:9px}.portal-weekday-picker>div{flex-wrap:wrap;gap:6px;display:flex}.portal-weekday-picker button{color:#64748b;cursor:pointer;background:#fff;border:1px solid #94a3b842;border-radius:7px;min-width:34px;min-height:32px}.portal-weekday-picker button.active{color:#fff;background:#0f766e;border-color:#0f766e}.portal-media-choice{color:#64748b;text-align:left;cursor:pointer;background:#fff;border:1px solid #94a3b83d;border-radius:7px;gap:4px;padding:4px;font-size:8px;display:grid;overflow:hidden}.portal-media-choice.active{border-color:#0f766e;box-shadow:0 0 0 2px #0f766e1f}.portal-media-choice img{aspect-ratio:1;object-fit:cover;border-radius:4px;width:100%}.portal-schedule-scope{background:#ccfbf133;border:1px solid #0f766e33;border-radius:8px;padding:12px}.portal-schedule-scope-hint{color:#0f766e;font-size:10px;line-height:1.5}.portal-schedule-savebar{z-index:4;backdrop-filter:blur(12px);background:#f8fafcf5;border-top:1px solid #94a3b83d;border-radius:0;justify-content:space-between;align-items:center;gap:12px;margin:2px -18px 0;padding:12px 18px;display:flex;position:sticky;bottom:0;box-shadow:0 -8px 18px #0f172a0d}.portal-schedule-savebar .portal-form-actions{flex-wrap:wrap}.portal-schedule-secondary-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.portal-schedule-readiness{color:#92400e;align-items:center;gap:7px;font-size:9px;line-height:1.4;display:inline-flex}.portal-schedule-readiness.complete{color:#047857}.portal-message-success{color:#047857;background:#10b9810f;border-color:#10b98133}.portal-danger-button{color:#b91c1c;cursor:pointer;background:#fef2f2d1;border:1px solid #dc262638;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 16px;display:inline-flex}.portal-danger-button:disabled{opacity:.48;cursor:not-allowed}.portal-schedule-preview,.portal-schedule-versions{color:#475569;background:#ffffffb8;border:1px solid #94a3b833;border-radius:8px;gap:7px;padding:12px;font-size:10px;display:grid}.portal-message-warning{color:#92400e;background:#fef3c780;border-color:#d9770638}.portal-schedule-versions summary{color:#0f766e;cursor:pointer;font-weight:800}.portal-schedule-versions>div{border-top:1px solid #94a3b829;justify-content:space-between;gap:10px;padding-top:6px;display:flex}.portal-status-draft{color:#0369a1;background:#0ea5e91a}.portal-status-published{color:#047857;background:#10b9811a}@media (width<=1100px){.portal-upcoming-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-schedule-hero{grid-template-columns:1fr;gap:18px}.portal-schedule-tools{width:min(100%,560px)}.portal-schedule-admin-layout{grid-template-columns:1fr}.portal-schedule-admin-list{position:static}.portal-schedule-admin-items{scroll-snap-type:x proximity;grid-auto-columns:minmax(230px,30vw);grid-auto-flow:column;max-height:none;overflow-x:auto}.portal-schedule-admin-items>button{scroll-snap-align:start;border-bottom:0;border-right:1px solid #94a3b829}.portal-schedule-list>button,.portal-schedule-detail-occurrence{grid-template-columns:1fr}}@media (width<=760px){.portal-schedule-dashboard,.portal-schedule-week,.portal-schedule-manager,.portal-schedule-detail,.portal-schedule-hero{padding:16px}.portal-schedule-hero,.portal-schedule-detail{grid-template-columns:1fr;align-items:stretch}.portal-schedule-hero{display:grid}.portal-schedule-tools,.portal-week-controls{justify-content:flex-start}.portal-schedule-tools{grid-template-columns:1fr;width:100%}.portal-schedule-tools label{width:100%}.portal-schedule-tool-actions{grid-template-columns:1fr 1fr;display:grid}.portal-schedule-tool-actions>button{width:100%}.portal-schedule-week>.portal-section-actions,.portal-schedule-manager>.portal-section-actions,.portal-schedule-comparison-section>.portal-section-actions{flex-direction:column;align-items:stretch}.portal-week-controls{grid-template-columns:1fr 1fr 1fr;display:grid}.portal-week-controls button{justify-content:center;min-width:0;padding:0 7px}.portal-week-grid{grid-template-columns:1fr;gap:8px;overflow:visible}.portal-day-column{grid-template-columns:72px minmax(0,1fr);min-height:0;display:grid}.portal-day-column>header{border-bottom:0;border-right:1px solid #94a3b82e;flex-direction:column;justify-content:center;align-items:center}.portal-day-column>div{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}.portal-day-empty{grid-column:1/-1;padding:12px 0}.portal-schedule-admin-items{grid-auto-columns:minmax(220px,78vw)}.portal-schedule-filters{grid-template-columns:1fr 1fr}.portal-schedule-filters input{grid-column:1/-1}.portal-upcoming-grid,.portal-schedule-source-grid,.portal-schedule-fields,.portal-schedule-scope{grid-template-columns:1fr}.portal-span-full{grid-column:auto}.portal-time-comparison{grid-template-columns:repeat(2,minmax(100px,1fr))}.portal-form-actions{flex-wrap:wrap;justify-content:flex-start}.portal-schedule-editor-section-title{flex-direction:column;align-items:start;gap:5px}.portal-schedule-editor-section-title small{text-align:left;padding-left:33px}.portal-schedule-savebar{flex-direction:column;align-items:stretch}.portal-schedule-savebar .portal-form-actions{grid-template-columns:1fr 1fr;display:grid}.portal-schedule-savebar .portal-form-actions>button{width:100%}.portal-schedule-secondary-actions>button{flex:140px;width:auto}}@media (width<=520px){.portal-upcoming-grid{grid-template-columns:1fr}.portal-content{padding-left:14px;padding-right:14px}.portal-schedule-dashboard,.portal-schedule-week,.portal-schedule-manager,.portal-schedule-detail,.portal-schedule-comparison-section,.portal-schedule-hero{padding:14px}.portal-schedule-hero h2{font-size:29px}.portal-schedule-tool-actions{grid-template-columns:1fr}.portal-day-column{grid-template-columns:62px minmax(0,1fr)}.portal-day-column>div{grid-template-columns:1fr}.portal-week-controls button{font-size:9px}.portal-schedule-editor{padding:13px}.portal-schedule-language-tabs{grid-template-columns:repeat(3,1fr);display:grid}.portal-schedule-language-tabs button{min-width:0}.portal-schedule-savebar{margin:2px -13px 0;padding:11px 13px}.portal-schedule-savebar .portal-form-actions{grid-template-columns:1fr 1fr}.portal-schedule-media .portal-reference-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-schedule-list>button,.portal-schedule-detail-occurrence{padding:12px}.portal-time-comparison{grid-template-columns:1fr 1fr}}.portal-discord-hub{--discord-accent:#5865f2}.portal-discord-channel-form,.portal-discord-section,.portal-discord-publish-panel{border:1px solid var(--portal-border,#6d8b973d);background:#ffffffd1;border-radius:18px;box-shadow:0 16px 40px #162a380f}.portal-discord-channel-form{padding:20px}.portal-discord-form-head,.portal-discord-section>header,.portal-discord-publish-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.portal-discord-form-head>div,.portal-discord-section>header>div{gap:3px;display:grid}.portal-discord-form-head span,.portal-discord-section>header span{color:#657785;letter-spacing:.12em;font-size:11px;font-weight:800}.portal-discord-form-grid{grid-template-columns:1.1fr .7fr .7fr;gap:14px;margin:18px 0;display:grid}.portal-discord-form-grid label,.portal-discord-schedule{color:#435361;gap:7px;font-size:13px;font-weight:700;display:grid}.portal-discord-form-grid input,.portal-discord-form-grid select,.portal-discord-schedule input{color:#15202b;min-width:0;font:inherit;background:#fff;border:1px solid #5e788640;border-radius:10px;padding:10px 12px}.portal-discord-webhook-field{grid-column:1/-1}.portal-discord-webhook-field small{color:#7c8c97;font-weight:500}.portal-discord-section{overflow:hidden}.portal-discord-section>header{border-bottom:1px solid #5e788629;padding:17px 20px}.portal-discord-section>header h3{color:#15202b;margin:0;font-size:18px}.portal-discord-section>header p{color:#71808b;margin:2px 0 0;font-size:12px}.portal-discord-recurring-form{gap:18px;display:grid}.portal-discord-recurring-basics{grid-template-columns:minmax(220px,1fr) minmax(180px,.7fr) minmax(130px,.45fr);gap:14px;display:grid}.portal-discord-recurring-basics label,.portal-discord-recurring-copy-grid label{color:#435361;gap:7px;font-size:13px;font-weight:700;display:grid}.portal-discord-recurring-basics input,.portal-discord-recurring-basics select,.portal-discord-recurring-copy-grid input,.portal-discord-recurring-copy-grid textarea{color:#15202b;min-width:0;font:inherit;background:#fff;border:1px solid #5e788640;border-radius:10px;padding:10px 12px}.portal-discord-recurring-copy-grid textarea{resize:vertical}.portal-discord-recurring-days,.portal-discord-recurring-targets{border:0;min-width:0;margin:0;padding:0}.portal-discord-recurring-days legend,.portal-discord-recurring-targets legend{color:#435361;margin-bottom:8px;font-size:13px;font-weight:800}.portal-discord-recurring-days>div,.portal-discord-recurring-targets>div{flex-wrap:wrap;gap:8px;display:flex}.portal-discord-recurring-days label,.portal-discord-recurring-targets label{color:#52616e;cursor:pointer;background:#fff;border:1px solid #5865f233;border-radius:10px;align-items:center;gap:7px;min-height:36px;padding:7px 11px;font-size:12px;font-weight:700;display:inline-flex}.portal-discord-recurring-days input,.portal-discord-recurring-targets input{accent-color:#5865f2;margin:0}.portal-discord-recurring-targets label small{color:#83909a;font-size:10px}.portal-discord-recurring-targets>small{color:#7c8c97;margin-top:8px;font-size:11px;display:block}.portal-discord-recurring-copy-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.portal-discord-recurring-copy-grid section{background:#f5f9fabf;border:1px solid #5e788629;border-radius:14px;gap:10px;min-width:0;padding:13px;display:grid}.portal-discord-recurring-copy-grid section>header strong{color:#5865f2;letter-spacing:.12em;font-size:11px}.portal-discord-recurring-list>article{border-bottom:1px solid #5e78861f;grid-template-columns:86px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:78px;padding:10px 18px;display:grid}.portal-discord-recurring-list>article:last-child{border-bottom:0}.portal-discord-recurring-list>article.inactive{opacity:.62}.portal-discord-recurring-time{color:#3844bd;background:#5865f214;border-radius:12px;justify-items:center;padding:8px 10px;display:grid}.portal-discord-recurring-time strong{font-size:18px}.portal-discord-recurring-time span{color:#6876c8;font-size:10px;font-weight:800}.portal-discord-recurring-copy{gap:2px;min-width:0;display:grid}.portal-discord-recurring-copy>span,.portal-discord-recurring-copy>small{color:#6b7b87;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.portal-discord-recurring-copy em{color:#b54242;font-size:11px;font-style:normal}.portal-discord-channel-list>article,.portal-discord-history>article{border-bottom:1px solid #5e78861f;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-height:66px;padding:10px 18px;display:grid}.portal-discord-channel-list>article:last-child,.portal-discord-history>article:last-child{border-bottom:0}.portal-discord-channel-list article.inactive{opacity:.58}.portal-discord-channel-list article>div:nth-child(2),.portal-discord-history article>div:nth-child(2){gap:2px;min-width:0;display:grid}.portal-discord-channel-list article>div:nth-child(2)>span,.portal-discord-history article>div:nth-child(2)>span,.portal-discord-history article>div:nth-child(2)>small{color:#6b7b87;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.portal-discord-channel-list article small,.portal-discord-history article em{color:#b54242;font-size:12px;font-style:normal}.portal-discord-health,.portal-discord-publication-status{color:#70808d;align-items:center;gap:6px;display:inline-flex}.portal-discord-health.status-ok,.portal-discord-publication-status.status-published{color:#19856d}.portal-discord-health.status-error,.portal-discord-publication-status.status-failed{color:#c54848}.portal-discord-publication-status.status-sending{color:#5865f2}.portal-discord-publication-status.status-cancelled{color:#8b96a0}.portal-discord-publication-status span{text-transform:uppercase;font-size:11px;font-weight:800}.portal-discord-row-actions,.portal-discord-publish-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.portal-danger-icon{color:#b54242!important}.portal-discord-empty{color:#778791;text-align:center;padding:28px}.portal-discord-publish-panel{gap:15px;padding:18px;display:grid}.portal-discord-publish-head>div{color:var(--discord-accent);align-items:center;gap:10px;display:flex}.portal-discord-publish-head span{gap:2px;display:grid}.portal-discord-publish-head small{color:#71808b;font-weight:500}.portal-discord-publish-head em{color:#5865f2;align-items:center;gap:5px;font-size:12px;font-style:normal;font-weight:800;display:inline-flex}.portal-discord-targets{flex-wrap:wrap;gap:8px;display:flex}.portal-discord-targets label{color:#52616e;cursor:pointer;background:#fff;border:1px solid #5865f233;border-radius:999px;align-items:center;gap:7px;padding:7px 11px;display:inline-flex}.portal-discord-targets label.active{color:#3844bd;background:#5865f214;border-color:#5865f2b3}.portal-discord-targets input{accent-color:#5865f2;margin:0}.portal-discord-targets small{color:#83909a;font-size:10px;font-weight:800}.portal-discord-schedule{grid-template-columns:auto minmax(220px,320px);justify-content:end;align-items:center}@media (width<=760px){.portal-discord-form-grid{grid-template-columns:1fr}.portal-discord-webhook-field{grid-column:auto}.portal-discord-recurring-basics,.portal-discord-recurring-copy-grid{grid-template-columns:1fr}.portal-discord-recurring-basics input,.portal-discord-recurring-basics select,.portal-discord-recurring-copy-grid input,.portal-discord-recurring-copy-grid textarea{font-size:16px}.portal-discord-recurring-list>article{grid-template-columns:72px minmax(0,1fr);align-items:start;padding:12px 14px}.portal-discord-recurring-list .portal-discord-row-actions{grid-column:1/-1}.portal-discord-recurring-section>header{flex-direction:column;align-items:flex-start}.portal-discord-recurring-section>header button{justify-content:center;width:100%}.portal-discord-channel-list>article,.portal-discord-history>article{grid-template-columns:auto minmax(0,1fr);align-items:start;padding:12px 14px}.portal-discord-row-actions{grid-column:1/-1;justify-content:flex-end}.portal-discord-schedule{grid-template-columns:1fr;justify-content:stretch}.portal-discord-schedule input{width:100%;font-size:16px}.portal-discord-publish-actions{grid-template-columns:1fr;display:grid}.portal-discord-publish-actions button{justify-content:center;width:100%}}.portal-member-heading{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.portal-member-heading>p{color:#64748b;text-align:right;max-width:560px;margin:0 0 2px;font-size:13px;line-height:1.65}.portal-member-metrics{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;display:grid}.portal-member-metrics button{color:#475569;text-align:left;background:#fff;border:1px solid #94a3b847;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;min-height:66px;padding:12px 15px;display:flex;box-shadow:0 2px 8px #0f172a0a}.portal-member-metrics button:hover,.portal-member-metrics button.active{color:#0f766e;background:#f0fdfa;border-color:#0d948866}.portal-member-metrics button span{font-size:12px;font-weight:800}.portal-member-metrics button strong{color:#0f172a;font-size:22px;line-height:1}.portal-member-toolbar{grid-template-columns:minmax(0,1fr) minmax(160px,220px);gap:10px;display:grid}.portal-member-toolbar label{color:#64748b;background:#fff;border:1px solid #94a3b84d;border-radius:9px;align-items:center;gap:9px;min-height:42px;padding:0 12px;display:flex}.portal-member-toolbar input,.portal-member-toolbar select{color:#0f172a;background:0 0;border:0;outline:0;width:100%;min-height:40px;font-size:13px}.portal-member-toolbar select{background:#fff;border:1px solid #94a3b84d;border-radius:9px;padding:0 11px}.portal-member-directory{gap:9px;display:grid}.portal-member-directory .portal-member-card{background:#fff;border:1px solid #94a3b842;border-radius:10px;box-shadow:0 2px 8px #0f172a09}.portal-member-directory .portal-member-card-inactive,.portal-member-directory .portal-member-card-deleted{background:#f8fafc}.portal-member-directory .portal-member-card-deleted{opacity:.78}.portal-member-directory .portal-member-row{grid-template-columns:38px minmax(240px,1fr) auto minmax(220px,auto);gap:12px;min-height:0;padding:12px 14px}.portal-member-directory .portal-avatar{width:38px;height:38px;font-size:13px}.portal-member-directory .portal-member-main{gap:2px}.portal-member-directory .portal-member-main strong{font-size:13px;line-height:1.35}.portal-member-directory .portal-member-main span,.portal-member-directory .portal-member-main small{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.45;overflow:hidden}.portal-member-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.portal-member-badges .portal-status,.portal-member-badges .portal-role{white-space:nowrap;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800}.portal-status-inactive{color:#9a3412;background:#fff7ed}.portal-status-deleted{color:#475569;background:#e2e8f0}.portal-member-directory .portal-member-actions{flex-wrap:wrap;align-items:center}.portal-member-directory .portal-member-actions button{color:#334155;background:#fff;border-color:#94a3b84d;min-height:34px;padding:0 10px;font-size:11px;font-weight:800}.portal-member-directory .portal-member-actions button:hover,.portal-member-directory .portal-member-actions button.active{color:#0f766e;background:#f0fdfa;border-color:#0d948859}.portal-member-directory .portal-member-actions button.danger{color:#b91c1c;background:snow;border-color:#dc26263d}.portal-member-remove-confirm{background:#fff7f7;border:1px solid #dc26263d;border-radius:10px;justify-content:space-between;align-items:center;gap:18px;padding:13px 15px;display:flex}.portal-member-remove-confirm>div{align-items:center;gap:10px;display:flex}.portal-member-remove-confirm strong{color:#991b1b;white-space:nowrap}.portal-member-remove-confirm span{color:#64748b;font-size:12px;line-height:1.5}.portal-member-directory .portal-permission-editor{background:#f8fafc;border-top:1px solid #94a3b83d;padding:16px}.portal-permission-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.portal-permission-heading>label{color:#475569;align-items:center;gap:9px;font-size:12px;font-weight:800;display:flex}.portal-permission-heading select{min-width:110px}.portal-permission-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.portal-permission-sections fieldset{background:#fff;border:1px solid #94a3b83d;border-radius:9px;min-width:0;margin:0;padding:10px}.portal-permission-sections legend{color:#0f766e;padding:0 5px;font-size:11px;font-weight:900}.portal-permission-sections .portal-permission-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.portal-permission-sections .portal-check{min-height:36px;margin:0;font-size:11px}.portal-permission-actions{justify-content:flex-end;display:flex}@media (width<=1080px){.portal-member-directory .portal-member-row{grid-template-columns:38px minmax(220px,1fr) auto}.portal-member-directory .portal-member-actions{grid-column:2/-1;justify-content:flex-start}}@media (width<=760px){.portal-member-heading{flex-direction:column;align-items:flex-start;gap:7px}.portal-member-heading>p{text-align:left}.portal-member-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-member-metrics button:first-child{grid-column:1/-1}.portal-member-toolbar,.portal-permission-sections{grid-template-columns:1fr}.portal-member-toolbar input,.portal-member-toolbar select{font-size:16px}.portal-member-directory .portal-member-row{grid-template-columns:38px minmax(0,1fr) auto;padding:12px}.portal-member-directory .portal-member-main,.portal-member-directory .portal-member-badges{grid-column:2/-1}.portal-member-directory .portal-member-actions{grid-column:1/-1}.portal-member-remove-confirm,.portal-member-remove-confirm>div,.portal-permission-heading{flex-direction:column;align-items:stretch}.portal-member-remove-confirm>div:last-child{grid-template-columns:1fr 1fr;display:grid}.portal-member-remove-confirm button,.portal-permission-actions button{width:100%}}@media (width<=460px){.portal-member-directory .portal-member-row{grid-template-columns:34px minmax(0,1fr)}.portal-member-directory .portal-avatar{width:34px;height:34px}.portal-member-directory .portal-member-actions button{flex:calc(50% - 5px)}.portal-permission-sections .portal-permission-grid{grid-template-columns:1fr}}
