:root{color-scheme:light;font-family:IBM Plex Sans,Noto Sans JP,sans-serif;line-height:1.5;font-weight:400}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(80% 70% at 0% 0%,#dae7ff 0%,transparent 75%),radial-gradient(80% 70% at 100% 10%,#ffe9d9 0%,transparent 75%),linear-gradient(180deg,#f7faff,#eff3fa);color:#0e2438}.page{min-height:100vh;padding:1.5rem 1rem 3rem}.shell{margin:0 auto;max-width:1200px}.eyebrow{margin:0;letter-spacing:.2em;font-size:.7rem;font-weight:700;color:#234eb4}h1{margin:.35rem 0 0;font-size:clamp(1.8rem,3.2vw,2.6rem);line-height:1.1}.summary{margin:.65rem 0 0;color:#314a63;max-width:70ch;font-size:.92rem}.panel{margin-top:1rem;border:1px solid #d0dcec;border-radius:16px;padding:1rem;background:#ffffffe6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:relative}.panel h2{margin:0;font-size:1rem}.session-row{margin-top:.55rem;display:flex;gap:.6rem;align-items:center}.session-meta{margin-top:.55rem;display:grid;gap:.22rem;font-size:.83rem;color:#2f455d}.label{margin-top:.6rem;display:block;font-size:.82rem;font-weight:600}.input,.textarea{margin-top:.3rem;width:100%;border:1px solid #bccfe5;border-radius:10px;padding:.56rem .65rem;font:inherit;font-size:16px;color:#13324e;background:#fff}.input:focus,.textarea:focus,.button:focus,.thumb-card:focus{outline:2px solid #2a63d4;outline-offset:1px}.button{border:1px solid #1f57c2;border-radius:999px;background:#1f57c2;color:#fff;padding:.42rem .92rem;font:inherit;font-size:.84rem;font-weight:600;cursor:pointer}.button-subtle{border-color:#bfd1ea;background:#edf3fe;color:#1d3f69}.button-danger{border-color:#b8323c;background:#b8323c;color:#fff}.button:disabled{opacity:.45;cursor:not-allowed}.link{color:#1c4fb2;font-size:.86rem;font-weight:600}.status-row{margin-top:.7rem;display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.status{margin:0;font-size:.82rem;color:#354e67}.status-error{color:#a1212c}.gallery-grid{margin-top:.75rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.72rem}.gallery-spacer{width:100%;pointer-events:none}.gallery-load-more{margin-top:.72rem;border:1px dashed #bfd1ea;border-radius:10px;padding:.55rem .7rem;min-height:38px;display:grid;place-items:center;background:#f8fcffcc}.gallery-end{margin-top:.72rem}.gallery-spinner{width:18px;height:18px;border-radius:999px;border:2px solid #bfd1ea;border-top-color:#1f57c2;opacity:.45}.gallery-spinner.is-active{opacity:1;animation:spin .8s linear infinite}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes spin{to{transform:rotate(360deg)}}.thumb-card{border:1px solid #c9d8ea;border-radius:12px;background:#fff;padding:.45rem;display:grid;gap:.42rem;text-align:left;cursor:pointer;align-content:start}.thumb-card.is-active{border-color:#1f57c2;box-shadow:0 0 0 1px #1f57c2}.thumb-image{width:100%;height:120px;object-fit:cover;border-radius:8px;background:#e7eef8}.thumb-placeholder{width:100%;height:120px;border-radius:8px;background:linear-gradient(130deg,#edf3fb,#dfe8f6);display:grid;place-items:center;font-size:.78rem;color:#5d7490}.thumb-meta{display:grid;gap:.15rem}.thumb-name{font-size:.8rem;color:#193756;word-break:break-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em}.thumb-size{font-size:.74rem;color:#5f748d}.lock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:16px;display:grid;place-items:center;background:#eff5fde0;color:#16365c;font-size:.95rem;font-weight:700}.lock-content{display:grid;gap:.55rem;place-items:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a1524b8;display:grid;place-items:center;padding:1rem;overflow:auto;overscroll-behavior:contain;z-index:10}.modal{width:min(100%,980px);max-height:calc(100dvh - 2rem);border-radius:14px;background:#0f2238;border:1px solid #4d6581;padding:.8rem;display:flex;flex-direction:column;gap:.55rem}.modal-login{width:min(100%,560px);border-radius:16px;background:#f8fbff;border:1px solid #cedbee}.modal-login .modal-header{color:#183a62}.modal-login .summary{margin-top:0}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:.6rem;color:#d7e8ff;margin-bottom:.65rem;font-size:.82rem}.modal-header-sticky{position:sticky;top:0;z-index:1;background:linear-gradient(180deg,#0f2238f5 70%,#0f2238c7);margin-bottom:0;padding-bottom:.42rem}.modal-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-actions{display:flex;gap:.45rem;align-items:center;justify-content:flex-end;flex-wrap:wrap;flex-shrink:0}.modal-image-frame{overflow:auto;display:grid;place-items:center;background:#0a192c;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 10rem);max-height:calc(100dvh - 10rem);border-radius:10px}.modal-image{display:block;width:auto;max-width:100%;max-height:calc(100vh - 10rem);max-height:calc(100dvh - 10rem);margin:0 auto;object-fit:contain;border-radius:10px;background:transparent}.modal-image-state{min-height:220px;width:100%;display:grid;justify-items:center;align-content:center;gap:.55rem;color:#c8d8ee;padding:1rem}.modal-image-state-error{color:#f4c5cb}.modal-image-state .status{color:inherit}.modal-image-panel:focus{outline:none}.delete-confirm{border:1px solid #4d6581;border-radius:10px;background:#0c1b2eeb;padding:.65rem;display:grid;gap:.5rem}.delete-confirm-actions{display:flex;justify-content:flex-end;gap:.45rem}.toast{position:fixed;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:.6rem;width:min(92vw,560px);border:1px solid #b8cae0;border-radius:12px;padding:.62rem .72rem;background:#f5fafffa;color:#173556;box-shadow:0 8px 22px #101f3333}.toast-success{border-color:#8ec5a6}.toast-error{border-color:#d9a0a3}.toast-close{margin-left:auto;border:1px solid #bfd1ea;border-radius:999px;background:#edf3fe;color:#1d3f69;padding:.28rem .7rem;font:inherit;font-size:.78rem;font-weight:600;cursor:pointer}.modal-backdrop-image{align-items:stretch;padding-top:max(.75rem,env(safe-area-inset-top));padding-bottom:max(.75rem,env(safe-area-inset-bottom))}.modal-image-panel{width:min(100%,1100px);margin:auto}@media(max-width:760px){.modal-login{width:100%;border-radius:16px 16px 0 0;margin-top:auto}.modal-login .status-row{justify-content:space-between}.modal-backdrop-image{padding:0}.modal-image-panel{width:100%;min-height:100vh;min-height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0;border-left:none;border-right:none;padding:max(.7rem,env(safe-area-inset-top)) .65rem max(.8rem,env(safe-area-inset-bottom))}.modal-image-frame{max-height:calc(100vh - 8.8rem);max-height:calc(100dvh - 8.8rem)}.modal-image{max-height:calc(100vh - 9.2rem);max-height:calc(100dvh - 9.2rem)}.modal-actions .button{padding-left:.72rem;padding-right:.72rem}.delete-confirm-actions{justify-content:space-between}}
