*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    --bg:      #f4f4f4;
    --surface: #fff;
    --border:  #ddd;
    --accent:  #c0392b;
    --accent2: #2980b9;
    --text:    #1a1a1a;
    --muted:   #666;
    --success: #27ae60;
    --error:   #c0392b;
    --notice:  #f39c12;
}

body { font-family: Arial, sans-serif; background: var(--bg); color: var(--text); font-size: 16px; }

nav {
    background: var(--accent);
    color: #fff;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 12px 20px;
}
nav span { font-weight: bold; font-size: 1.1em; margin-right: auto; }
nav a { color: #fff; text-decoration: none; font-size: 0.95em; }
nav a:hover { text-decoration: underline; }

.container { max-width: 860px; margin: 24px auto; padding: 0 16px; }
.center-page { display: flex; align-items: center; justify-content: center; min-height: 100vh; }

.card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 20px;
    margin-bottom: 20px;
}
.card h3 { margin-bottom: 12px; font-size: 1.05em; }

h1 { font-size: 2em; margin-bottom: 8px; }
h2 { font-size: 1.3em; margin-bottom: 16px; }

label {
    display: block;
    margin-bottom: 12px;
    font-size: 0.95em;
    color: var(--muted);
}
label.checkbox { display: flex; align-items: center; gap: 8px; color: var(--text); margin-bottom: 12px; }
label input, label select, label textarea {
    display: block;
    width: 100%;
    margin-top: 4px;
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: 4px;
    font-size: 1em;
    color: var(--text);
    background: #fafafa;
}
label input:focus, label select:focus, label textarea:focus {
    outline: 2px solid var(--accent2);
    background: #fff;
}
label textarea { resize: vertical; }

button, .button {
    display: inline-block;
    padding: 8px 18px;
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 0.95em;
    cursor: pointer;
    text-decoration: none;
    margin-right: 8px;
    margin-bottom: 8px;
}
button:hover, .button:hover { opacity: 0.88; }

table { width: 100%; border-collapse: collapse; margin-top: 8px; }
th, td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--border); font-size: 0.95em; }
th { background: #f0f0f0; font-weight: bold; }
tr:hover td { background: #fafafa; }

.toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }

.error   { color: var(--error);   background: #fdecea; border-left: 4px solid var(--error);   padding: 10px 14px; margin-bottom: 12px; border-radius: 4px; }
.success { color: var(--success); background: #eafaf1; border-left: 4px solid var(--success); padding: 10px 14px; margin-bottom: 12px; border-radius: 4px; }
.notice  { color: #7d5a00; background: #fff8e1; border-left: 4px solid var(--notice); padding: 10px 14px; margin-bottom: 12px; border-radius: 4px; }
.hint    { font-size: 0.88em; color: var(--muted); margin-bottom: 8px; }

.list-item { display: flex; gap: 8px; margin-bottom: 8px; align-items: center; }
.list-item input { flex: 1; padding: 6px 10px; border: 1px solid var(--border); border-radius: 4px; font-size: 0.95em; }
.list-item button { margin: 0; padding: 6px 10px; background: #888; }

.ice-entry { flex-wrap: wrap; }
.ice-entry input { min-width: 140px; }

#qrcode { margin: 12px 0; }
#qrcode img, #qrcode canvas { border: 4px solid #000; }

.key-input-area { margin-top: 12px; }
code {
    display: block;
    background: #222;
    color: #0f0;
    padding: 10px 14px;
    border-radius: 4px;
    font-family: monospace;
    font-size: 0.95em;
    word-break: break-all;
    margin-top: 8px;
}

hr { border: none; border-top: 1px solid var(--border); margin: 20px 0; }

@media (max-width: 500px) {
    nav { flex-wrap: wrap; gap: 10px; }
    .toolbar { flex-direction: column; align-items: flex-start; gap: 10px; }
}

.date-picker-wrap { display: flex; align-items: center; gap: 12px; margin-top: 4px; }
.date-picker-wrap input[type="date"] { width: auto; flex: 0 0 auto; }
.date-display { font-size: 1em; color: var(--text); font-weight: bold; }
