/* Portfolio Platform / login, administrator and editor UI */
:root{--paper:#f4f5f8;--card:#fff;--ink:#171923;--muted:#6e7381;--line:#dfe2ea;--line-strong:#cdd2dd;--accent:#635bff;--accent-strong:#4f46e5;--accent-soft:#efefff;--danger:#c13f4a;--danger-soft:#fff0f1;--ok:#18794e;--ok-soft:#eaf8f0;--warning:#986800;--shadow-sm:0 1px 2px rgba(23,25,35,.04),0 4px 14px rgba(23,25,35,.04);--shadow-lg:0 24px 70px rgba(31,35,48,.16);--radius-sm:9px;--radius:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth}[hidden]{display:none!important}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}input,textarea,select{width:100%;padding:11px 13px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#fff;color:var(--ink);transition:border-color .18s,box-shadow .18s,background .18s}input::placeholder,textarea::placeholder{color:#a4a8b3}input:hover,textarea:hover,select:hover{border-color:#b4bac8}input:focus,textarea:focus,select:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px rgba(99,91,255,.12)}textarea{min-height:94px;resize:vertical}label{display:block;margin-bottom:6px;color:#555b69;font-size:12px;font-weight:650}:focus-visible{outline:3px solid rgba(99,91,255,.28);outline-offset:2px}

/* Login */
.auth-page{min-height:100vh;display:grid;place-items:center;padding:32px;background:radial-gradient(circle at 8% 12%,rgba(99,91,255,.13),transparent 30%),radial-gradient(circle at 92% 88%,rgba(69,189,150,.12),transparent 27%),#eef0f5}.auth-shell{width:min(980px,100%);min-height:590px;display:grid;grid-template-columns:1.08fr .92fr;overflow:hidden;border:1px solid rgba(255,255,255,.8);border-radius:28px;background:var(--card);box-shadow:var(--shadow-lg)}.auth-showcase{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-width:0;padding:50px;overflow:hidden;color:#fff;background:#181927}.auth-showcase::before,.auth-showcase::after{content:"";position:absolute;border-radius:50%;pointer-events:none}.auth-showcase::before{width:390px;height:390px;top:-160px;right:-130px;background:radial-gradient(circle at 35% 35%,#8b86ff,#554be8 48%,transparent 69%);opacity:.9}.auth-showcase::after{width:300px;height:300px;right:16px;bottom:-160px;border:1px solid rgba(255,255,255,.15);box-shadow:0 0 0 42px rgba(255,255,255,.03),0 0 0 84px rgba(255,255,255,.025)}.auth-mark,.auth-copy,.auth-proof{position:relative;z-index:1}.auth-mark{display:flex;align-items:center;gap:11px;font-size:12px;font-weight:800;letter-spacing:.13em}.auth-logo{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#fff;color:#191a28;font-size:16px}.auth-copy h2{max-width:410px;margin:0 0 18px;font-size:clamp(34px,4vw,51px);line-height:1.12;letter-spacing:-.045em}.auth-copy p{max-width:430px;margin:0;color:#b8bbcb;font-size:15px;line-height:1.8}.auth-proof{display:flex;gap:9px;flex-wrap:wrap}.auth-proof span{padding:7px 11px;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#c8cad5;font-size:11px;background:rgba(255,255,255,.04)}.auth-panel{display:grid;place-items:center;padding:48px}.auth-card{width:min(360px,100%)}.auth-brand{margin-bottom:18px;color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.13em}.auth-card h1{margin:0 0 8px;font-size:31px;line-height:1.2;letter-spacing:-.035em}.auth-intro{margin:0 0 30px;color:var(--muted);font-size:13px}.auth-card .field{margin-bottom:17px}.password-field{position:relative}.password-field input{padding-right:62px}.password-toggle{position:absolute;right:7px;bottom:7px;height:31px;padding:0 9px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:12px}.password-toggle:hover{color:var(--ink);background:var(--paper)}.auth-card button[type=submit]{width:100%;min-height:45px;margin-top:5px;border:0;border-radius:10px;background:var(--accent);color:#fff;box-shadow:0 8px 20px rgba(99,91,255,.24);font-weight:750;letter-spacing:.08em;transition:transform .18s,background .18s,box-shadow .18s}.auth-card button[type=submit]:hover{transform:translateY(-1px);background:var(--accent-strong);box-shadow:0 10px 25px rgba(99,91,255,.3)}.error{min-height:21px;margin:7px 0;color:var(--danger);font-size:12px}.error.ok{color:var(--ok)}.hint{margin:24px 0 0;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.65}

/* Application shell */
.app-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:16px;min-height:64px;padding:0 max(24px,calc((100vw - 1180px)/2));background:rgba(23,25,35,.96);color:#f7f7fa;box-shadow:0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(16px)}.app-brand{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:800;letter-spacing:.09em;white-space:nowrap}.app-brand::before{content:"P";display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:linear-gradient(145deg,#857eff,#5c53ed);color:#fff;font-size:13px;letter-spacing:0}.app-bar .who{padding-left:16px;border-left:1px solid rgba(255,255,255,.15);color:#aeb1bd;font-size:12px;white-space:nowrap}.app-bar nav{margin-left:auto;display:flex;gap:8px;align-items:center}.app-bar nav a,.app-bar nav button{min-height:34px;display:inline-flex;align-items:center;justify-content:center;padding:6px 11px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:transparent;color:#e5e6eb;font-size:12px;transition:background .18s,border-color .18s}.app-bar nav a:hover,.app-bar nav button:hover{border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.08)}.app-main{width:min(1180px,100%);margin:0 auto;padding:34px 24px 96px}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin:4px 0 26px}.page-heading h1{margin:0 0 7px;font-size:29px;line-height:1.25;letter-spacing:-.035em}.page-heading p{margin:0;color:var(--muted);font-size:13px}.page-meta{color:var(--muted);font-size:12px;white-space:nowrap}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.summary-item{min-height:104px;padding:20px 22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm)}.summary-label{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.05em}.summary-value{display:block;margin-top:7px;font-size:27px;font-weight:780;line-height:1;letter-spacing:-.04em}.summary-note{margin-top:8px;color:var(--muted);font-size:11px}
.save-bar{position:sticky;top:64px;z-index:20;display:flex;align-items:center;justify-content:flex-end;gap:14px;margin:0 0 22px;padding:12px 14px;border:1px solid rgba(223,226,234,.9);border-radius:12px;background:rgba(255,255,255,.9);box-shadow:0 9px 28px rgba(28,30,42,.07);backdrop-filter:blur(12px)}.save-bar #status{margin-right:auto;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.save-bar #status::before{content:"";width:7px;height:7px;border-radius:50%;background:#aeb2bd;box-shadow:0 0 0 4px #f0f1f4}.save-bar #status.ok{color:var(--ok)}.save-bar #status.ok::before{background:var(--ok);box-shadow:0 0 0 4px var(--ok-soft)}.save-bar #status.dirty{color:var(--warning)}.save-bar #status.dirty::before{background:#d39b20;box-shadow:0 0 0 4px #fff7e3}.btn-primary{min-height:39px;padding:9px 20px;border:0;border-radius:9px;background:var(--accent);color:#fff;box-shadow:0 5px 14px rgba(99,91,255,.18);font-size:13px;font-weight:720;transition:transform .18s,background .18s}.btn-primary:hover{transform:translateY(-1px);background:var(--accent-strong)}.btn-ghost{min-height:33px;padding:6px 11px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:#4d5260;font-size:12px;transition:color .18s,border-color .18s,background .18s}.btn-ghost:hover{border-color:#aab0bf;background:#f8f8fb;color:var(--ink)}.btn-danger{color:var(--danger);border-color:#efcbd0}.btn-danger:hover{border-color:#e09ca4;background:var(--danger-soft);color:#a82f3a}

/* Panels and forms */
.card{margin-bottom:18px;padding:27px 29px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm)}.card>h2{margin:0 0 6px;font-size:16px;line-height:1.4;letter-spacing:-.015em}.card>.sub{max-width:820px;margin:0 0 23px;color:var(--muted);font-size:12px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 20px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px 20px}.form-action{display:flex;align-items:flex-end}.create-form{display:grid;grid-template-columns:1fr 1fr 1.15fr auto;gap:13px;align-items:end}.table-scroll{overflow-x:auto;margin:0 -8px;padding:0 8px}table.users{width:100%;min-width:820px;border-collapse:collapse}table.users th{padding:10px 11px;border-bottom:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:750;text-align:left;text-transform:uppercase;letter-spacing:.09em}table.users td{padding:14px 11px;border-bottom:1px solid #ebecef;vertical-align:middle}table.users tbody tr{transition:background .15s}table.users tbody tr:hover{background:#fafafe}table.users tbody tr:last-child td{border-bottom:0}table.users .actions{display:flex;gap:6px;flex-wrap:nowrap}.public-link{display:inline-block;margin-top:2px;color:var(--accent);font-size:11px;border-bottom:1px solid #c9c6ff}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid var(--line);border-radius:999px;font-size:10px;font-weight:700}.badge::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.badge.admin{border-color:#d8d5ff;background:var(--accent-soft);color:var(--accent-strong)}.badge.on{border-color:#bfe7d1;background:var(--ok-soft);color:var(--ok)}.badge.off{border-color:#f1c9cd;background:var(--danger-soft);color:var(--danger)}

/* Editor */
#editor{display:grid;gap:18px}#editor .card{margin-bottom:0}.item-block{margin:17px 0 0;padding:19px;border:1px solid #e0e2e8;border-radius:12px;background:#fafbfc}.item-head{display:flex;align-items:center;gap:10px;margin-bottom:17px;padding-bottom:12px;border-bottom:1px solid #e5e7ec}.item-head .no{display:grid;place-items:center;width:31px;height:31px;border-radius:8px;background:#eeeff4;color:#737887;font-size:11px;font-weight:800}.item-head .title-echo{min-width:0;flex:1;overflow:hidden;color:#353946;font-size:13px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.item-head .ops{display:flex;gap:5px}.item-head .ops button{min-height:29px;padding:3px 9px}.check-row{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:12px}.check-row input{width:auto;accent-color:var(--accent)}.upload-row{display:grid;grid-template-columns:110px minmax(160px,1fr) auto;gap:13px;align-items:center;min-height:82px;padding:10px;border:1px dashed #c8cbd6;border-radius:11px;background:#f8f8fb}.upload-row:hover{border-color:#aaa5ff;background:#f8f7ff}.upload-row .thumb{width:110px;height:72px;object-fit:cover;border:1px solid var(--line);border-radius:8px;background:#eceef3}.upload-row input[type=file]{min-width:0;padding:7px;border-color:transparent;background:transparent;font-size:11px}.upload-row input[type=file]::file-selector-button{margin-right:10px;padding:7px 10px;border:1px solid var(--line-strong);border-radius:7px;background:#fff;color:var(--ink);font:inherit;cursor:pointer}.upload-row .meta{color:var(--muted);font-size:10px;white-space:nowrap}.gallery-thumbs{display:flex;gap:9px;flex-wrap:wrap;margin-top:10px}.gallery-thumbs .g{position:relative;width:100px;height:70px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#eee}.gallery-thumbs .g img{display:block;width:100%;height:100%;object-fit:cover}.gallery-thumbs .g button{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:21px;height:21px;padding:0;border:0;border-radius:50%;background:rgba(24,25,35,.84);color:#fff;font-size:12px;line-height:1}.color-row{display:flex;gap:9px;align-items:center}.color-row input[type=color]{width:48px;height:43px;padding:3px}

@media(max-width:820px){.auth-page{padding:18px}.auth-shell{width:min(480px,100%);min-height:auto;grid-template-columns:1fr}.auth-showcase{min-height:190px;padding:27px 29px}.auth-copy h2{margin-top:32px;font-size:29px}.auth-copy p,.auth-proof{display:none}.auth-panel{padding:35px 29px 38px}.summary-grid{grid-template-columns:1fr}.summary-item{min-height:auto}.create-form,.grid-2,.grid-3{grid-template-columns:1fr}.form-action .btn-primary,.create-form .btn-primary{width:100%}}
@media(max-width:620px){.app-bar{min-height:58px;padding:9px 15px;gap:10px;flex-wrap:wrap}.app-brand{font-size:10px}.app-brand::before{width:26px;height:26px}.app-bar .who{max-width:120px;padding-left:10px;overflow:hidden;text-overflow:ellipsis}.app-bar nav{width:100%;margin-left:0;padding-top:7px;border-top:1px solid rgba(255,255,255,.1)}.app-bar nav a,.app-bar nav button{flex:1;min-height:32px;padding-inline:7px}.app-main{padding:25px 14px 78px}.page-heading{align-items:start;flex-direction:column;margin-bottom:20px}.page-heading h1{font-size:25px}.summary-grid{gap:10px}.save-bar{top:106px;padding:9px 10px}.save-bar #status{max-width:55%;line-height:1.35}.card{padding:21px 17px;border-radius:12px}.item-block{padding:15px 13px}.item-head{align-items:flex-start;flex-wrap:wrap}.item-head .title-echo{padding-top:5px}.item-head .ops{width:100%}.item-head .ops button{flex:1}.upload-row{grid-template-columns:86px 1fr}.upload-row .thumb{width:86px;height:64px}.upload-row .meta{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* Tinted editor sections and drag-and-drop media */
.card-experience{border-color:#ddd9ec;background:linear-gradient(145deg,#fff 0%,#fbfaff 100%);box-shadow:0 1px 2px rgba(54,43,91,.04),0 12px 32px rgba(88,72,137,.055)}
.card-experience>h2{color:#554875}.card-experience>.sub{color:#7a708f}.card-experience .item-block{border-color:#e4dfef;background:rgba(247,244,252,.72)}.card-experience .item-head .no{background:#ece7f5;color:#75658f}
.card-works{border-color:#d5e0e8;background:linear-gradient(145deg,#fff 0%,#f7fbfd 100%);box-shadow:0 1px 2px rgba(33,66,86,.04),0 12px 32px rgba(56,93,116,.055)}
.card-works>h2{color:#385d70}.card-works>.sub{color:#677f8c}.card-works .item-block{border-color:#dbe6eb;background:rgba(244,249,251,.78)}.card-works .item-head .no{background:#e4eff3;color:#52798b}
.drop-zone,.pdf-drop-zone,.gallery-drop-zone{transition:border-color .18s,background .18s,box-shadow .18s,transform .18s}.drop-zone.is-dragover,.pdf-drop-zone.is-dragover,.gallery-drop-zone.is-file-over{border-color:var(--accent);background:#f1f0ff;box-shadow:0 0 0 4px rgba(99,91,255,.1)}.drop-zone.is-uploading,.pdf-drop-zone.is-uploading{opacity:.68;pointer-events:none}.upload-picker{min-width:0}.upload-picker span{display:block;margin-top:3px;color:var(--muted);font-size:10px}.gallery-drop-zone{min-height:86px;padding:8px;border:1px dashed transparent;border-radius:11px}.gallery-add{height:70px;min-width:124px;border-style:dashed}.gallery-thumbs .g{width:112px;height:78px;cursor:grab;overflow:visible;transition:opacity .15s,transform .15s,box-shadow .15s}.gallery-thumbs .g:active{cursor:grabbing}.gallery-thumbs .g.is-dragging{opacity:.38;transform:scale(.96)}.gallery-thumbs .g.is-dragover{box-shadow:0 0 0 3px var(--accent);transform:translateY(-2px)}.gallery-actions{position:absolute;right:4px;bottom:4px;display:flex;gap:3px;opacity:0;transform:translateY(3px);transition:opacity .15s,transform .15s}.gallery-thumbs .g:hover .gallery-actions,.gallery-thumbs .g:focus .gallery-actions,.gallery-thumbs .g:focus-within .gallery-actions{opacity:1;transform:none}.gallery-thumbs .g .gallery-actions button{position:static;width:23px;height:23px;background:rgba(24,25,35,.88)}
.pdf-field{margin-top:17px}.pdf-drop-zone{display:grid;grid-template-columns:46px minmax(0,1fr) minmax(180px,.7fr) auto;gap:13px;align-items:center;min-height:76px;padding:11px 12px;border:1px dashed #c8d7df;border-radius:11px;background:rgba(247,251,252,.9)}.pdf-icon{display:grid;place-items:center;width:42px;height:48px;border-radius:8px;background:#e9515f;color:#fff;font-size:10px;font-weight:850;letter-spacing:.08em;box-shadow:0 5px 12px rgba(193,63,74,.16)}.pdf-main{min-width:0}.pdf-main strong,.pdf-main span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-main strong{font-size:12px}.pdf-main span{margin-top:2px;color:var(--muted);font-size:10px}.pdf-drop-zone input[type=file]{min-width:0;padding:7px;border-color:transparent;background:transparent;font-size:11px}.pdf-drop-zone input[type=file]::file-selector-button{margin-right:9px;padding:7px 10px;border:1px solid var(--line-strong);border-radius:7px;background:#fff;font:inherit;cursor:pointer}.pdf-download-setting{margin:10px 2px 0;color:#586976}
@media(max-width:620px){.pdf-drop-zone{grid-template-columns:46px minmax(0,1fr)}.pdf-drop-zone input[type=file],.pdf-drop-zone>.btn-danger{grid-column:1/-1}.gallery-thumbs .g{width:104px}.gallery-actions{opacity:1;transform:none}}

/* Color-rich accordion treatment */
.card-experience,.card-works{position:relative;overflow:hidden;padding-top:34px}
.card-experience::before,.card-works::before{content:"";position:absolute;inset:0 0 auto;height:7px}
.card-experience::before{background:linear-gradient(90deg,#6f63e9 0%,#9b6bdc 38%,#d96ea8 72%,#ee9a68 100%)}
.card-works::before{background:linear-gradient(90deg,#3977dd 0%,#3fa7d6 36%,#47b8ae 68%,#84bd69 100%)}
.card-experience>h2,.card-works>h2{display:flex;align-items:center;gap:10px;font-size:18px}
.card-experience>h2::before,.card-works>h2::before{content:"";width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 5px rgba(111,99,233,.1)}
.card-experience>h2::before{background:#8069dc}.card-works>h2::before{background:#3d9dbd;box-shadow:0 0 0 5px rgba(61,157,189,.1)}
.accordion-item{--tone-a:#7367df;--tone-b:#9b6cdd;margin-top:13px;padding:0;overflow:hidden;background:rgba(255,255,255,.82);border-color:color-mix(in srgb,var(--tone-a) 22%,#dfe2ea);transition:border-color .2s,box-shadow .2s,transform .2s}
.accordion-item:nth-of-type(6n+2){--tone-a:#397ed6;--tone-b:#55a8df}.accordion-item:nth-of-type(6n+3){--tone-a:#279a92;--tone-b:#58b998}.accordion-item:nth-of-type(6n+4){--tone-a:#d88138;--tone-b:#e8ae57}.accordion-item:nth-of-type(6n+5){--tone-a:#c95d8c;--tone-b:#df7a94}.accordion-item:nth-of-type(6n+6){--tone-a:#6657c9;--tone-b:#8777df}
.accordion-item[open]{border-color:color-mix(in srgb,var(--tone-a) 42%,#dfe2ea);box-shadow:0 10px 28px color-mix(in srgb,var(--tone-a) 11%,transparent)}
.accordion-item:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--tone-a) 17%,transparent),0 12px 30px color-mix(in srgb,var(--tone-a) 10%,transparent)}
.accordion-item>.item-head{margin:0;padding:14px 16px;border:0;cursor:pointer;list-style:none;user-select:none}.accordion-item>.item-head::-webkit-details-marker{display:none}.accordion-item[open]>.item-head{border-bottom:1px solid color-mix(in srgb,var(--tone-a) 16%,#e5e7ec);background:linear-gradient(90deg,color-mix(in srgb,var(--tone-a) 7%,#fff),transparent 68%)}
.accordion-item .item-head .no{width:42px;height:42px;flex:none;border-radius:12px;background:linear-gradient(145deg,var(--tone-a),var(--tone-b));color:#fff;font-size:13px;letter-spacing:.06em;box-shadow:0 7px 16px color-mix(in srgb,var(--tone-a) 25%,transparent)}
.accordion-item .title-echo{font-size:14px}.accordion-chevron{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:color-mix(in srgb,var(--tone-a) 9%,#fff);color:var(--tone-a);font-size:25px;line-height:1;transition:transform .2s,background .2s}.accordion-item[open] .accordion-chevron{transform:rotate(90deg);background:color-mix(in srgb,var(--tone-a) 15%,#fff)}
.item-body{padding:18px;animation:item-reveal .2s ease}.item-actions{display:flex;justify-content:flex-end;gap:6px;margin:-2px 0 15px}.item-actions .btn-ghost:first-child,.item-actions .btn-ghost:nth-child(2){color:var(--tone-a);border-color:color-mix(in srgb,var(--tone-a) 25%,#dfe2ea)}.inline-setting{display:flex;align-items:center;gap:8px;margin:13px 0}
@keyframes item-reveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@media(max-width:620px){.card-experience,.card-works{padding-top:28px}.accordion-item>.item-head{padding:12px}.accordion-item .item-head .no{width:37px;height:37px;border-radius:10px}.accordion-chevron{width:29px;height:29px}.item-body{padding:14px 12px}.item-actions{justify-content:stretch}.item-actions button{flex:1}}

/* Bright, clean editor section hierarchy */
#view-site{border-color:transparent!important;background:linear-gradient(135deg,#2563eb,#06b6d4)!important;color:#fff!important;font-weight:780;box-shadow:0 7px 18px rgba(14,165,233,.28)}
#view-site:hover{background:linear-gradient(135deg,#1d4ed8,#0891b2)!important;box-shadow:0 9px 22px rgba(14,165,233,.36);transform:translateY(-1px)}
#editor .card{--section-a:#2563eb;--section-b:#38bdf8;--section-soft:#eff6ff;position:relative;overflow:hidden;padding-top:31px;border-color:color-mix(in srgb,var(--section-a) 18%,#dfe2ea)}
#editor .card::before{content:"";position:absolute;inset:0 0 auto;height:6px;background:linear-gradient(90deg,var(--section-a),var(--section-b))}
#editor .card>h2{display:flex;align-items:center;gap:12px;margin:0 0 9px;padding:10px 13px;border-radius:12px;background:linear-gradient(90deg,var(--section-soft),#fff 82%);color:#182033;font-size:18px;letter-spacing:-.02em}
#editor .card>h2::before{display:none}
.section-index{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:11px;background:linear-gradient(145deg,var(--section-a),var(--section-b));color:#fff;font-size:13px;font-weight:850;letter-spacing:.06em;box-shadow:0 7px 16px color-mix(in srgb,var(--section-a) 25%,transparent)}
.section-name{font-weight:800}
.card-section-1{--section-a:#2563eb!important;--section-b:#38bdf8!important;--section-soft:#eff6ff!important}
.card-section-2{--section-a:#7c3aed!important;--section-b:#c084fc!important;--section-soft:#faf5ff!important}
.card-section-3{--section-a:#db2777!important;--section-b:#fb7185!important;--section-soft:#fff1f7!important}
.card-section-4{--section-a:#f97316!important;--section-b:#fbbf24!important;--section-soft:#fff7ed!important}
.card-section-5{--section-a:#059669!important;--section-b:#2dd4bf!important;--section-soft:#ecfdf5!important}
.card-section-6{--section-a:#4f46e5!important;--section-b:#818cf8!important;--section-soft:#eef2ff!important}
.card-section-7{--section-a:#16a34a!important;--section-b:#4ade80!important;--section-soft:#f0fdf4!important}
.card-experience::before{background:linear-gradient(90deg,#7c3aed,#ec4899,#fb7185)!important}.card-works::before{background:linear-gradient(90deg,#2563eb,#06b6d4,#22c55e)!important}
.accordion-item{--tone-a:#7c3aed;--tone-b:#c084fc}.accordion-item:nth-of-type(6n+2){--tone-a:#2563eb;--tone-b:#38bdf8}.accordion-item:nth-of-type(6n+3){--tone-a:#059669;--tone-b:#34d399}.accordion-item:nth-of-type(6n+4){--tone-a:#f97316;--tone-b:#fbbf24}.accordion-item:nth-of-type(6n+5){--tone-a:#e11d48;--tone-b:#fb7185}.accordion-item:nth-of-type(6n+6){--tone-a:#4f46e5;--tone-b:#8b5cf6}
@media(max-width:620px){#editor .card{padding-top:26px}#editor .card>h2{padding:9px 10px;font-size:16px}.section-index{width:35px;height:35px;border-radius:10px}}

/* Collapsible gradient section bars with vector icons */
#editor .section-card{padding:0;border-color:color-mix(in srgb,var(--section-a) 22%,#dfe2ea);background:#fff}
#editor .section-card::before{display:none}
.section-head{display:flex;align-items:center;gap:14px;min-height:76px;padding:13px 18px;list-style:none;cursor:pointer;color:#fff;background:linear-gradient(105deg,var(--section-a),var(--section-b));user-select:none;transition:filter .18s,box-shadow .18s}
.section-head::-webkit-details-marker{display:none}.section-head:hover{filter:saturate(1.08) brightness(1.03);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.section-head:focus-visible{outline:3px solid color-mix(in srgb,var(--section-a) 35%,#fff);outline-offset:3px}
.section-icon{width:44px;height:44px;flex:none;padding:9px;border:1px solid rgba(255,255,255,.34);border-radius:13px;background:rgba(255,255,255,.18);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 8px rgba(25,30,55,.12))}
.section-title-block{display:flex;min-width:0;flex:1;flex-direction:column;gap:1px}.section-head .section-index{display:block;width:auto;height:auto;border-radius:0;background:none;color:rgba(255,255,255,.76);box-shadow:none;font-size:9px;font-weight:800;line-height:1.3;letter-spacing:.16em}.section-head .section-name{overflow:hidden;color:#fff;font-size:19px;font-weight:820;line-height:1.3;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 7px rgba(28,33,55,.13)}
.section-chevron{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:50%;background:rgba(255,255,255,.18);font-size:29px;line-height:1;transition:transform .22s,background .18s}.section-card[open]>.section-head .section-chevron{transform:rotate(90deg);background:rgba(255,255,255,.28)}
.section-body{padding:24px 29px 29px;animation:section-reveal .22s ease}.section-body>.sub{max-width:820px;margin:0 0 23px;color:var(--muted);font-size:12px}
@keyframes section-reveal{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
@media(max-width:620px){#editor .section-card{padding:0}.section-head{min-height:66px;padding:11px 13px;gap:11px}.section-icon{width:39px;height:39px;padding:8px;border-radius:11px}.section-head .section-name{font-size:17px}.section-chevron{width:31px;height:31px}.section-body{padding:20px 17px 24px}}

/* Switchable dashboard layout and entry motion */
.layout-toggle{min-width:130px;color:#31546c;border-color:#b9dbe9;background:#f0fbff;font-weight:730}.layout-toggle:hover{color:#075985;border-color:#67c8e6;background:#e4f8ff}
.section-drag{display:none}
#editor.layout-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:start}
#editor.layout-grid>.section-card{min-width:0;margin:0;transition:transform .18s,box-shadow .18s,opacity .18s}
#editor.layout-grid>.section-card[open]{grid-column:1/-1}
#editor.layout-grid>.section-card:not([open])>.section-head{position:relative;min-height:142px;align-items:flex-start;padding:22px;border-radius:13px}
#editor.layout-grid>.section-card:not([open]) .section-icon{order:2;width:60px;height:60px;margin:-3px 0 0 auto;padding:12px;border:0;background:rgba(255,255,255,.2);opacity:.68}
#editor.layout-grid>.section-card:not([open]) .section-title-block{align-self:center;order:1;min-width:0}
#editor.layout-grid>.section-card:not([open]) .section-head .section-name{font-size:18px;white-space:normal}
#editor.layout-grid>.section-card:not([open]) .section-chevron{position:absolute;right:16px;bottom:14px;width:27px;height:27px;font-size:22px}
#editor.layout-grid .section-drag{position:absolute;left:22px;bottom:17px;display:inline-flex;align-items:center;padding:3px 8px;border:1px solid rgba(255,255,255,.28);border-radius:999px;color:rgba(255,255,255,.82);background:rgba(255,255,255,.12);font-size:9px;font-weight:750;letter-spacing:.06em;cursor:grab;touch-action:none}
#editor.layout-grid .section-drag:active{cursor:grabbing}
#editor.layout-grid>.section-card:not([open]):hover{transform:translateY(-3px);box-shadow:0 15px 32px color-mix(in srgb,var(--section-a) 20%,transparent)}
#editor.layout-grid>.section-card.is-section-dragging{opacity:.35;transform:scale(.97)}
#editor.layout-grid>.section-card.is-section-dragover{box-shadow:0 0 0 4px color-mix(in srgb,var(--section-a) 24%,transparent);transform:translateY(-4px)}
.entry-loader{position:fixed;z-index:100;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 38%,#fff 0,#f5f6fb 45%,#edf0f6 100%);opacity:1;visibility:visible;transition:opacity .42s ease,visibility .42s ease}
.entry-loader[hidden]{display:none}.entry-loader.is-leaving{opacity:0;visibility:hidden}
.entry-loader-panel{display:flex;width:min(330px,calc(100vw - 44px));align-items:center;flex-direction:column;padding:35px 32px 30px;border:1px solid rgba(255,255,255,.9);border-radius:23px;background:rgba(255,255,255,.78);box-shadow:0 24px 70px rgba(42,49,77,.13);backdrop-filter:blur(15px);color:#212539;text-align:center}
.entry-loader-logo{display:grid;place-items:center;width:58px;height:58px;margin-bottom:17px;border-radius:17px;background:linear-gradient(145deg,#635bff,#06b6d4);color:#fff;font-size:25px;font-weight:850;box-shadow:0 13px 28px rgba(99,91,255,.25);animation:loader-float 1.1s ease-in-out infinite alternate}.entry-loader-panel strong{font-size:12px;letter-spacing:.13em}.entry-loader-panel>span:nth-of-type(2){margin-top:6px;color:var(--muted);font-size:11px}
.entry-loader-track{width:100%;height:4px;margin-top:24px;overflow:hidden;border-radius:999px;background:#e8eaf1}.entry-loader-track i{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#635bff,#06b6d4);animation:loader-progress .85s ease-in-out infinite}
.portal-entering #editor>.section-card{animation:portal-card-in .52s both}.portal-entering #editor>.section-card:nth-child(2){animation-delay:.06s}.portal-entering #editor>.section-card:nth-child(3){animation-delay:.12s}.portal-entering #editor>.section-card:nth-child(4){animation-delay:.18s}.portal-entering #editor>.section-card:nth-child(5){animation-delay:.24s}.portal-entering #editor>.section-card:nth-child(6){animation-delay:.3s}.portal-entering #editor>.section-card:nth-child(7){animation-delay:.36s}
@keyframes loader-float{to{transform:translateY(-5px)}}@keyframes loader-progress{from{transform:translateX(-115%)}to{transform:translateX(250%)}}@keyframes portal-card-in{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:1040px){#editor.layout-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.save-bar{flex-wrap:wrap}.save-bar #status{order:1;max-width:none;width:100%}.layout-toggle{order:2;flex:1}.save-bar #save-site{order:3;flex:1}#editor.layout-grid{grid-template-columns:1fr;gap:13px}#editor.layout-grid>.section-card:not([open])>.section-head{min-height:118px;padding:18px}#editor.layout-grid .section-drag{left:18px;bottom:13px}#editor.layout-grid>.section-card:not([open]) .section-icon{width:52px;height:52px}}
@media(prefers-reduced-motion:reduce){.entry-loader-logo,.entry-loader-track i,.portal-entering #editor>.section-card{animation:none!important}.entry-loader{transition:none}}

/* Three-mode floating layout switcher */
.layout-fab{position:fixed;right:28px;bottom:28px;z-index:60;display:flex;align-items:flex-end;flex-direction:column;gap:12px}.layout-fab-trigger{position:relative;display:grid;place-items:center;width:64px;height:64px;padding:0;border:0;border-radius:50%;background:linear-gradient(145deg,#635bff,#06b6d4);color:#fff;box-shadow:0 13px 30px rgba(54,86,214,.34);font-size:12px;font-weight:820;letter-spacing:.08em;animation:layout-fab-float 2.3s ease-in-out infinite}.layout-fab-trigger::before{content:"";position:absolute;inset:-7px;border:1px solid rgba(99,91,255,.26);border-radius:inherit;animation:layout-fab-ring 2.3s ease-out infinite}.layout-fab-trigger:hover{transform:translateY(-2px);box-shadow:0 17px 34px rgba(54,86,214,.42)}
.layout-fab-menu{display:flex;align-items:flex-end;flex-direction:column;gap:8px;pointer-events:none}.layout-fab-menu button{display:flex;min-width:142px;align-items:center;gap:10px;padding:9px 12px;border:1px solid rgba(210,215,229,.9);border-radius:12px;background:rgba(255,255,255,.94);color:#444b5d;box-shadow:0 10px 25px rgba(35,41,64,.12);opacity:0;transform:translateY(12px) scale(.94);transition:opacity .2s,transform .2s,border-color .18s}.layout-fab-menu button span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#eef0f7;color:#697086;font-size:9px;font-weight:850}.layout-fab-menu button strong{font-size:12px}.layout-fab.is-open .layout-fab-menu{pointer-events:auto}.layout-fab.is-open .layout-fab-menu button{opacity:1;transform:none}.layout-fab.is-open .layout-fab-menu button:nth-child(2){transition-delay:.045s}.layout-fab.is-open .layout-fab-menu button:nth-child(1){transition-delay:.09s}.layout-fab-menu button:hover,.layout-fab-menu button.is-selected{border-color:#8e88ff;background:#f7f6ff;color:#4f46e5}.layout-fab-menu button.is-selected span{background:linear-gradient(145deg,#635bff,#06b6d4);color:#fff}
@keyframes layout-fab-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes layout-fab-ring{0%{opacity:.8;transform:scale(.84)}75%,100%{opacity:0;transform:scale(1.16)}}

/* Left navigation editor layout */
#editor.layout-sidebar{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start}
#editor.layout-sidebar>.section-card{display:none;grid-column:2;grid-row:1;min-width:0;margin:0}
#editor.layout-sidebar>.section-card.is-sidebar-active{display:block}
.section-sidebar{position:sticky;top:142px;grid-column:1;grid-row:1;overflow:hidden;border-radius:17px;background:linear-gradient(180deg,#119477,#08715e);box-shadow:0 16px 38px rgba(8,113,94,.22);color:#fff}
.section-sidebar-brand{padding:20px 18px 15px;border-bottom:1px solid rgba(255,255,255,.14)}.section-sidebar-brand strong,.section-sidebar-brand span{display:block}.section-sidebar-brand strong{font-size:15px}.section-sidebar-brand span{margin-top:2px;color:rgba(255,255,255,.62);font-size:8px;letter-spacing:.16em}
.section-sidebar-link{--section-a:#2dd4bf;--section-b:#22c55e;display:flex;width:100%;align-items:center;gap:11px;padding:12px 15px;border:0;border-bottom:1px solid rgba(255,255,255,.09);background:transparent;color:rgba(255,255,255,.82);text-align:left;transition:background .18s,color .18s,transform .18s}.section-sidebar-link:last-child{border-bottom:0}.section-sidebar-link:hover{background:rgba(255,255,255,.1);color:#fff}.section-sidebar-link.is-active{background:linear-gradient(100deg,var(--section-a),var(--section-b));color:#fff;box-shadow:inset 4px 0 #fff}.section-sidebar-link .section-icon{width:31px;height:31px;padding:6px;border-radius:9px}.section-sidebar-link>span{min-width:0}.section-sidebar-link small,.section-sidebar-link strong{display:block}.section-sidebar-link small{color:rgba(255,255,255,.62);font-size:8px;letter-spacing:.13em}.section-sidebar-link strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
#editor.layout-sidebar .section-drag{display:none}.is-pane-entering{animation:sidebar-pane-in .3s ease both}@keyframes sidebar-pane-in{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}
@media(max-width:820px){#editor.layout-sidebar{grid-template-columns:1fr;gap:14px}.section-sidebar{position:sticky;top:154px;z-index:12;display:flex;grid-column:1;grid-row:1;gap:5px;padding:7px;overflow-x:auto;border-radius:13px}.section-sidebar-brand{display:none}.section-sidebar-link{min-width:126px;flex:none;padding:9px 10px;border:0;border-radius:9px}.section-sidebar-link.is-active{box-shadow:inset 0 -3px #fff}.section-sidebar-link .section-icon{width:28px;height:28px}#editor.layout-sidebar>.section-card{grid-column:1;grid-row:2}.layout-fab{right:17px;bottom:18px}.layout-fab-trigger{width:57px;height:57px}.layout-fab-menu button{min-width:134px}}
@media(prefers-reduced-motion:reduce){.layout-fab-trigger,.layout-fab-trigger::before,.is-pane-entering{animation:none!important}}

/* Full-height sidebar and heading-mounted layout control */
.page-heading-actions{display:flex;align-items:center;gap:14px}
.page-heading .layout-fab{position:relative;right:auto;bottom:auto;z-index:25;display:block}
.page-heading .layout-fab-trigger{width:46px;height:46px;font-size:10px;box-shadow:0 9px 23px rgba(54,86,214,.28)}
.page-heading .layout-fab-menu{position:absolute;top:calc(100% + 12px);right:0;align-items:flex-end}
.section-sidebar-link.is-active{background:rgba(255,255,255,.13);color:#fff;box-shadow:inset 3px 0 rgba(255,255,255,.92)}
.section-sidebar-link.is-active .section-icon{background:rgba(255,255,255,.22)}
@media(min-width:821px){
  body.editor-sidebar-active .app-main{width:min(1180px,calc(100% - 220px));margin-right:0;margin-left:calc(220px + max(0px,(100vw - 1400px)/2));transition:width .28s ease,margin-left .28s ease}
  #editor.layout-sidebar{display:block}
  #editor.layout-sidebar>.section-card{margin:0}
  .section-sidebar{position:fixed;z-index:30;top:64px;bottom:0;left:0;width:220px;overflow-x:hidden;overflow-y:auto;border-radius:0;box-shadow:10px 0 30px rgba(8,113,94,.14)}
}
@media(max-width:820px){
  .page-heading-actions{width:100%;justify-content:flex-end}
  .page-heading .layout-fab{right:auto;bottom:auto}
  .page-heading .layout-fab-trigger{width:44px;height:44px}
  .section-sidebar-link.is-active{box-shadow:inset 0 -3px rgba(255,255,255,.92)}
}

/* Left-opening layout menu and dark collapsible sidebar panels */
.section-sidebar{background:linear-gradient(180deg,#202637,#141925);box-shadow:8px 0 26px rgba(17,24,39,.15)}
.page-heading .layout-fab-menu{top:50%;right:calc(100% + 16px);transform:translateY(-50%);flex-direction:row;gap:8px;padding:8px;border-radius:16px;background:#f4f5f8;visibility:hidden}
.page-heading .layout-fab.is-open .layout-fab-menu{visibility:visible}
.page-heading .layout-fab-menu button{min-width:112px;white-space:nowrap;transform:translateX(18px) scale(.94)}
.page-heading .layout-fab.is-open .layout-fab-menu button{transform:none}
#editor.layout-sidebar>.section-card>.section-head{height:var(--sidebar-collapsed-height,300px);min-height:0;transition:height .48s cubic-bezier(.22,.68,.25,1),filter .18s;position:relative}
#editor.layout-sidebar>.section-card[open]>.section-head{height:76px}
#editor.layout-sidebar>.section-card:not([open])>.section-head::after{content:"点击展开编辑";position:absolute;left:18px;bottom:22px;color:rgba(255,255,255,.8);font-size:12px}
@media(max-width:820px){.section-sidebar-link{width:auto} .page-heading .layout-fab-menu{gap:5px;padding:6px}.page-heading .layout-fab-menu button{min-width:0;flex-direction:column;gap:4px;padding:7px 8px}.page-heading .layout-fab-menu button strong{font-size:11px}.page-heading .layout-fab-menu button span{width:24px;height:24px}}
@media(max-width:620px){#editor.layout-sidebar>.section-card[open]>.section-head{height:66px}}
@media(prefers-reduced-motion:reduce){#editor.layout-sidebar>.section-card>.section-head{transition:none}}

@media(max-width:360px){.page-heading .layout-fab-menu{right:calc(100% + 10px);gap:3px;padding:4px}.page-heading .layout-fab-menu button{padding:6px 5px}.page-heading .layout-fab-menu button strong{font-size:10px}}

/* Student identity and authorization */
.student-brand{display:flex;align-items:center;gap:10px;min-width:0;max-width:240px;border:0;background:transparent;color:#fff;padding:0;text-align:left}
.student-brand img,.student-brand #avatar-fallback{width:36px;height:36px;flex:none;border-radius:50%;object-fit:cover;background:#655bfa;color:white}
.student-brand #avatar-fallback{display:grid;place-items:center;font-weight:800}.student-brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.license-badge{font-size:11px;color:#c2eee1;border:1px solid #467269;padding:5px 9px;border-radius:8px;white-space:nowrap}
.login-avatar{width:42px;height:42px;object-fit:cover;border-radius:50%}.list-avatar{width:32px;height:32px;object-fit:cover;border-radius:50%;vertical-align:middle;margin-right:8px}
#profile-card{scroll-margin-top:150px}#profile-card>input{margin-bottom:14px}#profile-card .check-row{margin:14px 0}#profile-card #personal-login{color:#4f46e5}
.users small{display:block;margin:5px 0}.create-form{flex-wrap:wrap}
@media(max-width:1100px){.app-bar:has(.student-brand){flex-wrap:wrap;padding:12px 18px;gap:9px}.app-bar:has(.student-brand) nav{margin-left:auto}.license-badge{font-size:10px}}

body:has(.student-brand) .save-bar{top:var(--appbar-height,64px)}
@media(min-width:821px){body:has(.student-brand) .section-sidebar{top:var(--appbar-height,64px)}}

@media(min-width:821px){.create-form{grid-template-columns:1fr 1fr 1.15fr 1fr auto;align-items:start}.create-form>div:last-child{padding-top:25px}}

@media(max-width:820px){body:has(.student-brand) .section-sidebar{top:calc(var(--appbar-height,96px) + var(--savebar-height,90px) + 12px)}}

/* Per-student login copy */
.auth-copy h2,.auth-copy p,.auth-card .hint{white-space:pre-line;overflow-wrap:anywhere}
.auth-mark{overflow-wrap:anywhere}.auth-mark #login-name{min-width:0}
.auth-proof span{overflow-wrap:anywhere;max-width:100%}
#profile-card textarea{margin-bottom:16px}#profile-card h3{margin-top:26px}.login-tag-fields{margin-bottom:16px}

@media(max-width:820px){.auth-copy p{display:block;font-size:13px;margin-top:14px}.auth-proof{display:flex;margin-top:20px;gap:6px}.auth-proof span{font-size:10px;padding:5px 9px}}

.auth-card .hint{text-align:center}
.student-brand{max-width:310px}.identity-edit-cue{font-size:20px;color:#c9c6ff}.identity-edit-label{font-size:10px;color:#b9bdce;white-space:nowrap}
.profile-avatar-preview{display:flex;align-items:center;gap:15px;margin:18px 0;color:var(--muted);font-size:12px}
.profile-avatar-preview img,.profile-avatar-preview #profile-avatar-initial{width:88px;height:88px;flex:none;object-fit:cover;border-radius:50%;background:#635bff;color:#fff}
#profile-avatar-initial{display:grid;place-items:center;font-size:28px}
.login-tag-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.login-tag-row{display:flex;gap:7px;min-width:0}.login-tag-row input{min-width:0}.login-tag-row button{flex:none}
#add-login-tag{margin-bottom:20px}.login-preview-return{display:block;margin:0 0 18px;padding:10px 12px;text-align:center;background:#efefff;color:#4f46e5;border-radius:9px}
@media(max-width:820px){.login-tag-fields{grid-template-columns:1fr}.identity-edit-label{display:none}}

/* Personal editor temporarily retracts navigation without changing content width. */
.student-brand{gap:9px}.student-brand strong{line-height:1.35}
.identity-edit-cue{display:inline-flex;align-items:center;justify-content:center;align-self:center;width:16px;height:20px;line-height:1;font-family:Arial,sans-serif;transform:translateY(-2px);flex:none}
.section-sidebar{transform:translateX(0);opacity:1;transition:transform .48s cubic-bezier(.22,.68,.25,1),opacity .35s ease;will-change:transform}
.personal-editing .section-sidebar{transform:translateX(calc(-100% - 24px));opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){.section-sidebar{transition:none}}

/* Profile disclosure icon shares the name's center line. */
.student-brand .identity-edit-cue{display:block;align-self:center;width:18px;height:18px;padding:0;margin:0;flex:none;transform:rotate(0deg);transform-origin:center;transition:transform .26s ease;color:#c9c6ff}
.student-brand[aria-expanded="true"] .identity-edit-cue{transform:rotate(180deg)}
#save-profile{scroll-margin-top:calc(var(--appbar-height,64px) + var(--savebar-height,64px) + 24px)}
@media(prefers-reduced-motion:reduce){.student-brand .identity-edit-cue{transition:none}}

/* The entire save toolbar softly gains color as the page scrolls. */
.save-bar{isolation:isolate;background:#fff;--save-bar-tint:0}
.save-bar::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;background:linear-gradient(110deg,#3b82f6 0%,#a78bfa 50%,#22d3ee 100%);opacity:var(--save-bar-tint);transition:opacity .45s ease}
@media(prefers-reduced-motion:reduce){.save-bar::before{transition:none}}

/* Bright color, with stronger text contrast as the toolbar gains color. */
.save-bar #status,.save-bar #status.ok,.save-bar #status.dirty{color:color-mix(in srgb,#081b40 calc(var(--save-bar-tint) * 100%),#475569);font-weight:750;transition:color .45s ease}
.save-bar #status::before{box-shadow:0 0 0 4px rgba(255,255,255,.72)}
@media(prefers-reduced-motion:reduce){.save-bar #status{transition:none}}

/* Soft luminous navigation hover: a single sheen, no continuous animation. */
.section-sidebar-link{position:relative;isolation:isolate;overflow:hidden;transition:background .3s ease,color .25s ease,box-shadow .3s ease}
.section-sidebar-link::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(105deg,color-mix(in srgb,var(--section-b) 24%,transparent),color-mix(in srgb,var(--section-a) 8%,transparent) 70%,transparent);opacity:0;transition:opacity .32s ease}
.section-sidebar-link::after{content:"";position:absolute;inset:-35% auto -35% -55%;width:38%;z-index:-1;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),transparent);opacity:0;transform:skewX(-18deg)}
.section-sidebar-link .section-icon{transition:transform .32s cubic-bezier(.22,.68,.25,1),background .3s ease,border-color .3s ease,box-shadow .3s ease}
.section-sidebar-link>span{transition:transform .32s cubic-bezier(.22,.68,.25,1)}
@media(hover:hover) and (pointer:fine){
  .section-sidebar-link:not(:disabled):is(:hover,:focus-visible){background:rgba(255,255,255,.075);color:#fff;box-shadow:inset 3px 0 color-mix(in srgb,var(--section-b) 85%,#fff)}
  .section-sidebar-link:not(:disabled):is(:hover,:focus-visible)::before{opacity:1}
  .section-sidebar-link:not(:disabled):is(:hover,:focus-visible)::after{animation:nav-hover-sheen .72s ease-out both}
  .section-sidebar-link:not(:disabled):is(:hover,:focus-visible) .section-icon{transform:translateX(2px) rotate(-5deg) scale(1.08);background:color-mix(in srgb,var(--section-b) 25%,transparent);border-color:color-mix(in srgb,var(--section-b) 62%,#fff);box-shadow:0 0 16px color-mix(in srgb,var(--section-b) 25%,transparent)}
  .section-sidebar-link:not(:disabled):is(:hover,:focus-visible)>span{transform:translateX(5px)}
  .section-sidebar-link.is-active:not(:disabled):is(:hover,:focus-visible){background:rgba(255,255,255,.16);box-shadow:inset 3px 0 #fff}
}
@keyframes nav-hover-sheen{0%{opacity:0;transform:translateX(0) skewX(-18deg)}25%{opacity:1}100%{opacity:0;transform:translateX(440%) skewX(-18deg)}}
@media(prefers-reduced-motion:reduce){.section-sidebar-link,.section-sidebar-link::before,.section-sidebar-link .section-icon,.section-sidebar-link>span{transition:none!important}.section-sidebar-link::after{animation:none!important}.section-sidebar-link:not(:disabled):is(:hover,:focus-visible) .section-icon,.section-sidebar-link:not(:disabled):is(:hover,:focus-visible)>span{transform:none}}

/* A soft, single-pass highlight across each colorful content header. */
#editor .section-head{position:relative;isolation:isolate;overflow:hidden;transition:filter .3s ease,box-shadow .3s ease}
#editor .section-head::before{content:"";position:absolute;top:-65%;bottom:-65%;left:-55%;width:42%;z-index:0;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.06) 20%,rgba(255,255,255,.32) 52%,rgba(255,255,255,.08) 76%,transparent 100%);opacity:0;transform:translateX(0) skewX(-18deg)}
#editor .section-head>*{z-index:1}
#editor .section-head::after{z-index:1;pointer-events:none}
#editor .section-head>.section-icon{transition:transform .35s cubic-bezier(.22,.68,.25,1),background .3s ease,box-shadow .3s ease}
#editor .section-head .section-chevron{transition:transform .22s,background .3s ease,box-shadow .3s ease}
@media(hover:hover) and (pointer:fine){
  #editor .section-head:is(:hover,:focus-visible){filter:saturate(1.06) brightness(1.035);box-shadow:inset 0 0 0 1px rgba(255,255,255,.4),inset 0 0 28px rgba(255,255,255,.09)}
  #editor .section-head:is(:hover,:focus-visible)::before{animation:content-header-sheen .95s cubic-bezier(.2,.65,.3,1) both}
  #editor .section-head:is(:hover,:focus-visible)>.section-icon{transform:translateY(-2px) scale(1.06) rotate(-3deg);background:rgba(255,255,255,.28);box-shadow:0 7px 20px rgba(255,255,255,.15)}
  #editor .section-head:is(:hover,:focus-visible) .section-chevron{background:rgba(255,255,255,.34);box-shadow:0 0 0 5px rgba(255,255,255,.08)}
}
@keyframes content-header-sheen{0%{opacity:0;transform:translateX(0) skewX(-18deg)}18%{opacity:1}75%{opacity:.8}100%{opacity:0;transform:translateX(390%) skewX(-18deg)}}
@media(prefers-reduced-motion:reduce){#editor .section-head::before{animation:none!important}#editor .section-head,#editor .section-head>.section-icon,#editor .section-head .section-chevron{transition:none!important}#editor .section-head:is(:hover,:focus-visible)>.section-icon{transform:none}}

/* One fixed alignment rule for every disclosure control. */
#editor .section-head{padding-right:68px}
#editor.layout-grid>.section-card:not([open])>.section-head{padding-right:68px}
#editor .section-head .section-chevron,
#editor.layout-grid>.section-card:not([open]) .section-chevron,
#editor .section-card[open]>.section-head .section-chevron{position:absolute;top:50%;right:18px;bottom:auto;left:auto;width:36px;height:36px;margin:0;padding:0;display:grid;place-items:center;transform:translateY(-50%);font-size:0;line-height:0;flex:none}
#editor .accordion-item>.item-head{position:relative;align-items:center;flex-wrap:nowrap;padding-right:68px}
#editor .accordion-item>.item-head .title-echo{padding-top:0}
#editor .accordion-item>.item-head .accordion-chevron{position:absolute;top:50%;right:18px;bottom:auto;left:auto;width:36px;height:36px;margin:0;padding:0;display:grid;place-items:center;transform:translateY(-50%);font-size:0;line-height:0;flex:none}
.section-chevron>svg,.accordion-chevron>svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transform:rotate(0);transform-origin:center;transition:transform .25s cubic-bezier(.22,.68,.25,1)}
.section-card[open]>.section-head .section-chevron>svg,.accordion-item[open]>.item-head .accordion-chevron>svg{transform:rotate(90deg)}
@media(max-width:620px){
  #editor .section-head,#editor.layout-grid>.section-card:not([open])>.section-head,#editor .accordion-item>.item-head{padding-right:60px}
  #editor .section-head .section-chevron,#editor.layout-grid>.section-card:not([open]) .section-chevron,#editor .section-card[open]>.section-head .section-chevron,#editor .accordion-item>.item-head .accordion-chevron{right:14px;width:32px;height:32px}
  .section-chevron>svg,.accordion-chevron>svg{width:18px;height:18px}
}
@media(prefers-reduced-motion:reduce){.section-chevron>svg,.accordion-chevron>svg{transition:none}}

/* Disclosure height and content fade share one interruptible motion timeline. */
#editor .section-body,#editor .item-body{animation:none}
#editor .disclosure-measuring>summary{transition:none!important}
#editor details.is-closing>summary .section-chevron>svg,
#editor details.is-closing>summary .accordion-chevron>svg{transform:rotate(0)}
.section-chevron>svg,.accordion-chevron>svg{transition:transform .42s cubic-bezier(.22,1,.36,1)}
@media(prefers-reduced-motion:reduce){.section-chevron>svg,.accordion-chevron>svg{transition:none}}

/* More breathing room and a clearly readable sticky save state. */
#editor .add-work-button{display:block;margin-top:24px}
.save-bar::before{background:linear-gradient(110deg,#2563eb 0%,#7c3aed 52%,#06b6d4 100%)}
.save-bar #status,.save-bar #status.ok,.save-bar #status.dirty{color:#334155;transition:color .45s ease,text-shadow .45s ease}
.save-bar.is-stuck #status,.save-bar.is-stuck #status.ok,.save-bar.is-stuck #status.dirty{color:#fff;text-shadow:0 1px 3px rgba(18,31,88,.22)}
.save-bar.is-stuck::before{opacity:1}
.license-badge.is-lifetime{display:inline-flex;align-items:center;gap:10px;padding:6px 12px 6px 7px;border-color:#a78bfa;background:linear-gradient(110deg,#243262,#3e235f 60%,#624621);box-shadow:inset 0 1px 0 #ffffff20,0 0 18px #a78bfa24;color:#fff1bc}
.lifetime-ranks{display:inline-flex;align-items:center;gap:4px}
.lifetime-rank{display:grid;place-items:center;width:23px;height:25px;border:1px solid #7dd3fc88;border-radius:7px;background:linear-gradient(145deg,#38bdf833,#2563eb44);color:#a5f3fc}
.lifetime-rank:nth-child(2){border-color:#c4b5fd99;background:linear-gradient(145deg,#a78bfa55,#7c3aed33);color:#e9d5ff}
.lifetime-rank:nth-child(3){border-color:#fde68aaa;background:linear-gradient(145deg,#fbbf2455,#f59e0b22);color:#fde68a;box-shadow:0 0 10px #fbbf2422}
.lifetime-rank svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.lifetime-label{font-weight:800;letter-spacing:.06em;background:linear-gradient(100deg,#fde68a 15%,#fff 45%,#c4b5fd 65%,#fde68a 85%);background-size:220% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:lifetime-shimmer 5s ease-in-out infinite}
@keyframes lifetime-shimmer{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@media(prefers-reduced-motion:reduce){.lifetime-label{animation:none}.save-bar #status{transition:none}}

.badge-options{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}
.badge-choice{display:flex;align-items:center;gap:10px;padding:12px 14px;margin:0;border:1px solid #ddd8f0;background:#faf9ff;border-radius:12px;color:#3c3553;font-size:13px}
.badge-choice:has(input:checked){border-color:#8b5cf6;background:#f0eaff;box-shadow:0 0 0 2px #8b5cf618}
.badge-choice:has(input:disabled){opacity:.55}
.badge-choice input{width:17px;height:17px;margin:0;accent-color:#7c3aed}
.lifetime-rank.managed-badge{border-color:var(--badge-color,#a78bfa);color:var(--badge-color,#a78bfa);background:color-mix(in srgb,var(--badge-color,#a78bfa) 18%,#18233e);box-shadow:0 0 10px color-mix(in srgb,var(--badge-color,#a78bfa) 15%,transparent)}
#badge-count{color:#716780;font-size:12px}
#badge-form input[type=color]{width:72px;padding:4px}
@media(max-width:620px){.license-badge.is-lifetime{flex-wrap:wrap;white-space:normal}.badge-choice{flex-wrap:wrap}}

.badge-image{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px}
.badge-image img{display:block;width:100%;height:100%;object-fit:contain}
.badge-choice .badge-image{width:48px;height:48px}
.badge-upload-preview{display:flex;align-items:center;gap:14px;min-height:100px;padding:14px;border:1px dashed #c4b5fd;border-radius:12px;background:#f7f5fc;color:#746b87;font-size:12px}
.badge-upload-preview img{width:80px;height:80px;object-fit:contain}
.badge-upload-preview img[hidden]{display:none}

/* Administrator visual workspace, scoped away from student pages. */
.admin-page{background:radial-gradient(ellipse at 8% 0,#e8e6ff,transparent 45%),radial-gradient(ellipse at 100% 30%,#e2f5ff,transparent 40%),#f5f7fc}
.admin-page .app-bar{background:#192039;padding-inline:max(24px,calc((100vw - 1380px)/2));border-bottom:1px solid #ffffff15}
.admin-page .app-main{width:min(1380px,100%);display:grid;grid-template-columns:1fr 1.15fr;gap:24px;padding-top:28px;align-items:start}
.admin-page .admin-hero{grid-column:1/-1;margin:0;position:relative;overflow:hidden;align-items:center;padding:34px 38px;border-radius:24px;background:linear-gradient(115deg,#234ac3,#6541d4 65%,#8c57eb);color:#fff;box-shadow:0 16px 40px #5144b420}
.admin-hero::before{content:"";position:absolute;pointer-events:none;width:350px;height:350px;right:-130px;top:-170px;border:1px solid #ffffff24;border-radius:50%;box-shadow:0 0 0 48px #ffffff05,0 0 0 96px #ffffff05}
.admin-eyebrow{display:block;color:#dde2ff;font-size:10px;font-weight:750;letter-spacing:.17em;margin-bottom:16px}
.admin-page .admin-hero h1{font-size:clamp(25px,2.5vw,34px);letter-spacing:.01em;margin-bottom:12px}
.admin-page .admin-hero p{color:#e7e8ff;font-size:13px}
.admin-shortcuts{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.admin-shortcuts a{padding:9px 15px;border-radius:9px;background:#ffffff12;border:1px solid #ffffff33;font-size:12px;transition:background .25s,transform .25s}
.admin-shortcuts a:first-child{background:white;color:#4f46c7;border-color:white;font-weight:750}
.admin-shortcuts a:hover{transform:translateY(-2px);background:#ffffff30}.admin-shortcuts a:first-child:hover{background:#eeedff}
.admin-hero-side{position:relative;text-align:right;flex-shrink:0}.admin-page .admin-hero .page-meta{color:#e1dfff}
.admin-orbit{width:86px;height:86px;margin:16px 0 12px auto;display:grid;place-items:center;border:1px solid #ffffff44;border-radius:24px;transform:rotate(-8deg);background:linear-gradient(140deg,#ffffff26,#ffffff06);box-shadow:0 10px 30px #27165820}
.admin-orbit svg{width:56px;height:56px;color:#fff}.admin-hero-caption{font-size:8px;letter-spacing:.16em;color:#e1dfff}
.admin-page .summary-grid{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:0}
.admin-page .summary-item{position:relative;overflow:hidden;min-height:155px;padding:24px;border:1px solid #ffffffa0;border-radius:18px;box-shadow:0 6px 22px #24366208;background:linear-gradient(120deg,#e1eaff,#f2f5ff);color:#2743a4;transition:transform .28s,box-shadow .28s}
.admin-page .summary-item:nth-child(2){background:linear-gradient(120deg,#d3f6ec,#edfff8);color:#08735e}
.admin-page .summary-item:nth-child(3){background:linear-gradient(120deg,#ffe6d6,#fff6ef);color:#9b4817}
.admin-page .summary-item:nth-child(4){background:linear-gradient(120deg,#efe0ff,#faf4ff);color:#7c39ae}
.admin-page .summary-item:hover{transform:translateY(-4px);box-shadow:0 12px 28px #24366212}
.admin-page .summary-label{color:inherit;font-size:12px}.admin-page .summary-value{font-size:36px;margin:13px 0 12px;color:inherit;font-variant-numeric:tabular-nums}.admin-page .summary-note{color:inherit;opacity:.8;font-size:11px}
.admin-stat-icon{position:absolute;right:22px;top:20px;display:grid;place-items:center;width:42px;height:42px;border:1px solid #ffffff80;background:#ffffff80;border-radius:13px}.admin-stat-icon svg{width:24px;height:24px}
.admin-page .card{margin:0;min-width:0;border-color:#e4e8f4;border-radius:20px;box-shadow:0 6px 24px #24366207}
.admin-panel{scroll-margin-top:88px;overflow:hidden;--panel-a:#3863ed;--panel-b:#6b8dff}
.admin-page .admin-panel>h2{display:flex;align-items:center;gap:13px;margin:-27px -29px 22px;padding:23px 28px;background:linear-gradient(115deg,var(--panel-a),var(--panel-b));color:white;font-size:18px;line-height:1.5}
.admin-panel h2 small{display:block;font-size:9px;font-weight:600;letter-spacing:.16em;opacity:.8;margin-bottom:3px}
.admin-panel-icon{width:44px;height:44px;display:grid;place-items:center;border:1px solid #ffffff40;border-radius:12px;background:#ffffff1c;flex:none}.admin-panel-icon svg{width:26px;height:26px}
.admin-create{grid-column:1;grid-row:3}.admin-badges{grid-column:2;grid-row:3;--panel-a:#8150db;--panel-b:#b46dec}.admin-users{grid-column:1/-1;--panel-a:#058b98;--panel-b:#30bfc0}
.admin-page #pwd-card{grid-column:1/-1;grid-row:3}.admin-page .app-main:has(#pwd-card:not([hidden])) .admin-create,.admin-page .app-main:has(#pwd-card:not([hidden])) .admin-badges{grid-row:4}
.admin-page .create-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.admin-page .create-form>div:last-child{grid-column:1/-1}.admin-page #create-user{width:100%;background:linear-gradient(110deg,#3863ed,#6e63ee);min-height:44px}
.admin-page .create-form small,.admin-page #badge-form small{display:block;color:#7e8599;font-size:11px;margin-top:5px}
.admin-page #badge-form{grid-template-columns:1fr 1fr;gap:16px}.admin-page #badge-form>div:nth-child(2){grid-column:1/-1}.admin-page #badge-form>div:first-child{grid-column:1/-1}.admin-page #badge-form>div:last-child{align-self:center}
.admin-page #badge-submit{background:linear-gradient(110deg,#8551dc,#ad65e4)}
.admin-page #admin-badges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-page #admin-badges .badge-choice{min-width:0;flex-wrap:wrap;padding:13px;background:linear-gradient(135deg,#faf7ff,#fff);border-color:#eee7f7}.admin-page #admin-badges .badge-choice>span:nth-child(2){flex:1;overflow-wrap:anywhere}.admin-page #admin-badges .badge-choice button{font-size:11px;padding:5px 9px}
.admin-page table.users thead th{background:#f0f9fa;color:#387080;border-bottom:1px solid #dcecef}.admin-page table.users tbody tr:hover{background:#f7fbff}.admin-page table.users td{padding-block:18px}
@media(max-width:1050px){.admin-page .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-page .app-main{grid-template-columns:1fr}.admin-create,.admin-badges{grid-column:1;grid-row:auto!important}.admin-hero-side{display:none}}
@media(max-width:620px){.admin-page .app-main{gap:16px;padding:18px 14px 60px}.admin-page .admin-hero{padding:26px 22px}.admin-page .summary-grid{gap:10px}.admin-page .summary-item{padding:18px 14px;min-height:151px}.admin-stat-icon{width:30px;height:30px;right:12px;top:15px}.admin-stat-icon svg{width:18px;height:18px}.admin-page .summary-label{font-size:11px}.admin-page .summary-value{font-size:30px;margin-top:21px}.admin-page .admin-panel>h2{margin:-21px -17px 20px;padding:20px;font-size:17px}.admin-page .create-form{grid-template-columns:1fr}.admin-page .admin-shortcuts{gap:8px}.admin-shortcuts a{font-size:11px;padding:8px 10px}.admin-page #admin-badges{grid-template-columns:1fr}.admin-panel{scroll-margin-top:125px}}

/* Badge form rows and explicit lifetime authorization state. */
.admin-page #badge-form>div:first-child,.admin-page #badge-form>div:nth-child(2){grid-column:auto}
.admin-page #badge-form>div:nth-child(3){grid-column:1/-1;min-height:120px}
.admin-page #badge-form>div:last-child{grid-column:1/-1}
.admin-page #badge-form input[type=file]{min-width:0;font-size:12px;padding:10px}
.admin-page .license-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:10px}
.admin-page .license-actions>button{margin:0!important}
.admin-page .license-actions .is-lifetime-selected{color:#fff;border-color:#8554d8;background:linear-gradient(110deg,#6942cb,#a456df);box-shadow:0 3px 12px #8b5cf640;font-weight:750}
.admin-page .license-actions .is-lifetime-selected::before{content:'✓';margin-right:6px}
.admin-page .new-lifetime-option{margin-top:10px;display:flex;align-items:center;gap:8px}
.admin-page .new-lifetime-option input{width:16px;height:16px;accent-color:#8b5cf6}
@media(max-width:620px){.admin-page #badge-form{grid-template-columns:1fr}.admin-page #badge-form>div{grid-column:1/-1!important}}

.admin-page .new-lifetime-option{position:relative;display:flex;gap:10px;flex-wrap:wrap;padding:14px;border:1px solid #c6b4f5;border-radius:13px;background:linear-gradient(110deg,#f0eaff,#fff4dc);cursor:pointer;transition:background .25s,box-shadow .25s,border-color .25s}
.admin-page .new-lifetime-option strong{display:block;color:#683cad;font-size:14px}.admin-page .create-form .new-lifetime-option small{font-size:10px;margin-top:3px;color:#796592}
.lifetime-choice-icon{font-size:27px;line-height:1;color:#8c50cc}.lifetime-choice-state{margin-left:auto;padding:3px 8px;border-radius:6px;background:#ffffffb0;color:#8055b1;font-size:10px}
.admin-page .new-lifetime-option:has(input:checked){border-color:#9254da;background:linear-gradient(115deg,#6c3cc7,#a155dc);box-shadow:0 5px 18px #9155da40}
.admin-page .new-lifetime-option:has(input:checked) strong,.admin-page .new-lifetime-option:has(input:checked) small,.admin-page .new-lifetime-option:has(input:checked) .lifetime-choice-icon{color:white}
.admin-page .new-lifetime-option:has(input:checked) .lifetime-choice-state{background:#ffffff26;color:white}
.admin-page .authorization-date{min-width:155px}.authorization-date strong{display:block;color:#325c77;font-size:13px;font-variant-numeric:tabular-nums}.authorization-date small{display:block;color:#8893a4;font-size:10px;margin-top:5px;white-space:nowrap}

.admin-page .create-form>.lifetime-picker-field{grid-column:1/-1}
.lifetime-picker{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lifetime-style-card{--life-a:#7541cb;--life-b:#c265dd;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:18px;border:2px solid transparent;border-radius:14px;background:linear-gradient(120deg,color-mix(in srgb,var(--life-a) 15%,white),color-mix(in srgb,var(--life-b) 12%,white));text-align:left;color:var(--life-a);transition:transform .25s,box-shadow .25s,background .25s}
.lifetime-tone-1{--life-a:#2359c7;--life-b:#43b6e9}.lifetime-tone-2{--life-a:#08755e;--life-b:#2abca3}.lifetime-tone-3{--life-a:#bf4826;--life-b:#f2a344}
.lifetime-card-symbol{font-size:25px;line-height:1.1}.lifetime-style-card strong{font-size:14px}.admin-page .create-form .lifetime-style-card small{font-size:10px;color:inherit;opacity:.85}
.lifetime-card-state{position:absolute;top:14px;right:12px;font-size:10px;padding:2px 7px;border-radius:6px;background:#ffffff55}
.lifetime-style-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #292c4914}.lifetime-style-card[aria-pressed=true]{color:white;background:linear-gradient(110deg,var(--life-a),var(--life-b));border-color:var(--life-a);box-shadow:0 5px 18px color-mix(in srgb,var(--life-a) 28%,transparent)}
.lifetime-name-select{margin-top:9px;font-size:12px;min-width:175px}
.license-badge.is-lifetime[data-lifetime-style="1"]{background:linear-gradient(110deg,#173971,#23488e);border-color:#60a5fa}.license-badge.is-lifetime[data-lifetime-style="2"]{background:linear-gradient(110deg,#125343,#17685e);border-color:#5eead4}.license-badge.is-lifetime[data-lifetime-style="3"]{background:linear-gradient(110deg,#74351b,#965723);border-color:#fdba74}
@media(max-width:380px){.lifetime-picker{grid-template-columns:1fr}}

/* Four equal lifetime cards, aligned within the creation panel. */
.admin-page .lifetime-picker{width:100%;margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch}
.admin-page .lifetime-style-card{width:100%;min-width:0;min-height:92px;display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;align-items:center;column-gap:10px;row-gap:3px;padding:14px;border:1px solid color-mix(in srgb,var(--life-a) 35%,white);border-radius:13px;background:linear-gradient(110deg,color-mix(in srgb,var(--life-a) 14%,white),color-mix(in srgb,var(--life-b) 15%,white));box-shadow:none;text-align:left}
.admin-page .lifetime-tone-0{--life-a:#6c3cc7;--life-b:#d990b5;background:linear-gradient(110deg,#f0eaff,#fff4dc)}
.admin-page .lifetime-style-card .lifetime-card-symbol{grid-row:1/3;font-size:27px;line-height:1;text-align:center}
.admin-page .lifetime-style-card strong{grid-column:2;font-size:14px;line-height:1.5;padding-right:0}
.admin-page .create-form .lifetime-style-card small{grid-column:2;margin:0;font-size:10px;line-height:1.5}
.admin-page .lifetime-card-state{position:absolute;top:5px;right:7px;padding:0 4px;background:transparent;font-size:9px;line-height:1.4}
.admin-page .lifetime-style-card[aria-pressed=true]{color:white;border-color:var(--life-a);background:linear-gradient(115deg,var(--life-a),var(--life-b));box-shadow:0 5px 18px color-mix(in srgb,var(--life-a) 25%,transparent)}
.admin-page .lifetime-tone-0[aria-pressed=true]{background:linear-gradient(115deg,#6c3cc7,#a155dc)}
@media(max-width:620px){.admin-page .lifetime-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-page .lifetime-style-card{min-height:100px;padding:17px 9px 12px;grid-template-columns:18px minmax(0,1fr);column-gap:6px}.admin-page .lifetime-style-card strong{font-size:12px}.admin-page .lifetime-style-card .lifetime-card-symbol{font-size:22px}.admin-page .create-form .lifetime-style-card small{font-size:9px}}

.admin-brand-trigger,.admin-profile-trigger{display:inline-flex;align-items:center;gap:10px;border:0;background:transparent;color:#f7f7fa;padding:7px 0;border-radius:9px;text-align:left}
.admin-brand-trigger{min-width:0}.admin-brand-trigger strong{font-size:12px;letter-spacing:.05em;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-default-logo,.admin-logo-preview>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(145deg,#857eff,#5c53ed);font-weight:800;color:white;flex:none}
.admin-brand-trigger img{width:32px;height:32px;object-fit:contain;border-radius:8px}
.admin-profile-trigger{padding:8px 10px;color:#d7d8e9;font-size:12px;white-space:nowrap}.admin-profile-trigger:hover,.admin-brand-trigger:hover{background:#ffffff0c}
.admin-profile-trigger svg{width:16px;height:16px;flex:none;transition:transform .3s ease}.admin-profile-trigger[aria-expanded=true] svg{transform:rotate(180deg)}
.admin-page .admin-profile-panel{grid-column:1/-1;grid-row:1;scroll-margin-top:85px;border-top:4px solid #8b5cf6}
.admin-profile-heading{display:flex;justify-content:space-between;align-items:start;gap:14px}.admin-profile-panel small{font-size:11px;color:#7c8294}
.admin-profile-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.admin-logo-preview{display:flex;align-items:center;gap:18px;padding:16px;border:1px dashed #cec5ea;border-radius:12px;background:#faf8ff}.admin-logo-preview img{width:70px;height:70px;object-fit:contain}.admin-logo-preview>span{width:70px;height:70px;font-size:28px}
.admin-page .app-main:has(.admin-profile-panel:not([hidden])) .admin-create,.admin-page .app-main:has(.admin-profile-panel:not([hidden])) .admin-badges{grid-row:4}
.admin-page .app-main:has(.admin-profile-panel:not([hidden])) #pwd-card{grid-row:4}
.admin-page .app-main:has(.admin-profile-panel:not([hidden])):has(#pwd-card:not([hidden])) .admin-create,.admin-page .app-main:has(.admin-profile-panel:not([hidden])):has(#pwd-card:not([hidden])) .admin-badges{grid-row:5}
@media(max-width:820px){.admin-page .app-bar{flex-wrap:wrap;gap:8px;padding:10px 16px}.admin-page .app-bar nav{margin-left:auto}.admin-brand-trigger strong{max-width:190px}.admin-page .admin-profile-panel{scroll-margin-top:135px}}

.platform-site-settings{margin-top:26px;padding-top:22px;border-top:1px solid #e7e2f2}.favicon-preview-row{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin:16px 0;color:#7a7890;font-size:12px}.favicon-preview-row img{width:40px;height:40px;object-fit:contain;padding:4px;background:#f4f1fb;border:1px solid #e1dbea;border-radius:8px}.favicon-preview-row .check-row{margin:0}

.admin-page input.authorization-selected{border:2px solid #3983e8;background:#f1f7ff;box-shadow:0 0 0 3px #3983e817;color:#245ca9}
.admin-page select.authorization-lifetime-selected{border:2px solid #9560dd;background:#f8f2ff;box-shadow:0 0 0 3px #9560dd17;color:#7542b3;font-weight:700}
.user-list-controls{display:grid;grid-template-columns:minmax(180px,1fr) 180px 130px;gap:14px;margin:20px 0}.user-pagination{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;color:#738095;font-size:12px}.user-pagination>div{display:flex;align-items:center;gap:12px}.user-pagination button:disabled{cursor:default;opacity:.4}.user-list-empty{text-align:center;padding:32px!important;color:#8792a4}
@media(max-width:620px){.user-list-controls{grid-template-columns:1fr 1fr}.user-list-controls>div:first-child{grid-column:1/-1}.user-pagination{align-items:flex-start;flex-direction:column}.user-pagination>div{width:100%;justify-content:space-between}}

.admin-page .user-list-identity{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-width:104px;max-width:180px;text-align:center}
.admin-page .user-list-identity .list-avatar,.admin-page .list-avatar-fallback{display:block;width:68px;height:68px;margin:0;flex:none;border-radius:18px;object-fit:cover;border:3px solid #fff;box-shadow:0 4px 15px #6564aa20}
.admin-page .list-avatar-fallback{display:grid;place-items:center;background:linear-gradient(135deg,#8b7cf8,#49b7ea);color:white;font-size:25px;font-weight:800}
.admin-page .user-list-display-name{font-size:13px;line-height:1.5;color:#34445e;white-space:normal;overflow-wrap:anywhere}
.account-entries{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-width:132px}
.account-name-tag{display:inline-block;max-width:200px;padding:4px 10px;border:1px solid #dfe5f0;border-radius:7px;background:#f3f6fb;color:#51647e;font-size:12px;overflow-wrap:anywhere;white-space:normal}
.account-entry{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border:1px solid;border-radius:8px;font-size:11px;font-weight:650;line-height:1.4;transition:background .2s,transform .2s;white-space:nowrap}
.account-site-entry{background:#ecf5ff;border-color:#c4ddfb;color:#2d6ab4}.account-login-entry{background:#f3ecff;border-color:#dfcdfb;color:#8150bd}.account-entry:hover{transform:translateY(-1px)}.account-site-entry:hover{background:#dcecff}.account-login-entry:hover{background:#e9ddfc}

.admin-page .account-name-tag,.admin-page .user-list-display-name{color:#111;font-weight:800}
.user-activity-dialog{width:min(660px,calc(100vw - 32px));max-height:80vh;padding:25px;border:1px solid #dfd8f3;border-radius:18px;box-shadow:0 25px 90px #151c4640;color:#293348;background:#fff}.user-activity-dialog::backdrop{background:#121c4166;backdrop-filter:blur(4px)}.activity-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.activity-heading h2{font-size:18px;margin:0}.user-activity-dialog .sub,#activity-message{font-size:12px;color:#778096}.activity-record{display:flex;justify-content:space-between;gap:14px;padding:13px 8px;border-bottom:1px solid #edf0f7}.activity-record strong{font-size:13px}.activity-record time{font-size:11px;color:#8b91a2;white-space:nowrap}.activity-button{color:#7651b9;background:#f6f1ff;border-color:#e0d3f7}
@media(max-width:480px){.activity-record{flex-direction:column;gap:4px}}

.activity-record{flex-wrap:wrap}.activity-location{flex-basis:100%;font-size:11px;color:#7e879c;overflow-wrap:anywhere}

.activity-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-top:18px;margin-top:10px;border-top:1px solid #e6e9f2}.activity-footer nav{display:flex;align-items:center;gap:7px;font-size:12px;color:#7a8497}.activity-footer label{margin:0}.activity-footer input{width:52px;padding:6px;text-align:center}.activity-footer button{font-size:11px}.activity-footer button:disabled{cursor:default}.user-activity-dialog{width:min(720px,calc(100vw - 32px))}

/* Two aligned rows for each student's management actions. */
.admin-page table.users .actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;min-width:288px;width:100%}
.admin-page table.users .actions>a:first-child{grid-column:1/-1;display:flex;align-items:center;justify-content:center;width:100%;background:#edf5ff;border-color:#c7ddfa;color:#326bb2}
.admin-page table.users .actions>button{width:100%;min-width:0;margin:0;padding:7px 8px;white-space:nowrap;font-size:11px;text-align:center}
.admin-page table.users .actions>a:first-child:hover{background:#dfeeff;border-color:#99c1f1}

/* Full-width website entry beneath the four management controls. */
.admin-page table.users .actions>a:first-child{grid-row:2;position:relative;isolation:isolate;overflow:hidden;min-height:43px;border:1px solid #6e8efa;border-radius:10px;background:linear-gradient(110deg,#3c65e9 0%,#7152de 55%,#a357db 100%);color:#fff;font-size:13px;font-weight:750;letter-spacing:.04em;box-shadow:0 5px 13px #6058d52b;transition:filter .3s,box-shadow .3s,transform .3s}
.admin-page table.users .actions>button{grid-row:1}
.admin-page table.users .actions>a:first-child::after{content:"";position:absolute;inset:-70% auto -70% -55%;width:40%;background:linear-gradient(90deg,transparent,#ffffff55,transparent);transform:skewX(-20deg);opacity:0;pointer-events:none}
.admin-page table.users .actions>a:first-child:hover,.admin-page table.users .actions>a:first-child:focus-visible{background:linear-gradient(110deg,#3c65e9 0%,#7152de 55%,#a357db 100%);border-color:#8c9ffa;filter:brightness(1.08);box-shadow:0 7px 19px #6058d540;transform:translateY(-1px)}
.admin-page table.users .actions>a:first-child:is(:hover,:focus-visible)::after{animation:admin-site-sheen .85s cubic-bezier(.2,.65,.3,1) both}
@keyframes admin-site-sheen{0%{opacity:0;transform:translateX(0) skewX(-20deg)}20%{opacity:1}100%{opacity:0;transform:translateX(450%) skewX(-20deg)}}
@media(prefers-reduced-motion:reduce){.admin-page table.users .actions>a:first-child{transition:none;transform:none}.admin-page table.users .actions>a:first-child::after{animation:none!important}}

/* Automatic highlight on the return-to-workspace entry. */
.login-preview-return{position:relative;isolation:isolate;overflow:hidden;min-height:44px;padding:11px 16px;border:1px solid #8b80f2;background:linear-gradient(110deg,#6151df,#8463eb 60%,#638bef);color:#fff;font-weight:750;box-shadow:0 5px 16px #6d5ade30;transition:box-shadow .3s,filter .3s}
.login-preview-return::after{content:"";position:absolute;top:-70%;bottom:-70%;left:-60%;width:48%;background:linear-gradient(90deg,transparent 0%,#ffffff15 20%,#ffffffaa 50%,#ffffff30 75%,transparent 100%);transform:translateX(0) skewX(-22deg);opacity:0;pointer-events:none;animation:workspace-return-sheen 3.2s ease-in-out infinite}
.login-preview-return:hover,.login-preview-return:focus-visible{filter:brightness(1.08);box-shadow:0 7px 22px #6d5ade48}
@keyframes workspace-return-sheen{0%{opacity:0;transform:translateX(0) skewX(-22deg)}8%{opacity:.95}36%{opacity:.9;transform:translateX(370%) skewX(-22deg)}43%,100%{opacity:0;transform:translateX(370%) skewX(-22deg)}}
@media(prefers-reduced-motion:reduce){.login-preview-return::after{animation:none}.login-preview-return{transition:none}}

/* Prominent lifetime license label with a periodic light sweep. */
.license-badge.is-lifetime{position:relative;isolation:isolate;overflow:hidden;padding:9px 15px 9px 9px;gap:11px;border:1px solid #d4b5ff;border-radius:12px;background:linear-gradient(110deg,#5932a6 0%,#8544ba 58%,#ad6e35 100%);box-shadow:inset 0 1px 0 #ffffff35,0 0 0 3px #ac80ed12,0 5px 20px #7e4fd538}
.license-badge.is-lifetime .lifetime-label{font-size:13px;font-weight:850;letter-spacing:.07em;background:linear-gradient(100deg,#fff1bd 10%,#fff 45%,#f1d6ff 68%,#fff1bd 90%);background-size:220% 100%;background-clip:text;-webkit-background-clip:text;text-shadow:0 1px 8px #ffffff15}
.license-badge.is-lifetime::after{content:"";position:absolute;top:-80%;bottom:-80%;left:-65%;width:42%;background:linear-gradient(90deg,transparent,#ffffff18 20%,#ffffff99 52%,#ffffff22 78%,transparent);transform:translateX(0) skewX(-22deg);opacity:0;pointer-events:none;animation:lifetime-license-sweep 4s ease-in-out infinite}
@keyframes lifetime-license-sweep{0%{opacity:0;transform:translateX(0) skewX(-22deg)}7%{opacity:.9}32%{opacity:.7;transform:translateX(440%) skewX(-22deg)}39%,100%{opacity:0;transform:translateX(440%) skewX(-22deg)}}
@media(max-width:620px){.license-badge.is-lifetime{padding:7px 11px 7px 7px;gap:8px}.license-badge.is-lifetime .lifetime-label{font-size:12px}}
@media(prefers-reduced-motion:reduce){.license-badge.is-lifetime::after{animation:none}.license-badge.is-lifetime .lifetime-label{animation:none}}

/* Lifetime identity uses luminous text without a background card. */
.license-badge.is-lifetime,.license-badge.is-lifetime[data-lifetime-style]{background:none;border:0;box-shadow:none;padding:5px 0;border-radius:0;overflow:visible}
.license-badge.is-lifetime::after{display:none;animation:none}

/* A shared sweep across the badges and lifetime title, without a background card. */
.license-badge.is-lifetime,.license-badge.is-lifetime[data-lifetime-style]{position:relative;isolation:isolate;overflow:hidden;background:none;border:0;box-shadow:none}
.license-badge.is-lifetime::after{content:"";display:block;position:absolute;z-index:2;top:-65%;bottom:-65%;left:-65%;width:38%;border-radius:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.05) 22%,rgba(255,255,255,.5) 50%,rgba(255,255,255,.09) 76%,transparent 100%);mix-blend-mode:screen;opacity:0;pointer-events:none;transform:translateX(0) skewX(-22deg);animation:identity-shared-sweep 4s cubic-bezier(.22,.65,.3,1) infinite}
.license-badge.is-lifetime .lifetime-label{animation:none;background-position:50% 50%}
@keyframes identity-shared-sweep{0%,8%{opacity:0;transform:translateX(0) skewX(-22deg)}15%{opacity:.9}44%{opacity:.8;transform:translateX(480%) skewX(-22deg)}51%,100%{opacity:0;transform:translateX(480%) skewX(-22deg)}}
@media(prefers-reduced-motion:reduce){.license-badge.is-lifetime::after{animation:none;display:none}}

/* Larger work-detail gallery, with multiple evenly spaced rows. */
#editor :is(.card-works,.section-is-custom) .gallery-thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:14px;margin-top:14px}
#editor :is(.card-works,.section-is-custom) .gallery-thumbs .g{width:100%;height:auto;min-width:0;aspect-ratio:4/3;overflow:hidden;border-radius:12px;background:#f0f2f7;border:1px solid #dce1ec;box-shadow:0 3px 12px #3041640a}
#editor :is(.card-works,.section-is-custom) .gallery-thumbs .g>img{width:100%;height:100%;object-fit:contain;background:#f0f2f7}
#editor :is(.card-works,.section-is-custom) .gallery-thumbs .g>button{top:8px;right:8px;width:28px;height:28px}
#editor :is(.card-works,.section-is-custom) .gallery-actions{right:8px;bottom:8px;gap:5px}
#editor :is(.card-works,.section-is-custom) .gallery-thumbs .g .gallery-actions button{width:29px;height:29px}
#editor :is(.card-works,.section-is-custom) .gallery-add{grid-column:1/-1;width:100%;min-height:46px;border:1px dashed #b8a4e5;border-radius:10px;background:#f7f2ff;color:#8054ba}
@media(max-width:820px){#editor :is(.card-works,.section-is-custom) .gallery-thumbs{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px}}
@media(max-width:380px){#editor :is(.card-works,.section-is-custom) .gallery-thumbs{grid-template-columns:1fr}}

/* Gentle gallery hover: clipped image zoom and a small card lift. */
#editor :is(.card-works,.section-is-custom) .gallery-thumbs .g{transition:transform .35s cubic-bezier(.22,.68,.25,1),box-shadow .35s ease,border-color .3s ease,opacity .15s}
#editor :is(.card-works,.section-is-custom) .gallery-thumbs .g>img{transition:transform .5s cubic-bezier(.22,.68,.25,1);transform-origin:center}
@media(hover:hover) and (pointer:fine){
 #editor :is(.card-works,.section-is-custom) .gallery-thumbs .g:not(.is-dragging):not(.is-dragover):hover{transform:translateY(-3px);border-color:#b59bea;box-shadow:0 10px 24px #69529324}
 #editor :is(.card-works,.section-is-custom) .gallery-thumbs .g:not(.is-dragging):hover>img{transform:scale(1.055)}
}
#editor :is(.card-works,.section-is-custom) .gallery-thumbs .g:not(.is-dragging):focus-within{border-color:#a987df;box-shadow:0 0 0 3px #a987df24}
#editor :is(.card-works,.section-is-custom) .gallery-thumbs .g.is-dragging>img{transform:none}
@media(prefers-reduced-motion:reduce){#editor :is(.card-works,.section-is-custom) .gallery-thumbs .g,#editor :is(.card-works,.section-is-custom) .gallery-thumbs .g>img{transition:none}#editor :is(.card-works,.section-is-custom) .gallery-thumbs .g:not(.is-dragging):not(.is-dragover):hover,#editor :is(.card-works,.section-is-custom) .gallery-thumbs .g:not(.is-dragging):hover>img{transform:none}}

#editor .upload-row img.thumb,#editor .gallery-thumbs .g>img{cursor:zoom-in}
.image-preview-open{overflow:hidden}
.image-preview-dialog{width:min(1200px,94vw);max-width:94vw;height:min(900px,90vh);max-height:90vh;padding:0;border:1px solid #ffffff26;border-radius:16px;background:#171c2c;box-shadow:0 24px 90px #0008;color:white;overflow:hidden}
.image-preview-dialog::backdrop{background:#0a1020cf;backdrop-filter:blur(7px)}
.image-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;height:64px;padding:12px 18px;border-bottom:1px solid #ffffff20;background:#20273b}.image-preview-toolbar strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-preview-toolbar>div{display:flex;gap:8px;flex:none}.image-preview-toolbar button{padding:7px 12px;border:1px solid #ffffff30;border-radius:8px;background:#ffffff12;color:white;font-size:12px}.image-preview-toolbar button:hover{background:#ffffff25}
.image-preview-stage{height:calc(100% - 64px);overflow:auto;display:flex;align-items:center;justify-content:center;padding:20px}.image-preview-stage>img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.image-preview-stage.is-original{display:block}.image-preview-stage.is-original>img{max-width:none;max-height:none;margin:auto}.image-preview-stage p{font-size:14px;color:#e6d5ff}
@media(max-width:620px){.image-preview-toolbar{padding:10px;gap:8px}.image-preview-toolbar button{padding:7px 8px}.image-preview-stage{padding:10px}}

.cover-ratio-help{font-size:11px;line-height:1.7;color:#81869a;margin:8px 0 14px}.cover-upload-field .upload-row{grid-template-columns:minmax(110px,180px) minmax(120px,1fr)}.cover-upload-field .upload-row .thumb{width:100%;height:auto;aspect-ratio:var(--cover-preview-ratio,4 / 3);object-fit:cover;object-position:center}.cover-upload-field .upload-row .meta{grid-column:1/-1}
@media(max-width:620px){.cover-upload-field .upload-row{grid-template-columns:1fr}.cover-upload-field .upload-row .thumb{width:100%;max-width:300px;margin:auto}}

.cover-upload-field{padding:16px;border:1px solid #dfd7f0;border-radius:12px;background:#faf8ff}.cover-upload-field h4{margin:0 0 14px}.gallery-upload-hint{grid-column:1/-1;text-align:center;color:#8990a2;font-size:11px;margin-top:-6px}#editor :is(.card-works,.section-is-custom) .gallery-thumbs .g>video{width:100%;height:100%;object-fit:contain;background:#161b28}#editor :is(.card-works,.section-is-custom) .gallery-thumbs .g:has(video) .gallery-actions{top:8px;bottom:auto}

/* Cover controls left, live ratio preview right. */
#editor .cover-upload-field{grid-column:1/-1;position:relative;display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr);column-gap:24px;align-items:start;padding:20px}
#editor .cover-upload-field>h4,#editor .cover-upload-field>label,#editor .cover-upload-field>select,#editor .cover-upload-field>.cover-ratio-help{grid-column:1}
#editor .cover-upload-field>h4{margin:0 0 14px}
#editor .cover-upload-field>div{display:contents}
#editor .cover-upload-field>div>label{grid-column:1;margin-top:6px}
#editor .cover-upload-field .upload-row{display:contents}
#editor .cover-upload-field .upload-row .thumb{grid-column:2;grid-row:1/8;align-self:center;width:100%;max-width:none;height:auto;aspect-ratio:var(--cover-preview-ratio,4 / 3);object-fit:cover;border:1px solid #d8ddeb;border-radius:12px;background:#eef0f6;box-shadow:0 5px 18px #3339590b}
#editor .cover-upload-field .upload-picker{grid-column:1;padding:12px;border:1px dashed #c7b8df;border-radius:10px;background:#fff}
#editor .cover-upload-field .upload-row .meta{grid-column:1;margin-top:8px}
#editor :is(.card-works,.section-is-custom) .gallery-add{white-space:normal;line-height:1.7;padding:10px 14px}
@media(max-width:620px){#editor .cover-upload-field{grid-template-columns:minmax(125px,1fr) minmax(120px,1fr);gap:8px 12px;padding:12px}#editor .cover-upload-field .upload-picker{padding:5px}#editor .cover-upload-field .upload-picker input{max-width:100%;font-size:10px}#editor .cover-upload-field .upload-row .thumb{grid-row:1/8}#editor .cover-upload-field .upload-row .meta{white-space:normal;font-size:10px}}

.cover-compression-link{font-size:11px;font-weight:400;line-height:1.8;color:#81869a;margin-left:6px}.cover-compression-link a{color:#1769e8;font-weight:800;text-decoration:underline;text-underline-offset:3px;transition:color .18s ease}.cover-compression-link a:hover{color:#084cc4}
#editor .upload-picker > span,#editor .upload-row .meta,#editor .upload-format-hint{color:#1769e8;font-weight:800}

/* Keep upload guidance together and give work ordering a gentle hover glow. */
#editor .upload-row{grid-template-columns:110px minmax(0,1fr)}
#editor .upload-picker .upload-inline-hint{display:block;white-space:nowrap;line-height:1.8;overflow-x:auto}
#editor .work-order-button{position:relative;isolation:isolate;overflow:hidden;transition:color .3s ease,border-color .3s ease,box-shadow .3s ease,transform .3s ease}
#editor .work-order-button::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,#1675ed,#6854ed,#aa42de);background-size:200% 200%;opacity:0;transition:opacity .3s ease}
#editor .work-order-button:hover,#editor .work-order-button:focus-visible{color:#fff;border-color:#7770ed;transform:translateY(-2px);animation:work-order-breathe 2.2s ease-in-out infinite}
#editor .work-order-button:hover::before,#editor .work-order-button:focus-visible::before{opacity:1;animation:work-order-gradient 3s ease-in-out infinite}
#editor .work-order-button:active{transform:translateY(0)}
@keyframes work-order-breathe{0%,100%{box-shadow:0 3px 8px #6854ed30}50%{box-shadow:0 5px 16px #6854ed70}}
@keyframes work-order-gradient{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@media(max-width:620px){#editor .upload-row{grid-template-columns:86px minmax(0,1fr)}#editor .cover-upload-field .upload-picker{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){#editor .work-order-button,#editor .work-order-button::before{animation:none!important;transition:none;transform:none}}

/* Align the native file button with the upload hint below it. */
#editor .upload-picker input[type=file]{display:block;margin-inline:0;padding-inline:0;border-inline-width:0}
#editor .upload-picker .upload-inline-hint{margin-inline:0;padding-inline:0;text-align:left}

/* Animate.css Copyright 2021 Daniel Eden. Hippocratic License 2.1; see animate-css-LICENSE.txt.
   Modified local subset: scoped classes, custom stagger, and entrance-only activation. */
.portal-entering #editor.layout-list > .section-card.animate__animated{animation-duration:1s;animation-fill-mode:both;animation-timing-function:ease;animation-delay:var(--entry-delay,0ms)}
.portal-entering #editor.layout-list > .animate__bounceInLeft{animation-name:bounceInLeft}
.portal-entering #editor.layout-list > .animate__bounceInRight{animation-name:bounceInRight}
.portal-entering #editor.layout-list > .animate__backInDown{animation-name:backInDown}
@keyframes bounceInLeft{
from,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}
0%{opacity:0;transform:translate3d(-3000px,0,0) scaleX(3)}
60%{opacity:1;transform:translate3d(25px,0,0) scaleX(1)}
75%{transform:translate3d(-10px,0,0) scaleX(.98)}
90%{transform:translate3d(5px,0,0) scaleX(.995)}
to{transform:translate3d(0,0,0)}}
@keyframes bounceInRight{
from,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}
from{opacity:0;transform:translate3d(3000px,0,0) scaleX(3)}
60%{opacity:1;transform:translate3d(-25px,0,0) scaleX(1)}
75%{transform:translate3d(10px,0,0) scaleX(.98)}
90%{transform:translate3d(-5px,0,0) scaleX(.995)}
to{transform:translate3d(0,0,0)}}
@keyframes backInDown{
0%{transform:translateY(-1200px) scale(.7);opacity:.7}
80%{transform:translateY(0) scale(.7);opacity:.7}
100%{transform:scale(1);opacity:1}}
.portal-entering:has(#editor.layout-list){overflow-x:clip}
@media(prefers-reduced-motion:reduce){.portal-entering #editor.layout-list > .section-card.animate__animated{animation:none!important}}

/* Animate.css fade entrance subset; scoped to designer top navigation. */
@keyframes fadeInLeft{from{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes fadeInRight{from{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
.portal-entering .app-bar .animate__fadeInLeft{animation:fadeInLeft .8s ease both}
.portal-entering .app-bar .animate__fadeInRight{animation:fadeInRight .8s ease both}
.portal-entering .app-bar #edit-profile,.portal-entering .app-bar #view-site{animation-delay:0ms}
.portal-entering .app-bar #who,.portal-entering .app-bar #toggle-password{animation-delay:120ms}
.portal-entering .app-bar #license-status,.portal-entering .app-bar #logout{animation-delay:240ms}
body.portal-entering{overflow-x:clip}
@media(prefers-reduced-motion:reduce){.portal-entering .app-bar .animate__animated{animation:none!important}}

/* Sidebar entrances use the locally bundled Animate.css keyframes. */
@keyframes fadeInUp{from{opacity:0;transform:translate3d(0,100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}
.portal-entering #editor.layout-sidebar > .section-sidebar .animate__fadeInLeft{animation:fadeInLeft .8s ease both;animation-delay:var(--nav-entry-delay,0ms)}
.portal-entering #editor.layout-sidebar > .section-card.animate__fadeInUpBig{animation:fadeInUpBig .8s ease both;animation-delay:var(--entry-delay,0ms)}
body #editor.layout-sidebar > .section-card.is-pane-entering.animate__fadeInUp{animation:fadeInUp .7s ease both;animation-delay:0ms}
@media(prefers-reduced-motion:reduce){.portal-entering #editor.layout-sidebar .animate__animated,body #editor.layout-sidebar > .section-card.is-pane-entering.animate__fadeInUp{animation:none!important}}

@keyframes fadeInUpBig{from{opacity:0;transform:translate3d(0,2000px,0)}to{opacity:1;transform:translate3d(0,0,0)}}

/* Strong selected state for the layout picker. */
.page-heading .layout-fab-menu button{position:relative;transition:opacity .2s,transform .2s,border-color .2s,color .2s,box-shadow .25s}
.page-heading .layout-fab-menu button.is-selected{background:linear-gradient(125deg,#2463eb,#7044dc);border-color:#fff;color:#fff;box-shadow:0 0 0 2px #7760eb,0 8px 22px #6753df45}
.page-heading .layout-fab-menu button.is-selected[data-editor-layout="grid"]{background:linear-gradient(125deg,#087dbc,#325be5);box-shadow:0 0 0 2px #4384ee,0 8px 22px #326ee545}
.page-heading .layout-fab-menu button.is-selected[data-editor-layout="sidebar"]{background:linear-gradient(125deg,#0b857e,#2369d7);box-shadow:0 0 0 2px #2d99ad,0 8px 22px #2587b745}
.page-heading .layout-fab-menu button.is-selected span{background:#ffffff24;color:#fff;box-shadow:inset 0 0 0 1px #ffffff55}
.page-heading .layout-fab-menu button.is-selected strong{color:#fff;font-weight:800}
.page-heading .layout-fab-menu button.is-selected::after{content:"✓";position:absolute;right:-5px;top:-6px;display:grid;place-items:center;width:19px;height:19px;border:2px solid #fff;border-radius:50%;background:#173c88;color:#fff;font-size:11px;font-weight:900;line-height:1;box-shadow:0 2px 6px #163a8830}
.page-heading .layout-fab-menu button:focus-visible{outline:3px solid #f5b82e;outline-offset:5px}

.page-heading h1 .workspace-title-note{display:inline-block;margin-left:6px;color:#7c8596;font-size:.52em;font-weight:500;letter-spacing:0;vertical-align:baseline;white-space:nowrap}

.auth-copy h2{width:100%;max-width:none;font-size:clamp(28px,3.2vw,40px);line-height:1.3;letter-spacing:0;overflow-wrap:normal;word-break:normal;text-wrap:balance}
@media(max-width:820px){.auth-copy h2{font-size:28px}}

.badge-image video{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.badge-upload-preview video{width:80px;height:80px;object-fit:contain}
.badge-upload-preview video[hidden]{display:none}

.upload-limit-setting{padding:18px;margin:18px 0;border:1px solid #bed9ff;border-radius:12px;background:linear-gradient(110deg,#eff9ff,#f3efff)}.upload-limit-setting select{max-width:260px;font-weight:750;color:#245bd0}.upload-limit-setting .sub{margin:10px 0 0}

.admin-page .app-bar nav .template-manager-entry{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 15px;border:1px solid #acbdff;border-radius:10px;background:linear-gradient(115deg,#2878ef,#7650e7);color:#fff;font-weight:750;box-shadow:0 4px 15px #4969f03d;transition:filter .25s,box-shadow .25s,transform .25s}.template-manager-entry svg{width:17px;height:17px;flex:none}.admin-page .app-bar nav .template-manager-entry:hover{filter:brightness(1.12);transform:translateY(-1px);box-shadow:0 7px 22px #4969f066}

.cover-compression-link.compression-alert,.cover-compression-link.compression-alert a{color:#e12c45!important;font-weight:800}.cover-compression-link.compression-shake{display:inline-block;animation:compression-hint-shake .65s ease both}.compression-limit-message{font-size:12px;color:#d62442;line-height:1.7;margin:7px 0 12px}@keyframes compression-hint-shake{0%,100%{transform:translateX(0)}15%,45%,75%{transform:translateX(-6px)}30%,60%,90%{transform:translateX(6px)}}@media(prefers-reduced-motion:reduce){.cover-compression-link.compression-shake{animation:none}}

.designer-template-setting{padding:18px;margin-bottom:20px;border:1px solid #b8cdf9;border-radius:12px;background:linear-gradient(115deg,#eef7ff,#f3edff)}

/* Designer public style picker and animated editor layout entry. */
.app-bar nav .designer-style-trigger{background:linear-gradient(120deg,#6544ee,#147dda);color:#fff;border:1px solid #ffffff50;box-shadow:0 5px 16px #6554dc35;font-weight:800}
.designer-style-dialog{width:min(740px,calc(100vw - 32px));max-height:85vh;overflow:auto;box-sizing:border-box;padding:28px;border:1px solid #fff;border-radius:24px;background:#f8faff;color:#18233c;box-shadow:0 24px 90px #14224e40}
.designer-style-dialog::backdrop{background:#111a3b66;backdrop-filter:blur(7px)}
.designer-style-dialog h2{margin:0 0 12px}.designer-style-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0}
.designer-style-option{position:relative;display:flex;flex-direction:column;gap:12px;text-align:left;white-space:normal;padding:16px;border:2px solid #dfe5f3;border-radius:17px;background:#fff;color:#25314a;transition:transform .3s,box-shadow .3s,border-color .3s}
.designer-style-option>span:last-child{font-size:12px;line-height:1.7;color:#54627b}.designer-style-option strong{font-size:16px}.designer-style-option:hover{transform:translateY(-4px);box-shadow:0 12px 25px #5368bc20}
.designer-style-option.is-selected{border-color:#6454eb;background:#f0f1ff;box-shadow:0 0 0 3px #7666ef20}.designer-style-option.is-selected::after{content:'✓';position:absolute;right:9px;top:9px;background:#6050db;color:white;border-radius:50%;width:24px;height:24px;text-align:center;line-height:24px}
.style-miniature{display:flex;align-items:flex-end;gap:5px;height:78px;padding:10px;border-radius:10px;background:linear-gradient(135deg,#d9e4ff,#ebd8ff);width:100%;box-sizing:border-box}.style-miniature i{flex:1;height:42px;background:#ffffffaa;border-radius:5px}.style-miniature i:nth-child(2){height:55px}.style-gallery .style-miniature{background:linear-gradient(135deg,#17203d,#6450b0,#18b8c0)}.style-classic .style-miniature{background:linear-gradient(135deg,#fbead4,#f5b5ab)}
.designer-style-footer{display:flex;justify-content:flex-end;gap:12px}.designer-style-option:focus-visible{outline:3px solid #3780ef;outline-offset:3px}
.page-heading .layout-fab-trigger{isolation:isolate;background:linear-gradient(125deg,#355cff,#9a37ef,#08b9dc,#355cff);background-size:300% 300%;box-shadow:0 0 0 3px #ffffff,0 8px 28px #6b43eb70;animation:layout-fab-float 2.6s ease-in-out infinite,layout-color-flow 5s ease-in-out infinite;transition:box-shadow .35s}
.page-heading .layout-fab-trigger::before{inset:-8px;border:2px solid #8b68f6;animation:layout-fab-ring 2.6s ease-out infinite}
.page-heading .layout-fab-trigger::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,transparent 30%,#fff9 45%,#ffffffd9 50%,transparent 64%);background-size:350% 100%;animation:layout-button-shine 3.6s ease-in-out infinite}
.page-heading .layout-fab-trigger span{position:relative;z-index:1;text-shadow:0 1px 5px #302094}.page-heading .layout-fab-trigger:hover{box-shadow:0 0 0 4px #fff,0 0 26px #9257ff99,0 10px 32px #2489ec88}
@keyframes layout-color-flow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes layout-button-shine{0%,25%{background-position:130% 0}65%,100%{background-position:-30% 0}}
@media(max-width:600px){.designer-style-options{grid-template-columns:1fr}.designer-style-dialog{padding:20px}.style-miniature{height:62px}.designer-style-footer{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.page-heading .layout-fab-trigger,.page-heading .layout-fab-trigger::before,.page-heading .layout-fab-trigger::after{animation:none!important}.designer-style-option{transition:none}}

.designer-style-footer .designer-preview-button{border:1px solid #715bea;background:linear-gradient(125deg,#eee9ff,#dfedff);color:#4034aa;font-weight:800;padding:10px 16px;border-radius:10px}.designer-style-footer .designer-preview-button:hover{box-shadow:0 5px 18px #6554dc35}

/* Personal profile has its own save action; collapse the portfolio save bar. */
body:has(.student-brand) .save-bar{box-sizing:border-box;max-height:var(--save-bar-expanded-height,180px);opacity:1;transform:translateY(0);visibility:visible;overflow:clip;transition:opacity .28s ease,transform .4s cubic-bezier(.22,1,.36,1),max-height .4s cubic-bezier(.22,1,.36,1),padding .4s ease,margin .4s ease,border-width .4s ease,visibility 0s}
body.personal-editing:has(.student-brand) .save-bar{max-height:0;min-height:0;padding-top:0;padding-bottom:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;opacity:0;transform:translateY(-12px);visibility:hidden;pointer-events:none;transition:opacity .22s ease,transform .4s cubic-bezier(.22,1,.36,1),max-height .4s cubic-bezier(.22,1,.36,1),padding .4s ease,margin .4s ease,border-width .4s ease,visibility 0s .4s}
@media(prefers-reduced-motion:reduce){body:has(.student-brand) .save-bar,body.personal-editing:has(.student-brand) .save-bar{transition:none;transform:none}}

.work-layout-field{padding:16px;border:1px solid #b6d7ff;border-radius:12px;background:linear-gradient(120deg,#edf5ff,#e9faff)}
label.work-layout-label{display:flex;align-items:center;gap:8px;color:#1262da!important;font-weight:800!important;margin-top:14px;margin-bottom:9px}
.work-layout-label svg{flex:0 0 20px}
select.work-layout-select{width:100%;min-height:44px;border:1px solid #1d6be8!important;border-radius:10px;background:linear-gradient(115deg,#1565e8,#218bf2)!important;color:#fff!important;font-weight:750;box-shadow:0 4px 12px #1672e626;cursor:pointer;transition:box-shadow .25s ease,filter .25s ease,transform .25s ease}
select.work-layout-select:hover{filter:brightness(1.08);box-shadow:0 6px 18px #1672e640;transform:translateY(-1px)}
select.work-layout-select:focus-visible{outline:3px solid #80baff;outline-offset:3px}
select.work-layout-select option{background:#fff;color:#163b69}
@media(prefers-reduced-motion:reduce){select.work-layout-select{transition:none}select.work-layout-select:hover{transform:none}}

.style-popart .style-miniature{background:#542bff!important;border-radius:4px;overflow:hidden}.style-popart .style-miniature i:nth-child(1){background:#008cff!important;border-radius:0 100% 0 0}.style-popart .style-miniature i:nth-child(2){background:#aa63ff!important;border-radius:50%}.style-popart .style-miniature i:nth-child(3){background:#fff!important}

.style-mist .style-miniature{background:radial-gradient(ellipse at 65% 20%,#72b58a,transparent 65%),linear-gradient(125deg,#eff3ab,#e9f4e9)!important}.style-mist .style-miniature i{background:#ffffff99!important}

.style-ribbon .style-miniature{background:linear-gradient(125deg,#b5f5e4,#faffff 45%,#69dce4);border-color:#80cfc5}.style-ribbon .style-miniature i{background:#ffffffc9}

.style-mono .style-miniature{background:radial-gradient(ellipse at 0 0,#c8b5eb,transparent 55%),radial-gradient(ellipse at 100% 100%,#b1eef0,transparent 50%),#fff;border-color:#c7c7ce}.style-mono .style-miniature i{background:#29292f}

.style-abyss .style-miniature{background:radial-gradient(ellipse at 0 0,#3bd6dd,transparent 45%),radial-gradient(ellipse at 100% 100%,#7449c5,transparent 50%),#06162e;border-color:#496783}.style-abyss .style-miniature i{background:#d5ecf7}

.style-amber .style-miniature{background:linear-gradient(58deg,#fff 48%,#ffe676 49%,#ffaf26 74%,#ffde66 75%);border-color:#edd4a8}.style-amber .style-miniature i{background:#ad5a15}

.template-library-tools{display:grid;grid-template-columns:1fr 170px;gap:12px;margin-top:18px}.template-library-tools input,.template-library-tools select{width:100%;box-sizing:border-box;padding:12px;border:1px solid #d9ddec;border-radius:12px;background:#fff}.template-library-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.template-library-grid .template-version-card{min-width:0;margin:0;padding:14px;border-radius:16px;background:#fff}.template-library-grid .template-version-card.is-selected{border-color:#6354df;box-shadow:0 0 0 2px #6354df33}.template-library-grid h3{font-size:17px;margin:14px 0 6px}.template-library-grid p{font-size:12px;min-height:36px;line-height:1.5}.library-card-actions{display:grid;gap:8px;margin-top:14px}.library-card-actions button{font-size:12px;padding:9px}.library-art{height:112px;border-radius:10px;padding:15px;box-sizing:border-box;position:relative;overflow:hidden;background:#efeee8;color:#333}.library-art span{display:block;font-size:8px;letter-spacing:2px}.library-art b{display:block;margin-top:12px;font-size:20px;position:relative;z-index:1}.library-art i{position:absolute;width:90px;height:90px;right:-15px;bottom:-30px;border-radius:50%;background:#ffffff70}.library-art-gallery{background:linear-gradient(130deg,#ded5ff,#cdefff)}.library-art-popart{background:linear-gradient(45deg,#532aff,#875eff);color:white}.library-art-mist{background:radial-gradient(ellipse at 80% 10%,#90cba0,transparent 65%),#f3f4ba}.library-art-ribbon{background:linear-gradient(130deg,#fff 20%,#7de6d6 52%,#b6f2c9 70%,#fff)}.library-art-mono{background:linear-gradient(130deg,#c9b8e5,#fff 55%,#98e7e7)}.library-art-abyss{background:radial-gradient(ellipse at 90% 90%,#7f36bb,transparent 60%),#081b38;color:#baf4fa}.library-art-amber{background:linear-gradient(58deg,#fff 48%,#ffe676 49%,#ffaf26 74%,#ffde66 75%);color:#a95c13}.template-library-pages{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:24px}.template-library-pages button:disabled{opacity:.35}

.designer-style-dialog{width:min(1120px,94vw);max-height:90vh;background:#f8f9fc;border-color:#dfe2ef}.designer-style-dialog .designer-style-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:14px 0}.designer-style-dialog .designer-style-option{padding:14px;background:#fff;border-radius:16px;display:flex;flex-direction:column;gap:10px;text-align:left}.designer-style-dialog .library-art{display:block;width:100%;flex-shrink:0}.designer-style-dialog .library-art span{font-size:8px}.designer-style-dialog .library-art b{font-size:20px}.designer-style-dialog .designer-style-option.is-selected{border-color:#6354df;box-shadow:0 0 0 2px #6354df33;background:#f3f1ff}.designer-style-dialog .designer-style-footer{position:sticky;bottom:-28px;background:#f8f9cf;padding:16px 0;margin-top:18px;border-top:1px solid #e0e3ee}.designer-style-dialog .designer-style-footer{background:#f8f9fc}.library-art-inherit{background:linear-gradient(120deg,#e8e5ff,#e2f3ff)}
@media(max-width:950px){.designer-style-dialog .designer-style-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.designer-style-dialog .designer-style-options{grid-template-columns:1fr}.designer-style-dialog .template-library-tools{grid-template-columns:1fr}.designer-style-dialog .designer-style-footer{bottom:-20px}}

.library-art-orchid{background:linear-gradient(115deg,#ad45ed 0%,#e99aeF 42%,#fff 43%);color:#792da3}.template-version-card.orchid{background:linear-gradient(125deg,#f3e5ff,#fff 65%,#fbe5f8)}.style-orchid .style-miniature{background:linear-gradient(115deg,#a341ec,#e997ed 45%,#fff 46%)}

.library-art-azure{background:linear-gradient(115deg,#18cce8 0%,#5b83f9 27%,#fff 28%,#fff 80%,#28c6ed 81%);color:#12668d}.template-version-card.azure{background:linear-gradient(125deg,#e1f4fc,#fff 65%,#e4ebff)}.style-azure .style-miniature{background:linear-gradient(115deg,#18cce8,#5b83f9 35%,#fff 36%)}

.library-art-manifesto{background:linear-gradient(106deg,#fff 18%,#ffe000 19%,#ffd200 85%,#fff 86%);color:#171717}.template-version-card.manifesto{background:linear-gradient(125deg,#fff7c9,#fff 65%,#fbe4f7)}.style-manifesto .style-miniature{background:linear-gradient(106deg,#fff 18%,#ffe000 19%,#ffd200 85%,#fff 86%)}

.library-art-neon{background:radial-gradient(circle at 105% 15%,#1c1c20 26%,#a875f3 27%,#a875f3 45%,#1c1c20 46%);color:white}.template-version-card.neon{background:linear-gradient(125deg,#eee2fc,#fff 65%,#e6ddf3)}.style-neon .style-miniature{background:linear-gradient(120deg,#1c1c20 65%,#a875f3 66%)}

.library-art-collage{background:linear-gradient(160deg,#4e14df 20%,#8060fa 21%,#8060fa 52%,#fff 53%,#fff 85%,#f24beb 86%);color:#04c8d9}.template-version-card.collage{background:linear-gradient(125deg,#ece3fd,#fff 65%,#e8defa)}.style-collage .style-miniature{background:linear-gradient(160deg,#4e14df 20%,#8060fa 21%,#8060fa 52%,#fff 53%)}

.library-art-contour{background:repeating-radial-gradient(ellipse at 0 0,transparent 0 10px,#08d4c2 11px 12px,transparent 13px 23px),#1c1c21;color:white}.template-version-card.contour{background:linear-gradient(125deg,#e2f2ec,#fff 65%,#eee4f7)}.style-contour .style-miniature{background:linear-gradient(135deg,#1c1c21 65%,#08d4c2 66%,#1c1c21 70%)}

.library-art-pulse{background:linear-gradient(167deg,transparent 32%,#ff078b 33%,#9224ef 68%,transparent 69%),#061b2c;color:#fff}.template-version-card.pulse{background:linear-gradient(125deg,#fce8f4,#fff 60%,#efe6ff)}.style-pulse .style-miniature{background:linear-gradient(167deg,#061b2c 30%,#ff078b 31%,#9d21ed 65%,#061b2c 66%)}

.library-art-scarlet{background:linear-gradient(174deg,transparent 29%,#fff 30% 48%,#ffdc00 49% 70%,transparent 71%),#db0814;color:#182630}.template-version-card.scarlet{background:linear-gradient(120deg,#ffebe4,#fff9d7)}.style-scarlet .style-miniature{background:linear-gradient(174deg,#da0816 25%,#fff 26% 47%,#ffd500 48% 70%,#da0816 71%)}

.library-art-strata{background:linear-gradient(167deg,transparent 35%,#363636 36%,#111 67%,transparent 68%),#050505;color:#fff}.template-version-card.strata{background:linear-gradient(120deg,#e8e8e8,#fff)}.style-strata .style-miniature{background:linear-gradient(167deg,#000 25%,#363636 26%,#101010 65%,#000 66%)}

/* Comfortable action bar for the designer style library. */
.designer-style-dialog .designer-style-footer{display:grid;grid-template-columns:minmax(112px,1fr) auto auto;align-items:center;gap:16px;bottom:-28px;margin:26px -8px -8px;padding:20px 8px 12px;background:linear-gradient(180deg,#f8f9fcf0,#fff);border-top:1px solid #e2e6f0;box-shadow:0 -10px 24px #25386706;z-index:3}
.designer-style-dialog .library-dialog-close,.designer-style-dialog .designer-style-footer>button{min-width:112px;min-height:48px;margin:0;padding:12px 22px;border-radius:13px;line-height:1.4;white-space:nowrap;transition:background .22s,border-color .22s,box-shadow .22s,transform .22s}
.designer-style-dialog .library-dialog-close{justify-self:start;background:#fff;border:1px solid #d4dbe8;color:#556078;font-weight:600;box-shadow:0 2px 5px #20345b05}
.designer-style-dialog .library-dialog-close:hover{background:#eef2f8;border-color:#aebbd0;color:#25334c}
.designer-style-dialog .designer-style-footer .designer-preview-button{background:linear-gradient(120deg,#f0ecff,#e7f2ff);border-color:#c2c7ee;color:#4944a5}
.designer-style-dialog .designer-style-footer .btn-primary{background:linear-gradient(115deg,#6954df,#477bec);color:#fff;border:1px solid #655ce1;box-shadow:0 6px 16px #5e65db28;font-weight:700}
.designer-style-dialog .designer-style-footer .btn-primary:hover{box-shadow:0 8px 20px #5e65db42;transform:translateY(-1px)}
.designer-style-dialog .library-dialog-close:focus-visible,.designer-style-dialog .designer-style-footer>button:focus-visible{outline:3px solid #a8bef6;outline-offset:3px}
@media(max-width:680px){.designer-style-dialog .designer-style-footer{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;bottom:-20px;padding:16px 8px 12px}.designer-style-dialog .designer-style-footer>button{width:100%;min-width:0;padding:12px 10px}.designer-style-dialog .library-dialog-close{justify-self:stretch}.designer-style-dialog .designer-style-footer>.btn-primary{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.designer-style-dialog .designer-style-footer>button{transition:none}}

/* Black cancel action with a restrained animated underglow. */
.designer-style-dialog .library-dialog-close{position:relative;isolation:isolate;overflow:visible;background:#17191f;color:#fff;border-color:#17191f;box-shadow:0 4px 10px #11182720}
.designer-style-dialog .library-dialog-close::after{content:'';position:absolute;left:12%;right:12%;bottom:-5px;height:5px;border-radius:50%;background:linear-gradient(100deg,#69d8ee,#9d7bff,#ee8bd1,#69d8ee);background-size:250% 100%;filter:blur(4px);opacity:.7;pointer-events:none;animation:style-cancel-glow 4.5s ease-in-out infinite;transition:opacity .25s}
.designer-style-dialog .library-dialog-close:hover{background:#2a2d36;border-color:#2a2d36;color:#fff;box-shadow:0 5px 12px #1118272b}
.designer-style-dialog .library-dialog-close:hover::after{opacity:1}
@keyframes style-cancel-glow{0%,100%{background-position:0% 50%;transform:scaleX(.88)}50%{background-position:100% 50%;transform:scaleX(1.08)}}
@media(prefers-reduced-motion:reduce){.designer-style-dialog .library-dialog-close::after{animation:none}}

/* Keep all three actions together for shorter pointer travel. */
@media(min-width:681px){.designer-style-dialog .designer-style-footer{grid-template-columns:auto auto auto;justify-content:end;gap:12px}.designer-style-dialog .library-dialog-close{justify-self:stretch}}

#save-site:disabled{background:#e5e5e5;color:#909090;border:1px solid #d9d9d9;box-shadow:none;cursor:not-allowed;opacity:1;transform:none;filter:none}

/* Designer template information is read-only. */
.designer-template-setting{background:#f3f4f6;border-color:#dfe2e8;color:#787e89}
.designer-template-setting select:disabled{background:#e9ebef;color:#858b96;border-color:#d5d9e1;cursor:not-allowed;opacity:1;box-shadow:none;appearance:none;-webkit-text-fill-color:#858b96}
.designer-template-setting .sub{color:#858b96}

/* Neutral, read-only template display. */
.designer-template-setting{background:#f5f5f5!important;background-image:none!important;border-color:#e2e2e2!important;color:#888!important;box-shadow:none!important}
.designer-template-setting label,.designer-template-setting .sub{color:#888!important}
.designer-template-setting select:disabled{background:#ededed!important;background-image:none!important;color:#999!important;-webkit-text-fill-color:#999!important;border:1px solid #ddd!important;box-shadow:none!important;cursor:not-allowed;opacity:1}

.library-art-volt{background:#030805 url("/site-assets/volt-banner.svg") center/cover;color:#fff}

.library-art-nova{background:#100c28 url("/site-assets/nova-banner.svg") center/cover;color:#fff}.template-version-card.nova{background:linear-gradient(120deg,#eee7ff,#fceafa)}.style-nova .style-miniature{background:#100c28 url("/site-assets/nova-banner.svg") center/cover}

.library-art-slant{background:#fafafa url("/site-assets/slant-banner.svg") center/cover;color:#fff;text-shadow:0 2px 5px #000}.template-version-card.slant{background:linear-gradient(120deg,#ededed,#f6ffe0)}.style-slant .style-miniature{background:#fff url("/site-assets/slant-banner.svg") center/cover}

.library-art-prism{background:#171020 url("/site-assets/prism-banner.svg") 75% center/cover;color:#fff}.template-version-card.prism{background:linear-gradient(120deg,#eee6fa,#fff9dc)}.style-prism .style-miniature{background:#171020 url("/site-assets/prism-banner.svg") center/cover}

.library-art-loop{background:#000 url("/site-assets/loop-banner.svg") center/cover;color:#fff}.template-version-card.loop{background:linear-gradient(120deg,#e2faf0,#e7eaff)}.style-loop .style-miniature{background:#000 url("/site-assets/loop-banner.svg") center/cover}

.library-art-orbit{background:#000 url("/site-assets/orbit-banner.svg") center/cover;color:#fff}.template-version-card.orbit{background:linear-gradient(120deg,#ffe8f2,#f5f7da,#e7f4ff)}.style-orbit .style-miniature{background:#000 url("/site-assets/orbit-banner.svg") center/cover}

.library-art-matrix{background:#060906 url("/site-assets/matrix-banner.svg") center/cover;color:#fff}.template-version-card.matrix{background:linear-gradient(120deg,#e7f1dc,#f9fcf5)}.style-matrix .style-miniature{background:#060906 url("/site-assets/matrix-banner.svg") center/cover}

.library-art-chroma{background:#100516 url("/site-assets/chroma-banner.svg") center/cover;color:#fff}.template-version-card.chroma{background:linear-gradient(120deg,#f8e4f7,#fff6cc)}.style-chroma .style-miniature{background:#100516 url("/site-assets/chroma-banner.svg") center/cover}

.library-art-future{background:#030706 url("/site-assets/future-banner.svg?v=20260912-clean") center/cover;color:#fff}.template-version-card.future{background:linear-gradient(120deg,#e8f4d7,#fff0f5)}.style-future .style-miniature{background:#030706 url("/site-assets/future-banner.svg?v=20260912-clean") center/cover}

.library-art-impulse{background:#030403 url("/site-assets/impulse-banner.svg") center/cover;color:#e5f680}.template-version-card.impulse{background:linear-gradient(120deg,#f4f7df,#eeedff)}.style-impulse .style-miniature{background:#030403 url("/site-assets/impulse-banner.svg") center/cover}

.library-art-chrome{background:#020706 url("/site-assets/chrome-art.png") center/cover;color:#c6fff2}.template-version-card.chrome{background:linear-gradient(120deg,#e1f5ed,#fbece5)}.style-chrome .style-miniature{background:#020706 url("/site-assets/chrome-art.png") center/cover}

.library-art-weave{background:#020608 url("/site-assets/weave-banner.svg") center/cover;color:#effaff}.template-version-card.weave{background:linear-gradient(120deg,#e7f6fa,#f9edf7)}.style-weave .style-miniature{background:#020608 url("/site-assets/weave-banner.svg") center/cover}

.library-art-eclipse{background:#040529 url("/site-assets/eclipse-banner.svg") center/cover;color:#f4ef4f}.template-version-card.eclipse{background:linear-gradient(120deg,#e9eafc,#fffedc)}.style-eclipse .style-miniature{background:#040529 url("/site-assets/eclipse-banner.svg") center/cover}

/* Lifetime name availability is separate from license eligibility. */
.lifetime-admin-card{min-width:0;border:1px solid #e4e5ec;border-radius:16px;overflow:hidden;background:#fff}
.lifetime-admin-card>.lifetime-style-card{width:100%;height:calc(100% - 54px);box-sizing:border-box}
.lifetime-open-row{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;box-sizing:border-box;font-size:13px;font-weight:600;color:#3a4050}
.lifetime-open-switch{width:44px;height:26px;min-width:44px;padding:3px;border:0;border-radius:99px;background:#c9cdd5;cursor:pointer;transition:background .22s}
.lifetime-open-switch::before{content:"";display:block;width:20px;height:20px;border-radius:50%;background:white;box-shadow:0 1px 4px #0002;transition:transform .22s}
.lifetime-open-switch[aria-checked="true"]{background:#6356df}
.lifetime-open-switch[aria-checked="true"]::before{transform:translateX(18px)}
.lifetime-open-switch:disabled{opacity:.5;cursor:wait}
.lifetime-user-picker .is-unavailable,.lifetime-user-picker .is-unavailable:hover{--life-a:#777;--life-b:#aaa;background:#f0f1f3;color:#90949d;border-color:#e1e3e8;filter:grayscale(1);box-shadow:none;transform:none;cursor:not-allowed}
.lifetime-user-picker .is-unavailable *{color:inherit;background:transparent}
#lifetime-open-message,#lifetime-choice-help,#lifetime-choice-message{font-size:13px;line-height:1.7;color:#626979}
@media(max-width:560px){.lifetime-user-picker{grid-template-columns:1fr}.lifetime-open-row{padding:8px 10px}}

.lifetime-tone-4{--life-a:#773ec3;--life-b:#c66cdb}.lifetime-tone-5{--life-a:#256b9b;--life-b:#40b5bc}.lifetime-tone-6{--life-a:#bb3c71;--life-b:#ec9270}.lifetime-tone-7{--life-a:#9c5b14;--life-b:#d49c32}.lifetime-tone-8{--life-a:#087c6c;--life-b:#5eb788}.lifetime-tone-9{--life-a:#4c4ac5;--life-b:#9681ed}
/* Compact lifetime cards: golden ratio where text has adequate room. */
.lifetime-user-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;container-type:inline-size}
.lifetime-user-picker .lifetime-style-card{box-sizing:border-box;min-width:0;min-height:92px;aspect-ratio:1.618 / 1;padding:10px 12px;gap:4px;justify-content:center;overflow-wrap:anywhere}
.lifetime-user-picker .lifetime-card-symbol{font-size:20px;line-height:1}
.lifetime-user-picker .lifetime-style-card strong{font-size:13px;line-height:1.4}
.lifetime-user-picker .lifetime-style-card small{font-size:10px;line-height:1.4}
.lifetime-user-picker .lifetime-card-state{top:8px;right:8px;font-size:9px;line-height:1.3;padding:1px 4px}
@container(max-width:650px){.lifetime-user-picker .lifetime-style-card{aspect-ratio:auto;min-height:86px;padding:8px 4px;gap:4px;border-radius:9px;align-items:center;text-align:center}.lifetime-user-picker .lifetime-card-symbol{display:none}.lifetime-user-picker .lifetime-style-card strong{font-size:11px;line-height:1.4}.lifetime-user-picker .lifetime-style-card small{display:none}.lifetime-user-picker .lifetime-card-state{position:static;padding:0;font-size:9px;line-height:1.3}}
@media(max-width:560px){.lifetime-user-picker{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}}

/* Neutral headers for account distribution, badge assets and authorizations. */
.admin-page :is(#admin-create,#admin-badge-panel,#admin-users)>h2{background:#373737;color:#fff}

.designer-template-setting .designer-style-library-link{display:inline;padding:0;margin:0;border:0;border-radius:3px;background:none;color:#2478dc;font:inherit;font-weight:600;line-height:inherit;vertical-align:baseline;cursor:pointer;box-shadow:none}
.designer-template-setting .designer-style-library-link:hover{color:#155bb1;text-decoration:underline;text-underline-offset:3px;background:none;transform:none}
.designer-template-setting .designer-style-library-link:focus-visible{outline:2px solid #2478dc;outline-offset:3px}

.style-preview-mode{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);align-items:center;gap:14px;padding:12px 14px;margin:12px 0;border:1px solid #dce2ef;border-radius:12px;background:#f6f8fc}
.style-preview-mode[hidden]{display:none}
.style-preview-mode label{display:flex;align-items:center;gap:12px;font-size:13px;color:#47536a;white-space:nowrap}
.style-preview-mode select{min-width:0;flex:1;min-height:40px;padding:8px 10px;border:1px solid #d4dce9;border-radius:8px;background:#fff;color:#364760;font:inherit}
.style-preview-mode small{font-size:11px;line-height:1.7;color:#7a8391}
@media(max-width:680px){.style-preview-mode{grid-template-columns:1fr;gap:8px}}

 .style-replace-confirm{width:min(420px,calc(100vw - 32px));box-sizing:border-box;padding:24px;border:1px solid #e8e9ef;border-radius:16px;background:#fff;box-shadow:0 20px 64px #18223b26;color:#343946}
.style-replace-confirm::backdrop{background:#17203355;backdrop-filter:blur(3px)}
.style-replace-confirm h3{margin:0 0 12px;font-size:18px;font-weight:650;line-height:1.5;letter-spacing:0}
.style-replace-confirm p{margin:0;font-size:14px;line-height:1.75;color:#626875}
.style-replace-confirm .sub{margin-top:12px;font-size:12px;line-height:1.65;color:#8a909b}
.style-replace-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.style-replace-actions button{min-height:40px;padding:9px 16px;border-radius:10px;font-size:14px;line-height:20px;box-shadow:none}
.style-replace-actions .btn-ghost{background:#f3f4f7;border:1px solid transparent;color:#626875}
.style-replace-actions .btn-primary{background:#6655e8;border:1px solid #6655e8;color:#fff}
.style-replace-actions .btn-primary:hover{background:#5747d5;border-color:#5747d5;box-shadow:none}
.style-replace-actions .btn-ghost:hover{background:#e9ebf0}
@media(max-width:480px){.style-replace-confirm{padding:22px 20px}.style-replace-actions{margin-top:20px}}

/* Visual summary for replacing a custom Banner. */
.style-replace-confirm{width:min(460px,calc(100vw - 32px))}
.replace-comparison{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:10px;margin:20px 0 14px}
.replace-preview{min-width:0}.replace-preview .library-art,.replace-current-art{height:96px;border-radius:10px;padding:12px}
.replace-preview .library-art b{font-size:16px;margin-top:16px;line-height:1.25}.replace-preview .library-art span{font-size:7px;letter-spacing:1px}
.replace-current-art{box-sizing:border-box;position:relative;overflow:hidden;background:linear-gradient(135deg,#edf0f6,#dfe3ed);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#7b8395;font-size:11px}
.replace-current-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.replace-icon{display:inline-flex;flex:none;width:20px;height:20px}.replace-icon svg{width:100%;height:100%}.replace-current-art .replace-icon{width:26px;height:26px}
.replace-caption{display:block;font-size:12px;color:#737a87;margin-top:8px;text-align:center;line-height:1.5;overflow-wrap:anywhere}
.replace-direction{display:flex;justify-content:center;color:#a3a8b5;padding-bottom:26px}
.style-replace-confirm .replace-keep{font-size:12px;color:#737a87;text-align:center}
.replace-backup-note{display:flex;align-items:center;gap:8px;margin-top:16px;padding:10px 12px;background:#f5f6fa;border-radius:10px;color:#858b98;font-size:12px;line-height:1.6}.replace-backup-note .replace-icon{width:17px;height:17px}
@media(max-width:480px){.replace-comparison{gap:7px;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr)}.replace-preview .library-art,.replace-current-art{height:84px}.replace-preview .library-art b{font-size:14px}}

.style-replace-confirm #replace-banner-description{color:#c66b14}
.style-replace-confirm .replace-keep{display:flex;align-items:center;justify-content:center;gap:7px;color:#287bdc}
.replace-keep-dot{width:6px;height:6px;flex:none;border-radius:50%;background:#287bdc}
.style-replace-confirm .replace-keep strong,.replace-backup-note strong{color:#414650;font-weight:600}
