@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--bg:#f6f8fc;--ink:#172238;--muted:#71819c;--line:#dae2ef;--green:#2563eb;--lime:#bfdbfe}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select,textarea{font:inherit}button,a,label.import{cursor:pointer}button{border:0;background:none;color:inherit}aside{position:fixed;width:236px;inset:0 auto 0 0;background:#edf2fa;border-right:1px solid var(--line);padding:37px 24px;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;font:800 37px Manrope,sans-serif;text-decoration:none;color:var(--ink);padding:0 12px}.brand> :first-child{letter-spacing:-2px}.dot{color:#3b82f6}.workspace{font-size:9px;font-weight:700;letter-spacing:1.7px;color:#929b8e;margin:52px 12px 19px}nav button{display:flex;align-items:center;width:100%;padding:13px 14px;border-radius:7px;margin-bottom:5px;text-align:left;gap:12px;color:#718071}nav button.active{background:#dceafe;color:#1d4ed8;font-weight:650}nav button b{margin-left:auto;font-size:11px;font-weight:500}nav .nav-label{font-size:9px;letter-spacing:1.5px;margin:30px 13px 14px;color:#929b8e}.aside-bottom{margin-top:auto;font-size:11px;color:#6c7b69}.storage-dot{display:inline-block;width:6px;height:6px;border-radius:100%;background:#60a5fa;margin-right:7px}.aside-bottom p{font-size:10px;color:#9aa194}.aside-bottom button,.import{display:block;padding:9px 0;font-size:11px}main{margin-left:236px}header{height:85px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 48px;font-size:11px;color:#7f8b80}.slash{padding:0 14px;color:#bbc1b5}.avatar{background:#e6eadf;border:3px solid white;width:33px;height:33px;border-radius:50%;display:grid;place-items:center;color:#6d7b60}.content{max-width:1400px;margin:auto;padding:48px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:#879578}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px}h1{font:600 43px/1.22 Manrope,sans-serif;letter-spacing:-1.8px;margin:16px 0 15px}.heading p{color:#849080;font-size:13px;margin:0}.primary{background:var(--green);color:#fff;padding:13px 19px;border-radius:6px;font-size:12px;box-shadow:0 3px 5px #1b3c1510}.primary:hover{background:#1d4ed8}.stats{display:flex;align-items:center;gap:32px;border:1px solid var(--line);border-radius:8px;background:#edf3fc;margin:35px 0 41px;padding:19px 22px}.stats>div{display:flex;align-items:center;gap:9px;font-size:11px;color:#86907c}.stats>div+div{border-left:1px solid #dce2d4;padding-left:28px}.stats>div:last-child{margin-left:auto;font-size:10px}.stats strong{font-size:16px;color:#405a39}.stat-icon{color:#60a5fa;font-size:17px}.library-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px;gap:15px}h2{font:650 18px Manrope,sans-serif;letter-spacing:-.4px}h2 small{font:11px 'DM Sans',sans-serif;background:#e2edff;border-radius:5px;padding:3px 7px;margin-left:8px;color:#849078}.tools{display:flex;gap:10px}.tools input,.tools select{border:1px solid var(--line);background:#fff;border-radius:6px;padding:10px 13px;font-size:11px;color:#7a8575}.tools input{width:220px}#grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.card{border:1px solid var(--line);border-radius:10px;background:#fff;padding:23px;position:relative;transition:transform .2s,box-shadow .2s;cursor:pointer}.card:hover{transform:translateY(-3px);box-shadow:0 8px 25px #2f49300c}.card-top{display:flex;justify-content:space-between;align-items:center}.category-icon{font-size:22px;border-radius:9px;width:43px;height:43px;display:grid;place-items:center;background:var(--tint);color:var(--accent)}.favorite{font-size:20px;color:#c9cec3;padding:4px}.favorite.on{color:#2563eb}.card h3{font:650 16px Manrope,sans-serif;letter-spacing:-.4px;margin:20px 0 8px}.card .description{color:#91988c;font-size:11px;line-height:1.7;height:37px;overflow:hidden;margin:0 0 20px}.tag{font-size:9px;padding:5px 8px;border-radius:4px;color:var(--accent);background:var(--tint);display:inline-block}.meta{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0 20px;font-size:10px;color:#8b9484}.card-bottom{border-top:1px solid #eef0e9;padding-top:16px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#9aa18f}.copy-card{font-size:10px;border:1px solid var(--line);border-radius:5px;padding:7px 9px;color:#657658}.empty{grid-column:1/-1;border:1px dashed #d5ddcb;border-radius:9px;text-align:center;padding:55px;color:#87927f}.add-card{min-height:280px;border:1px dashed #d5ddcb;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#819273}.add-card span{background:#e3edff;border-radius:50%;width:36px;height:36px;display:grid;place-items:center;font-size:23px}.add-card strong{font-size:12px;font-weight:500}.add-card small{color:#a0a995;font-size:10px}footer{display:flex;justify-content:space-between;color:#a3ab99;font-size:9px;margin-top:44px;padding-top:21px;border-top:1px solid var(--line)}footer span:first-child{letter-spacing:1.4px}dialog{width:620px;max-width:94vw;border:1px solid var(--line);border-radius:15px;padding:30px;color:var(--ink);box-shadow:0 20px 100px #14231830}dialog::backdrop{background:#1a2b2355;backdrop-filter:blur(4px)}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h2{font-size:25px;margin:10px 0 20px}.close{font-size:24px}.two{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}form label{display:block;font-size:11px;font-weight:600;margin:13px 0}form input,form select,textarea{display:block;width:100%;border:1px solid #dce2d7;border-radius:6px;padding:11px;margin-top:7px;background:#fafbf8;color:var(--ink)}textarea{resize:vertical;line-height:1.6}form small{font-weight:400;color:#8d9785;padding-left:6px}.form-actions{display:flex;justify-content:flex-end;gap:15px;margin-top:22px}.secondary{font-size:12px}.detail-meta{color:#849078;margin-bottom:23px;font-size:12px}.setting{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);gap:15px}.setting span{font-size:12px}.setting button{font-family:monospace;background:#e3edff;padding:8px 12px;border-radius:5px}.note{white-space:pre-wrap;font-size:12px;line-height:1.7;color:#7f8b76;background:#edf3fc;padding:15px;border-radius:6px}.detail-actions{display:flex;gap:12px;align-items:center;margin-top:25px}.detail-actions .danger{color:#a06c60;margin-left:auto;font-size:12px}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#1d4ed8;color:white;padding:13px 22px;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .2s;font-size:12px}#toast.show{opacity:1}button:focus-visible,a:focus-visible{outline:3px solid #60a5fa;outline-offset:3px}@media(min-width:1500px){.content{padding-top:64px}.card{min-height:310px}}@media(max-width:1100px){#grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats>div:last-child{display:none}.content{padding:30px}.tools input{width:170px}}@media(max-width:730px){aside{position:static;width:100%;padding:18px}.brand{font-size:28px}.workspace,.aside-bottom,.nav-label{display:none}nav{display:flex;overflow:auto;margin-top:15px}nav button{width:auto;white-space:nowrap}nav button b{display:none}main{margin:0}header{height:55px;padding:0 23px}.content{padding:28px 20px}h1{font-size:32px}.heading{align-items:flex-start}.heading .primary{white-space:nowrap;padding:11px;margin-top:20px}.stats{gap:12px;padding:15px;margin:25px 0}.stats>div+div{padding-left:12px}.library-head{align-items:flex-start;flex-direction:column}.tools{width:100%}.tools input{flex:1;min-width:0}#grid{grid-template-columns:1fr}.two{grid-template-columns:1fr}.card{padding:22px}footer{font-size:8px}}
.header-actions{display:flex;align-items:center;gap:16px}#theme-toggle{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:6px;padding:8px 11px;color:var(--ink);font-size:11px;background:var(--bg)}:root{color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--bg:#080b10;--ink:#edf3ff;--muted:#a0adc2;--line:#263247;--green:#2563eb;--lime:#bfdbfe}html[data-theme=dark] aside{background:#0d121c}html[data-theme=dark] .brand{color:var(--ink)}html[data-theme=dark] nav button{color:#a4b2ca}html[data-theme=dark] nav button.active{background:#142b50;color:#a9d0ff}html[data-theme=dark] .avatar{background:#16335c;border-color:#1d3150;color:#bfdbfe}html[data-theme=dark] .stats{background:#101925}html[data-theme=dark] .stats strong{color:#dbeafe}html[data-theme=dark] .stats>div+div{border-color:var(--line)}html[data-theme=dark] .card,html[data-theme=dark] .tools input,html[data-theme=dark] .tools select,html[data-theme=dark] dialog{background:#111824;color:var(--ink)}html[data-theme=dark] .card-bottom{border-color:var(--line)}html[data-theme=dark] .description,html[data-theme=dark] .heading p,html[data-theme=dark] .meta,html[data-theme=dark] .card-bottom,html[data-theme=dark] header,html[data-theme=dark] .detail-meta,html[data-theme=dark] .stats>div{color:#a7b4c9}html[data-theme=dark] .category-icon,html[data-theme=dark] .tag{background:color-mix(in srgb,var(--tint) 12%,#111824);color:color-mix(in srgb,var(--accent) 60%,white)}html[data-theme=dark] .copy-card{color:#b8d7ff}html[data-theme=dark] h2 small,html[data-theme=dark] .add-card span,html[data-theme=dark] .setting button{background:#193255;color:#c7dfff}html[data-theme=dark] form input,html[data-theme=dark] form select,html[data-theme=dark] textarea{background:#0a101b;border-color:var(--line);color:var(--ink)}html[data-theme=dark] .note{background:#142136;color:#b6c7e1}html[data-theme=dark] .add-card,html[data-theme=dark] .empty{border-color:#30445f;color:#bdcde4}html[data-theme=dark] .eyebrow,html[data-theme=dark] .workspace,html[data-theme=dark] nav .nav-label,html[data-theme=dark] footer,html[data-theme=dark] .aside-bottom{color:#94a9c9}html[data-theme=dark] .favorite{color:#7586a3}html[data-theme=dark] .favorite.on{color:#60a5fa}@media(max-width:430px){.header-actions{gap:8px}#theme-toggle span{display:none}header{padding:0 18px}}
#auth-panel{min-height:100vh;padding:38px;max-width:580px;margin:auto}#auth-panel>.brand{justify-content:center}.auth-card{margin-top:70px;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:38px}.auth-card h1{font-size:32px}.auth-card>p{color:var(--muted);line-height:1.7}.auth-card small{display:block;color:var(--muted);font-size:11px;margin-top:25px}.auth-card .primary{width:100%;margin-top:10px}.auth-card label{margin-top:22px}#login-error{color:#c17567;font-size:12px;line-height:1.6}body:not(.signed-out) #auth-panel{display:none}body.signed-out>aside,body.signed-out>main{display:none}#logout{font-size:11px;color:var(--ink)}button:disabled{opacity:.6;cursor:wait}@media(max-width:500px){#auth-panel{padding:24px 16px}.auth-card{padding:25px;margin-top:40px}}

/* KylePrints wordmark fits both the library sidebar and login screen. */
aside .brand{font-size:25px;gap:8px;padding:0 3px;white-space:nowrap}#auth-panel>.brand{font-size:34px}@media(max-width:730px){aside .brand{font-size:27px}}

/* Blue accent details shared across both themes. */
.dot,.stat-icon{color:#3b82f6}.storage-dot{background:#60a5fa}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #60a5fa;outline-offset:3px}.primary{background:#2563eb;box-shadow:0 3px 10px #2563eb20}.primary:hover{background:#1d4ed8}#toast{background:#1d4ed8}.category-icon,.tag{background:#e5efff;color:#2563eb}html[data-theme=dark] .category-icon,html[data-theme=dark] .tag{background:#162b49;color:#82b8ff}html[data-theme=dark] .auth-card{background:#0e1520}html[data-theme=dark] .aside-bottom p,html[data-theme=dark] .add-card small,html[data-theme=dark] form small{color:#98a9c3}html[data-theme=dark] .card:hover{border-color:#3b6298;box-shadow:0 8px 28px #00000030}html[data-theme=dark] .slash{color:#6e809e}

.settings-nav{margin:18px 0;padding:13px 14px;text-align:left;font-size:12px;color:var(--ink);border-top:1px solid var(--line)}.settings-nav:hover{background:#2563eb18;border-radius:6px}.preferences-intro{color:var(--muted);font-size:12px;line-height:1.7;margin:0 0 20px}#preferences-error{color:#de8e85;font-size:12px}@media(max-width:730px){.settings-nav{margin:8px 0 0;padding:10px 14px}}
.rows-fieldset{border:0;padding:0;margin:20px 0}.rows-fieldset legend{font-size:12px;font-weight:600}.setting-row{display:grid;grid-template-columns:1fr 1fr 32px;align-items:center;gap:8px;margin:8px 0}.setting-row input{margin:0;min-width:0}.setting-row button{font-size:23px;color:#9cacbf}.settings-nav{flex-shrink:0;margin:5px 0}.settings-nav[hidden]{display:none}.user-choice{display:flex!important;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:12px 0}.user-choice[hidden]{display:none!important}.user-choice input{width:auto;margin:0}.admin-user{display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid var(--line);padding:16px 0}.admin-user small{display:block;color:var(--muted);margin:6px 0}.admin-user button{padding:8px;color:#60a5fa}.detail-actions{flex-wrap:wrap}#community-error{color:#e29a92;font-size:12px;line-height:1.6}#user-search{width:100%;padding:12px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:6px}#share-users,#admin-list{max-height:330px;overflow:auto}#request-account{display:block;margin-top:23px;color:#60a5fa}#preferences,#editor,#community-dialog{max-height:90vh}#setting-rows{max-height:44vh;overflow:auto;padding:3px}#add-setting{color:#60a5fa;padding:10px 0}@media(max-width:730px){.setting-row{grid-template-columns:1fr 1fr 28px;gap:5px}.setting-row input{padding:10px 7px;font-size:12px}.admin-user{align-items:flex-start}.settings-nav{display:inline-block;margin:0}}

form label.remember-login{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:400;margin:18px 0;color:var(--ink)}form label.remember-login input{width:16px;height:16px;margin:0;accent-color:#2563eb;flex-shrink:0}
