:root{--bg-top:#f4eee5;--bg-bottom:#dbe8e0;--text:#223047;--muted:#5b6777;--primary:#c62525;--primary-strong:#8f1717;--border:#d7dee7;--shadow:0 18px 45px rgba(34,48,71,.09)}*{box-sizing:border-box}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;background:radial-gradient(circle at top left,rgba(255,255,255,.76),transparent 34%),radial-gradient(circle at bottom right,rgba(198,37,37,.08),transparent 28%),linear-gradient(158deg,var(--bg-top),var(--bg-bottom));background-attachment:fixed;color:var(--text);margin:0;padding:40px 22px;line-height:1.6}.page{max-width:1040px;margin:auto}header{padding:14px 0 24px}header p{margin:6px 0;color:var(--muted)}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--primary-strong)}h1{font-size:clamp(28px,4vw,44px);line-height:1.2;letter-spacing:-.04em;margin:10px 0}h2{font-size:clamp(24px,3vw,31px);line-height:1.25;letter-spacing:-.025em;margin:8px 0 14px}h3{margin:0 0 10px;font-size:19px}p{margin:0 0 16px}nav{display:flex;gap:6px;flex-wrap:wrap;border-top:1px solid #c6cecd;border-bottom:1px solid #c6cecd;padding:12px 0}nav a{padding:9px 13px;text-decoration:none;color:var(--muted);border-radius:9px;font-size:14px;font-weight:600}nav a[aria-current]{background:white;color:var(--primary-strong);box-shadow:0 2px 6px #2230470b}nav a:last-child{margin-left:auto}.phase-status{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.badge{background:#e3e5e8;color:#4c5666;font-size:12px;font-weight:600;padding:5px 11px;border-radius:30px}.badge:before{content:'●';margin-right:7px}.badge.open{background:#d9eddf;color:#246442}.intro{margin:34px 0 24px}.intro>p:last-child{color:var(--muted)}.card,.image-card{background:white;border-radius:18px;border:1px solid rgba(215,222,231,.7);box-shadow:var(--shadow);padding:28px}.upload-form{width:100%}label{display:block;font-weight:600;margin:18px 0 8px}label:first-child{margin-top:0}input,select,button{font:inherit}input[type=text],input[type=password],input:not([type]),select{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text)}input[type=file]{max-width:100%;font-size:14px}input[type=file]::file-selector-button{padding:9px 13px;margin:8px 10px 8px 0;background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer}.hint{font-size:13px;color:var(--muted);margin:7px 0 18px}.upload-zone{border:2px dashed #a4b3c8;border-radius:16px;padding:28px 20px;background:linear-gradient(180deg,#fffafa,#fff1f1);text-align:center}.upload-zone.dragover{border-color:var(--primary);background:#fdeeee}.upload-zone p{margin:4px 0;color:var(--muted);font-size:13px}.upload-zone strong{display:block;margin-bottom:10px}button,.button{display:inline-block;background:linear-gradient(135deg,var(--primary),var(--primary-strong));color:#fff;border:0;border-radius:99px;padding:13px 23px;font-weight:600;cursor:pointer;text-decoration:none;text-align:center;line-height:1.4}button:hover,.button:hover{filter:brightness(.93)}button:disabled{opacity:.5;cursor:not-allowed}.upload-form>button{width:100%;margin-top:20px}.notice{padding:15px 18px;border-radius:12px;background:#f0f3f6;font-size:14px;margin:18px 0}.success{color:#155b37;background:#d1f2de}.error{color:#91241c;background:#fce4e2}.grid,.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.stats{margin-bottom:20px}.stats strong{font-size:40px;display:block;line-height:1.3}.stats span{color:var(--muted)}.spaced{margin-top:22px}.danger{border-color:#dba6a0}.danger input{max-width:350px;display:block;margin-bottom:20px}.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}.image-card{padding:0;overflow:hidden}.image-card img,.raw-placeholder{width:100%;height:220px;object-fit:contain;background:#eef0ec;display:block}.raw-placeholder{display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(135deg,#e6e8e0,#d5e1da);color:#708277}.raw-placeholder span{font-size:42px;font-weight:300;letter-spacing:.12em}.raw-placeholder small{font-size:12px}.image-body{padding:22px}.image-body p{font-size:13px;color:var(--muted)}.image-body .button{width:100%;font-size:14px}.text-link{display:block;margin-top:12px;text-align:center;font-size:13px}a{color:var(--primary-strong)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}th,td{padding:10px;border-bottom:1px solid var(--border);overflow-wrap:anywhere;min-width:100px}th{background:#f5f6f7}.login{width:100%}.login button{margin-top:20px}.logout{margin-top:24px}.secondary{background:white;color:var(--text);border:1px solid var(--border)}footer{font-size:12px;color:var(--muted);margin:48px 0 0;text-align:center;line-height:1.9}progress{width:100%;accent-color:var(--primary)}.progress-text{font-size:13px}*:focus-visible{outline:3px solid #376c9c;outline-offset:3px}[hidden]{display:none!important}@media(max-width:640px){body{padding:20px 12px}.card{padding:20px}nav{display:grid;grid-template-columns:1fr 1fr}nav a{font-size:12px;padding:9px 6px}nav a:last-child{margin-left:0}.grid{grid-template-columns:1fr}.stats{gap:12px}.phase-status{gap:6px}.badge{font-size:11px}.intro{margin-top:28px}.upload-zone{padding:24px 10px}button{font-size:14px}}
