body{font-family:Segoe UI,Arial,Helvetica,sans-serif;background:#f5f7fb;margin:0;color:#222}
.container{max-width:1100px;margin:30px auto;padding:0 16px}
.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:16px;margin-bottom:16px;box-shadow:0 2px 4px rgba(0,0,0,.03)}
.form-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.form-grid .btn{grid-column:span 1}
input,button{padding:10px;border:1px solid #cbd5e1;border-radius:6px;font-size:14px}
input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.15)}
.btn{background:#2563eb;color:#fff;border:none;cursor:pointer;transition:background 0.2s}
.btn:hover{background:#1d4ed8}
.btn.danger{background:#ef4444}
.btn.danger:hover{background:#dc2626}
.btn.warning{background:#f59e0b}
.btn.warning:hover{background:#d97706}
.btn.success{background:#10b981}
.btn.success:hover{background:#059669}
.btn.info{background:#06b6d4}
.btn.info:hover{background:#0891b2}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px;border-bottom:1px solid #e5e7eb;text-align:left}
.table th{background:#f1f5f9}
.right{text-align:right}
.num{text-align:right}
.pos{color:#d4380d}
.neg{color:#1d39c4}


/* opinion modal */
.meta{color:#666;font-size:12px;margin-top:4px}
.modal.hidden{display:none}
.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:9999}
.modal-content{background:#fff;width:80%;max-width:800px;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.2);overflow:hidden}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #eee}
.modal-body{padding:16px;margin:0;max-height:60vh;overflow:auto;background:#f9fafb}
.close{background:none;border:none;font-size:20px;cursor:pointer}
.btn.small{padding:2px 6px;font-size:12px}

