:root{
  --gp-primary:#126BFF;
  --gp-accent:#FFC928;
  --gp-dark:#0D1117;
  --gp-danger:#FF3B30;
  --gp-bg:#f5f7fb;
  --gp-card:#ffffff;
  --gp-text:#0f172a;
  --gp-muted:#64748b;
  --gp-border:#e2e8f0;
  --gp-green:#15B86A;
}

#gpir-app,
.gpir-app-shell{
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--gp-text);
}

#gpir-app *{box-sizing:border-box}
#gpir-app button,
#gpir-app input,
#gpir-app textarea,
#gpir-app select{font:inherit}

.gp-loading{
  min-height:70vh;display:grid;place-items:center;background:var(--gp-bg);border-radius:28px;padding:32px;text-align:center;
}
.gp-spinner{width:48px;height:48px;border:4px solid rgba(18,107,255,.15);border-top-color:var(--gp-primary);border-radius:999px;animation:gp-spin 1s linear infinite;margin:0 auto 14px}
@keyframes gp-spin{to{transform:rotate(360deg)}}

.gp-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:78vh;background:var(--gp-bg);border-radius:32px;overflow:hidden;box-shadow:0 18px 60px rgba(15,23,42,.08);border:1px solid rgba(226,232,240,.8)}
.gp-sidebar{background:linear-gradient(180deg,#0D1117 0%, #111827 55%, #0b1220 100%);color:#fff;padding:24px;display:flex;flex-direction:column;gap:24px}
.gp-brand{display:flex;gap:14px;align-items:center;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.08)}
.gp-brand-mark{width:56px;height:56px;border-radius:18px;background:linear-gradient(135deg,var(--gp-primary),#1231ff,#0a1324);display:grid;place-items:center;font-weight:900;font-size:20px;box-shadow:0 10px 30px rgba(18,107,255,.35)}
.gp-brand-over{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#94a3b8;font-weight:800}
.gp-brand-title{font-size:20px;font-weight:900;line-height:1.05}
.gp-brand-sub{font-size:13px;color:#cbd5e1;margin-top:4px}
.gp-nav{display:flex;flex-direction:column;gap:10px}
.gp-nav-btn{display:block;width:100%;text-align:left;background:transparent;border:0;color:#cbd5e1;padding:14px 16px;border-radius:18px;font-weight:700;cursor:pointer;transition:.22s}
.gp-nav-btn:hover{background:rgba(255,255,255,.08);color:#fff}
.gp-nav-btn.active{background:#fff;color:#0f172a;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.gp-sidebar-card{margin-top:auto;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);padding:18px;border-radius:24px}
.gp-sidebar-pill{display:inline-flex;background:rgba(255,201,40,.14);color:#fde68a;font-size:11px;padding:7px 10px;border-radius:999px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.gp-sidebar-card h4{margin:12px 0 8px;font-size:16px;font-weight:900;color:#fff}
.gp-sidebar-card p{margin:0 0 16px;color:#cbd5e1;font-size:13px;line-height:1.6}

.gp-main{display:flex;flex-direction:column;min-width:0}
.gp-topbar{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:22px 28px;border-bottom:1px solid var(--gp-border);background:rgba(255,255,255,.72);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}
.gp-topbar-title{font-size:30px;font-weight:900;letter-spacing:-.03em}
.gp-topbar-sub{margin-top:6px;font-size:14px;color:var(--gp-muted)}
.gp-topbar-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.gp-search{width:320px;max-width:100%;padding:13px 15px;border-radius:16px;border:1px solid var(--gp-border);background:#fff;outline:none;box-shadow:0 1px 1px rgba(15,23,42,.03)}
.gp-search.small{width:220px}
.gp-content{padding:28px}
.gp-grid{display:grid;gap:20px}
.gp-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}
.gp-grid-main{grid-template-columns:1.2fr .8fr;margin-bottom:22px}
.gp-grid-editor{grid-template-columns:1.25fr .75fr}
.gp-stack{display:flex;flex-direction:column;gap:20px}

.gp-card{background:var(--gp-card);border:1px solid rgba(226,232,240,.9);border-radius:28px;padding:22px;box-shadow:0 12px 40px rgba(15,23,42,.05);min-width:0}
.gp-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}
.gp-card-head h3{margin:0;font-size:22px;line-height:1.1;font-weight:900;letter-spacing:-.03em}
.gp-card-head p{margin:6px 0 0;color:var(--gp-muted);font-size:14px}
.gp-metric-card{display:flex;flex-direction:column;gap:18px;justify-content:space-between;min-height:164px}
.gp-metric-label{font-size:14px;color:var(--gp-muted);font-weight:700}
.gp-metric-number{font-size:44px;font-weight:900;letter-spacing:-.05em;line-height:.95}
.gp-list{display:flex;flex-direction:column;gap:14px}
.gp-list-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;border:1px solid var(--gp-border);border-radius:20px;background:#fff}
.gp-list-item strong{display:block;font-size:15px}
.gp-list-item div div{margin-top:4px;color:var(--gp-muted);font-size:13px}

.gp-chip{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:999px;font-size:12px;font-weight:900;letter-spacing:.04em;border:1px solid transparent;white-space:nowrap}
.gp-chip-blue{background:#eaf2ff;color:#1455d9;border-color:#cfe1ff}
.gp-chip-accent,.gp-chip-yellow{background:#fff7d6;color:#a16207;border-color:#fde68a}
.gp-chip-gray{background:#f1f5f9;color:#475569;border-color:#e2e8f0}
.gp-chip-green{background:#def7ea;color:#047857;border-color:#b7ebcf}
.gp-chip-red{background:#fee2e2;color:#b91c1c;border-color:#fecaca}
.gp-chip-dark{background:#0f172a;color:#fff;border-color:#0f172a}

.gp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border-radius:16px;border:1px solid transparent;text-decoration:none;font-weight:900;cursor:pointer;transition:.18s}
.gp-btn:hover{transform:translateY(-1px)}
.gp-btn-primary{background:var(--gp-primary);color:#fff;box-shadow:0 10px 28px rgba(18,107,255,.22)}
.gp-btn-accent{background:var(--gp-accent);color:#111827;box-shadow:0 10px 28px rgba(255,201,40,.18)}
.gp-btn-dark{background:var(--gp-dark);color:#fff}
.gp-btn-light{background:#fff;color:#0f172a;border-color:var(--gp-border)}
.gp-btn-danger{background:var(--gp-danger);color:#fff}
.gp-btn-green{background:var(--gp-green);color:#fff}
.gp-btn-xs{padding:9px 12px;border-radius:14px;font-size:12px}
.gp-full{width:100%}

.gp-notice{padding:14px 16px;border-radius:18px;margin-bottom:18px;font-weight:700}
.gp-notice-success{background:#def7ea;color:#065f46;border:1px solid #b7ebcf}
.gp-notice-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}

.gp-funnel{display:flex;flex-direction:column;gap:12px}
.gp-funnel-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px dashed var(--gp-border)}
.gp-funnel-row:last-child{border-bottom:0}
.gp-funnel-row span{font-weight:700}

.gp-preview-card{overflow:hidden}
.gp-phone-preview{background:linear-gradient(180deg,#090e17 0%, #13203f 42%, #0e1728 100%);padding:28px;border-radius:28px;display:flex;justify-content:center}
.gp-phone-preview.alt{padding:20px;background:#eef2ff}
.gp-phone-inner{background:#fff;border-radius:28px;padding:18px;max-width:290px;width:100%;box-shadow:0 16px 40px rgba(15,23,42,.16)}
.gp-mini-header{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.gp-avatar{width:42px;height:42px;border-radius:999px;background:linear-gradient(135deg,var(--gp-primary),#4f46e5)}
.gp-mini-header strong{display:block;font-size:14px}
.gp-mini-header span{display:block;font-size:12px;color:var(--gp-muted);margin-top:2px}
.gp-art-preview{border-radius:24px;padding:20px;background:linear-gradient(135deg,var(--gp-dark),var(--gp-primary),var(--gp-accent));color:#fff}
.gp-kicker{display:inline-block;font-size:11px;font-weight:900;letter-spacing:.18em;color:#fef3c7;text-transform:uppercase}
.gp-art-preview h4{margin:8px 0 8px;font-size:30px;line-height:1;font-weight:900;letter-spacing:-.04em}
.gp-art-preview p{margin:0;color:#dbeafe;font-size:13px}
.gp-mini-copy{margin-top:14px;font-size:14px;color:#475569;line-height:1.55}
.gp-tags-preview,.gp-media-url{margin-top:12px;font-size:12px;color:var(--gp-muted);word-break:break-all}

.gp-table-wrap{overflow:auto;border:1px solid var(--gp-border);border-radius:22px}
.gp-table{width:100%;border-collapse:collapse;background:#fff;min-width:760px}
.gp-table th,.gp-table td{padding:14px 16px;border-bottom:1px solid var(--gp-border);text-align:left;vertical-align:top;font-size:14px}
.gp-table thead th{font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:#64748b;background:#f8fafc;font-weight:900}
.gp-table tbody tr:last-child td{border-bottom:0}
.gp-table small{color:var(--gp-muted)}
.gp-actions-inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.gp-empty{padding:18px;border:1px dashed var(--gp-border);border-radius:18px;background:#f8fafc;color:var(--gp-muted);font-weight:600;text-align:center}

.gp-form{display:flex;flex-direction:column;gap:18px}
.gp-form-grid{display:grid;gap:16px}
.gp-form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.gp-field{display:flex;flex-direction:column;gap:8px}
.gp-field span{font-size:13px;font-weight:800;color:#334155}
.gp-input,.gp-select{width:100%;padding:14px 15px;border-radius:16px;border:1px solid var(--gp-border);background:#f8fafc;outline:none}
.gp-input:focus,.gp-select:focus{border-color:var(--gp-primary);background:#fff;box-shadow:0 0 0 4px rgba(18,107,255,.12)}
.gp-form-actions{display:flex;gap:12px;flex-wrap:wrap}
.gp-shortcuts{display:flex;flex-direction:column;gap:12px}

.gp-upload-box{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:16px;align-items:stretch}
.gp-upload-dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:220px;padding:24px;border:2px dashed rgba(18,107,255,.22);border-radius:24px;background:linear-gradient(180deg,#f8fbff 0%,#ffffff 100%);cursor:pointer;transition:.2s ease}
.gp-upload-dropzone:hover,.gp-upload-dropzone.is-dragover{border-color:var(--gp-primary);background:#eef5ff;box-shadow:0 0 0 6px rgba(18,107,255,.08)}
.gp-upload-dropzone.is-uploading{opacity:.7;pointer-events:none}
.gp-upload-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,var(--gp-primary),#4f46e5);color:#fff;font-size:34px;font-weight:900;margin-bottom:14px;box-shadow:0 14px 34px rgba(18,107,255,.22)}
.gp-upload-dropzone strong{display:block;font-size:18px;line-height:1.2;margin-bottom:8px}
.gp-upload-dropzone span{display:block;font-size:14px;color:var(--gp-muted);max-width:520px}
.gp-upload-dropzone small{display:block;margin-top:12px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#475569}
.gp-upload-side{display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid var(--gp-border);border-radius:24px;background:#f8fafc}
.gp-upload-side-head{font-size:14px;font-weight:900;text-transform:uppercase;letter-spacing:.16em;color:#334155}
.gp-upload-side p{margin:0;color:var(--gp-muted);line-height:1.65;font-size:14px}
.gp-upload-side-actions{display:flex;gap:10px;flex-wrap:wrap}
.gp-upload-current{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:18px;background:#fff;border:1px solid var(--gp-border)}
.gp-upload-current span{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.14em;color:var(--gp-muted)}
.gp-upload-current strong{font-size:14px;line-height:1.45;word-break:break-word}
.gp-upload-current.empty{background:#f8fafc;border-style:dashed}

.gp-calendar-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin-bottom:12px}
.gp-calendar-head span{padding:8px 10px;text-align:center;font-size:12px;font-weight:900;color:#64748b;text-transform:uppercase;letter-spacing:.16em}
.gp-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}
.gp-calendar-day{min-height:150px;border:1px solid var(--gp-border);border-radius:24px;background:#fff;padding:12px;display:flex;flex-direction:column;gap:10px}
.gp-calendar-day.empty{background:transparent;border-style:dashed}
.gp-day-number{font-size:14px;font-weight:900}
.gp-day-items{display:flex;flex-direction:column;gap:8px}
.gp-day-empty{font-size:12px;color:var(--gp-muted)}
.gp-cal-card{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:16px;font-size:12px;font-weight:700;border:1px solid transparent}
.gp-cal-card-main{display:flex;flex-direction:column;gap:5px;padding:0;background:transparent;border:0;text-align:left;cursor:pointer;color:inherit;font:inherit}
.gp-cal-card strong{font-size:12px;line-height:1.3}
.gp-cal-card span{opacity:.85}
.gp-cal-card-actions{display:flex;gap:6px;flex-wrap:wrap}
.gp-cal-mini-btn{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;padding:6px 8px;border-radius:12px;border:1px solid rgba(15,23,42,.12);background:rgba(255,255,255,.65);color:inherit;font-size:11px;font-weight:900;cursor:pointer}
.gp-cal-mini-btn.danger{background:rgba(255,255,255,.85);border-color:rgba(185,28,28,.18);color:#b91c1c}
.gp-cal-card.blue{background:#eaf2ff;color:#1455d9}
.gp-cal-card.yellow{background:#fff7d6;color:#a16207}
.gp-cal-card.green{background:#def7ea;color:#047857}
.gp-cal-card.gray{background:#f1f5f9;color:#475569}
.gp-cal-card.red{background:#fee2e2;color:#b91c1c}
.gp-cal-card.dark{background:#0f172a;color:#fff}

.gp-bars{display:flex;flex-direction:column;gap:16px}
.gp-bar-row{display:grid;grid-template-columns:120px 1fr 44px;gap:14px;align-items:center}
.gp-bar-row span{font-weight:800}
.gp-bar-track{height:14px;border-radius:999px;background:#e5edf9;overflow:hidden}
.gp-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gp-primary),var(--gp-accent))}
.gp-kpis{display:flex;flex-direction:column;gap:14px}
.gp-kpi-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;border:1px solid var(--gp-border);border-radius:18px}
.gp-kpi-row span{font-weight:700;color:#334155}


.gp-editor-shell{align-items:start}
.gp-review-stage-card{overflow:hidden}
.gp-review-media-shell{background:#eef2ff;border:1px solid var(--gp-border);border-radius:24px;padding:18px;display:flex;align-items:center;justify-content:center;min-height:420px}
.gp-review-image{display:block;width:100%;max-height:620px;object-fit:contain;border-radius:18px;background:#fff;box-shadow:0 14px 36px rgba(15,23,42,.10)}
.gp-review-caption{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:14px;flex-wrap:wrap}
.gp-review-caption strong{display:block;font-size:14px}
.gp-review-caption span{display:block;margin-top:4px;color:var(--gp-muted);font-size:12px}
.gp-review-placeholder{border:1px solid var(--gp-border);border-radius:24px;background:linear-gradient(180deg,#f8fbff 0%, #ffffff 100%);padding:20px}
.gp-review-placeholder-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.gp-review-poster{border-radius:28px;padding:26px;min-height:320px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(135deg,var(--gp-dark),var(--gp-primary),var(--gp-accent));color:#fff}
.gp-review-poster h4{margin:8px 0 8px;font-size:44px;line-height:.95;font-weight:900;letter-spacing:-.05em;max-width:540px}
.gp-review-poster p{margin:0;font-size:15px;color:#dbeafe;font-weight:700}
.gp-review-copy{margin-top:14px;color:#475569;line-height:1.7;font-size:14px}
.gp-status-card{padding-bottom:18px}
.gp-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.gp-status-item{padding:16px;border:1px solid var(--gp-border);border-radius:20px;background:#f8fafc}
.gp-status-item span{display:block;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.14em;color:var(--gp-muted);margin-bottom:8px}
.gp-status-item strong{display:block;font-size:15px;line-height:1.35}
.gp-accordion-card{display:flex;flex-direction:column;gap:12px}
.gp-accordion{border:1px solid var(--gp-border);border-radius:22px;background:#fff;overflow:hidden}
.gp-accordion summary{list-style:none;cursor:pointer;padding:18px 20px;font-size:15px;font-weight:900;display:flex;align-items:center;justify-content:space-between;gap:12px}
.gp-accordion summary::-webkit-details-marker{display:none}
.gp-accordion summary::after{content:'+';display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:999px;background:#eff6ff;color:var(--gp-primary);font-size:18px;font-weight:900;flex:0 0 auto}
.gp-accordion[open] summary::after{content:'–'}
.gp-accordion-body{padding:0 20px 20px;border-top:1px solid var(--gp-border);display:flex;flex-direction:column;gap:16px}
.gp-form-actions-stack{display:flex;flex-direction:column;gap:10px}
.gp-review-meta-list{display:flex;flex-direction:column;gap:12px}
.gp-review-meta-item{display:flex;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--gp-border);border-radius:18px;background:#f8fafc}
.gp-review-meta-item span{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.14em;color:var(--gp-muted)}
.gp-review-meta-item strong{text-align:right;font-size:14px;line-height:1.35}
.gp-assignment-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:-4px}.gp-assignee-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:#eaf2ff;border:1px solid #cfe1ff;color:#1455d9;font-size:12px;font-weight:800}.gp-assignee-pill.secondary{background:#eef6ff;border-color:#d9e9ff;color:#315f9c}.gp-status-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.gp-cal-card-main small{display:block;opacity:.92;font-size:10px;line-height:1.2}.gp-list-item div div + div{margin-top:4px;color:#64748b;font-size:12px}
.gp-accordion-help{font-size:13px;color:var(--gp-muted);line-height:1.6}

.gp-filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.gp-select.small{min-width:180px}
.gpir-locked{padding:40px;border:1px dashed var(--gp-border);border-radius:24px;background:#fff}
.gpir-locked h2{margin-top:0}

@media (max-width: 1200px){
  .gp-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gp-grid-main,.gp-grid-editor{grid-template-columns:1fr}
  .gp-review-poster h4{font-size:36px}
}


@media (max-width: 960px){
  .gp-shell{grid-template-columns:1fr}
  .gp-sidebar{padding:18px}
  .gp-topbar{padding:18px;flex-direction:column;align-items:flex-start}
  .gp-content{padding:18px}
}

@media (max-width: 720px){
  .gp-grid-4,.gp-form-grid-2,.gp-calendar-head,.gp-calendar-grid,.gp-status-grid,.gp-status-grid-3,.gp-upload-box{grid-template-columns:1fr}
  .gp-search{width:100%}
  .gp-topbar-actions,.gp-form-actions,.gp-filters,.gp-actions-inline{width:100%}
  .gp-list-item,.gp-card-head,.gp-review-caption,.gp-review-meta-item{flex-direction:column;align-items:flex-start}
  .gp-calendar-day{min-height:auto}
  .gp-review-media-shell{min-height:260px;padding:12px}
  .gp-review-poster{min-height:240px;padding:18px}
  .gp-review-poster h4{font-size:28px}
  .gp-review-meta-item strong{text-align:left}
}



html.gpir-front-html,
body.gpir-front-page{margin:0;padding:0;min-height:100%;background:#06080d !important}
body.gpir-front-page{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--gp-text)}
body.gpir-front-page *{box-sizing:border-box}
body.gpir-front-page .gpir-front-wrap{min-height:100vh;padding:22px}
body.gpir-front-page .gpir-front-wrap > #gpir-app{display:block}
body.gpir-front-page .gp-shell{min-height:calc(100vh - 44px)}
body.gpir-front-page .gpir-locked{max-width:720px;margin:40px auto;background:#fff}


.gpir-login-wrap{min-height:calc(100vh - 44px);display:grid;place-items:center;padding:22px;background:radial-gradient(circle at top left, rgba(18,107,255,.18), transparent 24%),radial-gradient(circle at bottom right, rgba(255,201,40,.22), transparent 24%),#06080d}
.gpir-login-card{width:min(520px,100%);background:#fff;border-radius:28px;padding:34px;box-shadow:0 24px 70px rgba(15,23,42,.26)}
.gpir-login-mark{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;margin-bottom:18px;font-size:26px;font-weight:900;background:linear-gradient(135deg,var(--gp-primary),#1231ff,#0a1324);color:#fff;box-shadow:0 10px 34px rgba(18,107,255,.26)}
.gpir-login-card h2{margin:0;font-size:38px;line-height:1;font-weight:900;letter-spacing:-.05em}
.gpir-login-card p{margin:12px 0 22px;color:var(--gp-muted);line-height:1.7}
.gpir-login-form-wrap label{display:block;margin:0 0 7px;font-weight:800;color:#334155}
.gpir-login-form-wrap input[type="text"],.gpir-login-form-wrap input[type="password"]{width:100%;padding:14px 15px;border-radius:16px;border:1px solid var(--gp-border);background:#f8fafc;outline:none;margin-bottom:14px}
.gpir-login-form-wrap input:focus{border-color:var(--gp-primary);background:#fff;box-shadow:0 0 0 4px rgba(18,107,255,.12)}
.gpir-login-form-wrap .login-remember{display:flex;align-items:center;gap:8px;margin:4px 0 18px;color:var(--gp-muted)}
.gpir-login-form-wrap .button-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 18px;border-radius:16px;border:0;text-decoration:none;font-weight:900;cursor:pointer;background:var(--gp-primary);color:#fff;box-shadow:0 10px 28px rgba(18,107,255,.22)}
.gpir-password-field{position:relative;margin-bottom:14px}
.gpir-password-field input{margin-bottom:0 !important;padding-right:86px !important}
.gpir-toggle-password{position:absolute;top:7px;right:8px;border:0;border-radius:12px;background:#0f172a;color:#fff;padding:9px 13px;font-size:12px;font-weight:800;cursor:pointer}


.gp-card-head-tight{margin-bottom:14px}
.gp-materials-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.gp-material-card{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}
.gp-material-thumb-wrap{min-height:230px}
.gp-material-thumb{width:100%;height:100%;min-height:230px;border-radius:24px;background-size:cover;background-position:center center;border:1px solid var(--gp-border)}
.gp-material-thumb-fallback{display:grid;place-items:center;background:linear-gradient(135deg,var(--gp-dark),var(--gp-primary),var(--gp-accent));color:#fff;font-size:42px;font-weight:900}
.gp-material-body{display:flex;flex-direction:column;gap:14px;min-width:0}
.gp-material-actions{margin-top:auto}
.gp-materials-head-card{margin-bottom:20px}

.gp-modal-backdrop{position:fixed;inset:0;background:rgba(2,6,23,.66);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:9999}
.gp-review-modal{width:min(1440px,100%);height:min(92vh,100%);display:grid;grid-template-columns:minmax(360px,0.9fr) minmax(420px,1.1fr);background:#fff;border-radius:30px;overflow:hidden;box-shadow:0 30px 100px rgba(15,23,42,.32)}
.gp-review-modal-left{background:#0b1220;padding:22px;overflow:auto}
.gp-review-modal-sticky{position:sticky;top:0;display:flex;flex-direction:column;gap:16px}
.gp-review-modal-left .gp-review-media-shell,.gp-review-modal-left .gp-review-placeholder{min-height:calc(92vh - 120px);background:#0f172a;border-color:rgba(255,255,255,.12)}
.gp-review-modal-left .gp-review-image{max-height:calc(92vh - 190px);background:#020617}
.gp-review-modal-left .gp-review-copy,.gp-review-modal-left .gp-review-caption span,.gp-review-modal-left .gp-review-placeholder-head span{color:#cbd5e1}
.gp-review-modal-right{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;overflow:hidden;background:linear-gradient(180deg,#ffffff 0%, #f8fbff 100%)}
.gp-review-modal-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:24px 26px;border-bottom:1px solid var(--gp-border);background:rgba(255,255,255,.94)}
.gp-review-modal-head h2{margin:12px 0 8px;font-size:34px;line-height:.95;font-weight:900;letter-spacing:-.05em}
.gp-review-modal-head p{margin:0;color:var(--gp-muted);line-height:1.65}
.gp-review-modal-scroll{padding:24px 26px 26px;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:16px;flex:1;min-height:0;scrollbar-gutter:stable}
.gp-close-review-btn{flex:0 0 auto}

.gp-comment-form{padding:16px;border:1px solid var(--gp-border);border-radius:22px;background:#f8fafc;display:flex;flex-direction:column;gap:16px}
.gp-comment-hint{display:flex;align-items:flex-end;padding-bottom:12px;font-size:13px;color:var(--gp-muted)}
.gp-comment-list{display:flex;flex-direction:column;gap:12px}
.gp-comment-item{padding:16px;border:1px solid var(--gp-border);border-radius:20px;background:#fff}
.gp-timeline{position:relative;display:flex;flex-direction:column;gap:12px;padding-left:2px}
.gp-timeline-item{display:grid;grid-template-columns:20px minmax(0,1fr);gap:14px;align-items:flex-start}
.gp-timeline-rail{position:relative;display:flex;justify-content:center;height:100%}
.gp-timeline-rail::before{content:'';position:absolute;top:0;bottom:-12px;left:50%;transform:translateX(-50%);width:2px;background:linear-gradient(180deg,#dbeafe 0%, #bfdbfe 100%)}
.gp-timeline-item:last-child .gp-timeline-rail::before{bottom:10px}
.gp-timeline-dot{position:relative;z-index:1;width:12px;height:12px;border-radius:999px;margin-top:10px;box-shadow:0 0 0 4px #eff6ff}
.gp-timeline-card{border:1px solid #dbeafe;background:linear-gradient(180deg,#ffffff 0%, #f8fbff 100%);border-radius:18px;padding:14px 16px;box-shadow:0 8px 26px rgba(59,130,246,.06)}
.gp-timeline-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:6px}
.gp-timeline-head strong{font-size:14px;font-weight:900;color:#0f172a}
.gp-timeline-head span{font-size:12px;color:#64748b;white-space:nowrap}
.gp-timeline-card p{margin:0;font-size:13px;line-height:1.65;color:#475569}
.gp-timeline-blue .gp-timeline-dot{background:#2563eb}
.gp-timeline-blue-soft .gp-timeline-dot{background:#60a5fa}
.gp-timeline-sky .gp-timeline-dot{background:#38bdf8}
.gp-timeline-sky-soft .gp-timeline-dot{background:#93c5fd}
.gp-timeline-gray .gp-timeline-dot{background:#94a3b8}
.gp-comment-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
.gp-comment-head strong{display:block;font-size:15px}
.gp-comment-head div div{margin-top:5px;font-size:12px;color:var(--gp-muted)}
.gp-comment-body{font-size:14px;line-height:1.7;color:#334155;white-space:pre-wrap}
.gp-icon-btn{width:34px;height:34px;border-radius:12px;border:1px solid var(--gp-border);background:#fff;cursor:pointer;font-size:15px;display:grid;place-items:center}
.gp-icon-btn.danger{color:#b91c1c;border-color:#fecaca;background:#fff5f5}

@media (max-width: 1200px){
  .gp-materials-grid{grid-template-columns:1fr}
  .gp-review-modal{grid-template-columns:1fr;height:min(96vh,100%)}
  .gp-review-modal-left{display:none}
}

@media (max-width: 720px){
  .gp-material-card{grid-template-columns:1fr}
  .gp-review-modal-head,.gp-review-modal-scroll{padding:18px}
  .gp-review-modal-head h2{font-size:28px}
}
.gpir-login-success{margin:0 0 16px;padding:12px 14px;border-radius:16px;background:rgba(18,107,255,.08);border:1px solid rgba(18,107,255,.18);color:#0f4fd6;font-weight:700}
.gpir-login-error{margin:0 0 16px;padding:12px 14px;border-radius:16px;background:rgba(255,59,48,.08);border:1px solid rgba(255,59,48,.18);color:#b42318;font-weight:700}
.gpir-login-admin-help{margin-top:18px;padding:14px 16px;border-radius:18px;background:#f8fafc;border:1px solid var(--gp-border);color:var(--gp-muted)}
.gpir-login-admin-help strong{display:block;color:var(--gp-text);margin-bottom:6px}


/* v1.0.12 review modal / accordion stability */
.gp-review-modal{max-height:92vh}
.gp-review-modal-right{position:relative;height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.gp-review-modal-scroll{position:relative;display:block;flex:1 1 auto;min-height:0;height:auto;overflow-y:auto;overflow-x:hidden;padding:24px 26px 32px;scroll-behavior:smooth}
.gp-review-modal-scroll > *{display:block;width:100%;margin-bottom:16px}
.gp-review-modal-scroll > *:last-child{margin-bottom:0}
.gp-accordion{display:block;width:100%;flex:0 0 auto;overflow:hidden}
.gp-accordion[open]{overflow:visible}
.gp-accordion summary{position:relative;background:#fff}
.gp-accordion-body{display:none;width:100%;height:auto;max-height:none;overflow:visible}
.gp-accordion[open] > .gp-accordion-body{display:flex;flex-direction:column;gap:16px}
.gp-accordion .gp-comment-list,.gp-accordion .gp-timeline{width:100%}
.gp-close-review-btn{position:relative;z-index:2}
@media (max-width:960px){
  .gp-review-modal{max-height:96vh}
  .gp-review-modal-scroll{padding:18px 18px 24px}
}

/* v1.0.13 modal and accordion hardening */
.gp-review-modal-right{height:100%;min-height:0;overflow:hidden}
.gp-review-modal-scroll{height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
.gp-accordion{display:block;width:100%;overflow:hidden}
.gp-accordion > summary{position:relative;z-index:1}
.gp-accordion > .gp-accordion-body{display:none;width:100%;padding:0 20px 20px;border-top:1px solid var(--gp-border)}
.gp-accordion[open] > .gp-accordion-body{display:block}
.gp-accordion[open] > .gp-accordion-body > * + *{margin-top:16px}
.gp-accordion[open] .gp-comment-list,
.gp-accordion[open] .gp-timeline,
.gp-accordion[open] .gp-form-actions-stack,
.gp-accordion[open] .gp-review-meta-list{display:flex;flex-direction:column}
.gp-accordion[open] .gp-timeline{gap:12px}
