*{box-sizing:border-box}body{margin:0;font:14px/1.55 system-ui,-apple-system,Segoe UI,sans-serif;background:#fff8fc;color:#422a3a}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}.hidden,[hidden]{display:none!important}.shell{min-height:100vh;display:grid;grid-template-columns:238px minmax(0,1fr)}aside{background:#fff;border-right:1px solid #efd5e3;padding:25px 18px;display:flex;flex-direction:column;gap:9px}.brand{font-size:23px;font-weight:800;color:#ad2b70;margin-bottom:30px}.brand small{display:block;color:#a37a8e;font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.nav{border:0;background:transparent;padding:12px 13px;text-align:left;border-radius:10px;color:#69435a;font-weight:650;text-decoration:none}.nav.active,.nav:hover{background:#fce7f2;color:#a62968}.side-bottom{margin-top:auto;overflow-wrap:anywhere}.side-bottom small{display:block;color:#977d8b}main{padding:34px clamp(20px,5vw,70px);max-width:1450px;width:100%;margin:auto}.top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:27px;flex-wrap:wrap}h1{font-size:30px;letter-spacing:-.04em;margin:0}h2{font-size:19px;margin:0 0 14px}p{color:#856d7b}.card{background:white;border:1px solid #edd9e3;border-radius:15px;padding:22px;box-shadow:0 8px 25px #8c48640a}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:16px}.tile{min-height:165px;display:flex;flex-direction:column;gap:10px}.tile .icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#fbe4f0;color:#a62968;font-size:23px}.tile strong{font-size:17px}.tile p{margin:0}.muted{color:#8f7886;font-size:12px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.btn{border:1px solid #e4c2d4;border-radius:9px;background:white;color:#71364f;padding:9px 14px;font-weight:650}.btn:hover{background:#fff0f7}.btn.primary{background:#b92e72;color:white;border-color:#b92e72}.btn.primary:hover{background:#9e205e}.btn.danger{color:#ac2542}.project{min-height:185px}.project h3{margin:0;font-size:18px;overflow-wrap:anywhere}.project .meta{font-size:12px;color:#927b88}.notice{margin:12px 0;color:#a32465;min-height:22px}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top,#ffe5f3,#fff9fc 60%)}.auth-card{width:min(440px,100%);padding:34px}.auth-card .brand{margin:0 0 12px}label{display:block;margin:14px 0 6px;font-weight:650;font-size:13px}input{width:100%;border:1px solid #ddbdcf;border-radius:9px;padding:11px 12px;background:#fff}input:focus{outline:2px solid #e9a2c8;outline-offset:1px}.auth-card .btn{margin-top:17px;width:100%}.auth-switch{margin-top:14px;text-align:center}.auth-switch button{background:none;border:0;color:#a62968;text-decoration:underline}.empty{padding:34px;text-align:center;border:1px dashed #deb6cc;border-radius:12px;color:#876d7b}.tag{display:inline-block;border-radius:20px;background:#f6e7f0;color:#8d3a66;padding:3px 9px;font-size:11px;font-weight:700}@media(max-width:740px){.shell{display:block}aside{position:static;padding:12px 17px;flex-direction:row;align-items:center;flex-wrap:wrap}.brand{font-size:18px;margin:0 auto 0 0}.brand small{display:none}.side-bottom{margin:0}.nav{padding:8px}.top{align-items:flex-start}main{padding:24px 16px}}
/* Dashboard project controls and account settings */
.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:18px}.section-head h2{margin-bottom:3px}.section-head p{margin:0}.filters{display:flex;gap:9px;flex-wrap:wrap}.filters input{min-width:180px}.filters select{border:1px solid #ddbdcf;border-radius:9px;padding:10px;background:white;color:#69435a}.count{font-size:14px;color:#a37a8e}.account-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px}.details{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;margin-top:20px}.details dt{color:#8f7886;font-size:13px}.details dd{margin:0;overflow-wrap:anywhere}.account-grid .card{align-self:start}.account-grid .btn{margin-top:18px}.coming .tag{align-self:start;margin-top:auto}.project .actions .btn{padding:7px 11px}.project .meta{margin-bottom:8px}@media(max-width:740px){.filters{width:100%}.filters input{flex:1;min-width:0}.details{grid-template-columns:1fr;gap:3px}.details dd{margin-bottom:12px}}

/* Administration */
.admin-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.admin-tabs .active{background:#b92e72;color:#fff}.admin-summary{margin:12px 0;font-weight:700}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th,.admin-table td{text-align:left;padding:11px 9px;border-bottom:1px solid #edd9e3}.table-wrap{overflow-x:auto}.admin-widget-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 0;border-top:1px solid #edd9e3;flex-wrap:wrap}.admin-widget-controls{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.admin-widget-controls label{margin:0;white-space:nowrap}.admin-widget-controls input{width:auto}.check-row{display:flex;align-items:center;gap:8px}.check-row input{width:auto}textarea{width:100%;padding:11px;border:1px solid #ddbdcf;border-radius:9px;font:inherit}.maintenance-banner{position:fixed;bottom:0;left:0;right:0;z-index:200;background:#71304e;color:white;text-align:center;padding:12px 20px;box-shadow:0 -3px 20px #0002}


/* Widget Sweet — Heisei desktop dashboard skin. Scoped to dashboard and auth;
   all original IDs, controls, scripts and functionality remain intact. */
:root{--ws-ink:#65415b;--ws-border:#c77ca5;--ws-mid:#e6aac9;--ws-light:#fff5fa;--ws-pink:#b44782}
body{font-family:Tahoma,Verdana,"MS PGothic",sans-serif;font-size:13px;background-color:#fff1f8;background-image:repeating-linear-gradient(0deg,transparent 0 15px,#f8dbe9 15px 16px),repeating-linear-gradient(90deg,transparent 0 15px,#f8dbe9 15px 16px);color:var(--ws-ink)}
.shell{grid-template-columns:222px minmax(0,1fr);max-width:1600px;margin:auto;border-left:1px solid #d9a4bf;border-right:1px solid #d9a4bf;background:#fff9fc;box-shadow:0 0 0 3px #ffffff9c}
aside{background:linear-gradient(#fffbfe,#fce1ee);border-right:2px solid #d18bad;padding:16px 12px;gap:5px}
.brand{font-size:22px;letter-spacing:-.7px;color:#a12c70;text-shadow:1px 1px #fff;margin-bottom:14px;font-weight:900}
.brand small{font-size:10px;letter-spacing:.02em;text-transform:none;color:#a06185;font-weight:600}
.nav-caption{background:linear-gradient(#f7d8e9,#dca1c2);border:1px solid #b96f99;color:#743b60;font-weight:700;font-size:10px;padding:5px 8px;letter-spacing:.1em;margin-bottom:5px}
.nav{border:1px solid #e4bad1;border-radius:0;background:linear-gradient(#fff,#fff1f8);box-shadow:inset 1px 1px #fff,1px 1px #f1cadf;padding:9px 10px;color:#75425e;font-size:12px;font-weight:700}
.nav:hover,.nav.active{background:linear-gradient(#ffeaf4,#edbad5);border-color:#bc7da2;color:#9b2e69}
.nav.active:before{content:none}
.side-bottom{border-top:1px dashed #d4a0be;padding-top:13px;margin-top:auto}
main{max-width:none;margin:0;padding:0 25px 35px}
.desktop-titlebar{margin:0 -25px 24px;padding:7px 13px;background:linear-gradient(180deg,#e9bad4,#cb83af);border-bottom:2px solid #ac648f;display:flex;justify-content:space-between;gap:12px;color:#683554;font-size:11px;font-weight:800;letter-spacing:.05em}
.top{padding-bottom:14px;margin-bottom:20px;border-bottom:1px dashed #d9a4c0}
h1{font-size:23px;letter-spacing:0;color:#9f3e77;text-shadow:1px 1px #fff}
h2{font-size:15px;letter-spacing:.01em;color:#943b70;border-bottom:2px solid #eabbd5;padding-bottom:7px;margin-bottom:12px}
p{color:#80667a}
.welcome-strip{padding:10px 12px;margin-bottom:18px;background:#fff1f8;border:1px dashed #d29abb;text-align:center;color:#a3487e;font-weight:700;font-size:12px}
.grid{grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px}
.card{background:linear-gradient(#fff,#fffafd);border:1px solid #c88bab;border-radius:0;box-shadow:inset 1px 1px #fff,2px 2px 0 #edcadd;padding:15px}
.tile{min-height:155px;gap:8px}
.tile .icon{width:35px;height:35px;border:1px solid #cb8aad;border-radius:0;background:linear-gradient(#fff4fa,#edc1db);color:#a33073;font-size:22px;box-shadow:inset 1px 1px #fff}
.tile strong{font-size:14px;color:#763d60}
.tile p{font-size:12px;line-height:1.5}
.btn{border:1px solid #b8759c;border-radius:0;background:linear-gradient(#fff,#f8dbe9);color:#783d61;padding:7px 11px;font-size:12px;font-weight:700;box-shadow:inset 1px 1px #fff,1px 1px #e7bed3}
.btn:hover{background:linear-gradient(#fff,#f0c1d9)}
.btn:active{box-shadow:inset 2px 2px #cf9eb8;transform:translate(1px,1px)}
.btn.primary,.admin-tabs .active{background:linear-gradient(#d16a9f,#ac3d7c);border-color:#943566;color:#fff;box-shadow:inset 1px 1px #ed9fc4,1px 1px #e7bed3}
.btn.primary:hover{background:linear-gradient(#db7eac,#b54986)}
input,select,textarea,.filters select{border:1px solid #c48ca9;border-radius:0;background:#fff;box-shadow:inset 1px 1px #eee;padding:8px;color:#583c50}
input:focus,textarea:focus,select:focus{outline:2px solid #e9a2c8;outline-offset:1px}
.tag{border-radius:0;border:1px solid #e1aac9;background:#fff0f7;color:#95416f;padding:3px 7px}
.empty{border-radius:0;background:#fff7fb}
.auth-screen{background-color:#fff1f8;background-image:repeating-linear-gradient(45deg,#fff4fa 0 10px,#fbe2ef 10px 20px)}
.auth-card{border:2px solid #c98cac;box-shadow:5px 5px 0 #e6bdd2}
.auth-card .brand{margin-bottom:14px}
.admin-table th{background:#f5d9e8;color:#743d5d}
.admin-table th,.admin-table td{border:1px solid #e6bfd3;padding:9px}
.admin-widget-row{border-color:#dfb5ca}
@media(max-width:740px){
 .shell{display:block}
 aside{flex-direction:row;flex-wrap:wrap;align-items:center;padding:10px;gap:5px;border-right:0;border-bottom:2px solid #d18bad}
 .brand{font-size:17px;margin:0 auto 0 0}
 .brand small,.nav-caption{display:none}
 .nav{padding:7px}
 .side-bottom{margin-left:auto;padding-top:0;border:0}
 main{padding:0 12px 24px}
 .desktop-titlebar{margin:0 -12px 16px}
 .top{align-items:flex-start}
 .grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,205px),1fr))}
}

/* Official Theme Manager */
.theme-admin-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(240px,.9fr);gap:24px}
.theme-admin-grid label{display:block;margin:12px 0 6px;font-weight:600}.theme-admin-grid input:not([type=checkbox]),.theme-admin-grid select,.theme-admin-grid textarea{width:100%;max-width:100%;box-sizing:border-box}
.official-theme-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px 16px}.official-theme-fields label{font-size:12px}.official-theme-fields input[type=color]{width:100%;height:34px;padding:2px}.official-theme-preview{border:1px solid #d4b1c3;border-radius:12px;min-height:185px;padding:15px;overflow:hidden;background:#fff8fc;color:#332635}.official-theme-card{border:1px solid #e8d1dd;background:#fff;padding:14px;border-radius:8px;margin-top:9px}.official-theme-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;border-bottom:1px solid #eadce3;padding:10px 0}.official-theme-row strong{flex:1;min-width:130px}.official-theme-row small{display:block;font-weight:normal}.official-theme-row button{font-size:12px}.official-theme-preview img{max-width:100%}@media(max-width:800px){.theme-admin-grid{grid-template-columns:1fr}.official-theme-fields{grid-template-columns:1fr 1fr}}

#officialBlogFields[hidden],#officialLayoutFields[hidden],#adminThemesPanel[hidden]{display:none!important}

/* Admin-only background file uploader for official Blog themes */
.official-theme-image-field{grid-column:1/-1;padding:10px;border:1px dashed #c9acc0;border-radius:8px;display:flex;flex-direction:column;align-items:flex-start;gap:7px}.official-theme-image-field label{margin:0!important}.official-theme-image-field input[type=file]{font-size:12px}.official-theme-image-field small{color:var(--muted,#806477);word-break:break-word}.official-theme-image-field button{width:auto}.official-theme-image-field button:disabled{opacity:.5;cursor:default}

/* Uploaded dashboard card icons (preserve the original card spacing). */
.tile .icon[data-card-icon]{overflow:hidden;flex-shrink:0}
.tile .icon[data-card-icon] img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.admin-card-icons-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.admin-card-icon-item{border:1px solid #e4c2d4;background:#fff9fc;padding:15px;display:flex;flex-direction:column;gap:9px;min-width:0}
.admin-card-icon-item label{margin:0}
.admin-card-icon-preview{width:88px;height:88px;display:grid;place-items:center;background:white;border:1px solid #e4c2d4;overflow:hidden}
.admin-card-icon-preview img{width:100%;height:100%;object-fit:contain}
.admin-card-icon-item .actions{margin-top:4px}
.admin-card-icon-item input[type=file]{max-width:100%;font-size:12px;padding:7px}

/* Shared Widget Sweet logo and admin logo preview */
.ws-brand-line{display:inline-flex;align-items:center;gap:9px;vertical-align:middle;max-width:100%}
[data-ws-logo]:not(:empty){display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
[data-ws-logo] img{width:28px;height:28px;object-fit:contain;display:block}
.desktop-titlebar [data-ws-logo] img{width:17px;height:17px}
.ws-admin-logo-preview{width:110px;height:110px;display:grid;place-items:center;background:white;border:1px solid #dcb2c7;margin:12px 0}
.ws-admin-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}
.ws-admin-logo-preview .muted{padding:8px;text-align:center}

/* Blank widget icon slots stay hidden until an admin-uploaded image is available. */
.tile .icon[data-card-icon]:empty{display:none}

/* Honor Widget Management visibility even when cards use display:flex. */
[data-widget-card][hidden]{display:none!important}

/* Google OAuth — dashboard sign-in only. */
.ws-auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0 0;color:#8f7383;font-size:12px}
.ws-auth-divider:before,.ws-auth-divider:after{content:"";height:1px;background:#e3c6d5;flex:1}
.auth-card .ws-google-signin{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;margin-top:12px;background:#fff!important;background-image:none!important;color:#343038!important;border:1px solid #bca9b5!important;box-shadow:none!important;min-height:43px;font-size:13px}
.auth-card .ws-google-signin:hover{background:#f8f1f5!important;background-image:none!important;border-color:#aa7f98!important}
.auth-card .ws-google-signin svg{flex:none}
