:root{color-scheme:light;--bg:#f2f2f2;--fg:#242424;--muted:#626262;--line:#ccc;--panel:#fff;--tab:#e6e6e6;--active:#cfcfcf;--link:#333;--danger:#a22828;--ui-font:"Roboto",Arial,sans-serif;--body-font:"Roboto",Arial,sans-serif;--heading-font:"Roboto",Arial,sans-serif}
body[data-theme=gray-light]{color-scheme:light;--bg:#f2f2f2;--fg:#242424;--muted:#626262;--line:#cccccc;--panel:#ffffff;--tab:#e6e6e6;--link:#333333;--danger:#a22828;--active:#cfcfcf;--tab-area:#e6e6e6;--tab-selected:#cfcfcf}
body[data-theme=gray-dark]{color-scheme:dark;--bg:#161616;--fg:#eeeeee;--muted:#b6b6b6;--line:#484848;--panel:#222222;--tab:#383838;--link:#dedede;--danger:#ffaaaa;--active:#323232;--tab-area:#383838;--tab-selected:#323232}
body[data-theme=red-light]{color-scheme:light;--bg:#f8f2f2;--fg:#3e1919;--muted:#6d4646;--line:#d6b3b3;--panel:#ffffff;--tab:#f4d2d2;--link:#7a1a1a;--danger:#a22828;--active:#dcbdbd;--tab-area:#f4d2d2;--tab-selected:#dcbdbd}
body[data-theme=red-dark]{color-scheme:dark;--bg:#160c0c;--fg:#f1e4e4;--muted:#caaaaa;--line:#5b3434;--panel:#261515;--tab:#4b2525;--link:#ed9b9b;--danger:#ffaaaa;--active:#442121;--tab-area:#4b2525;--tab-selected:#442121}
body[data-theme=orange-light]{color-scheme:light;--bg:#f8f4f2;--fg:#3e2919;--muted:#6d5746;--line:#d6c2b3;--panel:#ffffff;--tab:#f4e1d2;--link:#7a441a;--danger:#a22828;--active:#dccabd;--tab-area:#f4e1d2;--tab-selected:#dccabd}
body[data-theme=orange-dark]{color-scheme:dark;--bg:#16100c;--fg:#f1eae4;--muted:#cab8aa;--line:#5b4534;--panel:#261c15;--tab:#4b3625;--link:#edbf9b;--danger:#ffaaaa;--active:#443121;--tab-area:#4b3625;--tab-selected:#443121}
body[data-theme=yellow-light]{color-scheme:light;--bg:#f8f7f2;--fg:#3e3819;--muted:#6d6746;--line:#d6d1b3;--panel:#ffffff;--tab:#f4efd2;--link:#7a6c1a;--danger:#a22828;--active:#dcd7bd;--tab-area:#f4efd2;--tab-selected:#dcd7bd}
body[data-theme=yellow-dark]{color-scheme:dark;--bg:#16140c;--fg:#f1efe4;--muted:#cac5aa;--line:#5b5534;--panel:#262315;--tab:#4b4525;--link:#ede19b;--danger:#ffaaaa;--active:#443e21;--tab-area:#4b4525;--tab-selected:#443e21}
body[data-theme=green-light]{color-scheme:light;--bg:#f2f8f3;--fg:#193e20;--muted:#466d4d;--line:#b3d6b9;--panel:#ffffff;--tab:#d2f4d8;--link:#1a7a2c;--danger:#a22828;--active:#bddcc2;--tab-area:#d2f4d8;--tab-selected:#bddcc2}
body[data-theme=green-dark]{color-scheme:dark;--bg:#0c160d;--fg:#e4f1e7;--muted:#aacab0;--line:#345b3b;--panel:#152618;--tab:#254b2c;--link:#9bedaa;--danger:#ffaaaa;--active:#214428;--tab-area:#254b2c;--tab-selected:#214428}
body[data-theme=cyan-light]{color-scheme:light;--bg:#f2f8f8;--fg:#193c3e;--muted:#466b6d;--line:#b3d4d6;--panel:#ffffff;--tab:#d2f2f4;--link:#1a757a;--danger:#a22828;--active:#bddadc;--tab-area:#d2f2f4;--tab-selected:#bddadc}
body[data-theme=cyan-dark]{color-scheme:dark;--bg:#0c1516;--fg:#e4f0f1;--muted:#aac8ca;--line:#34595b;--panel:#152526;--tab:#25494b;--link:#9be9ed;--danger:#ffaaaa;--active:#214244;--tab-area:#25494b;--tab-selected:#214244}
body[data-theme=blue-light]{color-scheme:light;--bg:#f2f4f8;--fg:#19283e;--muted:#46556d;--line:#b3c1d6;--panel:#ffffff;--tab:#d2e0f4;--link:#1a407a;--danger:#a22828;--active:#bdcadc;--tab-area:#d2e0f4;--tab-selected:#bdcadc}
body[data-theme=blue-dark]{color-scheme:dark;--bg:#0c1016;--fg:#e4e9f1;--muted:#aab7ca;--line:#34445b;--panel:#151c26;--tab:#25344b;--link:#9bbced;--danger:#ffaaaa;--active:#212f44;--tab-area:#25344b;--tab-selected:#212f44}
body[data-theme=purple-light]{color-scheme:light;--bg:#f5f2f8;--fg:#2d193e;--muted:#5b466d;--line:#c6b3d6;--panel:#ffffff;--tab:#e4d2f4;--link:#4d1a7a;--danger:#a22828;--active:#cdbddc;--tab-area:#e4d2f4;--tab-selected:#cdbddc}
body[data-theme=purple-dark]{color-scheme:dark;--bg:#110c16;--fg:#ebe4f1;--muted:#bbaaca;--line:#49345b;--panel:#1e1526;--tab:#39254b;--link:#c79bed;--danger:#ffaaaa;--active:#332144;--tab-area:#39254b;--tab-selected:#332144}
body[data-theme=pink-light]{color-scheme:light;--bg:#f8f2f5;--fg:#3e192d;--muted:#6d465b;--line:#d6b3c6;--panel:#ffffff;--tab:#f4d2e5;--link:#7a1a4f;--danger:#a22828;--active:#dcbdce;--tab-area:#f4d2e5;--tab-selected:#dcbdce}
body[data-theme=pink-dark]{color-scheme:dark;--bg:#160c11;--fg:#f1e4eb;--muted:#caaabc;--line:#5b3449;--panel:#26151e;--tab:#4b253a;--link:#ed9bc8;--danger:#ffaaaa;--active:#442134;--tab-area:#4b253a;--tab-selected:#442134}
body[data-theme=brown-light]{color-scheme:light;--bg:#f6f5f3;--fg:#352b21;--muted:#64594e;--line:#cec4bb;--panel:#ffffff;--tab:#ece2da;--link:#644830;--danger:#a22828;--active:#d4cbc4;--tab-area:#ece2da;--tab-selected:#d4cbc4}
body[data-theme=brown-dark]{color-scheme:dark;--bg:#13100e;--fg:#eeeae7;--muted:#c3bab1;--line:#52473d;--panel:#221d19;--tab:#43372e;--link:#dbc3ae;--danger:#ffaaaa;--active:#3c3229;--tab-area:#43372e;--tab-selected:#3c3229}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.7 system-ui,-apple-system,sans-serif}.shell{width:650px;max-width:calc(100% - 32px);margin:64px auto 28px}header{margin-bottom:30px}h1{font-size:29px;line-height:1.25;letter-spacing:-.9px;font-weight:600;margin:0 0 8px}h2{font-size:21px;font-weight:550;line-height:1.4;margin:0 0 18px}h3{font-size:17px;line-height:1.5}h4,h5,h6{font-size:15px}.subtitle,.muted,small,time{color:var(--muted)}p{margin:0 0 18px}a{color:var(--link);text-underline-offset:3px}.content{padding:28px 0;min-height:250px}.content:focus{outline:none}.item{padding:18px 0;border-bottom:1px solid var(--line)}.item:first-child{padding-top:0}.item h3{margin:3px 0 10px}.item p{margin-bottom:10px}.item time{font-size:12px}.button,button{display:inline-block;background:var(--tab);border:1px solid var(--line);border-radius:3px;color:var(--fg);padding:7px 12px;text-decoration:none;font:inherit;font-size:13px;cursor:pointer}button:hover,.button:hover{background:var(--active)}.danger{color:var(--danger)}footer{margin-top:12px;border-top:1px solid var(--line);padding:15px 0;font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:14px}label{display:block;font-size:13px;margin:16px 0 5px}input:not([type=checkbox]),select,textarea{width:100%;max-width:100%;padding:9px;background:var(--panel);border:1px solid var(--line);border-radius:3px;color:var(--fg);font:inherit;font-size:14px}textarea{min-height:160px;resize:vertical}textarea.markdown{min-height:300px;font-family:ui-monospace,monospace;font-size:13px;line-height:1.65}input[type=checkbox]{margin-right:8px}form>button{margin-top:18px}.row{display:flex;gap:12px}.row>div{flex:1;min-width:0}.notice{border:1px solid var(--line);background:var(--panel);padding:12px;margin:18px 0}.error{border-color:var(--danger);color:var(--danger)}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:16px 0}.actions form{margin:0}.toolbar{display:flex;gap:4px;flex-wrap:wrap;margin:8px 0}.toolbar button{font-size:12px;padding:4px 8px}.editor-preview{padding:14px;border:1px solid var(--line);margin-top:10px;overflow-wrap:anywhere}.prose{overflow-wrap:anywhere}.prose h1{font-size:25px}.prose h2{font-size:21px}.prose pre{overflow-x:auto;background:var(--tab);padding:14px;max-width:100%;font-size:12px}.prose code{font-family:ui-monospace,monospace;background:var(--tab)}.prose blockquote{border-left:3px solid var(--line);margin:14px 0;padding-left:14px}.prose img{max-width:100%}hr{border:0;border-top:1px solid var(--line);margin:24px 0}.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.stats{display:flex;gap:18px;flex-wrap:wrap}.stats b{display:block;font-size:24px}details{margin:16px 0}summary{cursor:pointer}[hidden]{display:none!important}@media(max-width:420px){.shell{margin-top:32px}h1{font-size:26px}}


body.site .shell{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:28px 24px 6px;box-shadow:0 6px 24px rgb(0 0 0 / 6%)}
body.site header{margin-bottom:26px}
body.site .content{padding-top:26px;min-height:260px}
body.site footer{margin-top:0;padding:15px 0 12px;flex-wrap:wrap}
body.site input:not([type=checkbox]),body.site textarea{background:var(--bg)}
@media(max-width:420px){body.site .shell{padding:22px 16px 4px;border-radius:8px}body.site .content{min-height:230px}}


body.admin-dashboard .shell{width:calc(100% - 230px);max-width:none;min-height:100vh;margin:0 0 0 230px;padding:32px 36px 18px}
body.admin-dashboard header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}
body.admin-dashboard header h1{margin:0;font-size:25px}
body.admin-dashboard header a{font-size:13px;white-space:nowrap}
.admin-sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:var(--panel);border-right:1px solid var(--line);padding:28px 16px 20px;display:flex;flex-direction:column;gap:26px;overflow-y:auto}
.sidebar-brand{padding:0 12px}.sidebar-caption{margin:0 0 8px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.12em}.sidebar-brand h2{margin:0;font-size:18px;overflow-wrap:anywhere}
.admin-sidebar nav{display:flex;flex-direction:column;gap:5px}.admin-sidebar nav a{display:block;padding:10px 12px;color:var(--fg);border:1px solid transparent;border-radius:4px;text-decoration:none;font-size:14px}.admin-sidebar nav a:hover{background:var(--tab)}.admin-sidebar nav a.current{background:var(--active);border-color:var(--line);font-weight:600}
.sidebar-signout{margin-top:auto;padding:12px 12px 0;border-top:1px solid var(--line)}.sidebar-signout button{width:100%;margin:0}
body.admin-dashboard .content{padding:28px;background:var(--panel);border:1px solid var(--line);border-radius:6px;min-height:calc(100vh - 170px)}
body.admin-dashboard .stats{gap:36px}body.admin-dashboard .stats p{min-width:110px}body.admin-dashboard .stats b{font-size:32px}body.admin-dashboard textarea.markdown{min-height:440px}body.admin-dashboard footer{margin-top:22px}
body.admin-login .shell{width:420px;margin-top:10vh}
@media(max-width:760px){body.admin-dashboard .shell{width:100%;margin:0;padding:20px 16px}.admin-sidebar{position:relative;inset:auto;width:100%;border-right:0;border-bottom:1px solid var(--line);padding:18px 16px;gap:14px}.sidebar-brand{padding:0}.sidebar-brand h2{font-size:17px}.sidebar-caption{margin-bottom:3px}.admin-sidebar nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.admin-sidebar nav a{padding:8px 6px;text-align:center;font-size:12px}.sidebar-signout{margin:0;padding:0;border:0}.sidebar-signout button{width:auto}body.admin-dashboard .content{padding:20px 16px}body.admin-dashboard header{gap:12px;flex-wrap:wrap}body.admin-dashboard header h1{font-size:23px}}
body.site header{border-bottom:1px solid var(--line);padding-bottom:20px}


body.site{font-family:var(--body-font);font-size:16px;line-height:1.75}
body.site header,body.site nav,body.site footer,body.site label,body.site input,body.site select,body.site textarea,body.site button,body.site .button,body.site time{font-family:var(--ui-font)}
body.site h1,body.site h2,body.site h3,body.site h4,body.site h5,body.site h6{font-family:var(--heading-font)}

.prose{line-height:1.8}
.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{font-family:var(--heading-font);font-weight:600;line-height:1.35;margin:28px 0 12px}
.prose h1{font-size:26px;letter-spacing:-.6px}
.prose h2{font-size:23px;letter-spacing:-.35px}
.prose h3{font-size:20px;letter-spacing:-.2px}
.prose h4{font-size:18px;letter-spacing:0}
.prose h5{font-size:16px;letter-spacing:0}
.prose h6{font-size:15px;letter-spacing:0}
.prose p{margin:0 0 18px}
.prose ul,.prose ol{margin:0 0 20px;padding-left:24px}
.prose li{margin:6px 0;padding-left:3px}
.prose blockquote{margin:22px 0;padding:4px 0 4px 16px}
.prose pre{margin:22px 0;padding:16px;line-height:1.65}
.prose hr{margin:28px 0}
.prose>:first-child{margin-top:0}
.prose>:last-child{margin-bottom:0}
body.site .content>h2,body.site .content>article>h2{font-size:23px;line-height:1.35;margin:0 0 18px}
body.site .content>article>h2{font-size:26px}
body.site .item{padding-top:22px;padding-bottom:22px}
body.site .item:first-child{padding-top:0}
body.site .item h3{font-size:20px;line-height:1.4;margin:6px 0 12px}
body.site .item p{margin-bottom:12px;line-height:1.8}

body{font-family:var(--body-font)}
h1,h2,h3,h4,h5,h6{font-family:var(--heading-font);overflow-wrap:anywhere}

body{font-size:14px;line-height:1.75}
body.site{font-size:14px;line-height:1.75}
body.site header h1{font-size:20px;line-height:1.35;letter-spacing:-.3px;margin-bottom:4px}
body.site header{padding-bottom:10px;margin-bottom:6px}
body.site .subtitle{font-size:12px;margin-bottom:8px}
.prose h1{font-size:23px}.prose h2{font-size:20px}.prose h3{font-size:17px}.prose h4{font-size:15px}.prose h5{font-size:14px}.prose h6{font-size:13px}
.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{margin-top:24px;margin-bottom:10px;line-height:1.4}
.prose>:first-child{margin-top:0}
.prose p{margin-bottom:16px}.prose>:last-child{margin-bottom:0}
.prose ul,.prose ol{margin-bottom:18px}.prose li{margin:5px 0}
body.site .content>h2{font-size:20px;margin-bottom:16px}
body.site .content>article>h2{font-size:23px;margin-bottom:16px}
body.site .item h3{font-size:17px;margin-top:5px;margin-bottom:10px}
body.site .item time{font-size:11px}
body.site footer,body.admin footer{font-size:11px;line-height:1.6}
body.site label,body.admin label{font-size:12px;margin-top:14px}
body.site input:not([type=checkbox]),body.site select,body.site textarea,body.admin input:not([type=checkbox]),body.admin select,body.admin textarea{font-size:13px;line-height:1.6;padding:8px}
body.site button,body.site .button,body.admin button{font-size:12px;line-height:1.6}
body.site .muted,body.admin .muted{font-size:12px}
body.admin-dashboard header h1{font-size:21px}
body.admin-dashboard .content>h2{font-size:20px}
body.admin-dashboard .content h3{font-size:16px}
body.admin .sidebar-brand h2{font-size:16px;line-height:1.5}
body.admin .admin-sidebar nav a{font-size:13px}
body.admin .sidebar-caption{font-size:10px}
body.admin .stats b{font-size:28px}
body.admin textarea.markdown{font:13px/1.7 ui-monospace,monospace}

body.admin .actions,body.admin .form-actions{display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap}
body.admin .actions{margin:14px 0}
body.admin .actions form{display:inline-flex;align-items:center;margin:0;padding:0}
body.admin .actions a,body.admin .actions button,body.admin .form-actions a{display:inline-flex;align-items:center;min-height:32px;font-size:13px;line-height:1.6}
body.admin .actions form>button{margin:0}
body.admin .action-link{display:inline-flex;align-items:center;min-height:32px;font-size:13px;line-height:1.6;background:none;border:0;padding:0}
body.admin .text-action{font:inherit;font-size:13px;color:var(--link);background:none;border:0;border-radius:0;padding:0;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
body.admin .text-action.danger{color:var(--danger)}
body.admin .content-actions a[aria-current=page]{font-weight:600;color:var(--fg)}
body.admin .form-actions{margin-top:20px}
body.admin .form-actions button{margin:0;min-height:34px;padding:6px 12px}
body.admin .toolbar{align-items:center}
body.admin .toolbar button{margin:0;min-height:30px}
@media(max-width:420px){body.site header h1{font-size:20px}body.admin .actions,body.admin .form-actions{column-gap:14px}}
.item-list{display:grid;gap:6px}
body.site .item-list>.item,body.admin .item-list>.item{border:0;padding:0;margin:0}
body.admin .item-list{margin-top:12px}
body.admin .item-list .actions{margin:6px 0 0}

body.site .project-website{margin:18px 0 0}


body.admin-login .shell{width:650px;max-width:calc(100% - 32px);margin:64px auto 28px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:28px 24px 6px;box-shadow:0 6px 24px rgb(0 0 0 / 6%)}
body.admin-login header{border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:22px}
body.admin-login header h1{font-size:24px;line-height:1.35;letter-spacing:-.4px;margin-bottom:8px}
body.admin-login header a{font-size:12px}
body.admin-login .login-content{padding:0 0 24px;min-height:0}
body.admin-login .login-content h2{font-size:20px;line-height:1.4;margin:0 0 16px}
body.admin-login input{background:var(--bg)}
body.admin-login footer{margin-top:0;padding:15px 0 12px}
@media(max-width:420px){body.admin-login .shell{margin-top:32px;padding:22px 16px 4px;border-radius:8px}body.admin-login header h1{font-size:22px}}


*,*::before,*::after{outline:none!important}
a:focus-visible,summary:focus-visible{color:var(--link);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
button:focus-visible,.button:focus-visible{background:var(--active);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--link);background:var(--tab)}




body.admin .admin-page-list{display:grid;gap:6px;list-style:none;margin:12px 0 0;padding:0}
body.admin .admin-page-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px 18px;margin:0;padding:0;min-height:32px}
body.admin .admin-page-row .page-name{flex:0 1 160px;min-width:0;margin:0;font-size:14px;line-height:1.6;overflow-wrap:anywhere}
body.admin .admin-page-row .page-path{flex:1 1 100px;min-width:0;font-size:12px;overflow-wrap:anywhere}
body.admin .admin-page-row .actions{flex:0 0 auto;gap:4px 12px;margin:0}

@media print{
 @page{margin:15mm}
 body.site[data-theme]{--bg:#fff;--panel:#fff;--fg:#111;--muted:#555;--link:#222;--line:#aaa;--tab:#eee;--tab-area:#eee;--tab-selected:#ddd;--active:#ddd;--danger:#333;background:#fff!important;color:#111!important;filter:grayscale(1)}
 body.site .shell{width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none}
 body.site .content{min-height:0;padding:0 0 16px}
 body.site header{margin-bottom:20px;border-color:#aaa}
 body.site footer{border-color:#aaa;color:#555}
 body.site a{color:#222;text-decoration:underline}
 body.site .button,body.site button,body.site input,body.site select,body.site textarea{background:#fff!important;color:#111!important;border-color:#aaa}
 body.site .prose pre,body.site .prose code{background:#eee;color:#111}
 body.site .prose pre{white-space:pre-wrap;overflow-wrap:anywhere}
 body.site img,body.site svg,body.site video{filter:grayscale(1)}
 body.site h1,body.site h2,body.site h3,body.site h4,body.site h5,body.site h6{break-after:avoid}
 body.site p,body.site li{orphans:3;widows:3}
 body.site .item,body.site img{break-inside:avoid}
}
body.admin .files-list-heading{margin-top:28px}


body.admin .admin-content-list{gap:6px}
body.admin .admin-content-row{display:grid;grid-template-columns:minmax(0,1fr) 140px auto;align-items:center;gap:6px 18px;min-height:32px}
body.admin .admin-content-row .page-name,body.admin .admin-content-row .page-path{min-width:0;margin:0}
body.admin .admin-content-row .actions{justify-self:end;margin:0}
@media(max-width:760px){
 body.admin .admin-content-row{grid-template-columns:minmax(0,1fr) auto}
 body.admin .admin-content-row .actions{grid-column:1/-1;justify-self:start}
}
