*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;background:#fafaf9;color:#1a1a1a;line-height:1.5}a{color:#a68b4b}.container{max-width:960px;margin:0 auto;padding:2rem 1.5rem}.card{background:#fff;border:1px solid #e8e8e5;border-radius:8px;padding:1.5rem}.btn{display:inline-block;padding:.65rem 1.25rem;background:#a68b4b;color:#fff;border:none;border-radius:6px;cursor:pointer;text-decoration:none;font-size:.9rem}.btn:hover{background:#8f7540}.btn-outline{background:transparent;color:#1a1a1a;border:1px solid #ccc}.btn-danger{background:transparent;color:#b00020;border:1px solid #e8b4b4}.btn-danger:hover{background:#fdeaea}.btn-danger:disabled{opacity:.6;cursor:wait}.input{width:100%;padding:.65rem .75rem;border:1px solid #ddd;border-radius:6px;margin-top:.35rem}.label{font-size:.85rem;color:#5c5c58;display:block;margin-top:1rem}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table td,.table th{text-align:left;padding:.75rem;border-bottom:1px solid #eee}.badge{font-size:.75rem;padding:.2rem .5rem;border-radius:4px;background:#eee}.badge.ok{background:#d4edda;color:#155724}.badge.pending{background:#fff3cd;color:#856404}.error{color:#b00020;font-size:.9rem;margin-top:.5rem}.canvas-wrap{border:1px dashed #ccc;border-radius:8px;background:#fff;touch-action:none}canvas{width:100%;height:180px;display:block;cursor:crosshair}