:root{--bg: #ffffff;--bg-sub: #f5f5f3;--ink: #1a1a1a;--ink-2: #555;--ink-3: #8a8a8a;--line: #e2e2df;--line-strong: #1a1a1a;--red: #d7261d;--red-dark: #b31d16;--green: #1f8a4c;--yellow: #fff4c2;--radius: 4px;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:Noto Sans JP,Hiragino Sans,Yu Gothic UI,sans-serif;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;line-height:1.35;font-weight:700}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}b{font-weight:700}img{display:block;max-width:100%}.app{min-height:100vh;display:flex;flex-direction:column}.main{flex:1;width:100%;max-width:920px;margin:0 auto;padding:0 16px}.page{padding:8px 0 64px}.header{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:10}.header-inner,.footer-inner{max-width:920px;margin:0 auto;padding:0 16px;display:flex;align-items:center;justify-content:space-between;height:56px}.brand{display:flex;align-items:baseline;gap:10px;font-weight:900;font-size:18px;letter-spacing:.04em;white-space:nowrap}.brand-sub{font-weight:500;font-size:11px;letter-spacing:.02em;color:#666}@media(max-width:560px){.brand-sub{display:none}}.brand:hover{text-decoration:none}.nav{display:flex;align-items:center;gap:16px;font-size:13px}.nav-link{font-weight:500}.user{display:flex;align-items:center;gap:8px}.avatar{width:26px;height:26px;border-radius:50%}.user-name{font-weight:500}.footer{border-top:1px solid var(--line);color:var(--ink-3);font-size:12px}.muted{color:var(--ink-3)}.small{font-size:13px}.nowrap{white-space:nowrap}.text-danger{color:var(--red)}.section{margin-top:40px}.section-title{font-size:15px;letter-spacing:.08em;border-left:4px solid var(--ink);padding-left:10px;margin-bottom:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px;height:40px;border-radius:var(--radius);border:1px solid var(--line-strong);background:#fff;color:var(--ink);font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap}.btn:hover{background:var(--bg-sub);text-decoration:none}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{background:#333}.btn-x{background:#000;color:#fff;border-color:#000;height:36px;font-size:13px}.btn-x:hover{background:#222}.btn-draw{width:100%;max-width:360px;height:64px;font-size:20px;font-weight:900;letter-spacing:.12em;background:var(--red);border-color:var(--red);color:#fff}.btn-draw:hover{background:var(--red-dark)}.btn-sm{height:32px;padding:0 12px;font-size:13px}.link-btn{background:none;border:none;padding:0;color:var(--ink-2);font-family:inherit;font-size:13px;cursor:pointer;text-decoration:underline}.tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;padding:1px 8px;border:1px solid currentColor;border-radius:2px;line-height:1.6}.tag-open,.tag-published{color:var(--red)}.tag-sold_out,.tag-closed,.tag-ended{color:var(--ink-3)}.tag-not_started,.tag-draft{color:var(--ink-2)}.alert{border:1px solid var(--red);color:var(--red);background:#fff6f5;padding:10px 14px;border-radius:var(--radius);margin:12px 0;font-size:14px}.notice{border:1px solid var(--line);background:var(--bg-sub);padding:16px;text-align:center;border-radius:var(--radius)}.hero{padding:40px 0 8px;border-bottom:1px solid var(--line)}.hero-sub{font-size:13px;font-weight:700;color:var(--red);letter-spacing:.12em}.hero-title{font-size:36px;font-weight:900;letter-spacing:.02em;margin:4px 0 12px}.hero-lead{color:var(--ink-2);padding-bottom:28px}@media(max-width:600px){.hero-title{font-size:30px}.hero-lead br{display:none}}.campaign-list{border-top:1px solid var(--line-strong)}.campaign-row{display:grid;grid-template-columns:1fr 220px;gap:24px;padding:20px 4px;border-bottom:1px solid var(--line)}.campaign-row:hover{background:var(--bg-sub);text-decoration:none}.campaign-row-title{font-size:18px;margin:6px 0 4px}.campaign-row-desc{color:var(--ink-2);font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.campaign-row-side{font-size:13px}.remaining{display:flex;align-items:baseline;gap:6px}.remaining-num{font-size:28px;font-weight:900;line-height:1}.remaining-label{color:var(--ink-3)}.prize-brief{margin-top:8px;color:var(--ink-2)}.prize-brief li{display:flex;justify-content:space-between;gap:8px;border-top:1px dotted var(--line);padding:3px 0}@media(max-width:600px){.campaign-row{grid-template-columns:1fr;gap:12px}}.steps li{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.steps p{color:var(--ink-2);font-size:13px}.step-num{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--ink);color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center}.campaign-head{padding:28px 0 20px;border-bottom:1px solid var(--line)}.campaign-title{font-size:26px;margin:8px 0}.campaign-desc{color:var(--ink-2);white-space:pre-wrap}.meta{display:flex;gap:28px;flex-wrap:wrap;margin-top:16px;font-size:13px}.meta dt{color:var(--ink-3);font-size:12px}.meta dd{margin:0;font-weight:700}.meta dd .big{font-size:24px}.draw-area{margin:24px 0;padding:32px 16px;border:1px solid var(--line-strong);display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.mute-toggle{font-size:13px;color:var(--ink-2);display:flex;align-items:center;gap:6px}.login-box{display:flex;flex-direction:column;align-items:center;gap:12px}.prize-table{width:100%;border-collapse:collapse;font-size:14px}.prize-table th,.prize-table td{padding:12px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.prize-table th{font-size:12px;color:var(--ink-3);font-weight:500;border-bottom:1px solid var(--line-strong)}.prize-table td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.prize-cell{display:flex;align-items:center;gap:12px}.prize-thumb{width:48px;height:48px;object-fit:cover;border:1px solid var(--line);background:var(--bg-sub);flex-shrink:0}.prize-cell-name{font-weight:700}.prize-cell-desc{font-size:12px;color:var(--ink-2)}.delivery-note{font-size:11px;color:var(--ink-3)}.prize-foot{font-size:12px;color:var(--ink-3);margin-top:10px}.gacha-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:100;display:flex;align-items:center;justify-content:center}.gacha-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none}.gacha-video.is-active{opacity:1}.gacha-waiting{color:#ccc;text-align:center;font-size:14px}.spinner{width:36px;height:36px;border:3px solid #333;border-top-color:#fff;border-radius:50%;margin:0 auto 12px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skip-btn{position:absolute;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));background:#fff;color:#000;border:none;border-radius:2px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer}.result{width:100%;max-width:480px;text-align:left;border:1px solid var(--line-strong)}.result-head{padding:14px 18px;font-size:20px;font-weight:900;letter-spacing:.1em;color:#fff;background:var(--ink-3)}.result.is-win .result-head{background:var(--red)}.result-body{padding:18px}.result-prize{font-size:18px;font-weight:700}.result-img{max-width:180px;margin:12px 0;border:1px solid var(--line)}.result-note{font-size:13px;color:var(--ink-2);margin-top:8px}.result-foot{font-size:12px;color:var(--ink-3);padding:10px 18px;border-top:1px solid var(--line)}.code-box{margin-top:14px;border:1px solid var(--line);background:var(--yellow);padding:12px 14px}.code-label{font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:6px}.code-row{display:flex;gap:8px;align-items:center}.code-value{flex:1;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:17px;font-weight:700;letter-spacing:.05em;word-break:break-all;background:#fff;border:1px solid var(--line);padding:8px 10px;-webkit-user-select:all;user-select:all}.code-link{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 20px;background:var(--red);color:#fff;font-weight:700;border-radius:var(--radius);width:100%}.code-link:hover{background:var(--red-dark);text-decoration:none}.code-pending{font-size:13px;color:var(--ink-2)}.row-between{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:20px 0 12px}.row-end{display:flex;justify-content:flex-end;gap:8px}.actions{display:flex;gap:8px;flex-wrap:wrap}.admin-title{font-size:22px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.table{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0}.table th,.table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}.table th{color:var(--ink-3);font-weight:500;font-size:12px;border-bottom:1px solid var(--line-strong)}.row-win td{background:#fff9e8}.stats{display:flex;gap:28px;flex-wrap:wrap;margin:12px 0 20px}.stat-label{font-size:12px;color:var(--ink-3)}.stat-value{font-size:24px;font-weight:900;line-height:1.2}.form{display:flex;flex-direction:column;gap:14px;border:1px solid var(--line);padding:20px}.form h1{font-size:22px}.form label,.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-2);flex:1}.form input,.form textarea,.form select{background:#fff;border:1px solid #bbb;color:var(--ink);padding:8px 10px;border-radius:var(--radius);font-size:14px;font-family:inherit}.form input:focus,.form textarea:focus,.form select:focus{outline:2px solid var(--ink);outline-offset:-1px}.form input:disabled,.form select:disabled{background:var(--bg-sub);color:var(--ink-3)}.form-row{display:flex;gap:12px;flex-wrap:wrap}.prizes-fieldset{border:1px solid var(--line);padding:14px;display:flex;flex-direction:column;gap:14px;margin:0}.prizes-fieldset legend{font-weight:700;font-size:13px;padding:0 6px}.prize-edit{border-bottom:1px solid var(--line);padding-bottom:14px;display:flex;flex-direction:column;gap:8px}.prize-edit:last-of-type{border-bottom:none}.prize-edit-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.prize-edit-row .grow{flex:1 1 180px}.prize-edit-row .narrow{flex:0 0 90px}.prize-edit-row .mid{flex:0 0 160px}.codes-panel{background:var(--bg-sub);border:1px solid var(--line);padding:12px;font-size:13px;display:flex;flex-direction:column;gap:8px}.codes-panel textarea{width:100%;min-height:90px;font-family:SFMono-Regular,Consolas,Menlo,monospace;font-size:13px}.codes-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.codes-list{max-height:200px;overflow:auto;background:#fff;border:1px solid var(--line);font-size:12px}.codes-list table{width:100%;border-collapse:collapse}.codes-list td{padding:3px 8px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.campaign-row{grid-template-columns:160px 1fr 200px}.campaign-thumb{width:160px;aspect-ratio:16 / 9;background:var(--bg-sub);border:1px solid var(--line);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--ink-3);font-size:28px;font-weight:900}.campaign-thumb img{width:100%;height:100%;object-fit:cover}.campaign-row-owner{font-size:12px;color:var(--ink-3);margin-top:4px}@media(max-width:700px){.campaign-row{grid-template-columns:1fr}.campaign-thumb{width:100%}}.campaign-hero-img{aspect-ratio:16 / 9;max-height:360px;overflow:hidden;border:1px solid var(--line);margin-bottom:16px;background:var(--bg-sub)}.campaign-hero-img img{width:100%;height:100%;object-fit:cover}.create-cta{border:1px solid var(--line-strong);padding:20px}.create-cta p{color:var(--ink-2);font-size:14px}.create-cta-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px}.tag-suspended{color:#fff;background:var(--red);border-color:var(--red);margin-left:4px}.text-ok{color:var(--green)}.upload{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-2)}.upload-body{display:flex;gap:12px;align-items:flex-start}.upload-preview{border:1px solid #bbb;background:var(--bg-sub);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--ink-3);flex-shrink:0}.upload-square .upload-preview{width:96px;height:96px}.upload-wide .upload-preview{width:240px;height:135px}.upload-preview img{width:100%;height:100%;object-fit:cover}.upload-actions{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.agree{flex-direction:row!important;align-items:flex-start;gap:10px!important;font-size:13px!important;color:var(--ink)!important;background:var(--bg-sub);padding:12px}.agree input{margin-top:4px}.report-link,.report-done{margin-top:32px;font-size:13px;color:var(--ink-3);text-align:right}.report-box{margin-top:32px;border:1px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:8px}.report-box textarea{border:1px solid #bbb;padding:8px 10px;font-family:inherit;font-size:14px}.subnav{display:flex;gap:4px;border-bottom:1px solid var(--line-strong);margin:12px 0 20px}.subnav a{padding:8px 14px;font-size:14px;font-weight:700;color:var(--ink-3);border-bottom:3px solid transparent;margin-bottom:-1px}.subnav a.active{color:var(--ink);border-bottom-color:var(--ink)}.subnav a:hover{text-decoration:none;color:var(--ink)}.nav-link-ops{color:var(--red);font-weight:700}.btn-danger{color:var(--red);border-color:var(--red)}.btn-danger:hover{background:#fff6f5}.row-reported td{background:#fff9e8}.row-suspended td{background:#fff1f0}.narrow-select{flex:0 0 160px!important}.report-list{display:flex;flex-direction:column;gap:10px}.report-item{border:1px solid var(--line);padding:12px 14px}.report-item-head,.report-item-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.report-reason{margin:8px 0;white-space:pre-wrap;font-size:14px}code{font-family:SFMono-Regular,Consolas,Menlo,monospace;font-size:12px;background:var(--bg-sub);padding:1px 5px}.tag-all_won{color:var(--ink-3)}.effect-picker{border:1px solid #ddd;padding:14px 16px 10px;margin:0 0 16px}.effect-picker legend{font-weight:700;font-size:13px;padding:0 6px}.effect-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:8px}.effect-card{display:flex;flex-direction:column;gap:6px;border:2px solid #ddd;padding:10px;cursor:pointer;background:#fff}.effect-card:hover{border-color:#999}.effect-card.is-selected{border-color:#d00}.effect-card input{position:absolute;opacity:0;width:1px;height:1px}.effect-preview{width:100%;aspect-ratio:16 / 9;background:#000;object-fit:cover;display:block}.effect-name{font-weight:700;font-size:14px}.effect-card.is-selected .effect-name:before{content:"選択中 ";color:#d00;font-size:12px}.effect-desc{font-size:12px;color:#666}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px 0}.table-wrap .table{margin:0}.table th{white-space:nowrap}.code-value{word-break:break-all}.gacha-overlay{padding-bottom:env(safe-area-inset-bottom)}@media(max-width:600px){.header-inner{height:52px;gap:8px}.brand{font-size:16px}.nav{gap:10px;font-size:12px;flex-shrink:0}.nav a,.nav button{white-space:nowrap}.user-name{display:none}.btn-x{padding-left:10px;padding-right:10px}.page{padding-bottom:48px}.campaign-title{font-size:22px}.meta{gap:14px 22px}.meta dd .big{font-size:22px}.draw-area{padding:24px 12px}.btn-draw{width:100%;max-width:320px}.prize-table{font-size:13px}.prize-thumb{width:48px;height:48px}.section-title{font-size:16px}.table-wrap .table{min-width:560px}.table th,.table td{padding:8px}.form{padding:14px 12px}.form h1{font-size:20px}.form input,.form textarea,.form select,.report-box textarea,.codes-panel textarea{font-size:16px}.prize-edit-row .mid,.prize-edit-row .narrow,.narrow-select{flex:1 1 120px!important}.upload-body{flex-direction:column}.upload-wide .upload-preview{width:100%;max-width:320px;height:auto;aspect-ratio:16 / 9}.prizes-fieldset,.effect-picker{padding:12px 10px 8px}.stats{gap:16px 24px}.admin-title{font-size:20px}.subnav a{padding:8px 10px;font-size:13px}.row-between,.actions{flex-wrap:wrap}.skip-btn{padding:10px 18px;font-size:14px}}.published-settings{border:1px solid var(--line);padding:16px 20px;display:flex;flex-direction:column;gap:14px}.published-settings .meta{margin-top:0}.published-thumb{max-width:420px;margin-bottom:0}.published-code-block{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;font-size:13px}
