Spaces:
Sleeping
Sleeping
File size: 5,021 Bytes
f6c14df | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | /* ── Buttons ── */
.btn {
display:inline-flex; align-items:center; justify-content:center; gap:7px;
font-weight:500; border:1px solid transparent; border-radius:var(--radius);
cursor:pointer; transition:all .15s ease; white-space:nowrap;
font-family:'Inter',sans-serif; letter-spacing:0.01em;
}
.btn:disabled { opacity:.5; cursor:not-allowed; }
.btn-primary { background:var(--accent); color:#fff; border-color:var(--accent); }
.btn-primary:hover:not(:disabled) { background:var(--accent-hover); border-color:var(--accent-hover); }
.btn-secondary { background:var(--bg-elevated); color:var(--text-secondary); border-color:var(--border); }
.btn-secondary:hover:not(:disabled) { background:var(--bg-hover); border-color:var(--border-strong); }
.btn-danger { background:var(--rose-light); color:var(--rose); border-color:var(--rose-border); }
.btn-danger:hover:not(:disabled) { background:#f7e0e0; }
.btn-ghost { background:transparent; color:var(--text-muted); border-color:transparent; }
.btn-ghost:hover:not(:disabled) { background:var(--bg-hover); color:var(--text-secondary); }
.btn-sm { padding:5px 11px; font-size:12.5px; }
.btn-md { padding:8px 16px; font-size:13.5px; }
.btn-lg { padding:11px 22px; font-size:14.5px; }
/* ── Badges ── */
.badge {
display:inline-flex; align-items:center; padding:2px 9px;
border-radius:100px; font-size:11.5px; font-weight:600; white-space:nowrap;
border:1px solid transparent; font-family:'Inter',sans-serif;
}
.badge-todo { background:var(--s-todo-bg); color:var(--s-todo); border-color:#ddd6c8; }
.badge-inprogress { background:var(--s-progress-bg); color:var(--s-progress); border-color:var(--blue-border); }
.badge-inreview { background:var(--s-review-bg); color:var(--s-review); border-color:var(--violet-border); }
.badge-done { background:var(--s-done-bg); color:var(--s-done); border-color:var(--accent-border); }
.badge-cancelled { background:var(--s-cancelled-bg);color:var(--s-cancelled); border-color:var(--rose-border); }
.badge-low { background:var(--accent-light); color:var(--p-low); border-color:var(--accent-border); }
.badge-medium { background:var(--amber-light); color:var(--p-medium); border-color:var(--amber-border); }
.badge-high { background:#fef3ea; color:var(--p-high); border-color:#e8b880; }
.badge-critical { background:var(--rose-light); color:var(--p-critical); border-color:var(--rose-border); }
/* ── Fields ── */
.field { display:flex; flex-direction:column; gap:5px; }
.field-label { font-size:12.5px; font-weight:600; color:var(--text-secondary); letter-spacing:.02em; }
.field-input {
background:var(--bg-elevated); border:1.5px solid var(--border);
border-radius:var(--radius); color:var(--text-primary);
font-size:13.5px; padding:9px 13px; transition:border-color .15s;
width:100%;
}
.field-input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(45,90,61,0.1); }
.field-input-error { border-color:var(--rose) !important; }
.field-error { font-size:11.5px; color:var(--rose); }
select.field-input { appearance:none; cursor:pointer; }
textarea.field-input { resize:vertical; min-height:90px; line-height:1.6; }
/* ── Card ── */
.card {
background:var(--bg-elevated); border:1px solid var(--border);
border-radius:var(--radius-lg); padding:22px;
box-shadow:var(--shadow-sm);
}
/* ── Empty State ── */
.empty-state { display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:56px 24px;gap:10px; }
.empty-icon { width:52px;height:52px;border-radius:50%;background:var(--bg-base);border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-faint);margin-bottom:4px; }
.empty-title { font-family:'Lora',serif;font-size:16px;font-weight:600;color:var(--text-secondary); }
.empty-desc { font-size:13px;color:var(--text-muted);max-width:300px;line-height:1.5; }
.empty-action { margin-top:10px; }
/* ── Spinner ── */
@keyframes spin { to { transform:rotate(360deg); } }
.spinner {
width:15px; height:15px;
border:2px solid rgba(255,255,255,.35);
border-top-color:white; border-radius:50%;
animation:spin .7s linear infinite;
display:inline-block; flex-shrink:0;
}
.spinner-dark {
width:18px; height:18px;
border:2px solid var(--border); border-top-color:var(--accent);
border-radius:50%; animation:spin .7s linear infinite; display:inline-block;
}
/* ── Page Header ── */
.page-header { display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:24px;flex-wrap:wrap; }
.page-title { font-family:'Lora',serif;font-size:22px;font-weight:700;color:var(--text-primary);letter-spacing:-.2px; }
.page-subtitle { font-size:13px;color:var(--text-muted);margin-top:3px; }
.page-action { flex-shrink:0; }
/* ── Divider ── */
.divider { height:1px; background:var(--border); margin:16px 0; }
|