.pcm-shell { --pcm-ink:#17211b; --pcm-green:#315c45; --pcm-paper:#f7f4eb; color:var(--pcm-ink); max-width:1120px; margin:48px auto; padding:0 20px; }
.pcm-shell.pcm-cabinet { max-width:none; margin:0; padding:0; }
.pcm-shell * { box-sizing:border-box; }
.pcm-shell h1,.pcm-shell h2,.pcm-shell h3 { line-height:1.15; }
.pcm-columns,.pcm-contests,.pcm-work-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.pcm-panel,.pcm-contest-card,.pcm-work { background:var(--pcm-paper); border:1px solid #d9d3c3; border-radius:4px; padding:24px; box-shadow:6px 6px 0 #e5dfcf; }
.pcm-shell form { display:grid; gap:14px; }
.pcm-shell label { display:grid; gap:6px; font-weight:600; }
.pcm-shell input:not([type="checkbox"]):not([type="radio"]),.pcm-shell textarea,.pcm-shell select { width:100%; border:1px solid #9c9b91; border-radius:3px; background:#fff; padding:10px 12px; color:var(--pcm-ink); font:inherit; }
.pcm-shell .pcm-check { display:flex; grid-template-columns:auto 1fr; align-items:flex-start; font-weight:400; }
.pcm-check input[type="checkbox"] { width:1rem; margin-top:4px; }
.pcm-check a { color:var(--pcm-green); font-weight:700; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px; }
.pcm-check a:hover,.pcm-check a:focus-visible { color:#1e3f2e; text-decoration-thickness:3px; }
.pcm-button { display:inline-block; width:max-content; border:1px solid var(--pcm-green); border-radius:3px; background:var(--pcm-green); color:#fff!important; padding:10px 16px; text-decoration:none; cursor:pointer; font:inherit; }
.pcm-button--quiet { background:transparent; color:var(--pcm-green)!important; }
.pcm-notice { margin:0 0 20px; border-left:5px solid #315c45; background:#edf5ee; padding:14px 16px; }
.pcm-notice--error { border-color:#9d322d; background:#faece9; }
.pcm-cabinet__top { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.pcm-cabinet-nav { display:flex; gap:8px; margin:24px 0 32px; border-bottom:1px solid #d9d3c3; }
.pcm-cabinet-nav a { min-height:44px; border:1px solid transparent; border-bottom:0; border-radius:6px 6px 0 0; padding:11px 18px; color:var(--pcm-green); font-weight:700; text-decoration:none; }
.pcm-cabinet-nav a:hover { background:#edf1e9; }
.pcm-cabinet-nav a.is-active { border-color:#d9d3c3; background:var(--pcm-paper); color:var(--pcm-ink); }
.pcm-cabinet-nav a:focus-visible { outline:3px solid #e2a83b; outline-offset:2px; }
.pcm-cabinet-section>h2 { margin-bottom:18px; }
.pcm-profile { grid-template-columns:repeat(3,minmax(0,1fr)); }
.pcm-profile .pcm-button { align-self:end; }
.pcm-contests { grid-template-columns:repeat(3,minmax(0,1fr)); margin-bottom:32px; }
.pcm-contest-card { display:flex; flex-direction:column; justify-content:space-between; gap:20px; height:100%; box-shadow:4px 4px 0 #e5dfcf; }
.pcm-contest-card__title { margin:0 0 24px; font-size:2em; }
.pcm-contest-card__status { display:grid; gap:8px; width:100%; }
.pcm-contest-card__status p { display:flex; justify-content:space-between; gap:16px; width:100%; margin:0; }
.pcm-contest-card__status strong { text-align:right; }
.pcm-contest-card>.pcm-button { margin-top:auto; }
.pcm-meta { color:#59645e; font-size:.9em; }
.pcm-contest-detail { margin-top:32px; }
.pcm-work-list { gap:16px; margin:20px 0 0; }
.pcm-work { background:#fff; box-shadow:none; }
.pcm-work__preview { display:block; width:100%; border:0; background:none; padding:0; cursor:zoom-in; }
.pcm-work__preview:focus-visible { outline:3px solid #e2a83b; outline-offset:3px; }
.pcm-gallery-empty { grid-column:1/-1; }
.pcm-result { border-top:1px solid #d9d3c3; padding-top:12px; font-weight:700; }
.pcm-photo-form { margin:16px 0; }
.pcm-link-danger { border:0; background:none; color:#9d322d; padding:8px 0; cursor:pointer; text-decoration:underline; }
.pcm-shell details { margin-top:18px; }
.pcm-shell summary { cursor:pointer; font-weight:700; }
.pcm-lightbox { position:fixed; inset:0; z-index:100000; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.92); padding:56px 24px 24px; }
.pcm-lightbox[hidden] { display:none; }
.pcm-lightbox__image { display:block; max-width:100%; max-height:calc(100vh - 90px); object-fit:contain; }
.pcm-lightbox__close { position:absolute; top:14px; right:18px; border:0; background:transparent; color:#fff; padding:4px 12px; cursor:pointer; font-size:40px; line-height:1; }
.pcm-lightbox__close:focus-visible { outline:3px solid #fff; }
body.pcm-lightbox-open { overflow:hidden; }
@media (max-width:900px) { .pcm-contest-workspace { grid-template-columns:1fr; } }
@media (max-width:760px) { .pcm-columns,.pcm-contests,.pcm-work-list,.pcm-profile { grid-template-columns:1fr; } .pcm-shell { margin:24px auto; } .pcm-panel,.pcm-contest-card,.pcm-work { padding:18px; box-shadow:3px 3px 0 #e5dfcf; } .pcm-cabinet-nav { overflow-x:auto; } .pcm-cabinet-nav a { flex:1 0 auto; text-align:center; } }

/* Auth page from the contest design system. */
.pcm-auth { --pcm-red:#dd1f1f; --pcm-red-dark:#b91616; --pcm-ink:#1f1f1f; --pcm-muted:#595959; --pcm-field:#f8f8f8; --pcm-line:#e6e6e6; display:grid; max-width:560px; margin:0 auto; padding:0; color:var(--pcm-ink); }
.pcm-auth__intro { display:grid; gap:12px; margin-bottom:32px; text-align:center; }
.pcm-auth__intro p { margin:0; color:var(--pcm-red); font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.pcm-auth__intro h2 { margin:0; font-size:clamp(30px,4vw,42px); font-weight:700; line-height:1.05; }
.pcm-auth__intro span { margin:0 auto; max-width:400px; color:var(--pcm-muted); font-size:15px; line-height:1.4; }
.pcm-auth__card { overflow:hidden; border-radius:20px; background:#fff; padding:0 32px 32px; box-shadow:0 18px 45px rgba(31,31,31,.07); }
.pcm-auth__tabs { display:grid; grid-template-columns:repeat(2,1fr); margin:0 -32px 28px; border-bottom:1px solid var(--pcm-line); }
.pcm-auth__tabs button { min-height:56px; border:0; border-bottom:2px solid transparent; background:none; padding:16px 12px 14px; color:var(--pcm-muted); font:inherit; font-weight:600; cursor:pointer; }
.pcm-auth__tabs button:hover { color:var(--pcm-ink); }
.pcm-auth__tabs button[aria-selected="true"] { border-bottom-color:var(--pcm-red); color:var(--pcm-ink); }
.pcm-auth__tabs button:focus-visible { outline:2px solid var(--pcm-ink); outline-offset:-2px; }
.pcm-auth form { gap:16px; }
.pcm-auth label { gap:8px; font-size:14px; font-weight:600; }
.pcm-auth input:not([type="checkbox"]):not([type="radio"]), .pcm-auth select { min-height:50px; border:1px solid var(--pcm-line); border-radius:30px; background:var(--pcm-field); padding:12px 20px; transition:border-color .2s ease, background-color .2s ease; }
.pcm-auth input:not([type="checkbox"]):not([type="radio"]):focus { border-color:var(--pcm-ink); background:#fff; }
.pcm-auth input::placeholder { color:#a3a3a3; }
.pcm-auth .pcm-button { display:flex; align-items:center; justify-content:center; width:100%; min-height:50px; border:0; border-radius:30px; background:var(--pcm-red); padding:12px 24px; font-weight:600; transition:background-color .2s ease; }
.pcm-auth .pcm-button:hover { background:var(--pcm-red-dark); }
.pcm-auth .pcm-button--quiet { background:none; color:var(--pcm-red)!important; }
.pcm-auth .pcm-button--quiet:hover { background:rgba(221,31,31,.08); }
.pcm-auth .pcm-check { justify-content:center; font-size:14px; font-weight:500; }
.pcm-auth .pcm-check a { color:var(--pcm-red); }
.pcm-auth__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.pcm-auth__reset { margin:20px 0 0; border-top:1px solid var(--pcm-line); padding-top:16px; }
.pcm-auth__reset summary { justify-content:center; color:var(--pcm-muted); font-weight:600; font-size:14px; }
.pcm-auth__reset[open] summary { margin-bottom:16px; }
.pcm-auth .pcm-notice { border:0; border-radius:12px; background:rgba(221,31,31,.06); margin-bottom:20px; }
.pcm-auth .pcm-notice--success { background:#edf5ee; }
@media (max-width:640px) { .pcm-auth__card { padding:0 20px 24px; } .pcm-auth__tabs { margin:0 -20px 24px; } .pcm-auth__grid { grid-template-columns:1fr; } .pcm-auth__intro { margin-bottom:24px; } }

/* Participant cabinet from the contest design system. */
.pcm-cabinet { --pcm-red:#dd1f1f; --pcm-red-dark:#b91616; --pcm-ink:#1f1f1f; --pcm-muted:#595959; --pcm-field:#f8f8f8; --pcm-line:#e6e6e6; max-width:1120px; margin:0 auto; padding:0; color:var(--pcm-ink); }
.pcm-cabinet__top { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:28px; }
.pcm-cabinet__heading { display:grid; gap:8px; }
.pcm-cabinet__heading p { margin:0; color:var(--pcm-red); font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.pcm-cabinet__heading h1 { margin:0; font-size:clamp(30px,4vw,42px); font-weight:700; line-height:1.05; }
.pcm-cabinet .pcm-notice { border:0; border-radius:12px; background:rgba(221,31,31,.06); margin:0 0 24px; }
.pcm-cabinet .pcm-notice--success { background:#edf5ee; }
.pcm-cabinet-nav { display:flex; gap:10px; margin:0 0 32px; }
.pcm-cabinet-nav a { min-height:44px; display:inline-flex; align-items:center; border-radius:30px; background:var(--pcm-field); padding:10px 22px; color:var(--pcm-muted); font-weight:600; text-decoration:none; transition:background-color .2s ease, color .2s ease; }
.pcm-cabinet-nav a:hover { background:#efefef; color:var(--pcm-ink); }
.pcm-cabinet-nav a.is-active { background:var(--pcm-ink); color:#fff; }
.pcm-cabinet-nav a:focus-visible { outline:2px solid var(--pcm-ink); outline-offset:2px; }
.pcm-cabinet .pcm-panel { border:0; border-radius:20px; background:#fff; padding:32px; box-shadow:0 18px 45px rgba(31,31,31,.07); }
.pcm-cabinet .pcm-panel>h2 { margin:0 0 24px; font-size:28px; font-weight:700; line-height:1.1; }
.pcm-cabinet-section>h2 { margin:0 0 24px; font-size:28px; font-weight:700; line-height:1.1; }
.pcm-cabinet form { gap:16px; }
.pcm-cabinet label { gap:8px; font-size:14px; font-weight:600; }
.pcm-cabinet input:not([type="checkbox"]):not([type="radio"]), .pcm-cabinet textarea, .pcm-cabinet select { min-height:50px; border:1px solid var(--pcm-line); border-radius:30px; background:var(--pcm-field); padding:12px 20px; color:var(--pcm-ink); font:inherit; transition:border-color .2s ease, background-color .2s ease; }
.pcm-cabinet textarea { border-radius:20px; min-height:120px; resize:vertical; }
.pcm-cabinet input:not([type="checkbox"]):not([type="radio"]):focus, .pcm-cabinet textarea:focus, .pcm-cabinet select:focus { border-color:var(--pcm-ink); background:#fff; }
.pcm-cabinet input[type="file"] { padding:10px 20px; }
.pcm-cabinet .pcm-button { display:inline-flex; align-items:center; justify-content:center; width:max-content; min-height:50px; border:0; border-radius:30px; background:var(--pcm-red); padding:12px 26px; color:#fff!important; font-weight:600; text-decoration:none; cursor:pointer; transition:background-color .2s ease; }
.pcm-cabinet .pcm-button:hover { background:var(--pcm-red-dark); }
.pcm-cabinet .pcm-button--quiet { background:none; color:var(--pcm-red)!important; }
.pcm-cabinet .pcm-button--quiet:hover { background:rgba(221,31,31,.08); }
.pcm-link-danger { border:0; background:none; color:var(--pcm-red); padding:8px 0; cursor:pointer; font:inherit; font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.pcm-link-danger:hover { color:var(--pcm-red-dark); }
.pcm-profile { grid-template-columns:repeat(3,minmax(0,1fr)); }
.pcm-profile .pcm-button { grid-column:1/-1; justify-self:start; }
.pcm-contests { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.pcm-contest-card { display:flex; flex-direction:column; gap:16px; height:100%; border-radius:20px; background:#fff; padding:24px; box-shadow:0 18px 45px rgba(31,31,31,.07); }
.pcm-contest-card__title { margin:0 0 8px; font-size:22px; font-weight:700; line-height:1.15; }
.pcm-contest-card__status { display:grid; gap:8px; }
.pcm-contest-card__status p { margin:0; color:var(--pcm-muted); font-size:14px; }
.pcm-contest-card__status strong { color:var(--pcm-ink); }
.pcm-contest-card>p { margin:0; color:var(--pcm-muted); font-size:14px; }
.pcm-contest-card>p strong { color:var(--pcm-ink); }
.pcm-contest-card>.pcm-button { margin-top:auto; }
.pcm-meta { color:var(--pcm-muted); font-size:13px; font-weight:600; }
.pcm-contest-detail { display:grid; }
.pcm-contest-detail__status, .pcm-contest-detail__counter { margin:0 0 16px; color:var(--pcm-muted); font-size:15px; }
.pcm-contest-detail__status strong, .pcm-contest-detail__counter strong { color:var(--pcm-ink); }
.pcm-contest-detail form.pcm-photo-form { margin:0; }
.pcm-contest-workspace { display:grid; grid-template-columns:1fr; gap:36px; align-items:start; }
.pcm-upload-column, .pcm-gallery-column { min-width:0; }
.pcm-upload-column>h3, .pcm-gallery-column>h3 { margin:0 0 16px; font-size:18px; font-weight:700; }
.pcm-photo-form { display:grid; gap:16px; border-radius:20px; background:var(--pcm-field); padding:24px; }
.pcm-photo-form__row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.pcm-photo-form .pcm-check { align-items:flex-start; font-size:14px; font-weight:500; }
.pcm-photo-form .pcm-check input[type="checkbox"] { margin-top:3px; }
.pcm-req { margin-left:1px; color:#dd1f1f; font-size:.7em; font-weight:700; line-height:1; vertical-align:super; }
.pcm-form__note { margin:0; color:var(--pcm-muted,#595959); font-size:12px; line-height:1.4; }
.pcm-form__note .pcm-req { margin-left:0; }
.pcm-work-list { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin:0; }
.pcm-work { overflow:hidden; border-radius:20px; background:#fff; box-shadow:0 18px 45px rgba(31,31,31,.07); }
.pcm-work__preview { display:block; position:relative; width:100%; border:0; background:none; padding:0; cursor:zoom-in; overflow:hidden; }
.pcm-work__preview:focus-visible { outline:3px solid var(--pcm-red); outline-offset:3px; }
.pcm-work__preview::after { content:"Увеличить"; position:absolute; inset:auto 0 0; padding:26px 12px 12px; background:linear-gradient(0deg,rgba(31,31,31,.72),transparent); color:#fff; font-size:13px; font-weight:600; text-align:center; opacity:0; transform:translateY(6px); transition:opacity .25s ease,transform .25s ease; pointer-events:none; }
.pcm-work__preview::before { content:"⤢"; position:absolute; top:12px; right:12px; z-index:1; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.92); color:var(--pcm-ink,#1f1f1f); font-size:16px; line-height:1; opacity:0; transform:scale(.8); transition:opacity .25s ease,transform .25s ease; pointer-events:none; }
.pcm-work__preview:hover::after, .pcm-work__preview:hover::before, .pcm-work__preview:focus-visible::after, .pcm-work__preview:focus-visible::before { opacity:1; transform:none; }
.pcm-work__image { display:block; width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; transition:transform .35s ease; }
.pcm-work__preview:hover .pcm-work__image, .pcm-work__preview:focus-visible .pcm-work__image { transform:scale(1.06); }
.pcm-work__body { display:grid; gap:8px; padding:16px; }
.pcm-work__body h3 { margin:0; font-size:16px; font-weight:700; }
.pcm-work__body p { margin:0; color:var(--pcm-muted); font-size:13px; line-height:1.45; }
.pcm-work__body>p:first-of-type { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.pcm-meta__release { display:inline-block; margin-left:6px; border-radius:999px; background:#edf5ee; padding:2px 8px; color:#315c45; font-size:11px; font-weight:700; }
.pcm-work__edit { border-top:1px solid var(--pcm-line); margin-top:8px; padding-top:12px; }
.pcm-work__edit summary { cursor:pointer; font-weight:600; font-size:14px; color:var(--pcm-muted); }
.pcm-work__edit[open] summary { margin-bottom:12px; }
.pcm-work__edit form { gap:12px; }
.pcm-work__edit .pcm-photo-form { background:none; padding:0; }
.pcm-work__edit .pcm-photo-form__row { grid-template-columns:1fr; }
.pcm-result { border-top:1px solid var(--pcm-line); padding-top:12px; color:var(--pcm-ink); font-weight:700; font-size:14px; }
.pcm-gallery-empty { grid-column:1/-1; margin:0; color:var(--pcm-muted); }
@media (max-width:900px) { .pcm-work-list { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:760px) { .pcm-contests { grid-template-columns:1fr; } .pcm-profile { grid-template-columns:1fr; } .pcm-work-list { grid-template-columns:repeat(2,minmax(0,1fr)); } .pcm-photo-form__row { grid-template-columns:1fr; } .pcm-cabinet .pcm-panel { padding:24px 20px; } .pcm-cabinet-nav { overflow-x:auto; } .pcm-cabinet-nav a { flex:1 0 auto; text-align:center; white-space:nowrap; } .pcm-cabinet__top { align-items:flex-start; flex-direction:column; gap:16px; } }
@media (max-width:480px) { .pcm-work-list { grid-template-columns:1fr; } }
