.kh-portal{--p-ink:#23304b;--p-bg:#fff;--p-soft:#f3f0fb;--p-accent:#6545b5;color:var(--p-ink);background:var(--p-bg);font:16px/1.55 system-ui,sans-serif;padding:clamp(16px,3vw,36px);min-height:100%;box-sizing:border-box}.kh-portal *{box-sizing:border-box}.kh-portal h1{font-size:clamp(26px,4vw,38px);line-height:1.15;margin:8px 0 12px}.kh-portal h2{font-size:23px}.kh-portal p{max-width:75ch}.kh-portal a{color:#52339c}.kh-portal button,.kh-portal input,.kh-portal select,.kh-portal textarea{font:inherit;min-height:44px;padding:9px 12px;border:1px solid #c4bdd3;border-radius:11px;background:#fff;color:#23304b;max-width:100%}.kh-portal button{cursor:pointer}.kh-portal button:hover{background:#ece5fc}.kh-portal :focus-visible{outline:3px solid #7756bf;outline-offset:3px}.kh-portal .primary{background:#6545b5;color:white;border-color:#6545b5}.kh-portal .primary:hover{background:#513694}.kh-tabs,.kh-toolbar,.kh-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:14px 0}.kh-tabs a{padding:8px 12px;border-radius:999px;text-decoration:none;background:#f3f0fb;font-weight:700}.kh-tabs a[aria-current=page]{background:#6545b5;color:#fff}.kh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:14px}.kh-card{border:1px solid #d9d2e8;border-radius:18px;padding:18px;background:linear-gradient(145deg,#fff,#faf8ff);min-width:0;display:flex;flex-direction:column}.kh-card h2,.kh-card h3{margin:6px 0}.kh-card p{margin:8px 0 16px;flex:1}.kh-card small{font-weight:700;color:#61566e}.kh-card .emoji{font-size:34px}.kh-card .kh-actions{margin-bottom:0}.kh-card button[data-fav][aria-pressed=true]{background:#ffefb8;color:#634313}.kh-count{font-weight:700}.kh-note{padding:14px 18px;border-left:4px solid #8a6ee7;background:#f4f0fb;border-radius:0 12px 12px 0}.kh-sheet{background:#fff;color:#23304b;padding:24px;border:1px solid #bbb;border-radius:12px;margin:18px 0}.kh-sheet li{margin:20px 0}.kh-lines{height:100px;background:repeating-linear-gradient(#fff 0,#fff 30px,#cbd1db 31px,#fff 32px)}.kh-portal fieldset{border:1px solid #ccc;border-radius:12px;margin:16px 0;padding:14px}.kh-portal label{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}.kh-portal textarea{width:100%;display:block}.kh-portal details{padding:14px;border:1px solid #ddd3ed;border-radius:12px;margin:10px 0}.kh-portal summary{font-weight:750;cursor:pointer}.kh-portal table{border-collapse:collapse;width:100%}.kh-portal th,.kh-portal td{border:1px solid #ddd;padding:10px;text-align:left;overflow-wrap:anywhere}.kh-portal .kh-scroll{overflow-x:auto}.kh-portal [hidden]{display:none!important}.kh-portal .kh-empty{padding:28px;border:2px dashed #c8bfd9;border-radius:16px}.kh-portal .kh-status{min-height:1.5em}.kh-portal .kh-plan-list{padding-left:25px}.kh-plan-list li{padding:12px;border-bottom:1px solid #ddd}.kh-portal code{overflow-wrap:anywhere}body.portal-page{margin:0;background:#f3f0fb}body.portal-page .kh-portal{max-width:1280px;margin:auto}body.portal-page>header{padding:12px 24px;background:#fff;border-bottom:1px solid #ddd}body.portal-page>header a{font:700 16px system-ui;color:#52339c}.kh-portal .kh-feature{padding:18px;border-radius:18px;background:#f5edff}.kh-portal input[type=checkbox]{min-height:22px;width:22px}
@media print{body.portal-page>header,.kh-tabs,.kh-toolbar,.kh-actions,.kh-portal button,.kh-noprint{display:none!important}.kh-portal{padding:0}.kh-sheet{border:0;margin:0;padding:10px}.kh-card{break-inside:avoid}body.portal-page{background:white}}
[data-theme="halloween"] .kh-portal { --p-ink: #ff9900; --p-bg: #1a0f00; --p-soft: #331a00; --p-accent: #ff6600; }
[data-theme="halloween"] body.portal-page { background: #1a0f00; }
[data-theme="halloween"] body.portal-page>header { background: #1a0f00; border-bottom: 1px solid #6600cc; }
[data-theme="thanksgiving"] .kh-portal { --p-ink: #f4c272; --p-bg: #2b1408; --p-soft: #4a2511; --p-accent: #d95e16; }
[data-theme="thanksgiving"] body.portal-page { background: #2b1408; }
[data-theme="thanksgiving"] body.portal-page>header { background: #2b1408; border-bottom: 1px solid #8c3f15; }
[data-theme="christmas"] .kh-portal { --p-ink: #f2e6d8; --p-bg: #0d2614; --p-soft: #1a4d29; --p-accent: #e60012; }
[data-theme="christmas"] body.portal-page { background: #0d2614; }
[data-theme="christmas"] body.portal-page>header { background: #0d2614; border-bottom: 1px solid #b3000c; }
