*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#f0f0f0;--fg:#111;--accent:#e63232;--muted:#888;--card:rgba(255,255,255,.72);--border:#ddd;--radius:10px}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--fg);min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}
header{position:sticky;top:0;z-index:100;backdrop-filter:blur(16px);background:rgba(240,240,240,.8);border-bottom:1px solid var(--border)}
.header-inner{max-width:960px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:8px 24px}
.header-logo{display:flex;align-items:center;text-decoration:none}
.logo-img{height:48px;width:auto;object-fit:contain}
nav{display:flex;align-items:center;gap:12px}
.header-user{display:flex;align-items:center;gap:10px;position:relative}
.header-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--border)}
.header-user-text{display:flex;flex-direction:column;line-height:1.2}
.header-welcome{font-size:11px;color:var(--muted);font-weight:400}
.header-name{font-size:14px;font-weight:700}
.menu-toggle{background:none;border:none;color:var(--fg);font-size:13px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .15s}
.menu-toggle:hover{background:rgba(0,0,0,.06)}
.menu-dropdown{display:none;position:absolute;top:100%;right:0;margin-top:8px;background:#fff;border:1px solid var(--border);border-radius:6px;min-width:160px;box-shadow:0 4px 16px rgba(0,0,0,.1);overflow:hidden;z-index:200}
.menu-dropdown.open{display:block}
.menu-item{display:block;width:100%;text-align:left;padding:10px 16px;font-size:13px;background:none;border:none;color:var(--fg);cursor:pointer;text-decoration:none;transition:background .1s}
.menu-item:hover{background:rgba(0,0,0,.04)}
.login-center{display:flex;align-items:center;justify-content:center;flex:1}
.btn-login{display:inline-flex;align-items:center;gap:8px;background:var(--fg);color:#fff;border:none;padding:14px 36px;font-size:15px;font-weight:600;border-radius:8px;cursor:pointer;letter-spacing:.04em;transition:background .15s}
.btn-login:hover{background:var(--accent)}
.header-tag{display:flex;align-items:center;gap:8px}
.tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:4px}
.tag-open{background:var(--fg);color:#fff}
.tag-closed{background:var(--muted);color:#fff}
.tag-date{font-size:12px;color:var(--muted)}
.btn-primary{display:inline-flex;align-items:center;gap:6px;background:var(--fg);color:#fff;border:none;padding:10px 22px;font-size:13px;font-weight:600;border-radius:6px;cursor:pointer;letter-spacing:.04em;transition:background .15s}
.btn-primary:hover{background:var(--accent)}
.btn-primary:disabled{opacity:.4;cursor:not-allowed;background:var(--muted)}
.btn-full{width:100%;justify-content:center}
.btn-ghost{background:none;border:1px solid var(--border);color:var(--muted);padding:4px 12px;font-size:12px;border-radius:4px;cursor:pointer;transition:color .15s,border-color .15s}
.btn-ghost:hover{color:var(--accent);border-color:var(--accent)}
.btn-sm{padding:3px 10px;font-size:11px}
main{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 24px}
.card{position:relative;z-index:10;max-width:640px;width:100%;background:var(--card);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius);padding:36px}
.card hr{border:none;border-top:1px solid var(--border);margin:24px 0}
.card-status{margin-bottom:16px;display:flex;align-items:center;gap:8px}
.drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:28px;margin-bottom:14px;border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;color:var(--muted);transition:border-color .15s,color .15s}
.drop-zone input{display:none}
.drop-zone:hover,.drop-zone.has-file{border-color:var(--accent);color:var(--accent)}
.drop-zone.drag-over{border-color:var(--accent);background:rgba(230,50,50,.06);color:var(--accent)}
#fileName{font-size:13px}
.modal-overlay{position:fixed;inset:0;z-index:999;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}
.modal{background:#fff;border-radius:var(--radius);padding:40px 36px;text-align:center;max-width:380px;width:90%;animation:modalIn .25s ease}
@keyframes modalIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
.modal-icon{width:56px;height:56px;border-radius:50%;background:var(--fg);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:16px}
.modal-icon-err{background:var(--accent)}
.modal h2{font-size:18px;margin-bottom:8px}
.modal p{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:24px}
footer{text-align:center;padding:24px;font-size:11px;letter-spacing:.15em;color:var(--muted);border-top:1px solid var(--border)}
@media(max-width:600px){.header-inner{padding:12px 16px}.card{margin:0 16px 60px}}
