/* Korean Quest — Journal de déchiffrement, interface modale 1.9 */
.kq-gp{--gp-gold:var(--kq-gold,#c69a3a);--gp-ink:#4b3a2a;max-width:900px;margin:0 auto;color:var(--gp-ink)}
.kq-gp *{box-sizing:border-box}
.kq-gp-hero{margin:0 0 16px}
.kq-gp-eyebrow{display:block;font-size:.75rem;letter-spacing:.07em;color:#977c50;text-transform:uppercase;font-weight:700}
.kq-gp-hero h2{font-size:clamp(1.45rem,3vw,1.9rem);margin:4px 0 7px;color:#493820;line-height:1.3}
.kq-gp-hero p{font-size:.96rem;color:#765f46;line-height:1.5;margin:0}
.kq-gp-board{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:#fffcf6;border:1px solid #e8ddca;border-radius:16px;padding:17px;margin:0 0 20px}
.kq-gp-group{min-width:0}
.kq-gp-group + .kq-gp-group{border-left:1px solid #e8ddca;padding-left:16px}
.kq-gp-rowhead{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}
.kq-gp-rowtitle{font-size:.96rem;font-weight:800;color:#4c3b29}
.kq-gp-count{font-size:.8rem;color:#8d795f;white-space:nowrap}
.kq-gp-cases{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.kq-gp-case{appearance:none;position:relative;display:flex;align-items:center;justify-content:center;min-width:0;height:52px;padding:0;background:#fff;border:1.5px solid #d8c7ac;border-radius:10px;color:#5e4529;cursor:pointer;transition:border-color .15s,background-color .15s,box-shadow .15s}
.kq-gp-case:hover:not(:disabled){border-color:#a87b28;background:#fff6e5}
.kq-gp-case:focus-visible{outline:3px solid #a87b28;outline-offset:2px}

.kq-gp-case.is-filled{background:#edf5ff;border-color:#7aa7dc}
.kq-gp-case.is-locked{background:#f3f1ed;color:#aaa49a;border-style:dashed;cursor:not-allowed}
.kq-gp-case-index{position:absolute;top:3px;left:5px;font-size:.6rem;line-height:1;color:#8e806e}
.kq-gp-case-letter{font-size:1.35rem;font-weight:800;line-height:1}
.kq-gp-case.is-locked .kq-gp-case-letter{font-size:.95rem;filter:grayscale(1);opacity:.55}
.kq-gp-verify{display:inline-flex;align-items:center;justify-content:center;min-height:36px;min-width:158px;max-width:100%;white-space:nowrap;margin-top:11px;padding:8px 13px!important;border:1px solid #a98245!important;border-radius:9px!important;background:#fff4dc!important;color:#694b20!important;font-size:.84rem!important;font-weight:800!important;line-height:1.2!important;text-decoration:none!important;cursor:pointer!important;transition:background-color .15s,border-color .15s}
.kq-gp-verify:hover:not(:disabled){background:#f8e6bb!important;border-color:#88652e!important}
.kq-gp-verify:focus-visible{outline:3px solid #c9a35b;outline-offset:2px}
.kq-gp-verify:disabled{opacity:.6;cursor:wait!important}
.kq-gp-case.is-missing{border-color:#b75a3c;background:#fff2ed;box-shadow:0 0 0 1px #b75a3c55}
.kq-gp-verified{display:block;margin-top:8px;font-size:.8rem;color:#387044;font-weight:700}
.kq-gp-result{margin:7px 0 0;font-size:.8rem;line-height:1.45;color:#71522e}
.kq-gp-result[hidden]{display:none}
.kq-gp-result[data-state="success"]{color:#387044}
.kq-gp-result[data-state="error"]{color:#a34735}
/* Retour après soumission — une seule confirmation, sous les deux groupes. */
.kq-gp-feedback{margin:-6px 0 16px;padding:9px 13px;border-radius:10px;background:#eef5fc;border:1px solid #c6d9ee;color:#285780;font-size:.88rem;font-weight:650}
.kq-gp-feedback[hidden]{display:none}
.kq-gp-feedback[data-state="error"]{background:#fff2ee;color:#a34735;border-color:#f0c8bf}
/* Modal : affiche uniquement l'énigme et sa saisie, avec scroll interne mobile. */
.kq-gp-modal[hidden],.kq-gp-detail[hidden]{display:none!important}
.kq-gp-modal{position:fixed;inset:0;z-index:100050;display:flex;align-items:center;justify-content:center;padding:20px}
.kq-gp-modal-backdrop{position:absolute;inset:0;background:rgba(24,28,37,.68);cursor:pointer}
.kq-gp-modal-dialog{position:relative;width:min(100%,730px);max-height:min(90dvh,880px);display:flex;flex-direction:column;overflow:hidden;border:1px solid #e5d7c2;border-radius:18px;background:#fff;box-shadow:0 20px 70px rgba(0,0,0,.25);outline:none}
.kq-gp-modal-topbar{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:11px 20px;background:#fffcf6;border-bottom:1px solid #eee2cf}
.kq-gp-modal-heading{color:#836540;font-weight:750;font-size:.85rem}
.kq-gp-modal-close{display:inline-flex;align-items:center;gap:6px;background:none!important;border:0!important;color:#594c40!important;font-size:1.25rem!important;cursor:pointer!important;padding:5px 8px!important;line-height:1.1!important}
.kq-gp-modal-close span{font-size:.84rem;font-weight:700}
.kq-gp-modal-close:hover{color:#114d81!important}
.kq-gp-modal-scroll{overflow-y:auto;overscroll-behavior:contain;padding:25px 29px 29px}
.kq-gp-reader-meta{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;font-size:.82rem;color:#927249;font-weight:700;margin-bottom:12px}
.kq-gp-reader-title{font-size:clamp(1.18rem,2.6vw,1.5rem);line-height:1.35;color:#493820;margin:0 0 17px;font-weight:800}
/* Wrapper historique des énigmes, comme dans les quêtes classiques. */
.kq-gp .hint-wrapper.kq-gp-indice{font-size:1.04rem;line-height:1.7;color:#3d3024;margin:0 0 19px;overflow-wrap:anywhere}
.kq-gp .hint-wrapper .hint-box{background:#fffaf0;border:1px solid #e3d3b4;border-left:4px solid #c69a3a;border-radius:12px;padding:17px 20px;box-shadow:0 3px 12px rgba(73,56,32,.045)}
.kq-gp .hint-wrapper .hint-label{display:flex;align-items:center;gap:8px;font-size:.88rem;letter-spacing:.02em;font-weight:800;color:#936a27;margin-bottom:12px}
.kq-gp .hint-wrapper .hint-label [role=img]{font-size:1.15rem;line-height:1}
.kq-gp .hint-wrapper .hint-text{font-size:1.06rem;line-height:1.8;color:#3d3024}
.kq-gp .hint-wrapper .hint-text p{margin:0 0 1em}
.kq-gp .hint-wrapper .hint-text p:last-child{margin-bottom:0}
.kq-gp .hint-wrapper .hint-text img{max-width:100%;height:auto}
.kq-gp-gift-answer{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0 4px;padding:14px 16px;background:#edf5ff;border:1px solid #bed5f1;border-radius:12px}
.kq-gp-gift-caption{font-size:.87rem;font-weight:800;color:#245886}
.kq-gp-gift-symbol{display:flex;align-items:center;justify-content:center;width:48px;height:52px;flex:none;font-size:2rem;font-weight:900;line-height:1;color:#205d98;background:#fff;border:2px solid #7aa7dc;border-radius:10px}
.kq-gp-gift-note{flex:1 1 180px;font-size:.88rem;color:#435e7a;line-height:1.5}
.kq-gp-hint{border-top:1px solid #eee2cf;padding:12px 0;margin:0 0 18px;color:#806029}
.kq-gp-hint summary{font-size:.9rem;font-weight:700;cursor:pointer}
.kq-gp-hint>div{margin-top:10px;line-height:1.7;color:#4b3a2a}
.kq-gp-answer-form{border-top:1px solid #eee2cf;padding-top:19px;margin-top:17px}
.kq-gp-input-label{display:block;font-size:1.08rem;font-weight:850;color:#284d78;margin-bottom:12px}
.kq-gp-answer-entry{display:flex;gap:15px;align-items:center;flex-wrap:wrap}
.kq-gp-input-wrap{flex:none;border-radius:12px;background:#eaf3ff;padding:6px;border:1px solid #9fc4ed;box-shadow:0 3px 10px rgba(22,83,146,.09)}
.kq-gp-input{display:block!important;width:90px!important;height:72px!important;text-align:center;font-size:2.4rem!important;font-weight:800!important;text-transform:uppercase;background:#fff!important;color:#183d67!important;border:2px solid #437db8!important;border-radius:9px!important;padding:0!important;cursor:text!important;box-shadow:none!important}
.kq-gp-input::placeholder{color:#9db9d5;opacity:1}
.kq-gp-input:focus{outline:3px solid #b9d7fb!important;outline-offset:2px;border-color:#1c5a99!important}
.kq-gp-input:disabled{background:#f0f2f4!important;cursor:default!important;opacity:.75}
.kq-gp-answer-note{font-size:.91rem;font-weight:700;color:#5d7190;line-height:1.4}
.kq-gp-save-status{min-height:20px;margin:8px 0 0;font-size:.82rem;color:#637d98;line-height:1.4}
.kq-gp-save-status[data-state="pending"]{color:#8a6840}
.kq-gp-save-status[data-state="saving"]{color:#37689b}
.kq-gp-save-status[data-state="error"]{color:#a8432c}
.kq-gp-modal-actions{display:flex;gap:10px;justify-content:flex-start;flex-wrap:wrap;margin-top:18px}
.kq-gp-save-btn{appearance:none;background:#205d98!important;border:1px solid #205d98!important;color:#fff!important;border-radius:9px!important;padding:11px 20px!important;font-size:.94rem!important;font-weight:800!important;cursor:pointer!important}
.kq-gp-save-btn:hover{background:#174b7e!important}
.kq-gp-save-btn:disabled{opacity:.55;cursor:wait!important}
.kq-gp-save-btn[hidden]{display:none!important}
.kq-gp-cancel-btn{appearance:none;border:1px solid #dfd7c9!important;border-radius:9px!important;background:#fff!important;color:#6d5c48!important;padding:11px 16px!important;font-size:.92rem!important;font-weight:650!important;cursor:pointer!important}
.kq-gp-login{padding:20px;border:1px solid #eadfc8;border-radius:14px;background:#fffaf1}
@media(max-width:760px){
 .kq-gp-board{grid-template-columns:1fr;gap:13px;padding:14px}
 .kq-gp-group + .kq-gp-group{border-left:0;border-top:1px solid #e8ddca;padding-left:0;padding-top:13px}
 .kq-gp-cases{gap:8px}
 .kq-gp-case{height:49px}
 .kq-gp-modal{padding:10px}
 .kq-gp-modal-dialog{max-height:93dvh;border-radius:14px}
 .kq-gp-modal-scroll{padding:20px 17px 24px}
 .kq-gp-modal-topbar{padding:10px 13px}
 .kq-gp-input{width:83px!important;height:67px!important}
}
@media(max-width:390px){
 .kq-gp-board{padding:12px}
 .kq-gp-cases{gap:5px}
 .kq-gp-case{height:44px;border-radius:8px}
 .kq-gp-case-letter{font-size:1.2rem}
 .kq-gp-indice{font-size:1.02rem}
 .kq-gp-modal-actions>*{flex:1;text-align:center}
}
@media(prefers-reduced-motion:reduce){.kq-gp-case{transition:none}}
.kq-gp-next[hidden]{display:none!important}
.kq-gp-next{margin:-3px 0 14px;padding:17px 20px;border:1px solid #d3b47e;border-left:4px solid #be9142;border-radius:12px;background:#fff9ed;box-shadow:0 3px 12px rgba(85,65,32,.04)}
.kq-gp-next-heading{font-weight:850;color:#5e4222;font-size:1.02rem;line-height:1.4}
.kq-gp-next p{margin:7px 0 12px;color:#6d5840;font-size:.89rem;line-height:1.55}
.kq-gp-next-bottom{display:flex;align-items:center;justify-content:flex-start}
.kq-gp-secret-host{display:inline-block;padding:10px 16px;border:1px solid #d8c9b0;border-radius:9px;background:#fffdf9;color:#3f3429;font-size:1.16rem;font-weight:800;letter-spacing:.035em;user-select:text;margin:auto;}
.kq-gp-direct-final{margin:3px 0 15px;text-align:center;font-size:.86rem;line-height:1.55;color:#89745b}
.kq-gp-direct-final a{color:#285b8d;text-decoration:underline;text-underline-offset:3px;font-weight:750}
.kq-gp-direct-final a:focus-visible{outline:3px solid #b08b41;outline-offset:3px}
@media(max-width:540px){.kq-gp-next{padding:15px}}
