:root{--ink: #1f2420;--muted: #6b7268;--paper: #faf8f3;--card: #ffffff;--border: #e6e1d3;--forest: #0b3d24;--forest-dark: #072818;--gold: #b8902f;--gold-soft: #f4e9d1;--danger: #a4342a;--success: #2f6d3f;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--paper);background-image:radial-gradient(circle at top,rgba(11,61,36,.05),transparent 55%);-webkit-tap-highlight-color:transparent;text-size-adjust:100%;-webkit-text-size-adjust:100%}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;letter-spacing:.01em}button{font-family:inherit;font-size:.95rem;min-height:44px;-webkit-appearance:none;border:1.5px solid var(--forest);background:#fff;color:var(--forest);border-radius:999px;padding:8px 20px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}button:hover:not(:disabled){box-shadow:0 4px 14px #0b3d2426;transform:translateY(-1px)}button:disabled{opacity:.45;cursor:default;transform:none;box-shadow:none}button.primary{background:linear-gradient(135deg,var(--forest),var(--forest-dark));color:#fff;border-color:transparent}button.danger{border-color:var(--danger);color:var(--danger)}button.link{border:none;background:none;text-decoration:underline;padding:0;min-height:auto;display:inline;font-weight:500}input[type=text],input[type=file]{font-size:16px;min-height:44px}input[type=file]{padding:0}input[type=file]::file-selector-button{font-family:inherit;font-size:.95rem;min-height:44px;-webkit-appearance:none;border:1.5px solid var(--forest);background:#fff;color:var(--forest);border-radius:999px;padding:8px 20px;margin-right:12px;cursor:pointer}.signin-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);text-align:center;gap:14px;background:linear-gradient(160deg,var(--forest-dark),var(--forest) 55%,#123f28);color:#fff}.signin-screen h1{color:#fff;font-size:2.2rem;margin:0}.signin-screen p{color:#ffffffd9;margin:0 0 8px}.brand-mark{font-size:2.8rem;line-height:1;filter:drop-shadow(0 4px 10px rgba(0,0,0,.25))}.signin-screen button{border-color:var(--gold);color:var(--forest-dark);background:var(--gold-soft)}.app-shell{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);max-width:960px;margin:0 auto}header{display:flex;justify-content:space-between;align-items:center;padding:20px 16px;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--border);margin-bottom:24px}header h1{margin:0;font-size:1.6rem;color:var(--forest)}.account{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--muted)}.content-main{padding:0 16px 48px}.muted{color:var(--muted)}.error{color:var(--danger);font-weight:500}.success{color:var(--success);font-weight:600}h2{font-size:1.4rem;margin:4px 0 12px;color:var(--forest-dark)}h3{font-size:1.05rem;margin:0 0 8px;color:var(--forest-dark)}.window-banner{border-radius:14px;padding:14px 18px;margin-bottom:20px;font-size:.95rem;border:1px solid transparent}.window-banner.open{background:#eaf5ec;border-color:#bfe0c6;color:var(--success)}.window-banner.closed{background:#fbeeea;border-color:#f0cfc4;color:var(--danger)}.field-label{display:block;font-weight:600;font-size:.9rem;color:var(--forest-dark);margin-bottom:16px}.grade-select{display:block;width:100%;max-width:220px;margin-top:6px;font-size:16px;min-height:44px;padding:8px 12px;border:1.5px solid var(--border);border-radius:10px;background:#fff;color:var(--ink)}.grade-select:focus{outline:none;border-color:var(--forest)}.rules-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px 20px;margin-bottom:18px;box-shadow:0 2px 10px #0b3d240a}.rules-card ul{margin:0;padding-left:20px;line-height:1.6}.rules-card li{margin-bottom:4px}.agree-checkbox{display:flex;align-items:flex-start;gap:10px;margin:16px 0;font-size:.95rem;cursor:pointer;line-height:1.4}.agree-checkbox input{width:22px;height:22px;margin-top:1px;flex-shrink:0;accent-color:var(--forest)}.submission-form,.submission-view,.admin-panel{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:24px;box-shadow:0 8px 30px #0b3d240f}.thumb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;margin:18px 0}.thumb{position:relative;display:block;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--gold-soft);border:1px solid var(--border);transition:transform .15s ease,box-shadow .15s ease}.thumb:hover{transform:scale(1.03);box-shadow:0 6px 18px #0b3d2426}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb-fallback{display:flex;align-items:center;justify-content:center;height:100%;font-size:.75rem;padding:4px;text-align:center;word-break:break-all;color:var(--muted)}.thumb.editable .remove{position:absolute;top:4px;right:4px;min-height:auto;width:30px;height:30px;padding:0;border-radius:50%;line-height:1;font-size:1.1rem;background:#ffffffeb;border-color:var(--danger);color:var(--danger)}.thumb-meta{position:absolute;bottom:0;left:0;right:0;background:#0b3d24bf;color:#fff;font-size:.65rem;padding:3px 4px;text-align:center}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.admin-panel .search{width:100%;padding:10px 14px;margin-bottom:16px;border:1.5px solid var(--border);border-radius:12px;background:var(--paper)}.admin-panel .search:focus{outline:none;border-color:var(--forest)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;min-width:480px;border-collapse:collapse}th,td{text-align:left;padding:13px 8px;border-bottom:1px solid var(--border)}th{font-weight:600;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.submission-row{cursor:pointer}.submission-row:hover{background:var(--gold-soft)}.expanded-row td{background:var(--paper)}.email-detail{display:none;color:var(--muted);margin:0 0 10px}@media (max-width: 600px){header{padding:14px 12px}header h1{font-size:1.25rem}.account{font-size:.75rem;gap:8px}.content-main{padding:0 12px 40px}.submission-form,.submission-view,.admin-panel{padding:16px;border-radius:14px}.rules-card{padding:14px 16px}.thumb-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.submission-form button.primary{width:100%}input[type=file]::file-selector-button{width:100%;margin-right:0;margin-bottom:10px}.email-col{display:none}.email-detail{display:block}table{min-width:0}}
