:root{--paper:#f8f3e8;--paper-deep:#f2ead8;--paper-soft:#fdf8ee;--ink:#1f2b3a;--ink-muted:#4a5663;--accent-red:#7d2b2b;--accent-gold:#c9a65a;--accent-green:#2d4a3b;--line:#1f2b3a2e;--line-strong:#1f2b3a59;--danger:#a74141}*,:before,:after{box-sizing:border-box}html,body{font-family:var(--font-meiji,"Times New Roman",Georgia,serif);color:var(--ink);background:#f5f1e6;margin:0;padding:0}body{letter-spacing:.01em;background:radial-gradient(circle at top,#faf6ed 0%,#f3ebdd 45%,#f8f3e8 100%);min-height:100vh;line-height:1.55;position:relative}body:before{content:"";opacity:.4;pointer-events:none;background:repeating-linear-gradient(90deg,#c9a65a0d,#c9a65a0d 1px,#0000 1px 24px);position:fixed;inset:0}a{color:inherit;text-decoration:none}.top-nav{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#f8f3e8eb;padding:18px 32px}.top-nav-inner{align-items:center;gap:24px;max-width:960px;margin:0 auto;display:flex}.logo{letter-spacing:.04em;align-items:center;gap:12px;font-size:20px;font-weight:600;display:flex}.logo-mark{background-color:var(--paper-soft);background-blend-mode:multiply;width:36px;height:36px;box-shadow:none;background-image:url(/icon.png);background-position:50%;background-repeat:no-repeat;background-size:contain;border:0;border-radius:0;flex-shrink:0}.logo-word{font-variant:small-caps}.nav-links{gap:16px;margin-left:16px;font-size:14px;display:flex}.nav-link{color:var(--ink-muted);border-bottom:1px solid #0000;padding-bottom:4px}.nav-link:hover{color:var(--ink);border-bottom-color:var(--accent-gold)}.nav-auth{color:var(--ink-muted);align-items:center;gap:10px;margin-left:auto;font-size:13px;display:flex}.auth-bar{align-items:center;gap:10px;display:flex}.main-shell{flex-direction:column;align-items:center;gap:24px;min-height:calc(100vh - 88px);padding:32px 16px 64px;display:flex}.card{background:linear-gradient(180deg,var(--paper)0%,#fff 100%);border:1px solid var(--line);border-radius:16px;width:100%;max-width:620px;padding:32px 32px 28px 60px;position:relative;box-shadow:0 16px 38px #1f2b3a1f}.card:before{content:"";background:linear-gradient(#7d2b2bd9,#2d4a3bd9);width:4px;position:absolute;top:20px;bottom:20px;left:28px}.card:after{content:"";pointer-events:none;border:1px dashed #1f2b3a2e;position:absolute;inset:12px 14px}.card-header{align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.seal{border:1px solid var(--line-strong);background:var(--paper-soft);letter-spacing:.2em;border-radius:50%;place-items:center;width:48px;height:48px;font-size:14px;display:grid}.seal--brand{background-color:var(--paper-soft);background-blend-mode:multiply;box-shadow:none;letter-spacing:0;background-image:url(/icon.png);background-position:50%;background-repeat:no-repeat;background-size:contain;border:0;border-radius:0;font-size:0}.card-title{letter-spacing:.04em;margin:0;font-size:24px;font-weight:600}.card-subtitle{color:var(--ink-muted);margin-top:4px;font-size:14px}.card-section{border-top:1px solid #1f2b3a1f;margin-top:16px;padding-top:12px}.form-grid{gap:16px;display:grid}.field-label{text-transform:uppercase;letter-spacing:.14em;color:var(--ink-muted);margin-bottom:4px;font-size:12px}input,textarea{border:1px solid var(--line);background:var(--paper-soft);width:100%;color:var(--ink);border-radius:8px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus{border-color:var(--accent-gold);box-shadow:0 0 0 3px #c9a65a33}textarea{resize:vertical;min-height:72px}.btn-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.btn-main{border:1px solid var(--accent-red);color:#fff7ee;letter-spacing:.08em;cursor:pointer;background:linear-gradient(#8f3a3a,#6d2424);border-radius:999px;padding:10px 24px;font-size:14px;transition:transform .2s,box-shadow .2s}.btn-main:hover{transform:translateY(-1px);box-shadow:0 6px 14px #7d2b2b40}.btn-ghost{border:1px solid var(--line);color:var(--ink);letter-spacing:.05em;cursor:pointer;background:0 0;border-radius:999px;padding:8px 16px;font-size:12px}.btn-ghost:hover{border-color:var(--accent-gold)}.btn-danger{border:1px solid var(--danger);color:var(--danger);letter-spacing:.05em;cursor:pointer;background:#a7414114;border-radius:999px;padding:8px 16px;font-size:12px}.feedback{color:var(--accent-green);margin-top:12px;font-size:13px}.feedback.error{color:var(--danger)}.small-hint{color:var(--ink-muted);margin-top:6px;font-size:12px}.ok-msg,.error-msg{margin-bottom:12px;font-size:13px}.ok-msg{color:var(--accent-green)}.error-msg{color:var(--danger)}.email-autocomplete{position:relative}.email-dropdown{border:1px solid var(--line);z-index:10;background:#fffdf6;border-radius:8px;max-height:240px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 16px 30px #1f2b3a33}.email-option{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:13px}.email-option:hover{background:#c9a65a1a}.list{flex-direction:column;gap:14px;margin-top:14px;display:flex}.request-item{border:1px solid var(--line);background:var(--paper-deep);border-radius:12px;padding:16px 18px 16px 32px;position:relative;box-shadow:inset 0 1px #ffffff80}.request-item:before{content:"";background:var(--accent-green);opacity:.5;width:4px;position:absolute;top:14px;bottom:14px;left:12px}.request-main{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;font-size:14px;display:flex}.request-meta{color:var(--ink-muted);font-size:13px}.request-note{color:var(--ink);margin-top:4px;font-size:13px}.tag{text-transform:uppercase;letter-spacing:.12em;border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:11px}.tag.pending{border-color:var(--accent-gold);color:var(--accent-gold)}.tag.accepted{border-color:var(--accent-green);color:var(--accent-green)}.tag.rejected{border-color:var(--danger);color:var(--danger)}.item-actions{gap:10px;margin-top:12px;display:flex}@media (max-width:640px){.card{padding:28px 20px 24px 40px}.card:before{left:16px}.card:after{inset:10px}.top-nav{padding:16px}.top-nav-inner{flex-wrap:wrap}}
