hsa-app/internal/web/static/style.css

234 lines
5.6 KiB
CSS
Raw Permalink Normal View History

body {
font-family: system-ui, sans-serif;
max-width: 30rem;
margin: 0 auto;
padding: 1rem;
line-height: 1.5;
}
header {
display: flex;
justify-content: space-between;
font-size: .85rem;
color: #555;
margin-bottom: 1rem;
}
h2 { margin-top: 1.5rem; }
label {
display: block;
margin: 1rem 0 .25rem;
font-weight: 600;
}
input, select {
font-size: 1.1rem;
width: 100%;
padding: .6rem;
box-sizing: border-box;
}
a { color: #1a73e8; }
small { color: #555; }
/* Footnote under the file picker: which model auto-fills the form. */
.footnote {
font-size: .8rem;
color: #555;
margin: .4rem 0 0;
}
.footnote code {
background: #eee;
padding: .05rem .3rem;
border-radius: .25rem;
}
.footnote .err-inline { color: #a50e0e; }
/* Skip-AI / "add anyway" inline checkboxes. */
label.check {
display: flex;
align-items: center;
gap: .4rem;
font-weight: 400;
font-size: .9rem;
margin: .5rem 0 0;
}
label.check input { width: auto; }
/* Possible-duplicate warning panel. */
.dup-warn {
background: #fef7e0;
border: 1px solid #f0c000;
color: #7a5a00;
padding: .6rem;
border-radius: .4rem;
margin: 1rem 0;
font-size: .9rem;
}
.dup-warn ul { margin: .4rem 0; padding-left: 1.1rem; }
.dup-warn label.check { color: #7a5a00; font-weight: 600; }
button.primary:disabled { background: #9aa0a6; }
/* Tally matrix. */
.tally-wrap { overflow-x: auto; }
table.tally { border-collapse: collapse; width: 100%; font-size: .95rem; }
table.tally th, table.tally td { padding: .4rem .6rem; border-bottom: 1px solid #eee; }
table.tally .num { text-align: right; font-variant-numeric: tabular-nums; }
table.tally thead th { border-bottom: 2px solid #ccc; }
table.tally tbody th { text-align: left; font-weight: 600; }
table.tally .total { font-weight: 600; }
table.tally tfoot { border-top: 2px solid #ccc; }
table.tally tfoot th, table.tally tfoot td { font-weight: 700; }
table.tally .grand { color: #137333; }
table.tally .muted { color: #bbb; }
/* Recent lists + tabs + pager. */
p.tabs a.active { font-weight: 700; text-decoration: none; color: #137333; }
ul.recent { list-style: none; padding: 0; }
ul.recent li { padding: .35rem 0; border-bottom: 1px solid #eee; font-size: .92rem; }
ul.recent .amt { font-weight: 600; }
ul.recent .meta { color: #333; }
ul.recent .atts { margin-left: .15rem; }
ul.recent .atts a { text-decoration: none; }
ul.recent .when { color: #999; font-size: .8rem; margin-left: .35rem; white-space: nowrap; }
p.pager { margin-top: 1rem; }
.err {
background: #fce8e6;
color: #a50e0e;
padding: .6rem;
border-radius: .4rem;
margin: .5rem 0;
}
.ok {
color: #137333;
font-weight: 600;
font-size: 1.3rem;
}
/* Full-width primary submit button (upload form). */
button.primary {
font-size: 1.1rem;
width: 100%;
padding: .6rem;
margin-top: 1.5rem;
background: #137333;
color: #fff;
border: 0;
border-radius: .4rem;
font-weight: 600;
}
/* Links styled as buttons. */
a.button {
display: block;
text-align: center;
color: #fff;
padding: .7rem;
border-radius: .4rem;
text-decoration: none;
margin: .75rem 0;
}
a.button.green { background: #137333; }
a.button.blue { background: #1a73e8; }
/* Tag picker: trigger button, summary, chip mosaic, and the modal it opens. */
button.tags-btn {
font-size: 1rem;
padding: .5rem .8rem;
border: 1px solid #1a73e8;
background: #fff;
color: #1a73e8;
border-radius: .4rem;
}
.tags-summary { margin-left: .5rem; font-size: .9rem; color: #555; }
#tags-hidden { display: none; }
.modal {
position: fixed;
inset: 0;
z-index: 10;
background: rgba(0, 0, 0, .45);
display: flex;
align-items: center;
justify-content: center;
padding: 1rem;
}
.modal[hidden] { display: none; }
.modal-card {
background: #fff;
border-radius: .5rem;
padding: 1rem;
width: 100%;
max-width: 26rem;
max-height: 80vh;
overflow-y: auto;
}
.modal-card h2 { margin-top: 0; }
.chips { display: flex; flex-wrap: wrap; gap: .4rem; margin: .5rem 0 1rem; }
.chip {
padding: .35rem .7rem;
border: 1px solid #ccc;
border-radius: 1rem;
background: #f1f3f4;
color: #333;
font-size: .9rem;
cursor: pointer;
}
.chip.sel { background: #137333; border-color: #137333; color: #fff; }
.newtag { display: flex; gap: .4rem; margin-bottom: 1rem; }
.newtag input { flex: 1; }
/* Tag chips shown read-only in the recent list. */
ul.recent .tags { margin-left: .15rem; }
ul.recent .tag {
display: inline-block;
font-size: .72rem;
background: #e8f0fe;
color: #1a56c4;
border-radius: .8rem;
padding: .02rem .4rem;
margin-left: .2rem;
}
/* Inline rename/add rows on the manage page. */
form.row {
display: flex;
gap: .4rem;
margin: .3rem 0;
}
form.row input { flex: 1; padding: .4rem; }
form.row button { padding: .4rem .7rem; }
.add input { border: 1px solid #137333; }
button.danger { background: #fce8e6; border: 1px solid #d93025; color: #a50e0e; }
/* AI correction notes: full-width, wrapping, auto-growing editors. */
form.note { margin: .75rem 0 1rem; }
form.note textarea {
width: 100%;
box-sizing: border-box;
font: inherit;
padding: .5rem;
resize: vertical;
min-height: 3rem;
overflow: hidden;
}
form.note.add textarea { border: 1px solid #137333; }
form.note .note-actions { display: flex; gap: .4rem; margin-top: .35rem; }
form.note .note-actions button { padding: .4rem .9rem; }
/* AI tab: read-only prompt + miss-review table. */
pre.prompt {
white-space: pre-wrap;
word-break: break-word;
background: #f1f3f4;
padding: .6rem;
border-radius: .4rem;
font-size: .78rem;
max-height: 28rem;
overflow-y: auto;
}
table.tally tr.miss th, table.tally tr.miss td { background: #fef7e0; }